static char sccsid
[] = "@(#)4.out.c 4.1 (Berkeley) 2/11/83";
int tab
; /* number of tabs to indent */
LOGICAL tabfirst
; /* FALSE if doing IF of ELSE IF */
if (!LABEL(v
) && type
== FMTVX
)
OUTSTR("#following unreferenced format statement commented out\n");
if (LABEL(v
) && type
!= ITERVX
)
ASSERT(tabfirst
, outrat
);
else if (tabfirst
&& type
!= DUMVX
&& type
!= ITERVX
)
newlevel(v
,0,tab
,YESTAB
);
if (progtype
!= blockdata
)
ASSERT(LEVEL(v
) == 1,outrat
);
ASSERT(LEVEL(v
) == 1,outrat
);
for (i
= ARCNUM(v
)-1; i
>=0; --i
) /* arcs were stored backward */
OUTNUM(LABEL(LABREF(v
)));
newlevel(v
,THEN
,tab
+1,YESTAB
);
newlevel(v
,THEN
,tab
+1,YESTAB
);
ASSERT(DEFINED(w
),outrat
);
if (NTYPE(w
) == IFVX
&& !LABEL(w
) && !DEFINED(RSIB(w
)) &&
newlevel(v
,ELSE
,tab
,NOTAB
);
newlevel(v
,ELSE
,tab
+1,YESTAB
);
newlevel(v
,0,tab
,YESTAB
);
ASSERT(DEFINED(NXT(v
)),outrat
);
prlab(LABEL(NXT(v
)),tab
);
newlevel(v
,0,tab
+1,YESTAB
);
newlevel(v
,0,tab
+1,YESTAB
);
ASSERT(DEFINED(ARC(v
,0)),outrat
);
prpred(LPRED(ARC(v
,0)),TRUE
);
ASSERT(DEFINED(ARC(v
,0)),outrat
);
ASSERT(DEFINED(LPRED(ARC(v
,0))),outrat
);
prpred(LPRED(ARC(v
,0)),TRUE
);
newlevel(v
,0,tab
+1,YESTAB
);
newlevel(v
,0,tab
+1,YESTAB
);
newlevel(v
,0,tab
+1,YESTAB
);
if (type
== ACASVX
&&DEFINED(LCHILD(v
,ELSE
)))
newlevel(v
,1,tab
+1,YESTAB
);
OUTNUM(LABEL(FMTREF(v
)));
if (DEFINED(ARC(v
,ENDEQ
)))
OUTNUM(LABEL(ARC(v
,ENDEQ
)));
if (DEFINED(ARC(v
,ERREQ
)))
OUTNUM(LABEL(ARC(v
,ERREQ
)));
newlevel(v
,ch
,tab
,tabfirst
)
int ch
; /* number of lchild of v being processed */
int tab
; /* number of tabs to indent */
LOGICAL tabfirst
; /* same as for outrat */
if (NTYPE(v
) == ACASVX
|| NTYPE(v
) == ICASVX
)
addbrace
= HASBRACE(v
,ch
);
ASSERT(tabfirst
|| !addbrace
,newlevel
);
if(tabfirst
&& NTYPE(v
)!=ITERVX
&& NTYPE(v
)!=DUMVX
) OUTSTR("\n");
for (w
= LCHILD(v
,ch
); DEFINED(w
); w
= RSIB(w
))
if (NEG(v
)) OUTSTR("!(");
ASSERT(NTYPE(v
) == STLNVX
|| NTYPE(v
) == FMTVX
,prstln
);