ml/i test -- structures
tests delimiter structures and scanning mechanism
mcins%.
mcskip mt,<>
mcwarn call withs this withs macro
call this macro mcleng (x)call this macro mcset p1=1
call this macro   mcnowarn<>mcdef a withs b with space with c
as<mcset p1=p1+1
%p1.>
a b c<>a   b c<45>mcleng(a b  c) sb 123456
mcdef 9 with.with 2 as 1
9.2<>mcsub(9. 2,9.2+3,4)3<>mcleng(9 .2)mcdef usen1 n 1
as<%3+t1.%7-%d2..>
usen1 xx n xx 1 sb 123456
mcdef mac1 n1 opt 7 n0 or=or=with space or=with. or
=withs.with+or=with.with-all n1
as<%b1.%b2.%b3.%b4.%a4+1.%a6.>
mac1<>1=2= 3=.4= .+5=.-6 7 sb 1234567
mcdef mac2 withs space as 1
mcdef mac3 with spaces as 23
mcskip mac4 withs spaces
mcdef space with mac5 as 4
mcdef spaces with mac6 as 5
mcins spaces with mac7.
mac2 mac3   mac4   <> mac5   mac6 mac7 4+2. sb 123456
mcdef twonl nl withs nl as 1
twonl

mcdef n000123 twice opt x n123 or 6 all n00
as<%a1.%a2.%a3.%%dt1.-1.>
twice 2 x 3 twice 4 6 sb 123456
mcdef str,(ssas<%a1.>
str 1,mcdef%<mcsub(mcdef str2 2 n0 ssas
mcdef 34 ssas<%wd0.>
str2 str%<mcskip 2<>34 sb 1234
mcnodef<>mcdef-20 vars vm1 as<%t3.>
mcdefg 10 vars vm2;as<mcset t10=1+vm1
%t10-t1.>
vm1<>vm2 xx;mcdef excl1 4 n0 as<%%d1.-%a1..>
mcdefg 4 withs excl2 withs + as<mcsub(%wd0.,1,1)5>
mcskip sk 4 n0
mcdef unexcl 4 as<%a1.>
excl1 excl1 3 sk 4 excl2+unexcl excl1-2 4 sb 123456
mcskip 89 9 n0
mcskip d,9 opt 9 or 99 all n0
89 x 9 x 9 x 99 sb 9999
mcdef struct n1 opt d1 opt d11 or d12 n2
all n1 or n9 d2 n2 opt d22 n9 or d23 all all
as<%a1.%a2.%a3.%a4.%a5.%a6.%a7.>
struct 1 d1 2 d11 3 d1 4 d12 5 d22 6 d2 7 d23 sb 1234567
mcdef 1234 withs nl withs beyond as never matched
mcdef opt str2 or str4 opt str23 opt str24 all all all
as <%1+t1.mcsub(%wd0.,0,0)>
str2<>str4 str23 str24 sb 1234
