Annotation of 42BSD/ucb/pascal/utilities/pc3.h, revision 1.1.1.1

1.1       root        1:     /* Copyright (c) 1980 Regents of the University of California */
                      2: 
                      3:     /* static  char sccsid[] = "@(#)pc3.h 1.6 7/26/83"; */
                      4: 
                      5:     /*
                      6:      * a symbol table entry.
                      7:      */
                      8: struct symbol {
                      9:     char               *name;                  /* pointer to string table */
                     10:     short              desc;                   /* symbol description */
                     11:     int                        lookup;                 /* whether new or old */
                     12:     struct symbol      *fromp;                 /* its defining .p file */
                     13:     union {                                    /* either */
                     14:        struct {                                /*   for a symbol, */
                     15:            struct symbol       *fromi;         /*     its defining .i file */
                     16:            long                iline;          /*     the .i file line */
                     17:            struct symbol       *rfilep;        /*     its resolving file */
                     18:            long                rline;          /*     resolving file line */
                     19:        }               sym_str;
                     20:        long            checksum;               /*   for a file, its checksum */
                     21:     }                  sym_un;
                     22: };
                     23: 
                     24:     /*
                     25:      * struct for an argument .o file.
                     26:      */
                     27: struct fileinfo {
                     28:     FILE               *file;
                     29:     char               *name;
                     30:     off_t              nextoffset;
                     31: };
                     32: 
                     33:     /*
                     34:      * old archive magic for error detection.
                     35:      */
                     36: #define        OARMAG  0177545
                     37: 
                     38:     /*
                     39:      * this is used to trim pointers into the range of a mod of a prime.
                     40:      */
                     41: #define        SHORT_ABS( n )  ( n & 077777 )
                     42: 
                     43:     /*
                     44:      * a prime number which gets sizeof( struct symboltableinfo )
                     45:      * up to a multiple of BUFSIZ.
                     46:      */
                     47: #define        SYMBOLPRIME     1021
                     48: 
                     49:     /*
                     50:      * number of entries used in this symbol table,
                     51:      * a chain to the next symbol table,
                     52:      * and the entries. (pointers to struct symbols.)
                     53:      */
                     54: struct symboltableinfo {
                     55:     long                       used;
                     56:     struct symboltableinfo     *chain;
                     57:     struct symbol              *entry[ SYMBOLPRIME ];
                     58: };
                     59: 
                     60:     /*
                     61:      * if new struct symbols are needed,
                     62:      * allocate this much space and hack it up into struct symbols.
                     63:      */
                     64: #define        SYMBOLALLOC     BUFSIZ
                     65: 
                     66:     /*
                     67:      * a prime number which gets sizeof( struct stringtableinfo )
                     68:      * up to a multiple of BUFSIZ.
                     69:      */
                     70: #define        STRINGPRIME     1021
                     71: 
                     72:     /*
                     73:      * number of entries used in this string table,
                     74:      * a chain to the next string table,
                     75:      * and the entries. (pointers to the character table.)
                     76:      */
                     77: struct stringtableinfo {
                     78:     long                       used;
                     79:     struct stringtableinfo     *chain;
                     80:     char                       *entry[ STRINGPRIME ];
                     81: };
                     82: 
                     83:     /*
                     84:      * if more character table space is needed,
                     85:      * allocate this much and hack it up into strings.
                     86:      */
                     87: #define        CHARALLOC       BUFSIZ
                     88: 
                     89:     /*
                     90:      * uninitialized pointer
                     91:      */
                     92: #define        NIL     0
                     93: 
                     94:     /*
                     95:      * an enumeration for error types
                     96:      */
                     97: #define        NONE    0
                     98: #define        WARNING 1
                     99: #define ERROR  2
                    100: #define        FATAL   3
                    101: 
                    102:     /*
                    103:      * an enumeration for lookups
                    104:      */
                    105: #define        NEW     0
                    106: #define        OLD     1
                    107: 
                    108:     /*
                    109:      * booleans
                    110:      */
                    111: #define        BOOL    int
                    112: #define        FALSE   0
                    113: #define        TRUE    1
                    114: 
                    115:     /*
                    116:      * function types.
                    117:      */
                    118: struct symbol  *entersymbol();
                    119: struct symbol  *symbolalloc();
                    120: long           stringhash();
                    121: char           *enterstring();
                    122: char           *charalloc();
                    123: BOOL           nextelement();
                    124: time_t         mtime();
                    125: char           *classify();
                    126: char           *article();

unix.superglobalmegacorp.com

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