+};
+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",