This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert the parts of #3926 that outlawed character ranges
[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     New(73, ysave, 1, struct ysv);
1390     SAVEDESTRUCTOR_X(yydestruct, ysave);
1391     ysave->oldyydebug   = yydebug;
1392     ysave->oldyynerrs   = yynerrs;
1393     ysave->oldyyerrflag = yyerrflag;
1394     ysave->oldyychar    = yychar;
1395     ysave->oldyyval     = yyval;
1396     ysave->oldyylval    = yylval;
1397   
1398 #if YYDEBUG
1399     if (yys = getenv("YYDEBUG"))
1400     {
1401         yyn = *yys;
1402         if (yyn >= '0' && yyn <= '9')
1403             yydebug = yyn - '0';
1404     }
1405 #endif
1406
1407     yynerrs = 0;
1408     yyerrflag = 0;
1409     yychar = (-1);
1410
1411     /*
1412     ** Initialize private stacks (yyparse may be called from an action)
1413     */
1414     New(73, yyss, yystacksize, short);
1415     New(73, yyvs, yystacksize, YYSTYPE);
1416     ysave->yyss = yyss;
1417     ysave->yyvs = yyvs;
1418     if (!yyvs || !yyss)
1419         goto yyoverflow;
1420
1421     yyssp = yyss;
1422     yyvsp = yyvs;
1423     *yyssp = yystate = 0;
1424
1425 yyloop:
1426     if (yyn = yydefred[yystate]) goto yyreduce;
1427     if (yychar < 0)
1428     {
1429         if ((yychar = yylex()) < 0) yychar = 0;
1430 #if YYDEBUG
1431         if (yydebug)
1432         {
1433             yys = 0;
1434             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1435             if (!yys) yys = "illegal-symbol";
1436             PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
1437                     yychar, yys);
1438         }
1439 #endif
1440     }
1441     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1442             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1443     {
1444 #if YYDEBUG
1445         if (yydebug)
1446             PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
1447                     yystate, yytable[yyn]);
1448 #endif
1449         if (yyssp >= yyss + yystacksize - 1)
1450         {
1451             /*
1452             ** reallocate and recover.  Note that pointers
1453             ** have to be reset, or bad things will happen
1454             */
1455             int yyps_index = (yyssp - yyss);
1456             int yypv_index = (yyvsp - yyvs);
1457             yystacksize += YYSTACKSIZE;
1458             ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1459             ysave->yyss = Renew(yyss, yystacksize, short);
1460             if (!yyvs || !yyss)
1461                 goto yyoverflow;
1462             yyssp = yyss + yyps_index;
1463             yyvsp = yyvs + yypv_index;
1464         }
1465         *++yyssp = yystate = yytable[yyn];
1466         *++yyvsp = yylval;
1467         yychar = (-1);
1468         if (yyerrflag > 0)  --yyerrflag;
1469         goto yyloop;
1470     }
1471     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1472             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1473     {
1474         yyn = yytable[yyn];
1475         goto yyreduce;
1476     }
1477     if (yyerrflag) goto yyinrecovery;
1478 #ifdef lint
1479     goto yynewerror;
1480 #endif
1481 yynewerror:
1482     yyerror("syntax error");
1483 #ifdef lint
1484     goto yyerrlab;
1485 #endif
1486 yyerrlab:
1487     ++yynerrs;
1488 yyinrecovery:
1489     if (yyerrflag < 3)
1490     {
1491         yyerrflag = 3;
1492         for (;;)
1493         {
1494             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1495                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1496             {
1497 #if YYDEBUG
1498                 if (yydebug)
1499                     PerlIO_printf(Perl_debug_log,
1500                                   "yydebug: state %d, error recovery shifting to state %d\n",
1501                                   *yyssp, yytable[yyn]);
1502 #endif
1503                 if (yyssp >= yyss + yystacksize - 1)
1504                 {
1505                     /*
1506                     ** reallocate and recover.  Note that pointers
1507                     ** have to be reset, or bad things will happen
1508                     */
1509                     int yyps_index = (yyssp - yyss);
1510                     int yypv_index = (yyvsp - yyvs);
1511                     yystacksize += YYSTACKSIZE;
1512                     ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1513                     ysave->yyss = Renew(yyss, yystacksize, short);
1514                     if (!yyvs || !yyss)
1515                         goto yyoverflow;
1516                     yyssp = yyss + yyps_index;
1517                     yyvsp = yyvs + yypv_index;
1518                 }
1519                 *++yyssp = yystate = yytable[yyn];
1520                 *++yyvsp = yylval;
1521                 goto yyloop;
1522             }
1523             else
1524             {
1525 #if YYDEBUG
1526                 if (yydebug)
1527                     PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
1528                             *yyssp);
1529 #endif
1530                 if (yyssp <= yyss) goto yyabort;
1531                 --yyssp;
1532                 --yyvsp;
1533             }
1534         }
1535     }
1536     else
1537     {
1538         if (yychar == 0) goto yyabort;
1539 #if YYDEBUG
1540         if (yydebug)
1541         {
1542             yys = 0;
1543             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1544             if (!yys) yys = "illegal-symbol";
1545             PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
1546                     yystate, yychar, yys);
1547         }
1548 #endif
1549         yychar = (-1);
1550         goto yyloop;
1551     }
1552 yyreduce:
1553 #if YYDEBUG
1554     if (yydebug)
1555         PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
1556                 yystate, yyn, yyrule[yyn]);
1557 #endif
1558     yym = yylen[yyn];
1559     yyval = yyvsp[1-yym];
1560     switch (yyn)
1561     {
1562 case 1:
1563 #line 125 "perly.y"
1564 {
1565 #if defined(YYDEBUG) && defined(DEBUGGING)
1566                     yydebug = (PL_debug & 1);
1567 #endif
1568                     PL_expect = XSTATE;
1569                 }
1570 break;
1571 case 2:
1572 #line 132 "perly.y"
1573 { newPROG(yyvsp[0].opval); }
1574 break;
1575 case 3:
1576 #line 136 "perly.y"
1577 { if (PL_copline > (line_t)yyvsp[-3].ival)
1578                               PL_copline = yyvsp[-3].ival;
1579                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1580 break;
1581 case 4:
1582 #line 142 "perly.y"
1583 { yyval.ival = block_start(TRUE); }
1584 break;
1585 case 5:
1586 #line 146 "perly.y"
1587 { if (PL_copline > (line_t)yyvsp[-3].ival)
1588                               PL_copline = yyvsp[-3].ival;
1589                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1590 break;
1591 case 6:
1592 #line 152 "perly.y"
1593 { yyval.ival = block_start(FALSE); }
1594 break;
1595 case 7:
1596 #line 156 "perly.y"
1597 { yyval.opval = Nullop; }
1598 break;
1599 case 8:
1600 #line 158 "perly.y"
1601 { yyval.opval = yyvsp[-1].opval; }
1602 break;
1603 case 9:
1604 #line 160 "perly.y"
1605 {   yyval.opval = append_list(OP_LINESEQ,
1606                                 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
1607                             PL_pad_reset_pending = TRUE;
1608                             if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
1609 break;
1610 case 10:
1611 #line 167 "perly.y"
1612 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1613 break;
1614 case 12:
1615 #line 170 "perly.y"
1616 { if (yyvsp[-1].pval != Nullch) {
1617                               yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1618                             }
1619                             else {
1620                               yyval.opval = Nullop;
1621                               PL_copline = NOLINE;
1622                             }
1623                             PL_expect = XSTATE; }
1624 break;
1625 case 13:
1626 #line 179 "perly.y"
1627 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1628                           PL_expect = XSTATE; }
1629 break;
1630 case 14:
1631 #line 184 "perly.y"
1632 { yyval.opval = Nullop; }
1633 break;
1634 case 15:
1635 #line 186 "perly.y"
1636 { yyval.opval = yyvsp[0].opval; }
1637 break;
1638 case 16:
1639 #line 188 "perly.y"
1640 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1641 break;
1642 case 17:
1643 #line 190 "perly.y"
1644 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1645 break;
1646 case 18:
1647 #line 192 "perly.y"
1648 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1649 break;
1650 case 19:
1651 #line 194 "perly.y"
1652 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1653 break;
1654 case 20:
1655 #line 196 "perly.y"
1656 { yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
1657                                         Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1658 break;
1659 case 21:
1660 #line 201 "perly.y"
1661 { yyval.opval = Nullop; }
1662 break;
1663 case 22:
1664 #line 203 "perly.y"
1665 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
1666 break;
1667 case 23:
1668 #line 205 "perly.y"
1669 { PL_copline = yyvsp[-5].ival;
1670                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
1671                             PL_hints |= HINT_BLOCK_SCOPE; }
1672 break;
1673 case 24:
1674 #line 211 "perly.y"
1675 { PL_copline = yyvsp[-6].ival;
1676                             yyval.opval = block_end(yyvsp[-4].ival,
1677                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1678 break;
1679 case 25:
1680 #line 215 "perly.y"
1681 { PL_copline = yyvsp[-6].ival;
1682                             yyval.opval = block_end(yyvsp[-4].ival,
1683                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1684 break;
1685 case 26:
1686 #line 221 "perly.y"
1687 { yyval.opval = Nullop; }
1688 break;
1689 case 27:
1690 #line 223 "perly.y"
1691 { yyval.opval = scope(yyvsp[0].opval); }
1692 break;
1693 case 28:
1694 #line 227 "perly.y"
1695 { PL_copline = yyvsp[-6].ival;
1696                             yyval.opval = block_end(yyvsp[-4].ival,
1697                                    newSTATEOP(0, yyvsp[-7].pval,
1698                                      newWHILEOP(0, 1, (LOOP*)Nullop,
1699                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1700 break;
1701 case 29:
1702 #line 233 "perly.y"
1703 { PL_copline = yyvsp[-6].ival;
1704                             yyval.opval = block_end(yyvsp[-4].ival,
1705                                    newSTATEOP(0, yyvsp[-7].pval,
1706                                      newWHILEOP(0, 1, (LOOP*)Nullop,
1707                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1708 break;
1709 case 30:
1710 #line 239 "perly.y"
1711 { yyval.opval = block_end(yyvsp[-6].ival,
1712                                  newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1713 break;
1714 case 31:
1715 #line 242 "perly.y"
1716 { yyval.opval = block_end(yyvsp[-4].ival,
1717                                  newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
1718                                           yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1719 break;
1720 case 32:
1721 #line 246 "perly.y"
1722 { yyval.opval = block_end(yyvsp[-4].ival,
1723                                  newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1724 break;
1725 case 33:
1726 #line 250 "perly.y"
1727 { OP *forop = append_elem(OP_LINESEQ,
1728                                         scalar(yyvsp[-6].opval),
1729                                         newWHILEOP(0, 1, (LOOP*)Nullop,
1730                                                    yyvsp[-9].ival, scalar(yyvsp[-4].opval),
1731                                                    yyvsp[0].opval, scalar(yyvsp[-2].opval)));
1732                           PL_copline = yyvsp[-9].ival;
1733                           yyval.opval = block_end(yyvsp[-7].ival, newSTATEOP(0, yyvsp[-10].pval, forop)); }
1734 break;
1735 case 34:
1736 #line 258 "perly.y"
1737 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
1738                                  newWHILEOP(0, 1, (LOOP*)Nullop,
1739                                             NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
1740 break;
1741 case 35:
1742 #line 264 "perly.y"
1743 { yyval.opval = Nullop; }
1744 break;
1745 case 37:
1746 #line 269 "perly.y"
1747 { (void)scan_num("1"); yyval.opval = yylval.opval; }
1748 break;
1749 case 39:
1750 #line 274 "perly.y"
1751 { yyval.opval = invert(scalar(yyvsp[0].opval)); }
1752 break;
1753 case 40:
1754 #line 278 "perly.y"
1755 { yyval.opval = yyvsp[0].opval; intro_my(); }
1756 break;
1757 case 41:
1758 #line 282 "perly.y"
1759 { yyval.opval = yyvsp[0].opval; intro_my(); }
1760 break;
1761 case 42:
1762 #line 286 "perly.y"
1763 { yyval.opval = yyvsp[0].opval; intro_my(); }
1764 break;
1765 case 43:
1766 #line 290 "perly.y"
1767 { yyval.opval = yyvsp[0].opval; intro_my(); }
1768 break;
1769 case 44:
1770 #line 294 "perly.y"
1771 { yyval.pval = Nullch; }
1772 break;
1773 case 46:
1774 #line 299 "perly.y"
1775 { yyval.ival = 0; }
1776 break;
1777 case 47:
1778 #line 301 "perly.y"
1779 { yyval.ival = 0; }
1780 break;
1781 case 48:
1782 #line 303 "perly.y"
1783 { yyval.ival = 0; }
1784 break;
1785 case 49:
1786 #line 305 "perly.y"
1787 { yyval.ival = 0; }
1788 break;
1789 case 50:
1790 #line 307 "perly.y"
1791 { yyval.ival = 0; }
1792 break;
1793 case 51:
1794 #line 311 "perly.y"
1795 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1796 break;
1797 case 52:
1798 #line 314 "perly.y"
1799 { yyval.opval = yyvsp[0].opval; }
1800 break;
1801 case 53:
1802 #line 315 "perly.y"
1803 { yyval.opval = Nullop; }
1804 break;
1805 case 54:
1806 #line 319 "perly.y"
1807 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1808 break;
1809 case 55:
1810 #line 323 "perly.y"
1811 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1812 break;
1813 case 56:
1814 #line 327 "perly.y"
1815 { yyval.ival = start_subparse(FALSE, 0); }
1816 break;
1817 case 57:
1818 #line 331 "perly.y"
1819 { yyval.ival = start_subparse(FALSE, CVf_ANON); }
1820 break;
1821 case 58:
1822 #line 335 "perly.y"
1823 { yyval.ival = start_subparse(TRUE, 0); }
1824 break;
1825 case 59:
1826 #line 338 "perly.y"
1827 { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
1828                           if (strEQ(name, "BEGIN") || strEQ(name, "END")
1829                               || strEQ(name, "INIT"))
1830                               CvSPECIAL_on(PL_compcv);
1831                           yyval.opval = yyvsp[0].opval; }
1832 break;
1833 case 60:
1834 #line 346 "perly.y"
1835 { yyval.opval = Nullop; }
1836 break;
1837 case 62:
1838 #line 351 "perly.y"
1839 { yyval.opval = Nullop; }
1840 break;
1841 case 63:
1842 #line 353 "perly.y"
1843 { yyval.opval = yyvsp[0].opval; }
1844 break;
1845 case 64:
1846 #line 355 "perly.y"
1847 { yyval.opval = Nullop; }
1848 break;
1849 case 65:
1850 #line 359 "perly.y"
1851 { yyval.opval = yyvsp[0].opval; }
1852 break;
1853 case 66:
1854 #line 361 "perly.y"
1855 { yyval.opval = Nullop; }
1856 break;
1857 case 67:
1858 #line 364 "perly.y"
1859 { yyval.opval = yyvsp[0].opval; }
1860 break;
1861 case 68:
1862 #line 365 "perly.y"
1863 { yyval.opval = Nullop; PL_expect = XSTATE; }
1864 break;
1865 case 69:
1866 #line 369 "perly.y"
1867 { package(yyvsp[-1].opval); }
1868 break;
1869 case 70:
1870 #line 371 "perly.y"
1871 { package(Nullop); }
1872 break;
1873 case 71:
1874 #line 375 "perly.y"
1875 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
1876 break;
1877 case 72:
1878 #line 377 "perly.y"
1879 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
1880 break;
1881 case 73:
1882 #line 381 "perly.y"
1883 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1884 break;
1885 case 74:
1886 #line 383 "perly.y"
1887 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1888 break;
1889 case 76:
1890 #line 388 "perly.y"
1891 { yyval.opval = yyvsp[-1].opval; }
1892 break;
1893 case 77:
1894 #line 390 "perly.y"
1895 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1896 break;
1897 case 79:
1898 #line 395 "perly.y"
1899 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
1900                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
1901 break;
1902 case 80:
1903 #line 398 "perly.y"
1904 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
1905                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
1906 break;
1907 case 81:
1908 #line 401 "perly.y"
1909 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1910                                 append_elem(OP_LIST,
1911                                     prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
1912                                     newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
1913 break;
1914 case 82:
1915 #line 406 "perly.y"
1916 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1917                                 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
1918                                     newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
1919 break;
1920 case 83:
1921 #line 410 "perly.y"
1922 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1923                                 append_elem(OP_LIST,
1924                                     prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
1925                                     newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
1926 break;
1927 case 84:
1928 #line 415 "perly.y"
1929 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1930                                 append_elem(OP_LIST,
1931                                     prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
1932                                     newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
1933 break;
1934 case 85:
1935 #line 420 "perly.y"
1936 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1937 break;
1938 case 86:
1939 #line 422 "perly.y"
1940 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1941 break;
1942 case 87:
1943 #line 424 "perly.y"
1944 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
1945 break;
1946 case 88:
1947 #line 426 "perly.y"
1948 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
1949                                  append_elem(OP_LIST,
1950                                    prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
1951 break;
1952 case 91:
1953 #line 436 "perly.y"
1954 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
1955 break;
1956 case 92:
1957 #line 438 "perly.y"
1958 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
1959 break;
1960 case 93:
1961 #line 440 "perly.y"
1962 { yyval.opval = newBINOP(OP_AELEM, 0,
1963                                         ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
1964                                         scalar(yyvsp[-1].opval));}
1965 break;
1966 case 94:
1967 #line 444 "perly.y"
1968 { yyval.opval = newBINOP(OP_AELEM, 0,
1969                                         ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
1970                                         scalar(yyvsp[-1].opval));}
1971 break;
1972 case 95:
1973 #line 448 "perly.y"
1974 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
1975                             PL_expect = XOPERATOR; }
1976 break;
1977 case 96:
1978 #line 451 "perly.y"
1979 { yyval.opval = newBINOP(OP_HELEM, 0,
1980                                         ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
1981                                         jmaybe(yyvsp[-2].opval));
1982                             PL_expect = XOPERATOR; }
1983 break;
1984 case 97:
1985 #line 456 "perly.y"
1986 { yyval.opval = newBINOP(OP_HELEM, 0,
1987                                         ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
1988                                         jmaybe(yyvsp[-2].opval));
1989                             PL_expect = XOPERATOR; }
1990 break;
1991 case 98:
1992 #line 461 "perly.y"
1993 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
1994                                    newCVREF(0, scalar(yyvsp[-3].opval))); }
1995 break;
1996 case 99:
1997 #line 464 "perly.y"
1998 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
1999                                    append_elem(OP_LIST, yyvsp[-1].opval,
2000                                        newCVREF(0, scalar(yyvsp[-4].opval)))); }
2001 break;
2002 case 100:
2003 #line 469 "perly.y"
2004 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2005                                    append_elem(OP_LIST, yyvsp[-1].opval,
2006                                                newCVREF(0, scalar(yyvsp[-3].opval)))); }
2007 break;
2008 case 101:
2009 #line 473 "perly.y"
2010 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2011                                    newCVREF(0, scalar(yyvsp[-2].opval))); }
2012 break;
2013 case 102:
2014 #line 479 "perly.y"
2015 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2016 break;
2017 case 103:
2018 #line 481 "perly.y"
2019 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2020 break;
2021 case 104:
2022 #line 483 "perly.y"
2023 {   if (yyvsp[-1].ival != OP_REPEAT)
2024                                 scalar(yyvsp[-2].opval);
2025                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2026 break;
2027 case 105:
2028 #line 487 "perly.y"
2029 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2030 break;
2031 case 106:
2032 #line 489 "perly.y"
2033 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2034 break;
2035 case 107:
2036 #line 491 "perly.y"
2037 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2038 break;
2039 case 108:
2040 #line 493 "perly.y"
2041 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2042 break;
2043 case 109:
2044 #line 495 "perly.y"
2045 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2046 break;
2047 case 110:
2048 #line 497 "perly.y"
2049 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2050 break;
2051 case 111:
2052 #line 499 "perly.y"
2053 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2054 break;
2055 case 112:
2056 #line 501 "perly.y"
2057 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2058 break;
2059 case 113:
2060 #line 503 "perly.y"
2061 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2062 break;
2063 case 114:
2064 #line 505 "perly.y"
2065 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2066 break;
2067 case 115:
2068 #line 507 "perly.y"
2069 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2070 break;
2071 case 116:
2072 #line 510 "perly.y"
2073 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2074 break;
2075 case 117:
2076 #line 512 "perly.y"
2077 { yyval.opval = yyvsp[0].opval; }
2078 break;
2079 case 118:
2080 #line 514 "perly.y"
2081 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2082 break;
2083 case 119:
2084 #line 516 "perly.y"
2085 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2086 break;
2087 case 120:
2088 #line 518 "perly.y"
2089 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2090 break;
2091 case 121:
2092 #line 520 "perly.y"
2093 { yyval.opval = newUNOP(OP_POSTINC, 0,
2094                                         mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2095 break;
2096 case 122:
2097 #line 523 "perly.y"
2098 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2099                                         mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2100 break;
2101 case 123:
2102 #line 526 "perly.y"
2103 { yyval.opval = newUNOP(OP_PREINC, 0,
2104                                         mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2105 break;
2106 case 124:
2107 #line 529 "perly.y"
2108 { yyval.opval = newUNOP(OP_PREDEC, 0,
2109                                         mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2110 break;
2111 case 125:
2112 #line 532 "perly.y"
2113 { yyval.opval = yyvsp[0].opval; }
2114 break;
2115 case 126:
2116 #line 534 "perly.y"
2117 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2118 break;
2119 case 127:
2120 #line 536 "perly.y"
2121 { yyval.opval = sawparens(yyvsp[-1].opval); }
2122 break;
2123 case 128:
2124 #line 538 "perly.y"
2125 { yyval.opval = sawparens(newNULLLIST()); }
2126 break;
2127 case 129:
2128 #line 540 "perly.y"
2129 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2130 break;
2131 case 130:
2132 #line 542 "perly.y"
2133 { yyval.opval = newANONLIST(Nullop); }
2134 break;
2135 case 131:
2136 #line 544 "perly.y"
2137 { yyval.opval = newANONHASH(yyvsp[-2].opval); }
2138 break;
2139 case 132:
2140 #line 546 "perly.y"
2141 { yyval.opval = newANONHASH(Nullop); }
2142 break;
2143 case 133:
2144 #line 548 "perly.y"
2145 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2146 break;
2147 case 134:
2148 #line 550 "perly.y"
2149 { yyval.opval = yyvsp[0].opval; }
2150 break;
2151 case 135:
2152 #line 552 "perly.y"
2153 { yyval.opval = yyvsp[0].opval; }
2154 break;
2155 case 136:
2156 #line 554 "perly.y"
2157 { yyval.opval = yyvsp[0].opval; }
2158 break;
2159 case 137:
2160 #line 556 "perly.y"
2161 { yyval.opval = yyvsp[0].opval; }
2162 break;
2163 case 138:
2164 #line 558 "perly.y"
2165 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2166 break;
2167 case 139:
2168 #line 560 "perly.y"
2169 { yyval.opval = yyvsp[0].opval; }
2170 break;
2171 case 140:
2172 #line 562 "perly.y"
2173 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2174 break;
2175 case 141:
2176 #line 564 "perly.y"
2177 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2178 break;
2179 case 142:
2180 #line 566 "perly.y"
2181 { yyval.opval = prepend_elem(OP_ASLICE,
2182                                 newOP(OP_PUSHMARK, 0),
2183                                     newLISTOP(OP_ASLICE, 0,
2184                                         list(yyvsp[-1].opval),
2185                                         ref(yyvsp[-3].opval, OP_ASLICE))); }
2186 break;
2187 case 143:
2188 #line 572 "perly.y"
2189 { yyval.opval = prepend_elem(OP_HSLICE,
2190                                 newOP(OP_PUSHMARK, 0),
2191                                     newLISTOP(OP_HSLICE, 0,
2192                                         list(yyvsp[-2].opval),
2193                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2194                             PL_expect = XOPERATOR; }
2195 break;
2196 case 144:
2197 #line 579 "perly.y"
2198 { yyval.opval = yyvsp[0].opval; }
2199 break;
2200 case 145:
2201 #line 581 "perly.y"
2202 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2203 break;
2204 case 146:
2205 #line 583 "perly.y"
2206 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2207 break;
2208 case 147:
2209 #line 585 "perly.y"
2210 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2211                             append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2212 break;
2213 case 148:
2214 #line 588 "perly.y"
2215 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2216                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2217 break;
2218 case 149:
2219 #line 591 "perly.y"
2220 { yyval.opval = dofile(yyvsp[0].opval); }
2221 break;
2222 case 150:
2223 #line 593 "perly.y"
2224 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2225 break;
2226 case 151:
2227 #line 595 "perly.y"
2228 { yyval.opval = newUNOP(OP_ENTERSUB,
2229                             OPf_SPECIAL|OPf_STACKED,
2230                             prepend_elem(OP_LIST,
2231                                 scalar(newCVREF(
2232                                     (OPpENTERSUB_AMPER<<8),
2233                                     scalar(yyvsp[-2].opval)
2234                                 )),Nullop)); dep();}
2235 break;
2236 case 152:
2237 #line 603 "perly.y"
2238 { yyval.opval = newUNOP(OP_ENTERSUB,
2239                             OPf_SPECIAL|OPf_STACKED,
2240                             append_elem(OP_LIST,
2241                                 yyvsp[-1].opval,
2242                                 scalar(newCVREF(
2243                                     (OPpENTERSUB_AMPER<<8),
2244                                     scalar(yyvsp[-3].opval)
2245                                 )))); dep();}
2246 break;
2247 case 153:
2248 #line 612 "perly.y"
2249 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2250                             prepend_elem(OP_LIST,
2251                                 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
2252 break;
2253 case 154:
2254 #line 616 "perly.y"
2255 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2256                             prepend_elem(OP_LIST,
2257                                 yyvsp[-1].opval,
2258                                 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2259 break;
2260 case 155:
2261 #line 621 "perly.y"
2262 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2263                             PL_hints |= HINT_BLOCK_SCOPE; }
2264 break;
2265 case 156:
2266 #line 624 "perly.y"
2267 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2268 break;
2269 case 157:
2270 #line 626 "perly.y"
2271 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2272 break;
2273 case 158:
2274 #line 628 "perly.y"
2275 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2276 break;
2277 case 159:
2278 #line 630 "perly.y"
2279 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2280 break;
2281 case 160:
2282 #line 632 "perly.y"
2283 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2284 break;
2285 case 161:
2286 #line 634 "perly.y"
2287 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2288                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2289 break;
2290 case 162:
2291 #line 637 "perly.y"
2292 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2293 break;
2294 case 163:
2295 #line 639 "perly.y"
2296 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2297 break;
2298 case 164:
2299 #line 641 "perly.y"
2300 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2301                                 scalar(yyvsp[0].opval)); }
2302 break;
2303 case 165:
2304 #line 644 "perly.y"
2305 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2306 break;
2307 case 166:
2308 #line 646 "perly.y"
2309 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2310 break;
2311 case 167:
2312 #line 648 "perly.y"
2313 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2314 break;
2315 case 168:
2316 #line 650 "perly.y"
2317 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2318 break;
2319 case 171:
2320 #line 656 "perly.y"
2321 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2322 break;
2323 case 172:
2324 #line 658 "perly.y"
2325 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2326 break;
2327 case 173:
2328 #line 662 "perly.y"
2329 { yyval.opval = sawparens(yyvsp[-1].opval); }
2330 break;
2331 case 174:
2332 #line 664 "perly.y"
2333 { yyval.opval = sawparens(newNULLLIST()); }
2334 break;
2335 case 175:
2336 #line 666 "perly.y"
2337 { yyval.opval = yyvsp[0].opval; }
2338 break;
2339 case 176:
2340 #line 668 "perly.y"
2341 { yyval.opval = yyvsp[0].opval; }
2342 break;
2343 case 177:
2344 #line 670 "perly.y"
2345 { yyval.opval = yyvsp[0].opval; }
2346 break;
2347 case 178:
2348 #line 674 "perly.y"
2349 { yyval.opval = Nullop; }
2350 break;
2351 case 179:
2352 #line 676 "perly.y"
2353 { yyval.opval = yyvsp[0].opval; }
2354 break;
2355 case 180:
2356 #line 680 "perly.y"
2357 { yyval.opval = Nullop; }
2358 break;
2359 case 181:
2360 #line 682 "perly.y"
2361 { yyval.opval = yyvsp[0].opval; }
2362 break;
2363 case 182:
2364 #line 684 "perly.y"
2365 { yyval.opval = yyvsp[-1].opval; }
2366 break;
2367 case 183:
2368 #line 688 "perly.y"
2369 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2370 break;
2371 case 184:
2372 #line 692 "perly.y"
2373 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2374 break;
2375 case 185:
2376 #line 696 "perly.y"
2377 { yyval.opval = newSVREF(yyvsp[0].opval); }
2378 break;
2379 case 186:
2380 #line 700 "perly.y"
2381 { yyval.opval = newAVREF(yyvsp[0].opval); }
2382 break;
2383 case 187:
2384 #line 704 "perly.y"
2385 { yyval.opval = newHVREF(yyvsp[0].opval); }
2386 break;
2387 case 188:
2388 #line 708 "perly.y"
2389 { yyval.opval = newAVREF(yyvsp[0].opval); }
2390 break;
2391 case 189:
2392 #line 712 "perly.y"
2393 { yyval.opval = newGVREF(0,yyvsp[0].opval); }
2394 break;
2395 case 190:
2396 #line 716 "perly.y"
2397 { yyval.opval = scalar(yyvsp[0].opval); }
2398 break;
2399 case 191:
2400 #line 718 "perly.y"
2401 { yyval.opval = scalar(yyvsp[0].opval);  }
2402 break;
2403 case 192:
2404 #line 720 "perly.y"
2405 { yyval.opval = scope(yyvsp[0].opval); }
2406 break;
2407 case 193:
2408 #line 723 "perly.y"
2409 { yyval.opval = yyvsp[0].opval; }
2410 break;
2411 #line 2412 "perly.c"
2412     }
2413     yyssp -= yym;
2414     yystate = *yyssp;
2415     yyvsp -= yym;
2416     yym = yylhs[yyn];
2417     if (yystate == 0 && yym == 0)
2418     {
2419 #if YYDEBUG
2420         if (yydebug)
2421             PerlIO_printf(Perl_debug_log,
2422                           "yydebug: after reduction, shifting from state 0 to state %d\n",
2423                           YYFINAL);
2424 #endif
2425         yystate = YYFINAL;
2426         *++yyssp = YYFINAL;
2427         *++yyvsp = yyval;
2428         if (yychar < 0)
2429         {
2430             if ((yychar = yylex()) < 0) yychar = 0;
2431 #if YYDEBUG
2432             if (yydebug)
2433             {
2434                 yys = 0;
2435                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2436                 if (!yys) yys = "illegal-symbol";
2437                 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2438                         YYFINAL, yychar, yys);
2439             }
2440 #endif
2441         }
2442         if (yychar == 0) goto yyaccept;
2443         goto yyloop;
2444     }
2445     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2446             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2447         yystate = yytable[yyn];
2448     else
2449         yystate = yydgoto[yym];
2450 #if YYDEBUG
2451     if (yydebug)
2452         PerlIO_printf(Perl_debug_log,
2453                       "yydebug: after reduction, shifting from state %d to state %d\n",
2454                       *yyssp, yystate);
2455 #endif
2456     if (yyssp >= yyss + yystacksize - 1)
2457     {
2458         /*
2459         ** reallocate and recover.  Note that pointers
2460         ** have to be reset, or bad things will happen
2461         */
2462         int yyps_index = (yyssp - yyss);
2463         int yypv_index = (yyvsp - yyvs);
2464         yystacksize += YYSTACKSIZE;
2465         ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2466         ysave->yyss = Renew(yyss, yystacksize, short);
2467         if (!yyvs || !yyss)
2468             goto yyoverflow;
2469         yyssp = yyss + yyps_index;
2470         yyvsp = yyvs + yypv_index;
2471     }
2472     *++yyssp = yystate;
2473     *++yyvsp = yyval;
2474     goto yyloop;
2475 yyoverflow:
2476     yyerror("Out of memory for yacc stack");
2477 yyabort:
2478     retval = 1;
2479 yyaccept:
2480     return retval;
2481 }
2482
2483 #ifdef PERL_OBJECT
2484 #define NO_XSLOCKS
2485 #include "XSUB.h"
2486 #endif
2487
2488 static void
2489 yydestruct(pTHXo_ void *ptr)
2490 {
2491     struct ysv* ysave = (struct ysv*)ptr;
2492     if (ysave->yyss) Safefree(ysave->yyss);
2493     if (ysave->yyvs) Safefree(ysave->yyvs);
2494     yydebug     = ysave->oldyydebug;
2495     yynerrs     = ysave->oldyynerrs;
2496     yyerrflag   = ysave->oldyyerrflag;
2497     yychar      = ysave->oldyychar;
2498     yyval       = ysave->oldyyval;
2499     yylval      = ysave->oldyylval;
2500     Safefree(ysave);
2501 }