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