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