Unicode properties: fix L& (the #12319 didn't allow L&,
[p5sagit/p5-mst-13.2.git] / perly.c
CommitLineData
93a17b20 1#ifndef lint
7b57b0ea 2/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
93a17b20 3#endif
4#define YYBYACC 1
748a9306 5#line 16 "perly.y"
79072805 6#include "EXTERN.h"
864dbfa3 7#define PERL_IN_PERLY_C
79072805 8#include "perl.h"
1e0e26cb 9#ifdef EBCDIC
10#undef YYDEBUG
11#endif
09bef843 12#define dep() deprecate("\"do\" to call subroutines")
13
14/* stuff included here to make perly_c.diff apply better */
15
d3b6f988 16#define yydebug PL_yydebug
17#define yynerrs PL_yynerrs
18#define yyerrflag PL_yyerrflag
19#define yychar PL_yychar
d3b6f988 20#define yyval PL_yyval
21#define yylval PL_yylval
22
09bef843 23struct ysv {
24 short* yyss;
25 YYSTYPE* yyvs;
26 int oldyydebug;
27 int oldyynerrs;
28 int oldyyerrflag;
29 int oldyychar;
30 YYSTYPE oldyyval;
31 YYSTYPE oldyylval;
32};
79072805 33
acfe0abc 34static void yydestruct(pTHX_ void *ptr);
51371543 35
1e0e26cb 36#line 51 "perly.y"
09bef843 37#if 0 /* get this from perly.h instead */
1e0e26cb 38#line 54 "perly.y"
09bef843 39typedef union {
40 I32 ival;
41 char *pval;
42 OP *opval;
43 GV *gvval;
44} YYSTYPE;
1e0e26cb 45#line 62 "perly.y"
09bef843 46#endif /* 0 */
47
48#ifdef USE_PURE_BISON
49#define YYLEX_PARAM (&yychar)
36c66720 50#define yylex yylex_r
09bef843 51#endif
52
1e0e26cb 53#line 54 "perly.c"
93a17b20 54#define YYERRCODE 256
09bef843 55static short yylhs[] = { -1,
ecb2f335 56 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
57 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
58 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
59 13, 13, 13, 13, 27, 27, 28, 28, 29, 30,
60 31, 32, 33, 54, 54, 1, 1, 1, 1, 1,
61 2, 39, 39, 47, 55, 3, 4, 5, 40, 41,
62 41, 45, 45, 45, 46, 46, 42, 42, 56, 56,
63 58, 57, 16, 16, 16, 26, 26, 26, 37, 37,
64 37, 37, 37, 37, 37, 37, 59, 37, 38, 38,
65 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
66 18, 50, 50, 50, 50, 50, 50, 50, 50, 50,
67 50, 50, 50, 50, 51, 51, 51, 51, 51, 51,
68 51, 51, 52, 52, 52, 52, 52, 53, 53, 53,
69 53, 53, 53, 17, 17, 17, 17, 17, 17, 17,
44a8e56a 70 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
ecb2f335 71 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
72 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
73 17, 17, 17, 17, 48, 48, 49, 49, 49, 49,
74 49, 34, 34, 35, 35, 35, 44, 24, 19, 20,
75 21, 22, 23, 36, 36, 36, 36,
93a17b20 76};
09bef843 77static short yylen[] = { 2,
ecb2f335 78 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
ecca16b0 79 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
80 0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
81 9, 8, 11, 3, 0, 1, 0, 1, 1, 1,
09bef843 82 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
83 4, 1, 0, 6, 6, 0, 0, 0, 1, 0,
84 1, 0, 2, 1, 2, 1, 1, 1, 3, 2,
85 0, 7, 3, 3, 1, 2, 3, 1, 3, 5,
86 6, 3, 3, 5, 2, 4, 0, 5, 1, 1,
87 5, 4, 5, 4, 5, 6, 5, 4, 5, 4,
88 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
891be019 89 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
90 2, 2, 3, 2, 4, 3, 5, 2, 2, 4,
91 5, 4, 5, 1, 1, 1, 1, 5, 2, 1,
92 2, 3, 2, 1, 1, 1, 1, 1, 1, 6,
93 5, 4, 5, 1, 1, 3, 4, 3, 1, 2,
94 2, 1, 2, 2, 2, 1, 3, 1, 3, 4,
95 4, 6, 1, 1, 3, 2, 3, 2, 1, 1,
96 1, 0, 1, 0, 1, 2, 1, 2, 2, 2,
97 2, 2, 2, 1, 1, 1, 1,
93a17b20 98};
ecb2f335 99static short yydefred[] = { 4,
09bef843 100 0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
101 46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
ecb2f335 102 0, 70, 71, 0, 14, 3, 173, 0, 0, 154,
891be019 103 0, 168, 0, 57, 57, 0, 0, 0, 0, 0,
71be2cbc 104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93a17b20 105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
09bef843 106 0, 12, 0, 0, 0, 0, 0, 0, 0, 10,
891be019 107 0, 0, 0, 0, 0, 146, 148, 0, 0, 0,
108 0, 174, 140, 134, 135, 136, 137, 52, 0, 59,
109 0, 69, 0, 0, 7, 194, 197, 196, 195, 0,
ecb2f335 110 0, 0, 0, 0, 0, 3, 3, 3, 3, 3,
111 3, 0, 0, 0, 0, 0, 163, 0, 0, 0,
891be019 112 0, 85, 0, 192, 0, 129, 0, 0, 0, 0,
113 0, 0, 0, 179, 181, 180, 0, 188, 0, 0,
114 0, 0, 0, 0, 0, 0, 124, 0, 0, 0,
115 189, 190, 191, 193, 0, 34, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 0, 0, 119, 120, 0,
118 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
119 0, 51, 61, 0, 0, 0, 0, 83, 0, 0,
ecb2f335 120 87, 0, 0, 0, 0, 0, 0, 0, 3, 167,
891be019 121 169, 0, 0, 0, 0, 0, 0, 0, 126, 0,
122 158, 178, 0, 0, 175, 0, 0, 123, 27, 0,
123 0, 19, 0, 0, 0, 0, 73, 0, 0, 0,
09bef843 124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 125 0, 0, 89, 0, 0, 90, 0, 0, 101, 0,
126 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
ecb2f335 127 0, 0, 0, 2, 0, 0, 171, 0, 0, 0,
891be019 128 42, 0, 43, 0, 0, 0, 0, 187, 0, 0,
129 36, 41, 0, 0, 0, 170, 186, 86, 0, 130,
130 0, 132, 0, 125, 177, 65, 0, 0, 0, 0,
131 98, 0, 0, 0, 0, 100, 94, 0, 92, 0,
132 152, 0, 157, 63, 68, 67, 55, 0, 54, 84,
133 0, 88, 127, 0, 0, 0, 0, 0, 0, 0,
134 0, 80, 131, 133, 151, 0, 0, 0, 99, 93,
135 0, 97, 95, 153, 91, 72, 172, 6, 0, 0,
136 0, 0, 0, 0, 0, 0, 150, 96, 81, 7,
137 28, 29, 0, 0, 24, 25, 0, 32, 0, 0,
138 0, 22, 0, 0, 0, 31, 5, 0, 30, 0,
139 0, 33, 0, 23,
93a17b20 140};
09bef843 141static short yydgoto[] = { 1,
ecb2f335 142 10, 11, 20, 104, 19, 2, 95, 370, 98, 359,
143 3, 12, 13, 70, 375, 285, 72, 73, 74, 75,
144 76, 77, 78, 79, 291, 81, 292, 281, 283, 286,
145 294, 282, 284, 122, 214, 100, 82, 257, 89, 91,
146 194, 327, 156, 289, 271, 225, 14, 83, 137, 84,
147 85, 86, 87, 15, 16, 17, 18, 93, 278,
93a17b20 148};
09bef843 149static short yysindex[] = { 0,
891be019 150 0, 0, -132, 0, 0, 0, -51, 0, 0, 0,
151 0, 0, 0, 0, 650, 0, 0, 0, -239, -215,
152 5, 0, 0, -215, 0, 0, 0, -31, -31, 0,
153 -24, 0, 2181, 0, 0, 11, 16, 32, 46, -34,
154 2181, 49, 72, 76, 1017, 977, -31, 1081, 1348, -134,
155 2181, 85, -31, 2181, 2181, 2181, 2181, 2181, 2181, 1388,
156 1428, 0, 2181, 2181, -31, -31, -31, -31, -150, 0,
157 337, 849, -13, -58, -48, 0, 0, 8, 97, 92,
158 116, 0, 0, 0, 0, 0, 0, 0, 52, 0,
159 -97, 0, -75, -97, 0, 0, 0, 0, 0, 2181,
160 146, 2181, 395, 52, -97, 0, 0, 0, 0, 0,
161 0, 150, 849, 153, 1468, 977, 0, 395, 0, -58,
162 116, 0, 2181, 0, 157, 0, 395, -8, 83, -52,
163 2181, 395, 1528, 0, 0, 0, -89, 0, 116, 107,
164 107, 107, -104, -104, 123, -37, 0, -73, 107, 107,
165 0, 0, 0, 0, 52, 0, 2181, 2181, 2181, 2181,
166 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181,
167 2181, 2181, 2181, 2181, 2181, 2181, 2181, 0, 0, -12,
168 2181, 1735, 2181, 2181, 2181, 2181, 2181, 2181, 1795, 0,
169 2181, 0, 0, -64, -32, -64, 411, 0, 2181, 291,
170 0, -64, 2181, 2181, 2181, 2181, 187, 1854, 0, 0,
171 0, -29, 58, 189, 2181, 116, 1914, 2029, 0, 111,
172 0, 0, -26, -19, 0, 2181, 165, 0, 0, -241,
173 -241, 0, -241, -241, -241, -40, 0, 1618, 395, 1306,
174 185, 168, 849, 1235, 1129, 1169, 1268, 782, 235, 107,
175 107, 2181, 0, 2121, 2181, 0, 218, -46, 0, -3,
176 -68, 61, 106, 65, 108, 68, 0, 17, 849, 26,
177 -30, 2181, -30, 0, 236, 2181, 0, 2181, 52, -241,
178 0, 250, 0, 255, -241, 259, 260, 0, 248, 337,
179 0, 0, 262, 261, 2181, 0, 0, 0, 22, 0,
180 33, 0, 36, 0, 0, 0, 125, 2181, 2181, 71,
181 0, 50, 127, 2181, 182, 0, 0, 184, 0, 199,
182 0, 201, 0, 0, 0, 0, 0, 272, 0, 0,
183 354, 0, 0, 216, 216, 216, 216, 2181, 216, 2181,
184 301, 0, 0, 0, 0, 167, 2418, 228, 0, 0,
185 319, 0, 0, 0, 0, 0, 0, 0, -150, -150,
186 -123, -123, 322, -150, 308, 216, 0, 0, 0, 0,
187 0, 0, 216, 334, 0, 0, 216, 0, 1854, -150,
188 449, 0, 2181, -150, 340, 0, 0, 355, 0, 216,
189 216, 0, -123, 0,
93a17b20 190};
09bef843 191static short yyrindex[] = { 0,
891be019 192 0, 0, 247, 0, 0, 0, 0, 0, 0, 0,
193 0, 0, 0, 0, 0, 0, 0, 0, 274, 0,
09bef843 194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
71be2cbc 195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 196 40, 455, 0, 0, 2367, 2469, 0, 0, 0, 0,
93a17b20 197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 198 0, 0, 0, 0, 0, 0, 0, 0, 119, 0,
199 3, 943, 2515, 2603, 2653, 0, 0, 2708, 2754, 0,
200 -6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
201 -33, 0, 0, -33, 0, 0, 0, 0, 0, 2469,
202 0, 0, 3919, 0, -102, 0, 0, 0, 0, 0,
203 0, 0, 3216, 0, 0, 359, 0, 3955, 526, 587,
204 2276, 0, 0, 0, 2801, 0, 3999, 2603, 0, 0,
205 2469, 4043, 0, 0, 0, 0, 2858, 0, 3225, 3461,
206 3527, 3588, 3352, 3399, 2908, 0, 0, 0, 3635, 3680,
93a17b20 207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93a17b20 208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93a17b20 210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 211 2990, 0, 0, -28, 0, -28, 917, 0, 359, 0,
212 0, 295, 379, 0, 0, 0, 0, 370, 0, 0,
213 0, 0, 390, 0, 0, 3291, 0, 0, 0, 0,
214 0, 0, 0, 3056, 0, 0, 3113, 0, 0, 14,
215 35, 0, 55, 91, 117, 1991, 0, 4235, 4090, 1826,
216 3807, 3871, 3283, 0, -22, 4191, 4155, 4145, 1048, 3719,
217 3763, 0, 0, 0, 0, 0, 3163, 0, 0, 0,
218 0, 0, 0, 0, 0, 0, 0, 0, 4267, -10,
219 0, 375, 0, 0, 0, 0, 0, 2469, 0, 136,
220 0, 0, 0, 0, 400, 0, 0, 0, 0, 139,
93a17b20 221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
fad39ff1 222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 223 0, 0, 0, 359, 0, 0, 0, 0, 0, 0,
09bef843 224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 225 0, 0, 0, 0, 0, 0, 0, 0, 0, 396,
226 0, 0, 0, 0, 0, 0, 4080, 0, 0, 0,
227 0, 0, 0, 0, 0, 0, 0, 0, 119, 119,
228 179, 179, 0, 119, 0, 0, 0, 0, 0, 0,
229 0, 0, 0, 0, 0, 0, 0, 0, 415, 119,
230 917, 0, 0, 119, 0, 0, 0, 0, 0, 0,
231 0, 0, 179, 0,
93a17b20 232};
09bef843 233static short yygindex[] = { 0,
ecb2f335 234 0, 0, 196, 425, 0, 0, -2, 0, 37, 634,
235 -94, 0, 0, 0, -323, -15, 2445, 0, 999, 414,
236 417, 0, 0, 0, 463, -43, 0, 0, 321, -198,
237 103, 147, 280, -91, -185, 1, 0, 0, 0, 464,
238 -44, 222, 338, 0, -179, 0, 0, 0, 0, 0,
891be019 239 0, 0, 0, 0, 0, 0, 0, 0, 0,
93a17b20 240};
891be019 241#define YYTABLESIZE 4568
09bef843 242static short yytable[] = { 71,
891be019 243 197, 65, 121, 227, 65, 111, 220, 22, 198, 293,
244 139, 296, 315, 275, 305, 102, 273, 88, 113, 228,
245 60, 113, 279, 65, 317, 60, 182, 254, 325, 101,
246 62, 218, 185, 130, 75, 113, 113, 316, 376, 221,
247 113, 90, 187, 15, 146, 148, 123, 124, 64, 196,
248 106, 69, 75, 138, 18, 107, 121, 323, 162, 163,
249 202, 15, 342, 92, 184, 151, 152, 153, 154, 394,
250 113, 108, 18, 343, 186, 39, 344, 183, 255, 216,
251 159, 117, 185, 159, 126, 109, 75, 121, 114, 60,
252 349, 26, 26, 39, 62, 16, 341, 159, 159, 212,
253 213, 297, 159, 203, 204, 205, 206, 207, 208, 181,
254 252, 115, 64, 16, 184, 116, 215, 223, 26, 318,
255 65, 67, 131, 320, 133, 192, 322, 155, 351, 348,
256 188, 17, 159, 4, 5, 6, 189, 7, 8, 363,
257 201, 230, 231, 233, 234, 235, 236, 237, 66, 17,
258 190, 26, 373, 374, 26, 26, 26, 20, 26, 191,
259 26, 26, 193, 26, 9, 258, 260, 261, 262, 263,
260 264, 265, 266, 268, 26, 20, 38, 26, 21, 40,
261 328, 195, 26, 213, 388, 199, 332, 280, 231, 209,
262 231, 229, 290, 210, 38, 60, 217, 15, 319, 299,
263 321, 301, 303, 23, 24, 21, 295, 219, 224, 26,
264 307, 21, 180, 226, 21, 21, 21, 345, 21, 350,
265 21, 21, 65, 21, 272, 96, 162, 163, 121, 298,
266 97, 162, 163, 270, 121, 304, 310, 21, 312, 313,
ecb2f335 267 306, 26, 21, 26, 26, 253, 1, 162, 163, 113,
891be019 268 113, 113, 113, 162, 163, 308, 113, 314, 113, 367,
269 163, 110, 162, 163, 60, 75, 75, 75, 75, 21,
270 162, 163, 75, 162, 163, 381, 330, 113, 113, 44,
271 113, 113, 44, 44, 44, 324, 44, 338, 44, 44,
272 334, 44, 346, 75, 75, 335, 162, 163, 213, 336,
273 337, 21, 339, 21, 21, 44, 352, 326, 353, 326,
274 44, 159, 159, 159, 159, 333, 162, 163, 159, 340,
275 159, 162, 163, 354, 280, 355, 159, 159, 159, 159,
276 356, 277, 162, 163, 276, 162, 163, 44, 358, 159,
277 159, 366, 159, 159, 159, 159, 159, 159, 159, 162,
278 163, 159, 368, 170, 159, 159, 159, 162, 163, 369,
279 162, 163, 377, 71, 162, 163, 379, 162, 163, 44,
280 162, 163, 44, 383, 26, 26, 26, 26, 26, 26,
281 390, 26, 26, 26, 26, 26, 26, 26, 26, 26,
282 26, 26, 26, 26, 357, 391, 53, 26, 26, 184,
283 26, 26, 26, 26, 26, 162, 163, 162, 163, 26,
284 26, 26, 26, 26, 26, 26, 170, 62, 177, 37,
285 26, 178, 179, 180, 162, 163, 162, 163, 35, 26,
286 185, 26, 26, 182, 21, 21, 21, 21, 21, 21,
287 40, 21, 21, 21, 21, 21, 21, 21, 21, 21,
288 21, 21, 21, 21, 37, 35, 167, 21, 21, 105,
289 21, 21, 21, 21, 21, 135, 162, 163, 136, 21,
290 21, 21, 21, 21, 21, 21, 176, 80, 232, 177,
291 21, 385, 178, 179, 180, 287, 365, 94, 0, 21,
292 0, 21, 21, 176, 329, 166, 177, 0, 166, 178,
293 179, 180, 44, 44, 44, 44, 44, 44, 0, 44,
294 44, 44, 166, 166, 0, 44, 0, 166, 44, 44,
295 44, 44, 0, 167, 168, 44, 44, 0, 44, 44,
296 44, 44, 44, 0, 0, 274, 0, 44, 44, 44,
297 44, 44, 44, 176, 0, 0, 177, 166, 44, 178,
298 179, 180, 0, 0, 0, 0, 0, 44, 194, 44,
299 44, 194, 194, 194, 0, 194, 173, 194, 194, 173,
300 194, 164, 0, 387, 0, 0, 0, 165, 166, 167,
301 168, 0, 0, 173, 173, 0, 0, 0, 173, 194,
302 0, 0, 0, 169, 171, 172, 173, 174, 175, 176,
303 0, 0, 177, 0, 0, 178, 179, 180, 157, 158,
304 159, 160, 0, 0, 0, 161, 194, 0, 173, 195,
305 0, 0, 195, 195, 195, 0, 195, 144, 195, 195,
306 144, 195, 0, 0, 164, 0, 162, 163, 0, 0,
307 165, 166, 167, 168, 144, 144, 0, 0, 0, 144,
308 195, 194, 0, 0, 0, 0, 169, 171, 172, 173,
309 174, 175, 176, 0, 0, 177, 0, 0, 178, 179,
310 180, 0, 0, 0, 0, 0, 4, 5, 6, 144,
311 7, 8, 55, 167, 168, 65, 67, 53, 0, 60,
312 0, 68, 64, 0, 63, 0, 371, 372, 0, 0,
313 0, 378, 175, 176, 0, 0, 177, 9, 62, 178,
314 179, 180, 195, 66, 4, 5, 6, 386, 7, 8,
315 0, 389, 0, 0, 0, 0, 166, 166, 166, 166,
316 0, 0, 0, 166, 0, 166, 0, 0, 0, 0,
317 61, 166, 166, 166, 166, 9, 0, 0, 0, 0,
318 0, 0, 0, 0, 166, 166, 0, 166, 166, 166,
319 166, 166, 166, 166, 0, 0, 166, 0, 0, 166,
320 166, 166, 26, 0, 0, 56, 0, 0, 0, 0,
321 0, 0, 194, 194, 194, 194, 194, 0, 194, 194,
322 194, 0, 0, 0, 194, 0, 0, 173, 173, 173,
323 173, 0, 0, 0, 173, 194, 173, 194, 194, 194,
324 194, 194, 173, 173, 173, 173, 194, 194, 194, 194,
325 194, 194, 0, 0, 0, 173, 173, 194, 173, 173,
326 173, 173, 173, 173, 173, 0, 194, 173, 194, 194,
327 173, 173, 173, 195, 195, 195, 195, 195, 0, 195,
328 195, 195, 0, 0, 0, 195, 0, 0, 144, 144,
329 144, 144, 0, 0, 0, 144, 195, 144, 195, 195,
330 195, 195, 195, 144, 144, 144, 144, 195, 195, 195,
331 195, 195, 195, 0, 0, 0, 144, 144, 195, 144,
332 144, 144, 144, 144, 144, 144, 0, 195, 144, 195,
333 195, 144, 144, 144, 0, 25, 27, 28, 29, 30,
334 31, 170, 32, 33, 34, 0, 0, 0, 35, 0,
335 0, 36, 37, 38, 39, 0, 0, 0, 40, 41,
336 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
337 47, 48, 49, 50, 51, 52, 0, 0, 0, 44,
338 0, 54, 44, 44, 44, 0, 44, 0, 44, 44,
339 57, 44, 58, 59, 0, 0, 0, 0, 360, 361,
340 362, 0, 364, 0, 0, 44, 0, 0, 0, 0,
341 44, 0, 0, 78, 0, 0, 78, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 380,
343 78, 78, 0, 0, 0, 0, 382, 44, 0, 55,
344 384, 0, 65, 67, 53, 0, 60, 0, 68, 64,
345 0, 63, 0, 392, 393, 0, 99, 99, 0, 0,
346 0, 0, 0, 0, 0, 78, 0, 0, 112, 44,
347 66, 0, 44, 0, 120, 99, 128, 0, 0, 55,
348 134, 99, 65, 67, 53, 0, 60, 0, 68, 64,
349 0, 63, 0, 99, 99, 99, 99, 61, 165, 166,
350 167, 168, 0, 0, 0, 0, 0, 0, 0, 0,
351 66, 0, 0, 0, 0, 0, 0, 0, 106, 175,
352 176, 106, 0, 177, 0, 0, 178, 179, 180, 26,
353 0, 0, 56, 0, 0, 106, 106, 61, 0, 0,
354 106, 0, 0, 55, 120, 0, 65, 67, 53, 0,
355 60, 0, 68, 64, 0, 63, 0, 0, 0, 164,
356 0, 0, 0, 0, 0, 165, 166, 167, 168, 26,
357 106, 0, 56, 0, 66, 0, 0, 0, 0, 0,
358 0, 169, 171, 172, 173, 174, 175, 176, 0, 0,
359 177, 0, 0, 178, 179, 180, 0, 0, 0, 0,
360 0, 61, 44, 44, 44, 44, 44, 44, 256, 44,
361 44, 44, 0, 0, 0, 44, 0, 0, 44, 44,
362 44, 44, 0, 0, 0, 44, 44, 0, 44, 44,
363 44, 44, 44, 26, 0, 288, 56, 44, 44, 44,
364 44, 44, 44, 0, 78, 78, 78, 78, 44, 0,
365 0, 78, 0, 0, 0, 0, 0, 44, 0, 44,
366 44, 0, 0, 119, 28, 29, 30, 31, 97, 32,
367 33, 34, 78, 78, 0, 35, 0, 0, 0, 0,
368 0, 0, 0, 0, 0, 0, 41, 0, 42, 43,
09bef843 369 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
891be019 370 50, 51, 52, 27, 28, 29, 30, 31, 54, 32,
371 33, 34, 0, 0, 0, 35, 0, 57, 0, 58,
372 59, 0, 309, 0, 0, 0, 41, 170, 42, 43,
373 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
374 50, 51, 52, 0, 0, 0, 0, 0, 54, 106,
375 106, 106, 106, 0, 0, 0, 106, 57, 106, 58,
376 59, 0, 0, 0, 106, 106, 0, 125, 28, 29,
377 30, 31, 0, 32, 33, 34, 0, 106, 106, 35,
378 106, 106, 106, 106, 106, 106, 0, 0, 0, 0,
379 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
380 0, 47, 48, 49, 50, 51, 52, 0, 0, 0,
381 55, 0, 54, 65, 67, 53, 0, 60, 0, 68,
382 64, 57, 63, 58, 59, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 129, 0, 0, 0,
384 0, 66, 0, 0, 0, 165, 166, 167, 168, 0,
385 55, 0, 0, 65, 67, 53, 0, 60, 145, 68,
386 64, 0, 63, 172, 173, 174, 175, 176, 61, 0,
387 177, 0, 0, 178, 179, 180, 0, 0, 0, 0,
388 0, 66, 0, 0, 0, 165, 166, 167, 168, 0,
389 55, 0, 0, 65, 67, 53, 0, 60, 0, 68,
390 64, 0, 63, 56, 173, 174, 175, 176, 61, 0,
391 177, 0, 0, 178, 179, 180, 0, 0, 0, 0,
392 0, 66, 0, 0, 0, 0, 0, 0, 0, 0,
393 55, 0, 0, 65, 67, 53, 0, 60, 211, 68,
394 64, 0, 63, 56, 0, 164, 0, 0, 61, 0,
395 147, 165, 166, 167, 168, 0, 0, 0, 0, 0,
396 0, 66, 0, 0, 0, 0, 0, 169, 171, 172,
397 173, 174, 175, 176, 0, 0, 177, 0, 0, 178,
398 179, 180, 0, 56, 165, 166, 167, 168, 61, 0,
399 55, 0, 0, 65, 67, 53, 0, 60, 222, 68,
400 64, 0, 63, 0, 174, 175, 176, 0, 0, 177,
401 0, 0, 178, 179, 180, 0, 0, 0, 0, 0,
402 0, 66, 165, 56, 167, 168, 0, 0, 0, 0,
403 0, 0, 0, 0, 27, 28, 29, 30, 31, 0,
404 32, 33, 34, 175, 176, 0, 35, 177, 61, 0,
405 178, 179, 180, 0, 0, 0, 0, 41, 0, 42,
406 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
407 49, 50, 51, 52, 27, 28, 29, 30, 31, 54,
408 32, 33, 34, 56, 0, 0, 35, 0, 57, 0,
409 58, 59, 0, 0, 0, 0, 0, 41, 0, 42,
410 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
411 49, 50, 51, 52, 27, 28, 29, 30, 31, 54,
412 32, 33, 34, 0, 0, 0, 35, 0, 57, 0,
413 58, 59, 0, 0, 0, 0, 0, 41, 0, 42,
414 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
415 49, 50, 51, 52, 27, 28, 29, 30, 31, 54,
416 32, 33, 34, 0, 0, 0, 35, 0, 57, 0,
417 58, 59, 0, 0, 0, 0, 0, 41, 0, 42,
418 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
419 49, 50, 51, 52, 0, 0, 0, 55, 0, 54,
420 65, 67, 53, 0, 60, 259, 68, 64, 57, 63,
421 58, 59, 0, 0, 27, 28, 29, 30, 31, 0,
422 32, 33, 34, 0, 0, 0, 35, 0, 66, 0,
423 0, 0, 0, 0, 0, 0, 0, 41, 0, 42,
424 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
425 49, 50, 51, 52, 0, 61, 0, 55, 0, 54,
426 65, 67, 53, 0, 60, 267, 68, 64, 57, 63,
427 58, 59, 0, 0, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
429 56, 0, 0, 0, 0, 0, 108, 0, 0, 108,
fad39ff1 430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 431 0, 0, 0, 108, 108, 61, 55, 0, 108, 65,
432 67, 53, 0, 60, 0, 68, 64, 0, 63, 0,
433 0, 0, 0, 0, 165, 166, 167, 168, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 66, 108, 0,
435 56, 171, 172, 173, 174, 175, 176, 0, 0, 177,
436 0, 0, 178, 179, 180, 0, 0, 0, 0, 0,
437 0, 0, 0, 0, 61, 0, 55, 0, 0, 65,
438 67, 53, 0, 60, 300, 68, 64, 0, 63, 0,
fad39ff1 439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
09bef843 440 0, 0, 0, 0, 0, 0, 0, 66, 0, 56,
fad39ff1 441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 442 0, 27, 28, 29, 30, 31, 0, 32, 33, 34,
443 0, 0, 0, 35, 61, 0, 0, 0, 0, 0,
444 0, 0, 0, 0, 41, 0, 42, 43, 44, 45,
445 46, 0, 0, 0, 0, 47, 48, 49, 50, 51,
446 52, 74, 0, 0, 74, 0, 54, 0, 0, 56,
447 0, 0, 0, 0, 0, 57, 0, 58, 59, 74,
448 0, 27, 28, 29, 30, 31, 0, 32, 33, 34,
449 0, 55, 0, 35, 65, 67, 53, 0, 60, 302,
450 68, 64, 0, 63, 41, 0, 42, 43, 44, 45,
451 46, 0, 0, 74, 0, 47, 48, 49, 50, 51,
452 52, 0, 66, 0, 0, 0, 54, 108, 108, 108,
453 108, 0, 0, 0, 108, 57, 108, 58, 59, 25,
454 27, 28, 29, 30, 31, 0, 32, 33, 34, 61,
455 0, 0, 35, 0, 0, 108, 108, 0, 108, 108,
456 108, 108, 108, 41, 0, 42, 43, 44, 45, 46,
09bef843 457 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
891be019 458 0, 0, 0, 55, 56, 54, 65, 67, 53, 0,
459 60, 311, 68, 64, 57, 63, 58, 59, 0, 0,
09bef843 460 27, 28, 29, 30, 31, 0, 32, 33, 34, 0,
461 0, 0, 35, 0, 66, 0, 0, 0, 0, 0,
462 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
463 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
464 0, 61, 0, 55, 0, 54, 65, 67, 53, 0,
891be019 465 60, 0, 68, 64, 57, 63, 58, 59, 0, 0,
fad39ff1 466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
09bef843 467 0, 0, 0, 0, 66, 0, 56, 0, 0, 0,
bbce6d69 468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 469 0, 0, 74, 74, 74, 74, 0, 0, 0, 74,
470 0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
471 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
472 74, 32, 33, 34, 0, 0, 0, 35, 0, 0,
473 0, 0, 0, 0, 0, 0, 56, 0, 41, 0,
474 42, 43, 44, 45, 46, 0, 183, 0, 0, 47,
475 48, 49, 50, 51, 52, 0, 0, 0, 0, 0,
476 54, 0, 0, 183, 183, 0, 0, 0, 183, 57,
477 0, 58, 59, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 0, 0, 0, 0, 0, 0, 0, 0, 183, 0,
09bef843 480 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
481 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
891be019 482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
483 41, 0, 42, 43, 44, 45, 46, 162, 0, 0,
484 162, 47, 48, 49, 50, 51, 52, 0, 0, 0,
485 0, 0, 54, 0, 162, 162, 0, 0, 0, 162,
09bef843 486 0, 57, 0, 58, 59, 0, 0, 27, 28, 29,
891be019 487 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
488 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
09bef843 489 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
891be019 490 0, 47, 48, 49, 50, 51, 52, 103, 0, 0,
491 170, 0, 54, 0, 0, 113, 0, 0, 0, 118,
492 0, 57, 127, 58, 59, 132, 0, 0, 0, 140,
493 141, 142, 143, 144, 0, 0, 0, 149, 150, 182,
494 0, 0, 182, 0, 0, 0, 0, 0, 0, 0,
495 0, 0, 0, 0, 0, 0, 182, 182, 0, 0,
496 0, 182, 0, 0, 0, 0, 0, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 200, 183, 183, 183,
498 183, 0, 0, 0, 183, 149, 183, 0, 149, 0,
499 0, 182, 183, 183, 183, 183, 0, 0, 0, 0,
500 0, 0, 149, 149, 0, 183, 183, 149, 183, 183,
501 183, 183, 183, 183, 183, 0, 0, 183, 0, 0,
502 183, 183, 183, 0, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 149, 238, 239,
504 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
505 250, 251, 0, 0, 0, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 269, 0, 0, 162, 162,
507 162, 162, 0, 144, 0, 162, 144, 162, 0, 0,
508 0, 0, 0, 162, 162, 162, 162, 0, 0, 0,
509 144, 144, 0, 0, 0, 144, 162, 162, 0, 162,
510 162, 162, 162, 162, 162, 162, 0, 0, 162, 0,
511 0, 162, 162, 162, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 147, 0, 144, 147, 0, 164, 0,
513 0, 0, 0, 0, 165, 166, 167, 168, 0, 0,
514 147, 147, 0, 0, 0, 147, 0, 0, 0, 0,
515 331, 171, 172, 173, 174, 175, 176, 0, 0, 177,
516 0, 0, 178, 179, 180, 0, 0, 0, 0, 0,
517 182, 182, 182, 182, 0, 147, 0, 182, 145, 182,
518 0, 145, 0, 347, 0, 182, 182, 182, 182, 0,
519 0, 0, 0, 0, 0, 145, 145, 0, 182, 182,
520 145, 182, 182, 182, 182, 182, 182, 182, 0, 0,
521 182, 0, 0, 182, 182, 182, 149, 149, 149, 149,
522 0, 0, 0, 149, 155, 149, 0, 155, 0, 0,
523 145, 149, 149, 149, 149, 0, 0, 0, 0, 0,
524 0, 155, 155, 0, 149, 149, 155, 149, 149, 149,
525 149, 149, 149, 149, 0, 0, 149, 0, 0, 149,
526 149, 149, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 173, 0, 0, 173, 0, 155, 0, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 0, 173, 173,
529 0, 0, 0, 173, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 144, 144, 144, 144, 0, 0,
531 0, 144, 0, 144, 0, 0, 0, 0, 0, 144,
532 144, 144, 144, 173, 0, 0, 0, 0, 176, 0,
533 0, 176, 144, 144, 0, 144, 144, 144, 144, 144,
534 144, 144, 0, 0, 144, 176, 176, 144, 144, 144,
535 176, 0, 0, 0, 147, 147, 147, 147, 0, 0,
536 0, 147, 0, 147, 0, 0, 0, 0, 0, 147,
537 147, 147, 147, 0, 0, 0, 0, 0, 143, 0,
538 176, 143, 147, 147, 0, 147, 147, 147, 147, 147,
539 147, 147, 0, 0, 147, 143, 143, 147, 147, 147,
540 143, 0, 0, 0, 0, 0, 0, 0, 0, 145,
541 145, 145, 145, 0, 0, 0, 145, 0, 145, 0,
542 0, 0, 0, 0, 145, 145, 145, 145, 0, 0,
543 143, 0, 0, 0, 0, 0, 0, 145, 145, 0,
544 145, 145, 145, 145, 145, 145, 145, 0, 0, 145,
545 0, 0, 145, 145, 145, 155, 155, 155, 155, 0,
546 76, 0, 155, 76, 155, 0, 0, 0, 0, 0,
547 155, 155, 155, 155, 0, 0, 0, 76, 76, 0,
548 0, 0, 76, 155, 155, 0, 155, 155, 155, 155,
549 155, 155, 155, 0, 0, 155, 0, 0, 155, 155,
550 155, 0, 173, 173, 173, 173, 0, 0, 0, 173,
551 0, 173, 76, 0, 0, 0, 0, 173, 173, 173,
552 173, 0, 0, 0, 0, 0, 66, 0, 0, 66,
553 173, 173, 0, 173, 173, 173, 173, 173, 173, 173,
554 0, 0, 173, 66, 66, 173, 173, 173, 66, 0,
555 0, 0, 0, 0, 0, 0, 0, 0, 0, 176,
556 176, 176, 176, 0, 0, 0, 176, 0, 176, 0,
557 0, 0, 0, 0, 176, 176, 176, 176, 66, 0,
558 0, 0, 0, 142, 0, 0, 142, 176, 176, 0,
559 176, 176, 176, 176, 176, 176, 176, 0, 0, 176,
560 142, 142, 176, 176, 176, 142, 0, 0, 0, 143,
561 143, 143, 143, 0, 0, 0, 143, 0, 143, 0,
562 0, 0, 0, 0, 143, 143, 143, 143, 0, 0,
563 0, 0, 0, 82, 0, 142, 82, 143, 143, 0,
564 143, 143, 143, 143, 143, 143, 143, 0, 0, 143,
565 82, 82, 143, 143, 143, 82, 0, 0, 0, 0,
bbce6d69 566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 568 0, 0, 0, 0, 0, 82, 160, 0, 0, 160,
569 0, 76, 76, 76, 76, 161, 0, 0, 76, 0,
570 76, 0, 0, 160, 160, 0, 76, 76, 76, 76,
571 0, 0, 161, 161, 0, 0, 0, 161, 0, 76,
572 76, 0, 76, 76, 76, 76, 76, 76, 76, 0,
573 0, 76, 0, 0, 76, 76, 76, 0, 160, 0,
574 0, 0, 0, 0, 0, 0, 0, 161, 0, 0,
575 0, 0, 0, 102, 0, 0, 102, 66, 66, 66,
576 66, 79, 0, 0, 66, 0, 66, 0, 0, 0,
577 102, 102, 66, 66, 66, 66, 0, 0, 79, 79,
578 0, 0, 0, 79, 0, 66, 66, 0, 66, 66,
579 66, 66, 66, 66, 66, 0, 0, 66, 0, 0,
580 66, 66, 66, 0, 0, 102, 0, 0, 0, 0,
581 0, 0, 0, 79, 142, 142, 142, 142, 0, 0,
582 0, 142, 121, 142, 0, 121, 0, 0, 0, 142,
583 142, 142, 142, 0, 0, 0, 0, 0, 0, 121,
584 121, 0, 142, 142, 121, 142, 142, 142, 142, 142,
585 142, 142, 0, 0, 142, 0, 0, 142, 142, 142,
586 0, 0, 0, 0, 82, 82, 82, 82, 0, 122,
587 0, 82, 122, 82, 121, 0, 0, 0, 0, 82,
588 82, 82, 82, 0, 0, 0, 122, 122, 0, 0,
589 0, 122, 82, 82, 0, 82, 82, 82, 82, 82,
590 82, 82, 0, 0, 82, 0, 0, 82, 82, 82,
591 0, 0, 0, 0, 0, 0, 0, 160, 160, 160,
592 160, 122, 0, 0, 160, 0, 161, 161, 161, 161,
593 0, 117, 0, 161, 117, 161, 0, 0, 0, 0,
594 0, 161, 161, 161, 161, 160, 160, 0, 117, 117,
595 0, 0, 0, 117, 161, 161, 0, 161, 161, 161,
596 161, 161, 161, 161, 0, 0, 161, 0, 0, 161,
597 161, 161, 0, 0, 0, 0, 0, 0, 0, 0,
598 0, 0, 0, 117, 102, 102, 102, 102, 0, 0,
599 0, 102, 79, 79, 79, 79, 0, 118, 0, 79,
600 118, 79, 0, 0, 0, 0, 0, 79, 79, 79,
601 79, 0, 102, 102, 118, 118, 0, 0, 0, 118,
602 79, 79, 0, 79, 79, 79, 79, 79, 79, 79,
603 0, 0, 79, 0, 0, 79, 79, 79, 0, 0,
604 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
605 0, 0, 0, 121, 121, 121, 121, 0, 139, 0,
606 121, 139, 121, 0, 0, 0, 0, 0, 121, 121,
607 121, 121, 0, 0, 0, 139, 139, 0, 0, 0,
608 139, 121, 121, 0, 121, 121, 121, 121, 121, 121,
609 121, 0, 0, 121, 0, 0, 0, 0, 0, 0,
610 122, 122, 122, 122, 0, 115, 0, 122, 115, 122,
611 139, 0, 0, 0, 0, 122, 122, 122, 122, 0,
612 0, 0, 115, 115, 0, 0, 0, 115, 122, 122,
613 0, 122, 122, 122, 122, 122, 122, 122, 0, 0,
614 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
615 116, 0, 0, 116, 0, 0, 0, 115, 0, 0,
616 0, 0, 117, 117, 117, 117, 0, 116, 116, 117,
617 0, 117, 116, 0, 0, 0, 0, 117, 117, 117,
618 117, 0, 0, 0, 0, 0, 0, 0, 0, 114,
619 117, 117, 114, 117, 117, 117, 117, 117, 117, 117,
620 0, 0, 116, 0, 0, 0, 114, 114, 0, 0,
621 0, 114, 0, 0, 0, 0, 0, 0, 0, 0,
622 0, 0, 0, 0, 0, 0, 0, 0, 118, 118,
623 118, 118, 0, 103, 0, 118, 103, 118, 0, 0,
624 0, 114, 0, 118, 118, 118, 118, 0, 0, 0,
625 103, 103, 0, 0, 0, 103, 118, 118, 0, 118,
626 118, 118, 118, 118, 118, 118, 0, 0, 0, 0,
627 0, 0, 0, 0, 0, 0, 0, 104, 0, 0,
628 104, 0, 0, 0, 0, 103, 0, 0, 0, 139,
629 139, 139, 139, 0, 104, 104, 139, 0, 139, 104,
630 0, 0, 0, 0, 139, 139, 139, 139, 0, 0,
631 0, 0, 0, 0, 0, 0, 0, 139, 139, 0,
632 139, 139, 139, 139, 139, 139, 139, 0, 0, 104,
633 0, 0, 0, 0, 0, 0, 115, 115, 115, 115,
634 0, 105, 0, 115, 105, 115, 0, 0, 0, 0,
635 0, 115, 115, 115, 115, 0, 0, 0, 105, 105,
636 0, 0, 0, 105, 115, 115, 0, 115, 115, 115,
637 115, 115, 115, 115, 0, 0, 0, 0, 0, 0,
638 0, 116, 116, 116, 116, 0, 0, 0, 116, 165,
639 116, 0, 165, 105, 0, 0, 116, 116, 116, 116,
640 0, 0, 0, 0, 0, 0, 165, 165, 0, 116,
641 116, 165, 116, 116, 116, 116, 116, 116, 116, 0,
642 114, 114, 114, 114, 0, 164, 0, 114, 164, 114,
643 0, 0, 0, 0, 0, 114, 114, 114, 114, 0,
644 0, 165, 164, 164, 0, 0, 0, 164, 114, 114,
645 0, 114, 114, 114, 114, 114, 114, 114, 0, 0,
646 0, 0, 0, 0, 103, 103, 103, 103, 0, 128,
647 0, 103, 128, 103, 0, 0, 0, 164, 0, 103,
648 103, 103, 103, 0, 0, 0, 128, 128, 0, 0,
649 0, 128, 103, 103, 0, 103, 103, 103, 103, 103,
650 103, 103, 0, 0, 0, 0, 0, 0, 104, 104,
651 104, 104, 0, 141, 0, 104, 141, 104, 0, 0,
652 0, 128, 0, 104, 104, 104, 104, 0, 0, 0,
653 141, 141, 0, 0, 0, 141, 104, 104, 0, 104,
654 104, 104, 104, 104, 104, 0, 0, 0, 0, 0,
655 138, 0, 0, 138, 0, 0, 0, 0, 0, 0,
656 107, 0, 0, 107, 0, 141, 0, 138, 138, 0,
657 0, 0, 105, 105, 105, 105, 0, 107, 107, 105,
658 0, 105, 107, 0, 0, 0, 0, 105, 105, 0,
659 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
660 105, 105, 138, 105, 105, 105, 105, 105, 105, 0,
661 0, 0, 107, 0, 0, 109, 0, 0, 109, 0,
662 165, 165, 165, 165, 0, 110, 0, 165, 110, 165,
663 0, 0, 109, 109, 0, 165, 165, 109, 0, 0,
664 0, 0, 110, 110, 0, 0, 0, 110, 165, 165,
665 0, 165, 165, 165, 165, 165, 164, 164, 164, 164,
666 0, 112, 0, 164, 112, 164, 0, 109, 0, 0,
667 0, 164, 164, 0, 0, 0, 0, 110, 112, 112,
668 0, 0, 0, 112, 164, 164, 0, 164, 164, 164,
669 164, 164, 0, 0, 0, 0, 0, 0, 0, 0,
670 128, 128, 128, 128, 0, 111, 0, 128, 111, 128,
671 0, 0, 0, 112, 0, 128, 128, 0, 0, 0,
672 0, 0, 111, 111, 0, 0, 0, 111, 128, 128,
673 0, 128, 128, 128, 128, 128, 0, 77, 0, 0,
674 77, 0, 0, 0, 141, 141, 141, 141, 0, 0,
675 0, 141, 0, 141, 77, 77, 0, 111, 0, 141,
676 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
677 0, 0, 141, 141, 0, 141, 141, 141, 141, 141,
678 0, 138, 138, 138, 138, 0, 0, 0, 138, 77,
679 0, 107, 107, 107, 107, 0, 0, 0, 107, 0,
680 107, 0, 0, 0, 0, 0, 0, 107, 0, 138,
681 138, 0, 138, 0, 0, 0, 0, 0, 0, 107,
682 107, 0, 107, 107, 107, 107, 107, 0, 0, 0,
28757baa 683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 684 0, 0, 0, 0, 0, 0, 109, 109, 109, 109,
685 0, 0, 0, 109, 0, 109, 110, 110, 110, 110,
686 0, 0, 0, 110, 0, 110, 0, 0, 0, 0,
687 0, 0, 0, 0, 109, 109, 0, 109, 109, 109,
688 109, 109, 0, 0, 110, 110, 0, 110, 110, 110,
689 110, 0, 112, 112, 112, 112, 0, 0, 0, 112,
690 0, 112, 0, 0, 0, 0, 0, 0, 0, 0,
28757baa 691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 692 112, 112, 0, 112, 112, 112, 0, 0, 0, 0,
693 0, 0, 0, 0, 0, 0, 111, 111, 111, 111,
694 0, 0, 0, 111, 0, 0, 0, 0, 0, 0,
fad39ff1 695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 696 0, 0, 0, 0, 111, 111, 0, 111, 77, 77,
697 77, 77, 0, 0, 0, 77, 0, 0, 0, 0,
fad39ff1 698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891be019 699 0, 0, 0, 0, 0, 0, 77, 77,
93a17b20 700};
09bef843 701static short yycheck[] = { 15,
891be019 702 95, 36, 46, 41, 36, 40, 59, 59, 100, 208,
703 54, 41, 59, 199, 41, 40, 196, 257, 41, 93,
704 123, 44, 202, 36, 93, 59, 40, 40, 59, 29,
705 59, 40, 91, 49, 41, 58, 59, 41, 362, 131,
706 63, 257, 91, 41, 60, 61, 46, 47, 59, 94,
707 40, 15, 59, 53, 41, 40, 100, 41, 300, 301,
708 105, 59, 41, 59, 123, 65, 66, 67, 68, 393,
709 93, 40, 59, 41, 123, 41, 41, 91, 91, 123,
710 41, 45, 91, 44, 48, 40, 93, 131, 40, 123,
711 41, 123, 123, 59, 123, 41, 295, 58, 59, 115,
712 116, 44, 63, 106, 107, 108, 109, 110, 111, 123,
713 123, 40, 123, 59, 123, 40, 116, 133, 0, 59,
714 36, 37, 257, 59, 40, 89, 59, 278, 314, 59,
715 123, 41, 93, 266, 267, 268, 40, 270, 271, 338,
716 104, 157, 158, 159, 160, 161, 162, 163, 64, 59,
717 59, 33, 276, 277, 36, 37, 38, 41, 40, 44,
718 42, 43, 260, 45, 297, 181, 182, 183, 184, 185,
719 186, 187, 188, 189, 123, 59, 41, 59, 0, 41,
720 272, 257, 64, 199, 383, 40, 278, 203, 204, 40,
721 206, 155, 208, 41, 59, 298, 40, 59, 93, 215,
722 93, 217, 218, 8, 9, 257, 209, 125, 298, 91,
723 226, 33, 317, 91, 36, 37, 38, 93, 40, 93,
724 42, 43, 36, 45, 257, 257, 300, 301, 272, 41,
725 262, 300, 301, 298, 278, 125, 252, 59, 254, 255,
726 260, 123, 64, 125, 126, 258, 0, 300, 301, 272,
727 273, 274, 275, 300, 301, 91, 279, 40, 281, 93,
728 301, 296, 300, 301, 298, 272, 273, 274, 275, 91,
729 300, 301, 279, 300, 301, 370, 41, 300, 301, 33,
730 303, 304, 36, 37, 38, 260, 40, 40, 42, 43,
731 41, 45, 308, 300, 301, 41, 300, 301, 314, 41,
732 41, 123, 41, 125, 126, 59, 125, 271, 125, 273,
733 64, 272, 273, 274, 275, 279, 300, 301, 279, 59,
734 281, 300, 301, 125, 340, 125, 287, 288, 289, 290,
735 59, 41, 300, 301, 44, 300, 301, 91, 123, 300,
736 301, 41, 303, 304, 305, 306, 307, 308, 309, 300,
737 301, 312, 125, 63, 315, 316, 317, 300, 301, 41,
738 300, 301, 41, 379, 300, 301, 59, 300, 301, 123,
739 300, 301, 126, 40, 256, 257, 258, 259, 260, 261,
740 41, 263, 264, 265, 266, 267, 268, 269, 270, 271,
741 272, 273, 274, 275, 41, 41, 123, 279, 280, 41,
742 282, 283, 284, 285, 286, 300, 301, 300, 301, 291,
743 292, 293, 294, 295, 296, 297, 63, 123, 312, 41,
744 302, 315, 316, 317, 300, 301, 300, 301, 59, 311,
745 41, 313, 314, 59, 256, 257, 258, 259, 260, 261,
746 41, 263, 264, 265, 266, 267, 268, 269, 270, 271,
747 272, 273, 274, 275, 59, 41, 289, 279, 280, 35,
748 282, 283, 284, 285, 286, 52, 300, 301, 52, 291,
749 292, 293, 294, 295, 296, 297, 309, 15, 158, 312,
750 302, 379, 315, 316, 317, 206, 340, 24, -1, 311,
751 -1, 313, 314, 309, 273, 41, 312, -1, 44, 315,
752 316, 317, 256, 257, 258, 259, 260, 261, -1, 263,
753 264, 265, 58, 59, -1, 269, -1, 63, 272, 273,
754 274, 275, -1, 289, 290, 279, 280, -1, 282, 283,
755 284, 285, 286, -1, -1, 125, -1, 291, 292, 293,
756 294, 295, 296, 309, -1, -1, 312, 93, 302, 315,
757 316, 317, -1, -1, -1, -1, -1, 311, 33, 313,
758 314, 36, 37, 38, -1, 40, 41, 42, 43, 44,
759 45, 281, -1, 125, -1, -1, -1, 287, 288, 289,
760 290, -1, -1, 58, 59, -1, -1, -1, 63, 64,
761 -1, -1, -1, 303, 304, 305, 306, 307, 308, 309,
762 -1, -1, 312, -1, -1, 315, 316, 317, 272, 273,
763 274, 275, -1, -1, -1, 279, 91, -1, 93, 33,
764 -1, -1, 36, 37, 38, -1, 40, 41, 42, 43,
765 44, 45, -1, -1, 281, -1, 300, 301, -1, -1,
766 287, 288, 289, 290, 58, 59, -1, -1, -1, 63,
767 64, 126, -1, -1, -1, -1, 303, 304, 305, 306,
768 307, 308, 309, -1, -1, 312, -1, -1, 315, 316,
769 317, -1, -1, -1, -1, -1, 266, 267, 268, 93,
770 270, 271, 33, 289, 290, 36, 37, 38, -1, 40,
771 -1, 42, 43, -1, 45, -1, 359, 360, -1, -1,
772 -1, 364, 308, 309, -1, -1, 312, 297, 59, 315,
773 316, 317, 126, 64, 266, 267, 268, 380, 270, 271,
774 -1, 384, -1, -1, -1, -1, 272, 273, 274, 275,
775 -1, -1, -1, 279, -1, 281, -1, -1, -1, -1,
776 91, 287, 288, 289, 290, 297, -1, -1, -1, -1,
777 -1, -1, -1, -1, 300, 301, -1, 303, 304, 305,
09bef843 778 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
891be019 779 316, 317, 123, -1, -1, 126, -1, -1, -1, -1,
780 -1, -1, 257, 258, 259, 260, 261, -1, 263, 264,
09bef843 781 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
891be019 782 275, -1, -1, -1, 279, 280, 281, 282, 283, 284,
783 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
784 295, 296, -1, -1, -1, 300, 301, 302, 303, 304,
785 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
786 315, 316, 317, 257, 258, 259, 260, 261, -1, 263,
787 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
788 274, 275, -1, -1, -1, 279, 280, 281, 282, 283,
789 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
790 294, 295, 296, -1, -1, -1, 300, 301, 302, 303,
791 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
792 314, 315, 316, 317, -1, 256, 257, 258, 259, 260,
793 261, 63, 263, 264, 265, -1, -1, -1, 269, -1,
794 -1, 272, 273, 274, 275, -1, -1, -1, 279, 280,
795 -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
796 291, 292, 293, 294, 295, 296, -1, -1, -1, 33,
797 -1, 302, 36, 37, 38, -1, 40, -1, 42, 43,
798 311, 45, 313, 314, -1, -1, -1, -1, 335, 336,
799 337, -1, 339, -1, -1, 59, -1, -1, -1, -1,
800 64, -1, -1, 41, -1, -1, 44, -1, -1, -1,
801 -1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
802 58, 59, -1, -1, -1, -1, 373, 91, -1, 33,
803 377, -1, 36, 37, 38, -1, 40, -1, 42, 43,
804 -1, 45, -1, 390, 391, -1, 28, 29, -1, -1,
805 -1, -1, -1, -1, -1, 93, -1, -1, 40, 123,
806 64, -1, 126, -1, 46, 47, 48, -1, -1, 33,
807 52, 53, 36, 37, 38, -1, 40, -1, 42, 43,
808 -1, 45, -1, 65, 66, 67, 68, 91, 287, 288,
809 289, 290, -1, -1, -1, -1, -1, -1, -1, -1,
810 64, -1, -1, -1, -1, -1, -1, -1, 41, 308,
811 309, 44, -1, 312, -1, -1, 315, 316, 317, 123,
812 -1, -1, 126, -1, -1, 58, 59, 91, -1, -1,
813 63, -1, -1, 33, 116, -1, 36, 37, 38, -1,
814 40, -1, 42, 43, -1, 45, -1, -1, -1, 281,
815 -1, -1, -1, -1, -1, 287, 288, 289, 290, 123,
816 93, -1, 126, -1, 64, -1, -1, -1, -1, -1,
817 -1, 303, 304, 305, 306, 307, 308, 309, -1, -1,
818 312, -1, -1, 315, 316, 317, -1, -1, -1, -1,
819 -1, 91, 256, 257, 258, 259, 260, 261, 180, 263,
820 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
821 274, 275, -1, -1, -1, 279, 280, -1, 282, 283,
822 284, 285, 286, 123, -1, 207, 126, 291, 292, 293,
823 294, 295, 296, -1, 272, 273, 274, 275, 302, -1,
824 -1, 279, -1, -1, -1, -1, -1, 311, -1, 313,
825 314, -1, -1, 257, 258, 259, 260, 261, 262, 263,
826 264, 265, 300, 301, -1, 269, -1, -1, -1, -1,
827 -1, -1, -1, -1, -1, -1, 280, -1, 282, 283,
828 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
829 294, 295, 296, 257, 258, 259, 260, 261, 302, 263,
830 264, 265, -1, -1, -1, 269, -1, 311, -1, 313,
831 314, -1, 58, -1, -1, -1, 280, 63, 282, 283,
fad39ff1 832 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
891be019 833 294, 295, 296, -1, -1, -1, -1, -1, 302, 272,
834 273, 274, 275, -1, -1, -1, 279, 311, 281, 313,
835 314, -1, -1, -1, 287, 288, -1, 257, 258, 259,
836 260, 261, -1, 263, 264, 265, -1, 300, 301, 269,
837 303, 304, 305, 306, 307, 308, -1, -1, -1, -1,
838 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
839 -1, 291, 292, 293, 294, 295, 296, -1, -1, -1,
840 33, -1, 302, 36, 37, 38, -1, 40, -1, 42,
841 43, 311, 45, 313, 314, -1, -1, -1, -1, -1,
842 -1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
843 -1, 64, -1, -1, -1, 287, 288, 289, 290, -1,
844 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
845 43, -1, 45, 305, 306, 307, 308, 309, 91, -1,
846 312, -1, -1, 315, 316, 317, -1, -1, -1, -1,
847 -1, 64, -1, -1, -1, 287, 288, 289, 290, -1,
848 33, -1, -1, 36, 37, 38, -1, 40, -1, 42,
849 43, -1, 45, 126, 306, 307, 308, 309, 91, -1,
850 312, -1, -1, 315, 316, 317, -1, -1, -1, -1,
851 -1, 64, -1, -1, -1, -1, -1, -1, -1, -1,
852 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
853 43, -1, 45, 126, -1, 281, -1, -1, 91, -1,
854 93, 287, 288, 289, 290, -1, -1, -1, -1, -1,
855 -1, 64, -1, -1, -1, -1, -1, 303, 304, 305,
856 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
857 316, 317, -1, 126, 287, 288, 289, 290, 91, -1,
858 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
859 43, -1, 45, -1, 307, 308, 309, -1, -1, 312,
860 -1, -1, 315, 316, 317, -1, -1, -1, -1, -1,
861 -1, 64, 287, 126, 289, 290, -1, -1, -1, -1,
862 -1, -1, -1, -1, 257, 258, 259, 260, 261, -1,
863 263, 264, 265, 308, 309, -1, 269, 312, 91, -1,
864 315, 316, 317, -1, -1, -1, -1, 280, -1, 282,
865 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
866 293, 294, 295, 296, 257, 258, 259, 260, 261, 302,
867 263, 264, 265, 126, -1, -1, 269, -1, 311, -1,
868 313, 314, -1, -1, -1, -1, -1, 280, -1, 282,
869 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
870 293, 294, 295, 296, 257, 258, 259, 260, 261, 302,
871 263, 264, 265, -1, -1, -1, 269, -1, 311, -1,
872 313, 314, -1, -1, -1, -1, -1, 280, -1, 282,
873 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
874 293, 294, 295, 296, 257, 258, 259, 260, 261, 302,
875 263, 264, 265, -1, -1, -1, 269, -1, 311, -1,
876 313, 314, -1, -1, -1, -1, -1, 280, -1, 282,
877 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
878 293, 294, 295, 296, -1, -1, -1, 33, -1, 302,
879 36, 37, 38, -1, 40, 41, 42, 43, 311, 45,
880 313, 314, -1, -1, 257, 258, 259, 260, 261, -1,
881 263, 264, 265, -1, -1, -1, 269, -1, 64, -1,
882 -1, -1, -1, -1, -1, -1, -1, 280, -1, 282,
883 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
884 293, 294, 295, 296, -1, 91, -1, 33, -1, 302,
885 36, 37, 38, -1, 40, 41, 42, 43, 311, 45,
886 313, 314, -1, -1, -1, -1, -1, -1, -1, -1,
887 -1, -1, -1, -1, -1, -1, -1, -1, 64, -1,
888 126, -1, -1, -1, -1, -1, 41, -1, -1, 44,
fad39ff1 889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 890 -1, -1, -1, 58, 59, 91, 33, -1, 63, 36,
891 37, 38, -1, 40, -1, 42, 43, -1, 45, -1,
892 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
893 -1, -1, -1, -1, -1, -1, -1, 64, 93, -1,
894 126, 304, 305, 306, 307, 308, 309, -1, -1, 312,
895 -1, -1, 315, 316, 317, -1, -1, -1, -1, -1,
896 -1, -1, -1, -1, 91, -1, 33, -1, -1, 36,
09bef843 897 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
fad39ff1 898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
09bef843 899 -1, -1, -1, -1, -1, -1, -1, 64, -1, 126,
ecca16b0 900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 901 -1, 257, 258, 259, 260, 261, -1, 263, 264, 265,
902 -1, -1, -1, 269, 91, -1, -1, -1, -1, -1,
903 -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
904 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
905 296, 41, -1, -1, 44, -1, 302, -1, -1, 126,
906 -1, -1, -1, -1, -1, 311, -1, 313, 314, 59,
907 -1, 257, 258, 259, 260, 261, -1, 263, 264, 265,
908 -1, 33, -1, 269, 36, 37, 38, -1, 40, 41,
909 42, 43, -1, 45, 280, -1, 282, 283, 284, 285,
910 286, -1, -1, 93, -1, 291, 292, 293, 294, 295,
911 296, -1, 64, -1, -1, -1, 302, 272, 273, 274,
912 275, -1, -1, -1, 279, 311, 281, 313, 314, 256,
913 257, 258, 259, 260, 261, -1, 263, 264, 265, 91,
914 -1, -1, 269, -1, -1, 300, 301, -1, 303, 304,
915 305, 306, 307, 280, -1, 282, 283, 284, 285, 286,
09bef843 916 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
891be019 917 -1, -1, -1, 33, 126, 302, 36, 37, 38, -1,
09bef843 918 40, 41, 42, 43, 311, 45, 313, 314, -1, -1,
919 257, 258, 259, 260, 261, -1, 263, 264, 265, -1,
920 -1, -1, 269, -1, 64, -1, -1, -1, -1, -1,
921 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
922 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
923 -1, 91, -1, 33, -1, 302, 36, 37, 38, -1,
891be019 924 40, -1, 42, 43, 311, 45, 313, 314, -1, -1,
fad39ff1 925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
09bef843 926 -1, -1, -1, -1, 64, -1, 126, -1, -1, -1,
fad39ff1 927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 928 -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
929 -1, 91, -1, -1, -1, -1, -1, -1, -1, -1,
930 -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
931 300, 263, 264, 265, -1, -1, -1, 269, -1, -1,
932 -1, -1, -1, -1, -1, -1, 126, -1, 280, -1,
933 282, 283, 284, 285, 286, -1, 41, -1, -1, 291,
934 292, 293, 294, 295, 296, -1, -1, -1, -1, -1,
935 302, -1, -1, 58, 59, -1, -1, -1, 63, 311,
936 -1, 313, 314, -1, -1, -1, -1, -1, -1, -1,
937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
938 -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
09bef843 939 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
940 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
891be019 941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
942 280, -1, 282, 283, 284, 285, 286, 41, -1, -1,
943 44, 291, 292, 293, 294, 295, 296, -1, -1, -1,
944 -1, -1, 302, -1, 58, 59, -1, -1, -1, 63,
09bef843 945 -1, 311, -1, 313, 314, -1, -1, 257, 258, 259,
891be019 946 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
947 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
09bef843 948 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
891be019 949 -1, 291, 292, 293, 294, 295, 296, 33, -1, -1,
950 63, -1, 302, -1, -1, 41, -1, -1, -1, 45,
951 -1, 311, 48, 313, 314, 51, -1, -1, -1, 55,
952 56, 57, 58, 59, -1, -1, -1, 63, 64, 41,
953 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
954 -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
955 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
956 -1, -1, -1, -1, -1, -1, 102, 272, 273, 274,
957 275, -1, -1, -1, 279, 41, 281, -1, 44, -1,
958 -1, 93, 287, 288, 289, 290, -1, -1, -1, -1,
959 -1, -1, 58, 59, -1, 300, 301, 63, 303, 304,
960 305, 306, 307, 308, 309, -1, -1, 312, -1, -1,
961 315, 316, 317, -1, -1, -1, -1, -1, -1, -1,
962 -1, -1, -1, -1, -1, -1, -1, 93, 164, 165,
963 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
964 176, 177, -1, -1, -1, -1, -1, -1, -1, -1,
965 -1, -1, -1, -1, -1, 191, -1, -1, 272, 273,
966 274, 275, -1, 41, -1, 279, 44, 281, -1, -1,
967 -1, -1, -1, 287, 288, 289, 290, -1, -1, -1,
968 58, 59, -1, -1, -1, 63, 300, 301, -1, 303,
969 304, 305, 306, 307, 308, 309, -1, -1, 312, -1,
970 -1, 315, 316, 317, -1, -1, -1, -1, -1, -1,
971 -1, -1, -1, 41, -1, 93, 44, -1, 281, -1,
972 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
973 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
974 276, 304, 305, 306, 307, 308, 309, -1, -1, 312,
975 -1, -1, 315, 316, 317, -1, -1, -1, -1, -1,
976 272, 273, 274, 275, -1, 93, -1, 279, 41, 281,
977 -1, 44, -1, 309, -1, 287, 288, 289, 290, -1,
978 -1, -1, -1, -1, -1, 58, 59, -1, 300, 301,
979 63, 303, 304, 305, 306, 307, 308, 309, -1, -1,
980 312, -1, -1, 315, 316, 317, 272, 273, 274, 275,
981 -1, -1, -1, 279, 41, 281, -1, 44, -1, -1,
982 93, 287, 288, 289, 290, -1, -1, -1, -1, -1,
983 -1, 58, 59, -1, 300, 301, 63, 303, 304, 305,
09bef843 984 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
985 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 986 -1, 41, -1, -1, 44, -1, 93, -1, -1, -1,
987 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59,
988 -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
fad39ff1 989 -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
990 -1, 279, -1, 281, -1, -1, -1, -1, -1, 287,
891be019 991 288, 289, 290, 93, -1, -1, -1, -1, 41, -1,
992 -1, 44, 300, 301, -1, 303, 304, 305, 306, 307,
993 308, 309, -1, -1, 312, 58, 59, 315, 316, 317,
994 63, -1, -1, -1, 272, 273, 274, 275, -1, -1,
995 -1, 279, -1, 281, -1, -1, -1, -1, -1, 287,
996 288, 289, 290, -1, -1, -1, -1, -1, 41, -1,
997 93, 44, 300, 301, -1, 303, 304, 305, 306, 307,
998 308, 309, -1, -1, 312, 58, 59, 315, 316, 317,
999 63, -1, -1, -1, -1, -1, -1, -1, -1, 272,
1000 273, 274, 275, -1, -1, -1, 279, -1, 281, -1,
1001 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
1002 93, -1, -1, -1, -1, -1, -1, 300, 301, -1,
1003 303, 304, 305, 306, 307, 308, 309, -1, -1, 312,
1004 -1, -1, 315, 316, 317, 272, 273, 274, 275, -1,
1005 41, -1, 279, 44, 281, -1, -1, -1, -1, -1,
1006 287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
1007 -1, -1, 63, 300, 301, -1, 303, 304, 305, 306,
1008 307, 308, 309, -1, -1, 312, -1, -1, 315, 316,
1009 317, -1, 272, 273, 274, 275, -1, -1, -1, 279,
1010 -1, 281, 93, -1, -1, -1, -1, 287, 288, 289,
1011 290, -1, -1, -1, -1, -1, 41, -1, -1, 44,
09bef843 1012 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
891be019 1013 -1, -1, 312, 58, 59, 315, 316, 317, 63, -1,
1014 -1, -1, -1, -1, -1, -1, -1, -1, -1, 272,
1015 273, 274, 275, -1, -1, -1, 279, -1, 281, -1,
1016 -1, -1, -1, -1, 287, 288, 289, 290, 93, -1,
1017 -1, -1, -1, 41, -1, -1, 44, 300, 301, -1,
1018 303, 304, 305, 306, 307, 308, 309, -1, -1, 312,
1019 58, 59, 315, 316, 317, 63, -1, -1, -1, 272,
1020 273, 274, 275, -1, -1, -1, 279, -1, 281, -1,
1021 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
1022 -1, -1, -1, 41, -1, 93, 44, 300, 301, -1,
1023 303, 304, 305, 306, 307, 308, 309, -1, -1, 312,
1024 58, 59, 315, 316, 317, 63, -1, -1, -1, -1,
fad39ff1 1025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
b1524f17 1026 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 1027 -1, -1, -1, -1, -1, 93, 41, -1, -1, 44,
1028 -1, 272, 273, 274, 275, 41, -1, -1, 279, -1,
1029 281, -1, -1, 58, 59, -1, 287, 288, 289, 290,
1030 -1, -1, 58, 59, -1, -1, -1, 63, -1, 300,
1031 301, -1, 303, 304, 305, 306, 307, 308, 309, -1,
1032 -1, 312, -1, -1, 315, 316, 317, -1, 93, -1,
1033 -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
1034 -1, -1, -1, 41, -1, -1, 44, 272, 273, 274,
1035 275, 41, -1, -1, 279, -1, 281, -1, -1, -1,
1036 58, 59, 287, 288, 289, 290, -1, -1, 58, 59,
1037 -1, -1, -1, 63, -1, 300, 301, -1, 303, 304,
1038 305, 306, 307, 308, 309, -1, -1, 312, -1, -1,
1039 315, 316, 317, -1, -1, 93, -1, -1, -1, -1,
1040 -1, -1, -1, 93, 272, 273, 274, 275, -1, -1,
1041 -1, 279, 41, 281, -1, 44, -1, -1, -1, 287,
1042 288, 289, 290, -1, -1, -1, -1, -1, -1, 58,
1043 59, -1, 300, 301, 63, 303, 304, 305, 306, 307,
1044 308, 309, -1, -1, 312, -1, -1, 315, 316, 317,
1045 -1, -1, -1, -1, 272, 273, 274, 275, -1, 41,
1046 -1, 279, 44, 281, 93, -1, -1, -1, -1, 287,
1047 288, 289, 290, -1, -1, -1, 58, 59, -1, -1,
1048 -1, 63, 300, 301, -1, 303, 304, 305, 306, 307,
1049 308, 309, -1, -1, 312, -1, -1, 315, 316, 317,
1050 -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
1051 275, 93, -1, -1, 279, -1, 272, 273, 274, 275,
1052 -1, 41, -1, 279, 44, 281, -1, -1, -1, -1,
1053 -1, 287, 288, 289, 290, 300, 301, -1, 58, 59,
1054 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305,
1055 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
1056 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
1057 -1, -1, -1, 93, 272, 273, 274, 275, -1, -1,
1058 -1, 279, 272, 273, 274, 275, -1, 41, -1, 279,
09bef843 1059 44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
891be019 1060 290, -1, 300, 301, 58, 59, -1, -1, -1, 63,
09bef843 1061 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
891be019 1062 -1, -1, 312, -1, -1, 315, 316, 317, -1, -1,
1063 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
1064 -1, -1, -1, 272, 273, 274, 275, -1, 41, -1,
09bef843 1065 279, 44, 281, -1, -1, -1, -1, -1, 287, 288,
891be019 1066 289, 290, -1, -1, -1, 58, 59, -1, -1, -1,
09bef843 1067 63, 300, 301, -1, 303, 304, 305, 306, 307, 308,
891be019 1068 309, -1, -1, 312, -1, -1, -1, -1, -1, -1,
09bef843 1069 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
891be019 1070 93, -1, -1, -1, -1, 287, 288, 289, 290, -1,
1071 -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
1072 -1, 303, 304, 305, 306, 307, 308, 309, -1, -1,
1073 312, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1074 41, -1, -1, 44, -1, -1, -1, 93, -1, -1,
1075 -1, -1, 272, 273, 274, 275, -1, 58, 59, 279,
1076 -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
1077 290, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1078 300, 301, 44, 303, 304, 305, 306, 307, 308, 309,
1079 -1, -1, 93, -1, -1, -1, 58, 59, -1, -1,
1080 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
1081 -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
1082 274, 275, -1, 41, -1, 279, 44, 281, -1, -1,
1083 -1, 93, -1, 287, 288, 289, 290, -1, -1, -1,
1084 58, 59, -1, -1, -1, 63, 300, 301, -1, 303,
1085 304, 305, 306, 307, 308, 309, -1, -1, -1, -1,
1086 -1, -1, -1, -1, -1, -1, -1, 41, -1, -1,
1087 44, -1, -1, -1, -1, 93, -1, -1, -1, 272,
1088 273, 274, 275, -1, 58, 59, 279, -1, 281, 63,
1089 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1,
09bef843 1090 -1, -1, -1, -1, -1, -1, -1, 300, 301, -1,
891be019 1091 303, 304, 305, 306, 307, 308, 309, -1, -1, 93,
1092 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
1093 -1, 41, -1, 279, 44, 281, -1, -1, -1, -1,
1094 -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
1095 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305,
1096 306, 307, 308, 309, -1, -1, -1, -1, -1, -1,
1097 -1, 272, 273, 274, 275, -1, -1, -1, 279, 41,
1098 281, -1, 44, 93, -1, -1, 287, 288, 289, 290,
1099 -1, -1, -1, -1, -1, -1, 58, 59, -1, 300,
1100 301, 63, 303, 304, 305, 306, 307, 308, 309, -1,
1101 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
1102 -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
1103 -1, 93, 58, 59, -1, -1, -1, 63, 300, 301,
1104 -1, 303, 304, 305, 306, 307, 308, 309, -1, -1,
1105 -1, -1, -1, -1, 272, 273, 274, 275, -1, 41,
1106 -1, 279, 44, 281, -1, -1, -1, 93, -1, 287,
1107 288, 289, 290, -1, -1, -1, 58, 59, -1, -1,
1108 -1, 63, 300, 301, -1, 303, 304, 305, 306, 307,
1109 308, 309, -1, -1, -1, -1, -1, -1, 272, 273,
1110 274, 275, -1, 41, -1, 279, 44, 281, -1, -1,
1111 -1, 93, -1, 287, 288, 289, 290, -1, -1, -1,
1112 58, 59, -1, -1, -1, 63, 300, 301, -1, 303,
1113 304, 305, 306, 307, 308, -1, -1, -1, -1, -1,
1114 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
1115 41, -1, -1, 44, -1, 93, -1, 58, 59, -1,
1116 -1, -1, 272, 273, 274, 275, -1, 58, 59, 279,
1117 -1, 281, 63, -1, -1, -1, -1, 287, 288, -1,
1118 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1119 300, 301, 93, 303, 304, 305, 306, 307, 308, -1,
1120 -1, -1, 93, -1, -1, 41, -1, -1, 44, -1,
1121 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
1122 -1, -1, 58, 59, -1, 287, 288, 63, -1, -1,
1123 -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
1124 -1, 303, 304, 305, 306, 307, 272, 273, 274, 275,
1125 -1, 41, -1, 279, 44, 281, -1, 93, -1, -1,
1126 -1, 287, 288, -1, -1, -1, -1, 93, 58, 59,
1127 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305,
09bef843 1128 306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 1129 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
1130 -1, -1, -1, 93, -1, 287, 288, -1, -1, -1,
1131 -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
1132 -1, 303, 304, 305, 306, 307, -1, 41, -1, -1,
1133 44, -1, -1, -1, 272, 273, 274, 275, -1, -1,
1134 -1, 279, -1, 281, 58, 59, -1, 93, -1, 287,
1135 288, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1136 -1, -1, 300, 301, -1, 303, 304, 305, 306, 307,
1137 -1, 272, 273, 274, 275, -1, -1, -1, 279, 93,
1138 -1, 272, 273, 274, 275, -1, -1, -1, 279, -1,
1139 281, -1, -1, -1, -1, -1, -1, 288, -1, 300,
1140 301, -1, 303, -1, -1, -1, -1, -1, -1, 300,
1141 301, -1, 303, 304, 305, 306, 307, -1, -1, -1,
bbce6d69 1142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 1143 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
1144 -1, -1, -1, 279, -1, 281, 272, 273, 274, 275,
1145 -1, -1, -1, 279, -1, 281, -1, -1, -1, -1,
1146 -1, -1, -1, -1, 300, 301, -1, 303, 304, 305,
1147 306, 307, -1, -1, 300, 301, -1, 303, 304, 305,
1148 306, -1, 272, 273, 274, 275, -1, -1, -1, 279,
1149 -1, 281, -1, -1, -1, -1, -1, -1, -1, -1,
bbce6d69 1150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 1151 300, 301, -1, 303, 304, 305, -1, -1, -1, -1,
1152 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
1153 -1, -1, -1, 279, -1, -1, -1, -1, -1, -1,
28757baa 1154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 1155 -1, -1, -1, -1, 300, 301, -1, 303, 272, 273,
1156 274, 275, -1, -1, -1, 279, -1, -1, -1, -1,
28757baa 1157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
891be019 1158 -1, -1, -1, -1, -1, -1, 300, 301,
93a17b20 1159};
1160#define YYFINAL 1
79072805 1161#ifndef YYDEBUG
93a17b20 1162#define YYDEBUG 0
79072805 1163#endif
09bef843 1164#define YYMAXTOKEN 317
79072805 1165#if YYDEBUG
22c35a8c 1166static char *yyname[] = {
93a17b20 1167"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,
1168"'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
a0d0e21e 11690,0,0,0,0,"':'","';'",0,0,0,"'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11700,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11710,0,"'{'",0,"'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
93a17b20 11720,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11730,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
a0d0e21e 11740,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","METHOD","FUNCMETH","THING",
4633a7c4 1175"PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB",
1176"ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF",
36477c24 1177"CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP",
1178"RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY",
09bef843 1179"MYSUB","COLONATTR","PREC_LOW","OROP","ANDOP","NOTOP","ASSIGNOP","OROR",
1180"ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP",
1181"PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
79072805 1182};
22c35a8c 1183static char *yyrule[] = {
93a17b20 1184"$accept : prog",
ecb2f335 1185"prog : progstart lineseq",
93a17b20 1186"block : '{' remember lineseq '}'",
1187"remember :",
ecb2f335 1188"progstart :",
bbce6d69 1189"mblock : '{' mremember lineseq '}'",
55497cff 1190"mremember :",
93a17b20 1191"lineseq :",
1192"lineseq : lineseq decl",
1193"lineseq : lineseq line",
1194"line : label cond",
1195"line : loop",
1196"line : label ';'",
1197"line : label sideff ';'",
1198"sideff : error",
1199"sideff : expr",
1200"sideff : expr IF expr",
1201"sideff : expr UNLESS expr",
1202"sideff : expr WHILE expr",
55497cff 1203"sideff : expr UNTIL iexpr",
ecca16b0 1204"sideff : expr FOR expr",
93a17b20 1205"else :",
55497cff 1206"else : ELSE mblock",
1207"else : ELSIF '(' mexpr ')' mblock else",
1208"cond : IF '(' remember mexpr ')' mblock else",
1209"cond : UNLESS '(' remember miexpr ')' mblock else",
93a17b20 1210"cont :",
1211"cont : CONTINUE block",
55497cff 1212"loop : label WHILE '(' remember mtexpr ')' mblock cont",
1213"loop : label UNTIL '(' remember miexpr ')' mblock cont",
bbce6d69 1214"loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
1215"loop : label FOR scalar '(' remember mexpr ')' mblock cont",
1216"loop : label FOR '(' remember mexpr ')' mblock cont",
1217"loop : label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock",
93a17b20 1218"loop : label block cont",
1219"nexpr :",
1220"nexpr : sideff",
1221"texpr :",
1222"texpr : expr",
55497cff 1223"iexpr : expr",
1224"mexpr : expr",
bbce6d69 1225"mnexpr : nexpr",
55497cff 1226"mtexpr : texpr",
1227"miexpr : iexpr",
93a17b20 1228"label :",
1229"label : LABEL",
1230"decl : format",
1231"decl : subrout",
09bef843 1232"decl : mysubrout",
93a17b20 1233"decl : package",
a0d0e21e 1234"decl : use",
44a8e56a 1235"format : FORMAT startformsub formname block",
1236"formname : WORD",
1237"formname :",
09bef843 1238"mysubrout : MYSUB startsub subname proto subattrlist subbody",
1239"subrout : SUB startsub subname proto subattrlist subbody",
28757baa 1240"startsub :",
1241"startanonsub :",
44a8e56a 1242"startformsub :",
28757baa 1243"subname : WORD",
4633a7c4 1244"proto :",
1245"proto : THING",
09bef843 1246"subattrlist :",
1247"subattrlist : COLONATTR THING",
1248"subattrlist : COLONATTR",
1249"myattrlist : COLONATTR THING",
1250"myattrlist : COLONATTR",
28757baa 1251"subbody : block",
1252"subbody : ';'",
93a17b20 1253"package : PACKAGE WORD ';'",
1254"package : PACKAGE ';'",
ecb2f335 1255"$$1 :",
1256"use : USE startsub $$1 WORD WORD listexpr ';'",
a0d0e21e 1257"expr : expr ANDOP expr",
1258"expr : expr OROP expr",
a0d0e21e 1259"expr : argexpr",
1260"argexpr : argexpr ','",
1261"argexpr : argexpr ',' term",
1262"argexpr : term",
1263"listop : LSTOP indirob argexpr",
1264"listop : FUNC '(' indirob expr ')'",
1265"listop : term ARROW method '(' listexprcom ')'",
b1524f17 1266"listop : term ARROW method",
93a17b20 1267"listop : METHOD indirob listexpr",
a0d0e21e 1268"listop : FUNCMETH indirob '(' listexprcom ')'",
93a17b20 1269"listop : LSTOP listexpr",
a0d0e21e 1270"listop : FUNC '(' listexprcom ')'",
ecb2f335 1271"$$2 :",
1272"listop : LSTOPSUB startanonsub block $$2 listexpr",
a0d0e21e 1273"method : METHOD",
1274"method : scalar",
fad39ff1 1275"subscripted : star '{' expr ';' '}'",
1276"subscripted : scalar '[' expr ']'",
1277"subscripted : term ARROW '[' expr ']'",
1278"subscripted : subscripted '[' expr ']'",
1279"subscripted : scalar '{' expr ';' '}'",
1280"subscripted : term ARROW '{' expr ';' '}'",
1281"subscripted : subscripted '{' expr ';' '}'",
1282"subscripted : term ARROW '(' ')'",
1283"subscripted : term ARROW '(' expr ')'",
1284"subscripted : subscripted '(' expr ')'",
1285"subscripted : subscripted '(' ')'",
891be019 1286"termbinop : term ASSIGNOP term",
1287"termbinop : term POWOP term",
1288"termbinop : term MULOP term",
1289"termbinop : term ADDOP term",
1290"termbinop : term SHIFTOP term",
1291"termbinop : term RELOP term",
1292"termbinop : term EQOP term",
1293"termbinop : term BITANDOP term",
1294"termbinop : term BITOROP term",
1295"termbinop : term DOTDOT term",
1296"termbinop : term ANDAND term",
1297"termbinop : term OROR term",
1298"termbinop : term MATCHOP term",
1299"termunop : '-' term",
1300"termunop : '+' term",
1301"termunop : '!' term",
1302"termunop : '~' term",
1303"termunop : term POSTINC",
1304"termunop : term POSTDEC",
1305"termunop : PREINC term",
1306"termunop : PREDEC term",
1307"anonymous : '[' expr ']'",
1308"anonymous : '[' ']'",
1309"anonymous : HASHBRACK expr ';' '}'",
1310"anonymous : HASHBRACK ';' '}'",
1311"anonymous : ANONSUB startanonsub proto subattrlist block",
1312"termdo : DO term",
1313"termdo : DO block",
1314"termdo : DO WORD '(' ')'",
1315"termdo : DO WORD '(' expr ')'",
1316"termdo : DO scalar '(' ')'",
1317"termdo : DO scalar '(' expr ')'",
1318"term : termbinop",
1319"term : termunop",
1320"term : anonymous",
1321"term : termdo",
a0d0e21e 1322"term : term '?' term ':' term",
93a17b20 1323"term : REFGEN term",
09bef843 1324"term : myattrterm",
1325"term : LOCAL term",
a0d0e21e 1326"term : '(' expr ')'",
93a17b20 1327"term : '(' ')'",
93a17b20 1328"term : scalar",
1329"term : star",
93a17b20 1330"term : hsh",
1331"term : ary",
1332"term : arylen",
fad39ff1 1333"term : subscripted",
a0d0e21e 1334"term : '(' expr ')' '[' expr ']'",
93a17b20 1335"term : '(' ')' '[' expr ']'",
1336"term : ary '[' expr ']'",
1337"term : ary '{' expr ';' '}'",
93a17b20 1338"term : THING",
1339"term : amper",
1340"term : amper '(' ')'",
a0d0e21e 1341"term : amper '(' expr ')'",
93a17b20 1342"term : NOAMP WORD listexpr",
93a17b20 1343"term : LOOPEX",
a0d0e21e 1344"term : LOOPEX term",
c07a80fd 1345"term : NOTOP argexpr",
93a17b20 1346"term : UNIOP",
1347"term : UNIOP block",
a0d0e21e 1348"term : UNIOP term",
4633a7c4 1349"term : UNIOPSUB term",
93a17b20 1350"term : FUNC0",
1351"term : FUNC0 '(' ')'",
4633a7c4 1352"term : FUNC0SUB",
93a17b20 1353"term : FUNC1 '(' ')'",
1354"term : FUNC1 '(' expr ')'",
a0d0e21e 1355"term : PMFUNC '(' term ')'",
1356"term : PMFUNC '(' term ',' term ')'",
93a17b20 1357"term : WORD",
1358"term : listop",
09bef843 1359"myattrterm : MY myterm myattrlist",
1360"myattrterm : MY myterm",
1361"myterm : '(' expr ')'",
1362"myterm : '(' ')'",
1363"myterm : scalar",
1364"myterm : hsh",
1365"myterm : ary",
93a17b20 1366"listexpr :",
a0d0e21e 1367"listexpr : argexpr",
1368"listexprcom :",
1369"listexprcom : expr",
1370"listexprcom : expr ','",
55497cff 1371"my_scalar : scalar",
93a17b20 1372"amper : '&' indirob",
1373"scalar : '$' indirob",
1374"ary : '@' indirob",
1375"hsh : '%' indirob",
1376"arylen : DOLSHARP indirob",
1377"star : '*' indirob",
1378"indirob : WORD",
1379"indirob : scalar",
1380"indirob : block",
1381"indirob : PRIVATEREF",
79072805 1382};
79072805 1383#endif
93a17b20 1384#define yyclearin (yychar=(-1))
1385#define yyerrok (yyerrflag=0)
1386#ifdef YYSTACKSIZE
1387#ifndef YYMAXDEPTH
1388#define YYMAXDEPTH YYSTACKSIZE
1389#endif
1390#else
1391#ifdef YYMAXDEPTH
1392#define YYSTACKSIZE YYMAXDEPTH
1393#else
1394#define YYSTACKSIZE 500
1395#define YYMAXDEPTH 500
1396#endif
1397#endif
ecb2f335 1398#line 793 "perly.y"
93a17b20 1399 /* PROGRAM */
09bef843 1400
1401/* more stuff added to make perly_c.diff easier to apply */
1402
1403#ifdef yyparse
1404#undef yyparse
1405#endif
1406#define yyparse() Perl_yyparse(pTHX)
1407
f4db5405 1408#line 1409 "perly.c"
93a17b20 1409#define YYABORT goto yyabort
1410#define YYACCEPT goto yyaccept
1411#define YYERROR goto yyerrlab
79072805 1412int
09bef843 1413yyparse()
79072805 1414{
93a17b20 1415 register int yym, yyn, yystate;
1416 register short *yyssp;
1417 register YYSTYPE *yyvsp;
1418 short* yyss;
1419 YYSTYPE* yyvs;
1420 unsigned yystacksize = YYSTACKSIZE;
93a17b20 1421 int retval = 0;
93a17b20 1422#if YYDEBUG
1423 register char *yys;
f0f333f4 1424#endif
a0d0e21e 1425
8c52afec 1426 struct ysv *ysave;
f4dd75d9 1427#ifdef USE_ITHREADS
1428 ENTER; /* force yydestruct() before we return */
1429#endif
8c52afec 1430 New(73, ysave, 1, struct ysv);
e1f15930 1431 SAVEDESTRUCTOR_X(yydestruct, ysave);
a0d0e21e 1432 ysave->oldyydebug = yydebug;
1433 ysave->oldyynerrs = yynerrs;
1434 ysave->oldyyerrflag = yyerrflag;
1435 ysave->oldyychar = yychar;
1436 ysave->oldyyval = yyval;
1437 ysave->oldyylval = yylval;
ecb2f335 1438
a0d0e21e 1439#if YYDEBUG
f4db5405 1440 if ((yys = getenv("YYDEBUG")))
93a17b20 1441 {
1442 yyn = *yys;
1443 if (yyn >= '0' && yyn <= '9')
1444 yydebug = yyn - '0';
1445 }
1446#endif
79072805 1447
93a17b20 1448 yynerrs = 0;
1449 yyerrflag = 0;
1450 yychar = (-1);
79072805 1451
93a17b20 1452 /*
1453 ** Initialize private stacks (yyparse may be called from an action)
1454 */
8c52afec 1455 New(73, yyss, yystacksize, short);
1456 New(73, yyvs, yystacksize, YYSTYPE);
1457 ysave->yyss = yyss;
1458 ysave->yyvs = yyvs;
93a17b20 1459 if (!yyvs || !yyss)
1460 goto yyoverflow;
79072805 1461
93a17b20 1462 yyssp = yyss;
1463 yyvsp = yyvs;
1464 *yyssp = yystate = 0;
79072805 1465
93a17b20 1466yyloop:
f4db5405 1467 if ((yyn = yydefred[yystate])) goto yyreduce;
93a17b20 1468 if (yychar < 0)
1469 {
1470 if ((yychar = yylex()) < 0) yychar = 0;
79072805 1471#if YYDEBUG
93a17b20 1472 if (yydebug)
1473 {
1474 yys = 0;
1475 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1476 if (!yys) yys = "illegal-symbol";
09bef843 1477 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
93a17b20 1478 yychar, yys);
1479 }
79072805 1480#endif
93a17b20 1481 }
1482 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1483 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1484 {
79072805 1485#if YYDEBUG
93a17b20 1486 if (yydebug)
ac4c12e7 1487 PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
93a17b20 1488 yystate, yytable[yyn]);
79072805 1489#endif
93a17b20 1490 if (yyssp >= yyss + yystacksize - 1)
1491 {
1492 /*
1493 ** reallocate and recover. Note that pointers
1494 ** have to be reset, or bad things will happen
1495 */
1496 int yyps_index = (yyssp - yyss);
1497 int yypv_index = (yyvsp - yyvs);
1498 yystacksize += YYSTACKSIZE;
09bef843 1499 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1500 ysave->yyss = Renew(yyss, yystacksize, short);
93a17b20 1501 if (!yyvs || !yyss)
ecb2f335 1502 goto yyoverflow;
93a17b20 1503 yyssp = yyss + yyps_index;
1504 yyvsp = yyvs + yypv_index;
1505 }
1506 *++yyssp = yystate = yytable[yyn];
1507 *++yyvsp = yylval;
1508 yychar = (-1);
1509 if (yyerrflag > 0) --yyerrflag;
1510 goto yyloop;
1511 }
771df094 1512 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
93a17b20 1513 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1514 {
1515 yyn = yytable[yyn];
1516 goto yyreduce;
1517 }
1518 if (yyerrflag) goto yyinrecovery;
1519#ifdef lint
771df094 1520
93a17b20 1521#endif
7b57b0ea 1522
93a17b20 1523 yyerror("syntax error");
1524#ifdef lint
771df094 1525
93a17b20 1526#endif
7b57b0ea 1527
93a17b20 1528 ++yynerrs;
1529yyinrecovery:
1530 if (yyerrflag < 3)
1531 {
1532 yyerrflag = 3;
1533 for (;;)
1534 {
1535 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1536 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1537 {
79072805 1538#if YYDEBUG
93a17b20 1539 if (yydebug)
36c66720 1540 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
1541 to state %d\n", *yyssp, yytable[yyn]);
93a17b20 1542#endif
1543 if (yyssp >= yyss + yystacksize - 1)
1544 {
1545 /*
1546 ** reallocate and recover. Note that pointers
1547 ** have to be reset, or bad things will happen
1548 */
1549 int yyps_index = (yyssp - yyss);
1550 int yypv_index = (yyvsp - yyvs);
1551 yystacksize += YYSTACKSIZE;
09bef843 1552 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1553 ysave->yyss = Renew(yyss, yystacksize, short);
93a17b20 1554 if (!yyvs || !yyss)
ecb2f335 1555 goto yyoverflow;
93a17b20 1556 yyssp = yyss + yyps_index;
1557 yyvsp = yyvs + yypv_index;
1558 }
1559 *++yyssp = yystate = yytable[yyn];
1560 *++yyvsp = yylval;
1561 goto yyloop;
1562 }
1563 else
1564 {
79072805 1565#if YYDEBUG
93a17b20 1566 if (yydebug)
09bef843 1567 PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
1568 *yyssp);
79072805 1569#endif
93a17b20 1570 if (yyssp <= yyss) goto yyabort;
1571 --yyssp;
1572 --yyvsp;
1573 }
1574 }
1575 }
1576 else
1577 {
1578 if (yychar == 0) goto yyabort;
79072805 1579#if YYDEBUG
93a17b20 1580 if (yydebug)
1581 {
1582 yys = 0;
1583 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1584 if (!yys) yys = "illegal-symbol";
09bef843 1585 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
1586 yystate, yychar, yys);
93a17b20 1587 }
1588#endif
1589 yychar = (-1);
1590 goto yyloop;
1591 }
1592yyreduce:
79072805 1593#if YYDEBUG
93a17b20 1594 if (yydebug)
ac4c12e7 1595 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
93a17b20 1596 yystate, yyn, yyrule[yyn]);
79072805 1597#endif
93a17b20 1598 yym = yylen[yyn];
1599 yyval = yyvsp[1-yym];
1600 switch (yyn)
1601 {
79072805 1602case 1:
ecb2f335 1603#line 131 "perly.y"
1604{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
93a17b20 1605break;
79072805 1606case 2:
ecb2f335 1607#line 136 "perly.y"
3280af22 1608{ if (PL_copline > (line_t)yyvsp[-3].ival)
1609 PL_copline = yyvsp[-3].ival;
36477c24 1610 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
93a17b20 1611break;
ecb2f335 1612case 3:
1613#line 142 "perly.y"
55497cff 1614{ yyval.ival = block_start(TRUE); }
93a17b20 1615break;
ecb2f335 1616case 4:
1617#line 146 "perly.y"
1618{
1619#if defined(YYDEBUG) && defined(DEBUGGING)
1620 yydebug = (DEBUG_p_TEST);
1621#endif
1622 PL_expect = XSTATE; yyval.ival = block_start(TRUE);
1623 }
1624break;
79072805 1625case 5:
ecb2f335 1626#line 156 "perly.y"
3280af22 1627{ if (PL_copline > (line_t)yyvsp[-3].ival)
1628 PL_copline = yyvsp[-3].ival;
36477c24 1629 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
93a17b20 1630break;
79072805 1631case 6:
ecb2f335 1632#line 162 "perly.y"
55497cff 1633{ yyval.ival = block_start(FALSE); }
1634break;
bbce6d69 1635case 7:
ecb2f335 1636#line 167 "perly.y"
55497cff 1637{ yyval.opval = Nullop; }
1638break;
bbce6d69 1639case 8:
ecb2f335 1640#line 169 "perly.y"
55497cff 1641{ yyval.opval = yyvsp[-1].opval; }
1642break;
bbce6d69 1643case 9:
ecb2f335 1644#line 171 "perly.y"
463ee0b2 1645{ yyval.opval = append_list(OP_LINESEQ,
a0d0e21e 1646 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
3280af22 1647 PL_pad_reset_pending = TRUE;
1648 if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
93a17b20 1649break;
bbce6d69 1650case 10:
ecb2f335 1651#line 179 "perly.y"
93a17b20 1652{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1653break;
bbce6d69 1654case 12:
ecb2f335 1655#line 182 "perly.y"
93a17b20 1656{ if (yyvsp[-1].pval != Nullch) {
1657 yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
79072805 1658 }
1659 else {
1660 yyval.opval = Nullop;
3280af22 1661 PL_copline = NOLINE;
79072805 1662 }
3280af22 1663 PL_expect = XSTATE; }
93a17b20 1664break;
bbce6d69 1665case 13:
ecb2f335 1666#line 191 "perly.y"
93a17b20 1667{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
3280af22 1668 PL_expect = XSTATE; }
93a17b20 1669break;
bbce6d69 1670case 14:
ecb2f335 1671#line 197 "perly.y"
93a17b20 1672{ yyval.opval = Nullop; }
1673break;
bbce6d69 1674case 15:
ecb2f335 1675#line 199 "perly.y"
93a17b20 1676{ yyval.opval = yyvsp[0].opval; }
1677break;
bbce6d69 1678case 16:
ecb2f335 1679#line 201 "perly.y"
93a17b20 1680{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1681break;
bbce6d69 1682case 17:
ecb2f335 1683#line 203 "perly.y"
93a17b20 1684{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1685break;
bbce6d69 1686case 18:
ecb2f335 1687#line 205 "perly.y"
8990e307 1688{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
93a17b20 1689break;
bbce6d69 1690case 19:
ecb2f335 1691#line 207 "perly.y"
55497cff 1692{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
93a17b20 1693break;
bbce6d69 1694case 20:
ecb2f335 1695#line 209 "perly.y"
ecca16b0 1696{ yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
1697 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
93a17b20 1698break;
bbce6d69 1699case 21:
ecb2f335 1700#line 215 "perly.y"
ecca16b0 1701{ yyval.opval = Nullop; }
93a17b20 1702break;
bbce6d69 1703case 22:
ecb2f335 1704#line 217 "perly.y"
38a230cb 1705{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
ecca16b0 1706break;
1707case 23:
ecb2f335 1708#line 219 "perly.y"
3280af22 1709{ PL_copline = yyvsp[-5].ival;
2c15bef3 1710 yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
3280af22 1711 PL_hints |= HINT_BLOCK_SCOPE; }
93a17b20 1712break;
ecca16b0 1713case 24:
ecb2f335 1714#line 226 "perly.y"
3280af22 1715{ PL_copline = yyvsp[-6].ival;
36477c24 1716 yyval.opval = block_end(yyvsp[-4].ival,
bbce6d69 1717 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
93a17b20 1718break;
ecca16b0 1719case 25:
ecb2f335 1720#line 230 "perly.y"
3280af22 1721{ PL_copline = yyvsp[-6].ival;
36477c24 1722 yyval.opval = block_end(yyvsp[-4].ival,
bbce6d69 1723 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
93a17b20 1724break;
ecca16b0 1725case 26:
ecb2f335 1726#line 237 "perly.y"
71be2cbc 1727{ yyval.opval = Nullop; }
93a17b20 1728break;
ecca16b0 1729case 27:
ecb2f335 1730#line 239 "perly.y"
93a17b20 1731{ yyval.opval = scope(yyvsp[0].opval); }
1732break;
ecca16b0 1733case 28:
ecb2f335 1734#line 244 "perly.y"
3280af22 1735{ PL_copline = yyvsp[-6].ival;
36477c24 1736 yyval.opval = block_end(yyvsp[-4].ival,
55497cff 1737 newSTATEOP(0, yyvsp[-7].pval,
bbce6d69 1738 newWHILEOP(0, 1, (LOOP*)Nullop,
fb73857a 1739 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
93a17b20 1740break;
ecca16b0 1741case 29:
ecb2f335 1742#line 250 "perly.y"
3280af22 1743{ PL_copline = yyvsp[-6].ival;
36477c24 1744 yyval.opval = block_end(yyvsp[-4].ival,
55497cff 1745 newSTATEOP(0, yyvsp[-7].pval,
bbce6d69 1746 newWHILEOP(0, 1, (LOOP*)Nullop,
fb73857a 1747 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
bbce6d69 1748break;
ecca16b0 1749case 30:
ecb2f335 1750#line 256 "perly.y"
36477c24 1751{ yyval.opval = block_end(yyvsp[-6].ival,
bbce6d69 1752 newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
93a17b20 1753break;
ecca16b0 1754case 31:
ecb2f335 1755#line 259 "perly.y"
36477c24 1756{ yyval.opval = block_end(yyvsp[-4].ival,
bbce6d69 1757 newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
1758 yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
55497cff 1759break;
ecca16b0 1760case 32:
ecb2f335 1761#line 263 "perly.y"
36477c24 1762{ yyval.opval = block_end(yyvsp[-4].ival,
55497cff 1763 newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
93a17b20 1764break;
ecca16b0 1765case 33:
ecb2f335 1766#line 267 "perly.y"
36c66720 1767{ OP *forop;
3280af22 1768 PL_copline = yyvsp[-9].ival;
36c66720 1769 forop = newSTATEOP(0, yyvsp[-10].pval,
1770 newWHILEOP(0, 1, (LOOP*)Nullop,
1771 yyvsp[-9].ival, scalar(yyvsp[-4].opval),
1772 yyvsp[0].opval, yyvsp[-2].opval));
1773 if (yyvsp[-6].opval) {
1774 forop = append_elem(OP_LINESEQ,
1775 newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
1776 yyvsp[-6].opval),
1777 forop);
1778 }
1779
1780 yyval.opval = block_end(yyvsp[-7].ival, forop); }
55497cff 1781break;
ecca16b0 1782case 34:
ecb2f335 1783#line 282 "perly.y"
fb73857a 1784{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
1785 newWHILEOP(0, 1, (LOOP*)Nullop,
1786 NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
93a17b20 1787break;
ecca16b0 1788case 35:
ecb2f335 1789#line 289 "perly.y"
93a17b20 1790{ yyval.opval = Nullop; }
1791break;
ecca16b0 1792case 37:
ecb2f335 1793#line 295 "perly.y"
b73d6f50 1794{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
93a17b20 1795break;
71be2cbc 1796case 39:
ecb2f335 1797#line 301 "perly.y"
ecca16b0 1798{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
bbce6d69 1799break;
71be2cbc 1800case 40:
ecb2f335 1801#line 306 "perly.y"
bbce6d69 1802{ yyval.opval = yyvsp[0].opval; intro_my(); }
1803break;
71be2cbc 1804case 41:
ecb2f335 1805#line 310 "perly.y"
bbce6d69 1806{ yyval.opval = yyvsp[0].opval; intro_my(); }
1807break;
71be2cbc 1808case 42:
ecb2f335 1809#line 314 "perly.y"
bbce6d69 1810{ yyval.opval = yyvsp[0].opval; intro_my(); }
55497cff 1811break;
71be2cbc 1812case 43:
ecb2f335 1813#line 318 "perly.y"
ecca16b0 1814{ yyval.opval = yyvsp[0].opval; intro_my(); }
55497cff 1815break;
ecca16b0 1816case 44:
ecb2f335 1817#line 323 "perly.y"
ecca16b0 1818{ yyval.pval = Nullch; }
bbce6d69 1819break;
71be2cbc 1820case 46:
ecb2f335 1821#line 329 "perly.y"
bbce6d69 1822{ yyval.ival = 0; }
93a17b20 1823break;
71be2cbc 1824case 47:
ecb2f335 1825#line 331 "perly.y"
93a17b20 1826{ yyval.ival = 0; }
1827break;
71be2cbc 1828case 48:
ecb2f335 1829#line 333 "perly.y"
93a17b20 1830{ yyval.ival = 0; }
1831break;
71be2cbc 1832case 49:
ecb2f335 1833#line 335 "perly.y"
ecca16b0 1834{ yyval.ival = 0; }
93a17b20 1835break;
71be2cbc 1836case 50:
ecb2f335 1837#line 337 "perly.y"
09bef843 1838{ yyval.ival = 0; }
93a17b20 1839break;
71be2cbc 1840case 51:
ecb2f335 1841#line 341 "perly.y"
09bef843 1842{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
93a17b20 1843break;
71be2cbc 1844case 52:
ecb2f335 1845#line 344 "perly.y"
09bef843 1846{ yyval.opval = yyvsp[0].opval; }
93a17b20 1847break;
71be2cbc 1848case 53:
ecb2f335 1849#line 345 "perly.y"
09bef843 1850{ yyval.opval = Nullop; }
44a8e56a 1851break;
1852case 54:
ecb2f335 1853#line 350 "perly.y"
09bef843 1854{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
4633a7c4 1855break;
44a8e56a 1856case 55:
ecb2f335 1857#line 355 "perly.y"
09bef843 1858{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
44a8e56a 1859break;
1860case 56:
ecb2f335 1861#line 359 "perly.y"
09bef843 1862{ yyval.ival = start_subparse(FALSE, 0); }
ecca16b0 1863break;
1864case 57:
ecb2f335 1865#line 363 "perly.y"
09bef843 1866{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
1867break;
1868case 58:
ecb2f335 1869#line 367 "perly.y"
09bef843 1870{ yyval.ival = start_subparse(TRUE, 0); }
1871break;
1872case 59:
ecb2f335 1873#line 371 "perly.y"
b1524f17 1874{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
e858de61 1875 if (strEQ(name, "BEGIN") || strEQ(name, "END")
7d30b5c4 1876 || strEQ(name, "INIT") || strEQ(name, "CHECK"))
1aff0e91 1877 CvSPECIAL_on(PL_compcv);
28757baa 1878 yyval.opval = yyvsp[0].opval; }
93a17b20 1879break;
09bef843 1880case 60:
ecb2f335 1881#line 380 "perly.y"
28757baa 1882{ yyval.opval = Nullop; }
85e6fe83 1883break;
09bef843 1884case 62:
ecb2f335 1885#line 386 "perly.y"
09bef843 1886{ yyval.opval = Nullop; }
1887break;
1888case 63:
ecb2f335 1889#line 388 "perly.y"
09bef843 1890{ yyval.opval = yyvsp[0].opval; }
1891break;
1892case 64:
ecb2f335 1893#line 390 "perly.y"
09bef843 1894{ yyval.opval = Nullop; }
1895break;
1896case 65:
ecb2f335 1897#line 395 "perly.y"
28757baa 1898{ yyval.opval = yyvsp[0].opval; }
93a17b20 1899break;
09bef843 1900case 66:
ecb2f335 1901#line 397 "perly.y"
09bef843 1902{ yyval.opval = Nullop; }
1903break;
1904case 67:
ecb2f335 1905#line 401 "perly.y"
09bef843 1906{ yyval.opval = yyvsp[0].opval; }
1907break;
1908case 68:
ecb2f335 1909#line 402 "perly.y"
3280af22 1910{ yyval.opval = Nullop; PL_expect = XSTATE; }
85e6fe83 1911break;
09bef843 1912case 69:
ecb2f335 1913#line 406 "perly.y"
28757baa 1914{ package(yyvsp[-1].opval); }
85e6fe83 1915break;
09bef843 1916case 70:
ecb2f335 1917#line 408 "perly.y"
28757baa 1918{ package(Nullop); }
1919break;
09bef843 1920case 71:
ecb2f335 1921#line 412 "perly.y"
1aff0e91 1922{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
93a17b20 1923break;
09bef843 1924case 72:
ecb2f335 1925#line 414 "perly.y"
28757baa 1926{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
93a17b20 1927break;
09bef843 1928case 73:
ecb2f335 1929#line 419 "perly.y"
28757baa 1930{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1931break;
09bef843 1932case 74:
ecb2f335 1933#line 421 "perly.y"
28757baa 1934{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1935break;
09bef843 1936case 76:
ecb2f335 1937#line 427 "perly.y"
28757baa 1938{ yyval.opval = yyvsp[-1].opval; }
1939break;
09bef843 1940case 77:
ecb2f335 1941#line 429 "perly.y"
a0d0e21e 1942{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
93a17b20 1943break;
09bef843 1944case 79:
ecb2f335 1945#line 435 "perly.y"
a0d0e21e 1946{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
1947 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
93a17b20 1948break;
09bef843 1949case 80:
ecb2f335 1950#line 438 "perly.y"
a0d0e21e 1951{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
1952 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
93a17b20 1953break;
09bef843 1954case 81:
ecb2f335 1955#line 441 "perly.y"
4633a7c4 1956{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
a0d0e21e 1957 append_elem(OP_LIST,
55497cff 1958 prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
a0d0e21e 1959 newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
93a17b20 1960break;
09bef843 1961case 82:
ecb2f335 1962#line 446 "perly.y"
b1524f17 1963{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1964 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
1965 newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
1966break;
09bef843 1967case 83:
ecb2f335 1968#line 450 "perly.y"
4633a7c4 1969{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
a0d0e21e 1970 append_elem(OP_LIST,
4633a7c4 1971 prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
a0d0e21e 1972 newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
93a17b20 1973break;
09bef843 1974case 84:
ecb2f335 1975#line 455 "perly.y"
4633a7c4 1976{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
a0d0e21e 1977 append_elem(OP_LIST,
4633a7c4 1978 prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
a0d0e21e 1979 newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
93a17b20 1980break;
09bef843 1981case 85:
ecb2f335 1982#line 460 "perly.y"
c07a80fd 1983{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1984break;
09bef843 1985case 86:
ecb2f335 1986#line 462 "perly.y"
c07a80fd 1987{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
93a17b20 1988break;
09bef843 1989case 87:
ecb2f335 1990#line 464 "perly.y"
09bef843 1991{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
28757baa 1992break;
09bef843 1993case 88:
ecb2f335 1994#line 466 "perly.y"
4633a7c4 1995{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
28757baa 1996 append_elem(OP_LIST,
1997 prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
4633a7c4 1998break;
09bef843 1999case 91:
ecb2f335 2000#line 480 "perly.y"
fad39ff1 2001{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
c07a80fd 2002break;
09bef843 2003case 92:
ecb2f335 2004#line 482 "perly.y"
fad39ff1 2005{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
93a17b20 2006break;
09bef843 2007case 93:
ecb2f335 2008#line 484 "perly.y"
fad39ff1 2009{ yyval.opval = newBINOP(OP_AELEM, 0,
2010 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2011 scalar(yyvsp[-1].opval));}
93a17b20 2012break;
09bef843 2013case 94:
ecb2f335 2014#line 488 "perly.y"
fad39ff1 2015{ yyval.opval = newBINOP(OP_AELEM, 0,
2016 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2017 scalar(yyvsp[-1].opval));}
93a17b20 2018break;
09bef843 2019case 95:
ecb2f335 2020#line 492 "perly.y"
fad39ff1 2021{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2022 PL_expect = XOPERATOR; }
93a17b20 2023break;
09bef843 2024case 96:
ecb2f335 2025#line 495 "perly.y"
fad39ff1 2026{ yyval.opval = newBINOP(OP_HELEM, 0,
2027 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
2028 jmaybe(yyvsp[-2].opval));
2029 PL_expect = XOPERATOR; }
93a17b20 2030break;
09bef843 2031case 97:
ecb2f335 2032#line 500 "perly.y"
fad39ff1 2033{ yyval.opval = newBINOP(OP_HELEM, 0,
2034 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
2035 jmaybe(yyvsp[-2].opval));
2036 PL_expect = XOPERATOR; }
93a17b20 2037break;
09bef843 2038case 98:
ecb2f335 2039#line 505 "perly.y"
fad39ff1 2040{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2041 newCVREF(0, scalar(yyvsp[-3].opval))); }
93a17b20 2042break;
09bef843 2043case 99:
ecb2f335 2044#line 508 "perly.y"
fad39ff1 2045{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2046 append_elem(OP_LIST, yyvsp[-1].opval,
2047 newCVREF(0, scalar(yyvsp[-4].opval)))); }
93a17b20 2048break;
09bef843 2049case 100:
ecb2f335 2050#line 513 "perly.y"
fad39ff1 2051{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2052 append_elem(OP_LIST, yyvsp[-1].opval,
2053 newCVREF(0, scalar(yyvsp[-3].opval)))); }
93a17b20 2054break;
09bef843 2055case 101:
ecb2f335 2056#line 517 "perly.y"
fad39ff1 2057{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2058 newCVREF(0, scalar(yyvsp[-2].opval))); }
93a17b20 2059break;
09bef843 2060case 102:
ecb2f335 2061#line 523 "perly.y"
fad39ff1 2062{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
93a17b20 2063break;
09bef843 2064case 103:
ecb2f335 2065#line 525 "perly.y"
fad39ff1 2066{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
93a17b20 2067break;
09bef843 2068case 104:
ecb2f335 2069#line 527 "perly.y"
fad39ff1 2070{ if (yyvsp[-1].ival != OP_REPEAT)
2071 scalar(yyvsp[-2].opval);
2072 yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
93a17b20 2073break;
09bef843 2074case 105:
ecb2f335 2075#line 531 "perly.y"
fad39ff1 2076{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
93a17b20 2077break;
09bef843 2078case 106:
ecb2f335 2079#line 533 "perly.y"
fad39ff1 2080{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
44a8e56a 2081break;
09bef843 2082case 107:
ecb2f335 2083#line 535 "perly.y"
fad39ff1 2084{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
44a8e56a 2085break;
09bef843 2086case 108:
ecb2f335 2087#line 537 "perly.y"
fad39ff1 2088{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
93a17b20 2089break;
09bef843 2090case 109:
ecb2f335 2091#line 539 "perly.y"
fad39ff1 2092{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
b1524f17 2093break;
09bef843 2094case 110:
ecb2f335 2095#line 541 "perly.y"
fad39ff1 2096{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
93a17b20 2097break;
09bef843 2098case 111:
ecb2f335 2099#line 543 "perly.y"
fad39ff1 2100{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
93a17b20 2101break;
09bef843 2102case 112:
ecb2f335 2103#line 545 "perly.y"
fad39ff1 2104{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
93a17b20 2105break;
09bef843 2106case 113:
ecb2f335 2107#line 547 "perly.y"
fad39ff1 2108{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
c07a80fd 2109break;
09bef843 2110case 114:
ecb2f335 2111#line 549 "perly.y"
fad39ff1 2112{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
93a17b20 2113break;
891be019 2114case 115:
ecb2f335 2115#line 554 "perly.y"
fad39ff1 2116{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
93a17b20 2117break;
891be019 2118case 116:
ecb2f335 2119#line 556 "perly.y"
fad39ff1 2120{ yyval.opval = yyvsp[0].opval; }
93a17b20 2121break;
891be019 2122case 117:
ecb2f335 2123#line 558 "perly.y"
fad39ff1 2124{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
93a17b20 2125break;
891be019 2126case 118:
ecb2f335 2127#line 560 "perly.y"
fad39ff1 2128{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
93a17b20 2129break;
891be019 2130case 119:
ecb2f335 2131#line 562 "perly.y"
fad39ff1 2132{ yyval.opval = newUNOP(OP_POSTINC, 0,
2133 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
a0d0e21e 2134break;
891be019 2135case 120:
ecb2f335 2136#line 565 "perly.y"
fad39ff1 2137{ yyval.opval = newUNOP(OP_POSTDEC, 0,
2138 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
93a17b20 2139break;
891be019 2140case 121:
ecb2f335 2141#line 568 "perly.y"
fad39ff1 2142{ yyval.opval = newUNOP(OP_PREINC, 0,
2143 mod(scalar(yyvsp[0].opval), OP_PREINC)); }
463ee0b2 2144break;
891be019 2145case 122:
ecb2f335 2146#line 571 "perly.y"
fad39ff1 2147{ yyval.opval = newUNOP(OP_PREDEC, 0,
2148 mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
463ee0b2 2149break;
891be019 2150case 123:
ecb2f335 2151#line 578 "perly.y"
891be019 2152{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
2153break;
2154case 124:
ecb2f335 2155#line 580 "perly.y"
891be019 2156{ yyval.opval = newANONLIST(Nullop); }
2157break;
09bef843 2158case 125:
ecb2f335 2159#line 582 "perly.y"
891be019 2160{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
09bef843 2161break;
2162case 126:
ecb2f335 2163#line 584 "perly.y"
891be019 2164{ yyval.opval = newANONHASH(Nullop); }
ecca16b0 2165break;
09bef843 2166case 127:
ecb2f335 2167#line 586 "perly.y"
891be019 2168{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
93a17b20 2169break;
09bef843 2170case 128:
ecb2f335 2171#line 592 "perly.y"
891be019 2172{ yyval.opval = dofile(yyvsp[0].opval); }
463ee0b2 2173break;
09bef843 2174case 129:
ecb2f335 2175#line 594 "perly.y"
891be019 2176{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
93a17b20 2177break;
09bef843 2178case 130:
ecb2f335 2179#line 596 "perly.y"
891be019 2180{ yyval.opval = newUNOP(OP_ENTERSUB,
2181 OPf_SPECIAL|OPf_STACKED,
2182 prepend_elem(OP_LIST,
2183 scalar(newCVREF(
2184 (OPpENTERSUB_AMPER<<8),
2185 scalar(yyvsp[-2].opval)
2186 )),Nullop)); dep();}
93a17b20 2187break;
09bef843 2188case 131:
ecb2f335 2189#line 604 "perly.y"
891be019 2190{ yyval.opval = newUNOP(OP_ENTERSUB,
2191 OPf_SPECIAL|OPf_STACKED,
2192 append_elem(OP_LIST,
2193 yyvsp[-1].opval,
2194 scalar(newCVREF(
2195 (OPpENTERSUB_AMPER<<8),
2196 scalar(yyvsp[-3].opval)
2197 )))); dep();}
b1524f17 2198break;
09bef843 2199case 132:
ecb2f335 2200#line 613 "perly.y"
891be019 2201{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2202 prepend_elem(OP_LIST,
2203 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
ecca16b0 2204break;
09bef843 2205case 133:
ecb2f335 2206#line 617 "perly.y"
891be019 2207{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2208 prepend_elem(OP_LIST,
2209 yyvsp[-1].opval,
2210 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2211break;
2212case 138:
ecb2f335 2213#line 629 "perly.y"
891be019 2214{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2215break;
2216case 139:
ecb2f335 2217#line 631 "perly.y"
891be019 2218{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2219break;
2220case 140:
ecb2f335 2221#line 633 "perly.y"
891be019 2222{ yyval.opval = yyvsp[0].opval; }
2223break;
2224case 141:
ecb2f335 2225#line 635 "perly.y"
891be019 2226{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2227break;
2228case 142:
ecb2f335 2229#line 637 "perly.y"
891be019 2230{ yyval.opval = sawparens(yyvsp[-1].opval); }
93a17b20 2231break;
891be019 2232case 143:
ecb2f335 2233#line 639 "perly.y"
891be019 2234{ yyval.opval = sawparens(newNULLLIST()); }
2235break;
2236case 144:
ecb2f335 2237#line 641 "perly.y"
fad39ff1 2238{ yyval.opval = yyvsp[0].opval; }
463ee0b2 2239break;
891be019 2240case 145:
ecb2f335 2241#line 643 "perly.y"
fad39ff1 2242{ yyval.opval = yyvsp[0].opval; }
93a17b20 2243break;
891be019 2244case 146:
ecb2f335 2245#line 645 "perly.y"
fad39ff1 2246{ yyval.opval = yyvsp[0].opval; }
93a17b20 2247break;
891be019 2248case 147:
ecb2f335 2249#line 647 "perly.y"
fad39ff1 2250{ yyval.opval = yyvsp[0].opval; }
2251break;
891be019 2252case 148:
ecb2f335 2253#line 649 "perly.y"
fad39ff1 2254{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2255break;
891be019 2256case 149:
ecb2f335 2257#line 651 "perly.y"
fad39ff1 2258{ yyval.opval = yyvsp[0].opval; }
2259break;
891be019 2260case 150:
ecb2f335 2261#line 653 "perly.y"
fad39ff1 2262{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2263break;
891be019 2264case 151:
ecb2f335 2265#line 655 "perly.y"
fad39ff1 2266{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2267break;
891be019 2268case 152:
ecb2f335 2269#line 657 "perly.y"
79072805 2270{ yyval.opval = prepend_elem(OP_ASLICE,
2271 newOP(OP_PUSHMARK, 0),
79072805 2272 newLISTOP(OP_ASLICE, 0,
93a17b20 2273 list(yyvsp[-1].opval),
a0d0e21e 2274 ref(yyvsp[-3].opval, OP_ASLICE))); }
93a17b20 2275break;
891be019 2276case 153:
ecb2f335 2277#line 663 "perly.y"
79072805 2278{ yyval.opval = prepend_elem(OP_HSLICE,
2279 newOP(OP_PUSHMARK, 0),
79072805 2280 newLISTOP(OP_HSLICE, 0,
93a17b20 2281 list(yyvsp[-2].opval),
a0d0e21e 2282 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
3280af22 2283 PL_expect = XOPERATOR; }
93a17b20 2284break;
891be019 2285case 154:
ecb2f335 2286#line 670 "perly.y"
ecca16b0 2287{ yyval.opval = yyvsp[0].opval; }
a0d0e21e 2288break;
891be019 2289case 155:
ecb2f335 2290#line 672 "perly.y"
ecca16b0 2291{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
a0d0e21e 2292break;
891be019 2293case 156:
ecb2f335 2294#line 674 "perly.y"
ecca16b0 2295{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
a0d0e21e 2296break;
891be019 2297case 157:
ecb2f335 2298#line 676 "perly.y"
a0d0e21e 2299{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
ecca16b0 2300 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
93a17b20 2301break;
891be019 2302case 158:
ecb2f335 2303#line 679 "perly.y"
ecca16b0 2304{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2305 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
93a17b20 2306break;
891be019 2307case 159:
ecb2f335 2308#line 682 "perly.y"
ecca16b0 2309{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
3280af22 2310 PL_hints |= HINT_BLOCK_SCOPE; }
93a17b20 2311break;
891be019 2312case 160:
ecb2f335 2313#line 685 "perly.y"
b1524f17 2314{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
c07a80fd 2315break;
891be019 2316case 161:
ecb2f335 2317#line 687 "perly.y"
b1524f17 2318{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
6da72b64 2319break;
891be019 2320case 162:
ecb2f335 2321#line 689 "perly.y"
b1524f17 2322{ yyval.opval = newOP(yyvsp[0].ival, 0); }
6da72b64 2323break;
891be019 2324case 163:
ecb2f335 2325#line 691 "perly.y"
ecca16b0 2326{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
4633a7c4 2327break;
891be019 2328case 164:
ecb2f335 2329#line 693 "perly.y"
b1524f17 2330{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2331break;
891be019 2332case 165:
ecb2f335 2333#line 695 "perly.y"
ecca16b0 2334{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2335 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
93a17b20 2336break;
891be019 2337case 166:
ecb2f335 2338#line 698 "perly.y"
ecca16b0 2339{ yyval.opval = newOP(yyvsp[0].ival, 0); }
93a17b20 2340break;
891be019 2341case 167:
ecb2f335 2342#line 700 "perly.y"
ecca16b0 2343{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
4633a7c4 2344break;
891be019 2345case 168:
ecb2f335 2346#line 702 "perly.y"
ecca16b0 2347{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2348 scalar(yyvsp[0].opval)); }
93a17b20 2349break;
891be019 2350case 169:
ecb2f335 2351#line 705 "perly.y"
ecca16b0 2352{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
93a17b20 2353break;
891be019 2354case 170:
ecb2f335 2355#line 707 "perly.y"
ecca16b0 2356{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
93a17b20 2357break;
891be019 2358case 171:
ecb2f335 2359#line 709 "perly.y"
ecca16b0 2360{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
93a17b20 2361break;
891be019 2362case 172:
ecb2f335 2363#line 711 "perly.y"
ecca16b0 2364{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
93a17b20 2365break;
891be019 2366case 175:
ecb2f335 2367#line 718 "perly.y"
09bef843 2368{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
55497cff 2369break;
891be019 2370case 176:
ecb2f335 2371#line 720 "perly.y"
09bef843 2372{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2373break;
891be019 2374case 177:
ecb2f335 2375#line 725 "perly.y"
09bef843 2376{ yyval.opval = sawparens(yyvsp[-1].opval); }
2377break;
891be019 2378case 178:
ecb2f335 2379#line 727 "perly.y"
09bef843 2380{ yyval.opval = sawparens(newNULLLIST()); }
2381break;
891be019 2382case 179:
ecb2f335 2383#line 729 "perly.y"
ecca16b0 2384{ yyval.opval = yyvsp[0].opval; }
55497cff 2385break;
891be019 2386case 180:
ecb2f335 2387#line 731 "perly.y"
09bef843 2388{ yyval.opval = yyvsp[0].opval; }
2389break;
891be019 2390case 181:
ecb2f335 2391#line 733 "perly.y"
09bef843 2392{ yyval.opval = yyvsp[0].opval; }
2393break;
891be019 2394case 182:
ecb2f335 2395#line 738 "perly.y"
ecca16b0 2396{ yyval.opval = Nullop; }
55497cff 2397break;
891be019 2398case 183:
ecb2f335 2399#line 740 "perly.y"
ecca16b0 2400{ yyval.opval = yyvsp[0].opval; }
93a17b20 2401break;
891be019 2402case 184:
ecb2f335 2403#line 744 "perly.y"
09bef843 2404{ yyval.opval = Nullop; }
93a17b20 2405break;
891be019 2406case 185:
ecb2f335 2407#line 746 "perly.y"
09bef843 2408{ yyval.opval = yyvsp[0].opval; }
93a17b20 2409break;
891be019 2410case 186:
ecb2f335 2411#line 748 "perly.y"
09bef843 2412{ yyval.opval = yyvsp[-1].opval; }
93a17b20 2413break;
891be019 2414case 187:
ecb2f335 2415#line 754 "perly.y"
3280af22 2416{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
93a17b20 2417break;
891be019 2418case 188:
ecb2f335 2419#line 758 "perly.y"
ecca16b0 2420{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
93a17b20 2421break;
891be019 2422case 189:
ecb2f335 2423#line 762 "perly.y"
ecca16b0 2424{ yyval.opval = newSVREF(yyvsp[0].opval); }
93a17b20 2425break;
891be019 2426case 190:
ecb2f335 2427#line 766 "perly.y"
ecca16b0 2428{ yyval.opval = newAVREF(yyvsp[0].opval); }
93a17b20 2429break;
891be019 2430case 191:
ecb2f335 2431#line 770 "perly.y"
ecca16b0 2432{ yyval.opval = newHVREF(yyvsp[0].opval); }
c07a80fd 2433break;
891be019 2434case 192:
ecb2f335 2435#line 774 "perly.y"
ecca16b0 2436{ yyval.opval = newAVREF(yyvsp[0].opval); }
44a8e56a 2437break;
891be019 2438case 193:
ecb2f335 2439#line 778 "perly.y"
ecca16b0 2440{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
44a8e56a 2441break;
891be019 2442case 194:
ecb2f335 2443#line 783 "perly.y"
ecca16b0 2444{ yyval.opval = scalar(yyvsp[0].opval); }
6da72b64 2445break;
891be019 2446case 195:
ecb2f335 2447#line 785 "perly.y"
ecca16b0 2448{ yyval.opval = scalar(yyvsp[0].opval); }
6da72b64 2449break;
891be019 2450case 196:
ecb2f335 2451#line 787 "perly.y"
ecca16b0 2452{ yyval.opval = scope(yyvsp[0].opval); }
2453break;
891be019 2454case 197:
ecb2f335 2455#line 790 "perly.y"
85e6fe83 2456{ yyval.opval = yyvsp[0].opval; }
93a17b20 2457break;
f4db5405 2458#line 2459 "perly.c"
93a17b20 2459 }
2460 yyssp -= yym;
2461 yystate = *yyssp;
2462 yyvsp -= yym;
2463 yym = yylhs[yyn];
2464 if (yystate == 0 && yym == 0)
2465 {
2466#if YYDEBUG
2467 if (yydebug)
36c66720 2468 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2469 state %d\n", YYFINAL);
93a17b20 2470#endif
2471 yystate = YYFINAL;
2472 *++yyssp = YYFINAL;
2473 *++yyvsp = yyval;
2474 if (yychar < 0)
2475 {
2476 if ((yychar = yylex()) < 0) yychar = 0;
2477#if YYDEBUG
2478 if (yydebug)
2479 {
2480 yys = 0;
2481 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2482 if (!yys) yys = "illegal-symbol";
ac4c12e7 2483 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
93a17b20 2484 YYFINAL, yychar, yys);
2485 }
2486#endif
2487 }
2488 if (yychar == 0) goto yyaccept;
2489 goto yyloop;
2490 }
2491 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2492 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2493 yystate = yytable[yyn];
2494 else
2495 yystate = yydgoto[yym];
2496#if YYDEBUG
2497 if (yydebug)
36c66720 2498 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2499to state %d\n", *yyssp, yystate);
93a17b20 2500#endif
2501 if (yyssp >= yyss + yystacksize - 1)
2502 {
2503 /*
2504 ** reallocate and recover. Note that pointers
2505 ** have to be reset, or bad things will happen
2506 */
2507 int yyps_index = (yyssp - yyss);
2508 int yypv_index = (yyvsp - yyvs);
2509 yystacksize += YYSTACKSIZE;
09bef843 2510 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2511 ysave->yyss = Renew(yyss, yystacksize, short);
93a17b20 2512 if (!yyvs || !yyss)
ecb2f335 2513 goto yyoverflow;
93a17b20 2514 yyssp = yyss + yyps_index;
2515 yyvsp = yyvs + yypv_index;
2516 }
2517 *++yyssp = yystate;
2518 *++yyvsp = yyval;
2519 goto yyloop;
2520yyoverflow:
2521 yyerror("Out of memory for yacc stack");
2522yyabort:
2523 retval = 1;
2524yyaccept:
f4dd75d9 2525#ifdef USE_ITHREADS
2526 LEAVE; /* force yydestruct() before we return */
2527#endif
93a17b20 2528 return retval;
79072805 2529}
e1f15930 2530
e1f15930 2531static void
acfe0abc 2532yydestruct(pTHX_ void *ptr)
e1f15930 2533{
2534 struct ysv* ysave = (struct ysv*)ptr;
2535 if (ysave->yyss) Safefree(ysave->yyss);
2536 if (ysave->yyvs) Safefree(ysave->yyvs);
2537 yydebug = ysave->oldyydebug;
2538 yynerrs = ysave->oldyynerrs;
2539 yyerrflag = ysave->oldyyerrflag;
2540 yychar = ysave->oldyychar;
2541 yyval = ysave->oldyyval;
2542 yylval = ysave->oldyylval;
2543 Safefree(ysave);
2544}