xref: /original-bsd/old/as.vax/astoks.H (revision b35ae1a0)
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) 04/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
120