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