for (v
= 0; v
< nodenum
; ++v
)
for (v
= START
; DEFINED(v
); v
= RSIB(v
))
for (i
= 1, w
= head
[v
]; DEFINED(w
); w
= head
[w
], ++i
)
if (i
> 1 && !levnxt
&& !levbrk
) break;
if (ARC(v
,0) == BRK(w
) && (levbrk
|| i
== 1))
else if (ARC(v
,0) == NXT(w
) && (levnxt
|| i
== 1))
if (ARC(v
,0) == stopvert
)
else if (ARC(v
,0) == retvert
)
else LABEL(ARC(v
,0)) = TRUE
;
for (i
= 0; i
< ARCNUM(v
); ++i
)
if (DEFINED(ARC(v
,ENDEQ
)))
LABEL(ARC(v
,ENDEQ
)) = TRUE
;
if (DEFINED(ARC(v
,ERREQ
)))
LABEL(ARC(v
,ERREQ
)) = TRUE
;
for (i
= 0; i
< CHILDNUM(v
); ++i
)
for (w
= LCHILD(v
,i
); DEFINED(w
); w
= RSIB(w
))
addlab(v
) /* add labels */
if (NTYPE(v
) != ITERVX
&& LABEL(v
) )
RECURSE(addlab
,v
,recvar
);
if (NTYPE(v
) == ITERVX
&& LABEL(NXT(v
)))
LABEL(NXT(v
)) = nxtlab();
return(labinit
+ (count
++) * labinc
);