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