Annotation of 43BSDTahoe/usr.bin/struct/def.h, revision 1.1

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;

unix.superglobalmegacorp.com

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