27 lines
415 B
Text
27 lines
415 B
Text
readchar=:3 :0
|
|
if.0=#INBUF do. INBUF=:LF,~1!:1]1 end.
|
|
r=.3 u:{.INBUF
|
|
INBUF=:}.INBUF
|
|
r
|
|
)
|
|
|
|
writechar=:3 :0
|
|
OUTBUF=:OUTBUF,u:y
|
|
)
|
|
|
|
subleq=:3 :0
|
|
INBUF=:OUTBUF=:''
|
|
p=.0
|
|
whilst.0<:p do.
|
|
'A B C'=. (p+0 1 2){y
|
|
p=.p+3
|
|
if._1=A do. y=. (readchar'') B} y
|
|
elseif._1=B do. writechar A{y
|
|
elseif. 1 do.
|
|
t=. (B{y)-A{y
|
|
y=. t B}y
|
|
if. 0>:t do.p=.C end.
|
|
end.
|
|
end.
|
|
OUTBUF
|
|
)
|