This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Avoid testing for (non-)existance of "encoding(xxxx)"
[perl5.git] / perly.c
... / ...
CommitLineData
1#ifndef lint
2/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
3#endif
4#define YYBYACC 1
5#line 16 "perly.y"
6#include "EXTERN.h"
7#define PERL_IN_PERLY_C
8#include "perl.h"
9#ifdef EBCDIC
10#undef YYDEBUG
11#endif
12#define dep() deprecate("\"do\" to call subroutines")
13
14/* stuff included here to make perly_c.diff apply better */
15
16#define yydebug PL_yydebug
17#define yynerrs PL_yynerrs
18#define yyerrflag PL_yyerrflag
19#define yychar PL_yychar
20#define yyval PL_yyval
21#define yylval PL_yylval
22
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};
33
34static void yydestruct(pTHXo_ void *ptr);
35
36#line 51 "perly.y"
37#if 0 /* get this from perly.h instead */
38#line 54 "perly.y"
39typedef union {
40 I32 ival;
41 char *pval;
42 OP *opval;
43 GV *gvval;
44} YYSTYPE;
45#line 62 "perly.y"
46#endif /* 0 */
47
48#ifdef USE_PURE_BISON
49#define YYLEX_PARAM (&yychar)
50#define yylex yylex_r
51#endif
52
53#line 54 "perly.c"
54#define YYERRCODE 256
55static short yylhs[] = { -1,
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,
70 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
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,
76};
77static short yylen[] = { 2,
78 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
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,
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,
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,
98};
99static short yydefred[] = { 4,
100 0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
101 46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
102 0, 70, 71, 0, 14, 3, 173, 0, 0, 154,
103 0, 168, 0, 57, 57, 0, 0, 0, 0, 0,
104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106 0, 12, 0, 0, 0, 0, 0, 0, 0, 10,
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,
110 0, 0, 0, 0, 0, 3, 3, 3, 3, 3,
111 3, 0, 0, 0, 0, 0, 163, 0, 0, 0,
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,
120 87, 0, 0, 0, 0, 0, 0, 0, 3, 167,
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,
124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
125 0, 0, 89, 0, 0, 90, 0, 0, 101, 0,
126 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
127 0, 0, 0, 2, 0, 0, 171, 0, 0, 0,
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,
140};
141static short yydgoto[] = { 1,
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,
148};
149static short yysindex[] = { 0,
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,
190};
191static short yyrindex[] = { 0,
192 0, 0, 247, 0, 0, 0, 0, 0, 0, 0,
193 0, 0, 0, 0, 0, 0, 0, 0, 274, 0,
194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
196 40, 455, 0, 0, 2367, 2469, 0, 0, 0, 0,
197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
223 0, 0, 0, 359, 0, 0, 0, 0, 0, 0,
224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
232};
233static short yygindex[] = { 0,
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,
239 0, 0, 0, 0, 0, 0, 0, 0, 0,
240};
241#define YYTABLESIZE 4568
242static short yytable[] = { 71,
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,
267 306, 26, 21, 26, 26, 253, 1, 162, 163, 113,
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,
369 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
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,
430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 66, 0, 56,
441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
457 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
458 0, 0, 0, 55, 56, 54, 65, 67, 53, 0,
459 60, 311, 68, 64, 57, 63, 58, 59, 0, 0,
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,
465 60, 0, 68, 64, 57, 63, 58, 59, 0, 0,
466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467 0, 0, 0, 0, 66, 0, 56, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
480 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
481 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
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,
486 0, 57, 0, 58, 59, 0, 0, 27, 28, 29,
487 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
488 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
489 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
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,
566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
696 0, 0, 0, 0, 111, 111, 0, 111, 77, 77,
697 77, 77, 0, 0, 0, 77, 0, 0, 0, 0,
698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
699 0, 0, 0, 0, 0, 0, 77, 77,
700};
701static short yycheck[] = { 15,
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,
778 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
779 316, 317, 123, -1, -1, 126, -1, -1, -1, -1,
780 -1, -1, 257, 258, 259, 260, 261, -1, 263, 264,
781 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
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,
832 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
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,
889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
897 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
899 -1, -1, -1, -1, -1, -1, -1, 64, -1, 126,
900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
916 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
917 -1, -1, -1, 33, 126, 302, 36, 37, 38, -1,
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,
924 40, -1, 42, 43, 311, 45, 313, 314, -1, -1,
925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
926 -1, -1, -1, -1, 64, -1, 126, -1, -1, -1,
927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
939 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
940 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
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,
945 -1, 311, -1, 313, 314, -1, -1, 257, 258, 259,
946 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
947 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
948 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
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,
984 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
985 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
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,
989 -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
990 -1, 279, -1, 281, -1, -1, -1, -1, -1, 287,
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,
1012 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
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,
1025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1026 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
1059 44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
1060 290, -1, 300, 301, 58, 59, -1, -1, -1, 63,
1061 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
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,
1065 279, 44, 281, -1, -1, -1, -1, -1, 287, 288,
1066 289, 290, -1, -1, -1, 58, 59, -1, -1, -1,
1067 63, 300, 301, -1, 303, 304, 305, 306, 307, 308,
1068 309, -1, -1, 312, -1, -1, -1, -1, -1, -1,
1069 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
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,
1090 -1, -1, -1, -1, -1, -1, -1, 300, 301, -1,
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,
1128 306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
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,
1142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
1150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
1154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1155 -1, -1, -1, -1, 300, 301, -1, 303, 272, 273,
1156 274, 275, -1, -1, -1, 279, -1, -1, -1, -1,
1157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1158 -1, -1, -1, -1, -1, -1, 300, 301,
1159};
1160#define YYFINAL 1
1161#ifndef YYDEBUG
1162#define YYDEBUG 0
1163#endif
1164#define YYMAXTOKEN 317
1165#if YYDEBUG
1166static char *yyname[] = {
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,
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,
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,
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",
1175"PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB",
1176"ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF",
1177"CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP",
1178"RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY",
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",
1182};
1183static char *yyrule[] = {
1184"$accept : prog",
1185"prog : progstart lineseq",
1186"block : '{' remember lineseq '}'",
1187"remember :",
1188"progstart :",
1189"mblock : '{' mremember lineseq '}'",
1190"mremember :",
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",
1203"sideff : expr UNTIL iexpr",
1204"sideff : expr FOR expr",
1205"else :",
1206"else : ELSE mblock",
1207"else : ELSIF '(' mexpr ')' mblock else",
1208"cond : IF '(' remember mexpr ')' mblock else",
1209"cond : UNLESS '(' remember miexpr ')' mblock else",
1210"cont :",
1211"cont : CONTINUE block",
1212"loop : label WHILE '(' remember mtexpr ')' mblock cont",
1213"loop : label UNTIL '(' remember miexpr ')' mblock cont",
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",
1218"loop : label block cont",
1219"nexpr :",
1220"nexpr : sideff",
1221"texpr :",
1222"texpr : expr",
1223"iexpr : expr",
1224"mexpr : expr",
1225"mnexpr : nexpr",
1226"mtexpr : texpr",
1227"miexpr : iexpr",
1228"label :",
1229"label : LABEL",
1230"decl : format",
1231"decl : subrout",
1232"decl : mysubrout",
1233"decl : package",
1234"decl : use",
1235"format : FORMAT startformsub formname block",
1236"formname : WORD",
1237"formname :",
1238"mysubrout : MYSUB startsub subname proto subattrlist subbody",
1239"subrout : SUB startsub subname proto subattrlist subbody",
1240"startsub :",
1241"startanonsub :",
1242"startformsub :",
1243"subname : WORD",
1244"proto :",
1245"proto : THING",
1246"subattrlist :",
1247"subattrlist : COLONATTR THING",
1248"subattrlist : COLONATTR",
1249"myattrlist : COLONATTR THING",
1250"myattrlist : COLONATTR",
1251"subbody : block",
1252"subbody : ';'",
1253"package : PACKAGE WORD ';'",
1254"package : PACKAGE ';'",
1255"$$1 :",
1256"use : USE startsub $$1 WORD WORD listexpr ';'",
1257"expr : expr ANDOP expr",
1258"expr : expr OROP expr",
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 ')'",
1266"listop : term ARROW method",
1267"listop : METHOD indirob listexpr",
1268"listop : FUNCMETH indirob '(' listexprcom ')'",
1269"listop : LSTOP listexpr",
1270"listop : FUNC '(' listexprcom ')'",
1271"$$2 :",
1272"listop : LSTOPSUB startanonsub block $$2 listexpr",
1273"method : METHOD",
1274"method : scalar",
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 '(' ')'",
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",
1322"term : term '?' term ':' term",
1323"term : REFGEN term",
1324"term : myattrterm",
1325"term : LOCAL term",
1326"term : '(' expr ')'",
1327"term : '(' ')'",
1328"term : scalar",
1329"term : star",
1330"term : hsh",
1331"term : ary",
1332"term : arylen",
1333"term : subscripted",
1334"term : '(' expr ')' '[' expr ']'",
1335"term : '(' ')' '[' expr ']'",
1336"term : ary '[' expr ']'",
1337"term : ary '{' expr ';' '}'",
1338"term : THING",
1339"term : amper",
1340"term : amper '(' ')'",
1341"term : amper '(' expr ')'",
1342"term : NOAMP WORD listexpr",
1343"term : LOOPEX",
1344"term : LOOPEX term",
1345"term : NOTOP argexpr",
1346"term : UNIOP",
1347"term : UNIOP block",
1348"term : UNIOP term",
1349"term : UNIOPSUB term",
1350"term : FUNC0",
1351"term : FUNC0 '(' ')'",
1352"term : FUNC0SUB",
1353"term : FUNC1 '(' ')'",
1354"term : FUNC1 '(' expr ')'",
1355"term : PMFUNC '(' term ')'",
1356"term : PMFUNC '(' term ',' term ')'",
1357"term : WORD",
1358"term : listop",
1359"myattrterm : MY myterm myattrlist",
1360"myattrterm : MY myterm",
1361"myterm : '(' expr ')'",
1362"myterm : '(' ')'",
1363"myterm : scalar",
1364"myterm : hsh",
1365"myterm : ary",
1366"listexpr :",
1367"listexpr : argexpr",
1368"listexprcom :",
1369"listexprcom : expr",
1370"listexprcom : expr ','",
1371"my_scalar : scalar",
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",
1382};
1383#endif
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
1398#line 793 "perly.y"
1399 /* PROGRAM */
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
1408#line 1409 "perly.c"
1409#define YYABORT goto yyabort
1410#define YYACCEPT goto yyaccept
1411#define YYERROR goto yyerrlab
1412int
1413yyparse()
1414{
1415 register int yym, yyn, yystate;
1416 register short *yyssp;
1417 register YYSTYPE *yyvsp;
1418 short* yyss;
1419 YYSTYPE* yyvs;
1420 unsigned yystacksize = YYSTACKSIZE;
1421 int retval = 0;
1422#if YYDEBUG
1423 register char *yys;
1424#endif
1425
1426 struct ysv *ysave;
1427#ifdef USE_ITHREADS
1428 ENTER; /* force yydestruct() before we return */
1429#endif
1430 New(73, ysave, 1, struct ysv);
1431 SAVEDESTRUCTOR_X(yydestruct, ysave);
1432 ysave->oldyydebug = yydebug;
1433 ysave->oldyynerrs = yynerrs;
1434 ysave->oldyyerrflag = yyerrflag;
1435 ysave->oldyychar = yychar;
1436 ysave->oldyyval = yyval;
1437 ysave->oldyylval = yylval;
1438
1439#if YYDEBUG
1440 if ((yys = getenv("YYDEBUG")))
1441 {
1442 yyn = *yys;
1443 if (yyn >= '0' && yyn <= '9')
1444 yydebug = yyn - '0';
1445 }
1446#endif
1447
1448 yynerrs = 0;
1449 yyerrflag = 0;
1450 yychar = (-1);
1451
1452 /*
1453 ** Initialize private stacks (yyparse may be called from an action)
1454 */
1455 New(73, yyss, yystacksize, short);
1456 New(73, yyvs, yystacksize, YYSTYPE);
1457 ysave->yyss = yyss;
1458 ysave->yyvs = yyvs;
1459 if (!yyvs || !yyss)
1460 goto yyoverflow;
1461
1462 yyssp = yyss;
1463 yyvsp = yyvs;
1464 *yyssp = yystate = 0;
1465
1466yyloop:
1467 if ((yyn = yydefred[yystate])) goto yyreduce;
1468 if (yychar < 0)
1469 {
1470 if ((yychar = yylex()) < 0) yychar = 0;
1471#if YYDEBUG
1472 if (yydebug)
1473 {
1474 yys = 0;
1475 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1476 if (!yys) yys = "illegal-symbol";
1477 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
1478 yychar, yys);
1479 }
1480#endif
1481 }
1482 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1483 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1484 {
1485#if YYDEBUG
1486 if (yydebug)
1487 PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
1488 yystate, yytable[yyn]);
1489#endif
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;
1499 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1500 ysave->yyss = Renew(yyss, yystacksize, short);
1501 if (!yyvs || !yyss)
1502 goto yyoverflow;
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 }
1512 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1513 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1514 {
1515 yyn = yytable[yyn];
1516 goto yyreduce;
1517 }
1518 if (yyerrflag) goto yyinrecovery;
1519#ifdef lint
1520
1521#endif
1522
1523 yyerror("syntax error");
1524#ifdef lint
1525
1526#endif
1527
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 {
1538#if YYDEBUG
1539 if (yydebug)
1540 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
1541 to state %d\n", *yyssp, yytable[yyn]);
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;
1552 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1553 ysave->yyss = Renew(yyss, yystacksize, short);
1554 if (!yyvs || !yyss)
1555 goto yyoverflow;
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 {
1565#if YYDEBUG
1566 if (yydebug)
1567 PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
1568 *yyssp);
1569#endif
1570 if (yyssp <= yyss) goto yyabort;
1571 --yyssp;
1572 --yyvsp;
1573 }
1574 }
1575 }
1576 else
1577 {
1578 if (yychar == 0) goto yyabort;
1579#if YYDEBUG
1580 if (yydebug)
1581 {
1582 yys = 0;
1583 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1584 if (!yys) yys = "illegal-symbol";
1585 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
1586 yystate, yychar, yys);
1587 }
1588#endif
1589 yychar = (-1);
1590 goto yyloop;
1591 }
1592yyreduce:
1593#if YYDEBUG
1594 if (yydebug)
1595 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
1596 yystate, yyn, yyrule[yyn]);
1597#endif
1598 yym = yylen[yyn];
1599 yyval = yyvsp[1-yym];
1600 switch (yyn)
1601 {
1602case 1:
1603#line 131 "perly.y"
1604{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
1605break;
1606case 2:
1607#line 136 "perly.y"
1608{ if (PL_copline > (line_t)yyvsp[-3].ival)
1609 PL_copline = yyvsp[-3].ival;
1610 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1611break;
1612case 3:
1613#line 142 "perly.y"
1614{ yyval.ival = block_start(TRUE); }
1615break;
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;
1625case 5:
1626#line 156 "perly.y"
1627{ if (PL_copline > (line_t)yyvsp[-3].ival)
1628 PL_copline = yyvsp[-3].ival;
1629 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1630break;
1631case 6:
1632#line 162 "perly.y"
1633{ yyval.ival = block_start(FALSE); }
1634break;
1635case 7:
1636#line 167 "perly.y"
1637{ yyval.opval = Nullop; }
1638break;
1639case 8:
1640#line 169 "perly.y"
1641{ yyval.opval = yyvsp[-1].opval; }
1642break;
1643case 9:
1644#line 171 "perly.y"
1645{ yyval.opval = append_list(OP_LINESEQ,
1646 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
1647 PL_pad_reset_pending = TRUE;
1648 if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
1649break;
1650case 10:
1651#line 179 "perly.y"
1652{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1653break;
1654case 12:
1655#line 182 "perly.y"
1656{ if (yyvsp[-1].pval != Nullch) {
1657 yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1658 }
1659 else {
1660 yyval.opval = Nullop;
1661 PL_copline = NOLINE;
1662 }
1663 PL_expect = XSTATE; }
1664break;
1665case 13:
1666#line 191 "perly.y"
1667{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1668 PL_expect = XSTATE; }
1669break;
1670case 14:
1671#line 197 "perly.y"
1672{ yyval.opval = Nullop; }
1673break;
1674case 15:
1675#line 199 "perly.y"
1676{ yyval.opval = yyvsp[0].opval; }
1677break;
1678case 16:
1679#line 201 "perly.y"
1680{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1681break;
1682case 17:
1683#line 203 "perly.y"
1684{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1685break;
1686case 18:
1687#line 205 "perly.y"
1688{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1689break;
1690case 19:
1691#line 207 "perly.y"
1692{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1693break;
1694case 20:
1695#line 209 "perly.y"
1696{ yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
1697 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1698break;
1699case 21:
1700#line 215 "perly.y"
1701{ yyval.opval = Nullop; }
1702break;
1703case 22:
1704#line 217 "perly.y"
1705{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
1706break;
1707case 23:
1708#line 219 "perly.y"
1709{ PL_copline = yyvsp[-5].ival;
1710 yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
1711 PL_hints |= HINT_BLOCK_SCOPE; }
1712break;
1713case 24:
1714#line 226 "perly.y"
1715{ PL_copline = yyvsp[-6].ival;
1716 yyval.opval = block_end(yyvsp[-4].ival,
1717 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1718break;
1719case 25:
1720#line 230 "perly.y"
1721{ PL_copline = yyvsp[-6].ival;
1722 yyval.opval = block_end(yyvsp[-4].ival,
1723 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1724break;
1725case 26:
1726#line 237 "perly.y"
1727{ yyval.opval = Nullop; }
1728break;
1729case 27:
1730#line 239 "perly.y"
1731{ yyval.opval = scope(yyvsp[0].opval); }
1732break;
1733case 28:
1734#line 244 "perly.y"
1735{ PL_copline = yyvsp[-6].ival;
1736 yyval.opval = block_end(yyvsp[-4].ival,
1737 newSTATEOP(0, yyvsp[-7].pval,
1738 newWHILEOP(0, 1, (LOOP*)Nullop,
1739 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1740break;
1741case 29:
1742#line 250 "perly.y"
1743{ PL_copline = yyvsp[-6].ival;
1744 yyval.opval = block_end(yyvsp[-4].ival,
1745 newSTATEOP(0, yyvsp[-7].pval,
1746 newWHILEOP(0, 1, (LOOP*)Nullop,
1747 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1748break;
1749case 30:
1750#line 256 "perly.y"
1751{ yyval.opval = block_end(yyvsp[-6].ival,
1752 newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1753break;
1754case 31:
1755#line 259 "perly.y"
1756{ yyval.opval = block_end(yyvsp[-4].ival,
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)); }
1759break;
1760case 32:
1761#line 263 "perly.y"
1762{ yyval.opval = block_end(yyvsp[-4].ival,
1763 newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1764break;
1765case 33:
1766#line 267 "perly.y"
1767{ OP *forop;
1768 PL_copline = yyvsp[-9].ival;
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); }
1781break;
1782case 34:
1783#line 282 "perly.y"
1784{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
1785 newWHILEOP(0, 1, (LOOP*)Nullop,
1786 NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
1787break;
1788case 35:
1789#line 289 "perly.y"
1790{ yyval.opval = Nullop; }
1791break;
1792case 37:
1793#line 295 "perly.y"
1794{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
1795break;
1796case 39:
1797#line 301 "perly.y"
1798{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
1799break;
1800case 40:
1801#line 306 "perly.y"
1802{ yyval.opval = yyvsp[0].opval; intro_my(); }
1803break;
1804case 41:
1805#line 310 "perly.y"
1806{ yyval.opval = yyvsp[0].opval; intro_my(); }
1807break;
1808case 42:
1809#line 314 "perly.y"
1810{ yyval.opval = yyvsp[0].opval; intro_my(); }
1811break;
1812case 43:
1813#line 318 "perly.y"
1814{ yyval.opval = yyvsp[0].opval; intro_my(); }
1815break;
1816case 44:
1817#line 323 "perly.y"
1818{ yyval.pval = Nullch; }
1819break;
1820case 46:
1821#line 329 "perly.y"
1822{ yyval.ival = 0; }
1823break;
1824case 47:
1825#line 331 "perly.y"
1826{ yyval.ival = 0; }
1827break;
1828case 48:
1829#line 333 "perly.y"
1830{ yyval.ival = 0; }
1831break;
1832case 49:
1833#line 335 "perly.y"
1834{ yyval.ival = 0; }
1835break;
1836case 50:
1837#line 337 "perly.y"
1838{ yyval.ival = 0; }
1839break;
1840case 51:
1841#line 341 "perly.y"
1842{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1843break;
1844case 52:
1845#line 344 "perly.y"
1846{ yyval.opval = yyvsp[0].opval; }
1847break;
1848case 53:
1849#line 345 "perly.y"
1850{ yyval.opval = Nullop; }
1851break;
1852case 54:
1853#line 350 "perly.y"
1854{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1855break;
1856case 55:
1857#line 355 "perly.y"
1858{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1859break;
1860case 56:
1861#line 359 "perly.y"
1862{ yyval.ival = start_subparse(FALSE, 0); }
1863break;
1864case 57:
1865#line 363 "perly.y"
1866{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
1867break;
1868case 58:
1869#line 367 "perly.y"
1870{ yyval.ival = start_subparse(TRUE, 0); }
1871break;
1872case 59:
1873#line 371 "perly.y"
1874{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
1875 if (strEQ(name, "BEGIN") || strEQ(name, "END")
1876 || strEQ(name, "INIT") || strEQ(name, "CHECK"))
1877 CvSPECIAL_on(PL_compcv);
1878 yyval.opval = yyvsp[0].opval; }
1879break;
1880case 60:
1881#line 380 "perly.y"
1882{ yyval.opval = Nullop; }
1883break;
1884case 62:
1885#line 386 "perly.y"
1886{ yyval.opval = Nullop; }
1887break;
1888case 63:
1889#line 388 "perly.y"
1890{ yyval.opval = yyvsp[0].opval; }
1891break;
1892case 64:
1893#line 390 "perly.y"
1894{ yyval.opval = Nullop; }
1895break;
1896case 65:
1897#line 395 "perly.y"
1898{ yyval.opval = yyvsp[0].opval; }
1899break;
1900case 66:
1901#line 397 "perly.y"
1902{ yyval.opval = Nullop; }
1903break;
1904case 67:
1905#line 401 "perly.y"
1906{ yyval.opval = yyvsp[0].opval; }
1907break;
1908case 68:
1909#line 402 "perly.y"
1910{ yyval.opval = Nullop; PL_expect = XSTATE; }
1911break;
1912case 69:
1913#line 406 "perly.y"
1914{ package(yyvsp[-1].opval); }
1915break;
1916case 70:
1917#line 408 "perly.y"
1918{ package(Nullop); }
1919break;
1920case 71:
1921#line 412 "perly.y"
1922{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
1923break;
1924case 72:
1925#line 414 "perly.y"
1926{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
1927break;
1928case 73:
1929#line 419 "perly.y"
1930{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1931break;
1932case 74:
1933#line 421 "perly.y"
1934{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1935break;
1936case 76:
1937#line 427 "perly.y"
1938{ yyval.opval = yyvsp[-1].opval; }
1939break;
1940case 77:
1941#line 429 "perly.y"
1942{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1943break;
1944case 79:
1945#line 435 "perly.y"
1946{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
1947 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
1948break;
1949case 80:
1950#line 438 "perly.y"
1951{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
1952 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
1953break;
1954case 81:
1955#line 441 "perly.y"
1956{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1957 append_elem(OP_LIST,
1958 prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
1959 newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
1960break;
1961case 82:
1962#line 446 "perly.y"
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;
1967case 83:
1968#line 450 "perly.y"
1969{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1970 append_elem(OP_LIST,
1971 prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
1972 newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
1973break;
1974case 84:
1975#line 455 "perly.y"
1976{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1977 append_elem(OP_LIST,
1978 prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
1979 newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
1980break;
1981case 85:
1982#line 460 "perly.y"
1983{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1984break;
1985case 86:
1986#line 462 "perly.y"
1987{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1988break;
1989case 87:
1990#line 464 "perly.y"
1991{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
1992break;
1993case 88:
1994#line 466 "perly.y"
1995{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
1996 append_elem(OP_LIST,
1997 prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
1998break;
1999case 91:
2000#line 480 "perly.y"
2001{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
2002break;
2003case 92:
2004#line 482 "perly.y"
2005{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2006break;
2007case 93:
2008#line 484 "perly.y"
2009{ yyval.opval = newBINOP(OP_AELEM, 0,
2010 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2011 scalar(yyvsp[-1].opval));}
2012break;
2013case 94:
2014#line 488 "perly.y"
2015{ yyval.opval = newBINOP(OP_AELEM, 0,
2016 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2017 scalar(yyvsp[-1].opval));}
2018break;
2019case 95:
2020#line 492 "perly.y"
2021{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2022 PL_expect = XOPERATOR; }
2023break;
2024case 96:
2025#line 495 "perly.y"
2026{ yyval.opval = newBINOP(OP_HELEM, 0,
2027 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
2028 jmaybe(yyvsp[-2].opval));
2029 PL_expect = XOPERATOR; }
2030break;
2031case 97:
2032#line 500 "perly.y"
2033{ yyval.opval = newBINOP(OP_HELEM, 0,
2034 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
2035 jmaybe(yyvsp[-2].opval));
2036 PL_expect = XOPERATOR; }
2037break;
2038case 98:
2039#line 505 "perly.y"
2040{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2041 newCVREF(0, scalar(yyvsp[-3].opval))); }
2042break;
2043case 99:
2044#line 508 "perly.y"
2045{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2046 append_elem(OP_LIST, yyvsp[-1].opval,
2047 newCVREF(0, scalar(yyvsp[-4].opval)))); }
2048break;
2049case 100:
2050#line 513 "perly.y"
2051{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2052 append_elem(OP_LIST, yyvsp[-1].opval,
2053 newCVREF(0, scalar(yyvsp[-3].opval)))); }
2054break;
2055case 101:
2056#line 517 "perly.y"
2057{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2058 newCVREF(0, scalar(yyvsp[-2].opval))); }
2059break;
2060case 102:
2061#line 523 "perly.y"
2062{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2063break;
2064case 103:
2065#line 525 "perly.y"
2066{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2067break;
2068case 104:
2069#line 527 "perly.y"
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)); }
2073break;
2074case 105:
2075#line 531 "perly.y"
2076{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2077break;
2078case 106:
2079#line 533 "perly.y"
2080{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2081break;
2082case 107:
2083#line 535 "perly.y"
2084{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2085break;
2086case 108:
2087#line 537 "perly.y"
2088{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2089break;
2090case 109:
2091#line 539 "perly.y"
2092{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2093break;
2094case 110:
2095#line 541 "perly.y"
2096{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2097break;
2098case 111:
2099#line 543 "perly.y"
2100{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2101break;
2102case 112:
2103#line 545 "perly.y"
2104{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2105break;
2106case 113:
2107#line 547 "perly.y"
2108{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2109break;
2110case 114:
2111#line 549 "perly.y"
2112{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2113break;
2114case 115:
2115#line 554 "perly.y"
2116{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2117break;
2118case 116:
2119#line 556 "perly.y"
2120{ yyval.opval = yyvsp[0].opval; }
2121break;
2122case 117:
2123#line 558 "perly.y"
2124{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2125break;
2126case 118:
2127#line 560 "perly.y"
2128{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2129break;
2130case 119:
2131#line 562 "perly.y"
2132{ yyval.opval = newUNOP(OP_POSTINC, 0,
2133 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2134break;
2135case 120:
2136#line 565 "perly.y"
2137{ yyval.opval = newUNOP(OP_POSTDEC, 0,
2138 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2139break;
2140case 121:
2141#line 568 "perly.y"
2142{ yyval.opval = newUNOP(OP_PREINC, 0,
2143 mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2144break;
2145case 122:
2146#line 571 "perly.y"
2147{ yyval.opval = newUNOP(OP_PREDEC, 0,
2148 mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2149break;
2150case 123:
2151#line 578 "perly.y"
2152{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
2153break;
2154case 124:
2155#line 580 "perly.y"
2156{ yyval.opval = newANONLIST(Nullop); }
2157break;
2158case 125:
2159#line 582 "perly.y"
2160{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
2161break;
2162case 126:
2163#line 584 "perly.y"
2164{ yyval.opval = newANONHASH(Nullop); }
2165break;
2166case 127:
2167#line 586 "perly.y"
2168{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2169break;
2170case 128:
2171#line 592 "perly.y"
2172{ yyval.opval = dofile(yyvsp[0].opval); }
2173break;
2174case 129:
2175#line 594 "perly.y"
2176{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2177break;
2178case 130:
2179#line 596 "perly.y"
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();}
2187break;
2188case 131:
2189#line 604 "perly.y"
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();}
2198break;
2199case 132:
2200#line 613 "perly.y"
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();}
2204break;
2205case 133:
2206#line 617 "perly.y"
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:
2213#line 629 "perly.y"
2214{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2215break;
2216case 139:
2217#line 631 "perly.y"
2218{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2219break;
2220case 140:
2221#line 633 "perly.y"
2222{ yyval.opval = yyvsp[0].opval; }
2223break;
2224case 141:
2225#line 635 "perly.y"
2226{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2227break;
2228case 142:
2229#line 637 "perly.y"
2230{ yyval.opval = sawparens(yyvsp[-1].opval); }
2231break;
2232case 143:
2233#line 639 "perly.y"
2234{ yyval.opval = sawparens(newNULLLIST()); }
2235break;
2236case 144:
2237#line 641 "perly.y"
2238{ yyval.opval = yyvsp[0].opval; }
2239break;
2240case 145:
2241#line 643 "perly.y"
2242{ yyval.opval = yyvsp[0].opval; }
2243break;
2244case 146:
2245#line 645 "perly.y"
2246{ yyval.opval = yyvsp[0].opval; }
2247break;
2248case 147:
2249#line 647 "perly.y"
2250{ yyval.opval = yyvsp[0].opval; }
2251break;
2252case 148:
2253#line 649 "perly.y"
2254{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2255break;
2256case 149:
2257#line 651 "perly.y"
2258{ yyval.opval = yyvsp[0].opval; }
2259break;
2260case 150:
2261#line 653 "perly.y"
2262{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2263break;
2264case 151:
2265#line 655 "perly.y"
2266{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2267break;
2268case 152:
2269#line 657 "perly.y"
2270{ yyval.opval = prepend_elem(OP_ASLICE,
2271 newOP(OP_PUSHMARK, 0),
2272 newLISTOP(OP_ASLICE, 0,
2273 list(yyvsp[-1].opval),
2274 ref(yyvsp[-3].opval, OP_ASLICE))); }
2275break;
2276case 153:
2277#line 663 "perly.y"
2278{ yyval.opval = prepend_elem(OP_HSLICE,
2279 newOP(OP_PUSHMARK, 0),
2280 newLISTOP(OP_HSLICE, 0,
2281 list(yyvsp[-2].opval),
2282 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2283 PL_expect = XOPERATOR; }
2284break;
2285case 154:
2286#line 670 "perly.y"
2287{ yyval.opval = yyvsp[0].opval; }
2288break;
2289case 155:
2290#line 672 "perly.y"
2291{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2292break;
2293case 156:
2294#line 674 "perly.y"
2295{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2296break;
2297case 157:
2298#line 676 "perly.y"
2299{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2300 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2301break;
2302case 158:
2303#line 679 "perly.y"
2304{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2305 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2306break;
2307case 159:
2308#line 682 "perly.y"
2309{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2310 PL_hints |= HINT_BLOCK_SCOPE; }
2311break;
2312case 160:
2313#line 685 "perly.y"
2314{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2315break;
2316case 161:
2317#line 687 "perly.y"
2318{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2319break;
2320case 162:
2321#line 689 "perly.y"
2322{ yyval.opval = newOP(yyvsp[0].ival, 0); }
2323break;
2324case 163:
2325#line 691 "perly.y"
2326{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2327break;
2328case 164:
2329#line 693 "perly.y"
2330{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2331break;
2332case 165:
2333#line 695 "perly.y"
2334{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2335 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2336break;
2337case 166:
2338#line 698 "perly.y"
2339{ yyval.opval = newOP(yyvsp[0].ival, 0); }
2340break;
2341case 167:
2342#line 700 "perly.y"
2343{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
2344break;
2345case 168:
2346#line 702 "perly.y"
2347{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2348 scalar(yyvsp[0].opval)); }
2349break;
2350case 169:
2351#line 705 "perly.y"
2352{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2353break;
2354case 170:
2355#line 707 "perly.y"
2356{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2357break;
2358case 171:
2359#line 709 "perly.y"
2360{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2361break;
2362case 172:
2363#line 711 "perly.y"
2364{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2365break;
2366case 175:
2367#line 718 "perly.y"
2368{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2369break;
2370case 176:
2371#line 720 "perly.y"
2372{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2373break;
2374case 177:
2375#line 725 "perly.y"
2376{ yyval.opval = sawparens(yyvsp[-1].opval); }
2377break;
2378case 178:
2379#line 727 "perly.y"
2380{ yyval.opval = sawparens(newNULLLIST()); }
2381break;
2382case 179:
2383#line 729 "perly.y"
2384{ yyval.opval = yyvsp[0].opval; }
2385break;
2386case 180:
2387#line 731 "perly.y"
2388{ yyval.opval = yyvsp[0].opval; }
2389break;
2390case 181:
2391#line 733 "perly.y"
2392{ yyval.opval = yyvsp[0].opval; }
2393break;
2394case 182:
2395#line 738 "perly.y"
2396{ yyval.opval = Nullop; }
2397break;
2398case 183:
2399#line 740 "perly.y"
2400{ yyval.opval = yyvsp[0].opval; }
2401break;
2402case 184:
2403#line 744 "perly.y"
2404{ yyval.opval = Nullop; }
2405break;
2406case 185:
2407#line 746 "perly.y"
2408{ yyval.opval = yyvsp[0].opval; }
2409break;
2410case 186:
2411#line 748 "perly.y"
2412{ yyval.opval = yyvsp[-1].opval; }
2413break;
2414case 187:
2415#line 754 "perly.y"
2416{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2417break;
2418case 188:
2419#line 758 "perly.y"
2420{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2421break;
2422case 189:
2423#line 762 "perly.y"
2424{ yyval.opval = newSVREF(yyvsp[0].opval); }
2425break;
2426case 190:
2427#line 766 "perly.y"
2428{ yyval.opval = newAVREF(yyvsp[0].opval); }
2429break;
2430case 191:
2431#line 770 "perly.y"
2432{ yyval.opval = newHVREF(yyvsp[0].opval); }
2433break;
2434case 192:
2435#line 774 "perly.y"
2436{ yyval.opval = newAVREF(yyvsp[0].opval); }
2437break;
2438case 193:
2439#line 778 "perly.y"
2440{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
2441break;
2442case 194:
2443#line 783 "perly.y"
2444{ yyval.opval = scalar(yyvsp[0].opval); }
2445break;
2446case 195:
2447#line 785 "perly.y"
2448{ yyval.opval = scalar(yyvsp[0].opval); }
2449break;
2450case 196:
2451#line 787 "perly.y"
2452{ yyval.opval = scope(yyvsp[0].opval); }
2453break;
2454case 197:
2455#line 790 "perly.y"
2456{ yyval.opval = yyvsp[0].opval; }
2457break;
2458#line 2459 "perly.c"
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)
2468 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2469 state %d\n", YYFINAL);
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";
2483 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
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)
2498 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2499to state %d\n", *yyssp, yystate);
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;
2510 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2511 ysave->yyss = Renew(yyss, yystacksize, short);
2512 if (!yyvs || !yyss)
2513 goto yyoverflow;
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:
2525#ifdef USE_ITHREADS
2526 LEAVE; /* force yydestruct() before we return */
2527#endif
2528 return retval;
2529}
2530
2531#ifdef PERL_OBJECT
2532#include "XSUB.h"
2533#endif
2534
2535static void
2536yydestruct(pTHXo_ void *ptr)
2537{
2538 struct ysv* ysave = (struct ysv*)ptr;
2539 if (ysave->yyss) Safefree(ysave->yyss);
2540 if (ysave->yyvs) Safefree(ysave->yyvs);
2541 yydebug = ysave->oldyydebug;
2542 yynerrs = ysave->oldyynerrs;
2543 yyerrflag = ysave->oldyyerrflag;
2544 yychar = ysave->oldyychar;
2545 yyval = ysave->oldyyval;
2546 yylval = ysave->oldyylval;
2547 Safefree(ysave);
2548}