RosettaCodeData/Task/Subleq/EasyLang/subleq.easy
2026-04-30 12:34:36 -04:00

39 lines
733 B
Text

global inpos inp$ .
func inp .
if inpos = 0
inp$ = input
if error = 1 : return 255
inpos = 1
.
if inpos <= len inp$
h = strcode substr inp$ inpos 1
inpos += 1
return h
.
inpos = 0
return 10
.
proc subleq &mem[] .
repeat
a = mem[p + 1]
b = mem[p + 2]
c = mem[p + 3]
p += 3
if a = -1
mem[b + 1] = inp
elif b = -1
write strchar mem[a + 1]
else
mem[b + 1] -= mem[a + 1]
if mem[b + 1] <= 0
p = c
.
.
until p < 0
.
.
prog[] = [ 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 ]
subleq prog[]
#
input_data
dummy data