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