Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
96 7u83 1
#include <stdio.h>
2
#include "awk.h"
3
#include "ytab.h"
4
 
5
static char *printname[94] = {
6
	(char *) "FIRSTTOKEN",	/* 57346 */
7
	(char *) "PROGRAM",	/* 57347 */
8
	(char *) "PASTAT",	/* 57348 */
9
	(char *) "PASTAT2",	/* 57349 */
10
	(char *) "XBEGIN",	/* 57350 */
11
	(char *) "XEND",	/* 57351 */
12
	(char *) "NL",	/* 57352 */
13
	(char *) "ARRAY",	/* 57353 */
14
	(char *) "MATCH",	/* 57354 */
15
	(char *) "NOTMATCH",	/* 57355 */
16
	(char *) "MATCHOP",	/* 57356 */
17
	(char *) "FINAL",	/* 57357 */
18
	(char *) "DOT",	/* 57358 */
19
	(char *) "ALL",	/* 57359 */
20
	(char *) "CCL",	/* 57360 */
21
	(char *) "NCCL",	/* 57361 */
22
	(char *) "CHAR",	/* 57362 */
23
	(char *) "OR",	/* 57363 */
24
	(char *) "STAR",	/* 57364 */
25
	(char *) "QUEST",	/* 57365 */
26
	(char *) "PLUS",	/* 57366 */
27
	(char *) "EMPTYRE",	/* 57367 */
28
	(char *) "AND",	/* 57368 */
29
	(char *) "BOR",	/* 57369 */
30
	(char *) "APPEND",	/* 57370 */
31
	(char *) "EQ",	/* 57371 */
32
	(char *) "GE",	/* 57372 */
33
	(char *) "GT",	/* 57373 */
34
	(char *) "LE",	/* 57374 */
35
	(char *) "LT",	/* 57375 */
36
	(char *) "NE",	/* 57376 */
37
	(char *) "IN",	/* 57377 */
38
	(char *) "ARG",	/* 57378 */
39
	(char *) "BLTIN",	/* 57379 */
40
	(char *) "BREAK",	/* 57380 */
41
	(char *) "CLOSE",	/* 57381 */
42
	(char *) "CONTINUE",	/* 57382 */
43
	(char *) "DELETE",	/* 57383 */
44
	(char *) "DO",	/* 57384 */
45
	(char *) "EXIT",	/* 57385 */
46
	(char *) "FOR",	/* 57386 */
47
	(char *) "FUNC",	/* 57387 */
48
	(char *) "SUB",	/* 57388 */
49
	(char *) "GSUB",	/* 57389 */
50
	(char *) "IF",	/* 57390 */
51
	(char *) "INDEX",	/* 57391 */
52
	(char *) "LSUBSTR",	/* 57392 */
53
	(char *) "MATCHFCN",	/* 57393 */
54
	(char *) "NEXT",	/* 57394 */
55
	(char *) "NEXTFILE",	/* 57395 */
56
	(char *) "ADD",	/* 57396 */
57
	(char *) "MINUS",	/* 57397 */
58
	(char *) "MULT",	/* 57398 */
59
	(char *) "DIVIDE",	/* 57399 */
60
	(char *) "MOD",	/* 57400 */
61
	(char *) "ASSIGN",	/* 57401 */
62
	(char *) "ASGNOP",	/* 57402 */
63
	(char *) "ADDEQ",	/* 57403 */
64
	(char *) "SUBEQ",	/* 57404 */
65
	(char *) "MULTEQ",	/* 57405 */
66
	(char *) "DIVEQ",	/* 57406 */
67
	(char *) "MODEQ",	/* 57407 */
68
	(char *) "POWEQ",	/* 57408 */
69
	(char *) "PRINT",	/* 57409 */
70
	(char *) "PRINTF",	/* 57410 */
71
	(char *) "SPRINTF",	/* 57411 */
72
	(char *) "ELSE",	/* 57412 */
73
	(char *) "INTEST",	/* 57413 */
74
	(char *) "CONDEXPR",	/* 57414 */
75
	(char *) "POSTINCR",	/* 57415 */
76
	(char *) "PREINCR",	/* 57416 */
77
	(char *) "POSTDECR",	/* 57417 */
78
	(char *) "PREDECR",	/* 57418 */
79
	(char *) "VAR",	/* 57419 */
80
	(char *) "IVAR",	/* 57420 */
81
	(char *) "VARNF",	/* 57421 */
82
	(char *) "CALL",	/* 57422 */
83
	(char *) "NUMBER",	/* 57423 */
84
	(char *) "STRING",	/* 57424 */
85
	(char *) "REGEXPR",	/* 57425 */
86
	(char *) "GETLINE",	/* 57426 */
87
	(char *) "RETURN",	/* 57427 */
88
	(char *) "SPLIT",	/* 57428 */
89
	(char *) "SUBSTR",	/* 57429 */
90
	(char *) "WHILE",	/* 57430 */
91
	(char *) "CAT",	/* 57431 */
92
	(char *) "NOT",	/* 57432 */
93
	(char *) "UMINUS",	/* 57433 */
94
	(char *) "UPLUS",	/* 57434 */
95
	(char *) "POWER",	/* 57435 */
96
	(char *) "DECR",	/* 57436 */
97
	(char *) "INCR",	/* 57437 */
98
	(char *) "INDIRECT",	/* 57438 */
99
	(char *) "LASTTOKEN",	/* 57439 */
100
};
101
 
102
 
103
Cell *(*proctab[94])(Node **, int) = {
104
	nullproc,	/* FIRSTTOKEN */
105
	program,	/* PROGRAM */
106
	pastat,	/* PASTAT */
107
	dopa2,	/* PASTAT2 */
108
	nullproc,	/* XBEGIN */
109
	nullproc,	/* XEND */
110
	nullproc,	/* NL */
111
	array,	/* ARRAY */
112
	matchop,	/* MATCH */
113
	matchop,	/* NOTMATCH */
114
	nullproc,	/* MATCHOP */
115
	nullproc,	/* FINAL */
116
	nullproc,	/* DOT */
117
	nullproc,	/* ALL */
118
	nullproc,	/* CCL */
119
	nullproc,	/* NCCL */
120
	nullproc,	/* CHAR */
121
	nullproc,	/* OR */
122
	nullproc,	/* STAR */
123
	nullproc,	/* QUEST */
124
	nullproc,	/* PLUS */
125
	nullproc,	/* EMPTYRE */
126
	boolop,	/* AND */
127
	boolop,	/* BOR */
128
	nullproc,	/* APPEND */
129
	relop,	/* EQ */
130
	relop,	/* GE */
131
	relop,	/* GT */
132
	relop,	/* LE */
133
	relop,	/* LT */
134
	relop,	/* NE */
135
	instat,	/* IN */
136
	arg,	/* ARG */
137
	bltin,	/* BLTIN */
138
	jump,	/* BREAK */
139
	closefile,	/* CLOSE */
140
	jump,	/* CONTINUE */
141
	awkdelete,	/* DELETE */
142
	dostat,	/* DO */
143
	jump,	/* EXIT */
144
	forstat,	/* FOR */
145
	nullproc,	/* FUNC */
146
	sub,	/* SUB */
147
	gsub,	/* GSUB */
148
	ifstat,	/* IF */
149
	sindex,	/* INDEX */
150
	nullproc,	/* LSUBSTR */
151
	matchop,	/* MATCHFCN */
152
	jump,	/* NEXT */
153
	jump,	/* NEXTFILE */
154
	arith,	/* ADD */
155
	arith,	/* MINUS */
156
	arith,	/* MULT */
157
	arith,	/* DIVIDE */
158
	arith,	/* MOD */
159
	assign,	/* ASSIGN */
160
	nullproc,	/* ASGNOP */
161
	assign,	/* ADDEQ */
162
	assign,	/* SUBEQ */
163
	assign,	/* MULTEQ */
164
	assign,	/* DIVEQ */
165
	assign,	/* MODEQ */
166
	assign,	/* POWEQ */
167
	printstat,	/* PRINT */
168
	awkprintf,	/* PRINTF */
169
	awksprintf,	/* SPRINTF */
170
	nullproc,	/* ELSE */
171
	intest,	/* INTEST */
172
	condexpr,	/* CONDEXPR */
173
	incrdecr,	/* POSTINCR */
174
	incrdecr,	/* PREINCR */
175
	incrdecr,	/* POSTDECR */
176
	incrdecr,	/* PREDECR */
177
	nullproc,	/* VAR */
178
	nullproc,	/* IVAR */
179
	getnf,	/* VARNF */
180
	call,	/* CALL */
181
	nullproc,	/* NUMBER */
182
	nullproc,	/* STRING */
183
	nullproc,	/* REGEXPR */
184
	awkgetline,	/* GETLINE */
185
	jump,	/* RETURN */
186
	split,	/* SPLIT */
187
	substr,	/* SUBSTR */
188
	whilestat,	/* WHILE */
189
	cat,	/* CAT */
190
	boolop,	/* NOT */
191
	arith,	/* UMINUS */
192
	arith,	/* UPLUS */
193
	arith,	/* POWER */
194
	nullproc,	/* DECR */
195
	nullproc,	/* INCR */
196
	indirect,	/* INDIRECT */
197
	nullproc,	/* LASTTOKEN */
198
};
199
 
200
char *tokname(int n)
201
{
202
	static char buf[100];
203
 
204
	if (n < FIRSTTOKEN || n > LASTTOKEN) {
205
		sprintf(buf, "token %d", n);
206
		return buf;
207
	}
208
	return printname[n-FIRSTTOKEN];
209
}