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