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