+/* Copyright (c) 1980 Regents of the University of California */
+/* "@(#)astoks.h 4.1 %G%" */
+/*
+ * Message to the wary: The order of tokens has been
+ * hand optimized and assigned to that all switch statements
+ * are implemented by a casel instruction on the VAX.
+ * there are 4 switch statements that have to be worried about:
+ * l) Per character switch in the character scanner (scan_dot_s)
+ * 2) Per token switch in the buffer manager (yylex)
+ * 3) Per keyword switch in the parser (yyparse)
+ * 4) Leading token switch for argments to opcodes
+ *
+ * You can't just add new tokens willy-nilly; make sure that you
+ * add them into the proper order!
+ */
+# define FIRSTTOKEN 0
+
+/*
+ * Tokens between ISPACE and INSTn are used by the per keyword switch
+ */
+# define ISPACE 1
+# define IBYTE 2
+# define IWORD 3
+# define IINT 4
+# define ILONG 5
+# define IDATA 6
+# define IGLOBAL 7
+# define ISET 8
+# define ITEXT 9
+# define ICOMM 10
+# define ILCOMM 11
+# define IFLOAT 12
+# define IDOUBLE 13
+# define IORG 14
+# define IASCII 15
+# define IASCIZ 16
+# define ILSYM 17
+# define IFILE 18
+# define ILINENO 19
+# define IABORT 20
+# define IFILL 21
+/*
+ * Tokens between ISTAB and REG are used in the per token switch
+ */
+# define ISTAB 23
+# define ISTABSTR 24
+# define ISTABNONE 25
+# define ISTABDOT 26
+# define IJXXX 27
+# define IALIGN 28
+# define INST0 29
+# define INSTn 30
+
+# define BFINT 31
+# define PARSEEOF 32
+# define ILINESKIP 33
+# define VOID 34
+# define SKIP 35
+# define INT 36
+# define FLTNUM 37
+# define NAME 38
+# define STRING 39
+# define QUAD 40
+/*
+ * Tokens between SIZESPEC and REGOP are used in the instruction
+ * argument switch
+ */
+# define SIZESPEC 41
+# define REG 42
+# define MUL 43
+# define LITOP 44
+# define LP 45
+# define MP 46
+/*
+ * Tokens between REGOP and DIV are used in the per character switch
+ */
+# define NEEDSBUF 48 /*signal refilling the input buffer*/
+# define REGOP 49 /*the percent sign*/
+# define NL 50
+# define SCANEOF 51
+# define BADCHAR 52
+# define SP 53
+# define ALPH 54
+# define DIG 55
+# define SQ 56
+# define DQ 57
+# define SH 58
+# define LSH 59
+# define RSH 60
+# define MINUS 61
+# define SIZEQUOTE 62
+/*
+ * Tokens between XOR and RP are used at random (primarily by the
+ * expression analyzer), and not used in any switch
+ */
+# define XOR 64
+# define DIV 65
+
+# define SEMI 66
+# define COLON 67
+# define PLUS 68
+# define IOR 69
+# define AND 70
+# define TILDE 71
+# define ORNOT 72
+# define CM 73
+# define LB 74
+# define RB 75
+# define RP 76
+
+# define LASTTOKEN 80