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

Defined struct's

list defined in line 107; used 46 times

Defined macros

ASVX defined in line 22; used 4 times
BEGCODE defined in line 58; used 9 times
BEGCOM defined in line 49; used 6 times
ENDEQ defined in line 66; used 4 times
ERREQ defined in line 67; used 4 times
EXP defined in line 84; used 11 times
FIXED defined in line 47; used 33 times
FMTREF defined in line 63; used 6 times
INC defined in line 75; used 2 times
IOVX defined in line 19; used 5 times
LABREF defined in line 85; used 2 times
LEVEL defined in line 89; used 6 times
LPRED defined in line 72; used 5 times
NEG defined in line 79; used 6 times
ONDISK defined in line 59; used 7 times
POSTRW defined in line 65; used 2 times
PRED defined in line 78; used 3 times
PRERW defined in line 64; used 2 times
THENVX defined in line 28; never used
TYPENUM defined in line 39; used 9 times
UNTVX defined in line 26; used 2 times
WHIVX defined in line 25; used 1 times
blockdata defined in line 116; used 2 times
sub defined in line 115; used 3 times

Usage of this include

Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1008
Valid CSS Valid XHTML 1.0 Strict