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