xref: /csrg-svn/old/as.vax/astoks.H (revision 5817)
1*5817Srrh /* Copyright (c) 1980 Regents of the University of California */
2*5817Srrh /* "@(#)astoks.H 4.1 02/14/82" */
3*5817Srrh /*
4*5817Srrh  *	Message to the wary:  The order of tokens has been
5*5817Srrh  *	hand optimized and assigned to that all switch statements
6*5817Srrh  *	are implemented by a casel instruction on the VAX.
7*5817Srrh  *	there are 4 switch statements that have to be worried about:
8*5817Srrh  *	l)	Per character switch in the character scanner (scan_dot_s)
9*5817Srrh  *	2)	Per token switch in the buffer manager (yylex)
10*5817Srrh  *	3)	Per keyword switch in the parser (yyparse)
11*5817Srrh  *	4)	Leading token switch for argments to opcodes
12*5817Srrh  *
13*5817Srrh  *	You can't just add new tokens willy-nilly; make sure that you
14*5817Srrh  *	add them into the proper order!
15*5817Srrh  */
16*5817Srrh # define FIRSTTOKEN	AWKFIXESME
17*5817Srrh 
18*5817Srrh /*
19*5817Srrh  *	Tokens between ISPACE and INSTn are used by the per keyword switch
20*5817Srrh  */
21*5817Srrh # define ISPACE 	AWKFIXESME
22*5817Srrh # define IBYTE 		AWKFIXESME
23*5817Srrh # define IWORD 		AWKFIXESME
24*5817Srrh # define IINT 		AWKFIXESME
25*5817Srrh # define ILONG 		AWKFIXESME
26*5817Srrh # define IQUAD 		AWKFIXESME
27*5817Srrh # define IOCTA 		AWKFIXESME
28*5817Srrh # define IDATA 		AWKFIXESME
29*5817Srrh # define IGLOBAL 	AWKFIXESME
30*5817Srrh # define ISET 		AWKFIXESME
31*5817Srrh # define ITEXT 		AWKFIXESME
32*5817Srrh # define ICOMM 		AWKFIXESME
33*5817Srrh # define ILCOMM 	AWKFIXESME
34*5817Srrh # define IFFLOAT 	AWKFIXESME
35*5817Srrh # define IDFLOAT 	AWKFIXESME
36*5817Srrh # define IGFLOAT 	AWKFIXESME
37*5817Srrh # define IHFLOAT 	AWKFIXESME
38*5817Srrh # define IORG 		AWKFIXESME
39*5817Srrh # define IASCII 	AWKFIXESME
40*5817Srrh # define IASCIZ 	AWKFIXESME
41*5817Srrh # define ILSYM 		AWKFIXESME
42*5817Srrh # define IFILE 		AWKFIXESME
43*5817Srrh # define ILINENO 	AWKFIXESME
44*5817Srrh # define IABORT 	AWKFIXESME
45*5817Srrh # define IFILL		AWKFIXESME
46*5817Srrh /*
47*5817Srrh  *	Tokens between ISTAB and REG are used in the per token switch
48*5817Srrh  */
49*5817Srrh # define ISTAB 		AWKFIXESME
50*5817Srrh # define ISTABSTR 	AWKFIXESME
51*5817Srrh # define ISTABNONE 	AWKFIXESME
52*5817Srrh # define ISTABDOT 	AWKFIXESME
53*5817Srrh # define IJXXX 		AWKFIXESME
54*5817Srrh # define IALIGN 	AWKFIXESME
55*5817Srrh # define INST0 		AWKFIXESME
56*5817Srrh # define INSTn 		AWKFIXESME
57*5817Srrh 
58*5817Srrh # define BFINT		AWKFIXESME
59*5817Srrh # define PARSEEOF	AWKFIXESME
60*5817Srrh # define ILINESKIP	AWKFIXESME
61*5817Srrh # define VOID		AWKFIXESME
62*5817Srrh # define SKIP		AWKFIXESME
63*5817Srrh # define INT		AWKFIXESME
64*5817Srrh # define BIGNUM		AWKFIXESME
65*5817Srrh # define NAME		AWKFIXESME
66*5817Srrh # define STRING		AWKFIXESME
67*5817Srrh /*
68*5817Srrh  *	Tokens between SIZESPEC and REGOP are used in the instruction
69*5817Srrh  *	argument switch
70*5817Srrh  */
71*5817Srrh # define SIZESPEC 	AWKFIXESME
72*5817Srrh # define REG		AWKFIXESME
73*5817Srrh # define MUL		AWKFIXESME
74*5817Srrh # define LITOP		AWKFIXESME
75*5817Srrh # define LP		AWKFIXESME
76*5817Srrh # define MP		AWKFIXESME
77*5817Srrh /*
78*5817Srrh  *	Tokens between REGOP and DIV are used in the per character switch
79*5817Srrh  */
80*5817Srrh # define NEEDSBUF	AWKFIXESME	/*signal refilling the input buffer*/
81*5817Srrh # define REGOP		AWKFIXESME	/*the percent sign*/
82*5817Srrh # define NL		AWKFIXESME
83*5817Srrh # define SCANEOF	AWKFIXESME
84*5817Srrh # define BADCHAR	AWKFIXESME
85*5817Srrh # define SP		AWKFIXESME
86*5817Srrh # define ALPH		AWKFIXESME
87*5817Srrh # define DIG		AWKFIXESME
88*5817Srrh # define SQ		AWKFIXESME
89*5817Srrh # define DQ		AWKFIXESME
90*5817Srrh # define SH		AWKFIXESME
91*5817Srrh # define LSH		AWKFIXESME
92*5817Srrh # define RSH		AWKFIXESME
93*5817Srrh # define MINUS		AWKFIXESME
94*5817Srrh # define SIZEQUOTE	AWKFIXESME
95*5817Srrh /*
96*5817Srrh  *	Tokens between XOR and RP are used at random (primarily by the
97*5817Srrh  *	expression analyzer), and not used in any switch
98*5817Srrh  */
99*5817Srrh # define XOR		AWKFIXESME
100*5817Srrh # define DIV		AWKFIXESME
101*5817Srrh 
102*5817Srrh # define SEMI		AWKFIXESME
103*5817Srrh # define COLON		AWKFIXESME
104*5817Srrh # define PLUS		AWKFIXESME
105*5817Srrh # define IOR		AWKFIXESME
106*5817Srrh # define AND		AWKFIXESME
107*5817Srrh # define TILDE		AWKFIXESME
108*5817Srrh # define ORNOT		AWKFIXESME
109*5817Srrh # define CM		AWKFIXESME
110*5817Srrh # define LB		AWKFIXESME
111*5817Srrh # define RB		AWKFIXESME
112*5817Srrh # define RP		AWKFIXESME
113*5817Srrh 
114*5817Srrh # define LASTTOKEN	AWKFIXESME
115