From 34ac8e96cb1a70825c5a9ef9ffb367488e5be968 Mon Sep 17 00:00:00 2001 From: drbaggy Date: Mon, 5 Jul 2021 23:20:42 +0100 Subject: minor bug fix with blank lines --- challenge-120/james-smith/cesil/cesil.pl | 6 +++--- 1 file 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" -- cgit