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