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