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