4.3BSD/usr/contrib/icon/samples/roman.u1
proc main
local 0,000020,n
local 1,000000,read
local 2,000000,write
local 3,000000,roman
con 0,010000,14,143,141,156,156,157,164,040,143,157,156,166,145,162,164
declend
file roman.icn
line 8
mark L1
lab L2
line 10
mark L0
pnull
var 0
var 1
pnull
invoke 1
asgn
unmark 1
mark L2
var 2
mark L5
var 3
var 0
line 11
invoke 1
esusp
goto L6
lab L5
str 0
lab L6
invoke 1
lab L3
unmark 1
goto L2
lab L4
unmark 1
lab L1
pnull
line 12
pfail
end
proc roman
local 0,001000,n
local 1,000020,arabic
local 2,000020,result
local 3,000040,equiv
local 4,000000,integer
local 5,000000,map
local 6,000000,find
con 0,010000,0
con 1,010000,1,111
con 2,010000,2,111,111
con 3,010000,3,111,111,111
con 4,010000,2,111,126
con 5,010000,1,126
con 6,010000,2,126,111
con 7,010000,3,126,111,111
con 8,010000,4,126,111,111,111
con 9,010000,2,111,130
con 10,002000,0
con 11,010000,7,111,126,130,114,103,104,115
con 12,010000,7,130,114,103,104,115,052,052
con 13,002000,1
con 14,010000,1,052
declend
file roman.icn
line 14
init? L1
mark L1
pnull
var 3
pnull
str 0
str 1
str 2
str 3
str 4
str 5
str 6
str 7
str 8
str 9
line 17
llist 10
asgn
unmark 1
lab L1
mark L2
mark L3
pnull
var 4
var 0
line 18
invoke 1
int 10
numgt
esusp
goto L4
lab L3
line 18
pfail
lab L4
unmark 1
lab L2
mark L5
pnull
var 2
str 0
line 19
asgn
unmark 1
lab L5
mark L6
mark L0
pnull
var 1
pnull
var 0
line 20
bang
asgn
pop
mark L0
pnull
var 2
pnull
var 5
var 2
str 11
str 12
line 21
invoke 3
pnull
var 3
pnull
var 1
int 13
plus
subsc
cat
asgn
unmark 1
lab L7
efail
lab L8
unmark 1
lab L6
mark L9
mark L10
var 6
str 14
var 2
line 22
invoke 2
unmark 1
line 22
pfail
goto L11
lab L10
mark L12
var 2
pret
lab L12
line 22
pfail
lab L11
unmark 1
lab L9
pnull
line 23
pfail
end