Annotation of researchv10no/cmd/struct/def.h, revision 1.1

1.1     ! root        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;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.