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