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