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