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