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