Untitled
unknown
plain_text
a year ago
1.1 kB
10
Indexable
GET "libhdr.h"
MANIFEST
{ len = 0
cnt = 1
data = 2
upb = 3
}
LET start() = VALOF
{ LET arr = "*x01*x05*x00*x07*x02*x09*x00*x04"
AND out = getarr(5)
FOR i = 1 TO arr%0 DO
{ TEST arr%i = '*x00' THEN
{ IF out!data!(out!cnt)!cnt > 0 DO
{ out!cnt +:= 1
IF out!cnt = out!len DO grwarr(out, out!len*2)
out!data!(out!cnt)!data := getarr(5)
}
}
ELSE
{ LET p = out!data!(out!cnt)
TEST p = 0 THEN { p := getarr(5); out!data!(out!cnt) := p }
ELSE IF p!cnt = p!len DO grwarr((p!cnt)-1, out!data!len*2)
p!data!(p!cnt) := arr%i
p!cnt +:= 1
}
}
FOR i = 0 TO out!cnt DO
{ FOR j = 0 TO out!data!i!cnt-1 DO writef("%n ",out!data!i!data!j)
wrch('*n')
}
cleanup(out)
RESULTIS 0
}
AND getarr(n) = VALOF
{ LET new = getvec(upb)
new!len := n
new!cnt := 0
new!data := getvec(n)
FOR i = 0 TO n-1 DO new!data!i := 0
RESULTIS new
}
AND grwarr(a, n) BE
{ LET new = getvec(n)
FOR i = 0 TO a!len-1 DO new!data!i := a!data!i
freevec(a!data)
a!data := new
a!len := n
}
AND cleanup(a) BE
{ FOR i = 0 TO a!cnt DO freevec(a!data!i)
freevec(a!data)
}Editor is loading...
Leave a Comment