| 1 | #define maxlsw 10 /* max number of switches and labels per statement */ |
| 2 | #define implicit 0L /* "label" of following line so all flow can be treated as jump to label */ |
| 3 | struct lablist {long labelt; struct lablist *nxtlab; }; |
| 4 | extern struct lablist *endlab, *errlab, *reflab, *linelabs, *newlab; |
| 5 | extern long label(); |
| 6 | |
| 7 | extern int routbeg; /* line number of first line of routine */ |
| 8 | extern int nameline; /* line number of function/subroutine st., if any */ |
| 9 | extern int stflag; /* determines whether at beginning or middle of block of straight line code */ |
| 10 | |
| 11 | |
| 12 | |
| 13 | extern char buffer[]; |
| 14 | extern int endbuf; |
| 15 | |
| 16 | extern int nlabs, lswnum, swptr, flag, |
| 17 | counter, p1, p3, begline, endline, r1,r2, endcom; |
| 18 | extern long begchar, endchar, comchar; |
| 19 | |
| 20 | |
| 21 | /* statement types not associated with actual node types */ |
| 22 | #define contst -1 |
| 23 | #define ungo -2 |
| 24 | #define arithif -3 |
| 25 | #define readst -8 |
| 26 | #define writest -9 |
| 27 | #define entry -10 |
| 28 | |
| 29 | |
| 30 | extern char *pred, *inc, *prerw, *postrw, *exp, *stcode; |
| 31 | |
| 32 | #define maxdo 20 /* max nesting of do loops */ |
| 33 | extern long dostack[maxdo]; /* labels of do nodes */ |
| 34 | extern int doloc[maxdo]; /* loc of do node */ |
| 35 | extern int doptr; |
| 36 | |
| 37 | |
| 38 | extern struct list *FMTLST; /* list of FMTVX's generated */ |
| 39 | extern struct list *ENTLST; /* list of STLNVX nodes corresponding to entry statements */ |