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