Annotation of 3BSD/cmd/as/astoks.h, revision 1.1

1.1     ! root        1: /* Copyright (c) 1979 Regents of the University of California */
        !             2: /*
        !             3:  *     Message to the wary:  The order of tokens has been
        !             4:  *     hand optimized and assigned to that all switch statements
        !             5:  *     are implemented by a casel instruction on the VAX. 
        !             6:  *     there are 4 switch statements that have to be worried about:
        !             7:  *     l)      Per character switch in the character scanner (scan_dot_s)
        !             8:  *     2)      Per token switch in the buffer manager (yylex)
        !             9:  *     3)      Per keyword switch in the parser (yyparse)
        !            10:  *     4)      Leading token switch for argments to opcodes
        !            11:  *     
        !            12:  *     You can't just add new tokens willy-nilly; make sure that you
        !            13:  *     add them into the proper order!
        !            14:  */
        !            15: # define FIRSTTOKEN    0
        !            16: 
        !            17: /*
        !            18:  *     Tokens between ISPACE and INSTn are used by the per keyword switch
        !            19:  */
        !            20: # define ISPACE        1
        !            21: # define IBYTE                 2
        !            22: # define IWORD                 3
        !            23: # define IINT          4
        !            24: # define ILONG                 5
        !            25: # define IDATA                 6
        !            26: # define IGLOBAL       7
        !            27: # define ISET          8
        !            28: # define ITEXT                 9
        !            29: # define ICOMM                 10
        !            30: # define ILCOMM        11
        !            31: # define IFLOAT        12
        !            32: # define IDOUBLE       13
        !            33: # define IORG          14
        !            34: # define IASCII        15
        !            35: # define IASCIZ        16
        !            36: # define ILSYM                 17
        !            37: # define IFILE                 18
        !            38: # define ILINENO       19
        !            39: # define IABORT        20
        !            40: /*
        !            41:  *     Tokens between ISTAB and REG are used in the per token switch
        !            42:  */
        !            43: # define ISTAB                 23
        !            44: # define ISTABSTR      24
        !            45: # define ISTABNONE     25
        !            46: # define ISTABDOT      26
        !            47: # define IJXXX                 27
        !            48: # define IALIGN        28
        !            49: # define INST0                 29
        !            50: # define INSTn                 30
        !            51: 
        !            52: # define PARSEEOF      32
        !            53: # define ILINESKIP     33
        !            54: # define VOID          34
        !            55: # define SKIP          35
        !            56: # define INT           36
        !            57: # define FLTNUM                37
        !            58: # define NAME          38
        !            59: # define STRING                39
        !            60: /*
        !            61:  *     Tokens between SIZESPEC and REGOP are used in the instruction
        !            62:  *     argument switch
        !            63:  */
        !            64: # define SIZESPEC      41
        !            65: # define REG           42
        !            66: # define MUL           43
        !            67: # define LITOP         44
        !            68: # define LP            45
        !            69: # define MP            46
        !            70: /*     
        !            71:  *     Tokens between REGOP and DIV are used in the per character switch
        !            72:  */
        !            73: # define NEEDSBUF      48      /*signal refilling the input buffer*/
        !            74: # define REGOP         49      /*the percent sign*/
        !            75: # define NL            50
        !            76: # define SCANEOF       51
        !            77: # define BADCHAR       52
        !            78: # define SP            53
        !            79: # define ALPH          54
        !            80: # define DIG           55
        !            81: # define SQ            56
        !            82: # define DQ            57
        !            83: # define SH            58
        !            84: # define LSH           59
        !            85: # define RSH           60
        !            86: # define MINUS         61
        !            87: # define SIZEQUOTE     62
        !            88: /*
        !            89:  *     Tokens between XOR and RP are used at random (primarily by the
        !            90:  *     expression analyzer), and not used in any switch
        !            91:  */
        !            92: # define XOR           64
        !            93: # define DIV           65
        !            94: 
        !            95: # define SEMI          66
        !            96: # define COLON         67
        !            97: # define PLUS          68
        !            98: # define IOR           69 
        !            99: # define AND           70
        !           100: # define TILDE         71
        !           101: # define ORNOT         72
        !           102: # define CM            73
        !           103: # define LB            74
        !           104: # define RB            75
        !           105: # define RP            76
        !           106: 
        !           107: # define LASTTOKEN     80

unix.superglobalmegacorp.com

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