1*f591d971SDavid du Colombier
2*f591d971SDavid du Colombier #line 26 "/sys/src/cmd/awk/awkgram.y"
3*f591d971SDavid du Colombier #include <stdio.h>
4*f591d971SDavid du Colombier #include <string.h>
5*f591d971SDavid du Colombier #include "awk.h"
6*f591d971SDavid du Colombier
7*f591d971SDavid du Colombier #define makedfa(a,b) compre(a)
8*f591d971SDavid du Colombier
9*f591d971SDavid du Colombier void checkdup(Node *list, Cell *item);
yywrap(void)10*f591d971SDavid du Colombier int yywrap(void) { return(1); }
11*f591d971SDavid du Colombier
12*f591d971SDavid du Colombier Node *beginloc = 0;
13*f591d971SDavid du Colombier Node *endloc = 0;
14*f591d971SDavid du Colombier int infunc = 0; /* = 1 if in arglist or body of func */
15*f591d971SDavid du Colombier int inloop = 0; /* = 1 if in while, for, do */
16*f591d971SDavid du Colombier char *curfname = 0; /* current function name */
17*f591d971SDavid du Colombier Node *arglist = 0; /* list of args for current function */
18*f591d971SDavid du Colombier
19*f591d971SDavid du Colombier #line 43 "/sys/src/cmd/awk/awkgram.y"
20*f591d971SDavid du Colombier typedef union {
21*f591d971SDavid du Colombier Node *p;
22*f591d971SDavid du Colombier Cell *cp;
23*f591d971SDavid du Colombier int i;
24*f591d971SDavid du Colombier char *s;
25*f591d971SDavid du Colombier } YYSTYPE;
26*f591d971SDavid du Colombier extern int yyerrflag;
27*f591d971SDavid du Colombier #ifndef YYMAXDEPTH
28*f591d971SDavid du Colombier #define YYMAXDEPTH 150
29*f591d971SDavid du Colombier #endif
30*f591d971SDavid du Colombier YYSTYPE yylval;
31*f591d971SDavid du Colombier YYSTYPE yyval;
32*f591d971SDavid du Colombier #define FIRSTTOKEN 57346
33*f591d971SDavid du Colombier #define PROGRAM 57347
34*f591d971SDavid du Colombier #define PASTAT 57348
35*f591d971SDavid du Colombier #define PASTAT2 57349
36*f591d971SDavid du Colombier #define XBEGIN 57350
37*f591d971SDavid du Colombier #define XEND 57351
38*f591d971SDavid du Colombier #define NL 57352
39*f591d971SDavid du Colombier #define ARRAY 57353
40*f591d971SDavid du Colombier #define MATCH 57354
41*f591d971SDavid du Colombier #define NOTMATCH 57355
42*f591d971SDavid du Colombier #define MATCHOP 57356
43*f591d971SDavid du Colombier #define FINAL 57357
44*f591d971SDavid du Colombier #define DOT 57358
45*f591d971SDavid du Colombier #define ALL 57359
46*f591d971SDavid du Colombier #define CCL 57360
47*f591d971SDavid du Colombier #define NCCL 57361
48*f591d971SDavid du Colombier #define CHAR 57362
49*f591d971SDavid du Colombier #define OR 57363
50*f591d971SDavid du Colombier #define STAR 57364
51*f591d971SDavid du Colombier #define QUEST 57365
52*f591d971SDavid du Colombier #define PLUS 57366
53*f591d971SDavid du Colombier #define AND 57367
54*f591d971SDavid du Colombier #define BOR 57368
55*f591d971SDavid du Colombier #define APPEND 57369
56*f591d971SDavid du Colombier #define EQ 57370
57*f591d971SDavid du Colombier #define GE 57371
58*f591d971SDavid du Colombier #define GT 57372
59*f591d971SDavid du Colombier #define LE 57373
60*f591d971SDavid du Colombier #define LT 57374
61*f591d971SDavid du Colombier #define NE 57375
62*f591d971SDavid du Colombier #define IN 57376
63*f591d971SDavid du Colombier #define ARG 57377
64*f591d971SDavid du Colombier #define BLTIN 57378
65*f591d971SDavid du Colombier #define BREAK 57379
66*f591d971SDavid du Colombier #define CLOSE 57380
67*f591d971SDavid du Colombier #define CONTINUE 57381
68*f591d971SDavid du Colombier #define DELETE 57382
69*f591d971SDavid du Colombier #define DO 57383
70*f591d971SDavid du Colombier #define EXIT 57384
71*f591d971SDavid du Colombier #define FOR 57385
72*f591d971SDavid du Colombier #define FUNC 57386
73*f591d971SDavid du Colombier #define SUB 57387
74*f591d971SDavid du Colombier #define GSUB 57388
75*f591d971SDavid du Colombier #define IF 57389
76*f591d971SDavid du Colombier #define INDEX 57390
77*f591d971SDavid du Colombier #define LSUBSTR 57391
78*f591d971SDavid du Colombier #define MATCHFCN 57392
79*f591d971SDavid du Colombier #define NEXT 57393
80*f591d971SDavid du Colombier #define NEXTFILE 57394
81*f591d971SDavid du Colombier #define ADD 57395
82*f591d971SDavid du Colombier #define MINUS 57396
83*f591d971SDavid du Colombier #define MULT 57397
84*f591d971SDavid du Colombier #define DIVIDE 57398
85*f591d971SDavid du Colombier #define MOD 57399
86*f591d971SDavid du Colombier #define ASSIGN 57400
87*f591d971SDavid du Colombier #define ASGNOP 57401
88*f591d971SDavid du Colombier #define ADDEQ 57402
89*f591d971SDavid du Colombier #define SUBEQ 57403
90*f591d971SDavid du Colombier #define MULTEQ 57404
91*f591d971SDavid du Colombier #define DIVEQ 57405
92*f591d971SDavid du Colombier #define MODEQ 57406
93*f591d971SDavid du Colombier #define POWEQ 57407
94*f591d971SDavid du Colombier #define PRINT 57408
95*f591d971SDavid du Colombier #define PRINTF 57409
96*f591d971SDavid du Colombier #define SPRINTF 57410
97*f591d971SDavid du Colombier #define ELSE 57411
98*f591d971SDavid du Colombier #define INTEST 57412
99*f591d971SDavid du Colombier #define CONDEXPR 57413
100*f591d971SDavid du Colombier #define POSTINCR 57414
101*f591d971SDavid du Colombier #define PREINCR 57415
102*f591d971SDavid du Colombier #define POSTDECR 57416
103*f591d971SDavid du Colombier #define PREDECR 57417
104*f591d971SDavid du Colombier #define VAR 57418
105*f591d971SDavid du Colombier #define IVAR 57419
106*f591d971SDavid du Colombier #define VARNF 57420
107*f591d971SDavid du Colombier #define CALL 57421
108*f591d971SDavid du Colombier #define NUMBER 57422
109*f591d971SDavid du Colombier #define STRING 57423
110*f591d971SDavid du Colombier #define REGEXPR 57424
111*f591d971SDavid du Colombier #define GETLINE 57425
112*f591d971SDavid du Colombier #define RETURN 57426
113*f591d971SDavid du Colombier #define SPLIT 57427
114*f591d971SDavid du Colombier #define SUBSTR 57428
115*f591d971SDavid du Colombier #define WHILE 57429
116*f591d971SDavid du Colombier #define CAT 57430
117*f591d971SDavid du Colombier #define NOT 57431
118*f591d971SDavid du Colombier #define UMINUS 57432
119*f591d971SDavid du Colombier #define POWER 57433
120*f591d971SDavid du Colombier #define DECR 57434
121*f591d971SDavid du Colombier #define INCR 57435
122*f591d971SDavid du Colombier #define INDIRECT 57436
123*f591d971SDavid du Colombier #define LASTTOKEN 57437
124*f591d971SDavid du Colombier #define YYEOFCODE 1
125*f591d971SDavid du Colombier #define YYERRCODE 2
126*f591d971SDavid du Colombier
127*f591d971SDavid du Colombier #line 447 "/sys/src/cmd/awk/awkgram.y"
128*f591d971SDavid du Colombier
129*f591d971SDavid du Colombier
setfname(Cell * p)130*f591d971SDavid du Colombier void setfname(Cell *p)
131*f591d971SDavid du Colombier {
132*f591d971SDavid du Colombier if (isarr(p))
133*f591d971SDavid du Colombier SYNTAX("%s is an array, not a function", p->nval);
134*f591d971SDavid du Colombier else if (isfcn(p))
135*f591d971SDavid du Colombier SYNTAX("you can't define function %s more than once", p->nval);
136*f591d971SDavid du Colombier curfname = p->nval;
137*f591d971SDavid du Colombier }
138*f591d971SDavid du Colombier
constnode(Node * p)139*f591d971SDavid du Colombier int constnode(Node *p)
140*f591d971SDavid du Colombier {
141*f591d971SDavid du Colombier return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
142*f591d971SDavid du Colombier }
143*f591d971SDavid du Colombier
strnode(Node * p)144*f591d971SDavid du Colombier char *strnode(Node *p)
145*f591d971SDavid du Colombier {
146*f591d971SDavid du Colombier return ((Cell *)(p->narg[0]))->sval;
147*f591d971SDavid du Colombier }
148*f591d971SDavid du Colombier
notnull(Node * n)149*f591d971SDavid du Colombier Node *notnull(Node *n)
150*f591d971SDavid du Colombier {
151*f591d971SDavid du Colombier switch (n->nobj) {
152*f591d971SDavid du Colombier case LE: case LT: case EQ: case NE: case GT: case GE:
153*f591d971SDavid du Colombier case BOR: case AND: case NOT:
154*f591d971SDavid du Colombier return n;
155*f591d971SDavid du Colombier default:
156*f591d971SDavid du Colombier return op2(NE, n, nullnode);
157*f591d971SDavid du Colombier }
158*f591d971SDavid du Colombier }
159*f591d971SDavid du Colombier
checkdup(Node * vl,Cell * cp)160*f591d971SDavid du Colombier void checkdup(Node *vl, Cell *cp) /* check if name already in list */
161*f591d971SDavid du Colombier {
162*f591d971SDavid du Colombier char *s = cp->nval;
163*f591d971SDavid du Colombier for ( ; vl; vl = vl->nnext) {
164*f591d971SDavid du Colombier if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {
165*f591d971SDavid du Colombier SYNTAX("duplicate argument %s", s);
166*f591d971SDavid du Colombier break;
167*f591d971SDavid du Colombier }
168*f591d971SDavid du Colombier }
169*f591d971SDavid du Colombier }
170*f591d971SDavid du Colombier short yyexca[] =
171*f591d971SDavid du Colombier {-1, 0,
172*f591d971SDavid du Colombier 1, 28,
173*f591d971SDavid du Colombier 8, 28,
174*f591d971SDavid du Colombier 9, 28,
175*f591d971SDavid du Colombier 12, 28,
176*f591d971SDavid du Colombier 13, 28,
177*f591d971SDavid du Colombier 16, 28,
178*f591d971SDavid du Colombier 45, 28,
179*f591d971SDavid du Colombier 46, 28,
180*f591d971SDavid du Colombier 54, 28,
181*f591d971SDavid du Colombier 55, 28,
182*f591d971SDavid du Colombier 56, 28,
183*f591d971SDavid du Colombier 58, 28,
184*f591d971SDavid du Colombier 60, 28,
185*f591d971SDavid du Colombier 78, 28,
186*f591d971SDavid du Colombier 86, 28,
187*f591d971SDavid du Colombier 87, 28,
188*f591d971SDavid du Colombier 88, 28,
189*f591d971SDavid du Colombier 89, 28,
190*f591d971SDavid du Colombier 90, 28,
191*f591d971SDavid du Colombier 91, 28,
192*f591d971SDavid du Colombier 95, 28,
193*f591d971SDavid du Colombier 97, 28,
194*f591d971SDavid du Colombier 98, 28,
195*f591d971SDavid du Colombier 101, 28,
196*f591d971SDavid du Colombier 102, 28,
197*f591d971SDavid du Colombier 105, 28,
198*f591d971SDavid du Colombier 108, 28,
199*f591d971SDavid du Colombier 109, 28,
200*f591d971SDavid du Colombier 110, 28,
201*f591d971SDavid du Colombier -2, 0,
202*f591d971SDavid du Colombier -1, 1,
203*f591d971SDavid du Colombier 1, -1,
204*f591d971SDavid du Colombier -2, 0,
205*f591d971SDavid du Colombier -1, 157,
206*f591d971SDavid du Colombier 15, 30,
207*f591d971SDavid du Colombier -2, 0,
208*f591d971SDavid du Colombier -1, 176,
209*f591d971SDavid du Colombier 14, 0,
210*f591d971SDavid du Colombier 24, 0,
211*f591d971SDavid du Colombier 38, 0,
212*f591d971SDavid du Colombier 39, 0,
213*f591d971SDavid du Colombier 40, 0,
214*f591d971SDavid du Colombier 41, 0,
215*f591d971SDavid du Colombier 42, 0,
216*f591d971SDavid du Colombier 43, 0,
217*f591d971SDavid du Colombier 44, 0,
218*f591d971SDavid du Colombier -2, 63,
219*f591d971SDavid du Colombier -1, 177,
220*f591d971SDavid du Colombier 14, 0,
221*f591d971SDavid du Colombier 24, 0,
222*f591d971SDavid du Colombier 38, 0,
223*f591d971SDavid du Colombier 39, 0,
224*f591d971SDavid du Colombier 40, 0,
225*f591d971SDavid du Colombier 41, 0,
226*f591d971SDavid du Colombier 42, 0,
227*f591d971SDavid du Colombier 43, 0,
228*f591d971SDavid du Colombier 44, 0,
229*f591d971SDavid du Colombier -2, 64,
230*f591d971SDavid du Colombier -1, 178,
231*f591d971SDavid du Colombier 14, 0,
232*f591d971SDavid du Colombier 24, 0,
233*f591d971SDavid du Colombier 38, 0,
234*f591d971SDavid du Colombier 39, 0,
235*f591d971SDavid du Colombier 40, 0,
236*f591d971SDavid du Colombier 41, 0,
237*f591d971SDavid du Colombier 42, 0,
238*f591d971SDavid du Colombier 43, 0,
239*f591d971SDavid du Colombier 44, 0,
240*f591d971SDavid du Colombier -2, 65,
241*f591d971SDavid du Colombier -1, 179,
242*f591d971SDavid du Colombier 14, 0,
243*f591d971SDavid du Colombier 24, 0,
244*f591d971SDavid du Colombier 38, 0,
245*f591d971SDavid du Colombier 39, 0,
246*f591d971SDavid du Colombier 40, 0,
247*f591d971SDavid du Colombier 41, 0,
248*f591d971SDavid du Colombier 42, 0,
249*f591d971SDavid du Colombier 43, 0,
250*f591d971SDavid du Colombier 44, 0,
251*f591d971SDavid du Colombier -2, 66,
252*f591d971SDavid du Colombier -1, 180,
253*f591d971SDavid du Colombier 14, 0,
254*f591d971SDavid du Colombier 24, 0,
255*f591d971SDavid du Colombier 38, 0,
256*f591d971SDavid du Colombier 39, 0,
257*f591d971SDavid du Colombier 40, 0,
258*f591d971SDavid du Colombier 41, 0,
259*f591d971SDavid du Colombier 42, 0,
260*f591d971SDavid du Colombier 43, 0,
261*f591d971SDavid du Colombier 44, 0,
262*f591d971SDavid du Colombier -2, 67,
263*f591d971SDavid du Colombier -1, 181,
264*f591d971SDavid du Colombier 14, 0,
265*f591d971SDavid du Colombier 24, 0,
266*f591d971SDavid du Colombier 38, 0,
267*f591d971SDavid du Colombier 39, 0,
268*f591d971SDavid du Colombier 40, 0,
269*f591d971SDavid du Colombier 41, 0,
270*f591d971SDavid du Colombier 42, 0,
271*f591d971SDavid du Colombier 43, 0,
272*f591d971SDavid du Colombier 44, 0,
273*f591d971SDavid du Colombier -2, 68,
274*f591d971SDavid du Colombier -1, 183,
275*f591d971SDavid du Colombier 14, 0,
276*f591d971SDavid du Colombier 24, 0,
277*f591d971SDavid du Colombier 38, 0,
278*f591d971SDavid du Colombier 39, 0,
279*f591d971SDavid du Colombier 40, 0,
280*f591d971SDavid du Colombier 41, 0,
281*f591d971SDavid du Colombier 42, 0,
282*f591d971SDavid du Colombier 43, 0,
283*f591d971SDavid du Colombier 44, 0,
284*f591d971SDavid du Colombier -2, 70,
285*f591d971SDavid du Colombier -1, 290,
286*f591d971SDavid du Colombier 24, 0,
287*f591d971SDavid du Colombier 44, 0,
288*f591d971SDavid du Colombier -2, 53,
289*f591d971SDavid du Colombier -1, 334,
290*f591d971SDavid du Colombier 17, 30,
291*f591d971SDavid du Colombier -2, 0,
292*f591d971SDavid du Colombier -1, 356,
293*f591d971SDavid du Colombier 17, 30,
294*f591d971SDavid du Colombier -2, 0,
295*f591d971SDavid du Colombier };
296*f591d971SDavid du Colombier #define YYNPROD 185
297*f591d971SDavid du Colombier #define YYPRIVATE 57344
298*f591d971SDavid du Colombier #define YYLAST 4170
299*f591d971SDavid du Colombier short yyact[] =
300*f591d971SDavid du Colombier {
301*f591d971SDavid du Colombier 17, 278, 254, 137, 244, 229, 102, 200, 53, 66,
302*f591d971SDavid du Colombier 24, 105, 42, 155, 103, 104, 100, 138, 112, 309,
303*f591d971SDavid du Colombier 54, 185, 215, 42, 100, 254, 100, 100, 100, 250,
304*f591d971SDavid du Colombier 224, 121, 122, 123, 9, 107, 82, 42, 315, 83,
305*f591d971SDavid du Colombier 162, 254, 107, 103, 104, 103, 104, 124, 253, 206,
306*f591d971SDavid du Colombier 42, 190, 245, 41, 22, 43, 113, 113, 279, 133,
307*f591d971SDavid du Colombier 317, 142, 10, 146, 41, 353, 43, 149, 150, 152,
308*f591d971SDavid du Colombier 153, 148, 352, 163, 136, 100, 42, 23, 41, 22,
309*f591d971SDavid du Colombier 43, 277, 147, 351, 132, 62, 156, 85, 168, 169,
310*f591d971SDavid du Colombier 11, 41, 22, 43, 322, 321, 50, 190, 79, 80,
311*f591d971SDavid du Colombier 100, 319, 23, 86, 182, 270, 259, 100, 100, 100,
312*f591d971SDavid du Colombier 100, 100, 100, 100, 134, 23, 276, 41, 233, 43,
313*f591d971SDavid du Colombier 108, 109, 110, 111, 332, 100, 112, 203, 205, 110,
314*f591d971SDavid du Colombier 111, 190, 190, 112, 140, 11, 211, 336, 325, 139,
315*f591d971SDavid du Colombier 212, 234, 100, 140, 235, 220, 100, 170, 311, 222,
316*f591d971SDavid du Colombier 190, 167, 100, 219, 136, 227, 279, 156, 190, 158,
317*f591d971SDavid du Colombier 190, 157, 190, 100, 285, 221, 266, 231, 261, 136,
318*f591d971SDavid du Colombier 130, 129, 100, 237, 100, 228, 100, 100, 100, 100,
319*f591d971SDavid du Colombier 100, 100, 100, 128, 100, 190, 252, 100, 100, 136,
320*f591d971SDavid du Colombier 136, 260, 190, 3, 100, 6, 127, 126, 188, 19,
321*f591d971SDavid du Colombier 7, 6, 100, 47, 313, 125, 7, 100, 48, 100,
322*f591d971SDavid du Colombier 100, 100, 120, 119, 100, 100, 51, 16, 16, 190,
323*f591d971SDavid du Colombier 217, 140, 275, 218, 143, 115, 271, 154, 272, 4,
324*f591d971SDavid du Colombier 144, 131, 318, 100, 100, 100, 100, 163, 49, 163,
325*f591d971SDavid du Colombier 163, 163, 163, 20, 274, 163, 348, 100, 294, 362,
326*f591d971SDavid du Colombier 239, 295, 289, 293, 365, 1, 100, 100, 72, 96,
327*f591d971SDavid du Colombier 39, 225, 5, 58, 67, 223, 240, 114, 61, 116,
328*f591d971SDavid du Colombier 117, 118, 164, 60, 301, 302, 249, 283, 81, 286,
329*f591d971SDavid du Colombier 287, 288, 290, 8, 100, 292, 159, 100, 100, 100,
330*f591d971SDavid du Colombier 310, 100, 136, 100, 156, 160, 314, 2, 100, 0,
331*f591d971SDavid du Colombier 100, 100, 0, 0, 100, 0, 100, 100, 100, 0,
332*f591d971SDavid du Colombier 0, 0, 0, 0, 335, 0, 165, 163, 96, 0,
333*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 334, 0, 0, 342, 156,
334*f591d971SDavid du Colombier 343, 0, 0, 0, 100, 341, 0, 0, 0, 100,
335*f591d971SDavid du Colombier 347, 100, 0, 116, 231, 100, 100, 0, 349, 357,
336*f591d971SDavid du Colombier 96, 194, 195, 196, 197, 198, 199, 338, 0, 360,
337*f591d971SDavid du Colombier 356, 0, 361, 363, 156, 0, 231, 0, 207, 358,
338*f591d971SDavid du Colombier 136, 239, 0, 0, 239, 239, 239, 0, 239, 0,
339*f591d971SDavid du Colombier 239, 0, 0, 364, 0, 96, 366, 240, 0, 96,
340*f591d971SDavid du Colombier 240, 240, 240, 0, 240, 96, 240, 0, 0, 0,
341*f591d971SDavid du Colombier 258, 0, 0, 0, 339, 0, 243, 0, 0, 0,
342*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 96, 0, 96, 21, 96,
343*f591d971SDavid du Colombier 96, 96, 96, 96, 96, 96, 239, 96, 0, 0,
344*f591d971SDavid du Colombier 96, 96, 0, 0, 0, 0, 164, 257, 164, 164,
345*f591d971SDavid du Colombier 164, 164, 240, 0, 164, 96, 0, 0, 0, 0,
346*f591d971SDavid du Colombier 262, 0, 96, 96, 96, 0, 0, 96, 96, 0,
347*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
348*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 96, 280, 281, 282,
349*f591d971SDavid du Colombier 165, 0, 165, 165, 165, 165, 0, 0, 165, 0,
350*f591d971SDavid du Colombier 96, 0, 166, 0, 0, 0, 0, 0, 0, 96,
351*f591d971SDavid du Colombier 96, 0, 0, 0, 0, 74, 189, 191, 0, 0,
352*f591d971SDavid du Colombier 15, 0, 0, 184, 0, 0, 164, 0, 0, 0,
353*f591d971SDavid du Colombier 0, 0, 0, 0, 106, 0, 0, 243, 0, 0,
354*f591d971SDavid du Colombier 243, 243, 243, 0, 243, 0, 243, 0, 0, 0,
355*f591d971SDavid du Colombier 0, 96, 0, 96, 96, 0, 0, 96, 0, 96,
356*f591d971SDavid du Colombier 96, 96, 0, 0, 0, 15, 0, 15, 0, 0,
357*f591d971SDavid du Colombier 165, 236, 141, 0, 0, 145, 0, 0, 0, 0,
358*f591d971SDavid du Colombier 0, 151, 0, 0, 0, 0, 230, 96, 0, 0,
359*f591d971SDavid du Colombier 0, 0, 243, 0, 96, 0, 0, 0, 96, 96,
360*f591d971SDavid du Colombier 171, 173, 175, 176, 177, 178, 179, 180, 181, 183,
361*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 186, 187, 263,
362*f591d971SDavid du Colombier 264, 265, 0, 267, 268, 269, 0, 0, 0, 201,
363*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 201, 201, 0, 0, 0,
364*f591d971SDavid du Colombier 0, 208, 209, 210, 201, 213, 214, 0, 189, 0,
365*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 101, 0, 0,
366*f591d971SDavid du Colombier 296, 0, 0, 0, 0, 0, 0, 0, 241, 0,
367*f591d971SDavid du Colombier 0, 291, 0, 0, 232, 0, 0, 106, 0, 98,
368*f591d971SDavid du Colombier 97, 0, 298, 246, 0, 0, 0, 0, 242, 42,
369*f591d971SDavid du Colombier 28, 0, 0, 0, 304, 0, 0, 0, 0, 45,
370*f591d971SDavid du Colombier 46, 0, 33, 0, 34, 255, 312, 256, 0, 0,
371*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 324, 327, 329, 330, 0,
372*f591d971SDavid du Colombier 0, 0, 37, 0, 0, 189, 0, 0, 0, 0,
373*f591d971SDavid du Colombier 41, 22, 43, 29, 35, 38, 0, 238, 316, 32,
374*f591d971SDavid du Colombier 0, 36, 40, 0, 337, 27, 26, 0, 0, 99,
375*f591d971SDavid du Colombier 0, 0, 30, 31, 23, 0, 0, 0, 0, 0,
376*f591d971SDavid du Colombier 0, 201, 0, 0, 0, 0, 0, 297, 0, 0,
377*f591d971SDavid du Colombier 0, 0, 0, 0, 299, 0, 0, 0, 0, 300,
378*f591d971SDavid du Colombier 303, 0, 0, 305, 306, 307, 0, 0, 0, 0,
379*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
380*f591d971SDavid du Colombier 106, 0, 0, 0, 0, 0, 75, 0, 0, 0,
381*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 16, 18, 0, 68,
382*f591d971SDavid du Colombier 44, 0, 359, 0, 0, 0, 333, 0, 0, 0,
383*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384*f591d971SDavid du Colombier 340, 0, 0, 0, 0, 0, 344, 0, 345, 42,
385*f591d971SDavid du Colombier 28, 55, 56, 57, 73, 69, 59, 70, 0, 45,
386*f591d971SDavid du Colombier 46, 71, 33, 0, 34, 63, 64, 0, 0, 0,
387*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 75, 0, 0, 0, 0,
388*f591d971SDavid du Colombier 77, 78, 37, 52, 0, 16, 18, 0, 68, 44,
389*f591d971SDavid du Colombier 41, 22, 43, 29, 35, 38, 0, 0, 0, 32,
390*f591d971SDavid du Colombier 65, 36, 40, 76, 0, 27, 26, 0, 0, 25,
391*f591d971SDavid du Colombier 0, 0, 30, 31, 23, 0, 0, 0, 42, 28,
392*f591d971SDavid du Colombier 55, 56, 57, 73, 69, 59, 70, 0, 45, 46,
393*f591d971SDavid du Colombier 71, 33, 0, 34, 63, 64, 0, 0, 0, 0,
394*f591d971SDavid du Colombier 0, 0, 75, 0, 0, 0, 0, 0, 0, 77,
395*f591d971SDavid du Colombier 78, 37, 16, 18, 0, 68, 44, 0, 308, 41,
396*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 0, 0, 32, 65,
397*f591d971SDavid du Colombier 36, 40, 76, 0, 27, 26, 0, 0, 25, 0,
398*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 42, 28, 55, 56, 57,
399*f591d971SDavid du Colombier 73, 69, 59, 70, 0, 45, 46, 71, 33, 0,
400*f591d971SDavid du Colombier 34, 63, 64, 0, 0, 0, 0, 0, 0, 0,
401*f591d971SDavid du Colombier 0, 75, 0, 0, 0, 0, 77, 78, 37, 273,
402*f591d971SDavid du Colombier 0, 16, 18, 0, 68, 44, 41, 22, 43, 29,
403*f591d971SDavid du Colombier 35, 38, 0, 0, 0, 32, 65, 36, 40, 76,
404*f591d971SDavid du Colombier 0, 27, 26, 0, 0, 25, 0, 0, 30, 31,
405*f591d971SDavid du Colombier 23, 0, 0, 0, 42, 28, 55, 56, 57, 73,
406*f591d971SDavid du Colombier 69, 59, 70, 0, 45, 46, 71, 33, 0, 34,
407*f591d971SDavid du Colombier 63, 64, 0, 0, 0, 0, 0, 0, 75, 0,
408*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 77, 78, 37, 16, 18,
409*f591d971SDavid du Colombier 0, 68, 44, 0, 248, 41, 22, 43, 29, 35,
410*f591d971SDavid du Colombier 38, 0, 0, 0, 32, 65, 36, 40, 76, 0,
411*f591d971SDavid du Colombier 27, 26, 0, 0, 25, 0, 0, 30, 31, 23,
412*f591d971SDavid du Colombier 0, 42, 28, 55, 56, 57, 73, 69, 59, 70,
413*f591d971SDavid du Colombier 0, 45, 46, 71, 33, 0, 34, 63, 64, 0,
414*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 75, 0, 0, 0, 0,
415*f591d971SDavid du Colombier 0, 0, 77, 78, 37, 16, 18, 0, 68, 44,
416*f591d971SDavid du Colombier 0, 247, 41, 22, 43, 29, 35, 38, 0, 0,
417*f591d971SDavid du Colombier 0, 32, 65, 36, 40, 76, 0, 27, 26, 0,
418*f591d971SDavid du Colombier 0, 25, 0, 0, 30, 31, 23, 0, 42, 28,
419*f591d971SDavid du Colombier 55, 56, 57, 73, 69, 59, 70, 0, 45, 46,
420*f591d971SDavid du Colombier 71, 33, 0, 34, 63, 64, 0, 0, 0, 0,
421*f591d971SDavid du Colombier 0, 0, 75, 0, 0, 0, 0, 0, 0, 77,
422*f591d971SDavid du Colombier 78, 37, 16, 18, 0, 68, 44, 0, 226, 41,
423*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 0, 0, 32, 65,
424*f591d971SDavid du Colombier 36, 40, 76, 0, 27, 26, 0, 0, 25, 0,
425*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 42, 28, 55, 56, 57,
426*f591d971SDavid du Colombier 73, 69, 59, 70, 0, 45, 46, 71, 33, 0,
427*f591d971SDavid du Colombier 34, 63, 64, 0, 0, 0, 0, 0, 0, 75,
428*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 77, 78, 37, 16,
429*f591d971SDavid du Colombier 18, 0, 68, 44, 0, 216, 41, 22, 43, 29,
430*f591d971SDavid du Colombier 35, 38, 0, 0, 0, 32, 65, 36, 40, 76,
431*f591d971SDavid du Colombier 0, 27, 26, 0, 0, 25, 0, 0, 30, 31,
432*f591d971SDavid du Colombier 23, 0, 42, 28, 55, 56, 57, 73, 69, 59,
433*f591d971SDavid du Colombier 70, 0, 45, 46, 71, 33, 0, 34, 63, 64,
434*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
435*f591d971SDavid du Colombier 0, 0, 0, 77, 78, 37, 16, 18, 0, 68,
436*f591d971SDavid du Colombier 44, 0, 135, 41, 22, 43, 29, 35, 38, 0,
437*f591d971SDavid du Colombier 0, 0, 32, 65, 36, 40, 76, 0, 27, 26,
438*f591d971SDavid du Colombier 0, 0, 25, 0, 0, 30, 31, 23, 0, 42,
439*f591d971SDavid du Colombier 28, 55, 56, 57, 73, 69, 59, 70, 0, 45,
440*f591d971SDavid du Colombier 46, 71, 33, 0, 34, 63, 64, 0, 0, 0,
441*f591d971SDavid du Colombier 0, 0, 0, 75, 0, 0, 0, 0, 0, 0,
442*f591d971SDavid du Colombier 77, 78, 37, 16, 18, 0, 68, 44, 0, 0,
443*f591d971SDavid du Colombier 41, 22, 43, 29, 35, 38, 0, 0, 0, 32,
444*f591d971SDavid du Colombier 65, 36, 40, 76, 0, 27, 26, 0, 0, 25,
445*f591d971SDavid du Colombier 0, 0, 30, 31, 23, 0, 42, 28, 55, 56,
446*f591d971SDavid du Colombier 57, 73, 69, 59, 70, 0, 45, 46, 71, 33,
447*f591d971SDavid du Colombier 0, 34, 63, 64, 0, 0, 0, 0, 0, 0,
448*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 77, 78, 37,
449*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
450*f591d971SDavid du Colombier 29, 35, 38, 0, 0, 0, 32, 65, 36, 40,
451*f591d971SDavid du Colombier 76, 0, 27, 26, 0, 0, 25, 0, 0, 30,
452*f591d971SDavid du Colombier 31, 23, 190, 0, 101, 95, 0, 0, 331, 0,
453*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,
454*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
455*f591d971SDavid du Colombier 88, 89, 90, 91, 92, 94, 42, 28, 0, 0,
456*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
457*f591d971SDavid du Colombier 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
458*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
459*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
460*f591d971SDavid du Colombier 29, 35, 38, 0, 84, 0, 32, 0, 36, 40,
461*f591d971SDavid du Colombier 0, 0, 27, 26, 0, 0, 99, 0, 0, 30,
462*f591d971SDavid du Colombier 31, 23, 190, 0, 101, 95, 0, 0, 328, 0,
463*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,
464*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
465*f591d971SDavid du Colombier 88, 89, 90, 91, 92, 94, 42, 28, 0, 0,
466*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
467*f591d971SDavid du Colombier 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
468*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
469*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
470*f591d971SDavid du Colombier 29, 35, 38, 0, 84, 0, 32, 0, 36, 40,
471*f591d971SDavid du Colombier 0, 0, 27, 26, 0, 0, 99, 0, 0, 30,
472*f591d971SDavid du Colombier 31, 23, 190, 0, 101, 95, 0, 0, 326, 0,
473*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,
474*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
475*f591d971SDavid du Colombier 88, 89, 90, 91, 92, 94, 42, 28, 0, 0,
476*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
477*f591d971SDavid du Colombier 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
478*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
479*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
480*f591d971SDavid du Colombier 29, 35, 38, 0, 84, 0, 32, 0, 36, 40,
481*f591d971SDavid du Colombier 0, 0, 27, 26, 0, 0, 99, 0, 0, 30,
482*f591d971SDavid du Colombier 31, 23, 140, 0, 0, 101, 95, 139, 0, 0,
483*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 93, 0, 0, 0,
484*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 98, 97, 0,
485*f591d971SDavid du Colombier 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
486*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 45, 46, 0,
487*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 0, 0, 0, 0, 0,
488*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
489*f591d971SDavid du Colombier 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
490*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 84, 0, 32, 0, 36,
491*f591d971SDavid du Colombier 40, 0, 0, 27, 26, 0, 0, 99, 0, 0,
492*f591d971SDavid du Colombier 30, 31, 23, 190, 0, 101, 95, 0, 0, 192,
493*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 93, 0, 0, 0,
494*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 98, 97, 0,
495*f591d971SDavid du Colombier 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
496*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 45, 46, 0,
497*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 0, 0, 0, 0, 0,
498*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
499*f591d971SDavid du Colombier 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
500*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 84, 0, 32, 0, 36,
501*f591d971SDavid du Colombier 40, 0, 0, 27, 26, 101, 95, 99, 0, 355,
502*f591d971SDavid du Colombier 30, 31, 23, 0, 0, 0, 93, 0, 0, 0,
503*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 98, 97, 0,
504*f591d971SDavid du Colombier 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
505*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 45, 46, 0,
506*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 0, 0, 0, 0, 0,
507*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508*f591d971SDavid du Colombier 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
509*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 84, 0, 32, 0, 36,
510*f591d971SDavid du Colombier 40, 0, 0, 27, 26, 101, 95, 99, 0, 354,
511*f591d971SDavid du Colombier 30, 31, 23, 0, 0, 0, 93, 0, 0, 0,
512*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 98, 97, 0,
513*f591d971SDavid du Colombier 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
514*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 45, 46, 0,
515*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 0, 0, 0, 0, 0,
516*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517*f591d971SDavid du Colombier 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
518*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 84, 0, 32, 0, 36,
519*f591d971SDavid du Colombier 40, 0, 0, 27, 26, 101, 95, 99, 0, 350,
520*f591d971SDavid du Colombier 30, 31, 23, 0, 0, 0, 93, 0, 0, 0,
521*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 98, 97, 0,
522*f591d971SDavid du Colombier 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
523*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 45, 46, 0,
524*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 0, 0, 0, 0, 0,
525*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526*f591d971SDavid du Colombier 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
527*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 84, 0, 32, 0, 36,
528*f591d971SDavid du Colombier 40, 0, 0, 27, 26, 0, 0, 99, 0, 0,
529*f591d971SDavid du Colombier 30, 31, 23, 101, 95, 346, 0, 0, 0, 0,
530*f591d971SDavid du Colombier 0, 0, 0, 0, 93, 0, 0, 0, 0, 0,
531*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 98, 97, 0, 87, 88,
532*f591d971SDavid du Colombier 89, 90, 91, 92, 94, 42, 28, 0, 0, 0,
533*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 45, 46, 0, 33, 0,
534*f591d971SDavid du Colombier 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
535*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
536*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
537*f591d971SDavid du Colombier 35, 38, 0, 84, 0, 32, 0, 36, 40, 0,
538*f591d971SDavid du Colombier 0, 27, 26, 101, 95, 99, 0, 323, 30, 31,
539*f591d971SDavid du Colombier 23, 0, 0, 0, 93, 0, 0, 0, 0, 0,
540*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 98, 97, 0, 87, 88,
541*f591d971SDavid du Colombier 89, 90, 91, 92, 94, 42, 28, 0, 0, 0,
542*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 45, 46, 0, 33, 0,
543*f591d971SDavid du Colombier 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
544*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
545*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
546*f591d971SDavid du Colombier 35, 38, 0, 84, 0, 32, 0, 36, 40, 0,
547*f591d971SDavid du Colombier 0, 27, 26, 101, 95, 99, 0, 320, 30, 31,
548*f591d971SDavid du Colombier 23, 0, 0, 0, 93, 0, 0, 0, 0, 0,
549*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 98, 97, 0, 87, 88,
550*f591d971SDavid du Colombier 89, 90, 91, 92, 94, 42, 28, 0, 0, 0,
551*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 45, 46, 0, 33, 0,
552*f591d971SDavid du Colombier 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
553*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
554*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
555*f591d971SDavid du Colombier 35, 38, 0, 84, 0, 32, 0, 36, 40, 0,
556*f591d971SDavid du Colombier 0, 27, 26, 101, 95, 99, 0, 279, 30, 31,
557*f591d971SDavid du Colombier 23, 0, 0, 0, 93, 0, 0, 0, 0, 0,
558*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 98, 97, 0, 87, 88,
559*f591d971SDavid du Colombier 89, 90, 91, 92, 94, 42, 28, 0, 0, 0,
560*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 45, 46, 0, 33, 0,
561*f591d971SDavid du Colombier 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
562*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
563*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
564*f591d971SDavid du Colombier 35, 38, 0, 84, 0, 32, 0, 36, 40, 0,
565*f591d971SDavid du Colombier 0, 27, 26, 0, 190, 99, 101, 95, 30, 31,
566*f591d971SDavid du Colombier 23, 0, 0, 0, 0, 0, 0, 93, 0, 0,
567*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 98, 97,
568*f591d971SDavid du Colombier 0, 87, 88, 89, 90, 91, 92, 94, 42, 28,
569*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
570*f591d971SDavid du Colombier 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
571*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
572*f591d971SDavid du Colombier 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
573*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 84, 0, 32, 0,
574*f591d971SDavid du Colombier 36, 40, 0, 0, 27, 26, 101, 95, 99, 0,
575*f591d971SDavid du Colombier 192, 30, 31, 23, 0, 0, 0, 93, 0, 0,
576*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 98, 97,
577*f591d971SDavid du Colombier 0, 87, 88, 89, 90, 91, 92, 94, 42, 28,
578*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
579*f591d971SDavid du Colombier 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
580*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
581*f591d971SDavid du Colombier 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
582*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 84, 0, 32, 0,
583*f591d971SDavid du Colombier 36, 40, 0, 0, 27, 26, 101, 95, 99, 0,
584*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 0, 0, 93, 0, 0,
585*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 98, 97,
586*f591d971SDavid du Colombier 0, 87, 88, 89, 90, 91, 92, 94, 42, 28,
587*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
588*f591d971SDavid du Colombier 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
589*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
590*f591d971SDavid du Colombier 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
591*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 84, 251, 32, 0,
592*f591d971SDavid du Colombier 36, 40, 0, 0, 27, 26, 101, 95, 99, 0,
593*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 0, 0, 93, 0, 0,
594*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 98, 97,
595*f591d971SDavid du Colombier 0, 87, 88, 89, 90, 91, 92, 94, 42, 28,
596*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
597*f591d971SDavid du Colombier 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
598*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
599*f591d971SDavid du Colombier 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
600*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 84, 0, 32, 0,
601*f591d971SDavid du Colombier 36, 40, 0, 0, 27, 26, 101, 95, 99, 0,
602*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 0, 0, 93, 0, 0,
603*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 98, 0,
604*f591d971SDavid du Colombier 0, 87, 88, 89, 90, 91, 92, 94, 42, 28,
605*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
606*f591d971SDavid du Colombier 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
607*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
608*f591d971SDavid du Colombier 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
609*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 101, 95, 0, 32, 0,
610*f591d971SDavid du Colombier 36, 40, 0, 0, 27, 26, 93, 0, 99, 0,
611*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 0, 0, 0, 0, 0,
612*f591d971SDavid du Colombier 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
613*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 45, 46, 0,
614*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 75, 0, 0, 0, 0,
615*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 18, 0, 0, 44,
616*f591d971SDavid du Colombier 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
617*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 0, 0, 32, 0, 36,
618*f591d971SDavid du Colombier 40, 0, 0, 27, 26, 0, 0, 99, 42, 28,
619*f591d971SDavid du Colombier 30, 31, 23, 73, 0, 0, 0, 0, 45, 46,
620*f591d971SDavid du Colombier 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
621*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
622*f591d971SDavid du Colombier 78, 37, 0, 0, 101, 0, 0, 0, 0, 41,
623*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 241, 0, 0, 32, 0,
624*f591d971SDavid du Colombier 36, 40, 0, 0, 27, 26, 98, 97, 25, 0,
625*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 242, 42, 28, 0, 0,
626*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
627*f591d971SDavid du Colombier 0, 34, 0, 0, 0, 0, 0, 12, 13, 0,
628*f591d971SDavid du Colombier 0, 16, 18, 0, 0, 44, 0, 0, 0, 37,
629*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
630*f591d971SDavid du Colombier 29, 35, 38, 0, 238, 0, 32, 0, 36, 40,
631*f591d971SDavid du Colombier 0, 0, 27, 26, 42, 28, 99, 0, 0, 30,
632*f591d971SDavid du Colombier 31, 23, 0, 14, 45, 46, 0, 33, 0, 34,
633*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
634*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
635*f591d971SDavid du Colombier 101, 0, 0, 0, 0, 41, 22, 43, 29, 35,
636*f591d971SDavid du Colombier 38, 241, 0, 0, 32, 0, 36, 40, 0, 0,
637*f591d971SDavid du Colombier 27, 26, 98, 0, 25, 0, 0, 30, 31, 23,
638*f591d971SDavid du Colombier 0, 242, 42, 28, 0, 0, 0, 0, 0, 0,
639*f591d971SDavid du Colombier 0, 0, 45, 46, 0, 33, 0, 34, 0, 0,
640*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 140, 0, 0, 18, 0,
641*f591d971SDavid du Colombier 139, 44, 0, 0, 0, 37, 0, 0, 0, 0,
642*f591d971SDavid du Colombier 0, 0, 0, 41, 22, 43, 29, 35, 38, 0,
643*f591d971SDavid du Colombier 254, 0, 32, 18, 36, 40, 44, 0, 27, 26,
644*f591d971SDavid du Colombier 42, 28, 99, 0, 0, 30, 31, 23, 0, 0,
645*f591d971SDavid du Colombier 45, 46, 0, 33, 0, 34, 0, 0, 0, 0,
646*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 42, 28, 0, 0, 0,
647*f591d971SDavid du Colombier 0, 0, 0, 37, 0, 45, 46, 0, 33, 0,
648*f591d971SDavid du Colombier 34, 41, 22, 43, 29, 35, 38, 0, 0, 0,
649*f591d971SDavid du Colombier 32, 0, 36, 40, 0, 0, 27, 26, 37, 0,
650*f591d971SDavid du Colombier 25, 101, 0, 30, 31, 23, 41, 22, 43, 29,
651*f591d971SDavid du Colombier 35, 38, 241, 0, 0, 32, 0, 36, 40, 0,
652*f591d971SDavid du Colombier 0, 27, 26, 0, 0, 25, 0, 0, 30, 31,
653*f591d971SDavid du Colombier 23, 0, 242, 42, 28, 0, 0, 0, 0, 0,
654*f591d971SDavid du Colombier 0, 0, 0, 45, 46, 0, 33, 0, 34, 0,
655*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 174, 0, 0, 284,
656*f591d971SDavid du Colombier 0, 0, 44, 0, 0, 0, 37, 0, 0, 0,
657*f591d971SDavid du Colombier 0, 0, 0, 0, 41, 22, 43, 29, 35, 38,
658*f591d971SDavid du Colombier 0, 172, 0, 32, 284, 36, 40, 44, 0, 27,
659*f591d971SDavid du Colombier 26, 42, 28, 99, 0, 0, 30, 31, 23, 0,
660*f591d971SDavid du Colombier 0, 45, 46, 0, 33, 0, 34, 0, 0, 0,
661*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 42, 28, 0, 0,
662*f591d971SDavid du Colombier 0, 0, 0, 0, 37, 0, 45, 46, 0, 33,
663*f591d971SDavid du Colombier 0, 34, 41, 22, 43, 29, 35, 38, 0, 254,
664*f591d971SDavid du Colombier 0, 32, 284, 36, 40, 44, 0, 27, 26, 37,
665*f591d971SDavid du Colombier 0, 25, 0, 0, 30, 31, 23, 41, 22, 43,
666*f591d971SDavid du Colombier 29, 35, 38, 0, 0, 0, 32, 18, 36, 40,
667*f591d971SDavid du Colombier 44, 204, 27, 26, 42, 28, 25, 0, 0, 30,
668*f591d971SDavid du Colombier 31, 23, 0, 0, 45, 46, 0, 33, 0, 34,
669*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,
670*f591d971SDavid du Colombier 28, 0, 0, 0, 0, 0, 0, 37, 0, 45,
671*f591d971SDavid du Colombier 46, 0, 33, 0, 34, 41, 22, 43, 29, 35,
672*f591d971SDavid du Colombier 38, 0, 0, 0, 32, 18, 36, 40, 44, 202,
673*f591d971SDavid du Colombier 27, 26, 37, 0, 25, 0, 0, 30, 31, 23,
674*f591d971SDavid du Colombier 41, 22, 43, 29, 35, 38, 0, 174, 0, 32,
675*f591d971SDavid du Colombier 18, 36, 40, 44, 0, 27, 26, 42, 28, 25,
676*f591d971SDavid du Colombier 0, 0, 30, 31, 23, 0, 0, 45, 46, 0,
677*f591d971SDavid du Colombier 33, 0, 34, 0, 0, 0, 0, 0, 0, 0,
678*f591d971SDavid du Colombier 0, 0, 42, 28, 0, 0, 0, 0, 0, 0,
679*f591d971SDavid du Colombier 37, 0, 45, 46, 0, 33, 0, 34, 41, 22,
680*f591d971SDavid du Colombier 43, 29, 35, 38, 0, 172, 0, 32, 18, 36,
681*f591d971SDavid du Colombier 40, 44, 0, 27, 26, 37, 0, 25, 0, 0,
682*f591d971SDavid du Colombier 30, 31, 23, 41, 22, 43, 29, 35, 38, 0,
683*f591d971SDavid du Colombier 0, 0, 32, 18, 36, 40, 44, 0, 27, 26,
684*f591d971SDavid du Colombier 42, 28, 25, 0, 0, 30, 31, 23, 0, 0,
685*f591d971SDavid du Colombier 45, 46, 0, 33, 0, 34, 0, 0, 0, 0,
686*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 42, 28, 0, 0, 0,
687*f591d971SDavid du Colombier 0, 0, 0, 37, 0, 45, 46, 0, 33, 0,
688*f591d971SDavid du Colombier 34, 41, 22, 43, 29, 35, 38, 0, 0, 0,
689*f591d971SDavid du Colombier 32, 284, 36, 40, 44, 0, 27, 26, 37, 0,
690*f591d971SDavid du Colombier 25, 0, 0, 30, 31, 23, 41, 22, 43, 29,
691*f591d971SDavid du Colombier 35, 38, 0, 0, 0, 32, 101, 36, 40, 0,
692*f591d971SDavid du Colombier 0, 27, 26, 42, 28, 25, 0, 0, 30, 31,
693*f591d971SDavid du Colombier 23, 0, 0, 45, 46, 0, 33, 0, 34, 0,
694*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 42, 28,
695*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 37, 0, 45, 46,
696*f591d971SDavid du Colombier 0, 33, 0, 34, 41, 22, 43, 29, 35, 38,
697*f591d971SDavid du Colombier 0, 0, 193, 32, 161, 36, 40, 44, 0, 27,
698*f591d971SDavid du Colombier 26, 37, 0, 25, 0, 0, 30, 31, 23, 41,
699*f591d971SDavid du Colombier 22, 43, 29, 35, 38, 0, 0, 0, 32, 101,
700*f591d971SDavid du Colombier 36, 40, 44, 0, 27, 26, 42, 28, 99, 0,
701*f591d971SDavid du Colombier 0, 30, 31, 23, 0, 0, 45, 46, 0, 33,
702*f591d971SDavid du Colombier 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
703*f591d971SDavid du Colombier 0, 42, 28, 0, 0, 0, 0, 0, 0, 37,
704*f591d971SDavid du Colombier 0, 45, 46, 0, 33, 0, 34, 41, 22, 43,
705*f591d971SDavid du Colombier 29, 35, 38, 0, 0, 0, 32, 101, 36, 40,
706*f591d971SDavid du Colombier 0, 0, 27, 26, 37, 0, 25, 0, 0, 30,
707*f591d971SDavid du Colombier 31, 23, 41, 22, 43, 29, 35, 38, 0, 0,
708*f591d971SDavid du Colombier 0, 32, 101, 36, 40, 0, 0, 27, 26, 42,
709*f591d971SDavid du Colombier 28, 25, 0, 0, 30, 31, 23, 0, 0, 45,
710*f591d971SDavid du Colombier 46, 0, 33, 0, 34, 0, 0, 0, 0, 0,
711*f591d971SDavid du Colombier 0, 0, 0, 0, 42, 28, 0, 0, 0, 0,
712*f591d971SDavid du Colombier 0, 0, 37, 0, 45, 46, 0, 33, 0, 34,
713*f591d971SDavid du Colombier 41, 22, 43, 29, 35, 38, 0, 0, 0, 32,
714*f591d971SDavid du Colombier 0, 36, 40, 0, 0, 27, 26, 37, 0, 99,
715*f591d971SDavid du Colombier 0, 0, 30, 31, 23, 41, 22, 43, 29, 35,
716*f591d971SDavid du Colombier 38, 0, 0, 0, 0, 0, 36, 40, 0, 0,
717*f591d971SDavid du Colombier 27, 26, 0, 0, 99, 0, 0, 30, 31, 23
718*f591d971SDavid du Colombier };
719*f591d971SDavid du Colombier short yypact[] =
720*f591d971SDavid du Colombier {
721*f591d971SDavid du Colombier 191,-1000,-1000,-1000,3259, 193,-1000,-1000, 185,-1000,
722*f591d971SDavid du Colombier 205, 863, 206, 206, -50,2903,-1000, -63,3810,-1000,
723*f591d971SDavid du Colombier 19, 38,-1000,4034,-1000,3976,4034,4034, 200, 199,
724*f591d971SDavid du Colombier -33, -33, 5, 192, 184,-1000, 183, 170,-1000, 158,
725*f591d971SDavid du Colombier 157,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,3259,
726*f591d971SDavid du Colombier 863,3810,-1000,1334,-1000, 124,3810, 124, 214,3385,
727*f591d971SDavid du Colombier -1000,1401, 863, 124, 124,3385, 124,-1000, 211,-1000,
728*f591d971SDavid du Colombier 148, 146,3951, -22,2903,-1000, 138,-1000,-1000, 863,
729*f591d971SDavid du Colombier 863, 134,-1000,-1000,3810,3785,3727,3810,3810,3810,
730*f591d971SDavid du Colombier 3810,3810,3810,3810, -22, -74, 19,-1000,-1000,4034,
731*f591d971SDavid du Colombier -94,3810,3810,-1000,-1000, 181,1902,3893,4034,4034,
732*f591d971SDavid du Colombier 4034,4034,4034,3810,-1000,-1000, -89, -89, -89,3702,
733*f591d971SDavid du Colombier 3644,-1000,-1000, 7,4034,3810,3810,3810,3810,3810,
734*f591d971SDavid du Colombier 3810, -70,-1000,1267, 206,-1000,-1000,-1000, 213, 211,
735*f591d971SDavid du Colombier -1000,1802,-1000,-1000,1401,1802,-1000, -49,1200,-1000,
736*f591d971SDavid du Colombier -1000,1802,-1000,-1000,1401,-1000, 213,3133,3810, 104,
737*f591d971SDavid du Colombier 208,3810,3201, -65,-1000, 19, 33,3810,1133,1066,
738*f591d971SDavid du Colombier -57,2813,-1000,2993,-1000,3072,4059,4059,4059,4059,
739*f591d971SDavid du Colombier 4059,4059,-1000,4059,-1000, -33,2723,2903, 4,3410,
740*f591d971SDavid du Colombier -1000,3410,-1000,4034, -89, 26, 26, -89, -89, -89,
741*f591d971SDavid du Colombier 86,2903,-1000, 174,-1000, 151,4034, 19,2633,2633,
742*f591d971SDavid du Colombier 2633, 149, 208,2633,2633, 89,-1000, 863,-1000,-1000,
743*f591d971SDavid du Colombier -1000,-1000,-1000, 999,-1000, 212,-1000,-1000,-1000, 101,
744*f591d971SDavid du Colombier 37,-1000,2540,4034,4034,4034,3619, 147,3868,3561,
745*f591d971SDavid du Colombier 3536,3868, -22, 19,3868,3810,2540,-1000,-1000, 139,
746*f591d971SDavid du Colombier -1000,3810,-1000, -22,-1000,2903,2903, 19,3410,-1000,
747*f591d971SDavid du Colombier -1000,-1000, 19,3410,3410, 31,-1000,3410,3410,3410,
748*f591d971SDavid du Colombier -1000, 930, -80,-1000,-1000,-1000, 133, -22, 194,-1000,
749*f591d971SDavid du Colombier 19, 19, 19,3201,3810, -6, 634,3327,3478,-1000,
750*f591d971SDavid du Colombier 4059,-1000,3201, 40, 194, 194, 15,2903,-1000,2903,
751*f591d971SDavid du Colombier 2450, 78, 77,2360, 121,1701,1601,1501,-1000, 111,
752*f591d971SDavid du Colombier 3810, 211, 41,-1000, 120, -22,3868,-1000, 206,-1000,
753*f591d971SDavid du Colombier -1000,-1000,-1000,-1000,3410,-1000,-1000, -8,-1000, -8,
754*f591d971SDavid du Colombier 3410,-1000,3810,2270,3133, 194, -6,-1000,3201, 863,
755*f591d971SDavid du Colombier 2172, 66, 55, 48,2082,1992, 211, 41,1401, 794,
756*f591d971SDavid du Colombier -1000,-1000,-1000,-1000,-1000, 124,3133, 194,-1000,-1000,
757*f591d971SDavid du Colombier -1000, 41,1401, 194,-1000,1401,-1000
758*f591d971SDavid du Colombier };
759*f591d971SDavid du Colombier short yypgo[] =
760*f591d971SDavid du Colombier {
761*f591d971SDavid du Colombier 0, 297, 505, 40, 11, 295, 7, 286, 243, 199,
762*f591d971SDavid du Colombier 62, 34, 283, 10, 9, 5, 20, 8, 0, 418,
763*f591d971SDavid du Colombier 278, 276, 273, 268, 265, 264, 263, 3, 262, 229,
764*f591d971SDavid du Colombier 85, 261, 1, 400, 17, 13, 103, 87, 260, 258,
765*f591d971SDavid du Colombier 255, 254, 249, 246, 232, 231, 230, 228, 227
766*f591d971SDavid du Colombier };
767*f591d971SDavid du Colombier short yyr1[] =
768*f591d971SDavid du Colombier {
769*f591d971SDavid du Colombier 0, 40, 40, 36, 36, 37, 37, 33, 33, 26,
770*f591d971SDavid du Colombier 26, 24, 24, 41, 22, 42, 22, 43, 22, 20,
771*f591d971SDavid du Colombier 20, 23, 30, 30, 34, 34, 35, 35, 29, 29,
772*f591d971SDavid du Colombier 15, 15, 1, 1, 10, 11, 11, 11, 11, 11,
773*f591d971SDavid du Colombier 11, 11, 44, 11, 12, 12, 6, 6, 3, 3,
774*f591d971SDavid du Colombier 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,
775*f591d971SDavid du Colombier 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
776*f591d971SDavid du Colombier 2, 2, 2, 2, 2, 2, 2, 2, 4, 4,
777*f591d971SDavid du Colombier 5, 5, 7, 7, 7, 39, 39, 28, 28, 28,
778*f591d971SDavid du Colombier 28, 31, 31, 9, 9, 45, 13, 32, 32, 14,
779*f591d971SDavid du Colombier 14, 14, 14, 14, 14, 14, 14, 27, 27, 16,
780*f591d971SDavid du Colombier 16, 16, 46, 47, 16, 16, 16, 16, 16, 16,
781*f591d971SDavid du Colombier 16, 16, 16, 16, 16, 16, 48, 16, 16, 17,
782*f591d971SDavid du Colombier 17, 38, 38, 8, 8, 8, 8, 8, 8, 8,
783*f591d971SDavid du Colombier 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
784*f591d971SDavid du Colombier 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
785*f591d971SDavid du Colombier 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
786*f591d971SDavid du Colombier 8, 8, 8, 8, 18, 18, 18, 18, 21, 21,
787*f591d971SDavid du Colombier 21, 19, 19, 19, 25
788*f591d971SDavid du Colombier };
789*f591d971SDavid du Colombier short yyr2[] =
790*f591d971SDavid du Colombier {
791*f591d971SDavid du Colombier 0, 1, 1, 1, 2, 1, 2, 1, 2, 1,
792*f591d971SDavid du Colombier 2, 1, 2, 0, 12, 0, 10, 0, 8, 1,
793*f591d971SDavid du Colombier 1, 4, 1, 2, 1, 2, 0, 1, 0, 1,
794*f591d971SDavid du Colombier 0, 1, 1, 3, 1, 1, 4, 3, 6, 3,
795*f591d971SDavid du Colombier 4, 4, 0, 9, 1, 3, 1, 3, 3, 5,
796*f591d971SDavid du Colombier 3, 3, 3, 3, 3, 5, 2, 1, 1, 3,
797*f591d971SDavid du Colombier 5, 3, 3, 3, 3, 3, 3, 3, 3, 3,
798*f591d971SDavid du Colombier 3, 3, 5, 4, 3, 2, 1, 1, 3, 3,
799*f591d971SDavid du Colombier 1, 3, 0, 1, 3, 1, 1, 1, 1, 2,
800*f591d971SDavid du Colombier 2, 1, 2, 1, 2, 0, 4, 1, 2, 4,
801*f591d971SDavid du Colombier 4, 4, 2, 5, 2, 1, 1, 1, 2, 2,
802*f591d971SDavid du Colombier 3, 2, 0, 0, 9, 3, 2, 1, 4, 2,
803*f591d971SDavid du Colombier 3, 2, 2, 3, 2, 2, 0, 3, 2, 1,
804*f591d971SDavid du Colombier 2, 1, 1, 4, 3, 3, 3, 3, 3, 3,
805*f591d971SDavid du Colombier 2, 2, 2, 3, 4, 1, 3, 4, 2, 2,
806*f591d971SDavid du Colombier 2, 2, 4, 3, 2, 1, 6, 6, 3, 6,
807*f591d971SDavid du Colombier 6, 1, 8, 8, 6, 4, 1, 6, 6, 8,
808*f591d971SDavid du Colombier 8, 8, 6, 1, 1, 4, 1, 2, 0, 1,
809*f591d971SDavid du Colombier 3, 1, 1, 1, 4
810*f591d971SDavid du Colombier };
811*f591d971SDavid du Colombier short yychk[] =
812*f591d971SDavid du Colombier {
813*f591d971SDavid du Colombier -1000, -40, -1, 2, -29, -28, 10, 15, -12, -11,
814*f591d971SDavid du Colombier -10, -30, 8, 9, 54, -2, 12, -18, 13, -9,
815*f591d971SDavid du Colombier -8, -19, 87, 110, -13, 105, 102, 101, 46, 89,
816*f591d971SDavid du Colombier 108, 109, 95, 58, 60, 90, 97, 78, 91, -38,
817*f591d971SDavid du Colombier 98, 86, 45, 88, 16, 55, 56, 10, 15, -29,
818*f591d971SDavid du Colombier -30, 11, 10, -17, -16, 47, 48, 49, -26, 52,
819*f591d971SDavid du Colombier -22, -23, -30, 61, 62, 96, -14, -25, 15, 51,
820*f591d971SDavid du Colombier 53, 57, -39, 50, -2, 2, 99, 76, 77, -30,
821*f591d971SDavid du Colombier -30, -20, 86, 89, 93, -37, -36, 38, 39, 40,
822*f591d971SDavid du Colombier 41, 42, 43, 24, 44, 14, -8, 36, 35, 105,
823*f591d971SDavid du Colombier -18, 13, 69, 108, 109, -4, -2, 16, 101, 102,
824*f591d971SDavid du Colombier 103, 104, 107, 19, -8, -9, -8, -8, -8, 13,
825*f591d971SDavid du Colombier 13, -18, -18, -18, 42, 13, 13, 13, 13, 13,
826*f591d971SDavid du Colombier 13, -45, -11, -17, -10, 18, -16, -27, -34, 15,
827*f591d971SDavid du Colombier 10, -2, -27, 10, -46, -2, -27, -16, -17, -27,
828*f591d971SDavid du Colombier -27, -2, -27, -27, -48, -35, -34, 13, 13, -7,
829*f591d971SDavid du Colombier -5, 13, -3, -18, -9, -8, -19, 13, -17, -17,
830*f591d971SDavid du Colombier 13, -2, 10, -2, 10, -2, -2, -2, -2, -2,
831*f591d971SDavid du Colombier -2, -2, -13, -2, -19, 95, -2, -2, 17, -33,
832*f591d971SDavid du Colombier 11, -33, 17, 69, -8, -8, -8, -8, -8, -8,
833*f591d971SDavid du Colombier -6, -2, 17, -6, 17, -6, 42, -8, -2, -2,
834*f591d971SDavid du Colombier -2, -6, -13, -2, -2, 92, 18, -30, 10, -35,
835*f591d971SDavid du Colombier -27, -16, -27, -24, 79, -31, 18, -27, -16, -15,
836*f591d971SDavid du Colombier -19, -14, -2, 14, 37, 40, -33, -4, 93, -37,
837*f591d971SDavid du Colombier -36, 24, 44, -8, 69, 19, -2, 18, 18, -21,
838*f591d971SDavid du Colombier 86, 94, -18, 44, 10, -2, -2, -8, -33, 20,
839*f591d971SDavid du Colombier 17, 17, -8, -33, -33, -33, 17, -33, -33, -33,
840*f591d971SDavid du Colombier 16, -17, -47, 10, -16, 10, 15, 44, -32, 17,
841*f591d971SDavid du Colombier -8, -8, -8, -3, 13, 17, -3, -3, -3, -13,
842*f591d971SDavid du Colombier -3, -19, -3, -6, -32, -32, -33, -2, -19, -2,
843*f591d971SDavid du Colombier -2, -13, -13, -2, -19, -2, -2, -2, 18, 99,
844*f591d971SDavid du Colombier -35, 15, -19, 10, -4, 44, 94, 20, -44, 86,
845*f591d971SDavid du Colombier 17, 17, 17, 17, -33, 17, 17, -33, 17, -33,
846*f591d971SDavid du Colombier -33, 17, 13, -2, -35, -32, 17, -19, -3, -30,
847*f591d971SDavid du Colombier -2, -13, -18, -18, -2, -2, 15, -15, -43, -17,
848*f591d971SDavid du Colombier 17, 17, 17, 17, 17, 17, -35, -32, -16, 18,
849*f591d971SDavid du Colombier -27, -15, -42, -32, -16, -41, -16
850*f591d971SDavid du Colombier };
851*f591d971SDavid du Colombier short yydef[] =
852*f591d971SDavid du Colombier {
853*f591d971SDavid du Colombier -2, -2, 1, 2, 32, 29, 87, 88, 28, 44,
854*f591d971SDavid du Colombier 35, 0, 0, 0, 0, 34, 22, 173, 0, 76,
855*f591d971SDavid du Colombier 77, 174, 176, 0, 93, 0, 0, 0, 145, 0,
856*f591d971SDavid du Colombier 0, 0, 155, 0, 0, 161, 0, 0, 166, 0,
857*f591d971SDavid du Colombier 0, 181, 182, 183, 95, 131, 132, 89, 90, 33,
858*f591d971SDavid du Colombier 0, 0, 23, 0, 129, 0, 0, 0, 112, 0,
859*f591d971SDavid du Colombier 117, 0, 0, 0, 0, 0, 0, 126, 26, 9,
860*f591d971SDavid du Colombier 0, 0, 82, 0, 105, 106, 0, 85, 86, 0,
861*f591d971SDavid du Colombier 0, 0, 19, 20, 0, 0, 0, 0, 0, 0,
862*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 75, 5, 3, 0,
863*f591d971SDavid du Colombier 173, 0, 0, 150, 151, 0, 0, 0, 0, 0,
864*f591d971SDavid du Colombier 0, 0, 0, 0, 177, 94, 142, 140, 141, 0,
865*f591d971SDavid du Colombier 0, 148, 149, 154, 0, 0, 0, 0, 0, 0,
866*f591d971SDavid du Colombier 0, 0, 45, 0, 37, 39, 130, 109, 107, 26,
867*f591d971SDavid du Colombier 24, 0, 111, 10, 0, 0, 116, 119, 0, 121,
868*f591d971SDavid du Colombier 122, 0, 124, 125, 0, 128, 27, -2, 0, 102,
869*f591d971SDavid du Colombier 83, 0, 80, 173, 57, 58, 104, 0, 0, 0,
870*f591d971SDavid du Colombier 178, 0, 6, 61, 4, 62, -2, -2, -2, -2,
871*f591d971SDavid du Colombier -2, -2, 69, -2, 71, 74, 0, 59, 0, 0,
872*f591d971SDavid du Colombier 7, 0, 158, 0, 137, 134, 135, 136, 138, 139,
873*f591d971SDavid du Colombier 0, 46, 143, 0, 146, 0, 0, 153, 0, 0,
874*f591d971SDavid du Colombier 0, 0, 93, 0, 0, 0, 36, 0, 25, 108,
875*f591d971SDavid du Colombier 110, 113, 115, 0, 11, 120, 91, 123, 127, 0,
876*f591d971SDavid du Colombier 174, 31, 0, 0, 0, 0, 0, 0, 0, 0,
877*f591d971SDavid du Colombier 0, 0, 0, 56, 0, 0, 0, 40, 41, 0,
878*f591d971SDavid du Colombier 179, 0, 73, 0, 8, 79, 78, 133, 0, 175,
879*f591d971SDavid du Colombier 144, 147, 152, 0, 0, 0, 165, 0, 0, 0,
880*f591d971SDavid du Colombier 96, 0, 0, 12, 118, 92, 26, 0, 21, 97,
881*f591d971SDavid du Colombier 99, 100, 101, 81, 0, 84, 0, 50, 51, 52,
882*f591d971SDavid du Colombier -2, 54, 48, 0, 184, 42, 0, 60, 72, 47,
883*f591d971SDavid du Colombier 0, 93, 93, 0, 0, 0, 0, 0, 38, 0,
884*f591d971SDavid du Colombier 0, 26, 0, 98, 0, 0, 0, 103, 0, 180,
885*f591d971SDavid du Colombier 156, 157, 159, 160, 0, 164, 167, 0, 168, 0,
886*f591d971SDavid du Colombier 0, 172, 0, 0, -2, 17, 0, 55, 49, 0,
887*f591d971SDavid du Colombier 0, 93, 0, 0, 0, 0, 26, 0, 0, 0,
888*f591d971SDavid du Colombier 162, 163, 169, 170, 171, 0, -2, 15, 18, 43,
889*f591d971SDavid du Colombier 114, 0, 0, 13, 16, 0, 14
890*f591d971SDavid du Colombier };
891*f591d971SDavid du Colombier short yytok1[] =
892*f591d971SDavid du Colombier {
893*f591d971SDavid du Colombier 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 104, 0, 0,
897*f591d971SDavid du Colombier 13, 17, 103, 101, 11, 102, 0, 16, 0, 0,
898*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 94, 15,
899*f591d971SDavid du Colombier 0, 0, 0, 93, 0, 0, 0, 0, 0, 0,
900*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
902*f591d971SDavid du Colombier 0, 19, 0, 20, 0, 0, 0, 0, 0, 0,
903*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
904*f591d971SDavid du Colombier 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905*f591d971SDavid du Colombier 0, 0, 0, 12, 14, 18
906*f591d971SDavid du Colombier };
907*f591d971SDavid du Colombier short yytok2[] =
908*f591d971SDavid du Colombier {
909*f591d971SDavid du Colombier 2, 3, 4, 5, 6, 7, 8, 9, 10, 21,
910*f591d971SDavid du Colombier 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
911*f591d971SDavid du Colombier 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
912*f591d971SDavid du Colombier 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
913*f591d971SDavid du Colombier 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
914*f591d971SDavid du Colombier 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
915*f591d971SDavid du Colombier 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
916*f591d971SDavid du Colombier 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
917*f591d971SDavid du Colombier 92, 95, 96, 97, 98, 99, 100, 105, 106, 107,
918*f591d971SDavid du Colombier 108, 109, 110, 111
919*f591d971SDavid du Colombier };
920*f591d971SDavid du Colombier long yytok3[] =
921*f591d971SDavid du Colombier {
922*f591d971SDavid du Colombier 0
923*f591d971SDavid du Colombier };
924*f591d971SDavid du Colombier #define YYFLAG -1000
925*f591d971SDavid du Colombier #define YYERROR goto yyerrlab
926*f591d971SDavid du Colombier #define YYACCEPT return(0)
927*f591d971SDavid du Colombier #define YYABORT return(1)
928*f591d971SDavid du Colombier #define yyclearin yychar = -1
929*f591d971SDavid du Colombier #define yyerrok yyerrflag = 0
930*f591d971SDavid du Colombier
931*f591d971SDavid du Colombier #ifdef yydebug
932*f591d971SDavid du Colombier #include "y.debug"
933*f591d971SDavid du Colombier #else
934*f591d971SDavid du Colombier #define yydebug 0
935*f591d971SDavid du Colombier char* yytoknames[1]; /* for debugging */
936*f591d971SDavid du Colombier char* yystates[1]; /* for debugging */
937*f591d971SDavid du Colombier #endif
938*f591d971SDavid du Colombier
939*f591d971SDavid du Colombier /* parser for yacc output */
940*f591d971SDavid du Colombier
941*f591d971SDavid du Colombier int yynerrs = 0; /* number of errors */
942*f591d971SDavid du Colombier int yyerrflag = 0; /* error recovery flag */
943*f591d971SDavid du Colombier
944*f591d971SDavid du Colombier char*
yytokname(int yyc)945*f591d971SDavid du Colombier yytokname(int yyc)
946*f591d971SDavid du Colombier {
947*f591d971SDavid du Colombier static char x[16];
948*f591d971SDavid du Colombier
949*f591d971SDavid du Colombier if(yyc > 0 && yyc <= sizeof(yytoknames)/sizeof(yytoknames[0]))
950*f591d971SDavid du Colombier if(yytoknames[yyc-1])
951*f591d971SDavid du Colombier return yytoknames[yyc-1];
952*f591d971SDavid du Colombier sprintf(x, "<%d>", yyc);
953*f591d971SDavid du Colombier return x;
954*f591d971SDavid du Colombier }
955*f591d971SDavid du Colombier
956*f591d971SDavid du Colombier char*
yystatname(int yys)957*f591d971SDavid du Colombier yystatname(int yys)
958*f591d971SDavid du Colombier {
959*f591d971SDavid du Colombier static char x[16];
960*f591d971SDavid du Colombier
961*f591d971SDavid du Colombier if(yys >= 0 && yys < sizeof(yystates)/sizeof(yystates[0]))
962*f591d971SDavid du Colombier if(yystates[yys])
963*f591d971SDavid du Colombier return yystates[yys];
964*f591d971SDavid du Colombier sprintf(x, "<%d>\n", yys);
965*f591d971SDavid du Colombier return x;
966*f591d971SDavid du Colombier }
967*f591d971SDavid du Colombier
968*f591d971SDavid du Colombier long
yylex1(void)969*f591d971SDavid du Colombier yylex1(void)
970*f591d971SDavid du Colombier {
971*f591d971SDavid du Colombier long yychar;
972*f591d971SDavid du Colombier long *t3p;
973*f591d971SDavid du Colombier int c;
974*f591d971SDavid du Colombier
975*f591d971SDavid du Colombier yychar = yylex();
976*f591d971SDavid du Colombier if(yychar <= 0) {
977*f591d971SDavid du Colombier c = yytok1[0];
978*f591d971SDavid du Colombier goto out;
979*f591d971SDavid du Colombier }
980*f591d971SDavid du Colombier if(yychar < sizeof(yytok1)/sizeof(yytok1[0])) {
981*f591d971SDavid du Colombier c = yytok1[yychar];
982*f591d971SDavid du Colombier goto out;
983*f591d971SDavid du Colombier }
984*f591d971SDavid du Colombier if(yychar >= YYPRIVATE)
985*f591d971SDavid du Colombier if(yychar < YYPRIVATE+sizeof(yytok2)/sizeof(yytok2[0])) {
986*f591d971SDavid du Colombier c = yytok2[yychar-YYPRIVATE];
987*f591d971SDavid du Colombier goto out;
988*f591d971SDavid du Colombier }
989*f591d971SDavid du Colombier for(t3p=yytok3;; t3p+=2) {
990*f591d971SDavid du Colombier c = t3p[0];
991*f591d971SDavid du Colombier if(c == yychar) {
992*f591d971SDavid du Colombier c = t3p[1];
993*f591d971SDavid du Colombier goto out;
994*f591d971SDavid du Colombier }
995*f591d971SDavid du Colombier if(c == 0)
996*f591d971SDavid du Colombier break;
997*f591d971SDavid du Colombier }
998*f591d971SDavid du Colombier c = 0;
999*f591d971SDavid du Colombier
1000*f591d971SDavid du Colombier out:
1001*f591d971SDavid du Colombier if(c == 0)
1002*f591d971SDavid du Colombier c = yytok2[1]; /* unknown char */
1003*f591d971SDavid du Colombier if(yydebug >= 3)
1004*f591d971SDavid du Colombier printf("lex %.4lX %s\n", yychar, yytokname(c));
1005*f591d971SDavid du Colombier return c;
1006*f591d971SDavid du Colombier }
1007*f591d971SDavid du Colombier
1008*f591d971SDavid du Colombier int
yyparse(void)1009*f591d971SDavid du Colombier yyparse(void)
1010*f591d971SDavid du Colombier {
1011*f591d971SDavid du Colombier struct
1012*f591d971SDavid du Colombier {
1013*f591d971SDavid du Colombier YYSTYPE yyv;
1014*f591d971SDavid du Colombier int yys;
1015*f591d971SDavid du Colombier } yys[YYMAXDEPTH], *yyp, *yypt;
1016*f591d971SDavid du Colombier short *yyxi;
1017*f591d971SDavid du Colombier int yyj, yym, yystate, yyn, yyg;
1018*f591d971SDavid du Colombier YYSTYPE save1, save2;
1019*f591d971SDavid du Colombier int save3, save4;
1020*f591d971SDavid du Colombier long yychar;
1021*f591d971SDavid du Colombier
1022*f591d971SDavid du Colombier save1 = yylval;
1023*f591d971SDavid du Colombier save2 = yyval;
1024*f591d971SDavid du Colombier save3 = yynerrs;
1025*f591d971SDavid du Colombier save4 = yyerrflag;
1026*f591d971SDavid du Colombier
1027*f591d971SDavid du Colombier yystate = 0;
1028*f591d971SDavid du Colombier yychar = -1;
1029*f591d971SDavid du Colombier yynerrs = 0;
1030*f591d971SDavid du Colombier yyerrflag = 0;
1031*f591d971SDavid du Colombier yyp = &yys[-1];
1032*f591d971SDavid du Colombier goto yystack;
1033*f591d971SDavid du Colombier
1034*f591d971SDavid du Colombier ret0:
1035*f591d971SDavid du Colombier yyn = 0;
1036*f591d971SDavid du Colombier goto ret;
1037*f591d971SDavid du Colombier
1038*f591d971SDavid du Colombier ret1:
1039*f591d971SDavid du Colombier yyn = 1;
1040*f591d971SDavid du Colombier goto ret;
1041*f591d971SDavid du Colombier
1042*f591d971SDavid du Colombier ret:
1043*f591d971SDavid du Colombier yylval = save1;
1044*f591d971SDavid du Colombier yyval = save2;
1045*f591d971SDavid du Colombier yynerrs = save3;
1046*f591d971SDavid du Colombier yyerrflag = save4;
1047*f591d971SDavid du Colombier return yyn;
1048*f591d971SDavid du Colombier
1049*f591d971SDavid du Colombier yystack:
1050*f591d971SDavid du Colombier /* put a state and value onto the stack */
1051*f591d971SDavid du Colombier if(yydebug >= 4)
1052*f591d971SDavid du Colombier printf("char %s in %s", yytokname(yychar), yystatname(yystate));
1053*f591d971SDavid du Colombier
1054*f591d971SDavid du Colombier yyp++;
1055*f591d971SDavid du Colombier if(yyp >= &yys[YYMAXDEPTH]) {
1056*f591d971SDavid du Colombier yyerror("yacc stack overflow");
1057*f591d971SDavid du Colombier goto ret1;
1058*f591d971SDavid du Colombier }
1059*f591d971SDavid du Colombier yyp->yys = yystate;
1060*f591d971SDavid du Colombier yyp->yyv = yyval;
1061*f591d971SDavid du Colombier
1062*f591d971SDavid du Colombier yynewstate:
1063*f591d971SDavid du Colombier yyn = yypact[yystate];
1064*f591d971SDavid du Colombier if(yyn <= YYFLAG)
1065*f591d971SDavid du Colombier goto yydefault; /* simple state */
1066*f591d971SDavid du Colombier if(yychar < 0)
1067*f591d971SDavid du Colombier yychar = yylex1();
1068*f591d971SDavid du Colombier yyn += yychar;
1069*f591d971SDavid du Colombier if(yyn < 0 || yyn >= YYLAST)
1070*f591d971SDavid du Colombier goto yydefault;
1071*f591d971SDavid du Colombier yyn = yyact[yyn];
1072*f591d971SDavid du Colombier if(yychk[yyn] == yychar) { /* valid shift */
1073*f591d971SDavid du Colombier yychar = -1;
1074*f591d971SDavid du Colombier yyval = yylval;
1075*f591d971SDavid du Colombier yystate = yyn;
1076*f591d971SDavid du Colombier if(yyerrflag > 0)
1077*f591d971SDavid du Colombier yyerrflag--;
1078*f591d971SDavid du Colombier goto yystack;
1079*f591d971SDavid du Colombier }
1080*f591d971SDavid du Colombier
1081*f591d971SDavid du Colombier yydefault:
1082*f591d971SDavid du Colombier /* default state action */
1083*f591d971SDavid du Colombier yyn = yydef[yystate];
1084*f591d971SDavid du Colombier if(yyn == -2) {
1085*f591d971SDavid du Colombier if(yychar < 0)
1086*f591d971SDavid du Colombier yychar = yylex1();
1087*f591d971SDavid du Colombier
1088*f591d971SDavid du Colombier /* look through exception table */
1089*f591d971SDavid du Colombier for(yyxi=yyexca;; yyxi+=2)
1090*f591d971SDavid du Colombier if(yyxi[0] == -1 && yyxi[1] == yystate)
1091*f591d971SDavid du Colombier break;
1092*f591d971SDavid du Colombier for(yyxi += 2;; yyxi += 2) {
1093*f591d971SDavid du Colombier yyn = yyxi[0];
1094*f591d971SDavid du Colombier if(yyn < 0 || yyn == yychar)
1095*f591d971SDavid du Colombier break;
1096*f591d971SDavid du Colombier }
1097*f591d971SDavid du Colombier yyn = yyxi[1];
1098*f591d971SDavid du Colombier if(yyn < 0)
1099*f591d971SDavid du Colombier goto ret0;
1100*f591d971SDavid du Colombier }
1101*f591d971SDavid du Colombier if(yyn == 0) {
1102*f591d971SDavid du Colombier /* error ... attempt to resume parsing */
1103*f591d971SDavid du Colombier switch(yyerrflag) {
1104*f591d971SDavid du Colombier case 0: /* brand new error */
1105*f591d971SDavid du Colombier yyerror("syntax error");
1106*f591d971SDavid du Colombier if(yydebug >= 1) {
1107*f591d971SDavid du Colombier printf("%s", yystatname(yystate));
1108*f591d971SDavid du Colombier printf("saw %s\n", yytokname(yychar));
1109*f591d971SDavid du Colombier }
1110*f591d971SDavid du Colombier yyerrlab:
1111*f591d971SDavid du Colombier yynerrs++;
1112*f591d971SDavid du Colombier
1113*f591d971SDavid du Colombier case 1:
1114*f591d971SDavid du Colombier case 2: /* incompletely recovered error ... try again */
1115*f591d971SDavid du Colombier yyerrflag = 3;
1116*f591d971SDavid du Colombier
1117*f591d971SDavid du Colombier /* find a state where "error" is a legal shift action */
1118*f591d971SDavid du Colombier while(yyp >= yys) {
1119*f591d971SDavid du Colombier yyn = yypact[yyp->yys] + YYERRCODE;
1120*f591d971SDavid du Colombier if(yyn >= 0 && yyn < YYLAST) {
1121*f591d971SDavid du Colombier yystate = yyact[yyn]; /* simulate a shift of "error" */
1122*f591d971SDavid du Colombier if(yychk[yystate] == YYERRCODE)
1123*f591d971SDavid du Colombier goto yystack;
1124*f591d971SDavid du Colombier }
1125*f591d971SDavid du Colombier
1126*f591d971SDavid du Colombier /* the current yyp has no shift onn "error", pop stack */
1127*f591d971SDavid du Colombier if(yydebug >= 2)
1128*f591d971SDavid du Colombier printf("error recovery pops state %d, uncovers %d\n",
1129*f591d971SDavid du Colombier yyp->yys, (yyp-1)->yys );
1130*f591d971SDavid du Colombier yyp--;
1131*f591d971SDavid du Colombier }
1132*f591d971SDavid du Colombier /* there is no state on the stack with an error shift ... abort */
1133*f591d971SDavid du Colombier goto ret1;
1134*f591d971SDavid du Colombier
1135*f591d971SDavid du Colombier case 3: /* no shift yet; clobber input char */
1136*f591d971SDavid du Colombier if(yydebug >= YYEOFCODE)
1137*f591d971SDavid du Colombier printf("error recovery discards %s\n", yytokname(yychar));
1138*f591d971SDavid du Colombier if(yychar == YYEOFCODE)
1139*f591d971SDavid du Colombier goto ret1;
1140*f591d971SDavid du Colombier yychar = -1;
1141*f591d971SDavid du Colombier goto yynewstate; /* try again in the same state */
1142*f591d971SDavid du Colombier }
1143*f591d971SDavid du Colombier }
1144*f591d971SDavid du Colombier
1145*f591d971SDavid du Colombier /* reduction by production yyn */
1146*f591d971SDavid du Colombier if(yydebug >= 2)
1147*f591d971SDavid du Colombier printf("reduce %d in:\n\t%s", yyn, yystatname(yystate));
1148*f591d971SDavid du Colombier
1149*f591d971SDavid du Colombier yypt = yyp;
1150*f591d971SDavid du Colombier yyp -= yyr2[yyn];
1151*f591d971SDavid du Colombier yyval = (yyp+1)->yyv;
1152*f591d971SDavid du Colombier yym = yyn;
1153*f591d971SDavid du Colombier
1154*f591d971SDavid du Colombier /* consult goto table to find next state */
1155*f591d971SDavid du Colombier yyn = yyr1[yyn];
1156*f591d971SDavid du Colombier yyg = yypgo[yyn];
1157*f591d971SDavid du Colombier yyj = yyg + yyp->yys + 1;
1158*f591d971SDavid du Colombier
1159*f591d971SDavid du Colombier if(yyj >= YYLAST || yychk[yystate=yyact[yyj]] != -yyn)
1160*f591d971SDavid du Colombier yystate = yyact[yyg];
1161*f591d971SDavid du Colombier switch(yym) {
1162*f591d971SDavid du Colombier
1163*f591d971SDavid du Colombier case 1:
1164*f591d971SDavid du Colombier #line 100 "/sys/src/cmd/awk/awkgram.y"
1165*f591d971SDavid du Colombier { if (errorflag==0)
1166*f591d971SDavid du Colombier winner = (Node *)stat3(PROGRAM, beginloc, yypt[-0].yyv.p, endloc); } break;
1167*f591d971SDavid du Colombier case 2:
1168*f591d971SDavid du Colombier #line 102 "/sys/src/cmd/awk/awkgram.y"
1169*f591d971SDavid du Colombier { yyclearin; bracecheck(); SYNTAX("bailing out"); } break;
1170*f591d971SDavid du Colombier case 13:
1171*f591d971SDavid du Colombier #line 126 "/sys/src/cmd/awk/awkgram.y"
1172*f591d971SDavid du Colombier {inloop++;} break;
1173*f591d971SDavid du Colombier case 14:
1174*f591d971SDavid du Colombier #line 127 "/sys/src/cmd/awk/awkgram.y"
1175*f591d971SDavid du Colombier { --inloop; yyval.p = stat4(FOR, yypt[-9].yyv.p, notnull(yypt[-6].yyv.p), yypt[-3].yyv.p, yypt[-0].yyv.p); } break;
1176*f591d971SDavid du Colombier case 15:
1177*f591d971SDavid du Colombier #line 128 "/sys/src/cmd/awk/awkgram.y"
1178*f591d971SDavid du Colombier {inloop++;} break;
1179*f591d971SDavid du Colombier case 16:
1180*f591d971SDavid du Colombier #line 129 "/sys/src/cmd/awk/awkgram.y"
1181*f591d971SDavid du Colombier { --inloop; yyval.p = stat4(FOR, yypt[-7].yyv.p, NIL, yypt[-3].yyv.p, yypt[-0].yyv.p); } break;
1182*f591d971SDavid du Colombier case 17:
1183*f591d971SDavid du Colombier #line 130 "/sys/src/cmd/awk/awkgram.y"
1184*f591d971SDavid du Colombier {inloop++;} break;
1185*f591d971SDavid du Colombier case 18:
1186*f591d971SDavid du Colombier #line 131 "/sys/src/cmd/awk/awkgram.y"
1187*f591d971SDavid du Colombier { --inloop; yyval.p = stat3(IN, yypt[-5].yyv.p, makearr(yypt[-3].yyv.p), yypt[-0].yyv.p); } break;
1188*f591d971SDavid du Colombier case 19:
1189*f591d971SDavid du Colombier #line 135 "/sys/src/cmd/awk/awkgram.y"
1190*f591d971SDavid du Colombier { setfname(yypt[-0].yyv.cp); } break;
1191*f591d971SDavid du Colombier case 20:
1192*f591d971SDavid du Colombier #line 136 "/sys/src/cmd/awk/awkgram.y"
1193*f591d971SDavid du Colombier { setfname(yypt[-0].yyv.cp); } break;
1194*f591d971SDavid du Colombier case 21:
1195*f591d971SDavid du Colombier #line 140 "/sys/src/cmd/awk/awkgram.y"
1196*f591d971SDavid du Colombier { yyval.p = notnull(yypt[-1].yyv.p); } break;
1197*f591d971SDavid du Colombier case 26:
1198*f591d971SDavid du Colombier #line 152 "/sys/src/cmd/awk/awkgram.y"
1199*f591d971SDavid du Colombier { yyval.i = 0; } break;
1200*f591d971SDavid du Colombier case 28:
1201*f591d971SDavid du Colombier #line 157 "/sys/src/cmd/awk/awkgram.y"
1202*f591d971SDavid du Colombier { yyval.i = 0; } break;
1203*f591d971SDavid du Colombier case 30:
1204*f591d971SDavid du Colombier #line 163 "/sys/src/cmd/awk/awkgram.y"
1205*f591d971SDavid du Colombier { yyval.p = 0; } break;
1206*f591d971SDavid du Colombier case 32:
1207*f591d971SDavid du Colombier #line 168 "/sys/src/cmd/awk/awkgram.y"
1208*f591d971SDavid du Colombier { yyval.p = 0; } break;
1209*f591d971SDavid du Colombier case 33:
1210*f591d971SDavid du Colombier #line 169 "/sys/src/cmd/awk/awkgram.y"
1211*f591d971SDavid du Colombier { yyval.p = yypt[-1].yyv.p; } break;
1212*f591d971SDavid du Colombier case 34:
1213*f591d971SDavid du Colombier #line 173 "/sys/src/cmd/awk/awkgram.y"
1214*f591d971SDavid du Colombier { yyval.p = notnull(yypt[-0].yyv.p); } break;
1215*f591d971SDavid du Colombier case 35:
1216*f591d971SDavid du Colombier #line 177 "/sys/src/cmd/awk/awkgram.y"
1217*f591d971SDavid du Colombier { yyval.p = stat2(PASTAT, yypt[-0].yyv.p, stat2(PRINT, rectonode(), NIL)); } break;
1218*f591d971SDavid du Colombier case 36:
1219*f591d971SDavid du Colombier #line 178 "/sys/src/cmd/awk/awkgram.y"
1220*f591d971SDavid du Colombier { yyval.p = stat2(PASTAT, yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1221*f591d971SDavid du Colombier case 37:
1222*f591d971SDavid du Colombier #line 179 "/sys/src/cmd/awk/awkgram.y"
1223*f591d971SDavid du Colombier { yyval.p = pa2stat(yypt[-2].yyv.p, yypt[-0].yyv.p, stat2(PRINT, rectonode(), NIL)); } break;
1224*f591d971SDavid du Colombier case 38:
1225*f591d971SDavid du Colombier #line 180 "/sys/src/cmd/awk/awkgram.y"
1226*f591d971SDavid du Colombier { yyval.p = pa2stat(yypt[-5].yyv.p, yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1227*f591d971SDavid du Colombier case 39:
1228*f591d971SDavid du Colombier #line 181 "/sys/src/cmd/awk/awkgram.y"
1229*f591d971SDavid du Colombier { yyval.p = stat2(PASTAT, NIL, yypt[-1].yyv.p); } break;
1230*f591d971SDavid du Colombier case 40:
1231*f591d971SDavid du Colombier #line 183 "/sys/src/cmd/awk/awkgram.y"
1232*f591d971SDavid du Colombier { beginloc = linkum(beginloc, yypt[-1].yyv.p); yyval.p = 0; } break;
1233*f591d971SDavid du Colombier case 41:
1234*f591d971SDavid du Colombier #line 185 "/sys/src/cmd/awk/awkgram.y"
1235*f591d971SDavid du Colombier { endloc = linkum(endloc, yypt[-1].yyv.p); yyval.p = 0; } break;
1236*f591d971SDavid du Colombier case 42:
1237*f591d971SDavid du Colombier #line 186 "/sys/src/cmd/awk/awkgram.y"
1238*f591d971SDavid du Colombier {infunc++;} break;
1239*f591d971SDavid du Colombier case 43:
1240*f591d971SDavid du Colombier #line 187 "/sys/src/cmd/awk/awkgram.y"
1241*f591d971SDavid du Colombier { infunc--; curfname=0; defn((Cell *)yypt[-7].yyv.p, yypt[-5].yyv.p, yypt[-1].yyv.p); yyval.p = 0; } break;
1242*f591d971SDavid du Colombier case 45:
1243*f591d971SDavid du Colombier #line 192 "/sys/src/cmd/awk/awkgram.y"
1244*f591d971SDavid du Colombier { yyval.p = linkum(yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1245*f591d971SDavid du Colombier case 47:
1246*f591d971SDavid du Colombier #line 197 "/sys/src/cmd/awk/awkgram.y"
1247*f591d971SDavid du Colombier { yyval.p = linkum(yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1248*f591d971SDavid du Colombier case 48:
1249*f591d971SDavid du Colombier #line 201 "/sys/src/cmd/awk/awkgram.y"
1250*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1251*f591d971SDavid du Colombier case 49:
1252*f591d971SDavid du Colombier #line 203 "/sys/src/cmd/awk/awkgram.y"
1253*f591d971SDavid du Colombier { yyval.p = op3(CONDEXPR, notnull(yypt[-4].yyv.p), yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1254*f591d971SDavid du Colombier case 50:
1255*f591d971SDavid du Colombier #line 205 "/sys/src/cmd/awk/awkgram.y"
1256*f591d971SDavid du Colombier { yyval.p = op2(BOR, notnull(yypt[-2].yyv.p), notnull(yypt[-0].yyv.p)); } break;
1257*f591d971SDavid du Colombier case 51:
1258*f591d971SDavid du Colombier #line 207 "/sys/src/cmd/awk/awkgram.y"
1259*f591d971SDavid du Colombier { yyval.p = op2(AND, notnull(yypt[-2].yyv.p), notnull(yypt[-0].yyv.p)); } break;
1260*f591d971SDavid du Colombier case 52:
1261*f591d971SDavid du Colombier #line 208 "/sys/src/cmd/awk/awkgram.y"
1262*f591d971SDavid du Colombier { yyval.p = op3(yypt[-1].yyv.i, NIL, yypt[-2].yyv.p, (Node*)makedfa(yypt[-0].yyv.s, 0)); } break;
1263*f591d971SDavid du Colombier case 53:
1264*f591d971SDavid du Colombier #line 210 "/sys/src/cmd/awk/awkgram.y"
1265*f591d971SDavid du Colombier { if (constnode(yypt[-0].yyv.p))
1266*f591d971SDavid du Colombier yyval.p = op3(yypt[-1].yyv.i, NIL, yypt[-2].yyv.p, (Node*)makedfa(strnode(yypt[-0].yyv.p), 0));
1267*f591d971SDavid du Colombier else
1268*f591d971SDavid du Colombier yyval.p = op3(yypt[-1].yyv.i, (Node *)1, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1269*f591d971SDavid du Colombier case 54:
1270*f591d971SDavid du Colombier #line 214 "/sys/src/cmd/awk/awkgram.y"
1271*f591d971SDavid du Colombier { yyval.p = op2(INTEST, yypt[-2].yyv.p, makearr(yypt[-0].yyv.p)); } break;
1272*f591d971SDavid du Colombier case 55:
1273*f591d971SDavid du Colombier #line 215 "/sys/src/cmd/awk/awkgram.y"
1274*f591d971SDavid du Colombier { yyval.p = op2(INTEST, yypt[-3].yyv.p, makearr(yypt[-0].yyv.p)); } break;
1275*f591d971SDavid du Colombier case 56:
1276*f591d971SDavid du Colombier #line 216 "/sys/src/cmd/awk/awkgram.y"
1277*f591d971SDavid du Colombier { yyval.p = op2(CAT, yypt[-1].yyv.p, yypt[-0].yyv.p); } break;
1278*f591d971SDavid du Colombier case 59:
1279*f591d971SDavid du Colombier #line 222 "/sys/src/cmd/awk/awkgram.y"
1280*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1281*f591d971SDavid du Colombier case 60:
1282*f591d971SDavid du Colombier #line 224 "/sys/src/cmd/awk/awkgram.y"
1283*f591d971SDavid du Colombier { yyval.p = op3(CONDEXPR, notnull(yypt[-4].yyv.p), yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1284*f591d971SDavid du Colombier case 61:
1285*f591d971SDavid du Colombier #line 226 "/sys/src/cmd/awk/awkgram.y"
1286*f591d971SDavid du Colombier { yyval.p = op2(BOR, notnull(yypt[-2].yyv.p), notnull(yypt[-0].yyv.p)); } break;
1287*f591d971SDavid du Colombier case 62:
1288*f591d971SDavid du Colombier #line 228 "/sys/src/cmd/awk/awkgram.y"
1289*f591d971SDavid du Colombier { yyval.p = op2(AND, notnull(yypt[-2].yyv.p), notnull(yypt[-0].yyv.p)); } break;
1290*f591d971SDavid du Colombier case 63:
1291*f591d971SDavid du Colombier #line 229 "/sys/src/cmd/awk/awkgram.y"
1292*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1293*f591d971SDavid du Colombier case 64:
1294*f591d971SDavid du Colombier #line 230 "/sys/src/cmd/awk/awkgram.y"
1295*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1296*f591d971SDavid du Colombier case 65:
1297*f591d971SDavid du Colombier #line 231 "/sys/src/cmd/awk/awkgram.y"
1298*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1299*f591d971SDavid du Colombier case 66:
1300*f591d971SDavid du Colombier #line 232 "/sys/src/cmd/awk/awkgram.y"
1301*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1302*f591d971SDavid du Colombier case 67:
1303*f591d971SDavid du Colombier #line 233 "/sys/src/cmd/awk/awkgram.y"
1304*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1305*f591d971SDavid du Colombier case 68:
1306*f591d971SDavid du Colombier #line 234 "/sys/src/cmd/awk/awkgram.y"
1307*f591d971SDavid du Colombier { yyval.p = op2(yypt[-1].yyv.i, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1308*f591d971SDavid du Colombier case 69:
1309*f591d971SDavid du Colombier #line 235 "/sys/src/cmd/awk/awkgram.y"
1310*f591d971SDavid du Colombier { yyval.p = op3(yypt[-1].yyv.i, NIL, yypt[-2].yyv.p, (Node*)makedfa(yypt[-0].yyv.s, 0)); } break;
1311*f591d971SDavid du Colombier case 70:
1312*f591d971SDavid du Colombier #line 237 "/sys/src/cmd/awk/awkgram.y"
1313*f591d971SDavid du Colombier { if (constnode(yypt[-0].yyv.p))
1314*f591d971SDavid du Colombier yyval.p = op3(yypt[-1].yyv.i, NIL, yypt[-2].yyv.p, (Node*)makedfa(strnode(yypt[-0].yyv.p), 0));
1315*f591d971SDavid du Colombier else
1316*f591d971SDavid du Colombier yyval.p = op3(yypt[-1].yyv.i, (Node *)1, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1317*f591d971SDavid du Colombier case 71:
1318*f591d971SDavid du Colombier #line 241 "/sys/src/cmd/awk/awkgram.y"
1319*f591d971SDavid du Colombier { yyval.p = op2(INTEST, yypt[-2].yyv.p, makearr(yypt[-0].yyv.p)); } break;
1320*f591d971SDavid du Colombier case 72:
1321*f591d971SDavid du Colombier #line 242 "/sys/src/cmd/awk/awkgram.y"
1322*f591d971SDavid du Colombier { yyval.p = op2(INTEST, yypt[-3].yyv.p, makearr(yypt[-0].yyv.p)); } break;
1323*f591d971SDavid du Colombier case 73:
1324*f591d971SDavid du Colombier #line 243 "/sys/src/cmd/awk/awkgram.y"
1325*f591d971SDavid du Colombier {
1326*f591d971SDavid du Colombier if (safe) SYNTAX("cmd | getline is unsafe");
1327*f591d971SDavid du Colombier else yyval.p = op3(GETLINE, yypt[-0].yyv.p, itonp(yypt[-2].yyv.i), yypt[-3].yyv.p); } break;
1328*f591d971SDavid du Colombier case 74:
1329*f591d971SDavid du Colombier #line 246 "/sys/src/cmd/awk/awkgram.y"
1330*f591d971SDavid du Colombier {
1331*f591d971SDavid du Colombier if (safe) SYNTAX("cmd | getline is unsafe");
1332*f591d971SDavid du Colombier else yyval.p = op3(GETLINE, (Node*)0, itonp(yypt[-1].yyv.i), yypt[-2].yyv.p); } break;
1333*f591d971SDavid du Colombier case 75:
1334*f591d971SDavid du Colombier #line 249 "/sys/src/cmd/awk/awkgram.y"
1335*f591d971SDavid du Colombier { yyval.p = op2(CAT, yypt[-1].yyv.p, yypt[-0].yyv.p); } break;
1336*f591d971SDavid du Colombier case 78:
1337*f591d971SDavid du Colombier #line 255 "/sys/src/cmd/awk/awkgram.y"
1338*f591d971SDavid du Colombier { yyval.p = linkum(yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1339*f591d971SDavid du Colombier case 79:
1340*f591d971SDavid du Colombier #line 256 "/sys/src/cmd/awk/awkgram.y"
1341*f591d971SDavid du Colombier { yyval.p = linkum(yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1342*f591d971SDavid du Colombier case 81:
1343*f591d971SDavid du Colombier #line 261 "/sys/src/cmd/awk/awkgram.y"
1344*f591d971SDavid du Colombier { yyval.p = linkum(yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1345*f591d971SDavid du Colombier case 82:
1346*f591d971SDavid du Colombier #line 265 "/sys/src/cmd/awk/awkgram.y"
1347*f591d971SDavid du Colombier { yyval.p = rectonode(); } break;
1348*f591d971SDavid du Colombier case 84:
1349*f591d971SDavid du Colombier #line 267 "/sys/src/cmd/awk/awkgram.y"
1350*f591d971SDavid du Colombier { yyval.p = yypt[-1].yyv.p; } break;
1351*f591d971SDavid du Colombier case 93:
1352*f591d971SDavid du Colombier #line 284 "/sys/src/cmd/awk/awkgram.y"
1353*f591d971SDavid du Colombier { yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yypt[-0].yyv.s, 0)); } break;
1354*f591d971SDavid du Colombier case 94:
1355*f591d971SDavid du Colombier #line 285 "/sys/src/cmd/awk/awkgram.y"
1356*f591d971SDavid du Colombier { yyval.p = op1(NOT, notnull(yypt[-0].yyv.p)); } break;
1357*f591d971SDavid du Colombier case 95:
1358*f591d971SDavid du Colombier #line 289 "/sys/src/cmd/awk/awkgram.y"
1359*f591d971SDavid du Colombier {startreg();} break;
1360*f591d971SDavid du Colombier case 96:
1361*f591d971SDavid du Colombier #line 289 "/sys/src/cmd/awk/awkgram.y"
1362*f591d971SDavid du Colombier { yyval.s = yypt[-1].yyv.s; } break;
1363*f591d971SDavid du Colombier case 99:
1364*f591d971SDavid du Colombier #line 297 "/sys/src/cmd/awk/awkgram.y"
1365*f591d971SDavid du Colombier {
1366*f591d971SDavid du Colombier if (safe) SYNTAX("print | is unsafe");
1367*f591d971SDavid du Colombier else yyval.p = stat3(yypt[-3].yyv.i, yypt[-2].yyv.p, itonp(yypt[-1].yyv.i), yypt[-0].yyv.p); } break;
1368*f591d971SDavid du Colombier case 100:
1369*f591d971SDavid du Colombier #line 300 "/sys/src/cmd/awk/awkgram.y"
1370*f591d971SDavid du Colombier {
1371*f591d971SDavid du Colombier if (safe) SYNTAX("print >> is unsafe");
1372*f591d971SDavid du Colombier else yyval.p = stat3(yypt[-3].yyv.i, yypt[-2].yyv.p, itonp(yypt[-1].yyv.i), yypt[-0].yyv.p); } break;
1373*f591d971SDavid du Colombier case 101:
1374*f591d971SDavid du Colombier #line 303 "/sys/src/cmd/awk/awkgram.y"
1375*f591d971SDavid du Colombier {
1376*f591d971SDavid du Colombier if (safe) SYNTAX("print > is unsafe");
1377*f591d971SDavid du Colombier else yyval.p = stat3(yypt[-3].yyv.i, yypt[-2].yyv.p, itonp(yypt[-1].yyv.i), yypt[-0].yyv.p); } break;
1378*f591d971SDavid du Colombier case 102:
1379*f591d971SDavid du Colombier #line 306 "/sys/src/cmd/awk/awkgram.y"
1380*f591d971SDavid du Colombier { yyval.p = stat3(yypt[-1].yyv.i, yypt[-0].yyv.p, NIL, NIL); } break;
1381*f591d971SDavid du Colombier case 103:
1382*f591d971SDavid du Colombier #line 307 "/sys/src/cmd/awk/awkgram.y"
1383*f591d971SDavid du Colombier { yyval.p = stat2(DELETE, makearr(yypt[-3].yyv.p), yypt[-1].yyv.p); } break;
1384*f591d971SDavid du Colombier case 104:
1385*f591d971SDavid du Colombier #line 308 "/sys/src/cmd/awk/awkgram.y"
1386*f591d971SDavid du Colombier { yyval.p = stat2(DELETE, makearr(yypt[-0].yyv.p), 0); } break;
1387*f591d971SDavid du Colombier case 105:
1388*f591d971SDavid du Colombier #line 309 "/sys/src/cmd/awk/awkgram.y"
1389*f591d971SDavid du Colombier { yyval.p = exptostat(yypt[-0].yyv.p); } break;
1390*f591d971SDavid du Colombier case 106:
1391*f591d971SDavid du Colombier #line 310 "/sys/src/cmd/awk/awkgram.y"
1392*f591d971SDavid du Colombier { yyclearin; SYNTAX("illegal statement"); } break;
1393*f591d971SDavid du Colombier case 109:
1394*f591d971SDavid du Colombier #line 319 "/sys/src/cmd/awk/awkgram.y"
1395*f591d971SDavid du Colombier { if (!inloop) SYNTAX("break illegal outside of loops");
1396*f591d971SDavid du Colombier yyval.p = stat1(BREAK, NIL); } break;
1397*f591d971SDavid du Colombier case 110:
1398*f591d971SDavid du Colombier #line 321 "/sys/src/cmd/awk/awkgram.y"
1399*f591d971SDavid du Colombier { yyval.p = stat1(CLOSE, yypt[-1].yyv.p); } break;
1400*f591d971SDavid du Colombier case 111:
1401*f591d971SDavid du Colombier #line 322 "/sys/src/cmd/awk/awkgram.y"
1402*f591d971SDavid du Colombier { if (!inloop) SYNTAX("continue illegal outside of loops");
1403*f591d971SDavid du Colombier yyval.p = stat1(CONTINUE, NIL); } break;
1404*f591d971SDavid du Colombier case 112:
1405*f591d971SDavid du Colombier #line 324 "/sys/src/cmd/awk/awkgram.y"
1406*f591d971SDavid du Colombier {inloop++;} break;
1407*f591d971SDavid du Colombier case 113:
1408*f591d971SDavid du Colombier #line 324 "/sys/src/cmd/awk/awkgram.y"
1409*f591d971SDavid du Colombier {--inloop;} break;
1410*f591d971SDavid du Colombier case 114:
1411*f591d971SDavid du Colombier #line 325 "/sys/src/cmd/awk/awkgram.y"
1412*f591d971SDavid du Colombier { yyval.p = stat2(DO, yypt[-6].yyv.p, notnull(yypt[-2].yyv.p)); } break;
1413*f591d971SDavid du Colombier case 115:
1414*f591d971SDavid du Colombier #line 326 "/sys/src/cmd/awk/awkgram.y"
1415*f591d971SDavid du Colombier { yyval.p = stat1(EXIT, yypt[-1].yyv.p); } break;
1416*f591d971SDavid du Colombier case 116:
1417*f591d971SDavid du Colombier #line 327 "/sys/src/cmd/awk/awkgram.y"
1418*f591d971SDavid du Colombier { yyval.p = stat1(EXIT, NIL); } break;
1419*f591d971SDavid du Colombier case 118:
1420*f591d971SDavid du Colombier #line 329 "/sys/src/cmd/awk/awkgram.y"
1421*f591d971SDavid du Colombier { yyval.p = stat3(IF, yypt[-3].yyv.p, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1422*f591d971SDavid du Colombier case 119:
1423*f591d971SDavid du Colombier #line 330 "/sys/src/cmd/awk/awkgram.y"
1424*f591d971SDavid du Colombier { yyval.p = stat3(IF, yypt[-1].yyv.p, yypt[-0].yyv.p, NIL); } break;
1425*f591d971SDavid du Colombier case 120:
1426*f591d971SDavid du Colombier #line 331 "/sys/src/cmd/awk/awkgram.y"
1427*f591d971SDavid du Colombier { yyval.p = yypt[-1].yyv.p; } break;
1428*f591d971SDavid du Colombier case 121:
1429*f591d971SDavid du Colombier #line 332 "/sys/src/cmd/awk/awkgram.y"
1430*f591d971SDavid du Colombier { if (infunc)
1431*f591d971SDavid du Colombier SYNTAX("next is illegal inside a function");
1432*f591d971SDavid du Colombier yyval.p = stat1(NEXT, NIL); } break;
1433*f591d971SDavid du Colombier case 122:
1434*f591d971SDavid du Colombier #line 335 "/sys/src/cmd/awk/awkgram.y"
1435*f591d971SDavid du Colombier { if (infunc)
1436*f591d971SDavid du Colombier SYNTAX("nextfile is illegal inside a function");
1437*f591d971SDavid du Colombier yyval.p = stat1(NEXTFILE, NIL); } break;
1438*f591d971SDavid du Colombier case 123:
1439*f591d971SDavid du Colombier #line 338 "/sys/src/cmd/awk/awkgram.y"
1440*f591d971SDavid du Colombier { yyval.p = stat1(RETURN, yypt[-1].yyv.p); } break;
1441*f591d971SDavid du Colombier case 124:
1442*f591d971SDavid du Colombier #line 339 "/sys/src/cmd/awk/awkgram.y"
1443*f591d971SDavid du Colombier { yyval.p = stat1(RETURN, NIL); } break;
1444*f591d971SDavid du Colombier case 126:
1445*f591d971SDavid du Colombier #line 341 "/sys/src/cmd/awk/awkgram.y"
1446*f591d971SDavid du Colombier {inloop++;} break;
1447*f591d971SDavid du Colombier case 127:
1448*f591d971SDavid du Colombier #line 341 "/sys/src/cmd/awk/awkgram.y"
1449*f591d971SDavid du Colombier { --inloop; yyval.p = stat2(WHILE, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1450*f591d971SDavid du Colombier case 128:
1451*f591d971SDavid du Colombier #line 342 "/sys/src/cmd/awk/awkgram.y"
1452*f591d971SDavid du Colombier { yyval.p = 0; } break;
1453*f591d971SDavid du Colombier case 130:
1454*f591d971SDavid du Colombier #line 347 "/sys/src/cmd/awk/awkgram.y"
1455*f591d971SDavid du Colombier { yyval.p = linkum(yypt[-1].yyv.p, yypt[-0].yyv.p); } break;
1456*f591d971SDavid du Colombier case 133:
1457*f591d971SDavid du Colombier #line 355 "/sys/src/cmd/awk/awkgram.y"
1458*f591d971SDavid du Colombier { yyval.p = op2(DIVEQ, yypt[-3].yyv.p, yypt[-0].yyv.p); } break;
1459*f591d971SDavid du Colombier case 134:
1460*f591d971SDavid du Colombier #line 356 "/sys/src/cmd/awk/awkgram.y"
1461*f591d971SDavid du Colombier { yyval.p = op2(ADD, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1462*f591d971SDavid du Colombier case 135:
1463*f591d971SDavid du Colombier #line 357 "/sys/src/cmd/awk/awkgram.y"
1464*f591d971SDavid du Colombier { yyval.p = op2(MINUS, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1465*f591d971SDavid du Colombier case 136:
1466*f591d971SDavid du Colombier #line 358 "/sys/src/cmd/awk/awkgram.y"
1467*f591d971SDavid du Colombier { yyval.p = op2(MULT, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1468*f591d971SDavid du Colombier case 137:
1469*f591d971SDavid du Colombier #line 359 "/sys/src/cmd/awk/awkgram.y"
1470*f591d971SDavid du Colombier { yyval.p = op2(DIVIDE, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1471*f591d971SDavid du Colombier case 138:
1472*f591d971SDavid du Colombier #line 360 "/sys/src/cmd/awk/awkgram.y"
1473*f591d971SDavid du Colombier { yyval.p = op2(MOD, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1474*f591d971SDavid du Colombier case 139:
1475*f591d971SDavid du Colombier #line 361 "/sys/src/cmd/awk/awkgram.y"
1476*f591d971SDavid du Colombier { yyval.p = op2(POWER, yypt[-2].yyv.p, yypt[-0].yyv.p); } break;
1477*f591d971SDavid du Colombier case 140:
1478*f591d971SDavid du Colombier #line 362 "/sys/src/cmd/awk/awkgram.y"
1479*f591d971SDavid du Colombier { yyval.p = op1(UMINUS, yypt[-0].yyv.p); } break;
1480*f591d971SDavid du Colombier case 141:
1481*f591d971SDavid du Colombier #line 363 "/sys/src/cmd/awk/awkgram.y"
1482*f591d971SDavid du Colombier { yyval.p = yypt[-0].yyv.p; } break;
1483*f591d971SDavid du Colombier case 142:
1484*f591d971SDavid du Colombier #line 364 "/sys/src/cmd/awk/awkgram.y"
1485*f591d971SDavid du Colombier { yyval.p = op1(NOT, notnull(yypt[-0].yyv.p)); } break;
1486*f591d971SDavid du Colombier case 143:
1487*f591d971SDavid du Colombier #line 365 "/sys/src/cmd/awk/awkgram.y"
1488*f591d971SDavid du Colombier { yyval.p = op2(BLTIN, itonp(yypt[-2].yyv.i), rectonode()); } break;
1489*f591d971SDavid du Colombier case 144:
1490*f591d971SDavid du Colombier #line 366 "/sys/src/cmd/awk/awkgram.y"
1491*f591d971SDavid du Colombier { yyval.p = op2(BLTIN, itonp(yypt[-3].yyv.i), yypt[-1].yyv.p); } break;
1492*f591d971SDavid du Colombier case 145:
1493*f591d971SDavid du Colombier #line 367 "/sys/src/cmd/awk/awkgram.y"
1494*f591d971SDavid du Colombier { yyval.p = op2(BLTIN, itonp(yypt[-0].yyv.i), rectonode()); } break;
1495*f591d971SDavid du Colombier case 146:
1496*f591d971SDavid du Colombier #line 368 "/sys/src/cmd/awk/awkgram.y"
1497*f591d971SDavid du Colombier { yyval.p = op2(CALL, celltonode(yypt[-2].yyv.cp,CVAR), NIL); } break;
1498*f591d971SDavid du Colombier case 147:
1499*f591d971SDavid du Colombier #line 369 "/sys/src/cmd/awk/awkgram.y"
1500*f591d971SDavid du Colombier { yyval.p = op2(CALL, celltonode(yypt[-3].yyv.cp,CVAR), yypt[-1].yyv.p); } break;
1501*f591d971SDavid du Colombier case 148:
1502*f591d971SDavid du Colombier #line 370 "/sys/src/cmd/awk/awkgram.y"
1503*f591d971SDavid du Colombier { yyval.p = op1(PREDECR, yypt[-0].yyv.p); } break;
1504*f591d971SDavid du Colombier case 149:
1505*f591d971SDavid du Colombier #line 371 "/sys/src/cmd/awk/awkgram.y"
1506*f591d971SDavid du Colombier { yyval.p = op1(PREINCR, yypt[-0].yyv.p); } break;
1507*f591d971SDavid du Colombier case 150:
1508*f591d971SDavid du Colombier #line 372 "/sys/src/cmd/awk/awkgram.y"
1509*f591d971SDavid du Colombier { yyval.p = op1(POSTDECR, yypt[-1].yyv.p); } break;
1510*f591d971SDavid du Colombier case 151:
1511*f591d971SDavid du Colombier #line 373 "/sys/src/cmd/awk/awkgram.y"
1512*f591d971SDavid du Colombier { yyval.p = op1(POSTINCR, yypt[-1].yyv.p); } break;
1513*f591d971SDavid du Colombier case 152:
1514*f591d971SDavid du Colombier #line 374 "/sys/src/cmd/awk/awkgram.y"
1515*f591d971SDavid du Colombier { yyval.p = op3(GETLINE, yypt[-2].yyv.p, itonp(yypt[-1].yyv.i), yypt[-0].yyv.p); } break;
1516*f591d971SDavid du Colombier case 153:
1517*f591d971SDavid du Colombier #line 375 "/sys/src/cmd/awk/awkgram.y"
1518*f591d971SDavid du Colombier { yyval.p = op3(GETLINE, NIL, itonp(yypt[-1].yyv.i), yypt[-0].yyv.p); } break;
1519*f591d971SDavid du Colombier case 154:
1520*f591d971SDavid du Colombier #line 376 "/sys/src/cmd/awk/awkgram.y"
1521*f591d971SDavid du Colombier { yyval.p = op3(GETLINE, yypt[-0].yyv.p, NIL, NIL); } break;
1522*f591d971SDavid du Colombier case 155:
1523*f591d971SDavid du Colombier #line 377 "/sys/src/cmd/awk/awkgram.y"
1524*f591d971SDavid du Colombier { yyval.p = op3(GETLINE, NIL, NIL, NIL); } break;
1525*f591d971SDavid du Colombier case 156:
1526*f591d971SDavid du Colombier #line 379 "/sys/src/cmd/awk/awkgram.y"
1527*f591d971SDavid du Colombier { yyval.p = op2(INDEX, yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1528*f591d971SDavid du Colombier case 157:
1529*f591d971SDavid du Colombier #line 381 "/sys/src/cmd/awk/awkgram.y"
1530*f591d971SDavid du Colombier { SYNTAX("index() doesn't permit regular expressions");
1531*f591d971SDavid du Colombier yyval.p = op2(INDEX, yypt[-3].yyv.p, (Node*)yypt[-1].yyv.s); } break;
1532*f591d971SDavid du Colombier case 158:
1533*f591d971SDavid du Colombier #line 383 "/sys/src/cmd/awk/awkgram.y"
1534*f591d971SDavid du Colombier { yyval.p = yypt[-1].yyv.p; } break;
1535*f591d971SDavid du Colombier case 159:
1536*f591d971SDavid du Colombier #line 385 "/sys/src/cmd/awk/awkgram.y"
1537*f591d971SDavid du Colombier { yyval.p = op3(MATCHFCN, NIL, yypt[-3].yyv.p, (Node*)makedfa(yypt[-1].yyv.s, 1)); } break;
1538*f591d971SDavid du Colombier case 160:
1539*f591d971SDavid du Colombier #line 387 "/sys/src/cmd/awk/awkgram.y"
1540*f591d971SDavid du Colombier { if (constnode(yypt[-1].yyv.p))
1541*f591d971SDavid du Colombier yyval.p = op3(MATCHFCN, NIL, yypt[-3].yyv.p, (Node*)makedfa(strnode(yypt[-1].yyv.p), 1));
1542*f591d971SDavid du Colombier else
1543*f591d971SDavid du Colombier yyval.p = op3(MATCHFCN, (Node *)1, yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1544*f591d971SDavid du Colombier case 161:
1545*f591d971SDavid du Colombier #line 391 "/sys/src/cmd/awk/awkgram.y"
1546*f591d971SDavid du Colombier { yyval.p = celltonode(yypt[-0].yyv.cp, CCON); } break;
1547*f591d971SDavid du Colombier case 162:
1548*f591d971SDavid du Colombier #line 393 "/sys/src/cmd/awk/awkgram.y"
1549*f591d971SDavid du Colombier { yyval.p = op4(SPLIT, yypt[-5].yyv.p, makearr(yypt[-3].yyv.p), yypt[-1].yyv.p, (Node*)STRING); } break;
1550*f591d971SDavid du Colombier case 163:
1551*f591d971SDavid du Colombier #line 395 "/sys/src/cmd/awk/awkgram.y"
1552*f591d971SDavid du Colombier { yyval.p = op4(SPLIT, yypt[-5].yyv.p, makearr(yypt[-3].yyv.p), (Node*)makedfa(yypt[-1].yyv.s, 1), (Node *)REGEXPR); } break;
1553*f591d971SDavid du Colombier case 164:
1554*f591d971SDavid du Colombier #line 397 "/sys/src/cmd/awk/awkgram.y"
1555*f591d971SDavid du Colombier { yyval.p = op4(SPLIT, yypt[-3].yyv.p, makearr(yypt[-1].yyv.p), NIL, (Node*)STRING); } break;
1556*f591d971SDavid du Colombier case 165:
1557*f591d971SDavid du Colombier #line 398 "/sys/src/cmd/awk/awkgram.y"
1558*f591d971SDavid du Colombier { yyval.p = op1(yypt[-3].yyv.i, yypt[-1].yyv.p); } break;
1559*f591d971SDavid du Colombier case 166:
1560*f591d971SDavid du Colombier #line 399 "/sys/src/cmd/awk/awkgram.y"
1561*f591d971SDavid du Colombier { yyval.p = celltonode(yypt[-0].yyv.cp, CCON); } break;
1562*f591d971SDavid du Colombier case 167:
1563*f591d971SDavid du Colombier #line 401 "/sys/src/cmd/awk/awkgram.y"
1564*f591d971SDavid du Colombier { yyval.p = op4(yypt[-5].yyv.i, NIL, (Node*)makedfa(yypt[-3].yyv.s, 1), yypt[-1].yyv.p, rectonode()); } break;
1565*f591d971SDavid du Colombier case 168:
1566*f591d971SDavid du Colombier #line 403 "/sys/src/cmd/awk/awkgram.y"
1567*f591d971SDavid du Colombier { if (constnode(yypt[-3].yyv.p))
1568*f591d971SDavid du Colombier yyval.p = op4(yypt[-5].yyv.i, NIL, (Node*)makedfa(strnode(yypt[-3].yyv.p), 1), yypt[-1].yyv.p, rectonode());
1569*f591d971SDavid du Colombier else
1570*f591d971SDavid du Colombier yyval.p = op4(yypt[-5].yyv.i, (Node *)1, yypt[-3].yyv.p, yypt[-1].yyv.p, rectonode()); } break;
1571*f591d971SDavid du Colombier case 169:
1572*f591d971SDavid du Colombier #line 408 "/sys/src/cmd/awk/awkgram.y"
1573*f591d971SDavid du Colombier { yyval.p = op4(yypt[-7].yyv.i, NIL, (Node*)makedfa(yypt[-5].yyv.s, 1), yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1574*f591d971SDavid du Colombier case 170:
1575*f591d971SDavid du Colombier #line 410 "/sys/src/cmd/awk/awkgram.y"
1576*f591d971SDavid du Colombier { if (constnode(yypt[-5].yyv.p))
1577*f591d971SDavid du Colombier yyval.p = op4(yypt[-7].yyv.i, NIL, (Node*)makedfa(strnode(yypt[-5].yyv.p), 1), yypt[-3].yyv.p, yypt[-1].yyv.p);
1578*f591d971SDavid du Colombier else
1579*f591d971SDavid du Colombier yyval.p = op4(yypt[-7].yyv.i, (Node *)1, yypt[-5].yyv.p, yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1580*f591d971SDavid du Colombier case 171:
1581*f591d971SDavid du Colombier #line 415 "/sys/src/cmd/awk/awkgram.y"
1582*f591d971SDavid du Colombier { yyval.p = op3(SUBSTR, yypt[-5].yyv.p, yypt[-3].yyv.p, yypt[-1].yyv.p); } break;
1583*f591d971SDavid du Colombier case 172:
1584*f591d971SDavid du Colombier #line 417 "/sys/src/cmd/awk/awkgram.y"
1585*f591d971SDavid du Colombier { yyval.p = op3(SUBSTR, yypt[-3].yyv.p, yypt[-1].yyv.p, NIL); } break;
1586*f591d971SDavid du Colombier case 175:
1587*f591d971SDavid du Colombier #line 423 "/sys/src/cmd/awk/awkgram.y"
1588*f591d971SDavid du Colombier { yyval.p = op2(ARRAY, makearr(yypt[-3].yyv.p), yypt[-1].yyv.p); } break;
1589*f591d971SDavid du Colombier case 176:
1590*f591d971SDavid du Colombier #line 424 "/sys/src/cmd/awk/awkgram.y"
1591*f591d971SDavid du Colombier { yyval.p = op1(INDIRECT, celltonode(yypt[-0].yyv.cp, CVAR)); } break;
1592*f591d971SDavid du Colombier case 177:
1593*f591d971SDavid du Colombier #line 425 "/sys/src/cmd/awk/awkgram.y"
1594*f591d971SDavid du Colombier { yyval.p = op1(INDIRECT, yypt[-0].yyv.p); } break;
1595*f591d971SDavid du Colombier case 178:
1596*f591d971SDavid du Colombier #line 429 "/sys/src/cmd/awk/awkgram.y"
1597*f591d971SDavid du Colombier { arglist = yyval.p = 0; } break;
1598*f591d971SDavid du Colombier case 179:
1599*f591d971SDavid du Colombier #line 430 "/sys/src/cmd/awk/awkgram.y"
1600*f591d971SDavid du Colombier { arglist = yyval.p = celltonode(yypt[-0].yyv.cp,CVAR); } break;
1601*f591d971SDavid du Colombier case 180:
1602*f591d971SDavid du Colombier #line 431 "/sys/src/cmd/awk/awkgram.y"
1603*f591d971SDavid du Colombier {
1604*f591d971SDavid du Colombier checkdup(yypt[-2].yyv.p, yypt[-0].yyv.cp);
1605*f591d971SDavid du Colombier arglist = yyval.p = linkum(yypt[-2].yyv.p,celltonode(yypt[-0].yyv.cp,CVAR)); } break;
1606*f591d971SDavid du Colombier case 181:
1607*f591d971SDavid du Colombier #line 437 "/sys/src/cmd/awk/awkgram.y"
1608*f591d971SDavid du Colombier { yyval.p = celltonode(yypt[-0].yyv.cp, CVAR); } break;
1609*f591d971SDavid du Colombier case 182:
1610*f591d971SDavid du Colombier #line 438 "/sys/src/cmd/awk/awkgram.y"
1611*f591d971SDavid du Colombier { yyval.p = op1(ARG, itonp(yypt[-0].yyv.i)); } break;
1612*f591d971SDavid du Colombier case 183:
1613*f591d971SDavid du Colombier #line 439 "/sys/src/cmd/awk/awkgram.y"
1614*f591d971SDavid du Colombier { yyval.p = op1(VARNF, (Node *) yypt[-0].yyv.cp); } break;
1615*f591d971SDavid du Colombier case 184:
1616*f591d971SDavid du Colombier #line 444 "/sys/src/cmd/awk/awkgram.y"
1617*f591d971SDavid du Colombier { yyval.p = notnull(yypt[-1].yyv.p); } break;
1618*f591d971SDavid du Colombier }
1619*f591d971SDavid du Colombier goto yystack; /* stack new state and value */
1620*f591d971SDavid du Colombier }
1621