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_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
23 struct 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
34 static void yydestruct(pTHX_ void *ptr);
35
36 #line 51 "perly.y"
37 #if 0 /* get this from perly.h instead */
38 #line 54 "perly.y"
39 typedef 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
55 static 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 };
77 static 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 };
99 static 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 };
141 static 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 };
149 static 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 };
191 static 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 };
233 static 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
242 static 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 };
701 static 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
1166 static 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,
1169 0,0,0,0,0,"':'","';'",0,0,0,"'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1170 0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1171 0,0,"'{'",0,"'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1172 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1173 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1174 0,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 };
1183 static 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 794 "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
1412 int
yyparse()1413 yyparse()
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
1466 yyloop:
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;
1529 yyinrecovery:
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 }
1592 yyreduce:
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 {
1602 case 1:
1603 #line 131 "perly.y"
1604 { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
1605 break;
1606 case 2:
1607 #line 136 "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); }
1611 break;
1612 case 3:
1613 #line 142 "perly.y"
1614 { yyval.ival = block_start(TRUE); }
1615 break;
1616 case 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 }
1624 break;
1625 case 5:
1626 #line 156 "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); }
1630 break;
1631 case 6:
1632 #line 162 "perly.y"
1633 { yyval.ival = block_start(FALSE); }
1634 break;
1635 case 7:
1636 #line 167 "perly.y"
1637 { yyval.opval = Nullop; }
1638 break;
1639 case 8:
1640 #line 169 "perly.y"
1641 { yyval.opval = yyvsp[-1].opval; }
1642 break;
1643 case 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; }
1649 break;
1650 case 10:
1651 #line 179 "perly.y"
1652 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1653 break;
1654 case 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; }
1664 break;
1665 case 13:
1666 #line 191 "perly.y"
1667 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1668 PL_expect = XSTATE; }
1669 break;
1670 case 14:
1671 #line 197 "perly.y"
1672 { yyval.opval = Nullop; }
1673 break;
1674 case 15:
1675 #line 199 "perly.y"
1676 { yyval.opval = yyvsp[0].opval; }
1677 break;
1678 case 16:
1679 #line 201 "perly.y"
1680 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1681 break;
1682 case 17:
1683 #line 203 "perly.y"
1684 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1685 break;
1686 case 18:
1687 #line 205 "perly.y"
1688 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1689 break;
1690 case 19:
1691 #line 207 "perly.y"
1692 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1693 break;
1694 case 20:
1695 #line 209 "perly.y"
1696 { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
1697 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1698 break;
1699 case 21:
1700 #line 215 "perly.y"
1701 { yyval.opval = Nullop; }
1702 break;
1703 case 22:
1704 #line 217 "perly.y"
1705 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
1706 break;
1707 case 23:
1708 #line 219 "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; }
1712 break;
1713 case 24:
1714 #line 226 "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)); }
1718 break;
1719 case 25:
1720 #line 230 "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)); }
1724 break;
1725 case 26:
1726 #line 237 "perly.y"
1727 { yyval.opval = Nullop; }
1728 break;
1729 case 27:
1730 #line 239 "perly.y"
1731 { yyval.opval = scope(yyvsp[0].opval); }
1732 break;
1733 case 28:
1734 #line 244 "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))); }
1740 break;
1741 case 29:
1742 #line 250 "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))); }
1748 break;
1749 case 30:
1750 #line 256 "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)); }
1753 break;
1754 case 31:
1755 #line 259 "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)); }
1759 break;
1760 case 32:
1761 #line 263 "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)); }
1764 break;
1765 case 33:
1766 #line 267 "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); }
1781 break;
1782 case 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)); }
1787 break;
1788 case 35:
1789 #line 289 "perly.y"
1790 { yyval.opval = Nullop; }
1791 break;
1792 case 37:
1793 #line 295 "perly.y"
1794 { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
1795 break;
1796 case 39:
1797 #line 301 "perly.y"
1798 { yyval.opval = invert(scalar(yyvsp[0].opval)); }
1799 break;
1800 case 40:
1801 #line 306 "perly.y"
1802 { yyval.opval = yyvsp[0].opval; intro_my(); }
1803 break;
1804 case 41:
1805 #line 310 "perly.y"
1806 { yyval.opval = yyvsp[0].opval; intro_my(); }
1807 break;
1808 case 42:
1809 #line 314 "perly.y"
1810 { yyval.opval = yyvsp[0].opval; intro_my(); }
1811 break;
1812 case 43:
1813 #line 318 "perly.y"
1814 { yyval.opval = yyvsp[0].opval; intro_my(); }
1815 break;
1816 case 44:
1817 #line 323 "perly.y"
1818 { yyval.pval = Nullch; }
1819 break;
1820 case 46:
1821 #line 329 "perly.y"
1822 { yyval.ival = 0; }
1823 break;
1824 case 47:
1825 #line 331 "perly.y"
1826 { yyval.ival = 0; }
1827 break;
1828 case 48:
1829 #line 333 "perly.y"
1830 { yyval.ival = 0; }
1831 break;
1832 case 49:
1833 #line 335 "perly.y"
1834 { yyval.ival = 0; }
1835 break;
1836 case 50:
1837 #line 337 "perly.y"
1838 { yyval.ival = 0; }
1839 break;
1840 case 51:
1841 #line 341 "perly.y"
1842 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1843 break;
1844 case 52:
1845 #line 344 "perly.y"
1846 { yyval.opval = yyvsp[0].opval; }
1847 break;
1848 case 53:
1849 #line 345 "perly.y"
1850 { yyval.opval = Nullop; }
1851 break;
1852 case 54:
1853 #line 350 "perly.y"
1854 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1855 break;
1856 case 55:
1857 #line 355 "perly.y"
1858 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1859 break;
1860 case 56:
1861 #line 359 "perly.y"
1862 { yyval.ival = start_subparse(FALSE, 0); }
1863 break;
1864 case 57:
1865 #line 363 "perly.y"
1866 { yyval.ival = start_subparse(FALSE, CVf_ANON); }
1867 break;
1868 case 58:
1869 #line 367 "perly.y"
1870 { yyval.ival = start_subparse(TRUE, 0); }
1871 break;
1872 case 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; }
1879 break;
1880 case 60:
1881 #line 380 "perly.y"
1882 { yyval.opval = Nullop; }
1883 break;
1884 case 62:
1885 #line 386 "perly.y"
1886 { yyval.opval = Nullop; }
1887 break;
1888 case 63:
1889 #line 388 "perly.y"
1890 { yyval.opval = yyvsp[0].opval; }
1891 break;
1892 case 64:
1893 #line 390 "perly.y"
1894 { yyval.opval = Nullop; }
1895 break;
1896 case 65:
1897 #line 395 "perly.y"
1898 { yyval.opval = yyvsp[0].opval; }
1899 break;
1900 case 66:
1901 #line 397 "perly.y"
1902 { yyval.opval = Nullop; }
1903 break;
1904 case 67:
1905 #line 401 "perly.y"
1906 { yyval.opval = yyvsp[0].opval; }
1907 break;
1908 case 68:
1909 #line 402 "perly.y"
1910 { yyval.opval = Nullop; PL_expect = XSTATE; }
1911 break;
1912 case 69:
1913 #line 406 "perly.y"
1914 { package(yyvsp[-1].opval); }
1915 break;
1916 case 70:
1917 #line 408 "perly.y"
1918 { package(Nullop); }
1919 break;
1920 case 71:
1921 #line 412 "perly.y"
1922 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
1923 break;
1924 case 72:
1925 #line 414 "perly.y"
1926 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
1927 break;
1928 case 73:
1929 #line 419 "perly.y"
1930 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1931 break;
1932 case 74:
1933 #line 421 "perly.y"
1934 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1935 break;
1936 case 76:
1937 #line 427 "perly.y"
1938 { yyval.opval = yyvsp[-1].opval; }
1939 break;
1940 case 77:
1941 #line 429 "perly.y"
1942 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1943 break;
1944 case 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) ); }
1948 break;
1949 case 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) ); }
1953 break;
1954 case 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))); }
1960 break;
1961 case 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))); }
1966 break;
1967 case 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))); }
1973 break;
1974 case 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))); }
1980 break;
1981 case 85:
1982 #line 460 "perly.y"
1983 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1984 break;
1985 case 86:
1986 #line 462 "perly.y"
1987 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1988 break;
1989 case 87:
1990 #line 464 "perly.y"
1991 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
1992 break;
1993 case 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)); }
1998 break;
1999 case 91:
2000 #line 480 "perly.y"
2001 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
2002 PL_expect = XOPERATOR; }
2003 break;
2004 case 92:
2005 #line 483 "perly.y"
2006 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2007 break;
2008 case 93:
2009 #line 485 "perly.y"
2010 { yyval.opval = newBINOP(OP_AELEM, 0,
2011 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2012 scalar(yyvsp[-1].opval));}
2013 break;
2014 case 94:
2015 #line 489 "perly.y"
2016 { yyval.opval = newBINOP(OP_AELEM, 0,
2017 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2018 scalar(yyvsp[-1].opval));}
2019 break;
2020 case 95:
2021 #line 493 "perly.y"
2022 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2023 PL_expect = XOPERATOR; }
2024 break;
2025 case 96:
2026 #line 496 "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; }
2031 break;
2032 case 97:
2033 #line 501 "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; }
2038 break;
2039 case 98:
2040 #line 506 "perly.y"
2041 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2042 newCVREF(0, scalar(yyvsp[-3].opval))); }
2043 break;
2044 case 99:
2045 #line 509 "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)))); }
2049 break;
2050 case 100:
2051 #line 514 "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)))); }
2055 break;
2056 case 101:
2057 #line 518 "perly.y"
2058 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2059 newCVREF(0, scalar(yyvsp[-2].opval))); }
2060 break;
2061 case 102:
2062 #line 524 "perly.y"
2063 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2064 break;
2065 case 103:
2066 #line 526 "perly.y"
2067 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2068 break;
2069 case 104:
2070 #line 528 "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)); }
2074 break;
2075 case 105:
2076 #line 532 "perly.y"
2077 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2078 break;
2079 case 106:
2080 #line 534 "perly.y"
2081 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2082 break;
2083 case 107:
2084 #line 536 "perly.y"
2085 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2086 break;
2087 case 108:
2088 #line 538 "perly.y"
2089 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2090 break;
2091 case 109:
2092 #line 540 "perly.y"
2093 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2094 break;
2095 case 110:
2096 #line 542 "perly.y"
2097 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2098 break;
2099 case 111:
2100 #line 544 "perly.y"
2101 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2102 break;
2103 case 112:
2104 #line 546 "perly.y"
2105 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2106 break;
2107 case 113:
2108 #line 548 "perly.y"
2109 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2110 break;
2111 case 114:
2112 #line 550 "perly.y"
2113 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2114 break;
2115 case 115:
2116 #line 555 "perly.y"
2117 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2118 break;
2119 case 116:
2120 #line 557 "perly.y"
2121 { yyval.opval = yyvsp[0].opval; }
2122 break;
2123 case 117:
2124 #line 559 "perly.y"
2125 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2126 break;
2127 case 118:
2128 #line 561 "perly.y"
2129 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2130 break;
2131 case 119:
2132 #line 563 "perly.y"
2133 { yyval.opval = newUNOP(OP_POSTINC, 0,
2134 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2135 break;
2136 case 120:
2137 #line 566 "perly.y"
2138 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2139 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2140 break;
2141 case 121:
2142 #line 569 "perly.y"
2143 { yyval.opval = newUNOP(OP_PREINC, 0,
2144 mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2145 break;
2146 case 122:
2147 #line 572 "perly.y"
2148 { yyval.opval = newUNOP(OP_PREDEC, 0,
2149 mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2150 break;
2151 case 123:
2152 #line 579 "perly.y"
2153 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2154 break;
2155 case 124:
2156 #line 581 "perly.y"
2157 { yyval.opval = newANONLIST(Nullop); }
2158 break;
2159 case 125:
2160 #line 583 "perly.y"
2161 { yyval.opval = newANONHASH(yyvsp[-2].opval); }
2162 break;
2163 case 126:
2164 #line 585 "perly.y"
2165 { yyval.opval = newANONHASH(Nullop); }
2166 break;
2167 case 127:
2168 #line 587 "perly.y"
2169 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2170 break;
2171 case 128:
2172 #line 593 "perly.y"
2173 { yyval.opval = dofile(yyvsp[0].opval); }
2174 break;
2175 case 129:
2176 #line 595 "perly.y"
2177 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2178 break;
2179 case 130:
2180 #line 597 "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();}
2188 break;
2189 case 131:
2190 #line 605 "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();}
2199 break;
2200 case 132:
2201 #line 614 "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();}
2205 break;
2206 case 133:
2207 #line 618 "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();}
2212 break;
2213 case 138:
2214 #line 630 "perly.y"
2215 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2216 break;
2217 case 139:
2218 #line 632 "perly.y"
2219 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2220 break;
2221 case 140:
2222 #line 634 "perly.y"
2223 { yyval.opval = yyvsp[0].opval; }
2224 break;
2225 case 141:
2226 #line 636 "perly.y"
2227 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2228 break;
2229 case 142:
2230 #line 638 "perly.y"
2231 { yyval.opval = sawparens(yyvsp[-1].opval); }
2232 break;
2233 case 143:
2234 #line 640 "perly.y"
2235 { yyval.opval = sawparens(newNULLLIST()); }
2236 break;
2237 case 144:
2238 #line 642 "perly.y"
2239 { yyval.opval = yyvsp[0].opval; }
2240 break;
2241 case 145:
2242 #line 644 "perly.y"
2243 { yyval.opval = yyvsp[0].opval; }
2244 break;
2245 case 146:
2246 #line 646 "perly.y"
2247 { yyval.opval = yyvsp[0].opval; }
2248 break;
2249 case 147:
2250 #line 648 "perly.y"
2251 { yyval.opval = yyvsp[0].opval; }
2252 break;
2253 case 148:
2254 #line 650 "perly.y"
2255 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2256 break;
2257 case 149:
2258 #line 652 "perly.y"
2259 { yyval.opval = yyvsp[0].opval; }
2260 break;
2261 case 150:
2262 #line 654 "perly.y"
2263 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2264 break;
2265 case 151:
2266 #line 656 "perly.y"
2267 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2268 break;
2269 case 152:
2270 #line 658 "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))); }
2276 break;
2277 case 153:
2278 #line 664 "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; }
2285 break;
2286 case 154:
2287 #line 671 "perly.y"
2288 { yyval.opval = yyvsp[0].opval; }
2289 break;
2290 case 155:
2291 #line 673 "perly.y"
2292 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2293 break;
2294 case 156:
2295 #line 675 "perly.y"
2296 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2297 break;
2298 case 157:
2299 #line 677 "perly.y"
2300 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2301 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2302 break;
2303 case 158:
2304 #line 680 "perly.y"
2305 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2306 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2307 break;
2308 case 159:
2309 #line 683 "perly.y"
2310 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2311 PL_hints |= HINT_BLOCK_SCOPE; }
2312 break;
2313 case 160:
2314 #line 686 "perly.y"
2315 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2316 break;
2317 case 161:
2318 #line 688 "perly.y"
2319 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2320 break;
2321 case 162:
2322 #line 690 "perly.y"
2323 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2324 break;
2325 case 163:
2326 #line 692 "perly.y"
2327 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2328 break;
2329 case 164:
2330 #line 694 "perly.y"
2331 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2332 break;
2333 case 165:
2334 #line 696 "perly.y"
2335 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2336 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2337 break;
2338 case 166:
2339 #line 699 "perly.y"
2340 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2341 break;
2342 case 167:
2343 #line 701 "perly.y"
2344 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2345 break;
2346 case 168:
2347 #line 703 "perly.y"
2348 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2349 scalar(yyvsp[0].opval)); }
2350 break;
2351 case 169:
2352 #line 706 "perly.y"
2353 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2354 break;
2355 case 170:
2356 #line 708 "perly.y"
2357 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2358 break;
2359 case 171:
2360 #line 710 "perly.y"
2361 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2362 break;
2363 case 172:
2364 #line 712 "perly.y"
2365 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2366 break;
2367 case 175:
2368 #line 719 "perly.y"
2369 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2370 break;
2371 case 176:
2372 #line 721 "perly.y"
2373 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2374 break;
2375 case 177:
2376 #line 726 "perly.y"
2377 { yyval.opval = sawparens(yyvsp[-1].opval); }
2378 break;
2379 case 178:
2380 #line 728 "perly.y"
2381 { yyval.opval = sawparens(newNULLLIST()); }
2382 break;
2383 case 179:
2384 #line 730 "perly.y"
2385 { yyval.opval = yyvsp[0].opval; }
2386 break;
2387 case 180:
2388 #line 732 "perly.y"
2389 { yyval.opval = yyvsp[0].opval; }
2390 break;
2391 case 181:
2392 #line 734 "perly.y"
2393 { yyval.opval = yyvsp[0].opval; }
2394 break;
2395 case 182:
2396 #line 739 "perly.y"
2397 { yyval.opval = Nullop; }
2398 break;
2399 case 183:
2400 #line 741 "perly.y"
2401 { yyval.opval = yyvsp[0].opval; }
2402 break;
2403 case 184:
2404 #line 745 "perly.y"
2405 { yyval.opval = Nullop; }
2406 break;
2407 case 185:
2408 #line 747 "perly.y"
2409 { yyval.opval = yyvsp[0].opval; }
2410 break;
2411 case 186:
2412 #line 749 "perly.y"
2413 { yyval.opval = yyvsp[-1].opval; }
2414 break;
2415 case 187:
2416 #line 755 "perly.y"
2417 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2418 break;
2419 case 188:
2420 #line 759 "perly.y"
2421 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2422 break;
2423 case 189:
2424 #line 763 "perly.y"
2425 { yyval.opval = newSVREF(yyvsp[0].opval); }
2426 break;
2427 case 190:
2428 #line 767 "perly.y"
2429 { yyval.opval = newAVREF(yyvsp[0].opval); }
2430 break;
2431 case 191:
2432 #line 771 "perly.y"
2433 { yyval.opval = newHVREF(yyvsp[0].opval); }
2434 break;
2435 case 192:
2436 #line 775 "perly.y"
2437 { yyval.opval = newAVREF(yyvsp[0].opval); }
2438 break;
2439 case 193:
2440 #line 779 "perly.y"
2441 { yyval.opval = newGVREF(0,yyvsp[0].opval); }
2442 break;
2443 case 194:
2444 #line 784 "perly.y"
2445 { yyval.opval = scalar(yyvsp[0].opval); }
2446 break;
2447 case 195:
2448 #line 786 "perly.y"
2449 { yyval.opval = scalar(yyvsp[0].opval); }
2450 break;
2451 case 196:
2452 #line 788 "perly.y"
2453 { yyval.opval = scope(yyvsp[0].opval); }
2454 break;
2455 case 197:
2456 #line 791 "perly.y"
2457 { yyval.opval = yyvsp[0].opval; }
2458 break;
2459 #line 2460 "perly.c"
2460 }
2461 yyssp -= yym;
2462 yystate = *yyssp;
2463 yyvsp -= yym;
2464 yym = yylhs[yyn];
2465 if (yystate == 0 && yym == 0)
2466 {
2467 #if YYDEBUG
2468 if (yydebug)
2469 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2470 state %d\n", YYFINAL);
2471 #endif
2472 yystate = YYFINAL;
2473 *++yyssp = YYFINAL;
2474 *++yyvsp = yyval;
2475 if (yychar < 0)
2476 {
2477 if ((yychar = yylex()) < 0) yychar = 0;
2478 #if YYDEBUG
2479 if (yydebug)
2480 {
2481 yys = 0;
2482 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2483 if (!yys) yys = "illegal-symbol";
2484 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2485 YYFINAL, yychar, yys);
2486 }
2487 #endif
2488 }
2489 if (yychar == 0) goto yyaccept;
2490 goto yyloop;
2491 }
2492 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2493 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2494 yystate = yytable[yyn];
2495 else
2496 yystate = yydgoto[yym];
2497 #if YYDEBUG
2498 if (yydebug)
2499 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2500 to state %d\n", *yyssp, yystate);
2501 #endif
2502 if (yyssp >= yyss + yystacksize - 1)
2503 {
2504 /*
2505 ** reallocate and recover. Note that pointers
2506 ** have to be reset, or bad things will happen
2507 */
2508 int yyps_index = (yyssp - yyss);
2509 int yypv_index = (yyvsp - yyvs);
2510 yystacksize += YYSTACKSIZE;
2511 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2512 ysave->yyss = Renew(yyss, yystacksize, short);
2513 if (!yyvs || !yyss)
2514 goto yyoverflow;
2515 yyssp = yyss + yyps_index;
2516 yyvsp = yyvs + yypv_index;
2517 }
2518 *++yyssp = yystate;
2519 *++yyvsp = yyval;
2520 goto yyloop;
2521 yyoverflow:
2522 yyerror("Out of memory for yacc stack");
2523 yyabort:
2524 retval = 1;
2525 yyaccept:
2526 #ifdef USE_ITHREADS
2527 LEAVE; /* force yydestruct() before we return */
2528 #endif
2529 return retval;
2530 }
2531
2532 static void
yydestruct(pTHX_ void * ptr)2533 yydestruct(pTHX_ void *ptr)
2534 {
2535 struct ysv* ysave = (struct ysv*)ptr;
2536 if (ysave->yyss) Safefree(ysave->yyss);
2537 if (ysave->yyvs) Safefree(ysave->yyvs);
2538 yydebug = ysave->oldyydebug;
2539 yynerrs = ysave->oldyynerrs;
2540 yyerrflag = ysave->oldyyerrflag;
2541 yychar = ysave->oldyychar;
2542 yyval = ysave->oldyyval;
2543 yylval = ysave->oldyylval;
2544 Safefree(ysave);
2545 }
2546