|
|
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 IDATA AWKFIXESME
28: # define IGLOBAL AWKFIXESME
29: # define ISET AWKFIXESME
30: # define ITEXT AWKFIXESME
31: # define ICOMM AWKFIXESME
32: # define ILCOMM AWKFIXESME
33: # define IFFLOAT AWKFIXESME
34: # define IDFLOAT AWKFIXESME
35: # define IORG AWKFIXESME
36: # define IASCII AWKFIXESME
37: # define IASCIZ AWKFIXESME
38: # define ILSYM AWKFIXESME
39: # define IFILE AWKFIXESME
40: # define ILINENO AWKFIXESME
41: # define IABORT AWKFIXESME
42: # define IFILL AWKFIXESME
43: /*
44: * Tokens between ISTAB and REG are used in the per token switch
45: */
46: # define ISTAB AWKFIXESME
47: # define ISTABSTR AWKFIXESME
48: # define ISTABNONE AWKFIXESME
49: # define ISTABDOT AWKFIXESME
50: # define IJXXX AWKFIXESME
51: # define IALIGN AWKFIXESME
52: # define INST0 AWKFIXESME
53: # define INSTn AWKFIXESME
54:
55: # define BFINT AWKFIXESME
56: # define PARSEEOF AWKFIXESME
57: # define ILINESKIP AWKFIXESME
58: # define VOID AWKFIXESME
59: # define SKIP AWKFIXESME
60: # define INT AWKFIXESME
61: # define BIGNUM AWKFIXESME
62: # define NAME AWKFIXESME
63: # define STRING AWKFIXESME
64: /*
65: * Tokens between SIZESPEC and REGOP are used in the instruction
66: * argument switch
67: */
68: # define SIZESPEC AWKFIXESME
69: # define REG AWKFIXESME
70: # define MUL AWKFIXESME
71: # define LITOP AWKFIXESME
72: # define LP AWKFIXESME
73: # define MP AWKFIXESME
74: /*
75: * Tokens between REGOP and DIV are used in the per character switch
76: */
77: # define REGOP AWKFIXESME /*the percent sign*/
78: # define NL AWKFIXESME
79: # define SCANEOF AWKFIXESME
80: # define BADCHAR AWKFIXESME
81: # define SP AWKFIXESME
82: # define ALPH AWKFIXESME
83: # define DIG AWKFIXESME
84: # define SQ AWKFIXESME
85: # define DQ AWKFIXESME
86: # define SH AWKFIXESME
87: # define LSH AWKFIXESME
88: # define RSH AWKFIXESME
89: # define MINUS AWKFIXESME
90: # define SIZEQUOTE AWKFIXESME
91: /*
92: * Tokens between XOR and RP are used at random (primarily by the
93: * expression analyzer), and not used in any switch
94: */
95: # define XOR AWKFIXESME
96: # define DIV AWKFIXESME
97:
98: # define SEMI AWKFIXESME
99: # define COLON AWKFIXESME
100: # define PLUS AWKFIXESME
101: # define IOR AWKFIXESME
102: # define AND AWKFIXESME
103: # define TILDE AWKFIXESME
104: # define ORNOT AWKFIXESME
105: # define CM AWKFIXESME
106: # define LB AWKFIXESME
107: # define RB AWKFIXESME
108: # define RP AWKFIXESME
109:
110: # define LASTTOKEN AWKFIXESME
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.