#include <stdio.h>
#include "awk.h"
#include "ytab.h"
static char *printname[94] = {
(char *) "FIRSTTOKEN",
(char *) "PROGRAM",
(char *) "PASTAT",
(char *) "PASTAT2",
(char *) "XBEGIN",
(char *) "XEND",
(char *) "NL",
(char *) "ARRAY",
(char *) "MATCH",
(char *) "NOTMATCH",
(char *) "MATCHOP",
(char *) "FINAL",
(char *) "DOT",
(char *) "ALL",
(char *) "CCL",
(char *) "NCCL",
(char *) "CHAR",
(char *) "OR",
(char *) "STAR",
(char *) "QUEST",
(char *) "PLUS",
(char *) "EMPTYRE",
(char *) "IGNORE_PRIOR_ATOM",
(char *) "AND",
(char *) "BOR",
(char *) "APPEND",
(char *) "EQ",
(char *) "GE",
(char *) "GT",
(char *) "LE",
(char *) "LT",
(char *) "NE",
(char *) "IN",
(char *) "ARG",
(char *) "BLTIN",
(char *) "BREAK",
(char *) "CLOSE",
(char *) "CONTINUE",
(char *) "DELETE",
(char *) "DO",
(char *) "EXIT",
(char *) "FOR",
(char *) "FUNC",
(char *) "SUB",
(char *) "GSUB",
(char *) "IF",
(char *) "INDEX",
(char *) "LSUBSTR",
(char *) "MATCHFCN",
(char *) "NEXT",
(char *) "NEXTFILE",
(char *) "ADD",
(char *) "MINUS",
(char *) "MULT",
(char *) "DIVIDE",
(char *) "MOD",
(char *) "ASSIGN",
(char *) "ASGNOP",
(char *) "ADDEQ",
(char *) "SUBEQ",
(char *) "MULTEQ",
(char *) "DIVEQ",
(char *) "MODEQ",
(char *) "POWEQ",
(char *) "PRINT",
(char *) "PRINTF",
(char *) "SPRINTF",
(char *) "ELSE",
(char *) "INTEST",
(char *) "CONDEXPR",
(char *) "POSTINCR",
(char *) "PREINCR",
(char *) "POSTDECR",
(char *) "PREDECR",
(char *) "VAR",
(char *) "IVAR",
(char *) "VARNF",
(char *) "CALL",
(char *) "NUMBER",
(char *) "STRING",
(char *) "REGEXPR",
(char *) "GETLINE",
(char *) "SUBSTR",
(char *) "SPLIT",
(char *) "RETURN",
(char *) "WHILE",
(char *) "CAT",
(char *) "UMINUS",
(char *) "NOT",
(char *) "POWER",
(char *) "INCR",
(char *) "DECR",
(char *) "INDIRECT",
(char *) "LASTTOKEN",
};
Cell *(*proctab[94])(Node **, int) = {
nullproc,
program,
pastat,
dopa2,
nullproc,
nullproc,
nullproc,
array,
matchop,
matchop,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
nullproc,
boolop,
boolop,
nullproc,
relop,
relop,
relop,
relop,
relop,
relop,
instat,
arg,
bltin,
jump,
closefile,
jump,
awkdelete,
dostat,
jump,
forstat,
nullproc,
sub,
gsub,
ifstat,
sindex,
nullproc,
matchop,
jump,
jump,
arith,
arith,
arith,
arith,
arith,
assign,
nullproc,
assign,
assign,
assign,
assign,
assign,
assign,
printstat,
awkprintf,
awksprintf,
nullproc,
intest,
condexpr,
incrdecr,
incrdecr,
incrdecr,
incrdecr,
nullproc,
nullproc,
getnf,
call,
nullproc,
nullproc,
nullproc,
awk_getline,
substr,
split,
jump,
whilestat,
cat,
arith,
boolop,
arith,
nullproc,
nullproc,
indirect,
nullproc,
};
char *tokname(int n)
{
static char buf[100];
if (n < FIRSTTOKEN || n > LASTTOKEN) {
sprintf(buf, "token %d", n);
return buf;
}
return printname[n-FIRSTTOKEN];
}