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