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