|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.