ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/perly.c
Revision: 1.1
Committed: Thu Jun 30 14:26:42 2005 UTC (21 years, 3 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

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