Annotation of 43BSD/ucb/pascal/utilities/pc3.h, revision 1.1

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

unix.superglobalmegacorp.com

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