.pragma n_operators 1 .sub blah @ANON .include "languages/tcl/lib/returncodes.pir" $P0 = new .String $P0="a" $P1 = new .String $P1="0" .local pmc command $P2 = new .String $P2="set" $S3=$P2 $S3 = "&" . $S3 push_eh bad_command3 command = find_global "Tcl", $S3 clear_eh if_null command, bad_command3 $P3 = command($P0,$P1) goto resume3 bad_command3: $S3=$P2 $S3=concat "invalid command name \"" ,$S3 $S3.="\"" .throw($S3) resume3: .include "languages/tcl/lib/returncodes.pir" $P3 = new .String $P3="$a < 10" $P4 = new .String $P4="\n incr a\n" .local pmc command $P5 = new .String $P5="while" $S6=$P5 $S6 = "&" . $S6 push_eh bad_command6 command = find_global "Tcl", $S6 clear_eh if_null command, bad_command6 $P6 = command($P3,$P4) goto resume6 bad_command6: $S6=$P5 $S6=concat "invalid command name \"" ,$S6 $S6.="\"" .throw($S6) resume6: .include "languages/tcl/lib/returncodes.pir" .local pmc read read=find_global "_Tcl", "__read" $P6 = read("a") .local pmc command $P7 = new .String $P7="puts" $S8=$P7 $S8 = "&" . $S8 push_eh bad_command8 command = find_global "Tcl", $S8 clear_eh if_null command, bad_command8 $P8 = command($P6) goto resume8 bad_command8: $S8=$P7 $S8=concat "invalid command name \"" ,$S8 $S8.="\"" .throw($S8) resume8: .return ($P8) .end .pragma n_operators 1 .sub blah @ANON .include "languages/tcl/lib/returncodes.pir" $P0 = new .String $P0="a" .local pmc command $P1 = new .String $P1="incr" $S2=$P1 $S2 = "&" . $S2 push_eh bad_command2 command = find_global "Tcl", $S2 clear_eh if_null command, bad_command2 $P2 = command($P0) goto resume2 bad_command2: $S2=$P1 $S2=concat "invalid command name \"" ,$S2 $S2.="\"" .throw($S2) resume2: .return ($P2) .end 10