date and time created 92/10/17 13:23:57 by bostic
[unix-history] / usr / src / old / as.tahoe / astoks.H
CommitLineData
641e1384
KB
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