24 lines
683 B
Tcl
24 lines
683 B
Tcl
namespace import ::tcl::mathop::-
|
|
|
|
proc subleq {pgm} {
|
|
set ip 0
|
|
while {$ip >= 0} {
|
|
lassign [lrange $pgm $ip $ip+2] a b c
|
|
incr ip 3
|
|
if {$a == -1} {
|
|
scan [read stdin 1] %C char
|
|
lset pgm $b $char
|
|
} elseif {$b == -1} {
|
|
set char [format %c [lindex $pgm $a]]
|
|
puts -nonewline $char
|
|
} else {
|
|
lset pgm $b [set res [- [lindex $pgm $b] [lindex $pgm $a]]]
|
|
if {$res <= 0} {
|
|
set ip $c
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fconfigure stdout -buffering none
|
|
subleq {15 17 -1 17 -1 -1 16 1 -1 16 3 -1 15 15 0 0 -1 72 101 108 108 111 44 32 119 111 114 108 100 33 10 0}
|