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