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