-} tok_desc[] = {
- FIRSTTOKEN, "firsttoken", /* 0 */
- ISPACE, "ispace", /* 1 */
- IBYTE, "ibyte", /* 2 */
- IWORD, "iword", /* 3 */
- IINT, "iint", /* 4 */
- ILONG, "ilong", /* 5 */
- IDATA, "idata", /* 6 */
- IGLOBAL, "iglobal", /* 7 */
- ISET, "iset", /* 8 */
- ITEXT, "itext", /* 9 */
- ICOMM, "icomm", /* 10 */
- ILCOMM, "ilcomm", /* 11 */
- IFLOAT, "ifloat", /* 12 */
- IDOUBLE, "idouble", /* 13 */
- IORG, "iorg", /* 14 */
- IASCII, "iascii", /* 15 */
- IASCIZ, "iasciz", /* 16 */
- ILSYM, "ilsym", /* 17 */
- IFILE, "ifile", /* 18 */
- ILINENO, "ilineno", /* 19 */
- IABORT, "iabort", /* 20 */
- ISTAB, "istab", /* 23 */
- ISTABSTR, "istabstr", /* 24 */
- ISTABNONE, "istabnone", /* 25 */
- ISTABDOT, "istabdot", /* 26 */
- IJXXX, "ijxxx", /* 27 */
- IALIGN, "ialign", /* 28 */
- INST0, "inst0", /* 29 */
- INSTn, "instn", /* 30 */
- BFINT, "bfint", /* 31 */
- PARSEEOF, "parseeof", /* 32 */
- ILINESKIP, "ilineskip", /* 33 */
- VOID, "void", /* 34 */
- SKIP, "skip", /* 35 */
- INT, "int", /* 36 */
- FLTNUM, "fltnum", /* 37 */
- NAME, "name", /* 38 */
- STRING, "string", /* 39 */
- QUAD, "quad", /* 40 */
- SIZESPEC, "sizespec", /* 41 */
- REG, "reg", /* 42 */
- MUL, "mul", /* 43 */
- LITOP, "litop", /* 44 */
- LP, "lp", /* 45 */
- MP, "mp", /* 46 */
- NEEDSBUF, "needsbuf", /* 48 */
- REGOP, "regop", /* 49 */
- NL, "nl", /* 50 */
- SCANEOF, "scaneof", /* 51 */
- BADCHAR, "badchar", /* 52 */
- SP, "sp", /* 53 */
- ALPH, "alph", /* 54 */
- DIG, "dig", /* 55 */
- SQ, "sq", /* 56 */
- DQ, "dq", /* 57 */
- SH, "sh", /* 58 */
- LSH, "lsh", /* 59 */
- RSH, "rsh", /* 60 */
- MINUS, "minus", /* 61 */
- SIZEQUOTE, "sizequote", /* 62 */
- XOR, "xor", /* 64 */
- DIV, "div", /* 65 */
- SEMI, "semi", /* 66 */
- COLON, "colon", /* 67 */
- PLUS, "plus", /* 68 */
- IOR, "ior", /* 69 */
- AND, "and", /* 70 */
- TILDE, "tilde", /* 71 */
- ORNOT, "ornot", /* 72 */
- CM, "cm", /* 73 */
- LB, "lb", /* 74 */
- RB, "rb", /* 75 */
- RP, "rp", /* 76 */
- LASTTOKEN, "lasttoken" /* 80 */
+};
+struct Tok_Desc *tok_name[LASTTOKEN - FIRSTTOKEN + 1];
+
+struct Tok_Desc tok_desc[] = {
+ FIRSTTOKEN, DIRECT, "first token",
+
+ IBYTE, DIRECT, ".byte",
+ IWORD, DIRECT, ".word",
+ IINT, DIRECT, ".int",
+ ILONG, DIRECT, ".long",
+ IQUAD, DIRECT, ".quad",
+ IOCTA, DIRECT, ".octa",
+ IFFLOAT, DIRECT, ".ffloat",
+ IDFLOAT, DIRECT, ".dfloat",
+ IGFLOAT, DIRECT, ".gfloat",
+ IHFLOAT, DIRECT, ".hfloat",
+ IASCII, DIRECT, ".ascii",
+ IASCIZ, DIRECT, ".asciz",
+ IFILL, DIRECT, ".fill",
+ ISPACE, DIRECT, ".space",
+
+ IDATA, DIRECT, ".data",
+ ITEXT, DIRECT, ".text",
+ IGLOBAL, DIRECT, ".global",
+ IALIGN, DIRECT, ".align",
+
+ ISET, DIRECT, ".set",
+ ICOMM, DIRECT, ".comm",
+ ILCOMM, DIRECT, ".lcomm",
+ IORG, DIRECT, ".org",
+ ILSYM, DIRECT, ".lsym",
+
+ ISTAB, DIRECT, ".stab",
+ ISTABSTR, DIRECT, ".stabstr",
+ ISTABNONE, DIRECT, ".stabnone",
+ ISTABDOT, DIRECT, ".stabdot",
+
+ IFILE, DIRECT, ".file",
+ ILINENO, DIRECT, ".lineno",
+ IABORT, DIRECT, ".abort",
+
+ IJXXX, INSTR, "jump pseudo",
+ INST0, INSTR, "0 argument inst",
+ INSTn, INSTR, "n argument inst",
+
+ PARSEEOF, CNTRL, "parse end of file",
+ ILINESKIP, CNTRL, "skip lines",
+ VOID, CNTRL, "void",
+ SKIP, CNTRL, "skip",
+ NL, CNTRL, "new line",
+ SCANEOF, CNTRL, "scanner end of file",
+ BADCHAR, CNTRL, "bad character",
+ SH, CNTRL, "comment, #",
+
+ INT, HUNK, "int",
+ BFINT, HUNK, "local label",
+ BIGNUM, HUNK, "big number",
+ NAME, HUNK, "name",
+ STRING, HUNK, "string",
+ REG, HUNK, "register specifier",
+
+ SIZESPEC, SMALL, "size specifier, [BWLbwl]",
+ SIZEQUOTE, SMALL, "sizequote, [^']",
+ LITOP, SMALL, "litop",
+
+ MP, SMALL, "minus parenthesis, -(",
+ REGOP, SMALL, "register operator, %",
+
+ SP, SMALL, "space",
+ ALPH, SMALL, "alphabetic character, [A-Za-z_]",
+ DIG, SMALL, "digit character, [A-Fa-f0-9]",
+
+ SQ, SMALL, "single quote, '",
+ DQ, SMALL, "double quote, \"",
+
+ LSH, SMALL, "arithmetic left shift, <",
+ RSH, SMALL, "arithmetic right shift, >",
+ XOR, SMALL, "exclusive or, ^",
+
+ PLUS, SMALL, "plus, +",
+ MINUS, SMALL, "minus, -",
+ MUL, SMALL, "multiply, *",
+ DIV, SMALL, "divide, /",
+ SEMI, SMALL, "semi colon, ;",
+ COLON, SMALL, "colon, :",
+ IOR, SMALL, "inclusive or, |",
+ AND, SMALL, "and, &",
+
+ TILDE, SMALL, "one's complement, ~",
+ ORNOT, SMALL, "ornot, !",
+ CM, SMALL, "comma",
+
+ LB, SMALL, "left bracket, [",
+ RB, SMALL, "right bracket, ]",
+ LP, SMALL, "left parenthesis, (",
+ RP, SMALL, "right parentheis, )",
+
+ LASTTOKEN, SMALL, "last token",