blob: d92c4a411dfa8a282cba5814f6e1fc658f7aaf31 [file] [log] [blame]
#ifndef lint
static char const
yyrcsid[] = "$FreeBSD: src/usr.bin/yacc/skeleton.c,v 1.28 2000/01/17 02:04:06 bde Exp $";
#endif
#include <stdlib.h>
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define YYLEX yylex()
#define YYEMPTY -1
#define yyclearin (yychar=(YYEMPTY))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING() (yyerrflag!=0)
static int yygrowstack();
#define YYPREFIX "yy"
#line 15 "perly.y"
#include "INTERN.h"
#include "perl.h"
STAB *scrstab;
ARG *arg4; /* rarely used arguments to make_op() */
ARG *arg5;
#line 26 "perly.y"
typedef union {
int ival;
char *cval;
ARG *arg;
CMD *cmdval;
struct compcmd compval;
STAB *stabval;
FCMD *formval;
} YYSTYPE;
#line 35 "y.tab.c"
#define YYERRCODE 256
#define WORD 257
#define APPEND 258
#define OPEN 259
#define SSELECT 260
#define LOOPEX 261
#define USING 262
#define FORMAT 263
#define DO 264
#define SHIFT 265
#define PUSH 266
#define POP 267
#define LVALFUN 268
#define WHILE 269
#define UNTIL 270
#define IF 271
#define UNLESS 272
#define ELSE 273
#define ELSIF 274
#define CONTINUE 275
#define SPLIT 276
#define FLIST 277
#define FOR 278
#define FILOP 279
#define FILOP2 280
#define FILOP3 281
#define FILOP4 282
#define FILOP22 283
#define FILOP25 284
#define FUNC0 285
#define FUNC1 286
#define FUNC2 287
#define FUNC2x 288
#define FUNC3 289
#define FUNC4 290
#define FUNC5 291
#define HSHFUN 292
#define HSHFUN3 293
#define FLIST2 294
#define SUB 295
#define FILETEST 296
#define LOCAL 297
#define DELETE 298
#define RELOP 299
#define EQOP 300
#define MULOP 301
#define ADDOP 302
#define PACKAGE 303
#define AMPER 304
#define FORMLIST 305
#define REG 306
#define ARYLEN 307
#define ARY 308
#define HSH 309
#define STAR 310
#define SUBST 311
#define PATTERN 312
#define RSTRING 313
#define TRANS 314
#define LISTOP 315
#define DOTDOT 316
#define OROR 317
#define ANDAND 318
#define UNIOP 319
#define LS 320
#define RS 321
#define MATCH 322
#define NMATCH 323
#define UMINUS 324
#define POW 325
#define INC 326
#define DEC 327
const short yylhs[] = { -1,
25, 0, 24, 24, 11, 11, 11, 4, 3, 5,
5, 6, 6, 6, 6, 6, 9, 9, 9, 9,
9, 9, 8, 8, 8, 8, 7, 7, 7, 7,
7, 7, 7, 7, 10, 10, 20, 20, 23, 23,
1, 1, 1, 2, 2, 26, 27, 14, 12, 12,
15, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 21,
21, 21, 21, 21, 17, 17, 18, 18, 19, 19,
22,
};
const short yylen[] = { 2,
0, 2, 3, 2, 0, 2, 5, 4, 0, 0,
2, 1, 2, 1, 2, 3, 1, 1, 3, 3,
3, 3, 5, 5, 3, 3, 6, 6, 4, 4,
7, 6, 10, 2, 0, 1, 0, 1, 0, 2,
1, 1, 1, 4, 3, 3, 3, 2, 3, 1,
2, 3, 4, 4, 4, 4, 4, 4, 4, 4,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 5, 3, 3, 1, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1, 4, 4,
3, 2, 2, 2, 1, 1, 4, 1, 1, 4,
6, 5, 4, 4, 5, 1, 1, 1, 1, 1,
5, 5, 4, 4, 2, 5, 5, 4, 4, 2,
1, 2, 1, 2, 1, 4, 7, 2, 4, 5,
4, 2, 2, 3, 1, 5, 6, 6, 7, 9,
5, 2, 4, 2, 4, 1, 1, 6, 5, 4,
5, 4, 2, 1, 1, 3, 3, 4, 5, 5,
6, 6, 7, 8, 4, 2, 6, 1, 1, 1,
2, 2, 3, 3, 1, 1, 1, 1, 1, 1,
1,
};
const short yydefred[] = { 1,
0, 10, 0, 0, 0, 0, 0, 12, 41, 11,
14, 0, 42, 43, 40, 0, 0, 0, 0, 17,
181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 106, 0, 98,
96, 109, 108, 107, 110, 0, 0, 0, 0, 0,
0, 0, 9, 15, 0, 0, 0, 13, 0, 0,
0, 0, 169, 168, 34, 0, 45, 46, 47, 128,
0, 0, 122, 0, 0, 94, 0, 177, 178, 0,
144, 0, 0, 142, 153, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 132, 133, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 179, 180, 0, 166, 0, 0, 86, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 84, 85, 0, 0, 10, 0,
0, 0, 0, 0, 4, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 82, 83,
44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 29, 0, 30, 0, 25, 0,
26, 0, 0, 0, 36, 0, 0, 134, 0, 0,
0, 0, 0, 0, 156, 157, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 129, 0, 0, 0, 0, 126, 113, 0,
118, 0, 145, 0, 143, 0, 0, 0, 0, 150,
0, 152, 0, 0, 0, 131, 0, 0, 0, 0,
0, 158, 0, 0, 0, 0, 0, 165, 0, 0,
89, 0, 114, 0, 119, 0, 100, 97, 104, 103,
0, 90, 0, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 130, 0, 0, 111, 116,
141, 27, 28, 23, 24, 149, 0, 0, 0, 32,
136, 0, 0, 0, 0, 159, 160, 0, 0, 0,
0, 0, 151, 105, 112, 117, 102, 0, 0, 0,
0, 148, 31, 0, 137, 0, 138, 0, 161, 162,
0, 0, 167, 101, 7, 127, 0, 139, 0, 163,
0, 0, 0, 164, 33, 140,
};
const short yydgoto[] = { 1,
8, 9, 159, 77, 3, 10, 11, 78, 215, 216,
165, 80, 81, 285, 287, 82, 194, 101, 136, 204,
83, 84, 12, 85, 2, 13, 14,
};
const short yysindex[] = { 0,
0, 0, -220, -25, -57, -229, -205, 0, 0, 0,
0, 401, 0, 0, 0, -7, -232, -49, 29, 0,
0, -37, 55, -148, 578, -32, 68, -5, 2372, -24,
-23, -22, -21, 74, 80, 16, 83, 81, 98, 105,
107, 124, 130, 135, 157, 177, 178, 188, 189, -8,
210, 213, 2488, 216, -141, -236, -52, 0, -33, 0,
0, 0, 0, 0, 0, 2582, 2372, 2372, 2372, 2372,
2372, 768, 0, 0, 2372, 2372, 50, 0, 163, -35,
4611, -279, 0, 0, 0, -46, 0, 0, 0, 0,
2657, 2773, 0, 223, -30, 0, -210, 0, 0, -231,
0, -231, -231, 0, 0, 2372, -49, 2372, -49, 2372,
-49, 2372, -49, 2372, 2372, 277, 863, 0, 0, 937,
2773, 2773, 2773, 2773, 2773, 278, 1057, 2372, 2372, 2372,
2372, 2372, 0, 0, -237, 0, -237, 2372, 0, -210,
2372, 211, 290, 293, 2372, 2372, 2372, 2372, 2372, 5249,
291, -210, -279, -279, 0, 0, 245, 18, 0, -279,
-279, -49, 297, -49, 0, 0, 2372, 2372, 2372, 2372,
2372, 2372, 2372, 1148, 1226, 2372, 2372, 2372, 2372, 2372,
1342, 1436, 1511, 1627, 1721, 2372, 2372, 1796, 0, 0,
0, 298, 4611, 294, 0, 2126, 300, 1915, 2009, 301,
294, 302, 291, 303, 0, 87, 0, 125, 0, 142,
0, 1838, 143, 2372, 0, 287, -39, 0, 306, 294,
307, 307, 308, 319, 0, 0, 149, 2412, 2126, 2126,
2126, 2126, 323, 307, 2412, 154, 2372, 2084, 2203, -38,
-17, -20, -15, 291, 291, 2372, 2297, 314, -114, 0,
2372, 0, 291, 291, 291, 291, 4611, -210, -143, 2372,
-241, 2372, -168, 4611, 268, 208, 612, 528, 2372, 280,
2372, 280, 2372, -149, 2372, -183, 2372, -183, 63, 63,
2372, 63, 0, 2372, 350, 2372, 307, 0, 0, 155,
0, 160, 0, 366, 0, -49, -49, -49, -49, 0,
161, 0, 162, 2372, -49, 0, 368, 294, 307, 2773,
2773, 0, 369, 166, 294, 307, 307, 0, 294, 370,
0, -19, 0, 175, 0, 182, 0, 0, 0, 0,
-14, 0, 2372, 0, 183, 4611, 4611, 2372, 4611, 4611,
4611, 4611, 4611, 4611, 291, 0, 4611, 307, 0, 0,
0, 0, 0, 0, 0, 0, 371, -49, 347, 0,
0, 372, 294, 373, 307, 0, 0, 376, 382, 294,
307, 383, 0, 0, 0, 0, 0, -13, -49, 1549,
384, 0, 0, 863, 0, 385, 0, 307, 0, 0,
386, 294, 0, 0, 0, 0, 387, 0, 294, 0,
388, -49, 389, 0, 0, 0,
};
const short yyrindex[] = { 0,
0, 0, 89, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 150, 2949, 0, 3052, 0, 0, 4844, 0,
0, 0, 0, 3064, 0, 0, 3134, 0, 0, 0,
0, 0, 3194, 0, 0, 0, 0, 0, 0, 0,
0, 0, 4914, 0, 0, 0, 3268, 0, 3379, 0,
0, 0, 0, 0, 0, 4926, 4996, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 4,
3521, 5008, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 3439, 3268, 0, 4460, 0, 0, 0,
0, 0, 0, 0, 0, 390, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 374, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 4472,
0, 0, 3513, 3595, 0, 0, 0, 0, 5065, 3268,
3759, 4542, 5161, 5300, 0, 0, 3674, 0, 0, 5310,
5378, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1268, 201, 0, 977, 394, 0, 0, 0, 0,
0, 0, 44, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 377, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 3840, 3921, 0, 0, 3686, 473, 0,
0, 0, 45, 57, 66, 76, 3601, 4554, 4627, 0,
4166, 0, 4225, 3765, 0, 3073, 5647, 5623, 0, 5545,
0, 5596, 0, 4759, 0, 4307, 0, 4382, 3980, 4055,
0, 4092, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 378, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4709, 4881, 0, 5673, 5683,
5706, 5710, 5716, 5726, 397, 0, 207, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3143,
0, 0, 0, 398, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
};
const short yygindex[] = { 0,
0, 0, 0, -18, 281, 0, 0, 0, 430, 59,
0, 5939, 365, -178, 4783, 92, -56, -6, -97, 141,
0, 0, 0, -58, 0, 0, 0,
};
#define YYTABLESIZE 6272
const short yytable[] = { 88,
5, 305, 91, 17, 171, 171, 96, 100, 171, 199,
334, 107, 109, 111, 113, 106, 108, 110, 112, 133,
143, 104, 294, 171, 171, 98, 171, 18, 171, 171,
171, 135, 15, 5, 103, 197, 4, 233, 146, 234,
5, 307, 5, 5, 18, 5, 189, 190, 205, 313,
207, 19, 209, 86, 211, 117, 320, 148, 248, 5,
146, 247, 18, 219, 220, 221, 222, 223, 224, 144,
145, 134, 87, 73, 6, 328, 99, 330, 377, 394,
186, 187, 7, 188, 38, 21, 327, 89, 2, 147,
174, 175, 145, 200, 92, 201, 202, 22, 73, 73,
73, 73, 38, 21, 329, 374, 19, 102, 93, 184,
185, 186, 187, 114, 188, 22, 20, 174, 175, 115,
121, 39, 120, 5, 19, 5, 5, 297, 39, 362,
171, 39, 174, 39, 20, 368, 369, 122, 186, 187,
372, 188, 4, 250, 123, 252, 124, 39, 5, 172,
173, 174, 175, 186, 187, 172, 188, 174, 175, 153,
154, 155, 156, 125, 142, 298, 160, 161, 171, 126,
184, 185, 186, 187, 127, 188, 184, 185, 186, 187,
6, 188, 299, 302, 386, 171, 171, 125, 7, 312,
125, 391, 171, 125, 321, 349, 128, 171, 171, 16,
350, 356, 358, 171, 286, 171, 367, 125, 125, 284,
125, 39, 125, 401, 39, 375, 129, 130, 171, 90,
403, 166, 376, 379, 98, 171, 171, 131, 132, 167,
168, 169, 170, 167, 168, 169, 170, 352, 353, 354,
355, 176, 125, 125, 176, 183, 360, 51, 133, 137,
51, 98, 138, 364, 365, 141, 5, 5, 191, 5,
5, 5, 198, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 125, 125, 99, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 383,
134, 182, 99, 5, 5, 183, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 214, 183, 225, 5,
395, 116, 162, 163, 164, 338, 5, 5, 176, 238,
177, 181, 239, 237, 171, 246, 251, 284, 283, 118,
288, 293, 295, 296, 39, 304, 306, 39, 39, 39,
286, 310, 39, 39, 39, 39, 39, 39, 39, 39,
39, 182, 311, 318, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 405, 39, 39, 39, 188, 119, 97,
346, 181, 39, 105, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 333, 384, 351, 39, 361, 366,
373, 382, 385, 387, 39, 39, 389, 140, 125, 125,
125, 125, 390, 393, 396, 398, 400, 402, 404, 406,
37, 152, 35, 68, 176, 18, 37, 48, 35, 249,
72, 79, 397, 76, 359, 75, 0, 0, 125, 125,
125, 125, 0, 0, 0, 193, 196, 0, 0, 74,
0, 0, 0, 0, 0, 125, 125, 125, 0, 125,
125, 125, 125, 0, 125, 125, 125, 0, 212, 0,
0, 0, 0, 0, 193, 193, 193, 193, 193, 193,
0, 0, 228, 229, 230, 231, 232, 0, 0, 0,
0, 0, 235, 0, 0, 39, 172, 173, 174, 175,
0, 0, 39, 0, 0, 39, 0, 39, 0, 0,
0, 0, 0, 73, 179, 180, 69, 184, 185, 186,
187, 39, 188, 0, 0, 257, 258, 259, 261, 263,
264, 265, 266, 267, 268, 270, 272, 274, 276, 278,
279, 280, 282, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 183, 172, 173, 174, 175,
0, 0, 0, 0, 0, 0, 0, 0, 172, 173,
174, 175, 0, 178, 179, 180, 0, 184, 185, 186,
187, 0, 188, 0, 0, 39, 0, 0, 39, 184,
185, 186, 187, 0, 188, 0, 0, 0, 0, 0,
68, 257, 0, 0, 0, 0, 0, 72, 0, 0,
76, 182, 75, 0, 336, 0, 337, 0, 0, 0,
0, 0, 0, 339, 0, 340, 0, 341, 0, 342,
0, 343, 0, 0, 0, 344, 0, 0, 0, 183,
347, 181, 0, 0, 0, 0, 20, 21, 0, 22,
23, 24, 0, 0, 25, 26, 27, 28, 29, 30,
31, 32, 33, 0, 193, 193, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 0, 53, 54, 55, 0,
73, 0, 380, 69, 56, 182, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 0, 0, 0, 67,
0, 0, 0, 0, 0, 0, 70, 71, 39, 0,
0, 39, 39, 39, 0, 181, 39, 39, 39, 39,
39, 39, 39, 39, 39, 0, 0, 0, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 0, 39, 39,
39, 0, 0, 0, 0, 0, 39, 0, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 0, 0,
0, 39, 0, 0, 0, 0, 0, 0, 39, 39,
68, 0, 0, 0, 0, 0, 0, 72, 157, 0,
76, 0, 75, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 172, 173, 174, 175,
0, 0, 0, 0, 94, 0, 22, 23, 24, 0,
0, 25, 26, 27, 28, 29, 0, 184, 185, 186,
187, 0, 188, 34, 35, 0, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 0, 53, 54, 55, 0, 0, 0, 0,
0, 56, 0, 95, 58, 59, 60, 61, 62, 63,
64, 65, 66, 69, 0, 68, 67, 0, 0, 0,
0, 0, 72, 70, 71, 76, 0, 75, 0, 0,
172, 173, 174, 175, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
0, 184, 185, 186, 187, 0, 188, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 68,
0, 0, 0, 0, 0, 0, 72, 218, 0, 76,
0, 75, 0, 0, 0, 0, 0, 0, 69, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 181, 0, 0, 175, 0, 0,
175, 0, 0, 0, 21, 0, 22, 23, 24, 0,
0, 25, 26, 27, 28, 29, 0, 181, 0, 181,
0, 0, 0, 34, 35, 0, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 69, 53, 54, 55, 0, 0, 0, 0,
181, 56, 0, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 0, 0, 0, 67, 0, 0, 68,
0, 0, 0, 70, 71, 0, 72, 226, 0, 76,
181, 75, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 20, 21,
0, 22, 23, 24, 0, 0, 25, 26, 27, 28,
29, 0, 0, 0, 0, 0, 0, 0, 34, 35,
0, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 0, 53, 54,
55, 0, 0, 0, 0, 0, 56, 0, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
68, 67, 69, 0, 0, 0, 0, 72, 70, 71,
76, 0, 75, 195, 0, 22, 23, 24, 0, 0,
25, 26, 27, 28, 29, 0, 0, 0, 260, 0,
0, 0, 34, 35, 0, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 0, 53, 54, 55, 0, 0, 0, 0, 0,
56, 0, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 0, 0, 0, 67, 0, 0, 68, 0,
0, 0, 70, 71, 0, 72, 0, 0, 76, 0,
75, 0, 0, 69, 0, 181, 181, 181, 181, 0,
0, 0, 0, 0, 0, 0, 262, 0, 0, 0,
0, 0, 181, 181, 181, 0, 181, 181, 181, 181,
0, 181, 181, 181, 0, 181, 0, 0, 0, 0,
0, 175, 0, 21, 0, 22, 23, 24, 0, 0,
25, 26, 27, 28, 29, 0, 0, 0, 181, 0,
181, 0, 34, 35, 0, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 69, 53, 54, 55, 0, 0, 0, 0, 0,
56, 181, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 0, 0, 68, 67, 0, 0, 0, 0,
0, 72, 70, 71, 76, 0, 75, 0, 0, 0,
0, 181, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 269, 0, 21, 0, 22, 23, 24, 0,
0, 25, 26, 27, 28, 29, 0, 0, 0, 0,
0, 0, 0, 34, 35, 0, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 0, 53, 54, 55, 0, 0, 0, 0,
0, 56, 0, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 0, 0, 0, 67, 69, 68, 0,
0, 0, 0, 70, 71, 72, 0, 0, 76, 0,
75, 0, 21, 0, 22, 23, 24, 0, 0, 25,
26, 27, 28, 29, 0, 0, 271, 0, 0, 0,
0, 34, 35, 0, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
0, 53, 54, 55, 0, 0, 0, 0, 0, 56,
0, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 0, 0, 68, 67, 0, 0, 0, 0, 0,
72, 70, 71, 76, 0, 75, 0, 0, 0, 0,
0, 69, 0, 0, 0, 0, 181, 181, 181, 181,
0, 273, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 181, 181, 181, 183, 181, 181, 181,
181, 0, 181, 181, 181, 0, 0, 0, 21, 0,
22, 23, 24, 0, 0, 25, 26, 27, 28, 29,
0, 177, 0, 0, 0, 0, 0, 34, 35, 0,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 69, 53, 54, 55,
0, 0, 182, 0, 0, 56, 0, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 0, 0, 68,
67, 0, 0, 0, 0, 0, 72, 70, 71, 76,
0, 75, 181, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 275, 0, 0,
0, 0, 21, 0, 22, 23, 24, 0, 0, 25,
26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
0, 34, 35, 0, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
0, 53, 54, 55, 0, 0, 0, 0, 0, 56,
0, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 0, 69, 68, 67, 0, 0, 0, 0, 0,
72, 70, 71, 76, 0, 75, 0, 21, 0, 22,
23, 24, 0, 0, 25, 26, 27, 28, 29, 0,
0, 277, 0, 0, 0, 0, 34, 35, 0, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 0, 53, 54, 55, 0,
0, 0, 0, 0, 56, 0, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 0, 0, 68, 67,
0, 0, 0, 0, 0, 72, 70, 71, 76, 0,
75, 0, 0, 0, 0, 0, 69, 172, 173, 174,
175, 0, 0, 0, 0, 0, 281, 0, 0, 0,
0, 0, 0, 0, 178, 179, 180, 0, 184, 185,
186, 187, 0, 188, 0, 183, 0, 0, 300, 0,
0, 286, 0, 21, 0, 22, 23, 24, 0, 0,
25, 26, 27, 28, 29, 0, 0, 0, 176, 0,
177, 0, 34, 35, 0, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 69, 53, 54, 55, 0, 0, 0, 0, 0,
56, 182, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 0, 0, 0, 67, 0, 68, 0, 0,
0, 0, 70, 71, 72, 289, 0, 76, 0, 75,
0, 181, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 21, 0, 22,
23, 24, 0, 0, 25, 26, 27, 28, 29, 0,
0, 0, 0, 0, 0, 0, 34, 35, 0, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 0, 53, 54, 55, 0,
0, 0, 0, 0, 56, 0, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 0, 0, 0, 67,
69, 68, 0, 0, 0, 0, 70, 71, 72, 291,
0, 76, 21, 75, 22, 23, 24, 0, 0, 25,
26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
0, 34, 35, 0, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
0, 53, 54, 55, 0, 0, 0, 0, 0, 56,
0, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 0, 0, 0, 67, 0, 68, 0, 0, 0,
0, 70, 71, 72, 323, 0, 76, 0, 75, 0,
0, 0, 0, 0, 69, 0, 172, 173, 174, 175,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 178, 179, 180, 0, 184, 185, 186,
187, 0, 188, 183, 0, 0, 0, 0, 0, 286,
0, 21, 0, 22, 23, 24, 0, 0, 25, 26,
27, 28, 29, 0, 0, 0, 176, 0, 177, 0,
34, 35, 0, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 69,
53, 54, 55, 0, 0, 0, 0, 0, 56, 182,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
0, 0, 0, 67, 0, 68, 0, 0, 0, 0,
70, 71, 72, 325, 0, 76, 0, 75, 0, 181,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 21, 0, 22, 23, 24,
0, 0, 25, 26, 27, 28, 29, 0, 0, 0,
0, 0, 0, 0, 34, 35, 0, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 0, 53, 54, 55, 0, 0, 0,
0, 0, 56, 0, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 0, 0, 0, 67, 69, 68,
0, 0, 0, 0, 70, 71, 72, 332, 0, 76,
21, 75, 22, 23, 24, 0, 0, 25, 26, 27,
28, 29, 0, 0, 0, 0, 0, 0, 0, 34,
35, 0, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 0, 53,
54, 55, 0, 0, 0, 0, 0, 56, 0, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
0, 0, 67, 0, 68, 0, 0, 0, 0, 70,
71, 72, 0, 0, 76, 0, 75, 0, 0, 0,
0, 0, 69, 0, 172, 173, 174, 175, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 178, 179, 180, 0, 184, 185, 186, 187, 183,
188, 0, 0, 0, 0, 284, 0, 0, 0, 21,
0, 22, 23, 24, 0, 0, 25, 26, 27, 28,
29, 0, 176, 0, 177, 0, 0, 0, 34, 35,
0, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 69, 53, 54,
55, 0, 0, 0, 0, 182, 56, 0, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
68, 67, 0, 0, 0, 0, 0, 72, 70, 71,
76, 0, 75, 0, 0, 181, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 21, 0, 22, 23, 24, 0, 0,
25, 26, 27, 28, 29, 0, 0, 0, 0, 0,
0, 0, 34, 35, 0, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 0, 53, 54, 55, 0, 0, 0, 0, 0,
56, 0, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 0, 69, 68, 67, 0, 0, 0, 0,
0, 72, 70, 71, 76, 0, 75, 0, 21, 0,
22, 23, 24, 0, 0, 25, 26, 27, 28, 29,
0, 0, 0, 0, 0, 0, 0, 34, 35, 0,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 0, 53, 54, 55,
0, 0, 0, 0, 0, 56, 0, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 0, 0, 68,
67, 0, 0, 0, 0, 0, 72, 70, 71, 76,
0, 75, 0, 0, 0, 0, 0, 69, 0, 0,
172, 173, 174, 175, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 178, 179, 180,
0, 184, 185, 186, 187, 0, 188, 0, 0, 0,
0, 0, 0, 0, 139, 0, 22, 23, 24, 0,
0, 25, 26, 27, 28, 29, 0, 0, 0, 0,
0, 0, 0, 34, 35, 0, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 69, 53, 54, 55, 0, 0, 0, 0,
0, 56, 0, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 0, 0, 68, 67, 0, 0, 0,
0, 0, 72, 70, 71, 76, 0, 75, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 149, 0,
22, 23, 24, 0, 0, 25, 26, 27, 28, 29,
0, 0, 0, 0, 0, 0, 0, 34, 35, 0,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 0, 53, 54, 55,
0, 0, 0, 0, 0, 56, 0, 150, 58, 59,
60, 61, 62, 63, 64, 65, 66, 0, 69, 0,
67, 0, 0, 0, 0, 0, 0, 70, 71, 0,
0, 0, 0, 192, 0, 22, 23, 24, 0, 0,
25, 26, 27, 28, 29, 0, 0, 0, 0, 0,
0, 0, 34, 35, 0, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 0, 53, 54, 55, 0, 0, 0, 0, 0,
56, 0, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 0, 0, 0, 67, 0, 0, 0, 0,
0, 0, 70, 71, 0, 0, 121, 0, 0, 121,
0, 0, 121, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 121, 121, 0, 121,
0, 121, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
0, 22, 23, 24, 0, 0, 25, 26, 27, 28,
29, 121, 121, 0, 0, 0, 0, 0, 34, 35,
0, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 0, 53, 54,
55, 0, 121, 121, 0, 0, 56, 0, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 0, 146,
0, 67, 146, 0, 0, 146, 0, 0, 70, 71,
0, 147, 0, 0, 147, 0, 0, 147, 0, 146,
146, 0, 146, 71, 146, 0, 71, 0, 0, 0,
0, 147, 147, 0, 147, 0, 147, 0, 0, 0,
71, 71, 0, 71, 0, 71, 0, 0, 0, 0,
0, 0, 0, 0, 146, 146, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 147, 147, 0, 0,
0, 0, 0, 0, 0, 71, 0, 0, 0, 0,
0, 135, 0, 0, 135, 146, 146, 135, 0, 0,
0, 0, 0, 74, 0, 0, 74, 147, 147, 0,
0, 135, 135, 0, 135, 0, 135, 71, 0, 0,
74, 74, 0, 74, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 121, 121, 121,
121, 0, 0, 0, 0, 0, 135, 135, 0, 0,
0, 155, 0, 0, 155, 74, 0, 155, 0, 0,
0, 0, 0, 0, 0, 0, 0, 121, 121, 121,
121, 155, 155, 0, 155, 0, 155, 135, 135, 0,
0, 0, 0, 0, 121, 121, 121, 74, 121, 121,
121, 121, 0, 121, 121, 121, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 155, 155, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 95, 0, 0, 95, 0,
0, 95, 0, 0, 0, 0, 0, 155, 155, 0,
146, 146, 146, 146, 0, 95, 95, 0, 95, 0,
95, 0, 147, 147, 147, 147, 0, 0, 0, 0,
0, 71, 71, 71, 71, 0, 0, 0, 0, 0,
146, 146, 146, 146, 0, 0, 0, 0, 0, 0,
95, 95, 147, 147, 147, 147, 0, 146, 146, 146,
0, 146, 146, 146, 146, 0, 146, 146, 146, 147,
147, 147, 0, 147, 147, 147, 147, 0, 147, 147,
147, 95, 95, 0, 0, 0, 0, 0, 71, 71,
0, 0, 135, 135, 135, 135, 0, 0, 0, 0,
0, 74, 74, 74, 74, 0, 99, 0, 0, 99,
0, 0, 99, 0, 0, 0, 0, 0, 0, 0,
0, 0, 135, 135, 135, 135, 99, 99, 0, 99,
0, 99, 0, 0, 0, 0, 0, 0, 0, 135,
135, 135, 0, 135, 135, 135, 135, 0, 135, 135,
135, 0, 155, 155, 155, 155, 0, 0, 74, 74,
0, 99, 99, 0, 0, 0, 181, 0, 0, 181,
0, 0, 181, 0, 0, 0, 0, 0, 0, 0,
0, 0, 155, 155, 155, 155, 181, 181, 0, 181,
0, 181, 99, 99, 0, 0, 0, 0, 0, 155,
155, 155, 0, 155, 155, 155, 155, 0, 155, 155,
155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 181, 181, 0, 0, 0, 95, 95, 95, 95,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
115, 0, 0, 115, 0, 0, 115, 0, 0, 0,
0, 50, 181, 181, 50, 0, 95, 95, 95, 95,
115, 115, 0, 115, 0, 115, 0, 0, 50, 50,
0, 0, 0, 95, 95, 95, 0, 95, 95, 95,
95, 0, 95, 95, 95, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 115, 115, 0, 0, 0,
0, 0, 0, 50, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 120, 0, 0, 120, 115, 115, 120, 0,
0, 49, 0, 0, 49, 50, 0, 99, 99, 99,
99, 0, 120, 120, 0, 120, 0, 120, 49, 49,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 99, 99, 99,
99, 0, 0, 0, 0, 0, 0, 120, 120, 0,
0, 0, 0, 49, 99, 99, 99, 0, 99, 99,
99, 99, 0, 99, 99, 99, 0, 181, 181, 181,
181, 92, 0, 0, 92, 0, 0, 92, 120, 120,
0, 0, 0, 91, 0, 49, 91, 0, 0, 91,
0, 92, 92, 0, 92, 0, 92, 181, 181, 181,
181, 0, 0, 91, 91, 0, 91, 0, 91, 0,
0, 0, 0, 0, 181, 181, 181, 0, 181, 181,
181, 181, 0, 181, 181, 181, 92, 92, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 91, 91,
0, 115, 115, 115, 115, 0, 0, 0, 0, 50,
50, 50, 50, 0, 0, 0, 171, 92, 92, 171,
0, 0, 0, 0, 0, 52, 0, 0, 52, 91,
91, 115, 115, 115, 115, 0, 171, 171, 0, 171,
0, 171, 52, 52, 0, 0, 0, 0, 115, 115,
115, 0, 115, 115, 115, 115, 0, 115, 115, 115,
0, 0, 0, 0, 0, 0, 50, 50, 0, 0,
0, 171, 171, 0, 0, 0, 0, 52, 0, 0,
0, 0, 0, 120, 120, 120, 120, 0, 0, 49,
49, 49, 49, 0, 0, 0, 0, 173, 0, 0,
173, 0, 171, 171, 0, 0, 0, 0, 0, 52,
0, 0, 0, 120, 120, 120, 120, 173, 173, 0,
173, 0, 173, 0, 0, 0, 0, 0, 0, 0,
120, 120, 120, 0, 120, 120, 120, 120, 0, 120,
120, 120, 0, 0, 0, 0, 49, 49, 0, 0,
0, 0, 173, 173, 0, 0, 0, 0, 0, 0,
0, 0, 92, 92, 92, 92, 0, 0, 0, 0,
0, 0, 0, 0, 91, 91, 91, 91, 174, 0,
0, 174, 0, 173, 173, 0, 0, 0, 0, 0,
0, 0, 92, 92, 92, 92, 0, 0, 174, 174,
0, 174, 0, 174, 91, 91, 91, 91, 0, 92,
92, 92, 0, 92, 92, 92, 92, 0, 92, 92,
92, 91, 91, 91, 0, 91, 91, 91, 91, 0,
91, 91, 91, 174, 174, 0, 0, 75, 0, 0,
75, 0, 0, 75, 0, 0, 0, 171, 171, 171,
171, 0, 0, 52, 52, 52, 52, 75, 75, 0,
75, 0, 75, 0, 174, 174, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 171, 171, 171,
171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 75, 75, 171, 171, 171, 0, 171, 171,
171, 171, 0, 171, 171, 171, 0, 0, 0, 0,
52, 52, 76, 0, 0, 76, 0, 0, 76, 0,
0, 0, 0, 75, 75, 0, 0, 0, 173, 173,
173, 173, 76, 76, 0, 76, 0, 76, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
0, 0, 61, 0, 0, 61, 0, 0, 173, 173,
173, 173, 0, 0, 0, 0, 0, 76, 76, 61,
61, 0, 61, 0, 61, 173, 173, 173, 0, 173,
173, 173, 173, 0, 173, 173, 173, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 76, 76,
0, 0, 0, 0, 61, 61, 0, 0, 0, 174,
174, 174, 174, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 62, 0, 0, 62, 0, 0, 62,
0, 0, 0, 0, 0, 61, 61, 0, 0, 174,
174, 174, 174, 62, 62, 0, 62, 0, 62, 0,
0, 0, 0, 0, 0, 0, 174, 174, 174, 0,
174, 174, 174, 174, 0, 174, 174, 174, 75, 75,
75, 75, 0, 0, 0, 0, 0, 0, 62, 62,
0, 0, 63, 0, 0, 63, 0, 0, 63, 0,
0, 0, 0, 0, 0, 0, 0, 0, 75, 75,
75, 75, 63, 63, 0, 63, 0, 63, 0, 62,
62, 0, 0, 0, 0, 75, 75, 75, 0, 75,
75, 75, 75, 0, 0, 75, 75, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 63, 63, 0,
0, 0, 0, 76, 76, 76, 76, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 64, 0, 0, 64, 63, 63,
64, 0, 0, 76, 76, 76, 76, 0, 0, 0,
61, 61, 61, 61, 64, 64, 0, 64, 0, 64,
76, 76, 76, 0, 76, 76, 76, 76, 0, 0,
76, 76, 0, 0, 0, 0, 0, 0, 0, 0,
61, 61, 61, 61, 0, 0, 0, 0, 0, 64,
64, 0, 0, 0, 0, 0, 0, 61, 61, 61,
0, 61, 61, 61, 61, 0, 0, 61, 61, 65,
0, 0, 65, 0, 0, 65, 0, 0, 0, 0,
64, 64, 0, 0, 62, 62, 62, 62, 0, 65,
65, 0, 65, 0, 65, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 62, 62, 62, 62, 0, 0,
0, 0, 0, 0, 65, 65, 0, 0, 0, 0,
0, 62, 62, 62, 0, 62, 62, 0, 0, 0,
0, 62, 62, 63, 63, 63, 63, 93, 0, 0,
93, 0, 0, 93, 0, 65, 65, 0, 0, 87,
0, 0, 87, 0, 0, 87, 0, 93, 93, 0,
93, 0, 93, 63, 63, 0, 63, 0, 0, 87,
87, 0, 87, 0, 87, 0, 0, 0, 0, 0,
63, 63, 63, 0, 63, 63, 0, 0, 0, 0,
63, 63, 93, 93, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 87, 87, 0, 0, 0, 0,
0, 0, 0, 0, 0, 64, 64, 64, 64, 124,
0, 0, 124, 93, 93, 124, 0, 0, 0, 0,
0, 66, 0, 0, 66, 87, 87, 66, 0, 124,
124, 0, 124, 0, 124, 64, 64, 0, 0, 0,
0, 66, 66, 0, 66, 0, 66, 0, 0, 0,
0, 0, 64, 64, 64, 0, 64, 64, 0, 0,
0, 0, 64, 64, 124, 124, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 66, 66, 183, 0,
65, 65, 65, 65, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 67, 124, 124, 67, 0, 0,
67, 176, 0, 177, 0, 0, 0, 66, 66, 0,
65, 65, 0, 0, 67, 67, 0, 67, 0, 67,
0, 0, 0, 0, 0, 0, 0, 65, 65, 65,
0, 65, 65, 0, 182, 0, 0, 65, 65, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
67, 0, 0, 0, 0, 0, 0, 0, 93, 93,
93, 93, 0, 0, 181, 0, 0, 0, 0, 0,
87, 87, 87, 87, 0, 0, 0, 0, 0, 54,
67, 67, 54, 0, 0, 0, 0, 0, 93, 93,
0, 0, 0, 0, 0, 0, 54, 54, 0, 0,
87, 87, 0, 0, 0, 93, 93, 93, 0, 0,
0, 0, 0, 0, 0, 93, 93, 87, 87, 87,
0, 0, 0, 0, 0, 0, 68, 87, 87, 68,
0, 54, 68, 0, 0, 0, 0, 0, 0, 0,
124, 124, 124, 124, 0, 0, 68, 68, 0, 68,
0, 68, 66, 66, 66, 66, 0, 0, 0, 0,
0, 0, 0, 54, 0, 0, 0, 0, 0, 0,
124, 124, 0, 0, 0, 0, 0, 0, 0, 0,
0, 68, 68, 66, 0, 0, 0, 124, 124, 124,
0, 0, 0, 0, 0, 0, 0, 124, 124, 66,
66, 66, 0, 0, 0, 0, 0, 0, 0, 66,
66, 154, 68, 68, 154, 0, 0, 154, 0, 0,
0, 0, 0, 0, 0, 67, 67, 67, 67, 0,
0, 154, 154, 0, 154, 0, 154, 0, 0, 172,
173, 174, 175, 0, 0, 0, 0, 0, 0, 0,
0, 55, 0, 0, 55, 0, 178, 179, 180, 0,
184, 185, 186, 187, 0, 188, 154, 154, 55, 55,
0, 0, 67, 67, 67, 0, 0, 0, 0, 0,
0, 88, 67, 67, 88, 0, 0, 88, 0, 0,
0, 0, 0, 170, 0, 0, 170, 154, 154, 170,
0, 88, 88, 55, 88, 0, 88, 54, 54, 54,
54, 0, 0, 170, 170, 0, 170, 0, 170, 0,
0, 0, 0, 0, 301, 0, 0, 0, 0, 0,
0, 0, 0, 308, 309, 55, 88, 88, 0, 0,
0, 314, 315, 316, 317, 0, 319, 0, 170, 170,
0, 0, 0, 0, 0, 0, 0, 68, 68, 68,
68, 0, 0, 123, 54, 54, 123, 88, 88, 123,
0, 0, 0, 0, 0, 77, 0, 0, 77, 170,
170, 77, 0, 123, 123, 0, 123, 0, 123, 0,
0, 0, 0, 0, 0, 77, 77, 0, 77, 348,
77, 0, 0, 0, 68, 68, 68, 0, 0, 0,
0, 0, 0, 357, 68, 68, 0, 0, 123, 123,
0, 363, 0, 0, 0, 0, 0, 0, 370, 371,
77, 77, 172, 0, 0, 172, 0, 0, 172, 0,
0, 0, 154, 154, 154, 154, 0, 0, 0, 123,
123, 0, 172, 172, 0, 172, 0, 172, 0, 0,
381, 77, 77, 0, 0, 0, 0, 0, 0, 0,
0, 0, 154, 154, 154, 154, 0, 388, 0, 55,
55, 55, 55, 392, 0, 0, 0, 172, 172, 154,
154, 154, 0, 154, 154, 154, 154, 0, 154, 0,
399, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 88, 88, 88, 88, 0, 0, 172, 172,
0, 0, 0, 0, 170, 170, 170, 170, 80, 0,
0, 80, 0, 0, 80, 0, 55, 55, 0, 0,
0, 0, 88, 88, 88, 88, 0, 0, 80, 80,
0, 80, 0, 80, 170, 170, 170, 170, 0, 88,
88, 88, 0, 88, 88, 88, 88, 0, 88, 0,
0, 170, 170, 170, 0, 170, 170, 170, 170, 0,
170, 0, 0, 80, 80, 0, 0, 0, 0, 0,
0, 0, 0, 0, 123, 123, 123, 123, 0, 0,
0, 0, 0, 0, 0, 0, 77, 77, 77, 77,
0, 68, 0, 0, 80, 80, 0, 0, 72, 0,
0, 76, 0, 75, 123, 123, 123, 123, 0, 0,
0, 0, 0, 0, 0, 0, 77, 77, 77, 77,
0, 123, 123, 123, 0, 123, 123, 123, 123, 0,
123, 0, 0, 77, 77, 77, 0, 77, 77, 77,
77, 0, 77, 172, 172, 172, 172, 81, 0, 146,
81, 0, 0, 81, 0, 0, 0, 78, 0, 0,
78, 0, 0, 78, 0, 0, 0, 81, 81, 0,
81, 0, 81, 172, 172, 172, 172, 78, 78, 0,
78, 145, 78, 0, 69, 0, 0, 0, 0, 0,
172, 172, 172, 0, 172, 172, 172, 172, 0, 172,
0, 0, 81, 81, 0, 0, 0, 0, 0, 0,
0, 0, 78, 78, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 79, 0, 0, 79, 0,
0, 79, 0, 81, 81, 0, 0, 0, 0, 80,
80, 80, 80, 78, 78, 79, 79, 0, 79, 0,
79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
80, 80, 80, 0, 0, 0, 0, 0, 0, 0,
79, 79, 0, 0, 0, 0, 80, 80, 80, 0,
80, 80, 80, 80, 0, 80, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 79, 79, 0, 0, 21, 0, 22, 23, 24,
0, 0, 25, 26, 27, 28, 29, 0, 0, 0,
0, 0, 0, 0, 34, 35, 0, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 0, 53, 54, 55, 0, 0, 0,
0, 0, 56, 0, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 0, 0, 0, 67, 81, 81,
81, 81, 0, 0, 0, 0, 0, 0, 78, 78,
78, 78, 0, 0, 0, 70, 0, 0, 70, 0,
0, 0, 0, 0, 0, 0, 0, 0, 81, 81,
81, 81, 70, 70, 0, 70, 0, 70, 78, 78,
78, 78, 0, 0, 0, 81, 81, 81, 0, 81,
81, 81, 81, 0, 81, 78, 78, 78, 0, 78,
78, 78, 78, 0, 78, 0, 69, 70, 70, 69,
0, 0, 0, 0, 0, 0, 79, 79, 79, 79,
0, 0, 0, 69, 69, 0, 69, 0, 69, 0,
0, 0, 0, 72, 0, 0, 72, 0, 70, 70,
0, 0, 0, 0, 0, 0, 79, 79, 79, 79,
72, 72, 0, 72, 0, 72, 0, 73, 69, 69,
73, 0, 0, 79, 79, 79, 0, 79, 79, 79,
79, 0, 79, 0, 73, 73, 0, 73, 0, 73,
0, 0, 0, 60, 0, 72, 60, 0, 0, 69,
69, 0, 0, 59, 0, 0, 59, 0, 0, 0,
60, 60, 0, 0, 0, 0, 0, 0, 0, 73,
59, 59, 0, 0, 0, 0, 58, 72, 0, 58,
56, 0, 0, 56, 0, 0, 57, 0, 0, 57,
0, 0, 0, 58, 58, 60, 53, 56, 56, 53,
0, 73, 0, 57, 57, 59, 0, 0, 0, 0,
0, 0, 0, 53, 53, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 60, 58, 0,
0, 0, 56, 0, 0, 0, 0, 59, 57, 0,
0, 0, 0, 70, 70, 70, 70, 0, 53, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
58, 0, 0, 0, 56, 0, 0, 0, 0, 0,
57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
53, 0, 0, 0, 0, 0, 0, 0, 0, 0,
70, 70, 70, 0, 69, 69, 69, 69, 0, 0,
70, 70, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 72, 72, 72, 72, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 69, 69, 69, 0, 73, 73, 73, 73, 0,
0, 69, 69, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 72, 72,
72, 60, 60, 60, 60, 0, 0, 0, 72, 72,
0, 59, 59, 59, 59, 0, 0, 0, 0, 0,
0, 0, 73, 73, 0, 0, 0, 0, 0, 0,
0, 0, 73, 73, 58, 58, 58, 58, 56, 56,
56, 56, 0, 0, 57, 57, 57, 57, 0, 0,
0, 0, 0, 0, 53, 53, 53, 53, 60, 60,
0, 0, 0, 0, 151, 0, 0, 0, 59, 59,
158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 58, 58, 0, 0, 56, 56, 0, 0, 0,
0, 57, 57, 0, 203, 0, 206, 0, 208, 0,
210, 53, 53, 213, 0, 217, 0, 0, 0, 0,
0, 0, 0, 0, 0, 227, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 236,
0, 0, 0, 240, 241, 242, 243, 244, 245, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 253, 254, 255, 256, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 290, 292, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 303, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 322, 324, 326, 0, 0,
0, 0, 0, 0, 331, 0, 0, 0, 0, 335,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 345, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 203, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 378,
};
const short yycheck[] = { 18,
0, 41, 40, 61, 44, 44, 25, 40, 44, 40,
125, 30, 31, 32, 33, 40, 40, 40, 40, 257,
257, 28, 201, 44, 44, 257, 44, 257, 44, 44,
44, 40, 58, 33, 40, 92, 257, 135, 91, 137,
40, 220, 263, 43, 41, 45, 326, 327, 107, 228,
109, 257, 111, 61, 113, 40, 235, 91, 41, 59,
91, 44, 59, 120, 121, 122, 123, 124, 125, 306,
123, 309, 305, 123, 295, 93, 308, 93, 93, 93,
322, 323, 303, 325, 41, 41, 125, 59, 0, 123,
301, 302, 123, 100, 40, 102, 103, 41, 123, 123,
123, 123, 59, 59, 125, 125, 41, 40, 257, 320,
321, 322, 323, 40, 325, 59, 41, 301, 302, 40,
40, 33, 40, 123, 59, 125, 126, 41, 40, 308,
44, 43, 301, 45, 59, 314, 315, 40, 322, 323,
319, 325, 257, 162, 40, 164, 40, 59, 263, 299,
300, 301, 302, 322, 323, 299, 325, 301, 302, 68,
69, 70, 71, 40, 306, 41, 75, 76, 44, 40,
320, 321, 322, 323, 40, 325, 320, 321, 322, 323,
295, 325, 41, 41, 363, 44, 44, 38, 303, 41,
41, 370, 44, 44, 41, 41, 40, 44, 44, 257,
41, 41, 41, 44, 44, 44, 41, 58, 59, 44,
61, 123, 63, 392, 126, 41, 40, 40, 44, 257,
399, 59, 41, 41, 257, 44, 44, 40, 40, 269,
270, 271, 272, 269, 270, 271, 272, 296, 297, 298,
299, 41, 93, 94, 44, 38, 305, 41, 257, 40,
44, 257, 40, 310, 311, 40, 256, 257, 305, 259,
260, 261, 40, 263, 264, 265, 266, 267, 268, 269,
270, 271, 272, 124, 125, 308, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, 297, 298, 358,
309, 94, 308, 303, 304, 38, 306, 307, 308, 309,
310, 311, 312, 313, 314, 315, 40, 38, 41, 319,
379, 306, 273, 274, 275, 58, 326, 327, 61, 40,
63, 124, 40, 123, 44, 91, 40, 44, 41, 257,
41, 41, 41, 41, 256, 59, 41, 259, 260, 261,
44, 44, 264, 265, 266, 267, 268, 269, 270, 271,
272, 94, 44, 41, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 402, 296, 297, 298, 325, 306, 25,
41, 124, 304, 29, 306, 307, 308, 309, 310, 311,
312, 313, 314, 315, 91, 59, 41, 319, 41, 41,
41, 41, 41, 41, 326, 327, 41, 53, 269, 270,
271, 272, 41, 41, 41, 41, 41, 41, 41, 41,
41, 67, 59, 33, 41, 59, 59, 41, 41, 159,
40, 12, 384, 43, 304, 45, -1, -1, 299, 300,
301, 302, -1, -1, -1, 91, 92, -1, -1, 59,
-1, -1, -1, -1, -1, 316, 317, 318, -1, 320,
321, 322, 323, -1, 325, 326, 327, -1, 114, -1,
-1, -1, -1, -1, 120, 121, 122, 123, 124, 125,
-1, -1, 128, 129, 130, 131, 132, -1, -1, -1,
-1, -1, 138, -1, -1, 33, 299, 300, 301, 302,
-1, -1, 40, -1, -1, 43, -1, 45, -1, -1,
-1, -1, -1, 123, 317, 318, 126, 320, 321, 322,
323, 59, 325, -1, -1, 171, 172, 173, 174, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
186, 187, 188, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 38, 299, 300, 301, 302,
-1, -1, -1, -1, -1, -1, -1, -1, 299, 300,
301, 302, -1, 316, 317, 318, -1, 320, 321, 322,
323, -1, 325, -1, -1, 123, -1, -1, 126, 320,
321, 322, 323, -1, 325, -1, -1, -1, -1, -1,
33, 247, -1, -1, -1, -1, -1, 40, -1, -1,
43, 94, 45, -1, 260, -1, 262, -1, -1, -1,
-1, -1, -1, 269, -1, 271, -1, 273, -1, 275,
-1, 277, -1, -1, -1, 281, -1, -1, -1, 38,
286, 124, -1, -1, -1, -1, 256, 257, -1, 259,
260, 261, -1, -1, 264, 265, 266, 267, 268, 269,
270, 271, 272, -1, 310, 311, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, -1, 296, 297, 298, -1,
123, -1, 338, 126, 304, 94, 306, 307, 308, 309,
310, 311, 312, 313, 314, 315, -1, -1, -1, 319,
-1, -1, -1, -1, -1, -1, 326, 327, 256, -1,
-1, 259, 260, 261, -1, 124, 264, 265, 266, 267,
268, 269, 270, 271, 272, -1, -1, -1, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, -1, 296, 297,
298, -1, -1, -1, -1, -1, 304, -1, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, -1, -1,
-1, 319, -1, -1, -1, -1, -1, -1, 326, 327,
33, -1, -1, -1, -1, -1, -1, 40, 41, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 299, 300, 301, 302,
-1, -1, -1, -1, 257, -1, 259, 260, 261, -1,
-1, 264, 265, 266, 267, 268, -1, 320, 321, 322,
323, -1, 325, 276, 277, -1, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, -1, 296, 297, 298, -1, -1, -1, -1,
-1, 304, -1, 306, 307, 308, 309, 310, 311, 312,
313, 314, 315, 126, -1, 33, 319, -1, -1, -1,
-1, -1, 40, 326, 327, 43, -1, 45, -1, -1,
299, 300, 301, 302, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 318,
-1, 320, 321, 322, 323, -1, 325, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 33,
-1, -1, -1, -1, -1, -1, 40, 41, -1, 43,
-1, 45, -1, -1, -1, -1, -1, -1, 126, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 38, -1, -1, 41, -1, -1,
44, -1, -1, -1, 257, -1, 259, 260, 261, -1,
-1, 264, 265, 266, 267, 268, -1, 61, -1, 63,
-1, -1, -1, 276, 277, -1, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 126, 296, 297, 298, -1, -1, -1, -1,
94, 304, -1, 306, 307, 308, 309, 310, 311, 312,
313, 314, 315, -1, -1, -1, 319, -1, -1, 33,
-1, -1, -1, 326, 327, -1, 40, 41, -1, 43,
124, 45, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 256, 257,
-1, 259, 260, 261, -1, -1, 264, 265, 266, 267,
268, -1, -1, -1, -1, -1, -1, -1, 276, 277,
-1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, -1, 296, 297,
298, -1, -1, -1, -1, -1, 304, -1, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, -1, -1,
33, 319, 126, -1, -1, -1, -1, 40, 326, 327,
43, -1, 45, 257, -1, 259, 260, 261, -1, -1,
264, 265, 266, 267, 268, -1, -1, -1, 61, -1,
-1, -1, 276, 277, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, -1, 296, 297, 298, -1, -1, -1, -1, -1,
304, -1, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, -1, -1, -1, 319, -1, -1, 33, -1,
-1, -1, 326, 327, -1, 40, -1, -1, 43, -1,
45, -1, -1, 126, -1, 299, 300, 301, 302, -1,
-1, -1, -1, -1, -1, -1, 61, -1, -1, -1,
-1, -1, 316, 317, 318, -1, 320, 321, 322, 323,
-1, 325, 326, 327, -1, 38, -1, -1, -1, -1,
-1, 44, -1, 257, -1, 259, 260, 261, -1, -1,
264, 265, 266, 267, 268, -1, -1, -1, 61, -1,
63, -1, 276, 277, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 126, 296, 297, 298, -1, -1, -1, -1, -1,
304, 94, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, -1, -1, 33, 319, -1, -1, -1, -1,
-1, 40, 326, 327, 43, -1, 45, -1, -1, -1,
-1, 124, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 61, -1, 257, -1, 259, 260, 261, -1,
-1, 264, 265, 266, 267, 268, -1, -1, -1, -1,
-1, -1, -1, 276, 277, -1, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, -1, 296, 297, 298, -1, -1, -1, -1,
-1, 304, -1, 306, 307, 308, 309, 310, 311, 312,
313, 314, 315, -1, -1, -1, 319, 126, 33, -1,
-1, -1, -1, 326, 327, 40, -1, -1, 43, -1,
45, -1, 257, -1, 259, 260, 261, -1, -1, 264,
265, 266, 267, 268, -1, -1, 61, -1, -1, -1,
-1, 276, 277, -1, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
-1, 296, 297, 298, -1, -1, -1, -1, -1, 304,
-1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, -1, -1, 33, 319, -1, -1, -1, -1, -1,
40, 326, 327, 43, -1, 45, -1, -1, -1, -1,
-1, 126, -1, -1, -1, -1, 299, 300, 301, 302,
-1, 61, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 316, 317, 318, 38, 320, 321, 322,
323, -1, 325, 326, 327, -1, -1, -1, 257, -1,
259, 260, 261, -1, -1, 264, 265, 266, 267, 268,
-1, 63, -1, -1, -1, -1, -1, 276, 277, -1,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 126, 296, 297, 298,
-1, -1, 94, -1, -1, 304, -1, 306, 307, 308,
309, 310, 311, 312, 313, 314, 315, -1, -1, 33,
319, -1, -1, -1, -1, -1, 40, 326, 327, 43,
-1, 45, 124, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 61, -1, -1,
-1, -1, 257, -1, 259, 260, 261, -1, -1, 264,
265, 266, 267, 268, -1, -1, -1, -1, -1, -1,
-1, 276, 277, -1, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
-1, 296, 297, 298, -1, -1, -1, -1, -1, 304,
-1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, -1, 126, 33, 319, -1, -1, -1, -1, -1,
40, 326, 327, 43, -1, 45, -1, 257, -1, 259,
260, 261, -1, -1, 264, 265, 266, 267, 268, -1,
-1, 61, -1, -1, -1, -1, 276, 277, -1, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, -1, 296, 297, 298, -1,
-1, -1, -1, -1, 304, -1, 306, 307, 308, 309,
310, 311, 312, 313, 314, 315, -1, -1, 33, 319,
-1, -1, -1, -1, -1, 40, 326, 327, 43, -1,
45, -1, -1, -1, -1, -1, 126, 299, 300, 301,
302, -1, -1, -1, -1, -1, 61, -1, -1, -1,
-1, -1, -1, -1, 316, 317, 318, -1, 320, 321,
322, 323, -1, 325, -1, 38, -1, -1, 41, -1,
-1, 44, -1, 257, -1, 259, 260, 261, -1, -1,
264, 265, 266, 267, 268, -1, -1, -1, 61, -1,
63, -1, 276, 277, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 126, 296, 297, 298, -1, -1, -1, -1, -1,
304, 94, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, -1, -1, -1, 319, -1, 33, -1, -1,
-1, -1, 326, 327, 40, 41, -1, 43, -1, 45,
-1, 124, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 257, -1, 259,
260, 261, -1, -1, 264, 265, 266, 267, 268, -1,
-1, -1, -1, -1, -1, -1, 276, 277, -1, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, -1, 296, 297, 298, -1,
-1, -1, -1, -1, 304, -1, 306, 307, 308, 309,
310, 311, 312, 313, 314, 315, -1, -1, -1, 319,
126, 33, -1, -1, -1, -1, 326, 327, 40, 41,
-1, 43, 257, 45, 259, 260, 261, -1, -1, 264,
265, 266, 267, 268, -1, -1, -1, -1, -1, -1,
-1, 276, 277, -1, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
-1, 296, 297, 298, -1, -1, -1, -1, -1, 304,
-1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, -1, -1, -1, 319, -1, 33, -1, -1, -1,
-1, 326, 327, 40, 41, -1, 43, -1, 45, -1,
-1, -1, -1, -1, 126, -1, 299, 300, 301, 302,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 316, 317, 318, -1, 320, 321, 322,
323, -1, 325, 38, -1, -1, -1, -1, -1, 44,
-1, 257, -1, 259, 260, 261, -1, -1, 264, 265,
266, 267, 268, -1, -1, -1, 61, -1, 63, -1,
276, 277, -1, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 126,
296, 297, 298, -1, -1, -1, -1, -1, 304, 94,
306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
-1, -1, -1, 319, -1, 33, -1, -1, -1, -1,
326, 327, 40, 41, -1, 43, -1, 45, -1, 124,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 257, -1, 259, 260, 261,
-1, -1, 264, 265, 266, 267, 268, -1, -1, -1,
-1, -1, -1, -1, 276, 277, -1, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, -1, 296, 297, 298, -1, -1, -1,
-1, -1, 304, -1, 306, 307, 308, 309, 310, 311,
312, 313, 314, 315, -1, -1, -1, 319, 126, 33,
-1, -1, -1, -1, 326, 327, 40, 41, -1, 43,
257, 45, 259, 260, 261, -1, -1, 264, 265, 266,
267, 268, -1, -1, -1, -1, -1, -1, -1, 276,
277, -1, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, -1, 296,
297, 298, -1, -1, -1, -1, -1, 304, -1, 306,
307, 308, 309, 310, 311, 312, 313, 314, 315, -1,
-1, -1, 319, -1, 33, -1, -1, -1, -1, 326,
327, 40, -1, -1, 43, -1, 45, -1, -1, -1,
-1, -1, 126, -1, 299, 300, 301, 302, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, 317, 318, -1, 320, 321, 322, 323, 38,
325, -1, -1, -1, -1, 44, -1, -1, -1, 257,
-1, 259, 260, 261, -1, -1, 264, 265, 266, 267,
268, -1, 61, -1, 63, -1, -1, -1, 276, 277,
-1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, 126, 296, 297,
298, -1, -1, -1, -1, 94, 304, -1, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, -1, -1,
33, 319, -1, -1, -1, -1, -1, 40, 326, 327,
43, -1, 45, -1, -1, 124, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 257, -1, 259, 260, 261, -1, -1,
264, 265, 266, 267, 268, -1, -1, -1, -1, -1,
-1, -1, 276, 277, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, -1, 296, 297, 298, -1, -1, -1, -1, -1,
304, -1, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, -1, 126, 33, 319, -1, -1, -1, -1,
-1, 40, 326, 327, 43, -1, 45, -1, 257, -1,
259, 260, 261, -1, -1, 264, 265, 266, 267, 268,
-1, -1, -1, -1, -1, -1, -1, 276, 277, -1,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, -1, 296, 297, 298,
-1, -1, -1, -1, -1, 304, -1, 306, 307, 308,
309, 310, 311, 312, 313, 314, 315, -1, -1, 33,
319, -1, -1, -1, -1, -1, 40, 326, 327, 43,
-1, 45, -1, -1, -1, -1, -1, 126, -1, -1,
299, 300, 301, 302, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 316, 317, 318,
-1, 320, 321, 322, 323, -1, 325, -1, -1, -1,
-1, -1, -1, -1, 257, -1, 259, 260, 261, -1,
-1, 264, 265, 266, 267, 268, -1, -1, -1, -1,
-1, -1, -1, 276, 277, -1, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 126, 296, 297, 298, -1, -1, -1, -1,
-1, 304, -1, 306, 307, 308, 309, 310, 311, 312,
313, 314, 315, -1, -1, 33, 319, -1, -1, -1,
-1, -1, 40, 326, 327, 43, -1, 45, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 257, -1,
259, 260, 261, -1, -1, 264, 265, 266, 267, 268,
-1, -1, -1, -1, -1, -1, -1, 276, 277, -1,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, -1, 296, 297, 298,
-1, -1, -1, -1, -1, 304, -1, 306, 307, 308,
309, 310, 311, 312, 313, 314, 315, -1, 126, -1,
319, -1, -1, -1, -1, -1, -1, 326, 327, -1,
-1, -1, -1, 257, -1, 259, 260, 261, -1, -1,
264, 265, 266, 267, 268, -1, -1, -1, -1, -1,
-1, -1, 276, 277, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, -1, 296, 297, 298, -1, -1, -1, -1, -1,
304, -1, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, -1, -1, -1, 319, -1, -1, -1, -1,
-1, -1, 326, 327, -1, -1, 38, -1, -1, 41,
-1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 58, 59, -1, 61,
-1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
-1, 259, 260, 261, -1, -1, 264, 265, 266, 267,
268, 93, 94, -1, -1, -1, -1, -1, 276, 277,
-1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, -1, 296, 297,
298, -1, 124, 125, -1, -1, 304, -1, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, -1, 38,
-1, 319, 41, -1, -1, 44, -1, -1, 326, 327,
-1, 38, -1, -1, 41, -1, -1, 44, -1, 58,
59, -1, 61, 41, 63, -1, 44, -1, -1, -1,
-1, 58, 59, -1, 61, -1, 63, -1, -1, -1,
58, 59, -1, 61, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
-1, -1, -1, -1, -1, 93, -1, -1, -1, -1,
-1, 38, -1, -1, 41, 124, 125, 44, -1, -1,
-1, -1, -1, 41, -1, -1, 44, 124, 125, -1,
-1, 58, 59, -1, 61, -1, 63, 125, -1, -1,
58, 59, -1, 61, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 269, 270, 271,
272, -1, -1, -1, -1, -1, 93, 94, -1, -1,
-1, 38, -1, -1, 41, 93, -1, 44, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 299, 300, 301,
302, 58, 59, -1, 61, -1, 63, 124, 125, -1,
-1, -1, -1, -1, 316, 317, 318, 125, 320, 321,
322, 323, -1, 325, 326, 327, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 38, -1, -1, 41, -1,
-1, 44, -1, -1, -1, -1, -1, 124, 125, -1,
269, 270, 271, 272, -1, 58, 59, -1, 61, -1,
63, -1, 269, 270, 271, 272, -1, -1, -1, -1,
-1, 269, 270, 271, 272, -1, -1, -1, -1, -1,
299, 300, 301, 302, -1, -1, -1, -1, -1, -1,
93, 94, 299, 300, 301, 302, -1, 316, 317, 318,
-1, 320, 321, 322, 323, -1, 325, 326, 327, 316,
317, 318, -1, 320, 321, 322, 323, -1, 325, 326,
327, 124, 125, -1, -1, -1, -1, -1, 326, 327,
-1, -1, 269, 270, 271, 272, -1, -1, -1, -1,
-1, 269, 270, 271, 272, -1, 38, -1, -1, 41,
-1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 299, 300, 301, 302, 58, 59, -1, 61,
-1, 63, -1, -1, -1, -1, -1, -1, -1, 316,
317, 318, -1, 320, 321, 322, 323, -1, 325, 326,
327, -1, 269, 270, 271, 272, -1, -1, 326, 327,
-1, 93, 94, -1, -1, -1, 38, -1, -1, 41,
-1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 299, 300, 301, 302, 58, 59, -1, 61,
-1, 63, 124, 125, -1, -1, -1, -1, -1, 316,
317, 318, -1, 320, 321, 322, 323, -1, 325, 326,
327, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 93, 94, -1, -1, -1, 269, 270, 271, 272,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
38, -1, -1, 41, -1, -1, 44, -1, -1, -1,
-1, 41, 124, 125, 44, -1, 299, 300, 301, 302,
58, 59, -1, 61, -1, 63, -1, -1, 58, 59,
-1, -1, -1, 316, 317, 318, -1, 320, 321, 322,
323, -1, 325, 326, 327, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 93, 94, -1, -1, -1,
-1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 38, -1, -1, 41, 124, 125, 44, -1,
-1, 41, -1, -1, 44, 125, -1, 269, 270, 271,
272, -1, 58, 59, -1, 61, -1, 63, 58, 59,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 299, 300, 301,
302, -1, -1, -1, -1, -1, -1, 93, 94, -1,
-1, -1, -1, 93, 316, 317, 318, -1, 320, 321,
322, 323, -1, 325, 326, 327, -1, 269, 270, 271,
272, 38, -1, -1, 41, -1, -1, 44, 124, 125,
-1, -1, -1, 38, -1, 125, 41, -1, -1, 44,
-1, 58, 59, -1, 61, -1, 63, 299, 300, 301,
302, -1, -1, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, -1, 316, 317, 318, -1, 320, 321,
322, 323, -1, 325, 326, 327, 93, 94, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
-1, 269, 270, 271, 272, -1, -1, -1, -1, 269,
270, 271, 272, -1, -1, -1, 38, 124, 125, 41,
-1, -1, -1, -1, -1, 41, -1, -1, 44, 124,
125, 299, 300, 301, 302, -1, 58, 59, -1, 61,
-1, 63, 58, 59, -1, -1, -1, -1, 316, 317,
318, -1, 320, 321, 322, 323, -1, 325, 326, 327,
-1, -1, -1, -1, -1, -1, 326, 327, -1, -1,
-1, 93, 94, -1, -1, -1, -1, 93, -1, -1,
-1, -1, -1, 269, 270, 271, 272, -1, -1, 269,
270, 271, 272, -1, -1, -1, -1, 38, -1, -1,
41, -1, 124, 125, -1, -1, -1, -1, -1, 125,
-1, -1, -1, 299, 300, 301, 302, 58, 59, -1,
61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
316, 317, 318, -1, 320, 321, 322, 323, -1, 325,
326, 327, -1, -1, -1, -1, 326, 327, -1, -1,
-1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
-1, -1, 269, 270, 271, 272, -1, -1, -1, -1,
-1, -1, -1, -1, 269, 270, 271, 272, 38, -1,
-1, 41, -1, 124, 125, -1, -1, -1, -1, -1,
-1, -1, 299, 300, 301, 302, -1, -1, 58, 59,
-1, 61, -1, 63, 299, 300, 301, 302, -1, 316,
317, 318, -1, 320, 321, 322, 323, -1, 325, 326,
327, 316, 317, 318, -1, 320, 321, 322, 323, -1,
325, 326, 327, 93, 94, -1, -1, 38, -1, -1,
41, -1, -1, 44, -1, -1, -1, 269, 270, 271,
272, -1, -1, 269, 270, 271, 272, 58, 59, -1,
61, -1, 63, -1, 124, 125, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 299, 300, 301,
302, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 93, 94, 316, 317, 318, -1, 320, 321,
322, 323, -1, 325, 326, 327, -1, -1, -1, -1,
326, 327, 38, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, 124, 125, -1, -1, -1, 269, 270,
271, 272, 58, 59, -1, 61, -1, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 38,
-1, -1, 41, -1, -1, 44, -1, -1, 299, 300,
301, 302, -1, -1, -1, -1, -1, 93, 94, 58,
59, -1, 61, -1, 63, 316, 317, 318, -1, 320,
321, 322, 323, -1, 325, 326, 327, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 124, 125,
-1, -1, -1, -1, 93, 94, -1, -1, -1, 269,
270, 271, 272, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 38, -1, -1, 41, -1, -1, 44,
-1, -1, -1, -1, -1, 124, 125, -1, -1, 299,
300, 301, 302, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, -1, -1, -1, 316, 317, 318, -1,
320, 321, 322, 323, -1, 325, 326, 327, 269, 270,
271, 272, -1, -1, -1, -1, -1, -1, 93, 94,
-1, -1, 38, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 299, 300,
301, 302, 58, 59, -1, 61, -1, 63, -1, 124,
125, -1, -1, -1, -1, 316, 317, 318, -1, 320,
321, 322, 323, -1, -1, 326, 327, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 93, 94, -1,
-1, -1, -1, 269, 270, 271, 272, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 38, -1, -1, 41, 124, 125,
44, -1, -1, 299, 300, 301, 302, -1, -1, -1,
269, 270, 271, 272, 58, 59, -1, 61, -1, 63,
316, 317, 318, -1, 320, 321, 322, 323, -1, -1,
326, 327, -1, -1, -1, -1, -1, -1, -1, -1,
299, 300, 301, 302, -1, -1, -1, -1, -1, 93,
94, -1, -1, -1, -1, -1, -1, 316, 317, 318,
-1, 320, 321, 322, 323, -1, -1, 326, 327, 38,
-1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
124, 125, -1, -1, 269, 270, 271, 272, -1, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 299, 300, 301, 302, -1, -1,
-1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, 316, 317, 318, -1, 320, 321, -1, -1, -1,
-1, 326, 327, 269, 270, 271, 272, 38, -1, -1,
41, -1, -1, 44, -1, 124, 125, -1, -1, 38,
-1, -1, 41, -1, -1, 44, -1, 58, 59, -1,
61, -1, 63, 299, 300, -1, 302, -1, -1, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
316, 317, 318, -1, 320, 321, -1, -1, -1, -1,
326, 327, 93, 94, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 269, 270, 271, 272, 38,
-1, -1, 41, 124, 125, 44, -1, -1, -1, -1,
-1, 38, -1, -1, 41, 124, 125, 44, -1, 58,
59, -1, 61, -1, 63, 299, 300, -1, -1, -1,
-1, 58, 59, -1, 61, -1, 63, -1, -1, -1,
-1, -1, 316, 317, 318, -1, 320, 321, -1, -1,
-1, -1, 326, 327, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, 38, -1,
269, 270, 271, 272, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 38, 124, 125, 41, -1, -1,
44, 61, -1, 63, -1, -1, -1, 124, 125, -1,
299, 300, -1, -1, 58, 59, -1, 61, -1, 63,
-1, -1, -1, -1, -1, -1, -1, 316, 317, 318,
-1, 320, 321, -1, 94, -1, -1, 326, 327, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
94, -1, -1, -1, -1, -1, -1, -1, 269, 270,
271, 272, -1, -1, 124, -1, -1, -1, -1, -1,
269, 270, 271, 272, -1, -1, -1, -1, -1, 41,
124, 125, 44, -1, -1, -1, -1, -1, 299, 300,
-1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
299, 300, -1, -1, -1, 316, 317, 318, -1, -1,
-1, -1, -1, -1, -1, 326, 327, 316, 317, 318,
-1, -1, -1, -1, -1, -1, 38, 326, 327, 41,
-1, 93, 44, -1, -1, -1, -1, -1, -1, -1,
269, 270, 271, 272, -1, -1, 58, 59, -1, 61,
-1, 63, 269, 270, 271, 272, -1, -1, -1, -1,
-1, -1, -1, 125, -1, -1, -1, -1, -1, -1,
299, 300, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 93, 94, 300, -1, -1, -1, 316, 317, 318,
-1, -1, -1, -1, -1, -1, -1, 326, 327, 316,
317, 318, -1, -1, -1, -1, -1, -1, -1, 326,
327, 38, 124, 125, 41, -1, -1, 44, -1, -1,
-1, -1, -1, -1, -1, 269, 270, 271, 272, -1,
-1, 58, 59, -1, 61, -1, 63, -1, -1, 299,
300, 301, 302, -1, -1, -1, -1, -1, -1, -1,
-1, 41, -1, -1, 44, -1, 316, 317, 318, -1,
320, 321, 322, 323, -1, 325, 93, 94, 58, 59,
-1, -1, 316, 317, 318, -1, -1, -1, -1, -1,
-1, 38, 326, 327, 41, -1, -1, 44, -1, -1,
-1, -1, -1, 38, -1, -1, 41, 124, 125, 44,
-1, 58, 59, 93, 61, -1, 63, 269, 270, 271,
272, -1, -1, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, -1, 212, -1, -1, -1, -1, -1,
-1, -1, -1, 221, 222, 125, 93, 94, -1, -1,
-1, 229, 230, 231, 232, -1, 234, -1, 93, 94,
-1, -1, -1, -1, -1, -1, -1, 269, 270, 271,
272, -1, -1, 38, 326, 327, 41, 124, 125, 44,
-1, -1, -1, -1, -1, 38, -1, -1, 41, 124,
125, 44, -1, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, -1, -1, 58, 59, -1, 61, 287,
63, -1, -1, -1, 316, 317, 318, -1, -1, -1,
-1, -1, -1, 301, 326, 327, -1, -1, 93, 94,
-1, 309, -1, -1, -1, -1, -1, -1, 316, 317,
93, 94, 38, -1, -1, 41, -1, -1, 44, -1,
-1, -1, 269, 270, 271, 272, -1, -1, -1, 124,
125, -1, 58, 59, -1, 61, -1, 63, -1, -1,
348, 124, 125, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 299, 300, 301, 302, -1, 365, -1, 269,
270, 271, 272, 371, -1, -1, -1, 93, 94, 316,
317, 318, -1, 320, 321, 322, 323, -1, 325, -1,
388, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 269, 270, 271, 272, -1, -1, 124, 125,
-1, -1, -1, -1, 269, 270, 271, 272, 38, -1,
-1, 41, -1, -1, 44, -1, 326, 327, -1, -1,
-1, -1, 299, 300, 301, 302, -1, -1, 58, 59,
-1, 61, -1, 63, 299, 300, 301, 302, -1, 316,
317, 318, -1, 320, 321, 322, 323, -1, 325, -1,
-1, 316, 317, 318, -1, 320, 321, 322, 323, -1,
325, -1, -1, 93, 94, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 269, 270, 271, 272, -1, -1,
-1, -1, -1, -1, -1, -1, 269, 270, 271, 272,
-1, 33, -1, -1, 124, 125, -1, -1, 40, -1,
-1, 43, -1, 45, 299, 300, 301, 302, -1, -1,
-1, -1, -1, -1, -1, -1, 299, 300, 301, 302,
-1, 316, 317, 318, -1, 320, 321, 322, 323, -1,
325, -1, -1, 316, 317, 318, -1, 320, 321, 322,
323, -1, 325, 269, 270, 271, 272, 38, -1, 91,
41, -1, -1, 44, -1, -1, -1, 38, -1, -1,
41, -1, -1, 44, -1, -1, -1, 58, 59, -1,
61, -1, 63, 299, 300, 301, 302, 58, 59, -1,
61, 123, 63, -1, 126, -1, -1, -1, -1, -1,
316, 317, 318, -1, 320, 321, 322, 323, -1, 325,
-1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
-1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 38, -1, -1, 41, -1,
-1, 44, -1, 124, 125, -1, -1, -1, -1, 269,
270, 271, 272, 124, 125, 58, 59, -1, 61, -1,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 299,
300, 301, 302, -1, -1, -1, -1, -1, -1, -1,
93, 94, -1, -1, -1, -1, 316, 317, 318, -1,
320, 321, 322, 323, -1, 325, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 124, 125, -1, -1, 257, -1, 259, 260, 261,
-1, -1, 264, 265, 266, 267, 268, -1, -1, -1,
-1, -1, -1, -1, 276, 277, -1, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, -1, 296, 297, 298, -1, -1, -1,
-1, -1, 304, -1, 306, 307, 308, 309, 310, 311,
312, 313, 314, 315, -1, -1, -1, 319, 269, 270,
271, 272, -1, -1, -1, -1, -1, -1, 269, 270,
271, 272, -1, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 299, 300,
301, 302, 58, 59, -1, 61, -1, 63, 299, 300,
301, 302, -1, -1, -1, 316, 317, 318, -1, 320,
321, 322, 323, -1, 325, 316, 317, 318, -1, 320,
321, 322, 323, -1, 325, -1, 41, 93, 94, 44,
-1, -1, -1, -1, -1, -1, 269, 270, 271, 272,
-1, -1, -1, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, 41, -1, -1, 44, -1, 124, 125,
-1, -1, -1, -1, -1, -1, 299, 300, 301, 302,
58, 59, -1, 61, -1, 63, -1, 41, 93, 94,
44, -1, -1, 316, 317, 318, -1, 320, 321, 322,
323, -1, 325, -1, 58, 59, -1, 61, -1, 63,
-1, -1, -1, 41, -1, 93, 44, -1, -1, 124,
125, -1, -1, 41, -1, -1, 44, -1, -1, -1,
58, 59, -1, -1, -1, -1, -1, -1, -1, 93,
58, 59, -1, -1, -1, -1, 41, 125, -1, 44,
41, -1, -1, 44, -1, -1, 41, -1, -1, 44,
-1, -1, -1, 58, 59, 93, 41, 58, 59, 44,
-1, 125, -1, 58, 59, 93, -1, -1, -1, -1,
-1, -1, -1, 58, 59, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 125, 93, -1,
-1, -1, 93, -1, -1, -1, -1, 125, 93, -1,
-1, -1, -1, 269, 270, 271, 272, -1, 93, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
125, -1, -1, -1, 125, -1, -1, -1, -1, -1,
125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
316, 317, 318, -1, 269, 270, 271, 272, -1, -1,
326, 327, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 269, 270, 271, 272, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, 317, 318, -1, 269, 270, 271, 272, -1,
-1, 326, 327, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 316, 317,
318, 269, 270, 271, 272, -1, -1, -1, 326, 327,
-1, 269, 270, 271, 272, -1, -1, -1, -1, -1,
-1, -1, 316, 317, -1, -1, -1, -1, -1, -1,
-1, -1, 326, 327, 269, 270, 271, 272, 269, 270,
271, 272, -1, -1, 269, 270, 271, 272, -1, -1,
-1, -1, -1, -1, 269, 270, 271, 272, 326, 327,
-1, -1, -1, -1, 66, -1, -1, -1, 326, 327,
72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 326, 327, -1, -1, 326, 327, -1, -1, -1,
-1, 326, 327, -1, 106, -1, 108, -1, 110, -1,
112, 326, 327, 115, -1, 117, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 127, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 141,
-1, -1, -1, 145, 146, 147, 148, 149, 150, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 167, 168, 169, 170, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 198, 199, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 214, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 237, 238, 239, -1, -1,
-1, -1, -1, -1, 246, -1, -1, -1, -1, 251,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 284, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 304, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 333,
};
#define YYFINAL 1
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 327
#if YYDEBUG
const char * const yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'!'",0,0,0,0,"'&'",0,"'('","')'",0,"'+'","','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,
"':'","';'",0,"'='",0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","APPEND","OPEN","SSELECT",
"LOOPEX","USING","FORMAT","DO","SHIFT","PUSH","POP","LVALFUN","WHILE","UNTIL",
"IF","UNLESS","ELSE","ELSIF","CONTINUE","SPLIT","FLIST","FOR","FILOP","FILOP2",
"FILOP3","FILOP4","FILOP22","FILOP25","FUNC0","FUNC1","FUNC2","FUNC2x","FUNC3",
"FUNC4","FUNC5","HSHFUN","HSHFUN3","FLIST2","SUB","FILETEST","LOCAL","DELETE",
"RELOP","EQOP","MULOP","ADDOP","PACKAGE","AMPER","FORMLIST","REG","ARYLEN",
"ARY","HSH","STAR","SUBST","PATTERN","RSTRING","TRANS","LISTOP","DOTDOT","OROR",
"ANDAND","UNIOP","LS","RS","MATCH","NMATCH","UMINUS","POW","INC","DEC",
};
const char * const yyrule[] = {
"$accept : prog",
"$$1 :",
"prog : $$1 lineseq",
"compblock : block CONTINUE block",
"compblock : block else",
"else :",
"else : ELSE block",
"else : ELSIF '(' expr ')' compblock",
"block : '{' remember lineseq '}'",
"remember :",
"lineseq :",
"lineseq : lineseq line",
"line : decl",
"line : label cond",
"line : loop",
"line : label ';'",
"line : label sideff ';'",
"sideff : error",
"sideff : expr",
"sideff : expr IF expr",
"sideff : expr UNLESS expr",
"sideff : expr WHILE expr",
"sideff : expr UNTIL expr",
"cond : IF '(' expr ')' compblock",
"cond : UNLESS '(' expr ')' compblock",
"cond : IF block compblock",
"cond : UNLESS block compblock",
"loop : label WHILE '(' texpr ')' compblock",
"loop : label UNTIL '(' expr ')' compblock",
"loop : label WHILE block compblock",
"loop : label UNTIL block compblock",
"loop : label FOR REG '(' expr ')' compblock",
"loop : label FOR '(' expr ')' compblock",
"loop : label FOR '(' nexpr ';' texpr ';' nexpr ')' block",
"loop : label compblock",
"nexpr :",
"nexpr : sideff",
"texpr :",
"texpr : expr",
"label :",
"label : WORD ':'",
"decl : format",
"decl : subrout",
"decl : package",
"format : FORMAT WORD '=' FORMLIST",
"format : FORMAT '=' FORMLIST",
"subrout : SUB WORD block",
"package : PACKAGE WORD ';'",
"cexpr : ',' expr",
"expr : expr ',' sexpr",
"expr : sexpr",
"csexpr : ',' sexpr",
"sexpr : sexpr '=' sexpr",
"sexpr : sexpr POW '=' sexpr",
"sexpr : sexpr MULOP '=' sexpr",
"sexpr : sexpr ADDOP '=' sexpr",
"sexpr : sexpr LS '=' sexpr",
"sexpr : sexpr RS '=' sexpr",
"sexpr : sexpr '&' '=' sexpr",
"sexpr : sexpr '^' '=' sexpr",
"sexpr : sexpr '|' '=' sexpr",
"sexpr : sexpr POW sexpr",
"sexpr : sexpr MULOP sexpr",
"sexpr : sexpr ADDOP sexpr",
"sexpr : sexpr LS sexpr",
"sexpr : sexpr RS sexpr",
"sexpr : sexpr RELOP sexpr",
"sexpr : sexpr EQOP sexpr",
"sexpr : sexpr '&' sexpr",
"sexpr : sexpr '^' sexpr",
"sexpr : sexpr '|' sexpr",
"sexpr : sexpr DOTDOT sexpr",
"sexpr : sexpr ANDAND sexpr",
"sexpr : sexpr OROR sexpr",
"sexpr : sexpr '?' sexpr ':' sexpr",
"sexpr : sexpr MATCH sexpr",
"sexpr : sexpr NMATCH sexpr",
"sexpr : term",
"term : '-' term",
"term : '+' term",
"term : '!' term",
"term : '~' term",
"term : term INC",
"term : term DEC",
"term : INC term",
"term : DEC term",
"term : FILETEST WORD",
"term : FILETEST sexpr",
"term : FILETEST",
"term : LOCAL '(' expr ')'",
"term : '(' expr ',' ')'",
"term : '(' expr ')'",
"term : '(' ')'",
"term : DO sexpr",
"term : DO block",
"term : REG",
"term : STAR",
"term : REG '[' expr ']'",
"term : HSH",
"term : ARY",
"term : REG '{' expr '}'",
"term : '(' expr ')' '[' expr ']'",
"term : '(' ')' '[' expr ']'",
"term : ARY '[' expr ']'",
"term : ARY '{' expr '}'",
"term : DELETE REG '{' expr '}'",
"term : ARYLEN",
"term : RSTRING",
"term : PATTERN",
"term : SUBST",
"term : TRANS",
"term : DO WORD '(' expr ')'",
"term : AMPER WORD '(' expr ')'",
"term : DO WORD '(' ')'",
"term : AMPER WORD '(' ')'",
"term : AMPER WORD",
"term : DO REG '(' expr ')'",
"term : AMPER REG '(' expr ')'",
"term : DO REG '(' ')'",
"term : AMPER REG '(' ')'",
"term : AMPER REG",
"term : LOOPEX",
"term : LOOPEX WORD",
"term : UNIOP",
"term : UNIOP sexpr",
"term : SSELECT",
"term : SSELECT '(' handle ')'",
"term : SSELECT '(' sexpr csexpr csexpr csexpr ')'",
"term : OPEN WORD",
"term : OPEN '(' WORD ')'",
"term : OPEN '(' handle cexpr ')'",
"term : FILOP '(' handle ')'",
"term : FILOP WORD",
"term : FILOP REG",
"term : FILOP '(' ')'",
"term : FILOP",
"term : FILOP2 '(' handle cexpr ')'",
"term : FILOP3 '(' handle csexpr cexpr ')'",
"term : FILOP22 '(' handle ',' handle ')'",
"term : FILOP4 '(' handle csexpr csexpr cexpr ')'",
"term : FILOP25 '(' handle ',' handle csexpr csexpr cexpr ')'",
"term : PUSH '(' aryword cexpr ')'",
"term : POP aryword",
"term : POP '(' aryword ')'",
"term : SHIFT aryword",
"term : SHIFT '(' aryword ')'",
"term : SHIFT",
"term : SPLIT",
"term : SPLIT '(' sexpr csexpr csexpr ')'",
"term : SPLIT '(' sexpr csexpr ')'",
"term : SPLIT '(' sexpr ')'",
"term : FLIST2 '(' sexpr cexpr ')'",
"term : FLIST '(' expr ')'",
"term : LVALFUN sexpr",
"term : LVALFUN",
"term : FUNC0",
"term : FUNC0 '(' ')'",
"term : FUNC1 '(' ')'",
"term : FUNC1 '(' expr ')'",
"term : FUNC2 '(' sexpr cexpr ')'",
"term : FUNC2x '(' sexpr csexpr ')'",
"term : FUNC2x '(' sexpr csexpr cexpr ')'",
"term : FUNC3 '(' sexpr csexpr cexpr ')'",
"term : FUNC4 '(' sexpr csexpr csexpr cexpr ')'",
"term : FUNC5 '(' sexpr csexpr csexpr csexpr cexpr ')'",
"term : HSHFUN '(' hshword ')'",
"term : HSHFUN hshword",
"term : HSHFUN3 '(' hshword csexpr cexpr ')'",
"term : bareword",
"term : listop",
"listop : LISTOP",
"listop : LISTOP expr",
"listop : LISTOP WORD",
"listop : LISTOP WORD expr",
"listop : LISTOP REG expr",
"handle : WORD",
"handle : sexpr",
"aryword : WORD",
"aryword : ARY",
"hshword : WORD",
"hshword : HSH",
"bareword : WORD",
};
#endif
#if YYDEBUG
#include <stdio.h>
#endif
#ifdef YYSTACKSIZE
#undef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 10000
#define YYMAXDEPTH 10000
#endif
#endif
#define YYINITSTACKSIZE 200
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short *yyss;
short *yysslim;
YYSTYPE *yyvs;
int yystacksize;
#line 792 "perly.y"
/* PROGRAM */
#line 1787 "y.tab.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
static int yygrowstack()
{
int newsize, i;
short *newss;
YYSTYPE *newvs;
if ((newsize = yystacksize) == 0)
newsize = YYINITSTACKSIZE;
else if (newsize >= YYMAXDEPTH)
return -1;
else if ((newsize *= 2) > YYMAXDEPTH)
newsize = YYMAXDEPTH;
i = yyssp - yyss;
newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
(short *)malloc(newsize * sizeof *newss);
if (newss == NULL)
return -1;
yyss = newss;
yyssp = newss + i;
newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
(YYSTYPE *)malloc(newsize * sizeof *newvs);
if (newvs == NULL)
return -1;
yyvs = newvs;
yyvsp = newvs + i;
yystacksize = newsize;
yysslim = yyss + newsize - 1;
return 0;
}
#define YYABORT goto yyabort
#define YYREJECT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
#ifndef YYPARSE_PARAM
#if defined(__cplusplus) || __STDC__
#define YYPARSE_PARAM_ARG void
#define YYPARSE_PARAM_DECL
#else /* ! ANSI-C/C++ */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* ANSI-C/C++ */
#else /* YYPARSE_PARAM */
#ifndef YYPARSE_PARAM_TYPE
#define YYPARSE_PARAM_TYPE void *
#endif
#if defined(__cplusplus) || __STDC__
#define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* ! ANSI-C/C++ */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM;
#endif /* ANSI-C/C++ */
#endif /* ! YYPARSE_PARAM */
int
yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
register int yym, yyn, yystate;
#if YYDEBUG
register const char *yys;
if ((yys = getenv("YYDEBUG")))
{
yyn = *yys;
if (yyn >= '0' && yyn <= '9')
yydebug = yyn - '0';
}
#endif
yynerrs = 0;
yyerrflag = 0;
yychar = (-1);
if (yyss == NULL && yygrowstack()) goto yyoverflow;
yyssp = yyss;
yyvsp = yyvs;
*yyssp = yystate = 0;
yyloop:
if ((yyn = yydefred[yystate])) goto yyreduce;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
}
if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, shifting to state %d\n",
YYPREFIX, yystate, yytable[yyn]);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
yychar = (-1);
if (yyerrflag > 0) --yyerrflag;
goto yyloop;
}
if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
yyn = yytable[yyn];
goto yyreduce;
}
if (yyerrflag) goto yyinrecovery;
#if defined(lint) || defined(__GNUC__)
goto yynewerror;
#endif
yynewerror:
yyerror("syntax error");
#if defined(lint) || defined(__GNUC__)
goto yyerrlab;
#endif
yyerrlab:
++yynerrs;
yyinrecovery:
if (yyerrflag < 3)
{
yyerrflag = 3;
for (;;)
{
if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, error recovery shifting\
to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
goto yyloop;
}
else
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: error recovery discarding state %d\n",
YYPREFIX, *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
--yyssp;
--yyvsp;
}
}
}
else
{
if (yychar == 0) goto yyabort;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
yychar = (-1);
goto yyloop;
}
yyreduce:
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, reducing by rule %d (%s)\n",
YYPREFIX, yystate, yyn, yyrule[yyn]);
#endif
yym = yylen[yyn];
yyval = yyvsp[1-yym];
switch (yyn)
{
case 1:
#line 81 "perly.y"
{
#if defined(YYDEBUG) && defined(DEBUGGING)
yydebug = (debug & 1);
#endif
}
break;
case 2:
#line 87 "perly.y"
{ if (in_eval)
eval_root = block_head(yyvsp[0].cmdval);
else
main_root = block_head(yyvsp[0].cmdval); }
break;
case 3:
#line 94 "perly.y"
{ yyval.compval.comp_true = yyvsp[-2].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; }
break;
case 4:
#line 96 "perly.y"
{ yyval.compval.comp_true = yyvsp[-1].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; }
break;
case 5:
#line 100 "perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 6:
#line 102 "perly.y"
{ yyval.cmdval = yyvsp[0].cmdval; }
break;
case 7:
#line 104 "perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = make_ccmd(C_ELSIF,yyvsp[-2].arg,yyvsp[0].compval); }
break;
case 8:
#line 109 "perly.y"
{ yyval.cmdval = block_head(yyvsp[-1].cmdval);
if (savestack->ary_fill > yyvsp[-2].ival)
restorelist(yyvsp[-2].ival); }
break;
case 9:
#line 115 "perly.y"
{ yyval.ival = savestack->ary_fill; }
break;
case 10:
#line 119 "perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 11:
#line 121 "perly.y"
{ yyval.cmdval = append_line(yyvsp[-1].cmdval,yyvsp[0].cmdval); }
break;
case 12:
#line 125 "perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 13:
#line 127 "perly.y"
{ yyval.cmdval = add_label(yyvsp[-1].cval,yyvsp[0].cmdval); }
break;
case 15:
#line 130 "perly.y"
{ if (yyvsp[-1].cval != Nullch) {
yyval.cmdval = add_label(yyvsp[-1].cval, make_acmd(C_EXPR, Nullstab,
Nullarg, Nullarg) );
}
else {
yyval.cmdval = Nullcmd;
cmdline = NOLINE;
} }
break;
case 16:
#line 139 "perly.y"
{ yyval.cmdval = add_label(yyvsp[-2].cval,yyvsp[-1].cmdval); }
break;
case 17:
#line 143 "perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 18:
#line 145 "perly.y"
{ yyval.cmdval = make_acmd(C_EXPR, Nullstab, yyvsp[0].arg, Nullarg); }
break;
case 19:
#line 147 "perly.y"
{ yyval.cmdval = addcond(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); }
break;
case 20:
#line 150 "perly.y"
{ yyval.cmdval = addcond(invert(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); }
break;
case 21:
#line 153 "perly.y"
{ yyval.cmdval = addloop(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); }
break;
case 22:
#line 156 "perly.y"
{ yyval.cmdval = addloop(invert(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); }
break;
case 23:
#line 161 "perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval); }
break;
case 24:
#line 164 "perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = invert(make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval)); }
break;
case 25:
#line 167 "perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval); }
break;
case 26:
#line 170 "perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = invert(make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)); }
break;
case 27:
#line 175 "perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )); }
break;
case 28:
#line 179 "perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
invert(make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval)) )); }
break;
case 29:
#line 183 "perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval) )); }
break;
case 30:
#line 187 "perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
invert(make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)) )); }
break;
case 31:
#line 191 "perly.y"
{ cmdline = yyvsp[-5].ival;
/*
* The following gobbledygook catches EXPRs that
* aren't explicit array refs and translates
* foreach VAR (EXPR) {
* into
* @ary = EXPR;
* foreach VAR (@ary) {
* where @ary is a hidden array made by genstab().
* (Note that @ary may become a local array if
* it is determined that it might be called
* recursively. See cmd_tosave().)
*/
if (yyvsp[-2].arg->arg_type != O_ARRAY) {
scrstab = aadd(genstab());
yyval.cmdval = append_line(
make_acmd(C_EXPR, Nullstab,
l(make_op(O_ASSIGN,2,
listish(make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg )),
listish(make_list(yyvsp[-2].arg)),
Nullarg)),
Nullarg),
wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
make_ccmd(C_WHILE,
make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg ),
yyvsp[0].compval)))));
yyval.cmdval->c_line = yyvsp[-5].ival;
yyval.cmdval->c_head->c_line = yyvsp[-5].ival;
}
else {
yyval.cmdval = wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
}
}
break;
case 32:
#line 230 "perly.y"
{ cmdline = yyvsp[-4].ival;
if (yyvsp[-2].arg->arg_type != O_ARRAY) {
scrstab = aadd(genstab());
yyval.cmdval = append_line(
make_acmd(C_EXPR, Nullstab,
l(make_op(O_ASSIGN,2,
listish(make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg )),
listish(make_list(yyvsp[-2].arg)),
Nullarg)),
Nullarg),
wopt(over(defstab,add_label(yyvsp[-5].cval,
make_ccmd(C_WHILE,
make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg ),
yyvsp[0].compval)))));
yyval.cmdval->c_line = yyvsp[-4].ival;
yyval.cmdval->c_head->c_line = yyvsp[-4].ival;
}
else { /* lisp, anyone? */
yyval.cmdval = wopt(over(defstab,add_label(yyvsp[-5].cval,
make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
}
}
break;
case 33:
#line 258 "perly.y"
{ yyval.compval.comp_true = yyvsp[0].cmdval;
yyval.compval.comp_alt = yyvsp[-2].cmdval;
cmdline = yyvsp[-8].ival;
yyval.cmdval = append_line(yyvsp[-6].cmdval,wopt(add_label(yyvsp[-9].cval,
make_ccmd(C_WHILE,yyvsp[-4].arg,yyval.compval) ))); }
break;
case 34:
#line 264 "perly.y"
{ yyval.cmdval = add_label(yyvsp[-1].cval,make_ccmd(C_BLOCK,Nullarg,yyvsp[0].compval)); }
break;
case 35:
#line 268 "perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 37:
#line 273 "perly.y"
{ (void)scanstr("1"); yyval.arg = yylval.arg; }
break;
case 39:
#line 278 "perly.y"
{ yyval.cval = Nullch; }
break;
case 41:
#line 283 "perly.y"
{ yyval.ival = 0; }
break;
case 42:
#line 285 "perly.y"
{ yyval.ival = 0; }
break;
case 43:
#line 287 "perly.y"
{ yyval.ival = 0; }
break;
case 44:
#line 291 "perly.y"
{ if (strEQ(yyvsp[-2].cval,"stdout"))
make_form(stabent("STDOUT",TRUE),yyvsp[0].formval);
else if (strEQ(yyvsp[-2].cval,"stderr"))
make_form(stabent("STDERR",TRUE),yyvsp[0].formval);
else
make_form(stabent(yyvsp[-2].cval,TRUE),yyvsp[0].formval);
Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; }
break;
case 45:
#line 299 "perly.y"
{ make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); }
break;
case 46:
#line 303 "perly.y"
{ make_sub(yyvsp[-1].cval,yyvsp[0].cmdval); }
break;
case 47:
#line 307 "perly.y"
{ char tmpbuf[256];
STAB *tmpstab;
savehptr(&curstash);
saveitem(curstname);
str_set(curstname,yyvsp[-1].cval);
sprintf(tmpbuf,"'_%s",yyvsp[-1].cval);
tmpstab = stabent(tmpbuf,TRUE);
if (!stab_xhash(tmpstab))
stab_xhash(tmpstab) = hnew(0);
curstash = stab_xhash(tmpstab);
if (!curstash->tbl_name)
curstash->tbl_name = savestr(yyvsp[-1].cval);
curstash->tbl_coeffsize = 0;
Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch;
cmdline = NOLINE;
}
break;
case 48:
#line 327 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 49:
#line 331 "perly.y"
{ yyval.arg = make_op(O_COMMA, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 51:
#line 336 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 52:
#line 340 "perly.y"
{ yyvsp[-2].arg = listish(yyvsp[-2].arg);
if (yyvsp[-2].arg->arg_type == O_ASSIGN && yyvsp[-2].arg->arg_len == 1)
yyvsp[-2].arg->arg_type = O_ITEM; /* a local() */
if (yyvsp[-2].arg->arg_type == O_LIST)
yyvsp[0].arg = listish(yyvsp[0].arg);
yyval.arg = l(make_op(O_ASSIGN, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg)); }
break;
case 53:
#line 347 "perly.y"
{ yyval.arg = l(make_op(O_POW, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 54:
#line 349 "perly.y"
{ yyval.arg = l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 55:
#line 351 "perly.y"
{ yyval.arg = rcatmaybe(l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)));}
break;
case 56:
#line 353 "perly.y"
{ yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 57:
#line 355 "perly.y"
{ yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 58:
#line 357 "perly.y"
{ yyval.arg = l(make_op(O_BIT_AND, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 59:
#line 359 "perly.y"
{ yyval.arg = l(make_op(O_XOR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 60:
#line 361 "perly.y"
{ yyval.arg = l(make_op(O_BIT_OR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 61:
#line 365 "perly.y"
{ yyval.arg = make_op(O_POW, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 62:
#line 367 "perly.y"
{ if (yyvsp[-1].ival == O_REPEAT)
yyvsp[-2].arg = listish(yyvsp[-2].arg);
yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg);
if (yyvsp[-1].ival == O_REPEAT) {
if (yyval.arg[1].arg_type != A_EXPR ||
yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST)
yyval.arg[1].arg_flags &= ~AF_ARYOK;
} }
break;
case 63:
#line 376 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 64:
#line 378 "perly.y"
{ yyval.arg = make_op(O_LEFT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 65:
#line 380 "perly.y"
{ yyval.arg = make_op(O_RIGHT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 66:
#line 382 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 67:
#line 384 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 68:
#line 386 "perly.y"
{ yyval.arg = make_op(O_BIT_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 69:
#line 388 "perly.y"
{ yyval.arg = make_op(O_XOR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 70:
#line 390 "perly.y"
{ yyval.arg = make_op(O_BIT_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 71:
#line 392 "perly.y"
{ arg4 = Nullarg;
yyval.arg = make_op(O_F_OR_R, 4, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 72:
#line 395 "perly.y"
{ yyval.arg = make_op(O_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 73:
#line 397 "perly.y"
{ yyval.arg = make_op(O_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 74:
#line 399 "perly.y"
{ yyval.arg = make_op(O_COND_EXPR, 3, yyvsp[-4].arg, yyvsp[-2].arg, yyvsp[0].arg); }
break;
case 75:
#line 401 "perly.y"
{ yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, yyvsp[0].arg); }
break;
case 76:
#line 403 "perly.y"
{ yyval.arg = mod_match(O_NMATCH, yyvsp[-2].arg, yyvsp[0].arg); }
break;
case 77:
#line 405 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 78:
#line 409 "perly.y"
{ yyval.arg = make_op(O_NEGATE, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 79:
#line 411 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 80:
#line 413 "perly.y"
{ yyval.arg = make_op(O_NOT, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 81:
#line 415 "perly.y"
{ yyval.arg = make_op(O_COMPLEMENT, 1, yyvsp[0].arg, Nullarg, Nullarg);}
break;
case 82:
#line 417 "perly.y"
{ yyval.arg = addflags(1, AF_POST|AF_UP,
l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); }
break;
case 83:
#line 420 "perly.y"
{ yyval.arg = addflags(1, AF_POST,
l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); }
break;
case 84:
#line 423 "perly.y"
{ yyval.arg = addflags(1, AF_PRE|AF_UP,
l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); }
break;
case 85:
#line 426 "perly.y"
{ yyval.arg = addflags(1, AF_PRE,
l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); }
break;
case 86:
#line 429 "perly.y"
{ opargs[yyvsp[-1].ival] = 0; /* force it special */
yyval.arg = make_op(yyvsp[-1].ival, 1,
stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
Nullarg, Nullarg);
}
break;
case 87:
#line 435 "perly.y"
{ opargs[yyvsp[-1].ival] = 1;
yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 88:
#line 438 "perly.y"
{ opargs[yyvsp[0].ival] = (yyvsp[0].ival != O_FTTTY);
yyval.arg = make_op(yyvsp[0].ival, 1,
stab2arg(A_STAB,
yyvsp[0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab),
Nullarg, Nullarg); }
break;
case 89:
#line 444 "perly.y"
{ yyval.arg = l(localize(make_op(O_ASSIGN, 1,
localize(listish(make_list(yyvsp[-1].arg))),
Nullarg,Nullarg))); }
break;
case 90:
#line 448 "perly.y"
{ yyval.arg = make_list(yyvsp[-2].arg); }
break;
case 91:
#line 450 "perly.y"
{ yyval.arg = make_list(yyvsp[-1].arg); }
break;
case 92:
#line 452 "perly.y"
{ yyval.arg = make_list(Nullarg); }
break;
case 93:
#line 454 "perly.y"
{ yyval.arg = make_op(O_DOFILE,2,yyvsp[0].arg,Nullarg,Nullarg);
allstabs = TRUE;}
break;
case 94:
#line 457 "perly.y"
{ yyval.arg = cmd_to_arg(yyvsp[0].cmdval); }
break;
case 95:
#line 459 "perly.y"
{ yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
break;
case 96:
#line 461 "perly.y"
{ yyval.arg = stab2arg(A_STAR,yyvsp[0].stabval); }
break;
case 97:
#line 463 "perly.y"
{ yyval.arg = make_op(O_AELEM, 2,
stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), yyvsp[-1].arg, Nullarg); }
break;
case 98:
#line 466 "perly.y"
{ yyval.arg = make_op(O_HASH, 1,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg, Nullarg); }
break;
case 99:
#line 470 "perly.y"
{ yyval.arg = make_op(O_ARRAY, 1,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg, Nullarg); }
break;
case 100:
#line 474 "perly.y"
{ yyval.arg = make_op(O_HELEM, 2,
stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
jmaybe(yyvsp[-1].arg),
Nullarg); }
break;
case 101:
#line 479 "perly.y"
{ yyval.arg = make_op(O_LSLICE, 3,
Nullarg,
listish(make_list(yyvsp[-1].arg)),
listish(make_list(yyvsp[-4].arg))); }
break;
case 102:
#line 484 "perly.y"
{ yyval.arg = make_op(O_LSLICE, 3,
Nullarg,
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 103:
#line 489 "perly.y"
{ yyval.arg = make_op(O_ASLICE, 2,
stab2arg(A_STAB,aadd(yyvsp[-3].stabval)),
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 104:
#line 494 "perly.y"
{ yyval.arg = make_op(O_HSLICE, 2,
stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 105:
#line 499 "perly.y"
{ yyval.arg = make_op(O_DELETE, 2,
stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
jmaybe(yyvsp[-1].arg),
Nullarg); }
break;
case 106:
#line 504 "perly.y"
{ yyval.arg = stab2arg(A_ARYLEN,yyvsp[0].stabval); }
break;
case 107:
#line 506 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 108:
#line 508 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 109:
#line 510 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 110:
#line 512 "perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 111:
#line 514 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-3].cval,TRUE)),
make_list(yyvsp[-1].arg),
Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch;
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 112:
#line 520 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-3].cval,TRUE)),
make_list(yyvsp[-1].arg),
Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; }
break;
case 113:
#line 525 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-2].cval,TRUE)),
make_list(Nullarg),
Nullarg);
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 114:
#line 531 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-2].cval,TRUE)),
make_list(Nullarg),
Nullarg); }
break;
case 115:
#line 536 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
Nullarg,
Nullarg); }
break;
case 116:
#line 541 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-3].stabval),
make_list(yyvsp[-1].arg),
Nullarg);
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 117:
#line 547 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-3].stabval),
make_list(yyvsp[-1].arg),
Nullarg); }
break;
case 118:
#line 552 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-2].stabval),
make_list(Nullarg),
Nullarg);
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 119:
#line 558 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-2].stabval),
make_list(Nullarg),
Nullarg); }
break;
case 120:
#line 563 "perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg,
Nullarg); }
break;
case 121:
#line 568 "perly.y"
{ yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); }
break;
case 122:
#line 570 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,1,cval_to_arg(yyvsp[0].cval),
Nullarg,Nullarg); }
break;
case 123:
#line 573 "perly.y"
{ yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); }
break;
case 124:
#line 575 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,1,yyvsp[0].arg,Nullarg,Nullarg); }
break;
case 125:
#line 577 "perly.y"
{ yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);}
break;
case 126:
#line 579 "perly.y"
{ yyval.arg = make_op(O_SELECT, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 127:
#line 581 "perly.y"
{ arg4 = yyvsp[-1].arg;
yyval.arg = make_op(O_SSELECT, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 128:
#line 584 "perly.y"
{ yyval.arg = make_op(O_OPEN, 2,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
Nullarg); }
break;
case 129:
#line 589 "perly.y"
{ yyval.arg = make_op(O_OPEN, 2,
stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
stab2arg(A_STAB,stabent(yyvsp[-1].cval,TRUE)),
Nullarg); }
break;
case 130:
#line 594 "perly.y"
{ yyval.arg = make_op(O_OPEN, 2,
yyvsp[-2].arg,
yyvsp[-1].arg, Nullarg); }
break;
case 131:
#line 598 "perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1,
yyvsp[-1].arg,
Nullarg, Nullarg); }
break;
case 132:
#line 602 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 1,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
Nullarg, Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 133:
#line 607 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 1,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg, Nullarg); }
break;
case 134:
#line 611 "perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival, 1,
stab2arg(A_WORD,Nullstab),
Nullarg, Nullarg); }
break;
case 135:
#line 615 "perly.y"
{ yyval.arg = make_op(yyvsp[0].ival, 0,
Nullarg, Nullarg, Nullarg); }
break;
case 136:
#line 618 "perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); }
break;
case 137:
#line 620 "perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, make_list(yyvsp[-1].arg)); }
break;
case 138:
#line 622 "perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, yyvsp[-1].arg, Nullarg); }
break;
case 139:
#line 624 "perly.y"
{ arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 140:
#line 626 "perly.y"
{ arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-8].ival, 5, yyvsp[-6].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
break;
case 141:
#line 629 "perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2,
yyvsp[-2].arg,
make_list(yyvsp[-1].arg),
Nullarg); }
break;
case 142:
#line 634 "perly.y"
{ yyval.arg = make_op(O_POP, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 143:
#line 636 "perly.y"
{ yyval.arg = make_op(O_POP, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 144:
#line 638 "perly.y"
{ yyval.arg = make_op(O_SHIFT, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 145:
#line 640 "perly.y"
{ yyval.arg = make_op(O_SHIFT, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 146:
#line 642 "perly.y"
{ yyval.arg = make_op(O_SHIFT, 1,
stab2arg(A_STAB,
aadd(stabent(subline ? "_" : "ARGV", TRUE))),
Nullarg, Nullarg); }
break;
case 147:
#line 647 "perly.y"
{ static char p[]="/\\s+/";
char *oldend = bufend;
ARG *oldarg = yylval.arg;
bufend=p+5;
(void)scanpat(p);
bufend=oldend;
yyval.arg = make_split(defstab,yylval.arg,Nullarg);
yylval.arg = oldarg; }
break;
case 148:
#line 657 "perly.y"
{ yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg,
make_split(defstab,yyvsp[-3].arg,yyvsp[-1].arg));}
break;
case 149:
#line 660 "perly.y"
{ yyval.arg = mod_match(O_MATCH, yyvsp[-1].arg,
make_split(defstab,yyvsp[-2].arg,Nullarg) ); }
break;
case 150:
#line 663 "perly.y"
{ yyval.arg = mod_match(O_MATCH,
stab2arg(A_STAB,defstab),
make_split(defstab,yyvsp[-1].arg,Nullarg) ); }
break;
case 151:
#line 667 "perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2,
yyvsp[-2].arg,
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 152:
#line 672 "perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1,
make_list(yyvsp[-1].arg),
Nullarg,
Nullarg); }
break;
case 153:
#line 677 "perly.y"
{ yyval.arg = l(make_op(yyvsp[-1].ival, 1, fixl(yyvsp[-1].ival,yyvsp[0].arg),
Nullarg, Nullarg)); }
break;
case 154:
#line 680 "perly.y"
{ yyval.arg = l(make_op(yyvsp[0].ival, 1,
stab2arg(A_STAB,defstab),
Nullarg, Nullarg)); }
break;
case 155:
#line 684 "perly.y"
{ yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); }
break;
case 156:
#line 686 "perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); }
break;
case 157:
#line 688 "perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); }
break;
case 158:
#line 690 "perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 159:
#line 692 "perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
break;
case 160:
#line 696 "perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
break;
case 161:
#line 700 "perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg);
if (yyvsp[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
break;
case 162:
#line 704 "perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
break;
case 163:
#line 706 "perly.y"
{ arg4 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 164:
#line 709 "perly.y"
{ arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
break;
case 165:
#line 712 "perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1,
yyvsp[-1].arg,
Nullarg,
Nullarg); }
break;
case 166:
#line 717 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 1,
yyvsp[0].arg,
Nullarg,
Nullarg); }
break;
case 167:
#line 722 "perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
break;
case 170:
#line 728 "perly.y"
{ yyval.arg = make_op(yyvsp[0].ival,2,
stab2arg(A_WORD,Nullstab),
stab2arg(A_STAB,defstab),
Nullarg); }
break;
case 171:
#line 733 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,2,
stab2arg(A_WORD,Nullstab),
maybelistish(yyvsp[-1].ival,make_list(yyvsp[0].arg)),
Nullarg); }
break;
case 172:
#line 738 "perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,2,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
stab2arg(A_STAB,defstab),
Nullarg); }
break;
case 173:
#line 743 "perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival,2,
stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; }
break;
case 174:
#line 748 "perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival,2,
stab2arg(A_STAB,yyvsp[-1].stabval),
maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
Nullarg); }
break;
case 175:
#line 755 "perly.y"
{ yyval.arg = stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE));
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;}
break;
case 177:
#line 761 "perly.y"
{ yyval.arg = stab2arg(A_WORD,aadd(stabent(yyvsp[0].cval,TRUE)));
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 178:
#line 764 "perly.y"
{ yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
break;
case 179:
#line 768 "perly.y"
{ yyval.arg = stab2arg(A_WORD,hadd(stabent(yyvsp[0].cval,TRUE)));
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 180:
#line 771 "perly.y"
{ yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
break;
case 181:
#line 780 "perly.y"
{ char *s;
yyval.arg = op_new(1);
yyval.arg->arg_type = O_ITEM;
yyval.arg[1].arg_type = A_SINGLE;
yyval.arg[1].arg_ptr.arg_str = str_make(yyvsp[0].cval,0);
for (s = yyvsp[0].cval; *s && islower(*s); s++) ;
if (dowarn && !*s)
warn(
"\"%s\" may clash with future reserved word",
yyvsp[0].cval );
}
break;
#line 2971 "y.tab.c"
}
yyssp -= yym;
yystate = *yyssp;
yyvsp -= yym;
yym = yylhs[yyn];
if (yystate == 0 && yym == 0)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: after reduction, shifting from state 0 to\
state %d\n", YYPREFIX, YYFINAL);
#endif
yystate = YYFINAL;
*++yyssp = YYFINAL;
*++yyvsp = yyval;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}
#endif
}
if (yychar == 0) goto yyaccept;
goto yyloop;
}
if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
yystate = yytable[yyn];
else
yystate = yydgoto[yym];
#if YYDEBUG
if (yydebug)
printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yyssp, yystate);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate;
*++yyvsp = yyval;
goto yyloop;
yyoverflow:
yyerror("yacc stack overflow");
yyabort:
return (1);
yyaccept:
return (0);
}