xref: /csrg-svn/old/as.vax/astoks.H (revision 19834)
15817Srrh /*
2*19834Sdist  * Copyright (c) 1980 Regents of the University of California.
3*19834Sdist  * All rights reserved.  The Berkeley software License Agreement
4*19834Sdist  * specifies the terms and conditions for redistribution.
5*19834Sdist  *
6*19834Sdist  *	@(#)astoks.H	5.1 (Berkeley) 04/30/85
7*19834Sdist  */
8*19834Sdist 
9*19834Sdist /*
105817Srrh  *	Message to the wary:  The order of tokens has been
115817Srrh  *	hand optimized and assigned to that all switch statements
125817Srrh  *	are implemented by a casel instruction on the VAX.
135817Srrh  *	there are 4 switch statements that have to be worried about:
145817Srrh  *	l)	Per character switch in the character scanner (scan_dot_s)
155817Srrh  *	2)	Per token switch in the buffer manager (yylex)
165817Srrh  *	3)	Per keyword switch in the parser (yyparse)
175817Srrh  *	4)	Leading token switch for argments to opcodes
185817Srrh  *
195817Srrh  *	You can't just add new tokens willy-nilly; make sure that you
205817Srrh  *	add them into the proper order!
215817Srrh  */
225817Srrh # define FIRSTTOKEN	AWKFIXESME
235817Srrh 
245817Srrh /*
255817Srrh  *	Tokens between ISPACE and INSTn are used by the per keyword switch
265817Srrh  */
275817Srrh # define ISPACE 	AWKFIXESME
285817Srrh # define IBYTE 		AWKFIXESME
295817Srrh # define IWORD 		AWKFIXESME
305817Srrh # define IINT 		AWKFIXESME
315817Srrh # define ILONG 		AWKFIXESME
325817Srrh # define IQUAD 		AWKFIXESME
335817Srrh # define IOCTA 		AWKFIXESME
345817Srrh # define IDATA 		AWKFIXESME
355817Srrh # define IGLOBAL 	AWKFIXESME
365817Srrh # define ISET 		AWKFIXESME
375817Srrh # define ITEXT 		AWKFIXESME
385817Srrh # define ICOMM 		AWKFIXESME
395817Srrh # define ILCOMM 	AWKFIXESME
405817Srrh # define IFFLOAT 	AWKFIXESME
415817Srrh # define IDFLOAT 	AWKFIXESME
425817Srrh # define IGFLOAT 	AWKFIXESME
435817Srrh # define IHFLOAT 	AWKFIXESME
445817Srrh # define IORG 		AWKFIXESME
455817Srrh # define IASCII 	AWKFIXESME
465817Srrh # define IASCIZ 	AWKFIXESME
475817Srrh # define ILSYM 		AWKFIXESME
485817Srrh # define IFILE 		AWKFIXESME
495817Srrh # define ILINENO 	AWKFIXESME
505817Srrh # define IABORT 	AWKFIXESME
515817Srrh # define IFILL		AWKFIXESME
525817Srrh /*
535817Srrh  *	Tokens between ISTAB and REG are used in the per token switch
545817Srrh  */
555817Srrh # define ISTAB 		AWKFIXESME
565817Srrh # define ISTABSTR 	AWKFIXESME
575817Srrh # define ISTABNONE 	AWKFIXESME
585817Srrh # define ISTABDOT 	AWKFIXESME
595817Srrh # define IJXXX 		AWKFIXESME
605817Srrh # define IALIGN 	AWKFIXESME
615817Srrh # define INST0 		AWKFIXESME
625817Srrh # define INSTn 		AWKFIXESME
635817Srrh 
645817Srrh # define BFINT		AWKFIXESME
655817Srrh # define PARSEEOF	AWKFIXESME
665817Srrh # define ILINESKIP	AWKFIXESME
675817Srrh # define VOID		AWKFIXESME
685817Srrh # define SKIP		AWKFIXESME
695817Srrh # define INT		AWKFIXESME
705817Srrh # define BIGNUM		AWKFIXESME
715817Srrh # define NAME		AWKFIXESME
725817Srrh # define STRING		AWKFIXESME
735817Srrh /*
745817Srrh  *	Tokens between SIZESPEC and REGOP are used in the instruction
755817Srrh  *	argument switch
765817Srrh  */
775817Srrh # define SIZESPEC 	AWKFIXESME
785817Srrh # define REG		AWKFIXESME
795817Srrh # define MUL		AWKFIXESME
805817Srrh # define LITOP		AWKFIXESME
815817Srrh # define LP		AWKFIXESME
825817Srrh # define MP		AWKFIXESME
835817Srrh /*
845817Srrh  *	Tokens between REGOP and DIV are used in the per character switch
855817Srrh  */
865817Srrh # define REGOP		AWKFIXESME	/*the percent sign*/
875817Srrh # define NL		AWKFIXESME
885817Srrh # define SCANEOF	AWKFIXESME
895817Srrh # define BADCHAR	AWKFIXESME
905817Srrh # define SP		AWKFIXESME
915817Srrh # define ALPH		AWKFIXESME
925817Srrh # define DIG		AWKFIXESME
935817Srrh # define SQ		AWKFIXESME
945817Srrh # define DQ		AWKFIXESME
955817Srrh # define SH		AWKFIXESME
965817Srrh # define LSH		AWKFIXESME
975817Srrh # define RSH		AWKFIXESME
985817Srrh # define MINUS		AWKFIXESME
995817Srrh # define SIZEQUOTE	AWKFIXESME
1005817Srrh /*
1015817Srrh  *	Tokens between XOR and RP are used at random (primarily by the
1025817Srrh  *	expression analyzer), and not used in any switch
1035817Srrh  */
1045817Srrh # define XOR		AWKFIXESME
1055817Srrh # define DIV		AWKFIXESME
1065817Srrh 
1075817Srrh # define SEMI		AWKFIXESME
1085817Srrh # define COLON		AWKFIXESME
1095817Srrh # define PLUS		AWKFIXESME
1105817Srrh # define IOR		AWKFIXESME
1115817Srrh # define AND		AWKFIXESME
1125817Srrh # define TILDE		AWKFIXESME
1135817Srrh # define ORNOT		AWKFIXESME
1145817Srrh # define CM		AWKFIXESME
1155817Srrh # define LB		AWKFIXESME
1165817Srrh # define RB		AWKFIXESME
1175817Srrh # define RP		AWKFIXESME
1185817Srrh 
1195817Srrh # define LASTTOKEN	AWKFIXESME
120