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