source: vendor/perl/5.8.8/perly.c@ 3546

Last change on this file since 3546 was 3181, checked in by bird, 18 years ago

perl 5.8.8

File size: 101.8 KB
Line 
1#ifndef lint
2/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
3#endif
4#define YYBYACC 1
5#line 25 "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_old("\"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(pTHX_ void *ptr);
35
36#line 60 "perly.y"
37#if 0 /* get this from perly.h instead */
38#line 63 "perly.y"
39typedef union {
40 I32 ival;
41 char *pval;
42 OP *opval;
43 GV *gvval;
44} YYSTYPE;
45#line 71 "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 804 "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 140 "perly.y"
1604{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
1605break;
1606case 2:
1607#line 145 "perly.y"
1608{ if (PL_copline > (line_t)yyvsp[-3].ival)
1609 PL_copline = (line_t)yyvsp[-3].ival;
1610 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1611break;
1612case 3:
1613#line 151 "perly.y"
1614{ yyval.ival = block_start(TRUE); }
1615break;
1616case 4:
1617#line 155 "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 165 "perly.y"
1627{ if (PL_copline > (line_t)yyvsp[-3].ival)
1628 PL_copline = (line_t)yyvsp[-3].ival;
1629 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1630break;
1631case 6:
1632#line 171 "perly.y"
1633{ yyval.ival = block_start(FALSE); }
1634break;
1635case 7:
1636#line 176 "perly.y"
1637{ yyval.opval = Nullop; }
1638break;
1639case 8:
1640#line 178 "perly.y"
1641{ yyval.opval = yyvsp[-1].opval; }
1642break;
1643case 9:
1644#line 180 "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 188 "perly.y"
1652{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1653break;
1654case 12:
1655#line 191 "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 200 "perly.y"
1667{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1668 PL_expect = XSTATE; }
1669break;
1670case 14:
1671#line 206 "perly.y"
1672{ yyval.opval = Nullop; }
1673break;
1674case 15:
1675#line 208 "perly.y"
1676{ yyval.opval = yyvsp[0].opval; }
1677break;
1678case 16:
1679#line 210 "perly.y"
1680{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1681break;
1682case 17:
1683#line 212 "perly.y"
1684{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1685break;
1686case 18:
1687#line 214 "perly.y"
1688{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1689break;
1690case 19:
1691#line 216 "perly.y"
1692{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1693break;
1694case 20:
1695#line 218 "perly.y"
1696{ yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
1697 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1698break;
1699case 21:
1700#line 224 "perly.y"
1701{ yyval.opval = Nullop; }
1702break;
1703case 22:
1704#line 226 "perly.y"
1705{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
1706break;
1707case 23:
1708#line 228 "perly.y"
1709{ PL_copline = (line_t)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 235 "perly.y"
1715{ PL_copline = (line_t)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 239 "perly.y"
1721{ PL_copline = (line_t)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 246 "perly.y"
1727{ yyval.opval = Nullop; }
1728break;
1729case 27:
1730#line 248 "perly.y"
1731{ yyval.opval = scope(yyvsp[0].opval); }
1732break;
1733case 28:
1734#line 253 "perly.y"
1735{ PL_copline = (line_t)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 259 "perly.y"
1743{ PL_copline = (line_t)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 265 "perly.y"
1751{ yyval.opval = block_end(yyvsp[-6].ival,
1752 newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1753break;
1754case 31:
1755#line 268 "perly.y"
1756{ yyval.opval = block_end(yyvsp[-4].ival,
1757 newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
1758 yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1759break;
1760case 32:
1761#line 272 "perly.y"
1762{ yyval.opval = block_end(yyvsp[-4].ival,
1763 newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1764break;
1765case 33:
1766#line 276 "perly.y"
1767{ OP *forop;
1768 PL_copline = (line_t)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 291 "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 298 "perly.y"
1790{ yyval.opval = Nullop; }
1791break;
1792case 37:
1793#line 304 "perly.y"
1794{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
1795break;
1796case 39:
1797#line 310 "perly.y"
1798{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
1799break;
1800case 40:
1801#line 315 "perly.y"
1802{ yyval.opval = yyvsp[0].opval; intro_my(); }
1803break;
1804case 41:
1805#line 319 "perly.y"
1806{ yyval.opval = yyvsp[0].opval; intro_my(); }
1807break;
1808case 42:
1809#line 323 "perly.y"
1810{ yyval.opval = yyvsp[0].opval; intro_my(); }
1811break;
1812case 43:
1813#line 327 "perly.y"
1814{ yyval.opval = yyvsp[0].opval; intro_my(); }
1815break;
1816case 44:
1817#line 332 "perly.y"
1818{ yyval.pval = Nullch; }
1819break;
1820case 46:
1821#line 338 "perly.y"
1822{ yyval.ival = 0; }
1823break;
1824case 47:
1825#line 340 "perly.y"
1826{ yyval.ival = 0; }
1827break;
1828case 48:
1829#line 342 "perly.y"
1830{ yyval.ival = 0; }
1831break;
1832case 49:
1833#line 344 "perly.y"
1834{ yyval.ival = 0; }
1835break;
1836case 50:
1837#line 346 "perly.y"
1838{ yyval.ival = 0; }
1839break;
1840case 51:
1841#line 350 "perly.y"
1842{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1843break;
1844case 52:
1845#line 353 "perly.y"
1846{ yyval.opval = yyvsp[0].opval; }
1847break;
1848case 53:
1849#line 354 "perly.y"
1850{ yyval.opval = Nullop; }
1851break;
1852case 54:
1853#line 359 "perly.y"
1854{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1855break;
1856case 55:
1857#line 364 "perly.y"
1858{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1859break;
1860case 56:
1861#line 368 "perly.y"
1862{ yyval.ival = start_subparse(FALSE, 0); }
1863break;
1864case 57:
1865#line 372 "perly.y"
1866{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
1867break;
1868case 58:
1869#line 376 "perly.y"
1870{ yyval.ival = start_subparse(TRUE, 0); }
1871break;
1872case 59:
1873#line 380 "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 389 "perly.y"
1882{ yyval.opval = Nullop; }
1883break;
1884case 62:
1885#line 395 "perly.y"
1886{ yyval.opval = Nullop; }
1887break;
1888case 63:
1889#line 397 "perly.y"
1890{ yyval.opval = yyvsp[0].opval; }
1891break;
1892case 64:
1893#line 399 "perly.y"
1894{ yyval.opval = Nullop; }
1895break;
1896case 65:
1897#line 404 "perly.y"
1898{ yyval.opval = yyvsp[0].opval; }
1899break;
1900case 66:
1901#line 406 "perly.y"
1902{ yyval.opval = Nullop; }
1903break;
1904case 67:
1905#line 410 "perly.y"
1906{ yyval.opval = yyvsp[0].opval; }
1907break;
1908case 68:
1909#line 411 "perly.y"
1910{ yyval.opval = Nullop; PL_expect = XSTATE; }
1911break;
1912case 69:
1913#line 415 "perly.y"
1914{ package(yyvsp[-1].opval); }
1915break;
1916case 70:
1917#line 417 "perly.y"
1918{ package(Nullop); }
1919break;
1920case 71:
1921#line 421 "perly.y"
1922{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
1923break;
1924case 72:
1925#line 423 "perly.y"
1926{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
1927break;
1928case 73:
1929#line 428 "perly.y"
1930{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1931break;
1932case 74:
1933#line 430 "perly.y"
1934{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1935break;
1936case 76:
1937#line 436 "perly.y"
1938{ yyval.opval = yyvsp[-1].opval; }
1939break;
1940case 77:
1941#line 438 "perly.y"
1942{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1943break;
1944case 79:
1945#line 444 "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 447 "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 450 "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 455 "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 459 "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 464 "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 469 "perly.y"
1983{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1984break;
1985case 86:
1986#line 471 "perly.y"
1987{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1988break;
1989case 87:
1990#line 473 "perly.y"
1991{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
1992break;
1993case 88:
1994#line 475 "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 489 "perly.y"
2001{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
2002 PL_expect = XOPERATOR; }
2003break;
2004case 92:
2005#line 492 "perly.y"
2006{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2007break;
2008case 93:
2009#line 494 "perly.y"
2010{ yyval.opval = newBINOP(OP_AELEM, 0,
2011 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2012 scalar(yyvsp[-1].opval));}
2013break;
2014case 94:
2015#line 498 "perly.y"
2016{ yyval.opval = newBINOP(OP_AELEM, 0,
2017 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2018 scalar(yyvsp[-1].opval));}
2019break;
2020case 95:
2021#line 502 "perly.y"
2022{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2023 PL_expect = XOPERATOR; }
2024break;
2025case 96:
2026#line 505 "perly.y"
2027{ yyval.opval = newBINOP(OP_HELEM, 0,
2028 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
2029 jmaybe(yyvsp[-2].opval));
2030 PL_expect = XOPERATOR; }
2031break;
2032case 97:
2033#line 510 "perly.y"
2034{ yyval.opval = newBINOP(OP_HELEM, 0,
2035 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
2036 jmaybe(yyvsp[-2].opval));
2037 PL_expect = XOPERATOR; }
2038break;
2039case 98:
2040#line 515 "perly.y"
2041{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2042 newCVREF(0, scalar(yyvsp[-3].opval))); }
2043break;
2044case 99:
2045#line 518 "perly.y"
2046{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2047 append_elem(OP_LIST, yyvsp[-1].opval,
2048 newCVREF(0, scalar(yyvsp[-4].opval)))); }
2049break;
2050case 100:
2051#line 523 "perly.y"
2052{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2053 append_elem(OP_LIST, yyvsp[-1].opval,
2054 newCVREF(0, scalar(yyvsp[-3].opval)))); }
2055break;
2056case 101:
2057#line 527 "perly.y"
2058{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2059 newCVREF(0, scalar(yyvsp[-2].opval))); }
2060break;
2061case 102:
2062#line 533 "perly.y"
2063{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2064break;
2065case 103:
2066#line 535 "perly.y"
2067{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2068break;
2069case 104:
2070#line 537 "perly.y"
2071{ if (yyvsp[-1].ival != OP_REPEAT)
2072 scalar(yyvsp[-2].opval);
2073 yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2074break;
2075case 105:
2076#line 541 "perly.y"
2077{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2078break;
2079case 106:
2080#line 543 "perly.y"
2081{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2082break;
2083case 107:
2084#line 545 "perly.y"
2085{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2086break;
2087case 108:
2088#line 547 "perly.y"
2089{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2090break;
2091case 109:
2092#line 549 "perly.y"
2093{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2094break;
2095case 110:
2096#line 551 "perly.y"
2097{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2098break;
2099case 111:
2100#line 553 "perly.y"
2101{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2102break;
2103case 112:
2104#line 555 "perly.y"
2105{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2106break;
2107case 113:
2108#line 557 "perly.y"
2109{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2110break;
2111case 114:
2112#line 559 "perly.y"
2113{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2114break;
2115case 115:
2116#line 564 "perly.y"
2117{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2118break;
2119case 116:
2120#line 566 "perly.y"
2121{ yyval.opval = yyvsp[0].opval; }
2122break;
2123case 117:
2124#line 568 "perly.y"
2125{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2126break;
2127case 118:
2128#line 570 "perly.y"
2129{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2130break;
2131case 119:
2132#line 572 "perly.y"
2133{ yyval.opval = newUNOP(OP_POSTINC, 0,
2134 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2135break;
2136case 120:
2137#line 575 "perly.y"
2138{ yyval.opval = newUNOP(OP_POSTDEC, 0,
2139 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2140break;
2141case 121:
2142#line 578 "perly.y"
2143{ yyval.opval = newUNOP(OP_PREINC, 0,
2144 mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2145break;
2146case 122:
2147#line 581 "perly.y"
2148{ yyval.opval = newUNOP(OP_PREDEC, 0,
2149 mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2150break;
2151case 123:
2152#line 588 "perly.y"
2153{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
2154break;
2155case 124:
2156#line 590 "perly.y"
2157{ yyval.opval = newANONLIST(Nullop); }
2158break;
2159case 125:
2160#line 592 "perly.y"
2161{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
2162break;
2163case 126:
2164#line 594 "perly.y"
2165{ yyval.opval = newANONHASH(Nullop); }
2166break;
2167case 127:
2168#line 596 "perly.y"
2169{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2170break;
2171case 128:
2172#line 602 "perly.y"
2173{ yyval.opval = dofile(yyvsp[0].opval); }
2174break;
2175case 129:
2176#line 604 "perly.y"
2177{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2178break;
2179case 130:
2180#line 606 "perly.y"
2181{ yyval.opval = newUNOP(OP_ENTERSUB,
2182 OPf_SPECIAL|OPf_STACKED,
2183 prepend_elem(OP_LIST,
2184 scalar(newCVREF(
2185 (OPpENTERSUB_AMPER<<8),
2186 scalar(yyvsp[-2].opval)
2187 )),Nullop)); dep();}
2188break;
2189case 131:
2190#line 614 "perly.y"
2191{ yyval.opval = newUNOP(OP_ENTERSUB,
2192 OPf_SPECIAL|OPf_STACKED,
2193 append_elem(OP_LIST,
2194 yyvsp[-1].opval,
2195 scalar(newCVREF(
2196 (OPpENTERSUB_AMPER<<8),
2197 scalar(yyvsp[-3].opval)
2198 )))); dep();}
2199break;
2200case 132:
2201#line 623 "perly.y"
2202{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2203 prepend_elem(OP_LIST,
2204 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
2205break;
2206case 133:
2207#line 627 "perly.y"
2208{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2209 prepend_elem(OP_LIST,
2210 yyvsp[-1].opval,
2211 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2212break;
2213case 138:
2214#line 639 "perly.y"
2215{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2216break;
2217case 139:
2218#line 641 "perly.y"
2219{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2220break;
2221case 140:
2222#line 643 "perly.y"
2223{ yyval.opval = yyvsp[0].opval; }
2224break;
2225case 141:
2226#line 645 "perly.y"
2227{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2228break;
2229case 142:
2230#line 647 "perly.y"
2231{ yyval.opval = sawparens(yyvsp[-1].opval); }
2232break;
2233case 143:
2234#line 649 "perly.y"
2235{ yyval.opval = sawparens(newNULLLIST()); }
2236break;
2237case 144:
2238#line 651 "perly.y"
2239{ yyval.opval = yyvsp[0].opval; }
2240break;
2241case 145:
2242#line 653 "perly.y"
2243{ yyval.opval = yyvsp[0].opval; }
2244break;
2245case 146:
2246#line 655 "perly.y"
2247{ yyval.opval = yyvsp[0].opval; }
2248break;
2249case 147:
2250#line 657 "perly.y"
2251{ yyval.opval = yyvsp[0].opval; }
2252break;
2253case 148:
2254#line 659 "perly.y"
2255{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2256break;
2257case 149:
2258#line 661 "perly.y"
2259{ yyval.opval = yyvsp[0].opval; }
2260break;
2261case 150:
2262#line 663 "perly.y"
2263{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2264break;
2265case 151:
2266#line 665 "perly.y"
2267{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2268break;
2269case 152:
2270#line 667 "perly.y"
2271{ yyval.opval = prepend_elem(OP_ASLICE,
2272 newOP(OP_PUSHMARK, 0),
2273 newLISTOP(OP_ASLICE, 0,
2274 list(yyvsp[-1].opval),
2275 ref(yyvsp[-3].opval, OP_ASLICE))); }
2276break;
2277case 153:
2278#line 673 "perly.y"
2279{ yyval.opval = prepend_elem(OP_HSLICE,
2280 newOP(OP_PUSHMARK, 0),
2281 newLISTOP(OP_HSLICE, 0,
2282 list(yyvsp[-2].opval),
2283 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2284 PL_expect = XOPERATOR; }
2285break;
2286case 154:
2287#line 680 "perly.y"
2288{ yyval.opval = yyvsp[0].opval; }
2289break;
2290case 155:
2291#line 682 "perly.y"
2292{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2293break;
2294case 156:
2295#line 684 "perly.y"
2296{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2297break;
2298case 157:
2299#line 686 "perly.y"
2300{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2301 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2302break;
2303case 158:
2304#line 689 "perly.y"
2305{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2306 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2307break;
2308case 159:
2309#line 692 "perly.y"
2310{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2311 PL_hints |= HINT_BLOCK_SCOPE; }
2312break;
2313case 160:
2314#line 695 "perly.y"
2315{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2316break;
2317case 161:
2318#line 697 "perly.y"
2319{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2320break;
2321case 162:
2322#line 699 "perly.y"
2323{ yyval.opval = newOP(yyvsp[0].ival, 0); }
2324break;
2325case 163:
2326#line 701 "perly.y"
2327{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2328break;
2329case 164:
2330#line 703 "perly.y"
2331{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2332break;
2333case 165:
2334#line 705 "perly.y"
2335{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2336 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2337break;
2338case 166:
2339#line 708 "perly.y"
2340{ yyval.opval = newOP(yyvsp[0].ival, 0); }
2341break;
2342case 167:
2343#line 710 "perly.y"
2344{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
2345break;
2346case 168:
2347#line 712 "perly.y"
2348{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2349 scalar(yyvsp[0].opval)); }
2350break;
2351case 169:
2352#line 715 "perly.y"
2353{ yyval.opval = yyvsp[-2].ival == OP_NOT ? newUNOP(yyvsp[-2].ival, 0, newSVOP(OP_CONST, 0, newSViv(0)))
2354 : newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2355break;
2356case 170:
2357#line 718 "perly.y"
2358{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2359break;
2360case 171:
2361#line 720 "perly.y"
2362{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2363break;
2364case 172:
2365#line 722 "perly.y"
2366{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2367break;
2368case 175:
2369#line 729 "perly.y"
2370{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2371break;
2372case 176:
2373#line 731 "perly.y"
2374{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2375break;
2376case 177:
2377#line 736 "perly.y"
2378{ yyval.opval = sawparens(yyvsp[-1].opval); }
2379break;
2380case 178:
2381#line 738 "perly.y"
2382{ yyval.opval = sawparens(newNULLLIST()); }
2383break;
2384case 179:
2385#line 740 "perly.y"
2386{ yyval.opval = yyvsp[0].opval; }
2387break;
2388case 180:
2389#line 742 "perly.y"
2390{ yyval.opval = yyvsp[0].opval; }
2391break;
2392case 181:
2393#line 744 "perly.y"
2394{ yyval.opval = yyvsp[0].opval; }
2395break;
2396case 182:
2397#line 749 "perly.y"
2398{ yyval.opval = Nullop; }
2399break;
2400case 183:
2401#line 751 "perly.y"
2402{ yyval.opval = yyvsp[0].opval; }
2403break;
2404case 184:
2405#line 755 "perly.y"
2406{ yyval.opval = Nullop; }
2407break;
2408case 185:
2409#line 757 "perly.y"
2410{ yyval.opval = yyvsp[0].opval; }
2411break;
2412case 186:
2413#line 759 "perly.y"
2414{ yyval.opval = yyvsp[-1].opval; }
2415break;
2416case 187:
2417#line 765 "perly.y"
2418{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2419break;
2420case 188:
2421#line 769 "perly.y"
2422{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2423break;
2424case 189:
2425#line 773 "perly.y"
2426{ yyval.opval = newSVREF(yyvsp[0].opval); }
2427break;
2428case 190:
2429#line 777 "perly.y"
2430{ yyval.opval = newAVREF(yyvsp[0].opval); }
2431break;
2432case 191:
2433#line 781 "perly.y"
2434{ yyval.opval = newHVREF(yyvsp[0].opval); }
2435break;
2436case 192:
2437#line 785 "perly.y"
2438{ yyval.opval = newAVREF(yyvsp[0].opval); }
2439break;
2440case 193:
2441#line 789 "perly.y"
2442{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
2443break;
2444case 194:
2445#line 794 "perly.y"
2446{ yyval.opval = scalar(yyvsp[0].opval); }
2447break;
2448case 195:
2449#line 796 "perly.y"
2450{ yyval.opval = scalar(yyvsp[0].opval); }
2451break;
2452case 196:
2453#line 798 "perly.y"
2454{ yyval.opval = scope(yyvsp[0].opval); }
2455break;
2456case 197:
2457#line 801 "perly.y"
2458{ yyval.opval = yyvsp[0].opval; }
2459break;
2460#line 2479 "y.tab.c"
2461 }
2462 yyssp -= yym;
2463 yystate = *yyssp;
2464 yyvsp -= yym;
2465 yym = yylhs[yyn];
2466 if (yystate == 0 && yym == 0)
2467 {
2468#if YYDEBUG
2469 if (yydebug)
2470 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2471 state %d\n", YYFINAL);
2472#endif
2473 yystate = YYFINAL;
2474 *++yyssp = YYFINAL;
2475 *++yyvsp = yyval;
2476 if (yychar < 0)
2477 {
2478 if ((yychar = yylex()) < 0) yychar = 0;
2479#if YYDEBUG
2480 if (yydebug)
2481 {
2482 yys = 0;
2483 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2484 if (!yys) yys = "illegal-symbol";
2485 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2486 YYFINAL, yychar, yys);
2487 }
2488#endif
2489 }
2490 if (yychar == 0) goto yyaccept;
2491 goto yyloop;
2492 }
2493 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2494 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2495 yystate = yytable[yyn];
2496 else
2497 yystate = yydgoto[yym];
2498#if YYDEBUG
2499 if (yydebug)
2500 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2501to state %d\n", *yyssp, yystate);
2502#endif
2503 if (yyssp >= yyss + yystacksize - 1)
2504 {
2505 /*
2506 ** reallocate and recover. Note that pointers
2507 ** have to be reset, or bad things will happen
2508 */
2509 int yyps_index = (yyssp - yyss);
2510 int yypv_index = (yyvsp - yyvs);
2511 yystacksize += YYSTACKSIZE;
2512 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2513 ysave->yyss = Renew(yyss, yystacksize, short);
2514 if (!yyvs || !yyss)
2515 goto yyoverflow;
2516 yyssp = yyss + yyps_index;
2517 yyvsp = yyvs + yypv_index;
2518 }
2519 *++yyssp = yystate;
2520 *++yyvsp = yyval;
2521 goto yyloop;
2522yyoverflow:
2523 yyerror("Out of memory for yacc stack");
2524yyabort:
2525 retval = 1;
2526yyaccept:
2527#ifdef USE_ITHREADS
2528 LEAVE; /* force yydestruct() before we return */
2529#endif
2530 return retval;
2531}
2532
2533static void
2534yydestruct(pTHX_ void *ptr)
2535{
2536 struct ysv* ysave = (struct ysv*)ptr;
2537 if (ysave->yyss) Safefree(ysave->yyss);
2538 if (ysave->yyvs) Safefree(ysave->yyvs);
2539 yydebug = ysave->oldyydebug;
2540 yynerrs = ysave->oldyynerrs;
2541 yyerrflag = ysave->oldyyerrflag;
2542 yychar = ysave->oldyychar;
2543 yyval = ysave->oldyyval;
2544 yylval = ysave->oldyylval;
2545 Safefree(ysave);
2546}
2547
2548/*
2549 * Local variables:
2550 * c-indentation-style: bsd
2551 * c-basic-offset: 4
2552 * indent-tabs-mode: t
2553 * End:
2554 *
2555 * ex: set ts=8 sts=4 sw=4 noet:
2556 */
Note: See TracBrowser for help on using the repository browser.