2 static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
7 #define PERL_IN_PERLY_C
10 #define dep() deprecate("\"do\" to call subroutines")
12 /* stuff included here to make perly_c.diff apply better */
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
32 static void yydestruct(pTHXo_ void *ptr);
35 #if 0 /* get this from perly.h instead */
47 #define YYLEX_PARAM (&yychar)
53 static short yylhs[] = { -1,
54 50, 0, 8, 6, 9, 7, 10, 10, 10, 11,
55 11, 11, 11, 24, 24, 24, 24, 24, 24, 24,
56 14, 14, 14, 13, 13, 42, 42, 12, 12, 12,
57 12, 12, 12, 12, 26, 26, 27, 27, 28, 29,
58 30, 31, 32, 49, 49, 1, 1, 1, 1, 1,
59 2, 38, 38, 46, 51, 3, 4, 5, 39, 40,
60 40, 44, 44, 44, 45, 45, 41, 41, 52, 52,
61 54, 53, 15, 15, 15, 25, 25, 25, 36, 36,
62 36, 36, 36, 36, 36, 36, 55, 36, 37, 37,
63 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
64 17, 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 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
71 47, 47, 48, 48, 48, 48, 48, 33, 33, 34,
72 34, 34, 43, 23, 18, 19, 20, 21, 22, 35,
75 static short yylen[] = { 2,
76 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
77 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
78 0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
79 9, 8, 11, 3, 0, 1, 0, 1, 1, 1,
80 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
81 4, 1, 0, 6, 6, 0, 0, 0, 1, 0,
82 1, 0, 2, 1, 2, 1, 1, 1, 3, 2,
83 0, 7, 3, 3, 1, 2, 3, 1, 3, 5,
84 6, 3, 3, 5, 2, 4, 0, 5, 1, 1,
85 5, 4, 5, 4, 5, 6, 5, 4, 5, 4,
86 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
87 3, 3, 3, 5, 3, 2, 2, 2, 2, 2,
88 2, 2, 2, 2, 1, 2, 3, 2, 3, 2,
89 4, 3, 5, 1, 1, 1, 1, 1, 1, 6,
90 5, 4, 5, 1, 1, 3, 4, 3, 2, 2,
91 4, 5, 4, 5, 1, 2, 2, 1, 2, 2,
92 2, 1, 3, 1, 3, 4, 4, 6, 1, 1,
93 3, 2, 3, 2, 1, 1, 1, 0, 1, 0,
94 1, 2, 1, 2, 2, 2, 2, 2, 2, 1,
97 static short yydefred[] = { 1,
98 0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
99 46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
100 0, 70, 71, 0, 14, 4, 169, 0, 0, 144,
101 0, 164, 0, 57, 57, 0, 0, 0, 0, 0,
102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
104 0, 12, 0, 0, 0, 0, 0, 0, 0, 10,
105 0, 0, 0, 0, 0, 136, 138, 0, 0, 0,
106 0, 170, 125, 52, 0, 59, 0, 69, 0, 0,
107 7, 190, 193, 192, 191, 0, 0, 0, 0, 0,
108 0, 4, 4, 4, 4, 4, 4, 0, 0, 0,
109 0, 0, 159, 0, 0, 0, 0, 85, 0, 188,
110 0, 150, 0, 0, 0, 0, 0, 0, 0, 175,
111 177, 176, 0, 184, 0, 0, 0, 0, 0, 0,
112 0, 0, 130, 0, 0, 0, 185, 186, 187, 189,
113 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
115 0, 0, 0, 121, 122, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 13, 0, 51, 61, 0,
117 0, 0, 0, 83, 0, 0, 87, 0, 0, 0,
118 0, 0, 0, 0, 4, 163, 165, 0, 0, 0,
119 0, 0, 0, 0, 132, 0, 148, 174, 0, 0,
120 171, 0, 0, 129, 27, 0, 0, 19, 0, 0,
121 0, 0, 73, 0, 0, 0, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
123 0, 90, 0, 0, 101, 0, 0, 0, 0, 0,
124 0, 0, 146, 0, 0, 0, 0, 0, 0, 3,
125 0, 0, 167, 0, 0, 0, 42, 0, 43, 0,
126 0, 0, 0, 183, 0, 0, 36, 41, 0, 0,
127 0, 166, 182, 86, 0, 151, 0, 153, 0, 131,
128 173, 65, 0, 0, 0, 0, 98, 0, 0, 0,
129 0, 100, 94, 0, 92, 0, 142, 0, 147, 63,
130 68, 67, 55, 0, 54, 84, 0, 88, 133, 0,
131 0, 0, 0, 0, 0, 0, 0, 80, 152, 154,
132 141, 0, 0, 0, 99, 93, 0, 97, 95, 143,
133 91, 72, 168, 6, 0, 0, 0, 0, 0, 0,
134 0, 0, 140, 96, 81, 7, 28, 29, 0, 0,
135 24, 25, 0, 32, 0, 0, 0, 22, 0, 0,
136 0, 31, 5, 0, 30, 0, 0, 33, 0, 23,
138 static short yydgoto[] = { 1,
139 10, 11, 20, 100, 19, 91, 366, 94, 355, 3,
140 12, 13, 70, 371, 281, 72, 73, 74, 75, 76,
141 77, 78, 79, 287, 81, 288, 277, 279, 282, 290,
142 278, 280, 118, 210, 96, 82, 253, 85, 87, 190,
143 323, 152, 285, 267, 221, 14, 83, 133, 15, 2,
146 static short yysindex[] = { 0,
147 0, 0, -199, 0, 0, 0, -53, 0, 0, 0,
148 0, 0, 0, 0, 646, 0, 0, 0, -217, -207,
149 44, 0, 0, -207, 0, 0, 0, -32, -32, 0,
150 66, 0, 2177, 0, 0, 69, 83, 93, 110, -35,
151 2177, 119, 121, 136, 1013, 973, -32, 1077, 1344, -146,
152 2177, 68, -32, 2177, 2177, 2177, 2177, 2177, 2177, 1384,
153 1424, 0, 2177, 2177, -32, -32, -32, -32, -152, 0,
154 470, 845, -13, -65, -63, 0, 0, 55, 137, 122,
155 138, 0, 0, 0, 60, 0, -70, 0, -66, -70,
156 0, 0, 0, 0, 0, 2177, 146, 2177, 1085, 60,
157 -70, 0, 0, 0, 0, 0, 0, 152, 845, 153,
158 1464, 973, 0, 1085, 0, -65, 138, 0, 2177, 0,
159 160, 0, 1085, 2, 76, -52, 2177, 1085, 1524, 0,
160 0, 0, -96, 0, 138, -181, -181, -181, -112, -112,
161 123, -38, 0, -74, -181, -181, 0, 0, 0, 0,
162 60, 0, 2177, 2177, 2177, 2177, 2177, 2177, 2177, 2177,
163 2177, 2177, 2177, 2177, 2177, 2177, 2177, 2177, 2177, 2177,
164 2177, 2177, 2177, 0, 0, -16, 2177, 1731, 2177, 2177,
165 2177, 2177, 2177, 2177, 1791, 0, 2177, 0, 0, -88,
166 -34, -88, 339, 0, 2177, 287, 0, -88, 2177, 2177,
167 2177, 2177, 173, 1850, 0, 0, 0, -33, 46, 180,
168 2177, 138, 1910, 2025, 0, 97, 0, 0, -31, -29,
169 0, 2177, 133, 0, 0, -237, -237, 0, -237, -237,
170 -237, -69, 0, 1614, 1085, 684, 167, 107, 845, 3800,
171 1125, 405, 1164, 778, -228, -181, -181, 2177, 0, 2117,
172 2177, 0, 197, -48, 0, -9, -72, -45, -7, -42,
173 56, -36, 0, -4, 845, -10, -47, 2177, -47, 0,
174 216, 2177, 0, 2177, 60, -237, 0, 219, 0, 230,
175 -237, 233, 237, 0, 242, 470, 0, 0, 246, 225,
176 2177, 0, 0, 0, 13, 0, 18, 0, 29, 0,
177 0, 0, 61, 2177, 2177, 54, 0, 32, 63, 2177,
178 165, 0, 0, 174, 0, 178, 0, 191, 0, 0,
179 0, 0, 0, 261, 0, 0, 350, 0, 0, 182,
180 182, 182, 182, 2177, 182, 2177, 281, 0, 0, 0,
181 0, 102, 1237, 202, 0, 0, 294, 0, 0, 0,
182 0, 0, 0, 0, -152, -152, -130, -130, 297, -152,
183 290, 182, 0, 0, 0, 0, 0, 0, 182, 318,
184 0, 0, 182, 0, 1850, -152, 407, 0, 2177, -152,
185 324, 0, 0, 326, 0, 182, 182, 0, -130, 0,
187 static short yyrindex[] = { 0,
188 0, 0, 243, 0, 0, 0, 0, 0, 0, 0,
189 0, 0, 0, 0, 0, 0, 0, 0, 236, 0,
190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
192 36, 451, 0, 0, 2208, 2271, 0, 0, 0, 0,
193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
194 0, 0, 0, 0, 0, 0, 0, 0, 115, 0,
195 -12, 939, 2325, 2385, 2463, 0, 0, 2510, 2561, 0,
196 1220, 0, 0, 0, 0, 0, -44, 0, 0, -44,
197 0, 0, 0, 0, 0, 2271, 0, 0, 3846, 0,
198 -105, 0, 0, 0, 0, 0, 0, 0, 2612, 0,
199 0, 327, 0, 3883, 522, 583, 3032, 0, 0, 0,
200 2621, 0, 3893, 2385, 0, 0, 2271, 3930, 0, 0,
201 0, 0, 2667, 0, 3092, 3374, 3418, 3458, 3219, 3331,
202 2746, 0, 0, 0, 3496, 3567, 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, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 2797, 0, 0, -23,
207 0, -23, 913, 0, 327, 0, 0, 247, 336, 0,
208 0, 0, 0, 333, 0, 0, 0, 0, 352, 0,
209 0, 3138, 0, 0, 0, 0, 0, 0, 0, 2857,
210 0, 0, 2903, 0, 0, -8, -2, 0, 7, 33,
211 42, 2255, 0, -28, 3968, 1822, 3732, 3769, 3023, 0,
212 4119, 4082, 4021, 4005, 1044, 3610, 3694, 0, 0, 0,
213 0, 0, 2949, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 0, 0, 3657, -21, 0, 345, 0, 0,
215 0, 0, 0, 2271, 0, 71, 0, 0, 0, 0,
216 364, 0, 0, 0, 0, 86, 0, 0, 0, 0,
217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
218 0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
221 0, 0, 0, 0, 0, 355, 0, 0, 0, 0,
222 0, 0, 2972, 0, 0, 0, 0, 0, 0, 0,
223 0, 0, 0, 0, 115, 115, 175, 175, 0, 115,
224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
225 0, 0, 0, 0, 374, 115, 913, 0, 0, 115,
226 0, 0, 0, 0, 0, 0, 0, 0, 175, 0,
228 static short yygindex[] = { 0,
229 0, 0, 164, 383, 0, 14, 0, 37, 655, -89,
230 0, 0, 0, -336, -15, 3415, 0, 2211, 368, 369,
231 0, 0, 0, 410, 916, 0, 0, 273, -163, 62,
232 94, 249, -71, -186, 634, 0, 0, 0, 428, -46,
233 184, 118, 0, -149, 0, 0, 0, 0, 0, 0,
236 #define YYTABLESIZE 4423
237 static short yytable[] = { 71,
238 65, 193, 223, 65, 107, 22, 216, 292, 271, 301,
239 311, 321, 111, 314, 60, 111, 316, 60, 224, 65,
240 313, 372, 318, 250, 194, 181, 178, 183, 15, 111,
241 111, 312, 18, 126, 111, 62, 319, 64, 39, 84,
242 289, 214, 269, 192, 142, 144, 15, 16, 275, 86,
243 18, 69, 390, 338, 198, 217, 39, 180, 339, 182,
244 163, 164, 158, 159, 111, 16, 4, 5, 6, 340,
245 7, 8, 345, 17, 251, 26, 155, 179, 60, 155,
246 172, 113, 20, 173, 122, 315, 174, 175, 176, 293,
247 26, 17, 181, 155, 155, 208, 209, 9, 155, 62,
248 20, 64, 88, 65, 67, 98, 248, 129, 102, 177,
249 127, 38, 344, 219, 26, 199, 200, 201, 202, 203,
250 204, 188, 103, 347, 180, 151, 40, 337, 155, 38,
251 173, 66, 104, 174, 175, 176, 197, 226, 227, 229,
252 230, 231, 232, 233, 15, 369, 370, 26, 317, 105,
253 26, 26, 26, 341, 26, 346, 26, 26, 110, 26,
254 111, 254, 256, 257, 258, 259, 260, 261, 262, 264,
255 359, 23, 24, 26, 21, 112, 185, 184, 26, 209,
256 186, 187, 26, 276, 227, 195, 227, 225, 286, 189,
257 191, 205, 60, 206, 363, 295, 324, 297, 299, 213,
258 215, 220, 328, 21, 176, 26, 303, 21, 65, 266,
259 21, 21, 21, 222, 21, 384, 21, 21, 291, 21,
260 294, 300, 268, 304, 92, 158, 159, 158, 159, 93,
261 302, 159, 306, 21, 308, 309, 310, 26, 21, 26,
262 26, 249, 2, 111, 111, 111, 111, 158, 159, 320,
263 111, 158, 159, 60, 158, 159, 326, 158, 159, 330,
264 106, 158, 159, 158, 159, 21, 158, 159, 158, 159,
265 331, 111, 111, 332, 111, 44, 377, 333, 44, 44,
266 44, 334, 44, 336, 44, 44, 335, 44, 342, 348,
267 158, 159, 158, 159, 209, 158, 159, 21, 349, 21,
268 21, 44, 350, 322, 354, 322, 44, 155, 155, 155,
269 155, 329, 158, 159, 155, 351, 155, 158, 159, 352,
270 276, 362, 155, 155, 155, 155, 364, 273, 158, 159,
271 272, 158, 159, 44, 365, 155, 155, 373, 155, 155,
272 155, 155, 155, 155, 155, 158, 159, 155, 375, 166,
273 155, 155, 155, 158, 159, 158, 159, 379, 53, 71,
274 158, 159, 158, 159, 386, 44, 387, 180, 44, 62,
275 26, 26, 26, 26, 26, 26, 37, 26, 26, 26,
276 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
277 353, 35, 181, 26, 26, 163, 26, 26, 26, 26,
278 26, 158, 159, 178, 40, 26, 26, 26, 26, 26,
279 26, 26, 166, 37, 35, 172, 26, 101, 173, 131,
280 132, 174, 175, 176, 80, 26, 228, 26, 26, 361,
281 21, 21, 21, 21, 21, 21, 381, 21, 21, 21,
282 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
283 283, 90, 325, 21, 21, 0, 21, 21, 21, 21,
284 21, 0, 0, 270, 0, 21, 21, 21, 21, 21,
285 21, 21, 367, 368, 0, 172, 21, 374, 173, 0,
286 0, 174, 175, 176, 0, 21, 0, 21, 21, 0,
287 0, 162, 0, 382, 162, 0, 0, 385, 44, 44,
288 44, 44, 44, 44, 0, 44, 44, 44, 162, 162,
289 0, 44, 0, 162, 44, 44, 44, 44, 0, 0,
290 0, 44, 44, 0, 44, 44, 44, 44, 44, 0,
291 0, 383, 0, 44, 44, 44, 44, 44, 44, 0,
292 0, 0, 0, 162, 44, 0, 0, 0, 0, 0,
293 0, 0, 0, 44, 190, 44, 44, 190, 190, 190,
294 0, 190, 169, 190, 190, 169, 190, 160, 0, 0,
295 0, 0, 0, 161, 162, 163, 164, 0, 0, 169,
296 169, 0, 0, 0, 169, 190, 0, 0, 0, 165,
297 167, 168, 169, 170, 171, 172, 0, 0, 173, 0,
298 0, 174, 175, 176, 4, 5, 6, 0, 7, 8,
299 0, 0, 190, 0, 169, 191, 0, 0, 191, 191,
300 191, 0, 191, 134, 191, 191, 134, 191, 0, 0,
301 160, 0, 0, 0, 0, 9, 161, 162, 163, 164,
302 134, 134, 0, 0, 0, 134, 191, 190, 0, 0,
303 0, 0, 165, 167, 168, 169, 170, 171, 172, 0,
304 0, 173, 97, 0, 174, 175, 176, 0, 0, 0,
305 0, 0, 4, 5, 6, 134, 7, 8, 55, 119,
306 120, 65, 67, 53, 0, 60, 134, 68, 64, 0,
307 63, 161, 162, 163, 164, 0, 0, 0, 147, 148,
308 149, 150, 0, 9, 62, 0, 0, 0, 191, 66,
309 169, 170, 171, 172, 0, 0, 173, 0, 0, 174,
310 175, 176, 162, 162, 162, 162, 0, 0, 0, 162,
311 0, 162, 0, 0, 0, 0, 61, 162, 162, 162,
312 162, 153, 154, 155, 156, 211, 0, 0, 157, 0,
313 162, 162, 0, 162, 162, 162, 162, 162, 162, 162,
314 0, 0, 162, 0, 0, 162, 162, 162, 26, 158,
315 159, 56, 0, 0, 0, 0, 0, 0, 190, 190,
316 190, 190, 190, 0, 190, 190, 190, 0, 0, 0,
317 190, 0, 0, 169, 169, 169, 169, 0, 0, 0,
318 169, 190, 169, 190, 190, 190, 190, 190, 169, 169,
319 169, 169, 190, 190, 190, 190, 190, 190, 0, 0,
320 0, 169, 169, 190, 169, 169, 169, 169, 169, 169,
321 169, 0, 190, 169, 190, 190, 169, 169, 169, 191,
322 191, 191, 191, 191, 0, 191, 191, 191, 0, 0,
323 0, 191, 0, 0, 134, 134, 134, 134, 0, 0,
324 0, 134, 191, 134, 191, 191, 191, 191, 191, 134,
325 134, 134, 134, 191, 191, 191, 191, 191, 191, 0,
326 0, 0, 134, 134, 191, 134, 134, 134, 134, 134,
327 134, 134, 0, 191, 134, 191, 191, 134, 134, 134,
328 0, 25, 27, 28, 29, 30, 31, 166, 32, 33,
329 34, 0, 0, 0, 35, 0, 0, 36, 37, 38,
330 39, 0, 0, 0, 40, 41, 0, 42, 43, 44,
331 45, 46, 0, 0, 0, 0, 47, 48, 49, 50,
332 51, 52, 0, 0, 0, 44, 0, 54, 44, 44,
333 44, 0, 44, 0, 44, 44, 57, 44, 58, 59,
334 0, 117, 0, 0, 0, 0, 0, 0, 0, 135,
335 161, 44, 163, 164, 0, 0, 44, 0, 0, 78,
336 0, 0, 78, 0, 0, 356, 357, 358, 0, 360,
337 0, 171, 172, 0, 0, 173, 78, 78, 174, 175,
338 176, 0, 0, 44, 0, 55, 0, 0, 65, 67,
339 53, 117, 60, 0, 68, 64, 376, 63, 0, 0,
340 0, 0, 0, 378, 0, 0, 0, 380, 0, 0,
341 0, 78, 0, 0, 212, 44, 66, 0, 44, 0,
342 388, 389, 117, 0, 0, 55, 0, 0, 65, 67,
343 53, 0, 60, 0, 68, 64, 0, 63, 0, 0,
344 0, 0, 0, 61, 161, 162, 163, 164, 0, 0,
345 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
346 0, 0, 0, 0, 106, 171, 172, 106, 0, 173,
347 0, 0, 174, 175, 176, 26, 0, 0, 56, 0,
348 0, 106, 106, 61, 0, 0, 106, 0, 0, 55,
349 0, 0, 65, 67, 53, 0, 60, 0, 68, 64,
350 0, 63, 0, 0, 0, 160, 0, 0, 0, 0,
351 0, 161, 162, 163, 164, 26, 106, 0, 56, 0,
352 66, 0, 0, 0, 0, 0, 0, 165, 167, 168,
353 169, 170, 171, 172, 0, 0, 173, 0, 0, 174,
354 175, 176, 0, 0, 0, 0, 0, 61, 44, 44,
355 44, 44, 44, 44, 0, 44, 44, 44, 0, 0,
356 0, 44, 0, 117, 44, 44, 44, 44, 0, 117,
357 0, 44, 44, 0, 44, 44, 44, 44, 44, 26,
358 0, 0, 56, 44, 44, 44, 44, 44, 44, 0,
359 78, 78, 78, 78, 44, 0, 0, 78, 0, 0,
360 0, 0, 0, 44, 0, 44, 44, 0, 0, 115,
361 28, 29, 30, 31, 93, 32, 33, 34, 78, 78,
362 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
363 0, 0, 41, 0, 42, 43, 44, 45, 46, 0,
364 75, 0, 0, 47, 48, 49, 50, 51, 52, 27,
365 28, 29, 30, 31, 54, 32, 33, 34, 75, 0,
366 0, 35, 0, 57, 0, 58, 59, 0, 0, 0,
367 0, 0, 41, 0, 42, 43, 44, 45, 46, 166,
368 0, 0, 0, 47, 48, 49, 50, 51, 52, 0,
369 0, 0, 75, 0, 54, 106, 106, 106, 106, 0,
370 0, 0, 106, 57, 106, 58, 59, 0, 0, 0,
371 106, 106, 0, 121, 28, 29, 30, 31, 0, 32,
372 33, 34, 0, 106, 106, 35, 106, 106, 106, 106,
373 106, 106, 0, 0, 0, 0, 41, 0, 42, 43,
374 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
375 50, 51, 52, 163, 164, 0, 55, 0, 54, 65,
376 67, 53, 0, 60, 0, 68, 64, 57, 63, 58,
377 59, 0, 171, 172, 0, 0, 173, 0, 0, 174,
378 175, 176, 125, 0, 0, 0, 0, 66, 0, 0,
379 0, 161, 162, 163, 164, 0, 55, 0, 0, 65,
380 67, 53, 0, 60, 141, 68, 64, 0, 63, 168,
381 169, 170, 171, 172, 61, 0, 173, 0, 0, 174,
382 175, 176, 0, 0, 0, 0, 0, 66, 0, 0,
383 161, 162, 163, 164, 0, 0, 55, 0, 0, 65,
384 67, 53, 0, 60, 0, 68, 64, 0, 63, 56,
385 170, 171, 172, 0, 61, 173, 0, 0, 174, 175,
386 176, 0, 0, 0, 0, 0, 0, 66, 0, 0,
387 0, 75, 75, 75, 75, 0, 55, 0, 75, 65,
388 67, 53, 0, 60, 207, 68, 64, 0, 63, 56,
389 0, 0, 0, 0, 61, 0, 143, 160, 0, 75,
390 75, 0, 0, 161, 162, 163, 164, 66, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392 167, 168, 169, 170, 171, 172, 0, 0, 173, 56,
393 0, 174, 175, 176, 61, 0, 55, 0, 0, 65,
394 67, 53, 0, 60, 218, 68, 64, 0, 63, 0,
395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 66, 0, 56,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 27, 28, 29, 30, 31, 0, 32, 33, 34, 0,
399 0, 0, 35, 0, 61, 0, 0, 0, 0, 0,
400 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
401 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
402 27, 28, 29, 30, 31, 54, 32, 33, 34, 56,
403 0, 0, 35, 0, 57, 0, 58, 59, 0, 0,
404 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
405 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
406 27, 28, 29, 30, 31, 54, 32, 33, 34, 0,
407 0, 0, 35, 0, 57, 0, 58, 59, 0, 0,
408 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
409 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
410 27, 28, 29, 30, 31, 54, 32, 33, 34, 0,
411 0, 0, 35, 0, 57, 0, 58, 59, 0, 0,
412 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
413 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
414 0, 0, 0, 55, 0, 54, 65, 67, 53, 0,
415 60, 255, 68, 64, 57, 63, 58, 59, 0, 0,
416 27, 28, 29, 30, 31, 0, 32, 33, 34, 0,
417 0, 0, 35, 0, 66, 0, 0, 0, 0, 0,
418 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
419 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
420 0, 61, 0, 55, 0, 54, 65, 67, 53, 0,
421 60, 263, 68, 64, 57, 63, 58, 59, 0, 0,
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423 0, 0, 0, 0, 66, 0, 56, 0, 0, 0,
424 0, 0, 108, 0, 0, 108, 0, 0, 0, 0,
425 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
426 108, 61, 55, 0, 108, 65, 67, 53, 0, 60,
427 0, 68, 64, 0, 63, 0, 0, 0, 0, 0,
428 161, 162, 163, 164, 0, 0, 0, 0, 0, 0,
429 0, 0, 0, 66, 108, 0, 56, 167, 168, 169,
430 170, 171, 172, 0, 0, 173, 0, 0, 174, 175,
431 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
432 61, 0, 55, 0, 0, 65, 67, 53, 0, 60,
433 296, 68, 64, 0, 63, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435 0, 0, 0, 66, 0, 56, 0, 0, 0, 0,
436 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
437 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
438 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
439 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
440 0, 47, 48, 49, 50, 51, 52, 0, 0, 0,
441 0, 0, 54, 0, 0, 56, 0, 0, 0, 0,
442 0, 57, 0, 58, 59, 0, 0, 27, 28, 29,
443 30, 31, 0, 32, 33, 34, 0, 55, 0, 35,
444 65, 67, 53, 0, 60, 298, 68, 64, 0, 63,
445 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
446 0, 47, 48, 49, 50, 51, 52, 0, 66, 0,
447 0, 0, 54, 108, 108, 108, 108, 0, 0, 0,
448 108, 57, 108, 58, 59, 25, 27, 28, 29, 30,
449 31, 0, 32, 33, 34, 61, 0, 0, 35, 0,
450 0, 108, 108, 0, 108, 108, 108, 108, 108, 41,
451 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
452 47, 48, 49, 50, 51, 52, 0, 0, 0, 55,
453 56, 54, 65, 67, 53, 0, 60, 307, 68, 64,
454 57, 63, 58, 59, 0, 0, 27, 28, 29, 30,
455 31, 0, 32, 33, 34, 0, 0, 0, 35, 0,
456 66, 0, 0, 0, 0, 0, 0, 0, 0, 41,
457 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
458 47, 48, 49, 50, 51, 52, 0, 61, 0, 55,
459 0, 54, 65, 67, 53, 0, 60, 0, 68, 64,
460 57, 63, 58, 59, 0, 0, 0, 0, 0, 0,
461 0, 0, 0, 0, 0, 0, 0, 0, 95, 95,
462 66, 0, 56, 0, 0, 0, 0, 0, 158, 0,
463 108, 158, 0, 0, 0, 0, 116, 95, 124, 0,
464 0, 0, 130, 95, 0, 158, 158, 61, 0, 0,
465 158, 0, 0, 0, 0, 95, 95, 95, 95, 0,
466 0, 27, 28, 29, 30, 31, 0, 32, 33, 34,
467 0, 0, 0, 35, 0, 74, 0, 0, 74, 0,
468 158, 0, 56, 0, 41, 0, 42, 43, 44, 45,
469 46, 178, 0, 74, 178, 47, 48, 49, 50, 51,
470 52, 0, 116, 0, 0, 0, 54, 0, 178, 178,
471 0, 0, 0, 178, 0, 57, 0, 58, 59, 0,
472 0, 0, 0, 0, 0, 0, 0, 74, 0, 0,
473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
474 0, 0, 0, 178, 0, 139, 0, 0, 139, 0,
475 0, 0, 0, 27, 28, 29, 30, 31, 0, 32,
476 33, 34, 139, 139, 0, 35, 252, 139, 0, 0,
477 0, 0, 0, 0, 0, 0, 41, 0, 42, 43,
478 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
479 50, 51, 52, 284, 0, 0, 0, 139, 54, 0,
480 0, 0, 0, 0, 0, 134, 0, 57, 134, 58,
481 59, 0, 0, 27, 28, 29, 30, 31, 0, 32,
482 33, 34, 134, 134, 0, 35, 0, 134, 0, 0,
483 0, 0, 0, 0, 0, 0, 41, 0, 42, 43,
484 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
485 50, 51, 52, 0, 0, 0, 0, 134, 54, 158,
486 158, 158, 158, 0, 0, 0, 158, 57, 158, 58,
487 59, 0, 0, 0, 158, 158, 158, 158, 0, 0,
488 0, 0, 0, 137, 0, 0, 137, 158, 158, 0,
489 158, 158, 158, 158, 158, 158, 158, 0, 0, 158,
490 137, 137, 158, 158, 158, 137, 74, 74, 74, 74,
491 0, 0, 0, 74, 0, 0, 0, 0, 0, 0,
492 0, 0, 178, 178, 178, 178, 0, 0, 0, 178,
493 135, 178, 0, 135, 74, 137, 0, 178, 178, 178,
494 178, 0, 0, 0, 0, 0, 0, 135, 135, 0,
495 178, 178, 135, 178, 178, 178, 178, 178, 178, 178,
496 0, 0, 178, 0, 0, 178, 178, 178, 0, 0,
497 0, 0, 0, 0, 0, 0, 139, 139, 139, 139,
498 0, 145, 135, 139, 145, 139, 0, 0, 0, 0,
499 0, 139, 139, 139, 139, 0, 0, 0, 145, 145,
500 0, 0, 0, 145, 139, 139, 0, 139, 139, 139,
501 139, 139, 139, 139, 0, 0, 139, 0, 0, 139,
502 139, 139, 0, 0, 0, 0, 0, 0, 0, 0,
503 0, 0, 156, 145, 0, 156, 134, 134, 134, 134,
504 0, 169, 0, 134, 169, 134, 0, 0, 0, 156,
505 156, 134, 134, 134, 134, 0, 0, 0, 169, 169,
506 0, 0, 0, 169, 134, 134, 0, 134, 134, 134,
507 134, 134, 134, 134, 0, 0, 134, 0, 0, 134,
508 134, 134, 0, 0, 156, 0, 0, 172, 0, 0,
509 172, 0, 0, 169, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 172, 172, 0, 0, 0, 172,
511 0, 0, 0, 0, 137, 137, 137, 137, 0, 0,
512 0, 137, 0, 137, 0, 0, 0, 0, 0, 137,
513 137, 137, 137, 0, 0, 0, 0, 0, 0, 172,
514 0, 0, 137, 137, 0, 137, 137, 137, 137, 137,
515 137, 137, 0, 0, 137, 0, 0, 137, 137, 137,
516 0, 135, 135, 135, 135, 0, 128, 0, 135, 128,
517 135, 0, 0, 0, 0, 0, 135, 135, 135, 135,
518 0, 0, 0, 128, 128, 0, 0, 0, 128, 135,
519 135, 0, 135, 135, 135, 135, 135, 135, 135, 0,
520 0, 135, 0, 0, 135, 135, 135, 0, 0, 0,
521 0, 0, 145, 145, 145, 145, 0, 76, 128, 145,
522 76, 145, 0, 0, 0, 0, 0, 145, 145, 145,
523 145, 0, 0, 0, 76, 76, 0, 0, 0, 76,
524 145, 145, 0, 145, 145, 145, 145, 145, 145, 145,
525 0, 0, 145, 0, 0, 145, 145, 145, 0, 0,
526 0, 0, 0, 156, 156, 156, 156, 0, 0, 76,
527 156, 0, 169, 169, 169, 169, 0, 66, 0, 169,
528 66, 169, 0, 0, 0, 0, 0, 169, 169, 169,
529 169, 156, 156, 0, 66, 66, 0, 0, 0, 66,
530 169, 169, 0, 169, 169, 169, 169, 169, 169, 169,
531 0, 0, 169, 0, 0, 169, 169, 169, 172, 172,
532 172, 172, 0, 127, 0, 172, 127, 172, 0, 66,
533 0, 0, 0, 172, 172, 172, 172, 0, 0, 0,
534 127, 127, 0, 0, 0, 127, 172, 172, 0, 172,
535 172, 172, 172, 172, 172, 172, 0, 0, 172, 0,
536 0, 172, 172, 172, 0, 0, 0, 0, 0, 82,
537 0, 0, 82, 0, 0, 127, 0, 0, 0, 0,
538 0, 0, 0, 0, 0, 0, 82, 82, 0, 0,
539 0, 82, 114, 0, 0, 114, 0, 128, 128, 128,
540 128, 0, 0, 0, 128, 0, 128, 0, 0, 114,
541 114, 0, 128, 128, 128, 128, 0, 0, 0, 0,
542 0, 82, 0, 0, 0, 128, 128, 0, 128, 128,
543 128, 128, 128, 128, 128, 0, 0, 128, 0, 0,
544 128, 128, 128, 102, 114, 0, 102, 0, 76, 76,
545 76, 76, 179, 0, 0, 76, 0, 76, 0, 0,
546 102, 102, 0, 76, 76, 76, 76, 0, 0, 179,
547 179, 0, 0, 0, 179, 0, 76, 76, 0, 76,
548 76, 76, 76, 76, 76, 76, 0, 0, 76, 0,
549 0, 76, 76, 76, 0, 102, 0, 0, 0, 0,
550 0, 0, 0, 0, 179, 0, 0, 0, 66, 66,
551 66, 66, 157, 0, 0, 66, 0, 66, 0, 0,
552 0, 0, 0, 66, 66, 66, 66, 0, 0, 157,
553 157, 0, 0, 0, 157, 0, 66, 66, 0, 66,
554 66, 66, 66, 66, 66, 66, 0, 0, 66, 0,
555 0, 66, 66, 66, 127, 127, 127, 127, 79, 0,
556 0, 127, 0, 127, 157, 0, 0, 0, 0, 127,
557 127, 127, 127, 0, 0, 79, 79, 0, 0, 0,
558 79, 0, 127, 127, 0, 127, 127, 127, 127, 127,
559 127, 127, 0, 0, 127, 0, 0, 127, 127, 127,
560 82, 82, 82, 82, 0, 0, 0, 82, 0, 82,
561 79, 0, 0, 0, 0, 82, 82, 82, 82, 0,
562 0, 0, 0, 114, 114, 114, 114, 0, 82, 82,
563 114, 82, 82, 82, 82, 82, 82, 82, 0, 123,
564 82, 0, 123, 82, 82, 82, 0, 0, 0, 0,
565 0, 114, 114, 0, 114, 0, 123, 123, 0, 0,
566 0, 123, 0, 0, 0, 0, 0, 0, 0, 0,
567 0, 0, 0, 0, 102, 102, 102, 102, 0, 0,
568 0, 102, 0, 179, 179, 179, 179, 0, 0, 0,
569 179, 123, 179, 0, 0, 0, 0, 0, 179, 179,
570 179, 179, 102, 102, 0, 0, 0, 0, 0, 0,
571 0, 179, 179, 0, 179, 179, 179, 179, 179, 179,
572 179, 0, 0, 179, 0, 0, 179, 179, 179, 0,
573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
574 0, 0, 0, 157, 157, 157, 157, 0, 0, 0,
575 157, 124, 157, 0, 124, 0, 0, 0, 157, 157,
576 157, 157, 0, 0, 0, 0, 0, 0, 124, 124,
577 0, 157, 157, 124, 157, 157, 157, 157, 157, 157,
578 157, 0, 0, 157, 0, 0, 157, 157, 157, 79,
579 79, 79, 79, 0, 118, 0, 79, 118, 79, 0,
580 0, 0, 0, 124, 79, 79, 79, 79, 0, 0,
581 0, 118, 118, 0, 0, 0, 118, 79, 79, 0,
582 79, 79, 79, 79, 79, 79, 79, 99, 0, 79,
583 0, 0, 79, 79, 79, 109, 0, 0, 119, 114,
584 0, 119, 123, 0, 0, 128, 118, 0, 0, 136,
585 137, 138, 139, 140, 0, 119, 119, 145, 146, 0,
586 119, 0, 0, 0, 0, 0, 0, 0, 0, 0,
587 123, 123, 123, 123, 0, 0, 0, 123, 120, 123,
588 0, 120, 0, 0, 0, 123, 123, 123, 123, 0,
589 119, 0, 196, 0, 0, 120, 120, 0, 123, 123,
590 120, 123, 123, 123, 123, 123, 123, 123, 0, 0,
591 123, 0, 0, 0, 0, 0, 116, 0, 0, 116,
592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
593 120, 0, 0, 116, 116, 0, 0, 0, 116, 0,
594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
595 0, 0, 0, 0, 234, 235, 236, 237, 238, 239,
596 240, 241, 242, 243, 244, 245, 246, 247, 116, 0,
597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
598 0, 265, 124, 124, 124, 124, 0, 117, 0, 124,
599 117, 124, 0, 0, 0, 0, 0, 124, 124, 124,
600 124, 0, 0, 0, 117, 117, 0, 0, 0, 117,
601 124, 124, 0, 124, 124, 124, 124, 124, 124, 124,
602 0, 0, 124, 0, 0, 118, 118, 118, 118, 0,
603 115, 0, 118, 115, 118, 0, 0, 0, 0, 117,
604 118, 118, 118, 118, 0, 0, 0, 115, 115, 0,
605 0, 0, 115, 118, 118, 0, 118, 118, 118, 118,
606 118, 118, 118, 0, 0, 0, 327, 0, 0, 119,
607 119, 119, 119, 0, 0, 0, 119, 77, 119, 0,
608 77, 0, 115, 0, 119, 119, 119, 119, 0, 0,
609 0, 0, 0, 0, 77, 77, 0, 119, 119, 343,
610 119, 119, 119, 119, 119, 119, 119, 0, 0, 120,
611 120, 120, 120, 0, 103, 0, 120, 103, 120, 0,
612 0, 0, 0, 0, 120, 120, 120, 120, 0, 77,
613 0, 103, 103, 0, 0, 0, 103, 120, 120, 0,
614 120, 120, 120, 120, 120, 120, 120, 116, 116, 116,
615 116, 0, 104, 0, 116, 104, 116, 0, 0, 0,
616 0, 0, 116, 116, 116, 116, 103, 0, 0, 104,
617 104, 0, 0, 0, 104, 116, 116, 0, 116, 116,
618 116, 116, 116, 116, 116, 0, 0, 0, 0, 105,
619 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
620 0, 0, 0, 0, 104, 0, 105, 105, 0, 0,
621 0, 105, 0, 0, 0, 0, 0, 0, 117, 117,
622 117, 117, 0, 0, 0, 117, 0, 117, 0, 0,
623 0, 0, 0, 117, 117, 117, 117, 305, 0, 0,
624 0, 105, 166, 0, 0, 0, 117, 117, 0, 117,
625 117, 117, 117, 117, 117, 117, 0, 0, 0, 0,
626 0, 115, 115, 115, 115, 0, 161, 0, 115, 161,
627 115, 0, 0, 0, 0, 0, 115, 115, 115, 115,
628 0, 0, 0, 161, 161, 0, 0, 0, 161, 115,
629 115, 0, 115, 115, 115, 115, 115, 115, 115, 0,
630 0, 0, 0, 160, 0, 0, 160, 0, 77, 77,
631 77, 77, 0, 149, 0, 77, 149, 0, 161, 0,
632 160, 160, 0, 0, 0, 160, 0, 0, 0, 0,
633 149, 149, 0, 0, 0, 149, 77, 77, 0, 0,
634 0, 0, 0, 0, 0, 103, 103, 103, 103, 0,
635 126, 0, 103, 126, 103, 160, 0, 0, 0, 0,
636 103, 103, 103, 103, 0, 149, 0, 126, 126, 0,
637 0, 0, 126, 103, 103, 0, 103, 103, 103, 103,
638 103, 103, 103, 104, 104, 104, 104, 0, 107, 0,
639 104, 107, 104, 0, 0, 0, 0, 0, 104, 104,
640 104, 104, 126, 0, 0, 107, 107, 0, 0, 0,
641 107, 104, 104, 0, 104, 104, 104, 104, 104, 104,
642 105, 105, 105, 105, 0, 109, 0, 105, 109, 105,
643 0, 0, 0, 0, 0, 105, 105, 0, 105, 0,
644 107, 110, 109, 109, 110, 0, 0, 109, 105, 105,
645 0, 105, 105, 105, 105, 105, 105, 0, 110, 110,
646 160, 0, 0, 110, 0, 0, 161, 162, 163, 164,
647 0, 0, 0, 0, 0, 0, 0, 109, 0, 0,
648 0, 0, 165, 167, 168, 169, 170, 171, 172, 0,
649 0, 173, 0, 110, 174, 175, 176, 161, 161, 161,
650 161, 0, 112, 0, 161, 112, 161, 0, 0, 0,
651 0, 0, 161, 161, 0, 0, 0, 0, 0, 112,
652 112, 0, 0, 0, 112, 161, 161, 0, 161, 161,
653 161, 161, 161, 0, 160, 160, 160, 160, 0, 113,
654 0, 160, 113, 160, 149, 149, 149, 149, 0, 160,
655 160, 149, 0, 149, 112, 0, 113, 113, 0, 149,
656 149, 113, 160, 160, 0, 160, 160, 160, 160, 160,
657 0, 0, 149, 149, 0, 149, 149, 149, 149, 149,
658 0, 126, 126, 126, 126, 0, 0, 0, 126, 0,
659 126, 113, 0, 0, 0, 0, 126, 126, 0, 0,
660 0, 0, 0, 0, 0, 0, 0, 0, 0, 126,
661 126, 0, 126, 126, 126, 126, 126, 0, 0, 107,
662 107, 107, 107, 0, 0, 0, 107, 0, 107, 0,
663 0, 0, 0, 0, 0, 107, 0, 0, 0, 0,
664 0, 0, 0, 0, 0, 0, 0, 107, 107, 0,
665 107, 107, 107, 107, 107, 0, 109, 109, 109, 109,
666 0, 0, 0, 109, 0, 109, 0, 0, 0, 0,
667 0, 0, 110, 110, 110, 110, 0, 0, 0, 110,
668 0, 110, 0, 0, 109, 109, 0, 109, 109, 109,
669 109, 109, 0, 0, 0, 0, 0, 0, 0, 0,
670 110, 110, 0, 110, 110, 110, 110, 0, 0, 0,
671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
673 0, 0, 0, 112, 112, 112, 112, 0, 0, 0,
674 112, 0, 112, 0, 0, 0, 0, 0, 0, 0,
675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
676 0, 112, 112, 0, 112, 112, 112, 0, 0, 0,
677 113, 113, 113, 113, 0, 0, 0, 113, 0, 113,
678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
679 0, 0, 0, 0, 0, 0, 0, 0, 113, 113,
682 static short yycheck[] = { 15,
683 36, 91, 41, 36, 40, 59, 59, 41, 195, 41,
684 59, 59, 41, 59, 59, 44, 59, 123, 93, 36,
685 93, 358, 59, 40, 96, 91, 40, 91, 41, 58,
686 59, 41, 41, 49, 63, 59, 41, 59, 41, 257,
687 204, 40, 192, 90, 60, 61, 59, 41, 198, 257,
688 59, 15, 389, 41, 101, 127, 59, 123, 41, 123,
689 289, 290, 300, 301, 93, 59, 266, 267, 268, 41,
690 270, 271, 41, 41, 91, 123, 41, 91, 123, 44,
691 309, 45, 41, 312, 48, 93, 315, 316, 317, 44,
692 123, 59, 91, 58, 59, 111, 112, 297, 63, 123,
693 59, 123, 59, 36, 37, 40, 123, 40, 40, 123,
694 257, 41, 59, 129, 0, 102, 103, 104, 105, 106,
695 107, 85, 40, 310, 123, 278, 41, 291, 93, 59,
696 312, 64, 40, 315, 316, 317, 100, 153, 154, 155,
697 156, 157, 158, 159, 59, 276, 277, 33, 93, 40,
698 36, 37, 38, 93, 40, 93, 42, 43, 40, 45,
699 40, 177, 178, 179, 180, 181, 182, 183, 184, 185,
700 334, 8, 9, 59, 0, 40, 40, 123, 64, 195,
701 59, 44, 123, 199, 200, 40, 202, 151, 204, 260,
702 257, 40, 298, 41, 93, 211, 268, 213, 214, 40,
703 125, 298, 274, 257, 317, 91, 222, 33, 36, 298,
704 36, 37, 38, 91, 40, 379, 42, 43, 205, 45,
705 41, 125, 257, 91, 257, 300, 301, 300, 301, 262,
706 260, 301, 248, 59, 250, 251, 40, 123, 64, 125,
707 126, 258, 0, 272, 273, 274, 275, 300, 301, 260,
708 279, 300, 301, 298, 300, 301, 41, 300, 301, 41,
709 296, 300, 301, 300, 301, 91, 300, 301, 300, 301,
710 41, 300, 301, 41, 303, 33, 366, 41, 36, 37,
711 38, 40, 40, 59, 42, 43, 41, 45, 304, 125,
712 300, 301, 300, 301, 310, 300, 301, 123, 125, 125,
713 126, 59, 125, 267, 123, 269, 64, 272, 273, 274,
714 275, 275, 300, 301, 279, 125, 281, 300, 301, 59,
715 336, 41, 287, 288, 289, 290, 125, 41, 300, 301,
716 44, 300, 301, 91, 41, 300, 301, 41, 303, 304,
717 305, 306, 307, 308, 309, 300, 301, 312, 59, 63,
718 315, 316, 317, 300, 301, 300, 301, 40, 123, 375,
719 300, 301, 300, 301, 41, 123, 41, 41, 126, 123,
720 256, 257, 258, 259, 260, 261, 41, 263, 264, 265,
721 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
722 41, 59, 41, 279, 280, 289, 282, 283, 284, 285,
723 286, 300, 301, 59, 41, 291, 292, 293, 294, 295,
724 296, 297, 63, 59, 41, 309, 302, 35, 312, 52,
725 52, 315, 316, 317, 15, 311, 154, 313, 314, 336,
726 256, 257, 258, 259, 260, 261, 375, 263, 264, 265,
727 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
728 202, 24, 269, 279, 280, -1, 282, 283, 284, 285,
729 286, -1, -1, 125, -1, 291, 292, 293, 294, 295,
730 296, 297, 355, 356, -1, 309, 302, 360, 312, -1,
731 -1, 315, 316, 317, -1, 311, -1, 313, 314, -1,
732 -1, 41, -1, 376, 44, -1, -1, 380, 256, 257,
733 258, 259, 260, 261, -1, 263, 264, 265, 58, 59,
734 -1, 269, -1, 63, 272, 273, 274, 275, -1, -1,
735 -1, 279, 280, -1, 282, 283, 284, 285, 286, -1,
736 -1, 125, -1, 291, 292, 293, 294, 295, 296, -1,
737 -1, -1, -1, 93, 302, -1, -1, -1, -1, -1,
738 -1, -1, -1, 311, 33, 313, 314, 36, 37, 38,
739 -1, 40, 41, 42, 43, 44, 45, 281, -1, -1,
740 -1, -1, -1, 287, 288, 289, 290, -1, -1, 58,
741 59, -1, -1, -1, 63, 64, -1, -1, -1, 303,
742 304, 305, 306, 307, 308, 309, -1, -1, 312, -1,
743 -1, 315, 316, 317, 266, 267, 268, -1, 270, 271,
744 -1, -1, 91, -1, 93, 33, -1, -1, 36, 37,
745 38, -1, 40, 41, 42, 43, 44, 45, -1, -1,
746 281, -1, -1, -1, -1, 297, 287, 288, 289, 290,
747 58, 59, -1, -1, -1, 63, 64, 126, -1, -1,
748 -1, -1, 303, 304, 305, 306, 307, 308, 309, -1,
749 -1, 312, 29, -1, 315, 316, 317, -1, -1, -1,
750 -1, -1, 266, 267, 268, 93, 270, 271, 33, 46,
751 47, 36, 37, 38, -1, 40, 53, 42, 43, -1,
752 45, 287, 288, 289, 290, -1, -1, -1, 65, 66,
753 67, 68, -1, 297, 59, -1, -1, -1, 126, 64,
754 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
755 316, 317, 272, 273, 274, 275, -1, -1, -1, 279,
756 -1, 281, -1, -1, -1, -1, 91, 287, 288, 289,
757 290, 272, 273, 274, 275, 112, -1, -1, 279, -1,
758 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
759 -1, -1, 312, -1, -1, 315, 316, 317, 123, 300,
760 301, 126, -1, -1, -1, -1, -1, -1, 257, 258,
761 259, 260, 261, -1, 263, 264, 265, -1, -1, -1,
762 269, -1, -1, 272, 273, 274, 275, -1, -1, -1,
763 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
764 289, 290, 291, 292, 293, 294, 295, 296, -1, -1,
765 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
766 309, -1, 311, 312, 313, 314, 315, 316, 317, 257,
767 258, 259, 260, 261, -1, 263, 264, 265, -1, -1,
768 -1, 269, -1, -1, 272, 273, 274, 275, -1, -1,
769 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
770 288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
771 -1, -1, 300, 301, 302, 303, 304, 305, 306, 307,
772 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
773 -1, 256, 257, 258, 259, 260, 261, 63, 263, 264,
774 265, -1, -1, -1, 269, -1, -1, 272, 273, 274,
775 275, -1, -1, -1, 279, 280, -1, 282, 283, 284,
776 285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
777 295, 296, -1, -1, -1, 33, -1, 302, 36, 37,
778 38, -1, 40, -1, 42, 43, 311, 45, 313, 314,
779 -1, 46, -1, -1, -1, -1, -1, -1, -1, 54,
780 287, 59, 289, 290, -1, -1, 64, -1, -1, 41,
781 -1, -1, 44, -1, -1, 331, 332, 333, -1, 335,
782 -1, 308, 309, -1, -1, 312, 58, 59, 315, 316,
783 317, -1, -1, 91, -1, 33, -1, -1, 36, 37,
784 38, 96, 40, -1, 42, 43, 362, 45, -1, -1,
785 -1, -1, -1, 369, -1, -1, -1, 373, -1, -1,
786 -1, 93, -1, -1, 119, 123, 64, -1, 126, -1,
787 386, 387, 127, -1, -1, 33, -1, -1, 36, 37,
788 38, -1, 40, -1, 42, 43, -1, 45, -1, -1,
789 -1, -1, -1, 91, 287, 288, 289, 290, -1, -1,
790 -1, -1, -1, -1, -1, -1, 64, -1, -1, -1,
791 -1, -1, -1, -1, 41, 308, 309, 44, -1, 312,
792 -1, -1, 315, 316, 317, 123, -1, -1, 126, -1,
793 -1, 58, 59, 91, -1, -1, 63, -1, -1, 33,
794 -1, -1, 36, 37, 38, -1, 40, -1, 42, 43,
795 -1, 45, -1, -1, -1, 281, -1, -1, -1, -1,
796 -1, 287, 288, 289, 290, 123, 93, -1, 126, -1,
797 64, -1, -1, -1, -1, -1, -1, 303, 304, 305,
798 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
799 316, 317, -1, -1, -1, -1, -1, 91, 256, 257,
800 258, 259, 260, 261, -1, 263, 264, 265, -1, -1,
801 -1, 269, -1, 268, 272, 273, 274, 275, -1, 274,
802 -1, 279, 280, -1, 282, 283, 284, 285, 286, 123,
803 -1, -1, 126, 291, 292, 293, 294, 295, 296, -1,
804 272, 273, 274, 275, 302, -1, -1, 279, -1, -1,
805 -1, -1, -1, 311, -1, 313, 314, -1, -1, 257,
806 258, 259, 260, 261, 262, 263, 264, 265, 300, 301,
807 -1, 269, -1, -1, -1, -1, -1, -1, -1, -1,
808 -1, -1, 280, -1, 282, 283, 284, 285, 286, -1,
809 41, -1, -1, 291, 292, 293, 294, 295, 296, 257,
810 258, 259, 260, 261, 302, 263, 264, 265, 59, -1,
811 -1, 269, -1, 311, -1, 313, 314, -1, -1, -1,
812 -1, -1, 280, -1, 282, 283, 284, 285, 286, 63,
813 -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
814 -1, -1, 93, -1, 302, 272, 273, 274, 275, -1,
815 -1, -1, 279, 311, 281, 313, 314, -1, -1, -1,
816 287, 288, -1, 257, 258, 259, 260, 261, -1, 263,
817 264, 265, -1, 300, 301, 269, 303, 304, 305, 306,
818 307, 308, -1, -1, -1, -1, 280, -1, 282, 283,
819 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
820 294, 295, 296, 289, 290, -1, 33, -1, 302, 36,
821 37, 38, -1, 40, -1, 42, 43, 311, 45, 313,
822 314, -1, 308, 309, -1, -1, 312, -1, -1, 315,
823 316, 317, 59, -1, -1, -1, -1, 64, -1, -1,
824 -1, 287, 288, 289, 290, -1, 33, -1, -1, 36,
825 37, 38, -1, 40, 41, 42, 43, -1, 45, 305,
826 306, 307, 308, 309, 91, -1, 312, -1, -1, 315,
827 316, 317, -1, -1, -1, -1, -1, 64, -1, -1,
828 287, 288, 289, 290, -1, -1, 33, -1, -1, 36,
829 37, 38, -1, 40, -1, 42, 43, -1, 45, 126,
830 307, 308, 309, -1, 91, 312, -1, -1, 315, 316,
831 317, -1, -1, -1, -1, -1, -1, 64, -1, -1,
832 -1, 272, 273, 274, 275, -1, 33, -1, 279, 36,
833 37, 38, -1, 40, 41, 42, 43, -1, 45, 126,
834 -1, -1, -1, -1, 91, -1, 93, 281, -1, 300,
835 301, -1, -1, 287, 288, 289, 290, 64, -1, -1,
836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
837 304, 305, 306, 307, 308, 309, -1, -1, 312, 126,
838 -1, 315, 316, 317, 91, -1, 33, -1, -1, 36,
839 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
841 -1, -1, -1, -1, -1, -1, -1, 64, -1, 126,
842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
843 257, 258, 259, 260, 261, -1, 263, 264, 265, -1,
844 -1, -1, 269, -1, 91, -1, -1, -1, -1, -1,
845 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
846 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
847 257, 258, 259, 260, 261, 302, 263, 264, 265, 126,
848 -1, -1, 269, -1, 311, -1, 313, 314, -1, -1,
849 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
850 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
851 257, 258, 259, 260, 261, 302, 263, 264, 265, -1,
852 -1, -1, 269, -1, 311, -1, 313, 314, -1, -1,
853 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
854 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
855 257, 258, 259, 260, 261, 302, 263, 264, 265, -1,
856 -1, -1, 269, -1, 311, -1, 313, 314, -1, -1,
857 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
858 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
859 -1, -1, -1, 33, -1, 302, 36, 37, 38, -1,
860 40, 41, 42, 43, 311, 45, 313, 314, -1, -1,
861 257, 258, 259, 260, 261, -1, 263, 264, 265, -1,
862 -1, -1, 269, -1, 64, -1, -1, -1, -1, -1,
863 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
864 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
865 -1, 91, -1, 33, -1, 302, 36, 37, 38, -1,
866 40, 41, 42, 43, 311, 45, 313, 314, -1, -1,
867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
868 -1, -1, -1, -1, 64, -1, 126, -1, -1, -1,
869 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
870 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
871 59, 91, 33, -1, 63, 36, 37, 38, -1, 40,
872 -1, 42, 43, -1, 45, -1, -1, -1, -1, -1,
873 287, 288, 289, 290, -1, -1, -1, -1, -1, -1,
874 -1, -1, -1, 64, 93, -1, 126, 304, 305, 306,
875 307, 308, 309, -1, -1, 312, -1, -1, 315, 316,
876 317, -1, -1, -1, -1, -1, -1, -1, -1, -1,
877 91, -1, 33, -1, -1, 36, 37, 38, -1, 40,
878 41, 42, 43, -1, 45, -1, -1, -1, -1, -1,
879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
880 -1, -1, -1, 64, -1, 126, -1, -1, -1, -1,
881 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
882 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
883 91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
884 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
885 -1, 291, 292, 293, 294, 295, 296, -1, -1, -1,
886 -1, -1, 302, -1, -1, 126, -1, -1, -1, -1,
887 -1, 311, -1, 313, 314, -1, -1, 257, 258, 259,
888 260, 261, -1, 263, 264, 265, -1, 33, -1, 269,
889 36, 37, 38, -1, 40, 41, 42, 43, -1, 45,
890 280, -1, 282, 283, 284, 285, 286, -1, -1, -1,
891 -1, 291, 292, 293, 294, 295, 296, -1, 64, -1,
892 -1, -1, 302, 272, 273, 274, 275, -1, -1, -1,
893 279, 311, 281, 313, 314, 256, 257, 258, 259, 260,
894 261, -1, 263, 264, 265, 91, -1, -1, 269, -1,
895 -1, 300, 301, -1, 303, 304, 305, 306, 307, 280,
896 -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
897 291, 292, 293, 294, 295, 296, -1, -1, -1, 33,
898 126, 302, 36, 37, 38, -1, 40, 41, 42, 43,
899 311, 45, 313, 314, -1, -1, 257, 258, 259, 260,
900 261, -1, 263, 264, 265, -1, -1, -1, 269, -1,
901 64, -1, -1, -1, -1, -1, -1, -1, -1, 280,
902 -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
903 291, 292, 293, 294, 295, 296, -1, 91, -1, 33,
904 -1, 302, 36, 37, 38, -1, 40, -1, 42, 43,
905 311, 45, 313, 314, -1, -1, -1, -1, -1, -1,
906 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
907 64, -1, 126, -1, -1, -1, -1, -1, 41, -1,
908 40, 44, -1, -1, -1, -1, 46, 47, 48, -1,
909 -1, -1, 52, 53, -1, 58, 59, 91, -1, -1,
910 63, -1, -1, -1, -1, 65, 66, 67, 68, -1,
911 -1, 257, 258, 259, 260, 261, -1, 263, 264, 265,
912 -1, -1, -1, 269, -1, 41, -1, -1, 44, -1,
913 93, -1, 126, -1, 280, -1, 282, 283, 284, 285,
914 286, 41, -1, 59, 44, 291, 292, 293, 294, 295,
915 296, -1, 112, -1, -1, -1, 302, -1, 58, 59,
916 -1, -1, -1, 63, -1, 311, -1, 313, 314, -1,
917 -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
919 -1, -1, -1, 93, -1, 41, -1, -1, 44, -1,
920 -1, -1, -1, 257, 258, 259, 260, 261, -1, 263,
921 264, 265, 58, 59, -1, 269, 176, 63, -1, -1,
922 -1, -1, -1, -1, -1, -1, 280, -1, 282, 283,
923 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
924 294, 295, 296, 203, -1, -1, -1, 93, 302, -1,
925 -1, -1, -1, -1, -1, 41, -1, 311, 44, 313,
926 314, -1, -1, 257, 258, 259, 260, 261, -1, 263,
927 264, 265, 58, 59, -1, 269, -1, 63, -1, -1,
928 -1, -1, -1, -1, -1, -1, 280, -1, 282, 283,
929 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
930 294, 295, 296, -1, -1, -1, -1, 93, 302, 272,
931 273, 274, 275, -1, -1, -1, 279, 311, 281, 313,
932 314, -1, -1, -1, 287, 288, 289, 290, -1, -1,
933 -1, -1, -1, 41, -1, -1, 44, 300, 301, -1,
934 303, 304, 305, 306, 307, 308, 309, -1, -1, 312,
935 58, 59, 315, 316, 317, 63, 272, 273, 274, 275,
936 -1, -1, -1, 279, -1, -1, -1, -1, -1, -1,
937 -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
938 41, 281, -1, 44, 300, 93, -1, 287, 288, 289,
939 290, -1, -1, -1, -1, -1, -1, 58, 59, -1,
940 300, 301, 63, 303, 304, 305, 306, 307, 308, 309,
941 -1, -1, 312, -1, -1, 315, 316, 317, -1, -1,
942 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
943 -1, 41, 93, 279, 44, 281, -1, -1, -1, -1,
944 -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
945 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305,
946 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
947 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
948 -1, -1, 41, 93, -1, 44, 272, 273, 274, 275,
949 -1, 41, -1, 279, 44, 281, -1, -1, -1, 58,
950 59, 287, 288, 289, 290, -1, -1, -1, 58, 59,
951 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305,
952 306, 307, 308, 309, -1, -1, 312, -1, -1, 315,
953 316, 317, -1, -1, 93, -1, -1, 41, -1, -1,
954 44, -1, -1, 93, -1, -1, -1, -1, -1, -1,
955 -1, -1, -1, -1, 58, 59, -1, -1, -1, 63,
956 -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
957 -1, 279, -1, 281, -1, -1, -1, -1, -1, 287,
958 288, 289, 290, -1, -1, -1, -1, -1, -1, 93,
959 -1, -1, 300, 301, -1, 303, 304, 305, 306, 307,
960 308, 309, -1, -1, 312, -1, -1, 315, 316, 317,
961 -1, 272, 273, 274, 275, -1, 41, -1, 279, 44,
962 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
963 -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
964 301, -1, 303, 304, 305, 306, 307, 308, 309, -1,
965 -1, 312, -1, -1, 315, 316, 317, -1, -1, -1,
966 -1, -1, 272, 273, 274, 275, -1, 41, 93, 279,
967 44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
968 290, -1, -1, -1, 58, 59, -1, -1, -1, 63,
969 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
970 -1, -1, 312, -1, -1, 315, 316, 317, -1, -1,
971 -1, -1, -1, 272, 273, 274, 275, -1, -1, 93,
972 279, -1, 272, 273, 274, 275, -1, 41, -1, 279,
973 44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
974 290, 300, 301, -1, 58, 59, -1, -1, -1, 63,
975 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
976 -1, -1, 312, -1, -1, 315, 316, 317, 272, 273,
977 274, 275, -1, 41, -1, 279, 44, 281, -1, 93,
978 -1, -1, -1, 287, 288, 289, 290, -1, -1, -1,
979 58, 59, -1, -1, -1, 63, 300, 301, -1, 303,
980 304, 305, 306, 307, 308, 309, -1, -1, 312, -1,
981 -1, 315, 316, 317, -1, -1, -1, -1, -1, 41,
982 -1, -1, 44, -1, -1, 93, -1, -1, -1, -1,
983 -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
984 -1, 63, 41, -1, -1, 44, -1, 272, 273, 274,
985 275, -1, -1, -1, 279, -1, 281, -1, -1, 58,
986 59, -1, 287, 288, 289, 290, -1, -1, -1, -1,
987 -1, 93, -1, -1, -1, 300, 301, -1, 303, 304,
988 305, 306, 307, 308, 309, -1, -1, 312, -1, -1,
989 315, 316, 317, 41, 93, -1, 44, -1, 272, 273,
990 274, 275, 41, -1, -1, 279, -1, 281, -1, -1,
991 58, 59, -1, 287, 288, 289, 290, -1, -1, 58,
992 59, -1, -1, -1, 63, -1, 300, 301, -1, 303,
993 304, 305, 306, 307, 308, 309, -1, -1, 312, -1,
994 -1, 315, 316, 317, -1, 93, -1, -1, -1, -1,
995 -1, -1, -1, -1, 93, -1, -1, -1, 272, 273,
996 274, 275, 41, -1, -1, 279, -1, 281, -1, -1,
997 -1, -1, -1, 287, 288, 289, 290, -1, -1, 58,
998 59, -1, -1, -1, 63, -1, 300, 301, -1, 303,
999 304, 305, 306, 307, 308, 309, -1, -1, 312, -1,
1000 -1, 315, 316, 317, 272, 273, 274, 275, 41, -1,
1001 -1, 279, -1, 281, 93, -1, -1, -1, -1, 287,
1002 288, 289, 290, -1, -1, 58, 59, -1, -1, -1,
1003 63, -1, 300, 301, -1, 303, 304, 305, 306, 307,
1004 308, 309, -1, -1, 312, -1, -1, 315, 316, 317,
1005 272, 273, 274, 275, -1, -1, -1, 279, -1, 281,
1006 93, -1, -1, -1, -1, 287, 288, 289, 290, -1,
1007 -1, -1, -1, 272, 273, 274, 275, -1, 300, 301,
1008 279, 303, 304, 305, 306, 307, 308, 309, -1, 41,
1009 312, -1, 44, 315, 316, 317, -1, -1, -1, -1,
1010 -1, 300, 301, -1, 303, -1, 58, 59, -1, -1,
1011 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
1012 -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
1013 -1, 279, -1, 272, 273, 274, 275, -1, -1, -1,
1014 279, 93, 281, -1, -1, -1, -1, -1, 287, 288,
1015 289, 290, 300, 301, -1, -1, -1, -1, -1, -1,
1016 -1, 300, 301, -1, 303, 304, 305, 306, 307, 308,
1017 309, -1, -1, 312, -1, -1, 315, 316, 317, -1,
1018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1019 -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
1020 279, 41, 281, -1, 44, -1, -1, -1, 287, 288,
1021 289, 290, -1, -1, -1, -1, -1, -1, 58, 59,
1022 -1, 300, 301, 63, 303, 304, 305, 306, 307, 308,
1023 309, -1, -1, 312, -1, -1, 315, 316, 317, 272,
1024 273, 274, 275, -1, 41, -1, 279, 44, 281, -1,
1025 -1, -1, -1, 93, 287, 288, 289, 290, -1, -1,
1026 -1, 58, 59, -1, -1, -1, 63, 300, 301, -1,
1027 303, 304, 305, 306, 307, 308, 309, 33, -1, 312,
1028 -1, -1, 315, 316, 317, 41, -1, -1, 41, 45,
1029 -1, 44, 48, -1, -1, 51, 93, -1, -1, 55,
1030 56, 57, 58, 59, -1, 58, 59, 63, 64, -1,
1031 63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1032 272, 273, 274, 275, -1, -1, -1, 279, 41, 281,
1033 -1, 44, -1, -1, -1, 287, 288, 289, 290, -1,
1034 93, -1, 98, -1, -1, 58, 59, -1, 300, 301,
1035 63, 303, 304, 305, 306, 307, 308, 309, -1, -1,
1036 312, -1, -1, -1, -1, -1, 41, -1, -1, 44,
1037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1038 93, -1, -1, 58, 59, -1, -1, -1, 63, -1,
1039 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1040 -1, -1, -1, -1, 160, 161, 162, 163, 164, 165,
1041 166, 167, 168, 169, 170, 171, 172, 173, 93, -1,
1042 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1043 -1, 187, 272, 273, 274, 275, -1, 41, -1, 279,
1044 44, 281, -1, -1, -1, -1, -1, 287, 288, 289,
1045 290, -1, -1, -1, 58, 59, -1, -1, -1, 63,
1046 300, 301, -1, 303, 304, 305, 306, 307, 308, 309,
1047 -1, -1, 312, -1, -1, 272, 273, 274, 275, -1,
1048 41, -1, 279, 44, 281, -1, -1, -1, -1, 93,
1049 287, 288, 289, 290, -1, -1, -1, 58, 59, -1,
1050 -1, -1, 63, 300, 301, -1, 303, 304, 305, 306,
1051 307, 308, 309, -1, -1, -1, 272, -1, -1, 272,
1052 273, 274, 275, -1, -1, -1, 279, 41, 281, -1,
1053 44, -1, 93, -1, 287, 288, 289, 290, -1, -1,
1054 -1, -1, -1, -1, 58, 59, -1, 300, 301, 305,
1055 303, 304, 305, 306, 307, 308, 309, -1, -1, 272,
1056 273, 274, 275, -1, 41, -1, 279, 44, 281, -1,
1057 -1, -1, -1, -1, 287, 288, 289, 290, -1, 93,
1058 -1, 58, 59, -1, -1, -1, 63, 300, 301, -1,
1059 303, 304, 305, 306, 307, 308, 309, 272, 273, 274,
1060 275, -1, 41, -1, 279, 44, 281, -1, -1, -1,
1061 -1, -1, 287, 288, 289, 290, 93, -1, -1, 58,
1062 59, -1, -1, -1, 63, 300, 301, -1, 303, 304,
1063 305, 306, 307, 308, 309, -1, -1, -1, -1, 41,
1064 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
1065 -1, -1, -1, -1, 93, -1, 58, 59, -1, -1,
1066 -1, 63, -1, -1, -1, -1, -1, -1, 272, 273,
1067 274, 275, -1, -1, -1, 279, -1, 281, -1, -1,
1068 -1, -1, -1, 287, 288, 289, 290, 58, -1, -1,
1069 -1, 93, 63, -1, -1, -1, 300, 301, -1, 303,
1070 304, 305, 306, 307, 308, 309, -1, -1, -1, -1,
1071 -1, 272, 273, 274, 275, -1, 41, -1, 279, 44,
1072 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
1073 -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
1074 301, -1, 303, 304, 305, 306, 307, 308, 309, -1,
1075 -1, -1, -1, 41, -1, -1, 44, -1, 272, 273,
1076 274, 275, -1, 41, -1, 279, 44, -1, 93, -1,
1077 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
1078 58, 59, -1, -1, -1, 63, 300, 301, -1, -1,
1079 -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
1080 41, -1, 279, 44, 281, 93, -1, -1, -1, -1,
1081 287, 288, 289, 290, -1, 93, -1, 58, 59, -1,
1082 -1, -1, 63, 300, 301, -1, 303, 304, 305, 306,
1083 307, 308, 309, 272, 273, 274, 275, -1, 41, -1,
1084 279, 44, 281, -1, -1, -1, -1, -1, 287, 288,
1085 289, 290, 93, -1, -1, 58, 59, -1, -1, -1,
1086 63, 300, 301, -1, 303, 304, 305, 306, 307, 308,
1087 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
1088 -1, -1, -1, -1, -1, 287, 288, -1, 290, -1,
1089 93, 41, 58, 59, 44, -1, -1, 63, 300, 301,
1090 -1, 303, 304, 305, 306, 307, 308, -1, 58, 59,
1091 281, -1, -1, 63, -1, -1, 287, 288, 289, 290,
1092 -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
1093 -1, -1, 303, 304, 305, 306, 307, 308, 309, -1,
1094 -1, 312, -1, 93, 315, 316, 317, 272, 273, 274,
1095 275, -1, 41, -1, 279, 44, 281, -1, -1, -1,
1096 -1, -1, 287, 288, -1, -1, -1, -1, -1, 58,
1097 59, -1, -1, -1, 63, 300, 301, -1, 303, 304,
1098 305, 306, 307, -1, 272, 273, 274, 275, -1, 41,
1099 -1, 279, 44, 281, 272, 273, 274, 275, -1, 287,
1100 288, 279, -1, 281, 93, -1, 58, 59, -1, 287,
1101 288, 63, 300, 301, -1, 303, 304, 305, 306, 307,
1102 -1, -1, 300, 301, -1, 303, 304, 305, 306, 307,
1103 -1, 272, 273, 274, 275, -1, -1, -1, 279, -1,
1104 281, 93, -1, -1, -1, -1, 287, 288, -1, -1,
1105 -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
1106 301, -1, 303, 304, 305, 306, 307, -1, -1, 272,
1107 273, 274, 275, -1, -1, -1, 279, -1, 281, -1,
1108 -1, -1, -1, -1, -1, 288, -1, -1, -1, -1,
1109 -1, -1, -1, -1, -1, -1, -1, 300, 301, -1,
1110 303, 304, 305, 306, 307, -1, 272, 273, 274, 275,
1111 -1, -1, -1, 279, -1, 281, -1, -1, -1, -1,
1112 -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
1113 -1, 281, -1, -1, 300, 301, -1, 303, 304, 305,
1114 306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
1115 300, 301, -1, 303, 304, 305, 306, -1, -1, -1,
1116 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1117 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1118 -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
1119 279, -1, 281, -1, -1, -1, -1, -1, -1, -1,
1120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1121 -1, 300, 301, -1, 303, 304, 305, -1, -1, -1,
1122 272, 273, 274, 275, -1, -1, -1, 279, -1, 281,
1123 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1124 -1, -1, -1, -1, -1, -1, -1, -1, 300, 301,
1131 #define YYMAXTOKEN 317
1133 static char *yyname[] = {
1134 "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,
1135 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
1136 0,0,0,0,0,"':'","';'",0,0,0,"'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1137 0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1138 0,0,"'{'",0,"'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1139 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1140 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1141 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",
1142 "PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB",
1143 "ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF",
1144 "CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP",
1145 "RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY",
1146 "MYSUB","COLONATTR","PREC_LOW","OROP","ANDOP","NOTOP","ASSIGNOP","OROR",
1147 "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP",
1148 "PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
1150 static char *yyrule[] = {
1153 "prog : $$1 lineseq",
1154 "block : '{' remember lineseq '}'",
1156 "mblock : '{' mremember lineseq '}'",
1159 "lineseq : lineseq decl",
1160 "lineseq : lineseq line",
1161 "line : label cond",
1164 "line : label sideff ';'",
1167 "sideff : expr IF expr",
1168 "sideff : expr UNLESS expr",
1169 "sideff : expr WHILE expr",
1170 "sideff : expr UNTIL iexpr",
1171 "sideff : expr FOR expr",
1173 "else : ELSE mblock",
1174 "else : ELSIF '(' mexpr ')' mblock else",
1175 "cond : IF '(' remember mexpr ')' mblock else",
1176 "cond : UNLESS '(' remember miexpr ')' mblock else",
1178 "cont : CONTINUE block",
1179 "loop : label WHILE '(' remember mtexpr ')' mblock cont",
1180 "loop : label UNTIL '(' remember miexpr ')' mblock cont",
1181 "loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
1182 "loop : label FOR scalar '(' remember mexpr ')' mblock cont",
1183 "loop : label FOR '(' remember mexpr ')' mblock cont",
1184 "loop : label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock",
1185 "loop : label block cont",
1202 "format : FORMAT startformsub formname block",
1205 "mysubrout : MYSUB startsub subname proto subattrlist subbody",
1206 "subrout : SUB startsub subname proto subattrlist subbody",
1214 "subattrlist : COLONATTR THING",
1215 "subattrlist : COLONATTR",
1216 "myattrlist : COLONATTR THING",
1217 "myattrlist : COLONATTR",
1220 "package : PACKAGE WORD ';'",
1221 "package : PACKAGE ';'",
1223 "use : USE startsub $$2 WORD WORD listexpr ';'",
1224 "expr : expr ANDOP expr",
1225 "expr : expr OROP expr",
1227 "argexpr : argexpr ','",
1228 "argexpr : argexpr ',' term",
1230 "listop : LSTOP indirob argexpr",
1231 "listop : FUNC '(' indirob expr ')'",
1232 "listop : term ARROW method '(' listexprcom ')'",
1233 "listop : term ARROW method",
1234 "listop : METHOD indirob listexpr",
1235 "listop : FUNCMETH indirob '(' listexprcom ')'",
1236 "listop : LSTOP listexpr",
1237 "listop : FUNC '(' listexprcom ')'",
1239 "listop : LSTOPSUB startanonsub block $$3 listexpr",
1242 "subscripted : star '{' expr ';' '}'",
1243 "subscripted : scalar '[' expr ']'",
1244 "subscripted : term ARROW '[' expr ']'",
1245 "subscripted : subscripted '[' expr ']'",
1246 "subscripted : scalar '{' expr ';' '}'",
1247 "subscripted : term ARROW '{' expr ';' '}'",
1248 "subscripted : subscripted '{' expr ';' '}'",
1249 "subscripted : term ARROW '(' ')'",
1250 "subscripted : term ARROW '(' expr ')'",
1251 "subscripted : subscripted '(' expr ')'",
1252 "subscripted : subscripted '(' ')'",
1253 "term : term ASSIGNOP term",
1254 "term : term POWOP term",
1255 "term : term MULOP term",
1256 "term : term ADDOP term",
1257 "term : term SHIFTOP term",
1258 "term : term RELOP term",
1259 "term : term EQOP term",
1260 "term : term BITANDOP term",
1261 "term : term BITOROP term",
1262 "term : term DOTDOT term",
1263 "term : term ANDAND term",
1264 "term : term OROR term",
1265 "term : term '?' term ':' term",
1266 "term : term MATCHOP term",
1271 "term : REFGEN term",
1272 "term : term POSTINC",
1273 "term : term POSTDEC",
1274 "term : PREINC term",
1275 "term : PREDEC term",
1276 "term : myattrterm",
1277 "term : LOCAL term",
1278 "term : '(' expr ')'",
1280 "term : '[' expr ']'",
1282 "term : HASHBRACK expr ';' '}'",
1283 "term : HASHBRACK ';' '}'",
1284 "term : ANONSUB startanonsub proto subattrlist block",
1290 "term : subscripted",
1291 "term : '(' expr ')' '[' expr ']'",
1292 "term : '(' ')' '[' expr ']'",
1293 "term : ary '[' expr ']'",
1294 "term : ary '{' expr ';' '}'",
1297 "term : amper '(' ')'",
1298 "term : amper '(' expr ')'",
1299 "term : NOAMP WORD listexpr",
1302 "term : DO WORD '(' ')'",
1303 "term : DO WORD '(' expr ')'",
1304 "term : DO scalar '(' ')'",
1305 "term : DO scalar '(' expr ')'",
1307 "term : LOOPEX term",
1308 "term : NOTOP argexpr",
1310 "term : UNIOP block",
1311 "term : UNIOP term",
1312 "term : UNIOPSUB term",
1314 "term : FUNC0 '(' ')'",
1316 "term : FUNC1 '(' ')'",
1317 "term : FUNC1 '(' expr ')'",
1318 "term : PMFUNC '(' term ')'",
1319 "term : PMFUNC '(' term ',' term ')'",
1322 "myattrterm : MY myterm myattrlist",
1323 "myattrterm : MY myterm",
1324 "myterm : '(' expr ')'",
1330 "listexpr : argexpr",
1332 "listexprcom : expr",
1333 "listexprcom : expr ','",
1334 "my_scalar : scalar",
1335 "amper : '&' indirob",
1336 "scalar : '$' indirob",
1337 "ary : '@' indirob",
1338 "hsh : '%' indirob",
1339 "arylen : DOLSHARP indirob",
1340 "star : '*' indirob",
1344 "indirob : PRIVATEREF",
1347 #define yyclearin (yychar=(-1))
1348 #define yyerrok (yyerrflag=0)
1351 #define YYMAXDEPTH YYSTACKSIZE
1355 #define YYSTACKSIZE YYMAXDEPTH
1357 #define YYSTACKSIZE 500
1358 #define YYMAXDEPTH 500
1364 /* more stuff added to make perly_c.diff easier to apply */
1369 #define yyparse() Perl_yyparse(pTHX)
1371 #line 1444 "perly.c"
1372 #define YYABORT goto yyabort
1373 #define YYACCEPT goto yyaccept
1374 #define YYERROR goto yyerrlab
1378 register int yym, yyn, yystate;
1379 register short *yyssp;
1380 register YYSTYPE *yyvsp;
1383 unsigned yystacksize = YYSTACKSIZE;
1391 ENTER; /* force yydestruct() before we return */
1393 New(73, ysave, 1, struct ysv);
1394 SAVEDESTRUCTOR_X(yydestruct, ysave);
1395 ysave->oldyydebug = yydebug;
1396 ysave->oldyynerrs = yynerrs;
1397 ysave->oldyyerrflag = yyerrflag;
1398 ysave->oldyychar = yychar;
1399 ysave->oldyyval = yyval;
1400 ysave->oldyylval = yylval;
1403 if (yys = getenv("YYDEBUG"))
1406 if (yyn >= '0' && yyn <= '9')
1407 yydebug = yyn - '0';
1416 ** Initialize private stacks (yyparse may be called from an action)
1418 New(73, yyss, yystacksize, short);
1419 New(73, yyvs, yystacksize, YYSTYPE);
1427 *yyssp = yystate = 0;
1430 if (yyn = yydefred[yystate]) goto yyreduce;
1433 if ((yychar = yylex()) < 0) yychar = 0;
1438 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1439 if (!yys) yys = "illegal-symbol";
1440 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
1445 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1446 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1450 PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
1451 yystate, yytable[yyn]);
1453 if (yyssp >= yyss + yystacksize - 1)
1456 ** reallocate and recover. Note that pointers
1457 ** have to be reset, or bad things will happen
1459 int yyps_index = (yyssp - yyss);
1460 int yypv_index = (yyvsp - yyvs);
1461 yystacksize += YYSTACKSIZE;
1462 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1463 ysave->yyss = Renew(yyss, yystacksize, short);
1466 yyssp = yyss + yyps_index;
1467 yyvsp = yyvs + yypv_index;
1469 *++yyssp = yystate = yytable[yyn];
1472 if (yyerrflag > 0) --yyerrflag;
1475 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1476 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1481 if (yyerrflag) goto yyinrecovery;
1486 yyerror("syntax error");
1498 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1499 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1503 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
1504 to state %d\n", *yyssp, yytable[yyn]);
1506 if (yyssp >= yyss + yystacksize - 1)
1509 ** reallocate and recover. Note that pointers
1510 ** have to be reset, or bad things will happen
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);
1519 yyssp = yyss + yyps_index;
1520 yyvsp = yyvs + yypv_index;
1522 *++yyssp = yystate = yytable[yyn];
1530 PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
1533 if (yyssp <= yyss) goto yyabort;
1541 if (yychar == 0) goto yyabort;
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);
1558 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
1559 yystate, yyn, yyrule[yyn]);
1562 yyval = yyvsp[1-yym];
1568 #if defined(YYDEBUG) && defined(DEBUGGING)
1569 yydebug = (DEBUG_p_TEST);
1576 { newPROG(yyvsp[0].opval); }
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); }
1586 { yyval.ival = block_start(TRUE); }
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); }
1596 { yyval.ival = block_start(FALSE); }
1600 { yyval.opval = Nullop; }
1604 { yyval.opval = yyvsp[-1].opval; }
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; }
1615 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1619 { if (yyvsp[-1].pval != Nullch) {
1620 yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1623 yyval.opval = Nullop;
1624 PL_copline = NOLINE;
1626 PL_expect = XSTATE; }
1630 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1631 PL_expect = XSTATE; }
1635 { yyval.opval = Nullop; }
1639 { yyval.opval = yyvsp[0].opval; }
1643 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1647 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1651 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1655 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1659 { yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
1660 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1664 { yyval.opval = Nullop; }
1668 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
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; }
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)); }
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)); }
1690 { yyval.opval = Nullop; }
1694 { yyval.opval = scope(yyvsp[0].opval); }
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))); }
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))); }
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)); }
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)); }
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)); }
1731 PL_copline = yyvsp[-9].ival;
1732 forop = newSTATEOP(0, yyvsp[-10].pval,
1733 newWHILEOP(0, 1, (LOOP*)Nullop,
1734 yyvsp[-9].ival, scalar(yyvsp[-4].opval),
1735 yyvsp[0].opval, yyvsp[-2].opval));
1736 if (yyvsp[-6].opval) {
1737 forop = append_elem(OP_LINESEQ,
1738 newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
1743 yyval.opval = block_end(yyvsp[-7].ival, forop); }
1747 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
1748 newWHILEOP(0, 1, (LOOP*)Nullop,
1749 NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
1753 { yyval.opval = Nullop; }
1757 { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
1761 { yyval.opval = invert(scalar(yyvsp[0].opval)); }
1765 { yyval.opval = yyvsp[0].opval; intro_my(); }
1769 { yyval.opval = yyvsp[0].opval; intro_my(); }
1773 { yyval.opval = yyvsp[0].opval; intro_my(); }
1777 { yyval.opval = yyvsp[0].opval; intro_my(); }
1781 { yyval.pval = Nullch; }
1805 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1809 { yyval.opval = yyvsp[0].opval; }
1813 { yyval.opval = Nullop; }
1817 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1821 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1825 { yyval.ival = start_subparse(FALSE, 0); }
1829 { yyval.ival = start_subparse(FALSE, CVf_ANON); }
1833 { yyval.ival = start_subparse(TRUE, 0); }
1837 { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
1838 if (strEQ(name, "BEGIN") || strEQ(name, "END")
1839 || strEQ(name, "INIT") || strEQ(name, "CHECK"))
1840 CvSPECIAL_on(PL_compcv);
1841 yyval.opval = yyvsp[0].opval; }
1845 { yyval.opval = Nullop; }
1849 { yyval.opval = Nullop; }
1853 { yyval.opval = yyvsp[0].opval; }
1857 { yyval.opval = Nullop; }
1861 { yyval.opval = yyvsp[0].opval; }
1865 { yyval.opval = Nullop; }
1869 { yyval.opval = yyvsp[0].opval; }
1873 { yyval.opval = Nullop; PL_expect = XSTATE; }
1877 { package(yyvsp[-1].opval); }
1881 { package(Nullop); }
1885 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
1889 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
1893 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1897 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1901 { yyval.opval = yyvsp[-1].opval; }
1905 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1909 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
1910 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
1914 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
1915 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
1919 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1920 append_elem(OP_LIST,
1921 prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
1922 newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
1926 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1927 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
1928 newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
1932 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1933 append_elem(OP_LIST,
1934 prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
1935 newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
1939 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1940 append_elem(OP_LIST,
1941 prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
1942 newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
1946 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1950 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1954 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
1958 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
1959 append_elem(OP_LIST,
1960 prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
1964 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
1968 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
1972 { yyval.opval = newBINOP(OP_AELEM, 0,
1973 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
1974 scalar(yyvsp[-1].opval));}
1978 { yyval.opval = newBINOP(OP_AELEM, 0,
1979 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
1980 scalar(yyvsp[-1].opval));}
1984 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
1985 PL_expect = XOPERATOR; }
1989 { yyval.opval = newBINOP(OP_HELEM, 0,
1990 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
1991 jmaybe(yyvsp[-2].opval));
1992 PL_expect = XOPERATOR; }
1996 { yyval.opval = newBINOP(OP_HELEM, 0,
1997 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
1998 jmaybe(yyvsp[-2].opval));
1999 PL_expect = XOPERATOR; }
2003 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2004 newCVREF(0, scalar(yyvsp[-3].opval))); }
2008 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2009 append_elem(OP_LIST, yyvsp[-1].opval,
2010 newCVREF(0, scalar(yyvsp[-4].opval)))); }
2014 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2015 append_elem(OP_LIST, yyvsp[-1].opval,
2016 newCVREF(0, scalar(yyvsp[-3].opval)))); }
2020 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2021 newCVREF(0, scalar(yyvsp[-2].opval))); }
2025 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2029 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2033 { if (yyvsp[-1].ival != OP_REPEAT)
2034 scalar(yyvsp[-2].opval);
2035 yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2039 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2043 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2047 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2051 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2055 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2059 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2063 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2067 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2071 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2075 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2079 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2083 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2087 { yyval.opval = yyvsp[0].opval; }
2091 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2095 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2099 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2103 { yyval.opval = newUNOP(OP_POSTINC, 0,
2104 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2108 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2109 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2113 { yyval.opval = newUNOP(OP_PREINC, 0,
2114 mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2118 { yyval.opval = newUNOP(OP_PREDEC, 0,
2119 mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2123 { yyval.opval = yyvsp[0].opval; }
2127 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2131 { yyval.opval = sawparens(yyvsp[-1].opval); }
2135 { yyval.opval = sawparens(newNULLLIST()); }
2139 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2143 { yyval.opval = newANONLIST(Nullop); }
2147 { yyval.opval = newANONHASH(yyvsp[-2].opval); }
2151 { yyval.opval = newANONHASH(Nullop); }
2155 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2159 { yyval.opval = yyvsp[0].opval; }
2163 { yyval.opval = yyvsp[0].opval; }
2167 { yyval.opval = yyvsp[0].opval; }
2171 { yyval.opval = yyvsp[0].opval; }
2175 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2179 { yyval.opval = yyvsp[0].opval; }
2183 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2187 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2191 { yyval.opval = prepend_elem(OP_ASLICE,
2192 newOP(OP_PUSHMARK, 0),
2193 newLISTOP(OP_ASLICE, 0,
2194 list(yyvsp[-1].opval),
2195 ref(yyvsp[-3].opval, OP_ASLICE))); }
2199 { yyval.opval = prepend_elem(OP_HSLICE,
2200 newOP(OP_PUSHMARK, 0),
2201 newLISTOP(OP_HSLICE, 0,
2202 list(yyvsp[-2].opval),
2203 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2204 PL_expect = XOPERATOR; }
2208 { yyval.opval = yyvsp[0].opval; }
2212 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2216 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2220 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2221 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2225 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2226 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2230 { yyval.opval = dofile(yyvsp[0].opval); }
2234 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2238 { yyval.opval = newUNOP(OP_ENTERSUB,
2239 OPf_SPECIAL|OPf_STACKED,
2240 prepend_elem(OP_LIST,
2242 (OPpENTERSUB_AMPER<<8),
2243 scalar(yyvsp[-2].opval)
2244 )),Nullop)); dep();}
2248 { yyval.opval = newUNOP(OP_ENTERSUB,
2249 OPf_SPECIAL|OPf_STACKED,
2250 append_elem(OP_LIST,
2253 (OPpENTERSUB_AMPER<<8),
2254 scalar(yyvsp[-3].opval)
2259 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2260 prepend_elem(OP_LIST,
2261 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
2265 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2266 prepend_elem(OP_LIST,
2268 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2272 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2273 PL_hints |= HINT_BLOCK_SCOPE; }
2277 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2281 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2285 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2289 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2293 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2297 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2298 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2302 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2306 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2310 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2311 scalar(yyvsp[0].opval)); }
2315 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2319 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2323 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2327 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2331 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2335 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2339 { yyval.opval = sawparens(yyvsp[-1].opval); }
2343 { yyval.opval = sawparens(newNULLLIST()); }
2347 { yyval.opval = yyvsp[0].opval; }
2351 { yyval.opval = yyvsp[0].opval; }
2355 { yyval.opval = yyvsp[0].opval; }
2359 { yyval.opval = Nullop; }
2363 { yyval.opval = yyvsp[0].opval; }
2367 { yyval.opval = Nullop; }
2371 { yyval.opval = yyvsp[0].opval; }
2375 { yyval.opval = yyvsp[-1].opval; }
2379 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2383 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2387 { yyval.opval = newSVREF(yyvsp[0].opval); }
2391 { yyval.opval = newAVREF(yyvsp[0].opval); }
2395 { yyval.opval = newHVREF(yyvsp[0].opval); }
2399 { yyval.opval = newAVREF(yyvsp[0].opval); }
2403 { yyval.opval = newGVREF(0,yyvsp[0].opval); }
2407 { yyval.opval = scalar(yyvsp[0].opval); }
2411 { yyval.opval = scalar(yyvsp[0].opval); }
2415 { yyval.opval = scope(yyvsp[0].opval); }
2419 { yyval.opval = yyvsp[0].opval; }
2421 #line 2440 "perly.c"
2427 if (yystate == 0 && yym == 0)
2431 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2432 state %d\n", YYFINAL);
2439 if ((yychar = yylex()) < 0) yychar = 0;
2444 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2445 if (!yys) yys = "illegal-symbol";
2446 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2447 YYFINAL, yychar, yys);
2451 if (yychar == 0) goto yyaccept;
2454 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2455 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2456 yystate = yytable[yyn];
2458 yystate = yydgoto[yym];
2461 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2462 to state %d\n", *yyssp, yystate);
2464 if (yyssp >= yyss + yystacksize - 1)
2467 ** reallocate and recover. Note that pointers
2468 ** have to be reset, or bad things will happen
2470 int yyps_index = (yyssp - yyss);
2471 int yypv_index = (yyvsp - yyvs);
2472 yystacksize += YYSTACKSIZE;
2473 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2474 ysave->yyss = Renew(yyss, yystacksize, short);
2477 yyssp = yyss + yyps_index;
2478 yyvsp = yyvs + yypv_index;
2484 yyerror("Out of memory for yacc stack");
2489 LEAVE; /* force yydestruct() before we return */
2499 yydestruct(pTHXo_ void *ptr)
2501 struct ysv* ysave = (struct ysv*)ptr;
2502 if (ysave->yyss) Safefree(ysave->yyss);
2503 if (ysave->yyvs) Safefree(ysave->yyvs);
2504 yydebug = ysave->oldyydebug;
2505 yynerrs = ysave->oldyynerrs;
2506 yyerrflag = ysave->oldyyerrflag;
2507 yychar = ysave->oldyychar;
2508 yyval = ysave->oldyyval;
2509 yylval = ysave->oldyylval;