4.3BSD/usr/contrib/icon/samples/meander.u1
proc main
local 0,000020,line
local 1,000020,alpha
local 2,000020,n
local 3,000000,read
local 4,000000,tab
local 5,000000,upto
local 6,000000,move
local 7,000000,integer
local 8,000000,write
local 9,000000,meander
con 0,020000,1,072
con 1,002000,1
con 2,002000,0
con 3,010000,15,145,162,162,157,156,145,157,165,163,040,151,156,160,165,164
declend
file meander.icn
line 9
mark L1
lab L2
line 11
mark L0
pnull
var 0
var 3
pnull
invoke 1
asgn
unmark 1
mark L2
var 0
line 12
bscan
mark L5
pnull
var 1
var 4
var 5
cset 0
invoke 1
invoke 1
asgn
unmark 1
mark L7
var 6
int 1
line 13
invoke 1
unmark 1
lab L7
mark L8
pnull
var 2
var 7
var 4
int 2
line 14
invoke 1
invoke 1
asgn
unmark 1
var 8
var 9
var 1
var 2
invoke 2
invoke 1
goto L9
lab L8
var 8
str 3
line 15
invoke 1
lab L9
goto L6
lab L5
var 8
str 3
line 17
invoke 1
lab L6
line 12
escan
lab L3
unmark 1
goto L2
lab L4
unmark 1
lab L1
pnull
line 19
pfail
end
proc meander
local 0,001000,alpha
local 1,001000,n
local 2,000020,result
local 3,000020,t
local 4,000020,i
local 5,000020,c
local 6,000020,k
local 7,000000,repl
local 8,000000,find
con 0,002000,1
con 1,002000,0
declend
file meander.icn
line 21
mark L1
pnull
var 4
pnull
var 6
pnull
var 0
line 23
size
asgn
asgn
unmark 1
lab L1
mark L2
pnull
var 3
pnull
var 1
int 0
line 24
minus
asgn
unmark 1
lab L2
mark L3
pnull
var 2
var 7
pnull
var 0
int 0
line 25
subsc
var 3
invoke 2
asgn
unmark 1
lab L3
mark L4
lab L5
line 26
mark L0
pnull
var 5
pnull
var 0
var 4
subsc
asgn
unmark 1
mark L5
mark L8
var 8
pnull
pnull
var 2
pnull
var 3
line 27
neg
int 1
sect
var 5
cat
var 2
invoke 2
unmark 1
pnull
var 4
dup
int 0
line 28
minus
asgn
goto L9
lab L8
mark L10
pnull
var 2
dup
var 5
line 29
cat
asgn
unmark 1
lab L10
pnull
var 4
var 6
asgn
lab L9
lab L6
unmark 1
goto L5
lab L7
unmark 1
lab L4
mark L11
mark L12
var 2
line 31
pret
lab L12
line 31
pfail
unmark 1
lab L11
pnull
line 32
pfail
end