|
|
1.1 ! root 1: /* def.h 4.2 83/08/11 */ ! 2: ! 3: #define ASSERT(P,R) {if (!(P)) {fprintf(stderr,"failed assertion in routine R: P\n"); abort();}} ! 4: ! 5: extern int routnum, routerr; ! 6: extern long rtnbeg; /* number of chars up to beginnine of curernt routing */ ! 7: extern int **graph, nodenum; ! 8: extern int stopflg; /* turns off generation of stop statements */ ! 9: ! 10: #define TRUE 1 ! 11: #define FALSE 0 ! 12: #define LOGICAL int ! 13: #define VERT int ! 14: #define DEFINED(v) (v >= 0) ! 15: #define UNDEFINED -1 ! 16: ! 17: /* node types */ ! 18: #define STLNVX 0 ! 19: #define IFVX 1 ! 20: #define DOVX 2 ! 21: #define IOVX 3 ! 22: #define FMTVX 4 ! 23: #define COMPVX 5 ! 24: #define ASVX 6 ! 25: #define ASGOVX 7 ! 26: #define LOOPVX 8 ! 27: #define WHIVX 9 ! 28: #define UNTVX 10 ! 29: #define ITERVX 11 ! 30: #define THENVX 12 ! 31: #define STOPVX 13 ! 32: #define RETVX 14 ! 33: #define DUMVX 15 ! 34: #define GOVX 16 ! 35: #define BRKVX 17 ! 36: #define NXTVX 18 ! 37: #define SWCHVX 19 ! 38: #define ACASVX 20 ! 39: #define ICASVX 21 ! 40: ! 41: #define TYPENUM 22 ! 42: ! 43: ! 44: extern int hascom[TYPENUM]; /* FALSE for types with no comments, 2 otherwise */ ! 45: extern int nonarcs[TYPENUM]; /* number of wds per node other than arcs */ ! 46: extern VERT *arc(), *lchild(); ! 47: extern int *vxpart(), *negpart(), *predic(), *expres(), *level(), *stlfmt(); ! 48: /* node parts */ ! 49: #define FIXED 4 /* number of wds needed in every node */ ! 50: #define NTYPE(v) graph[v][0] ! 51: #define BEGCOM(v) graph[v][1] ! 52: #define RSIB(v) graph[v][2] ! 53: #define REACH(v) graph[v][3] ! 54: #define LCHILD(v,i) *lchild(v,i) ! 55: #define CHILDNUM(v) childper[NTYPE(v)] ! 56: #define ARC(v,i) *arc(v,i) ! 57: #define ARCNUM(v) *((arcsper[NTYPE(v)] >= 0) ? &arcsper[NTYPE(v)]: &graph[v][-arcsper[NTYPE(v)]]) ! 58: ! 59: /* STLNVX, FMTVX parts */ ! 60: #define BEGCODE(v) *stlfmt(v,0) /* 1st char of line on disk or address of string */ ! 61: #define ONDISK(v) *stlfmt(v,1) /* FALSE if in core,# of lines on disk otherwise */ ! 62: #define CODELINES(v) *vxpart(v,STLNVX,2) /* # of statements stored in node */ ! 63: ! 64: /* IOVX parts */ ! 65: #define FMTREF(v) *vxpart(v,IOVX,0) /* FMTVX associated with i/o statememt */ ! 66: #define PRERW(v) *vxpart(v,IOVX,1) /* string occurring in i/o statement before parts with labels */ ! 67: #define POSTRW(v) *vxpart(v,IOVX,2) /* string occurring in i/o statement after parts wih labels */ ! 68: #define ENDEQ 1 /* arc number associated with endeq */ ! 69: #define ERREQ 2 /* arc number associated wth erreq */ ! 70: ! 71: /* ITERVX parts */ ! 72: #define NXT(v) *vxpart(v,ITERVX,0) /* THENVX containing condition for iteration for WHILE or UNTIL */ ! 73: #define FATH(v) *vxpart(v,ITERVX,1) /* father of v */ ! 74: #define LPRED(v) *vxpart(v,ITERVX,2) /* loop predicate for WHILE, UNTIL */ ! 75: ! 76: /*DOVX parts */ ! 77: #define INC(v) *vxpart(v,DOVX,0) /* string for iteration condition of DO */ ! 78: ! 79: /* IFVX,THENVX parts */ ! 80: #define PRED(v) *predic(v) /* string containing predicate */ ! 81: #define NEG(v) *negpart(v) /* TRUE if predicate negated */ ! 82: #define THEN 0 /* arc number of true branch */ ! 83: #define ELSE 1 /* arc number of false branch */ ! 84: ! 85: /* miscellaneous parts */ ! 86: #define EXP(v) *expres(v) /* expression - ASVX, COMPVX, ASGOVX, SWCHVX, ICASVX */ ! 87: #define LABREF(v) *vxpart(v,ASVX,1) /* node referred to by label in ASSIGN statement */ ! 88: ! 89: ! 90: /* BRKVX, NXTVX parts */ ! 91: #define LEVEL(v) *level(v) ! 92: ! 93: /* also COMPVX, ASGOVX, SWCHVX, and DUMVX contain wd for number of arcs */ ! 94: /* location of this wd specified by negative entry in arcsper */ ! 95: extern int arcsper[TYPENUM]; ! 96: ! 97: /* also nodes contain wds for children as specified by childper */ ! 98: extern childper[TYPENUM]; ! 99: ! 100: ! 101: /* switches */ ! 102: extern int intcase, arbcase, whiloop, invelse, exitsize, maxnode, ! 103: maxhash, progress, labinit, labinc, inputform, debug,levbrk,levnxt,mkunt; ! 104: ! 105: /* arrays */ ! 106: extern int *after; ! 107: extern char *typename[]; ! 108: ! 109: struct list { ! 110: VERT elt; ! 111: struct list *nxtlist; ! 112: }; ! 113: struct list *append(), *consl(); ! 114: extern VERT retvert, stopvert; /* specifies unique return and stop vertices */ ! 115: extern VERT START; ! 116: extern int progtype; /* type of program - main or sub or blockdata */ ! 117: #define sub 1 ! 118: #define blockdata 2 ! 119: ! 120: extern FILE *infd, *debfd, *outfd;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.