diff options
Diffstat (limited to 'interpreter/Elymas.pm')
| -rw-r--r-- | interpreter/Elymas.pm | 14 |
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; |
