xref: /original-bsd/old/as.vax/astoks.H (revision e6368d46)
1*e6368d46Sdist /*
2*e6368d46Sdist  * Copyright (c) 1980 Regents of the University of California.
3*e6368d46Sdist  * All rights reserved.  The Berkeley software License Agreement
4*e6368d46Sdist  * specifies the terms and conditions for redistribution.
5*e6368d46Sdist  *
6*e6368d46Sdist  *	@(#)astoks.H	5.1 (Berkeley) 04/30/85
7*e6368d46Sdist  */
8*e6368d46Sdist 
90496a3b4Srrh /*
100496a3b4Srrh  *	Message to the wary:  The order of tokens has been
110496a3b4Srrh  *	hand optimized and assigned to that all switch statements
120496a3b4Srrh  *	are implemented by a casel instruction on the VAX.
130496a3b4Srrh  *	there are 4 switch statements that have to be worried about:
140496a3b4Srrh  *	l)	Per character switch in the character scanner (scan_dot_s)
150496a3b4Srrh  *	2)	Per token switch in the buffer manager (yylex)
160496a3b4Srrh  *	3)	Per keyword switch in the parser (yyparse)
170496a3b4Srrh  *	4)	Leading token switch for argments to opcodes
180496a3b4Srrh  *
190496a3b4Srrh  *	You can't just add new tokens willy-nilly; make sure that you
200496a3b4Srrh  *	add them into the proper order!
210496a3b4Srrh  */
220496a3b4Srrh # define FIRSTTOKEN	AWKFIXESME
230496a3b4Srrh 
240496a3b4Srrh /*
250496a3b4Srrh  *	Tokens between ISPACE and INSTn are used by the per keyword switch
260496a3b4Srrh  */
270496a3b4Srrh # define ISPACE 	AWKFIXESME
280496a3b4Srrh # define IBYTE 		AWKFIXESME
290496a3b4Srrh # define IWORD 		AWKFIXESME
300496a3b4Srrh # define IINT 		AWKFIXESME
310496a3b4Srrh # define ILONG 		AWKFIXESME
320496a3b4Srrh # define IQUAD 		AWKFIXESME
330496a3b4Srrh # define IOCTA 		AWKFIXESME
340496a3b4Srrh # define IDATA 		AWKFIXESME
350496a3b4Srrh # define IGLOBAL 	AWKFIXESME
360496a3b4Srrh # define ISET 		AWKFIXESME
370496a3b4Srrh # define ITEXT 		AWKFIXESME
380496a3b4Srrh # define ICOMM 		AWKFIXESME
390496a3b4Srrh # define ILCOMM 	AWKFIXESME
400496a3b4Srrh # define IFFLOAT 	AWKFIXESME
410496a3b4Srrh # define IDFLOAT 	AWKFIXESME
420496a3b4Srrh # define IGFLOAT 	AWKFIXESME
430496a3b4Srrh # define IHFLOAT 	AWKFIXESME
440496a3b4Srrh # define IORG 		AWKFIXESME
450496a3b4Srrh # define IASCII 	AWKFIXESME
460496a3b4Srrh # define IASCIZ 	AWKFIXESME
470496a3b4Srrh # define ILSYM 		AWKFIXESME
480496a3b4Srrh # define IFILE 		AWKFIXESME
490496a3b4Srrh # define ILINENO 	AWKFIXESME
500496a3b4Srrh # define IABORT 	AWKFIXESME
510496a3b4Srrh # define IFILL		AWKFIXESME
520496a3b4Srrh /*
530496a3b4Srrh  *	Tokens between ISTAB and REG are used in the per token switch
540496a3b4Srrh  */
550496a3b4Srrh # define ISTAB 		AWKFIXESME
560496a3b4Srrh # define ISTABSTR 	AWKFIXESME
570496a3b4Srrh # define ISTABNONE 	AWKFIXESME
580496a3b4Srrh # define ISTABDOT 	AWKFIXESME
590496a3b4Srrh # define IJXXX 		AWKFIXESME
600496a3b4Srrh # define IALIGN 	AWKFIXESME
610496a3b4Srrh # define INST0 		AWKFIXESME
620496a3b4Srrh # define INSTn 		AWKFIXESME
630496a3b4Srrh 
640496a3b4Srrh # define BFINT		AWKFIXESME
650496a3b4Srrh # define PARSEEOF	AWKFIXESME
660496a3b4Srrh # define ILINESKIP	AWKFIXESME
670496a3b4Srrh # define VOID		AWKFIXESME
680496a3b4Srrh # define SKIP		AWKFIXESME
690496a3b4Srrh # define INT		AWKFIXESME
700496a3b4Srrh # define BIGNUM		AWKFIXESME
710496a3b4Srrh # define NAME		AWKFIXESME
720496a3b4Srrh # define STRING		AWKFIXESME
730496a3b4Srrh /*
740496a3b4Srrh  *	Tokens between SIZESPEC and REGOP are used in the instruction
750496a3b4Srrh  *	argument switch
760496a3b4Srrh  */
770496a3b4Srrh # define SIZESPEC 	AWKFIXESME
780496a3b4Srrh # define REG		AWKFIXESME
790496a3b4Srrh # define MUL		AWKFIXESME
800496a3b4Srrh # define LITOP		AWKFIXESME
810496a3b4Srrh # define LP		AWKFIXESME
820496a3b4Srrh # define MP		AWKFIXESME
830496a3b4Srrh /*
840496a3b4Srrh  *	Tokens between REGOP and DIV are used in the per character switch
850496a3b4Srrh  */
860496a3b4Srrh # define REGOP		AWKFIXESME	/*the percent sign*/
870496a3b4Srrh # define NL		AWKFIXESME
880496a3b4Srrh # define SCANEOF	AWKFIXESME
890496a3b4Srrh # define BADCHAR	AWKFIXESME
900496a3b4Srrh # define SP		AWKFIXESME
910496a3b4Srrh # define ALPH		AWKFIXESME
920496a3b4Srrh # define DIG		AWKFIXESME
930496a3b4Srrh # define SQ		AWKFIXESME
940496a3b4Srrh # define DQ		AWKFIXESME
950496a3b4Srrh # define SH		AWKFIXESME
960496a3b4Srrh # define LSH		AWKFIXESME
970496a3b4Srrh # define RSH		AWKFIXESME
980496a3b4Srrh # define MINUS		AWKFIXESME
990496a3b4Srrh # define SIZEQUOTE	AWKFIXESME
1000496a3b4Srrh /*
1010496a3b4Srrh  *	Tokens between XOR and RP are used at random (primarily by the
1020496a3b4Srrh  *	expression analyzer), and not used in any switch
1030496a3b4Srrh  */
1040496a3b4Srrh # define XOR		AWKFIXESME
1050496a3b4Srrh # define DIV		AWKFIXESME
1060496a3b4Srrh 
1070496a3b4Srrh # define SEMI		AWKFIXESME
1080496a3b4Srrh # define COLON		AWKFIXESME
1090496a3b4Srrh # define PLUS		AWKFIXESME
1100496a3b4Srrh # define IOR		AWKFIXESME
1110496a3b4Srrh # define AND		AWKFIXESME
1120496a3b4Srrh # define TILDE		AWKFIXESME
1130496a3b4Srrh # define ORNOT		AWKFIXESME
1140496a3b4Srrh # define CM		AWKFIXESME
1150496a3b4Srrh # define LB		AWKFIXESME
1160496a3b4Srrh # define RB		AWKFIXESME
1170496a3b4Srrh # define RP		AWKFIXESME
1180496a3b4Srrh 
1190496a3b4Srrh # define LASTTOKEN	AWKFIXESME
120