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