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

unix.superglobalmegacorp.com

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