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