source: trunk/third/perl/vms/perly_c.vms @ 14545

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