aboutsummaryrefslogtreecommitdiff
path: root/interpreter/Elymas.pm
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter/Elymas.pm')
-rw-r--r--interpreter/Elymas.pm14
1 files changed, 4 insertions, 10 deletions
diff --git a/interpreter/Elymas.pm b/interpreter/Elymas.pm
index 0749443..dcd36ee 100644
--- a/interpreter/Elymas.pm
+++ b/interpreter/Elymas.pm
@@ -6,7 +6,7 @@ use warnings;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(
- popInt popString popArray enstruct arrayAccess $quoted @globalCallStack
+ popInt popString popArray arrayAccess $quoted @globalCallStack
interpretCode execute executeString executeFile resolve canCastTo typeEqual
);
@@ -40,12 +40,6 @@ sub popArray {
return $a->[0];
}
-sub enstruct {
- my ($struct) = @_;
-
- return ($struct, ['struct', { map { my @e = ($_, [@{$struct->{$_}}]); shift @{$e[1]}; @e } keys %$struct }]);
-}
-
sub arrayAccess {
my ($array, $data, $scope) = @_;
@@ -119,13 +113,13 @@ sub typeEqual {
} elsif($a->[0] eq 'struct') {
return 0 unless $b->[0] eq 'struct';
- my @aKeys = sort keys %{$a->[1]};
- my @bKeys = sort keys %{$b->[1]};
+ my @aKeys = sort keys %{$a->[0]};
+ my @bKeys = sort keys %{$b->[0]};
return 0 unless @aKeys == @bKeys;
foreach my $i (0 .. $#aKeys) {
return 0 unless $aKeys[$i] eq $bKeys[$i];
- return 0 unless typeEqual($a->[1]->{$aKeys[$i]}->[0], $b->[1]->{$bKeys[$i]}->[0]);
+ return 0 unless typeEqual($a->[0]->{$aKeys[$i]}->[1], $b->[0]->{$bKeys[$i]}->[1]);
}
return 1;