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