diff options
| author | Drahflow <drahflow@gmx.de> | 2012-12-08 14:29:18 +0100 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2012-12-08 14:29:18 +0100 |
| commit | 74f3f1354afe9b6fe866527a1de2a8d16d1210b8 (patch) | |
| tree | b98303d84e99ab1829410ae38317c27c911217b5 /interpreter/Elymas.pm | |
Initial commit
Diffstat (limited to 'interpreter/Elymas.pm')
| -rw-r--r-- | interpreter/Elymas.pm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/interpreter/Elymas.pm b/interpreter/Elymas.pm new file mode 100644 index 0000000..d82900d --- /dev/null +++ b/interpreter/Elymas.pm @@ -0,0 +1,37 @@ +package Elymas; + +use strict; +use warnings; + +require Exporter; +our @ISA = qw(Exporter); +our @EXPORT = qw(popInt popString); + +use Data::Dumper; + +sub popInt { + my ($data) = @_; + + my $i = pop @$data or die "Stack underflow"; + die "Not integer " . Dumper($i) unless $i->[1] eq 'int'; + return $i->[0]; +} + +sub popString { + my ($data) = @_; + + my $s = pop @$data or die "Stack underflow"; + die "Not string " . Dumper($s) unless $s->[1] eq 'string'; + return $s->[0]; +} + +sub popArray { + my ($data) = @_; + + my $a = pop @$data or die "Stack underflow"; + die "Not array: " . Dumper($a) unless ref($a->[1]) eq 'ARRAY' and $a->[1]->[0] eq 'array'; + + return $a->[0]; +} + +1; |
