date and time created 80/08/13 18:55:57 by bill
authorBill Joy <bill@ucbvax.Berkeley.EDU>
Thu, 14 Aug 1980 09:55:57 +0000 (01:55 -0800)
committerBill Joy <bill@ucbvax.Berkeley.EDU>
Thu, 14 Aug 1980 09:55:57 +0000 (01:55 -0800)
SCCS-vsn: old/as.vax/astoks.h 4.1

usr/src/old/as.vax/astoks.h [new file with mode: 0644]

diff --git a/usr/src/old/as.vax/astoks.h b/usr/src/old/as.vax/astoks.h
new file mode 100644 (file)
index 0000000..c389582
--- /dev/null
@@ -0,0 +1,111 @@
+/* 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