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