Annotation of 43BSDReno/pgrm/as.vax/astoks.H, revision 1.1.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.