diff options
| author | drbaggy <js5@sanger.ac.uk> | 2021-07-05 23:20:42 +0100 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2021-07-05 23:20:42 +0100 |
| commit | 34ac8e96cb1a70825c5a9ef9ffb367488e5be968 (patch) | |
| tree | 1f237f3f5f09ba55cac809e56399bca0cb041290 | |
| parent | 8ed3d4708d46cb83f51b0348cbebee560cdb87e5 (diff) | |
| download | perlweeklychallenge-club-34ac8e96cb1a70825c5a9ef9ffb367488e5be968.tar.gz perlweeklychallenge-club-34ac8e96cb1a70825c5a9ef9ffb367488e5be968.tar.bz2 perlweeklychallenge-club-34ac8e96cb1a70825c5a9ef9ffb367488e5be968.zip | |
minor bug fix with blank lines
| -rwxr-xr-x | challenge-120/james-smith/cesil/cesil.pl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/challenge-120/james-smith/cesil/cesil.pl b/challenge-120/james-smith/cesil/cesil.pl index 3a5f568a77..674e52c434 100755 --- a/challenge-120/james-smith/cesil/cesil.pl +++ b/challenge-120/james-smith/cesil/cesil.pl @@ -4,15 +4,15 @@ my@t=('PROGRAM REQUIRES MORE DATA','UNKNOWN VARIABLE ', 'DIVISION BY ZERO ','UNKNOWN LABEL '); sub _e{die sprintf "\n*** %s%s *** %s \@ %d\n",$t[$_[0]],@{$c[$p]}[1,0],1+$p} sub _j{exists$q{$_}?($p=$q{$_}-1):_e 3} -sub _v{/^[+-]?\d+$/?$_:exists$m{$_}?$m{$_}:_e 1} +sub _v{/^[-+]?\d+$/?(0+$_):exists$m{$_}?$m{$_}:_e 1} my%c=('LINE',sub{print"\n"},'OUT',sub{print$r},'STORE',sub{$m{$_}=$r}, 'PRINT',sub{print s/^"//r=~s/"$//r},'IN',sub{@i?($r=shift@i):_e 0}, 'JINEG',sub{_j if$r<0},'SUBTRACT',sub{$r-=_v},'MULTIPLY',sub{$r*=_v}, 'ADD',sub{$r+=_v},'DIVIDE',sub{$_=_v;$r=$_?int($r/$_):_e 2}, 'LOAD',sub{$r=_v},'JIZERO',sub{_j if!$r},'JUMP',sub{_j},'HALT',sub{exit}); -while(<>){next if/^ *\(/;((@i=map{/^\s+-?\d+\s*$/?0+$_:()}<>),last)if/^ *%/; +while(<>){next if/^ *\(/;((@i=map{/^\s+[-+]?\d+\s*$/?0+$_:()}<>),last)if/^ *%/; ($q{$1},$_)=(0+@c,$2)if/^(\S{1,6})\s+(.*)/; -my($x,$y)=split/\s+/,s/^\s+//r=~s/\s+$//r,2; +my($x,$y)=split/\s+/,s/^\s+//r=~s/\s+$//r,2;next unless $x; die"\n# Unk cmd [$x \@ ",1+@c,"]\n"if!exists$c{$x};push@c,[$x,$y//''];} ($c{$c[$p][0]}($_=$c[$p][1]),$p++)while--$M&&$p<@c; die"\n*** No HALT ***\n" |
