#include "awk.def"
obj nullproc(node **, int);
extern obj program(node **, int);
extern obj boolop(node **, int);
extern obj relop(node **, int);
extern obj array(node **, int);
extern obj indirect(node **, int);
extern obj substr(node **, int);
extern obj sindex(node **, int);
extern obj awsprintf(node **, int);
extern obj arith(node **, int);
extern obj incrdecr(node **, int);
extern obj cat(node **, int);
extern obj pastat(node **, int);
extern obj dopa2(node **, int);
extern obj matchop(node **, int);
extern obj aprintf(node **, int);
extern obj print(node **, int);
extern obj split(node **, int);
extern obj assign(node **, int);
extern obj ifstat(node **, int);
extern obj whilestat(node **, int);
extern obj forstat(node **, int);
extern obj instat(node **, int);
extern obj jump(node **, int);
extern obj fncn(node **, int);
extern obj getline(node **, int);
obj (*proctab[77])(node **, int) = {
/*FIRSTTOKEN*/	nullproc,
/*FINAL*/	nullproc,
/*FATAL*/	nullproc,
/*LT*/	relop,
/*LE*/	relop,
/*GT*/	relop,
/*GE*/	relop,
/*EQ*/	relop,
/*NE*/	relop,
/*MATCH*/	matchop,
/*NOTMATCH*/	matchop,
/*APPEND*/	nullproc,
/*ADD*/	arith,
/*MINUS*/	arith,
/*MULT*/	arith,
/*DIVIDE*/	arith,
/*MOD*/	arith,
/*UMINUS*/	arith,
/*ASSIGN*/	assign,
/*ADDEQ*/	assign,
/*SUBEQ*/	assign,
/*MULTEQ*/	assign,
/*DIVEQ*/	assign,
/*MODEQ*/	assign,
/*JUMP*/	nullproc,
/*XBEGIN*/	nullproc,
/*XEND*/	nullproc,
/*NL*/	nullproc,
/*PRINT*/	print,
/*PRINTF*/	aprintf,
/*SPRINTF*/	awsprintf,
/*SPLIT*/	split,
/*IF*/	ifstat,
/*ELSE*/	nullproc,
/*WHILE*/	whilestat,
/*FOR*/	forstat,
/*IN*/	instat,
/*NEXT*/	jump,
/*EXIT*/	jump,
/*BREAK*/	jump,
/*CONTINUE*/	jump,
/*PROGRAM*/	program,
/*PASTAT*/	pastat,
/*PASTAT2*/	dopa2,
/*REGEXPR*/	nullproc,
/*ASGNOP*/	nullproc,
/*BOR*/	boolop,
/*AND*/	boolop,
/*NOT*/	boolop,
/*NUMBER*/	nullproc,
/*VAR*/	nullproc,
/*ARRAY*/	array,
/*FNCN*/	fncn,
/*SUBSTR*/	substr,
/*LSUBSTR*/	nullproc,
/*INDEX*/	sindex,
/*GETLINE*/	getline,
/*RELOP*/	nullproc,
/*MATCHOP*/	nullproc,
/*OR*/	nullproc,
/*STRING*/	nullproc,
/*DOT*/	nullproc,
/*CCL*/	nullproc,
/*NCCL*/	nullproc,
/*CHAR*/	nullproc,
/*CAT*/	cat,
/*STAR*/	nullproc,
/*PLUS*/	nullproc,
/*QUEST*/	nullproc,
/*POSTINCR*/	incrdecr,
/*PREINCR*/	incrdecr,
/*POSTDECR*/	incrdecr,
/*PREDECR*/	incrdecr,
/*INCR*/	nullproc,
/*DECR*/	nullproc,
/*FIELD*/	nullproc,
/*INDIRECT*/	indirect,
};
char *printname[77] = {
/*FIRSTTOKEN*/	"",
/*FINAL*/	"",
/*FATAL*/	"",
/*LT*/	" < ",
/*LE*/	" <= ",
/*GT*/	" > ",
/*GE*/	" >= ",
/*EQ*/	" == ",
/*NE*/	" != ",
/*MATCH*/	" ~ ",
/*NOTMATCH*/	" !~ ",
/*APPEND*/	"",
/*ADD*/	" + ",
/*MINUS*/	" - ",
/*MULT*/	" * ",
/*DIVIDE*/	" / ",
/*MOD*/	" % ",
/*UMINUS*/	" -",
/*ASSIGN*/	" = ",
/*ADDEQ*/	" += ",
/*SUBEQ*/	" -= ",
/*MULTEQ*/	" *= ",
/*DIVEQ*/	" /= ",
/*MODEQ*/	" %= ",
/*JUMP*/	"",
/*XBEGIN*/	"",
/*XEND*/	"",
/*NL*/	"",
/*PRINT*/	"print",
/*PRINTF*/	"printf",
/*SPRINTF*/	"sprintf ",
/*SPLIT*/	"split",
/*IF*/	"if(",
/*ELSE*/	"",
/*WHILE*/	"while(",
/*FOR*/	"for(",
/*IN*/	"instat",
/*NEXT*/	"next",
/*EXIT*/	"exit",
/*BREAK*/	"break",
/*CONTINUE*/	"continue",
/*PROGRAM*/	"",
/*PASTAT*/	"",
/*PASTAT2*/	"",
/*REGEXPR*/	"",
/*ASGNOP*/	"",
/*BOR*/	" || ",
/*AND*/	" && ",
/*NOT*/	" !",
/*NUMBER*/	"",
/*VAR*/	"",
/*ARRAY*/	"",
/*FNCN*/	"fncn",
/*SUBSTR*/	"substr",
/*LSUBSTR*/	"",
/*INDEX*/	"sindex",
/*GETLINE*/	"getline",
/*RELOP*/	"",
/*MATCHOP*/	"",
/*OR*/	"",
/*STRING*/	"",
/*DOT*/	"",
/*CCL*/	"",
/*NCCL*/	"",
/*CHAR*/	"",
/*CAT*/	" ",
/*STAR*/	"",
/*PLUS*/	"",
/*QUEST*/	"",
/*POSTINCR*/	"++",
/*PREINCR*/	"++",
/*POSTDECR*/	"--",
/*PREDECR*/	"--",
/*INCR*/	"",
/*DECR*/	"",
/*FIELD*/	"",
/*INDIRECT*/	"$(",
};


syntax highlighted by Code2HTML, v. 0.9.1