Re: [patch] IO::Socket::INET Broadcast patch
[perl.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_old("\"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(pTHX_ 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     0,    9,    7,    6,   10,    8,   11,   11,   11,   12,
57    12,   12,   12,   25,   25,   25,   25,   25,   25,   25,
58    15,   15,   15,   14,   14,   43,   43,   13,   13,   13,
59    13,   13,   13,   13,   27,   27,   28,   28,   29,   30,
60    31,   32,   33,   54,   54,    1,    1,    1,    1,    1,
61     2,   39,   39,   47,   55,    3,    4,    5,   40,   41,
62    41,   45,   45,   45,   46,   46,   42,   42,   56,   56,
63    58,   57,   16,   16,   16,   26,   26,   26,   37,   37,
64    37,   37,   37,   37,   37,   37,   59,   37,   38,   38,
65    18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
66    18,   50,   50,   50,   50,   50,   50,   50,   50,   50,
67    50,   50,   50,   50,   51,   51,   51,   51,   51,   51,
68    51,   51,   52,   52,   52,   52,   52,   53,   53,   53,
69    53,   53,   53,   17,   17,   17,   17,   17,   17,   17,
70    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
71    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
72    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
73    17,   17,   17,   17,   48,   48,   49,   49,   49,   49,
74    49,   34,   34,   35,   35,   35,   44,   24,   19,   20,
75    21,   22,   23,   36,   36,   36,   36,
76 };
77 static short yylen[] = {                                         2,
78     2,    4,    0,    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[] = {                                      4,
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,    3,  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,    3,    3,    3,    3,    3,
111     3,    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,    3,  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,    2,    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,    2,   95,  370,   98,  359,
143     3,   12,   13,   70,  375,  285,   72,   73,   74,   75,
144    76,   77,   78,   79,  291,   81,  292,  281,  283,  286,
145   294,  282,  284,  122,  214,  100,   82,  257,   89,   91,
146   194,  327,  156,  289,  271,  225,   14,   83,  137,   84,
147    85,   86,   87,   15,   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,    0,   -2,    0,   37,  634,
235   -94,    0,    0,    0, -323,  -15, 2445,    0,  999,  414,
236   417,    0,    0,    0,  463,  -43,    0,    0,  321, -198,
237   103,  147,  280,  -91, -185,    1,    0,    0,    0,  464,
238   -44,  222,  338,    0, -179,    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,    1,  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 "prog : progstart lineseq",
1186 "block : '{' remember lineseq '}'",
1187 "remember :",
1188 "progstart :",
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 "$$1 :",
1256 "use : USE startsub $$1 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 "$$2 :",
1272 "listop : LSTOPSUB startanonsub block $$2 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 793 "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 1409 "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 ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1513             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1514     {
1515         yyn = yytable[yyn];
1516         goto yyreduce;
1517     }
1518     if (yyerrflag) goto yyinrecovery;
1519 #ifdef lint
1520
1521 #endif
1522
1523     yyerror("syntax error");
1524 #ifdef lint
1525
1526 #endif
1527
1528     ++yynerrs;
1529 yyinrecovery:
1530     if (yyerrflag < 3)
1531     {
1532         yyerrflag = 3;
1533         for (;;)
1534         {
1535             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1536                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1537             {
1538 #if YYDEBUG
1539                 if (yydebug)
1540                     PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
1541  to state %d\n", *yyssp, yytable[yyn]);
1542 #endif
1543                 if (yyssp >= yyss + yystacksize - 1)
1544                 {
1545                     /*
1546                     ** reallocate and recover.  Note that pointers
1547                     ** have to be reset, or bad things will happen
1548                     */
1549                     int yyps_index = (yyssp - yyss);
1550                     int yypv_index = (yyvsp - yyvs);
1551                     yystacksize += YYSTACKSIZE;
1552                     ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
1553                     ysave->yyss = Renew(yyss, yystacksize, short);
1554                     if (!yyvs || !yyss)
1555                     goto yyoverflow;
1556                     yyssp = yyss + yyps_index;
1557                     yyvsp = yyvs + yypv_index;
1558                 }
1559                 *++yyssp = yystate = yytable[yyn];
1560                 *++yyvsp = yylval;
1561                 goto yyloop;
1562             }
1563             else
1564             {
1565 #if YYDEBUG
1566                 if (yydebug)
1567                     PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
1568                             *yyssp);
1569 #endif
1570                 if (yyssp <= yyss) goto yyabort;
1571                 --yyssp;
1572                 --yyvsp;
1573             }
1574         }
1575     }
1576     else
1577     {
1578         if (yychar == 0) goto yyabort;
1579 #if YYDEBUG
1580         if (yydebug)
1581         {
1582             yys = 0;
1583             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1584             if (!yys) yys = "illegal-symbol";
1585             PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
1586                     yystate, yychar, yys);
1587         }
1588 #endif
1589         yychar = (-1);
1590         goto yyloop;
1591     }
1592 yyreduce:
1593 #if YYDEBUG
1594     if (yydebug)
1595         PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
1596                 yystate, yyn, yyrule[yyn]);
1597 #endif
1598     yym = yylen[yyn];
1599     yyval = yyvsp[1-yym];
1600     switch (yyn)
1601     {
1602 case 1:
1603 #line 131 "perly.y"
1604 { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
1605 break;
1606 case 2:
1607 #line 136 "perly.y"
1608 { if (PL_copline > (line_t)yyvsp[-3].ival)
1609                               PL_copline = yyvsp[-3].ival;
1610                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1611 break;
1612 case 3:
1613 #line 142 "perly.y"
1614 { yyval.ival = block_start(TRUE); }
1615 break;
1616 case 4:
1617 #line 146 "perly.y"
1618 {
1619 #if defined(YYDEBUG) && defined(DEBUGGING)
1620                     yydebug = (DEBUG_p_TEST);
1621 #endif
1622                     PL_expect = XSTATE; yyval.ival = block_start(TRUE);
1623                 }
1624 break;
1625 case 5:
1626 #line 156 "perly.y"
1627 { if (PL_copline > (line_t)yyvsp[-3].ival)
1628                               PL_copline = yyvsp[-3].ival;
1629                           yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
1630 break;
1631 case 6:
1632 #line 162 "perly.y"
1633 { yyval.ival = block_start(FALSE); }
1634 break;
1635 case 7:
1636 #line 167 "perly.y"
1637 { yyval.opval = Nullop; }
1638 break;
1639 case 8:
1640 #line 169 "perly.y"
1641 { yyval.opval = yyvsp[-1].opval; }
1642 break;
1643 case 9:
1644 #line 171 "perly.y"
1645 {   yyval.opval = append_list(OP_LINESEQ,
1646                                 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
1647                             PL_pad_reset_pending = TRUE;
1648                             if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
1649 break;
1650 case 10:
1651 #line 179 "perly.y"
1652 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1653 break;
1654 case 12:
1655 #line 182 "perly.y"
1656 { if (yyvsp[-1].pval != Nullch) {
1657                               yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1658                             }
1659                             else {
1660                               yyval.opval = Nullop;
1661                               PL_copline = NOLINE;
1662                             }
1663                             PL_expect = XSTATE; }
1664 break;
1665 case 13:
1666 #line 191 "perly.y"
1667 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1668                           PL_expect = XSTATE; }
1669 break;
1670 case 14:
1671 #line 197 "perly.y"
1672 { yyval.opval = Nullop; }
1673 break;
1674 case 15:
1675 #line 199 "perly.y"
1676 { yyval.opval = yyvsp[0].opval; }
1677 break;
1678 case 16:
1679 #line 201 "perly.y"
1680 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1681 break;
1682 case 17:
1683 #line 203 "perly.y"
1684 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1685 break;
1686 case 18:
1687 #line 205 "perly.y"
1688 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1689 break;
1690 case 19:
1691 #line 207 "perly.y"
1692 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
1693 break;
1694 case 20:
1695 #line 209 "perly.y"
1696 { yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
1697                                         Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
1698 break;
1699 case 21:
1700 #line 215 "perly.y"
1701 { yyval.opval = Nullop; }
1702 break;
1703 case 22:
1704 #line 217 "perly.y"
1705 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
1706 break;
1707 case 23:
1708 #line 219 "perly.y"
1709 { PL_copline = yyvsp[-5].ival;
1710                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
1711                             PL_hints |= HINT_BLOCK_SCOPE; }
1712 break;
1713 case 24:
1714 #line 226 "perly.y"
1715 { PL_copline = yyvsp[-6].ival;
1716                             yyval.opval = block_end(yyvsp[-4].ival,
1717                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1718 break;
1719 case 25:
1720 #line 230 "perly.y"
1721 { PL_copline = yyvsp[-6].ival;
1722                             yyval.opval = block_end(yyvsp[-4].ival,
1723                                    newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
1724 break;
1725 case 26:
1726 #line 237 "perly.y"
1727 { yyval.opval = Nullop; }
1728 break;
1729 case 27:
1730 #line 239 "perly.y"
1731 { yyval.opval = scope(yyvsp[0].opval); }
1732 break;
1733 case 28:
1734 #line 244 "perly.y"
1735 { PL_copline = yyvsp[-6].ival;
1736                             yyval.opval = block_end(yyvsp[-4].ival,
1737                                    newSTATEOP(0, yyvsp[-7].pval,
1738                                      newWHILEOP(0, 1, (LOOP*)Nullop,
1739                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1740 break;
1741 case 29:
1742 #line 250 "perly.y"
1743 { PL_copline = yyvsp[-6].ival;
1744                             yyval.opval = block_end(yyvsp[-4].ival,
1745                                    newSTATEOP(0, yyvsp[-7].pval,
1746                                      newWHILEOP(0, 1, (LOOP*)Nullop,
1747                                                 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
1748 break;
1749 case 30:
1750 #line 256 "perly.y"
1751 { yyval.opval = block_end(yyvsp[-6].ival,
1752                                  newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1753 break;
1754 case 31:
1755 #line 259 "perly.y"
1756 { yyval.opval = block_end(yyvsp[-4].ival,
1757                                  newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
1758                                           yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1759 break;
1760 case 32:
1761 #line 263 "perly.y"
1762 { yyval.opval = block_end(yyvsp[-4].ival,
1763                                  newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
1764 break;
1765 case 33:
1766 #line 267 "perly.y"
1767 { OP *forop;
1768                           PL_copline = yyvsp[-9].ival;
1769                           forop = newSTATEOP(0, yyvsp[-10].pval,
1770                                             newWHILEOP(0, 1, (LOOP*)Nullop,
1771                                                 yyvsp[-9].ival, scalar(yyvsp[-4].opval),
1772                                                 yyvsp[0].opval, yyvsp[-2].opval));
1773                           if (yyvsp[-6].opval) {
1774                                 forop = append_elem(OP_LINESEQ,
1775                                         newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
1776                                                    yyvsp[-6].opval),
1777                                         forop);
1778                           }
1779
1780                           yyval.opval = block_end(yyvsp[-7].ival, forop); }
1781 break;
1782 case 34:
1783 #line 282 "perly.y"
1784 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
1785                                  newWHILEOP(0, 1, (LOOP*)Nullop,
1786                                             NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
1787 break;
1788 case 35:
1789 #line 289 "perly.y"
1790 { yyval.opval = Nullop; }
1791 break;
1792 case 37:
1793 #line 295 "perly.y"
1794 { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
1795 break;
1796 case 39:
1797 #line 301 "perly.y"
1798 { yyval.opval = invert(scalar(yyvsp[0].opval)); }
1799 break;
1800 case 40:
1801 #line 306 "perly.y"
1802 { yyval.opval = yyvsp[0].opval; intro_my(); }
1803 break;
1804 case 41:
1805 #line 310 "perly.y"
1806 { yyval.opval = yyvsp[0].opval; intro_my(); }
1807 break;
1808 case 42:
1809 #line 314 "perly.y"
1810 { yyval.opval = yyvsp[0].opval; intro_my(); }
1811 break;
1812 case 43:
1813 #line 318 "perly.y"
1814 { yyval.opval = yyvsp[0].opval; intro_my(); }
1815 break;
1816 case 44:
1817 #line 323 "perly.y"
1818 { yyval.pval = Nullch; }
1819 break;
1820 case 46:
1821 #line 329 "perly.y"
1822 { yyval.ival = 0; }
1823 break;
1824 case 47:
1825 #line 331 "perly.y"
1826 { yyval.ival = 0; }
1827 break;
1828 case 48:
1829 #line 333 "perly.y"
1830 { yyval.ival = 0; }
1831 break;
1832 case 49:
1833 #line 335 "perly.y"
1834 { yyval.ival = 0; }
1835 break;
1836 case 50:
1837 #line 337 "perly.y"
1838 { yyval.ival = 0; }
1839 break;
1840 case 51:
1841 #line 341 "perly.y"
1842 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1843 break;
1844 case 52:
1845 #line 344 "perly.y"
1846 { yyval.opval = yyvsp[0].opval; }
1847 break;
1848 case 53:
1849 #line 345 "perly.y"
1850 { yyval.opval = Nullop; }
1851 break;
1852 case 54:
1853 #line 350 "perly.y"
1854 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1855 break;
1856 case 55:
1857 #line 355 "perly.y"
1858 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1859 break;
1860 case 56:
1861 #line 359 "perly.y"
1862 { yyval.ival = start_subparse(FALSE, 0); }
1863 break;
1864 case 57:
1865 #line 363 "perly.y"
1866 { yyval.ival = start_subparse(FALSE, CVf_ANON); }
1867 break;
1868 case 58:
1869 #line 367 "perly.y"
1870 { yyval.ival = start_subparse(TRUE, 0); }
1871 break;
1872 case 59:
1873 #line 371 "perly.y"
1874 { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
1875                           if (strEQ(name, "BEGIN") || strEQ(name, "END")
1876                               || strEQ(name, "INIT") || strEQ(name, "CHECK"))
1877                               CvSPECIAL_on(PL_compcv);
1878                           yyval.opval = yyvsp[0].opval; }
1879 break;
1880 case 60:
1881 #line 380 "perly.y"
1882 { yyval.opval = Nullop; }
1883 break;
1884 case 62:
1885 #line 386 "perly.y"
1886 { yyval.opval = Nullop; }
1887 break;
1888 case 63:
1889 #line 388 "perly.y"
1890 { yyval.opval = yyvsp[0].opval; }
1891 break;
1892 case 64:
1893 #line 390 "perly.y"
1894 { yyval.opval = Nullop; }
1895 break;
1896 case 65:
1897 #line 395 "perly.y"
1898 { yyval.opval = yyvsp[0].opval; }
1899 break;
1900 case 66:
1901 #line 397 "perly.y"
1902 { yyval.opval = Nullop; }
1903 break;
1904 case 67:
1905 #line 401 "perly.y"
1906 { yyval.opval = yyvsp[0].opval; }
1907 break;
1908 case 68:
1909 #line 402 "perly.y"
1910 { yyval.opval = Nullop; PL_expect = XSTATE; }
1911 break;
1912 case 69:
1913 #line 406 "perly.y"
1914 { package(yyvsp[-1].opval); }
1915 break;
1916 case 70:
1917 #line 408 "perly.y"
1918 { package(Nullop); }
1919 break;
1920 case 71:
1921 #line 412 "perly.y"
1922 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
1923 break;
1924 case 72:
1925 #line 414 "perly.y"
1926 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
1927 break;
1928 case 73:
1929 #line 419 "perly.y"
1930 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1931 break;
1932 case 74:
1933 #line 421 "perly.y"
1934 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1935 break;
1936 case 76:
1937 #line 427 "perly.y"
1938 { yyval.opval = yyvsp[-1].opval; }
1939 break;
1940 case 77:
1941 #line 429 "perly.y"
1942 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1943 break;
1944 case 79:
1945 #line 435 "perly.y"
1946 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
1947                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
1948 break;
1949 case 80:
1950 #line 438 "perly.y"
1951 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
1952                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
1953 break;
1954 case 81:
1955 #line 441 "perly.y"
1956 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1957                                 append_elem(OP_LIST,
1958                                     prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
1959                                     newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
1960 break;
1961 case 82:
1962 #line 446 "perly.y"
1963 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1964                                 append_elem(OP_LIST, scalar(yyvsp[-2].opval),
1965                                     newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
1966 break;
1967 case 83:
1968 #line 450 "perly.y"
1969 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1970                                 append_elem(OP_LIST,
1971                                     prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
1972                                     newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
1973 break;
1974 case 84:
1975 #line 455 "perly.y"
1976 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
1977                                 append_elem(OP_LIST,
1978                                     prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
1979                                     newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
1980 break;
1981 case 85:
1982 #line 460 "perly.y"
1983 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1984 break;
1985 case 86:
1986 #line 462 "perly.y"
1987 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1988 break;
1989 case 87:
1990 #line 464 "perly.y"
1991 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
1992 break;
1993 case 88:
1994 #line 466 "perly.y"
1995 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
1996                                  append_elem(OP_LIST,
1997                                    prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
1998 break;
1999 case 91:
2000 #line 480 "perly.y"
2001 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
2002 break;
2003 case 92:
2004 #line 482 "perly.y"
2005 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2006 break;
2007 case 93:
2008 #line 484 "perly.y"
2009 { yyval.opval = newBINOP(OP_AELEM, 0,
2010                                         ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2011                                         scalar(yyvsp[-1].opval));}
2012 break;
2013 case 94:
2014 #line 488 "perly.y"
2015 { yyval.opval = newBINOP(OP_AELEM, 0,
2016                                         ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2017                                         scalar(yyvsp[-1].opval));}
2018 break;
2019 case 95:
2020 #line 492 "perly.y"
2021 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2022                             PL_expect = XOPERATOR; }
2023 break;
2024 case 96:
2025 #line 495 "perly.y"
2026 { yyval.opval = newBINOP(OP_HELEM, 0,
2027                                         ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
2028                                         jmaybe(yyvsp[-2].opval));
2029                             PL_expect = XOPERATOR; }
2030 break;
2031 case 97:
2032 #line 500 "perly.y"
2033 { yyval.opval = newBINOP(OP_HELEM, 0,
2034                                         ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
2035                                         jmaybe(yyvsp[-2].opval));
2036                             PL_expect = XOPERATOR; }
2037 break;
2038 case 98:
2039 #line 505 "perly.y"
2040 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2041                                    newCVREF(0, scalar(yyvsp[-3].opval))); }
2042 break;
2043 case 99:
2044 #line 508 "perly.y"
2045 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2046                                    append_elem(OP_LIST, yyvsp[-1].opval,
2047                                        newCVREF(0, scalar(yyvsp[-4].opval)))); }
2048 break;
2049 case 100:
2050 #line 513 "perly.y"
2051 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2052                                    append_elem(OP_LIST, yyvsp[-1].opval,
2053                                                newCVREF(0, scalar(yyvsp[-3].opval)))); }
2054 break;
2055 case 101:
2056 #line 517 "perly.y"
2057 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2058                                    newCVREF(0, scalar(yyvsp[-2].opval))); }
2059 break;
2060 case 102:
2061 #line 523 "perly.y"
2062 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2063 break;
2064 case 103:
2065 #line 525 "perly.y"
2066 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2067 break;
2068 case 104:
2069 #line 527 "perly.y"
2070 {   if (yyvsp[-1].ival != OP_REPEAT)
2071                                 scalar(yyvsp[-2].opval);
2072                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2073 break;
2074 case 105:
2075 #line 531 "perly.y"
2076 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2077 break;
2078 case 106:
2079 #line 533 "perly.y"
2080 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2081 break;
2082 case 107:
2083 #line 535 "perly.y"
2084 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2085 break;
2086 case 108:
2087 #line 537 "perly.y"
2088 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2089 break;
2090 case 109:
2091 #line 539 "perly.y"
2092 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2093 break;
2094 case 110:
2095 #line 541 "perly.y"
2096 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2097 break;
2098 case 111:
2099 #line 543 "perly.y"
2100 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2101 break;
2102 case 112:
2103 #line 545 "perly.y"
2104 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2105 break;
2106 case 113:
2107 #line 547 "perly.y"
2108 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2109 break;
2110 case 114:
2111 #line 549 "perly.y"
2112 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2113 break;
2114 case 115:
2115 #line 554 "perly.y"
2116 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2117 break;
2118 case 116:
2119 #line 556 "perly.y"
2120 { yyval.opval = yyvsp[0].opval; }
2121 break;
2122 case 117:
2123 #line 558 "perly.y"
2124 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2125 break;
2126 case 118:
2127 #line 560 "perly.y"
2128 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2129 break;
2130 case 119:
2131 #line 562 "perly.y"
2132 { yyval.opval = newUNOP(OP_POSTINC, 0,
2133                                         mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2134 break;
2135 case 120:
2136 #line 565 "perly.y"
2137 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2138                                         mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2139 break;
2140 case 121:
2141 #line 568 "perly.y"
2142 { yyval.opval = newUNOP(OP_PREINC, 0,
2143                                         mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2144 break;
2145 case 122:
2146 #line 571 "perly.y"
2147 { yyval.opval = newUNOP(OP_PREDEC, 0,
2148                                         mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2149 break;
2150 case 123:
2151 #line 578 "perly.y"
2152 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2153 break;
2154 case 124:
2155 #line 580 "perly.y"
2156 { yyval.opval = newANONLIST(Nullop); }
2157 break;
2158 case 125:
2159 #line 582 "perly.y"
2160 { yyval.opval = newANONHASH(yyvsp[-2].opval); }
2161 break;
2162 case 126:
2163 #line 584 "perly.y"
2164 { yyval.opval = newANONHASH(Nullop); }
2165 break;
2166 case 127:
2167 #line 586 "perly.y"
2168 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2169 break;
2170 case 128:
2171 #line 592 "perly.y"
2172 { yyval.opval = dofile(yyvsp[0].opval); }
2173 break;
2174 case 129:
2175 #line 594 "perly.y"
2176 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2177 break;
2178 case 130:
2179 #line 596 "perly.y"
2180 { yyval.opval = newUNOP(OP_ENTERSUB,
2181                             OPf_SPECIAL|OPf_STACKED,
2182                             prepend_elem(OP_LIST,
2183                                 scalar(newCVREF(
2184                                     (OPpENTERSUB_AMPER<<8),
2185                                     scalar(yyvsp[-2].opval)
2186                                 )),Nullop)); dep();}
2187 break;
2188 case 131:
2189 #line 604 "perly.y"
2190 { yyval.opval = newUNOP(OP_ENTERSUB,
2191                             OPf_SPECIAL|OPf_STACKED,
2192                             append_elem(OP_LIST,
2193                                 yyvsp[-1].opval,
2194                                 scalar(newCVREF(
2195                                     (OPpENTERSUB_AMPER<<8),
2196                                     scalar(yyvsp[-3].opval)
2197                                 )))); dep();}
2198 break;
2199 case 132:
2200 #line 613 "perly.y"
2201 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2202                             prepend_elem(OP_LIST,
2203                                 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
2204 break;
2205 case 133:
2206 #line 617 "perly.y"
2207 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2208                             prepend_elem(OP_LIST,
2209                                 yyvsp[-1].opval,
2210                                 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2211 break;
2212 case 138:
2213 #line 629 "perly.y"
2214 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2215 break;
2216 case 139:
2217 #line 631 "perly.y"
2218 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2219 break;
2220 case 140:
2221 #line 633 "perly.y"
2222 { yyval.opval = yyvsp[0].opval; }
2223 break;
2224 case 141:
2225 #line 635 "perly.y"
2226 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2227 break;
2228 case 142:
2229 #line 637 "perly.y"
2230 { yyval.opval = sawparens(yyvsp[-1].opval); }
2231 break;
2232 case 143:
2233 #line 639 "perly.y"
2234 { yyval.opval = sawparens(newNULLLIST()); }
2235 break;
2236 case 144:
2237 #line 641 "perly.y"
2238 { yyval.opval = yyvsp[0].opval; }
2239 break;
2240 case 145:
2241 #line 643 "perly.y"
2242 { yyval.opval = yyvsp[0].opval; }
2243 break;
2244 case 146:
2245 #line 645 "perly.y"
2246 { yyval.opval = yyvsp[0].opval; }
2247 break;
2248 case 147:
2249 #line 647 "perly.y"
2250 { yyval.opval = yyvsp[0].opval; }
2251 break;
2252 case 148:
2253 #line 649 "perly.y"
2254 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2255 break;
2256 case 149:
2257 #line 651 "perly.y"
2258 { yyval.opval = yyvsp[0].opval; }
2259 break;
2260 case 150:
2261 #line 653 "perly.y"
2262 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2263 break;
2264 case 151:
2265 #line 655 "perly.y"
2266 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2267 break;
2268 case 152:
2269 #line 657 "perly.y"
2270 { yyval.opval = prepend_elem(OP_ASLICE,
2271                                 newOP(OP_PUSHMARK, 0),
2272                                     newLISTOP(OP_ASLICE, 0,
2273                                         list(yyvsp[-1].opval),
2274                                         ref(yyvsp[-3].opval, OP_ASLICE))); }
2275 break;
2276 case 153:
2277 #line 663 "perly.y"
2278 { yyval.opval = prepend_elem(OP_HSLICE,
2279                                 newOP(OP_PUSHMARK, 0),
2280                                     newLISTOP(OP_HSLICE, 0,
2281                                         list(yyvsp[-2].opval),
2282                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2283                             PL_expect = XOPERATOR; }
2284 break;
2285 case 154:
2286 #line 670 "perly.y"
2287 { yyval.opval = yyvsp[0].opval; }
2288 break;
2289 case 155:
2290 #line 672 "perly.y"
2291 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2292 break;
2293 case 156:
2294 #line 674 "perly.y"
2295 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2296 break;
2297 case 157:
2298 #line 676 "perly.y"
2299 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2300                             append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2301 break;
2302 case 158:
2303 #line 679 "perly.y"
2304 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2305                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2306 break;
2307 case 159:
2308 #line 682 "perly.y"
2309 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2310                             PL_hints |= HINT_BLOCK_SCOPE; }
2311 break;
2312 case 160:
2313 #line 685 "perly.y"
2314 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2315 break;
2316 case 161:
2317 #line 687 "perly.y"
2318 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2319 break;
2320 case 162:
2321 #line 689 "perly.y"
2322 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2323 break;
2324 case 163:
2325 #line 691 "perly.y"
2326 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2327 break;
2328 case 164:
2329 #line 693 "perly.y"
2330 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2331 break;
2332 case 165:
2333 #line 695 "perly.y"
2334 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2335                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2336 break;
2337 case 166:
2338 #line 698 "perly.y"
2339 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2340 break;
2341 case 167:
2342 #line 700 "perly.y"
2343 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2344 break;
2345 case 168:
2346 #line 702 "perly.y"
2347 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2348                                 scalar(yyvsp[0].opval)); }
2349 break;
2350 case 169:
2351 #line 705 "perly.y"
2352 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2353 break;
2354 case 170:
2355 #line 707 "perly.y"
2356 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2357 break;
2358 case 171:
2359 #line 709 "perly.y"
2360 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2361 break;
2362 case 172:
2363 #line 711 "perly.y"
2364 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2365 break;
2366 case 175:
2367 #line 718 "perly.y"
2368 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2369 break;
2370 case 176:
2371 #line 720 "perly.y"
2372 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2373 break;
2374 case 177:
2375 #line 725 "perly.y"
2376 { yyval.opval = sawparens(yyvsp[-1].opval); }
2377 break;
2378 case 178:
2379 #line 727 "perly.y"
2380 { yyval.opval = sawparens(newNULLLIST()); }
2381 break;
2382 case 179:
2383 #line 729 "perly.y"
2384 { yyval.opval = yyvsp[0].opval; }
2385 break;
2386 case 180:
2387 #line 731 "perly.y"
2388 { yyval.opval = yyvsp[0].opval; }
2389 break;
2390 case 181:
2391 #line 733 "perly.y"
2392 { yyval.opval = yyvsp[0].opval; }
2393 break;
2394 case 182:
2395 #line 738 "perly.y"
2396 { yyval.opval = Nullop; }
2397 break;
2398 case 183:
2399 #line 740 "perly.y"
2400 { yyval.opval = yyvsp[0].opval; }
2401 break;
2402 case 184:
2403 #line 744 "perly.y"
2404 { yyval.opval = Nullop; }
2405 break;
2406 case 185:
2407 #line 746 "perly.y"
2408 { yyval.opval = yyvsp[0].opval; }
2409 break;
2410 case 186:
2411 #line 748 "perly.y"
2412 { yyval.opval = yyvsp[-1].opval; }
2413 break;
2414 case 187:
2415 #line 754 "perly.y"
2416 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2417 break;
2418 case 188:
2419 #line 758 "perly.y"
2420 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2421 break;
2422 case 189:
2423 #line 762 "perly.y"
2424 { yyval.opval = newSVREF(yyvsp[0].opval); }
2425 break;
2426 case 190:
2427 #line 766 "perly.y"
2428 { yyval.opval = newAVREF(yyvsp[0].opval); }
2429 break;
2430 case 191:
2431 #line 770 "perly.y"
2432 { yyval.opval = newHVREF(yyvsp[0].opval); }
2433 break;
2434 case 192:
2435 #line 774 "perly.y"
2436 { yyval.opval = newAVREF(yyvsp[0].opval); }
2437 break;
2438 case 193:
2439 #line 778 "perly.y"
2440 { yyval.opval = newGVREF(0,yyvsp[0].opval); }
2441 break;
2442 case 194:
2443 #line 783 "perly.y"
2444 { yyval.opval = scalar(yyvsp[0].opval); }
2445 break;
2446 case 195:
2447 #line 785 "perly.y"
2448 { yyval.opval = scalar(yyvsp[0].opval);  }
2449 break;
2450 case 196:
2451 #line 787 "perly.y"
2452 { yyval.opval = scope(yyvsp[0].opval); }
2453 break;
2454 case 197:
2455 #line 790 "perly.y"
2456 { yyval.opval = yyvsp[0].opval; }
2457 break;
2458 #line 2459 "perly.c"
2459     }
2460     yyssp -= yym;
2461     yystate = *yyssp;
2462     yyvsp -= yym;
2463     yym = yylhs[yyn];
2464     if (yystate == 0 && yym == 0)
2465     {
2466 #if YYDEBUG
2467         if (yydebug)
2468             PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2469  state %d\n", YYFINAL);
2470 #endif
2471         yystate = YYFINAL;
2472         *++yyssp = YYFINAL;
2473         *++yyvsp = yyval;
2474         if (yychar < 0)
2475         {
2476             if ((yychar = yylex()) < 0) yychar = 0;
2477 #if YYDEBUG
2478             if (yydebug)
2479             {
2480                 yys = 0;
2481                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2482                 if (!yys) yys = "illegal-symbol";
2483                 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2484                         YYFINAL, yychar, yys);
2485             }
2486 #endif
2487         }
2488         if (yychar == 0) goto yyaccept;
2489         goto yyloop;
2490     }
2491     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2492             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2493         yystate = yytable[yyn];
2494     else
2495         yystate = yydgoto[yym];
2496 #if YYDEBUG
2497     if (yydebug)
2498         PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2499 to state %d\n", *yyssp, yystate);
2500 #endif
2501     if (yyssp >= yyss + yystacksize - 1)
2502     {
2503         /*
2504         ** reallocate and recover.  Note that pointers
2505         ** have to be reset, or bad things will happen
2506         */
2507         int yyps_index = (yyssp - yyss);
2508         int yypv_index = (yyvsp - yyvs);
2509         yystacksize += YYSTACKSIZE;
2510         ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2511         ysave->yyss = Renew(yyss, yystacksize, short);
2512         if (!yyvs || !yyss)
2513         goto yyoverflow;
2514         yyssp = yyss + yyps_index;
2515         yyvsp = yyvs + yypv_index;
2516     }
2517     *++yyssp = yystate;
2518     *++yyvsp = yyval;
2519     goto yyloop;
2520 yyoverflow:
2521     yyerror("Out of memory for yacc stack");
2522 yyabort:
2523     retval = 1;
2524 yyaccept:
2525 #ifdef USE_ITHREADS
2526     LEAVE;                      /* force yydestruct() before we return */
2527 #endif
2528     return retval;
2529 }
2530
2531 static void
2532 yydestruct(pTHX_ void *ptr)
2533 {
2534     struct ysv* ysave = (struct ysv*)ptr;
2535     if (ysave->yyss) Safefree(ysave->yyss);
2536     if (ysave->yyvs) Safefree(ysave->yyvs);
2537     yydebug     = ysave->oldyydebug;
2538     yynerrs     = ysave->oldyynerrs;
2539     yyerrflag   = ysave->oldyyerrflag;
2540     yychar      = ysave->oldyychar;
2541     yyval       = ysave->oldyyval;
2542     yylval      = ysave->oldyylval;
2543     Safefree(ysave);
2544 }