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