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