new version from Chris Torek
[unix-history] / usr / src / old / as.vax / astoks.H
CommitLineData
bcf1365c
DF
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) %G%
7 */
8
b41db250
RH
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 */
b41db250
RH
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