2 static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
7 #define yyclearin (yychar=(-1))
8 #define yyerrok (yyerrflag=0)
9 #define YYRECOVERING (yyerrflag!=0)
10 extern int yyparse(void);
11 #define yyparse parserparse
12 #define yylex parserlex
13 #define yyerror parsererror
14 #define yychar parserchar
15 #define yyval parserval
16 #define yylval parserlval
17 #define yydebug parserdebug
18 #define yynerrs parsernerrs
19 #define yyerrflag parsererrflag
21 #define yyssp parserssp
23 #define yyvsp parservsp
24 #define yylhs parserlhs
25 #define yylen parserlen
26 #define yydefred parserdefred
27 #define yydgoto parserdgoto
28 #define yysindex parsersindex
29 #define yyrindex parserrindex
30 #define yygindex parsergindex
31 #define yytable parsertable
32 #define yycheck parsercheck
33 #define yyname parsername
34 #define yyrule parserrule
35 #define YYPREFIX "parser"
38 /* (C) Copyright 2001 by Thomas Driemeyer <thomas@bitrot.de> www.bitrot.de.*/
40 /* This is free software; you can redistribute it and/or modify it under the*/
41 /* terms of the GNU Library General Public License as published by the Free*/
42 /* Software Foundation; either version 2 of the License, or (at your option)*/
43 /* any later version. This library is distributed in the hope that it will*/
44 /* be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of*/
45 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library*/
46 /* General Public License for more details.*/
48 /* expression language grammar, compiled to parser.C by yacc*/
57 #include <qmessagebox.h>
64 #define yyparse Evaluate::yyeparse
66 typedef union { int ival; double dval; char *sval; Arg *aval; } YYSTYPE;
158 #define YYERRCODE 256
159 short parserlhs[] = { -1,
160 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 3, 3, 1, 1,
165 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
166 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
167 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
168 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
169 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
170 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
171 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
172 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
173 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
176 short parserlen[] = { 2,
177 1, 1, 3, 3, 3, 1, 3, 3, 3, 5,
178 3, 3, 3, 3, 3, 3, 3, 1, 4, 3,
179 6, 4, 2, 4, 6, 8, 1, 1, 1, 1,
180 4, 1, 1, 6, 4, 6, 1, 1, 4, 4,
181 4, 4, 7, 4, 1, 4, 1, 3, 1, 3,
182 3, 1, 4, 3, 6, 1, 3, 3, 3, 3,
183 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
184 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
185 3, 3, 3, 3, 3, 3, 3, 3, 3, 5,
186 3, 1, 1, 1, 4, 4, 4, 4, 4, 4,
187 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
188 4, 8, 4, 4, 4, 4, 4, 6, 1, 4,
189 4, 4, 4, 4, 4, 6, 1, 4, 1, 4,
190 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
193 short parserdefred[] = { 0,
194 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
195 0, 33, 32, 29, 0, 0, 27, 28, 0, 45,
196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
201 0, 0, 0, 0, 119, 0, 0, 0, 0, 0,
202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 92, 93, 94, 141, 142, 0,
204 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
207 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
208 0, 0, 0, 0, 0, 65, 66, 0, 67, 68,
209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
213 0, 0, 0, 0, 69, 70, 71, 0, 0, 0,
214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
215 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
216 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
217 0, 24, 0, 0, 40, 39, 41, 42, 0, 31,
218 0, 0, 35, 22, 0, 46, 44, 0, 0, 0,
219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
224 0, 50, 51, 0, 0, 0, 0, 0, 0, 0,
225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
226 80, 81, 77, 0, 0, 0, 0, 0, 0, 0,
227 0, 0, 95, 96, 97, 98, 99, 100, 101, 102,
228 103, 104, 105, 106, 107, 108, 109, 110, 111, 0,
229 113, 114, 115, 116, 117, 0, 120, 121, 122, 123,
230 124, 125, 0, 130, 131, 132, 133, 134, 135, 136,
231 137, 138, 140, 139, 128, 0, 0, 0, 0, 25,
232 0, 0, 34, 36, 0, 0, 0, 0, 0, 0,
233 0, 43, 0, 0, 118, 126, 143, 26, 0, 112,
235 short parserdgoto[] = { 26,
238 short parsersindex[] = { 230,
239 0, -59, -52, -36, -35, -28, -25, -18, -11, -3,
240 -75, 0, 0, 0, 16, 28, 0, 0, 38, 0,
241 39, 49, 230, 159, -231, 0, 3062, 230, 159, 230,
242 230, 230, 230, 230, 159, 159, 159, -217, 159, 230,
243 230, 230, 230, 230, 263, 0, -50, 235, -178, -170,
244 53, 54, 55, 56, 64, 65, 66, 67, 80, 82,
245 83, 84, 85, 87, 88, 89, 90, 91, 93, 94,
246 96, 114, 115, 126, 0, 128, 156, 160, 162, 163,
247 166, 168, 173, 175, 178, 180, 186, 187, 189, 190,
248 195, 196, 197, 26, 0, 0, 0, 0, 0, 208,
249 159, 159, 159, 230, 159, 727, 0, 230, 230, 230,
250 230, 230, 230, 230, 230, 230, 230, 147, 968, 147,
251 147, 846, 1194, 2176, 979, 1006, 1033, -38, 1044, 3031,
252 614, 1408, 3062, -17, 3, 0, 159, 159, 159, 159,
253 159, 159, 159, 159, 159, 0, 0, 159, 0, 0,
254 -4, -2, -1, 2, 5, 7, 9, 12, 21, 23,
255 24, 29, 30, 31, 34, 159, 159, 159, 230, 159,
256 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
257 159, 230, 230, 230, 159, 159, 159, 159, 159, 159,
258 159, 159, 159, 230, 0, 0, 0, 1701, 1128, 159,
259 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
260 159, 159, 159, 159, 159, 159, 159, 159, 159, 0,
261 15, 15, 203, 203, 107, 594, 2956, 203, 203, 0,
262 199, 0, 230, 159, 0, 0, 0, 0, 159, 0,
263 230, 230, 0, 0, 230, 0, 0, 2528, 1277, 2528,
264 2528, 2528, 2528, 2528, 2528, 2528, 2528, 216, 220, 227,
265 233, 247, 257, 270, 271, 272, 274, 275, 277, 279,
266 283, 287, 1155, 1288, 2203, 1926, 1315, 1342, 1388, 1400,
267 2256, 1436, 1472, 1582, 1648, 1683, 1711, 2330, 2937, 2971,
268 2980, 1738, 1749, 1776, 1834, 1845, 2010, 2021, 2079, 2093,
269 3095, 0, 0, 1882, 1882, 20, 20, 43, 43, 2886,
270 2727, 2517, 2120, -12, 2917, 2278, 20, 20, 50, 50,
271 0, 0, 0, 230, 230, 2991, 2365, 2132, 3011, 3022,
272 3062, 268, 0, 0, 0, 0, 0, 0, 0, 0,
273 0, 0, 0, 0, 0, 0, 0, 0, 0, 159,
274 0, 0, 0, 0, 0, 159, 0, 0, 0, 0,
275 0, 0, 159, 0, 0, 0, 0, 0, 0, 0,
276 0, 0, 0, 0, 0, 159, 159, 594, 147, 0,
277 159, 289, 0, 0, 159, 2517, 2415, 2443, 2168, 2517,
278 2454, 0, 2528, 159, 0, 0, 0, 0, 2489, 0,
280 short parserrindex[] = { 0,
281 0, 273, 459, 0, 0, 0, 539, 550, 0, 0,
282 570, 0, 0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0, 0, 0, 0, 337, 0, 0, 0,
284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
285 0, 0, 0, 0, 0, 0, -24, 699, 0, 0,
286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
289 0, 0, 856, 0, 0, 0, 0, 0, 0, 0,
290 0, 0, 0, 883, 0, 0, 0, 0, 0, 0,
291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
292 0, 0, 0, 0, 0, 0, 0, 747, 0, 911,
293 1219, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
303 1, 234, 590, 603, 40, 577, 0, 626, 672, 0,
304 579, 0, 0, 0, 0, 0, 0, 0, 0, 0,
305 0, 0, 0, 0, 0, 0, 0, 299, 0, 300,
306 320, 338, 736, 737, 787, 1071, 1118, 0, 0, 0,
307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
311 0, 0, 0, 2864, 2874, 2760, 2797, 1223, 2609, 153,
312 154, 310, 0, 77, 336, 8, 2841, 2851, 2563, 2601,
313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
314 14, 941, 0, 0, 0, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
318 0, 0, 0, 0, 0, 0, 0, 659, 1558, 0,
319 0, 0, 0, 0, 0, 294, 294, 294, 0, 346,
320 294, 0, 1119, 0, 0, 0, 0, 0, 294, 0,
322 short parsergindex[] = { 0,
325 #define YYTABLESIZE 3365
326 short parsertable[] = { 119,
327 13, 28, 238, 32, 33, 125, 126, 127, 31, 129,
328 137, 34, 52, 52, 35, 39, 52, 52, 52, 52,
329 52, 36, 52, 246, 219, 212, 245, 107, 37, 217,
330 216, 29, 215, 52, 218, 52, 38, 52, 52, 17,
331 138, 13, 128, 247, 13, 72, 245, 213, 72, 214,
332 47, 72, 239, 47, 48, 40, 219, 48, 13, 13,
333 117, 217, 216, 13, 215, 72, 218, 41, 52, 52,
334 72, 195, 196, 197, 115, 199, 116, 42, 43, 219,
335 17, 211, 149, 17, 217, 216, 219, 215, 44, 218,
336 150, 217, 151, 152, 153, 154, 218, 17, 17, 52,
337 72, 72, 17, 155, 156, 157, 158, 248, 249, 250,
338 251, 252, 253, 254, 255, 256, 193, 74, 257, 159,
339 74, 160, 161, 162, 163, 13, 164, 165, 166, 167,
340 168, 72, 169, 170, 74, 171, 273, 274, 275, 74,
341 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
342 287, 288, 117, 172, 173, 292, 293, 294, 295, 296,
343 297, 298, 299, 300, 17, 174, 115, 175, 116, 74,
344 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
345 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
346 27, 102, 117, 88, 89, 176, 88, 89, 105, 177,
347 74, 178, 179, 101, 327, 180, 115, 181, 116, 328,
348 88, 89, 182, 45, 183, 88, 89, 184, 118, 185,
349 120, 121, 122, 123, 124, 186, 187, 30, 188, 189,
350 130, 131, 132, 14, 190, 191, 192, 52, 52, 52,
351 52, 52, 52, 52, 52, 88, 89, 194, 117, 200,
352 201, 202, 203, 204, 205, 258, 333, 259, 260, 325,
353 334, 261, 13, 13, 262, 25, 263, 335, 264, 24,
354 13, 265, 18, 336, 14, 72, 72, 14, 110, 111,
355 266, 104, 267, 268, 103, 204, 205, 337, 269, 270,
356 271, 14, 14, 272, 198, 148, 14, 338, 221, 222,
357 223, 224, 225, 226, 227, 228, 229, 230, 117, 17,
358 339, 340, 341, 18, 342, 343, 18, 344, 18, 345,
359 386, 113, 115, 346, 116, 114, 387, 347, 385, 392,
360 18, 18, 18, 388, 18, 18, 1, 91, 135, 54,
361 58, 0, 54, 58, 74, 74, 389, 390, 0, 0,
362 91, 391, 23, 91, 0, 393, 54, 58, 14, 276,
363 59, 54, 58, 59, 399, 0, 0, 91, 108, 109,
364 110, 111, 289, 290, 291, 0, 73, 59, 60, 73,
365 0, 60, 59, 0, 301, 0, 90, 136, 0, 90,
366 0, 54, 58, 73, 0, 60, 0, 18, 73, 0,
367 60, 0, 91, 90, 0, 0, 0, 0, 108, 109,
368 110, 111, 59, 0, 0, 46, 112, 0, 47, 48,
369 88, 88, 89, 326, 0, 0, 0, 0, 73, 73,
370 60, 329, 330, 0, 0, 331, 49, 50, 90, 51,
371 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
372 62, 63, 64, 65, 66, 67, 68, 69, 6, 73,
373 0, 70, 71, 72, 73, 74, 75, 76, 77, 78,
374 79, 80, 81, 82, 83, 84, 85, 0, 86, 87,
375 88, 89, 90, 91, 92, 93, 94, 1, 0, 2,
376 3, 95, 96, 97, 0, 14, 14, 98, 99, 6,
377 100, 0, 6, 14, 6, 139, 140, 141, 142, 143,
378 144, 145, 146, 147, 378, 379, 6, 6, 6, 0,
379 6, 6, 0, 0, 108, 109, 110, 111, 0, 4,
380 5, 6, 112, 0, 18, 18, 18, 18, 38, 0,
381 0, 0, 18, 0, 0, 7, 8, 9, 10, 37,
382 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
383 14, 15, 0, 0, 0, 16, 17, 18, 0, 30,
384 19, 0, 20, 21, 22, 0, 4, 0, 19, 38,
385 0, 0, 38, 6, 38, 0, 0, 0, 0, 15,
386 37, 0, 0, 37, 0, 37, 38, 38, 38, 0,
387 38, 38, 16, 73, 73, 0, 0, 37, 37, 37,
388 30, 37, 37, 30, 0, 30, 0, 4, 0, 19,
389 4, 0, 19, 0, 19, 11, 0, 30, 30, 30,
390 15, 30, 30, 15, 4, 4, 19, 19, 19, 117,
391 19, 19, 0, 16, 0, 0, 16, 15, 15, 15,
392 0, 15, 15, 115, 243, 116, 114, 242, 10, 117,
393 16, 16, 16, 38, 16, 16, 11, 0, 0, 11,
394 0, 12, 113, 115, 37, 116, 114, 0, 0, 0,
395 0, 0, 0, 11, 11, 11, 0, 11, 11, 0,
396 0, 0, 0, 0, 30, 0, 0, 0, 0, 10,
397 0, 4, 10, 19, 0, 0, 0, 0, 0, 0,
398 0, 0, 12, 0, 15, 12, 10, 10, 0, 0,
399 6, 6, 6, 6, 0, 0, 0, 16, 6, 12,
400 12, 12, 0, 12, 12, 56, 56, 0, 0, 56,
401 56, 56, 56, 56, 0, 56, 20, 0, 0, 0,
402 11, 0, 0, 0, 0, 0, 56, 0, 56, 0,
403 56, 56, 0, 219, 212, 0, 0, 220, 217, 216,
404 208, 215, 0, 218, 0, 0, 62, 61, 0, 62,
405 61, 0, 0, 10, 0, 0, 213, 20, 214, 209,
406 20, 56, 56, 62, 61, 0, 12, 0, 62, 61,
407 38, 38, 38, 38, 20, 20, 0, 0, 38, 20,
408 0, 37, 37, 37, 37, 0, 0, 0, 0, 37,
409 211, 0, 56, 0, 0, 0, 0, 63, 62, 61,
410 63, 30, 30, 30, 30, 0, 0, 0, 0, 30,
411 19, 19, 19, 19, 63, 0, 0, 0, 19, 63,
412 210, 15, 15, 15, 15, 108, 109, 110, 111, 15,
413 0, 0, 0, 112, 16, 16, 16, 16, 0, 0,
414 0, 20, 16, 0, 0, 108, 109, 110, 111, 63,
415 0, 0, 0, 112, 0, 0, 232, 11, 11, 11,
416 11, 117, 129, 129, 0, 11, 129, 129, 129, 129,
417 129, 0, 129, 0, 113, 115, 0, 116, 114, 0,
418 7, 0, 0, 129, 0, 129, 0, 129, 129, 127,
419 127, 0, 0, 127, 127, 127, 127, 127, 0, 127,
420 0, 0, 0, 12, 12, 12, 12, 0, 0, 0,
421 127, 12, 127, 0, 127, 127, 0, 0, 129, 129,
422 0, 7, 0, 0, 7, 0, 0, 0, 0, 0,
423 56, 56, 56, 56, 56, 56, 56, 56, 7, 7,
424 0, 0, 0, 7, 0, 127, 127, 53, 53, 129,
425 0, 53, 53, 53, 53, 53, 0, 53, 200, 201,
426 202, 203, 204, 205, 206, 207, 0, 0, 53, 0,
427 53, 0, 53, 53, 219, 212, 127, 0, 0, 217,
428 216, 208, 215, 0, 218, 219, 212, 0, 0, 235,
429 217, 216, 208, 215, 0, 218, 0, 213, 0, 214,
430 209, 0, 0, 53, 53, 7, 0, 0, 213, 0,
431 214, 209, 219, 212, 0, 0, 236, 217, 216, 208,
432 215, 0, 218, 0, 0, 0, 0, 0, 0, 0,
433 231, 211, 0, 0, 53, 213, 0, 214, 209, 219,
434 212, 0, 211, 237, 217, 216, 208, 215, 0, 218,
435 219, 212, 0, 0, 0, 217, 216, 208, 215, 0,
436 218, 210, 213, 0, 214, 209, 0, 0, 0, 211,
437 0, 0, 210, 213, 0, 214, 209, 108, 109, 110,
438 111, 64, 0, 0, 64, 112, 0, 129, 129, 129,
439 129, 129, 129, 129, 129, 0, 211, 0, 64, 210,
440 0, 0, 0, 64, 0, 0, 240, 211, 0, 0,
441 0, 0, 0, 0, 127, 127, 127, 127, 127, 127,
442 127, 127, 0, 0, 0, 0, 210, 0, 57, 55,
443 0, 57, 55, 64, 219, 212, 0, 210, 303, 217,
444 216, 208, 215, 0, 218, 57, 55, 0, 0, 0,
445 57, 55, 0, 0, 0, 0, 0, 213, 0, 214,
446 209, 219, 212, 0, 0, 348, 217, 216, 208, 215,
447 0, 218, 53, 53, 53, 53, 53, 53, 53, 53,
448 57, 55, 0, 0, 213, 0, 214, 209, 8, 0,
449 0, 211, 0, 0, 0, 0, 0, 0, 0, 200,
450 201, 202, 203, 204, 205, 206, 207, 233, 0, 117,
451 200, 201, 202, 203, 204, 205, 206, 207, 211, 0,
452 0, 210, 113, 115, 0, 116, 114, 0, 0, 8,
453 76, 0, 8, 76, 0, 0, 76, 200, 201, 202,
454 203, 204, 205, 206, 207, 0, 8, 8, 210, 0,
455 76, 8, 76, 0, 76, 76, 0, 0, 0, 0,
456 0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
457 206, 207, 0, 0, 0, 200, 201, 202, 203, 204,
458 205, 206, 207, 219, 212, 76, 76, 0, 217, 216,
459 208, 215, 0, 218, 219, 212, 0, 0, 349, 217,
460 216, 208, 215, 0, 218, 0, 213, 0, 214, 209,
461 0, 0, 0, 8, 0, 0, 76, 213, 0, 214,
462 209, 219, 212, 0, 0, 352, 217, 216, 208, 215,
463 0, 218, 0, 0, 0, 0, 0, 0, 0, 332,
464 211, 0, 0, 0, 213, 0, 214, 209, 219, 212,
465 0, 211, 353, 217, 216, 208, 215, 0, 218, 200,
466 201, 202, 203, 204, 205, 206, 207, 0, 0, 0,
467 210, 213, 0, 214, 209, 0, 0, 0, 211, 0,
468 0, 210, 0, 0, 0, 0, 200, 201, 202, 203,
469 204, 205, 206, 207, 219, 212, 0, 0, 354, 217,
470 216, 208, 215, 0, 218, 211, 219, 212, 210, 0,
471 355, 217, 216, 208, 215, 0, 218, 213, 244, 214,
472 209, 0, 0, 117, 0, 108, 109, 110, 111, 213,
473 0, 214, 209, 112, 0, 210, 113, 115, 0, 116,
474 114, 0, 219, 212, 0, 0, 357, 217, 216, 208,
475 215, 211, 218, 0, 76, 76, 76, 76, 76, 76,
476 76, 76, 0, 211, 0, 213, 0, 214, 209, 0,
477 0, 0, 0, 0, 0, 0, 0, 0, 219, 212,
478 0, 210, 358, 217, 216, 208, 215, 0, 218, 0,
479 0, 0, 0, 210, 0, 0, 0, 0, 0, 211,
480 0, 213, 0, 214, 209, 0, 0, 0, 200, 201,
481 202, 203, 204, 205, 206, 207, 0, 0, 0, 200,
482 201, 202, 203, 204, 205, 206, 207, 21, 0, 210,
483 0, 0, 0, 0, 0, 211, 0, 0, 0, 0,
484 0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
485 204, 205, 206, 207, 0, 0, 0, 0, 0, 0,
486 0, 0, 0, 0, 0, 210, 0, 0, 21, 0,
487 0, 21, 0, 200, 201, 202, 203, 204, 205, 206,
488 207, 0, 0, 0, 0, 21, 21, 0, 219, 212,
489 21, 0, 359, 217, 216, 208, 215, 0, 218, 0,
490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
491 0, 213, 0, 214, 209, 0, 0, 0, 0, 200,
492 201, 202, 203, 204, 205, 206, 207, 0, 0, 0,
493 0, 200, 201, 202, 203, 204, 205, 206, 207, 108,
494 109, 110, 111, 0, 0, 211, 0, 112, 0, 0,
495 0, 0, 21, 0, 219, 212, 0, 0, 360, 217,
496 216, 208, 215, 0, 218, 0, 0, 200, 201, 202,
497 203, 204, 205, 206, 207, 210, 0, 213, 0, 214,
498 209, 0, 0, 0, 0, 0, 0, 0, 0, 219,
499 212, 0, 0, 361, 217, 216, 208, 215, 0, 218,
500 0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
501 207, 211, 213, 0, 214, 209, 117, 219, 212, 0,
502 0, 362, 217, 216, 208, 215, 0, 218, 0, 113,
503 115, 0, 116, 114, 0, 0, 0, 0, 0, 0,
504 213, 210, 214, 209, 219, 212, 211, 0, 367, 217,
505 216, 208, 215, 0, 218, 219, 212, 0, 0, 368,
506 217, 216, 208, 215, 0, 218, 0, 213, 0, 214,
507 209, 0, 0, 0, 211, 0, 210, 0, 213, 0,
508 214, 209, 219, 212, 0, 0, 369, 217, 216, 208,
509 215, 0, 218, 0, 0, 302, 0, 0, 0, 0,
510 0, 211, 0, 0, 210, 213, 0, 214, 209, 0,
511 0, 0, 211, 200, 201, 202, 203, 204, 205, 206,
512 207, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 210, 0, 0, 0, 0, 0, 0, 0, 211,
514 219, 212, 210, 0, 370, 217, 216, 208, 215, 0,
515 218, 219, 212, 0, 0, 371, 217, 216, 208, 215,
516 0, 218, 0, 213, 0, 214, 209, 0, 0, 210,
517 0, 0, 0, 0, 213, 0, 214, 209, 0, 200,
518 201, 202, 203, 204, 205, 206, 207, 0, 219, 0,
519 0, 0, 0, 217, 216, 0, 215, 211, 218, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 211, 0,
521 0, 213, 0, 214, 200, 201, 202, 203, 204, 205,
522 206, 207, 0, 0, 0, 0, 0, 210, 0, 0,
523 0, 0, 108, 109, 110, 111, 351, 0, 210, 0,
524 112, 117, 200, 201, 202, 203, 204, 205, 206, 207,
525 0, 0, 0, 0, 113, 115, 0, 116, 114, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
527 201, 202, 203, 204, 205, 206, 207, 0, 0, 0,
528 200, 201, 202, 203, 204, 205, 206, 207, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
531 203, 204, 205, 206, 207, 0, 219, 212, 0, 0,
532 372, 217, 216, 208, 215, 0, 218, 219, 212, 0,
533 0, 373, 217, 216, 208, 215, 0, 218, 0, 213,
534 0, 214, 209, 0, 0, 0, 0, 0, 0, 0,
535 213, 0, 214, 209, 0, 0, 0, 0, 0, 0,
536 0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
537 205, 206, 207, 211, 0, 0, 200, 201, 202, 203,
538 204, 205, 206, 207, 211, 219, 212, 0, 0, 374,
539 217, 216, 208, 215, 0, 218, 0, 0, 0, 219,
540 212, 0, 0, 210, 217, 216, 208, 215, 213, 218,
541 214, 209, 0, 0, 210, 202, 203, 204, 205, 0,
542 0, 0, 213, 0, 214, 209, 219, 212, 0, 0,
543 0, 217, 216, 208, 215, 0, 218, 0, 219, 212,
544 0, 0, 211, 217, 216, 208, 215, 377, 218, 213,
545 0, 214, 209, 0, 0, 375, 211, 108, 109, 110,
546 111, 213, 0, 214, 209, 112, 0, 0, 0, 0,
547 0, 0, 210, 0, 219, 212, 0, 0, 397, 217,
548 216, 208, 215, 211, 218, 0, 210, 0, 0, 234,
549 0, 117, 0, 0, 382, 211, 0, 213, 0, 214,
550 209, 0, 0, 0, 113, 115, 0, 116, 114, 219,
551 212, 0, 0, 210, 217, 216, 350, 215, 0, 218,
552 0, 0, 0, 0, 0, 210, 0, 0, 0, 0,
553 0, 211, 213, 0, 214, 209, 0, 0, 0, 0,
554 0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
555 0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
556 0, 210, 219, 212, 0, 0, 211, 217, 216, 356,
557 215, 0, 218, 0, 0, 0, 0, 0, 0, 0,
558 0, 0, 0, 0, 219, 213, 0, 214, 209, 217,
559 216, 0, 215, 0, 218, 0, 210, 0, 0, 0,
560 0, 0, 0, 0, 0, 0, 0, 213, 0, 214,
561 200, 201, 202, 203, 204, 205, 206, 207, 0, 211,
562 0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
563 206, 207, 0, 0, 0, 0, 219, 212, 0, 0,
564 0, 217, 216, 363, 215, 0, 218, 0, 0, 210,
565 0, 200, 201, 202, 203, 204, 205, 206, 207, 213,
566 0, 214, 209, 200, 201, 202, 203, 204, 205, 206,
567 207, 219, 212, 0, 0, 0, 217, 216, 381, 215,
568 0, 218, 0, 0, 0, 0, 0, 0, 0, 0,
569 0, 0, 0, 211, 213, 0, 214, 209, 0, 200,
570 201, 202, 203, 204, 205, 206, 207, 108, 109, 110,
571 111, 0, 0, 0, 0, 112, 0, 0, 0, 0,
572 0, 219, 212, 210, 0, 395, 217, 216, 211, 215,
573 0, 218, 0, 0, 200, 201, 202, 203, 204, 205,
574 206, 207, 0, 0, 213, 0, 214, 209, 0, 219,
575 212, 0, 0, 396, 217, 216, 0, 215, 210, 218,
576 219, 212, 0, 0, 398, 217, 216, 0, 215, 0,
577 218, 0, 213, 0, 214, 209, 0, 0, 211, 0,
578 0, 0, 0, 213, 0, 214, 209, 200, 201, 202,
579 203, 204, 205, 206, 207, 219, 212, 0, 0, 400,
580 217, 216, 0, 215, 0, 218, 211, 0, 210, 200,
581 201, 202, 203, 204, 205, 0, 0, 211, 213, 0,
582 214, 209, 0, 219, 212, 0, 0, 0, 217, 216,
583 0, 215, 0, 218, 219, 212, 210, 0, 0, 217,
584 216, 0, 215, 0, 218, 0, 213, 210, 214, 209,
585 0, 0, 211, 0, 0, 0, 0, 213, 0, 214,
586 0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
587 79, 0, 0, 79, 0, 79, 79, 79, 0, 0,
588 211, 0, 210, 0, 0, 0, 0, 0, 0, 0,
589 79, 211, 79, 0, 79, 79, 200, 201, 202, 203,
590 204, 205, 206, 207, 0, 0, 0, 0, 78, 0,
591 210, 78, 0, 78, 78, 78, 75, 0, 0, 75,
592 0, 210, 75, 0, 0, 79, 79, 0, 78, 0,
593 78, 0, 78, 78, 0, 0, 75, 0, 75, 0,
594 75, 75, 0, 0, 0, 0, 200, 201, 202, 203,
595 204, 205, 206, 207, 0, 0, 79, 0, 0, 0,
596 0, 0, 0, 78, 78, 0, 0, 0, 0, 0,
597 0, 75, 75, 0, 200, 201, 202, 203, 204, 205,
598 206, 207, 0, 0, 0, 200, 201, 202, 203, 204,
599 205, 206, 207, 0, 78, 0, 0, 0, 0, 0,
600 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
602 200, 201, 202, 203, 204, 205, 206, 207, 0, 0,
603 0, 0, 0, 219, 212, 0, 0, 0, 217, 216,
604 0, 215, 0, 218, 0, 0, 0, 0, 200, 201,
605 202, 203, 204, 205, 206, 207, 213, 0, 214, 200,
606 201, 202, 203, 204, 205, 206, 207, 86, 0, 0,
607 86, 0, 0, 86, 0, 0, 0, 0, 0, 0,
608 0, 0, 0, 0, 0, 0, 0, 86, 0, 86,
609 211, 86, 86, 0, 79, 79, 79, 79, 79, 79,
610 79, 79, 0, 0, 87, 0, 0, 87, 0, 0,
611 87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
612 210, 0, 86, 86, 87, 0, 87, 0, 87, 87,
613 0, 0, 78, 78, 78, 78, 78, 78, 78, 78,
614 75, 75, 75, 75, 75, 75, 75, 75, 82, 0,
615 0, 82, 0, 86, 82, 0, 0, 0, 83, 87,
616 87, 83, 0, 0, 83, 0, 0, 0, 82, 0,
617 82, 84, 82, 82, 84, 0, 0, 84, 83, 0,
618 83, 85, 83, 83, 85, 0, 0, 85, 0, 0,
619 87, 84, 219, 212, 0, 0, 84, 217, 216, 0,
620 215, 85, 218, 82, 82, 0, 85, 0, 0, 0,
621 0, 0, 0, 83, 83, 213, 0, 214, 0, 0,
622 0, 0, 0, 219, 212, 0, 84, 84, 217, 216,
623 0, 215, 0, 218, 82, 0, 85, 85, 0, 0,
624 0, 0, 0, 0, 83, 0, 213, 364, 214, 211,
625 0, 0, 117, 0, 0, 0, 0, 84, 200, 201,
626 202, 203, 204, 205, 206, 113, 115, 85, 116, 114,
627 0, 117, 0, 0, 0, 0, 0, 0, 0, 210,
628 0, 365, 0, 324, 113, 115, 117, 116, 114, 0,
629 366, 86, 86, 86, 86, 117, 0, 86, 86, 113,
630 115, 380, 116, 114, 0, 0, 117, 0, 113, 115,
631 0, 116, 114, 0, 0, 0, 0, 0, 0, 113,
632 115, 383, 116, 114, 0, 0, 117, 0, 87, 87,
633 87, 87, 384, 0, 87, 87, 0, 117, 0, 113,
634 115, 0, 116, 114, 241, 0, 117, 0, 0, 0,
635 113, 115, 0, 116, 114, 0, 0, 0, 0, 113,
636 115, 0, 116, 114, 0, 0, 0, 0, 0, 0,
637 0, 0, 82, 82, 82, 82, 0, 117, 82, 82,
638 0, 0, 83, 83, 83, 83, 0, 0, 83, 83,
639 113, 115, 0, 116, 114, 84, 84, 0, 0, 0,
640 0, 84, 84, 0, 0, 85, 85, 0, 376, 0,
641 117, 85, 85, 0, 0, 0, 0, 200, 201, 202,
642 203, 204, 205, 113, 115, 0, 116, 114, 0, 0,
643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
644 0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
645 202, 203, 204, 205, 0, 0, 0, 0, 0, 0,
646 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
647 110, 111, 0, 0, 0, 0, 112, 0, 0, 0,
648 0, 0, 0, 0, 0, 0, 0, 108, 109, 110,
649 111, 0, 0, 0, 0, 112, 0, 0, 0, 0,
650 0, 0, 108, 109, 110, 111, 0, 0, 0, 0,
651 112, 108, 109, 110, 111, 0, 0, 0, 0, 112,
652 0, 0, 108, 109, 110, 111, 0, 0, 0, 0,
653 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
654 0, 0, 108, 109, 110, 111, 0, 0, 0, 0,
655 112, 0, 0, 108, 109, 110, 111, 0, 0, 0,
656 0, 112, 108, 109, 110, 111, 0, 0, 0, 0,
657 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
659 0, 0, 0, 108, 109, 110, 111, 0, 0, 0,
660 0, 112, 0, 0, 0, 0, 0, 0, 0, 0,
661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
662 0, 0, 0, 0, 0, 0, 108, 109, 110, 111,
665 short parsercheck[] = { 29,
666 0, 61, 41, 40, 40, 35, 36, 37, 61, 39,
667 61, 40, 37, 38, 40, 91, 41, 42, 43, 44,
668 45, 40, 47, 41, 37, 38, 44, 259, 40, 42,
669 43, 91, 45, 58, 47, 60, 40, 62, 63, 0,
670 91, 41, 260, 41, 44, 38, 44, 60, 41, 62,
671 41, 44, 91, 44, 41, 40, 37, 44, 58, 59,
672 46, 42, 43, 63, 45, 58, 47, 40, 93, 94,
673 63, 101, 102, 103, 60, 105, 62, 40, 40, 37,
674 41, 94, 261, 44, 42, 43, 37, 45, 40, 47,
675 261, 42, 40, 40, 40, 40, 47, 58, 59, 124,
676 93, 94, 63, 40, 40, 40, 40, 137, 138, 139,
677 140, 141, 142, 143, 144, 145, 91, 41, 148, 40,
678 44, 40, 40, 40, 40, 125, 40, 40, 40, 40,
679 40, 124, 40, 40, 58, 40, 166, 167, 168, 63,
680 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
681 180, 181, 46, 40, 40, 185, 186, 187, 188, 189,
682 190, 191, 192, 193, 125, 40, 60, 40, 62, 93,
683 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
684 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
685 0, 33, 46, 41, 41, 40, 44, 44, 40, 40,
686 124, 40, 40, 45, 234, 40, 60, 40, 62, 239,
687 58, 58, 40, 23, 40, 63, 63, 40, 28, 40,
688 30, 31, 32, 33, 34, 40, 40, 280, 40, 40,
689 40, 41, 42, 0, 40, 40, 40, 262, 263, 264,
690 265, 266, 267, 268, 269, 93, 93, 40, 46, 262,
691 263, 264, 265, 266, 267, 260, 41, 260, 260, 61,
692 41, 260, 262, 263, 260, 36, 260, 41, 260, 40,
693 270, 260, 0, 41, 41, 268, 269, 44, 264, 265,
694 260, 123, 260, 260, 126, 266, 267, 41, 260, 260,
695 260, 58, 59, 260, 104, 61, 63, 41, 108, 109,
696 110, 111, 112, 113, 114, 115, 116, 117, 46, 270,
697 41, 41, 41, 41, 41, 41, 44, 41, 46, 41,
698 350, 59, 60, 41, 62, 63, 356, 41, 61, 41,
699 58, 59, 60, 363, 62, 63, 0, 44, 44, 41,
700 41, -1, 44, 44, 268, 269, 376, 377, -1, -1,
701 41, 381, 123, 44, -1, 385, 58, 58, 125, 169,
702 41, 63, 63, 44, 394, -1, -1, 58, 262, 263,
703 264, 265, 182, 183, 184, -1, 41, 58, 41, 44,
704 -1, 44, 63, -1, 194, -1, 41, 125, -1, 44,
705 -1, 93, 93, 58, -1, 58, -1, 125, 63, -1,
706 63, -1, 93, 58, -1, -1, -1, -1, 262, 263,
707 264, 265, 93, -1, -1, 257, 270, -1, 260, 261,
708 268, 269, 269, 233, -1, -1, -1, -1, 93, 94,
709 93, 241, 242, -1, -1, 245, 278, 279, 93, 281,
710 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
711 292, 293, 294, 295, 296, 297, 298, 299, 0, 124,
712 -1, 303, 304, 305, 306, 307, 308, 309, 310, 311,
713 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
714 322, 323, 324, 325, 326, 327, 328, 258, -1, 260,
715 261, 333, 334, 335, -1, 262, 263, 339, 340, 41,
716 342, -1, 44, 270, 46, 271, 272, 273, 274, 275,
717 276, 277, 278, 279, 324, 325, 58, 59, 60, -1,
718 62, 63, -1, -1, 262, 263, 264, 265, -1, 300,
719 301, 302, 270, -1, 262, 263, 264, 265, 0, -1,
720 -1, -1, 270, -1, -1, 316, 317, 318, 319, 0,
721 -1, -1, -1, -1, -1, -1, -1, 328, 329, 330,
722 331, 332, -1, -1, -1, 336, 337, 338, -1, 0,
723 341, -1, 343, 344, 345, -1, 0, -1, 0, 41,
724 -1, -1, 44, 125, 46, -1, -1, -1, -1, 0,
725 41, -1, -1, 44, -1, 46, 58, 59, 60, -1,
726 62, 63, 0, 268, 269, -1, -1, 58, 59, 60,
727 41, 62, 63, 44, -1, 46, -1, 41, -1, 41,
728 44, -1, 44, -1, 46, 0, -1, 58, 59, 60,
729 41, 62, 63, 44, 58, 59, 58, 59, 60, 46,
730 62, 63, -1, 41, -1, -1, 44, 58, 59, 60,
731 -1, 62, 63, 60, 41, 62, 63, 44, 0, 46,
732 58, 59, 60, 125, 62, 63, 41, -1, -1, 44,
733 -1, 0, 59, 60, 125, 62, 63, -1, -1, -1,
734 -1, -1, -1, 58, 59, 60, -1, 62, 63, -1,
735 -1, -1, -1, -1, 125, -1, -1, -1, -1, 41,
736 -1, 125, 44, 125, -1, -1, -1, -1, -1, -1,
737 -1, -1, 41, -1, 125, 44, 58, 59, -1, -1,
738 262, 263, 264, 265, -1, -1, -1, 125, 270, 58,
739 59, 60, -1, 62, 63, 37, 38, -1, -1, 41,
740 42, 43, 44, 45, -1, 47, 0, -1, -1, -1,
741 125, -1, -1, -1, -1, -1, 58, -1, 60, -1,
742 62, 63, -1, 37, 38, -1, -1, 41, 42, 43,
743 44, 45, -1, 47, -1, -1, 41, 41, -1, 44,
744 44, -1, -1, 125, -1, -1, 60, 41, 62, 63,
745 44, 93, 94, 58, 58, -1, 125, -1, 63, 63,
746 262, 263, 264, 265, 58, 59, -1, -1, 270, 63,
747 -1, 262, 263, 264, 265, -1, -1, -1, -1, 270,
748 94, -1, 124, -1, -1, -1, -1, 41, 93, 93,
749 44, 262, 263, 264, 265, -1, -1, -1, -1, 270,
750 262, 263, 264, 265, 58, -1, -1, -1, 270, 63,
751 124, 262, 263, 264, 265, 262, 263, 264, 265, 270,
752 -1, -1, -1, 270, 262, 263, 264, 265, -1, -1,
753 -1, 125, 270, -1, -1, 262, 263, 264, 265, 93,
754 -1, -1, -1, 270, -1, -1, 41, 262, 263, 264,
755 265, 46, 37, 38, -1, 270, 41, 42, 43, 44,
756 45, -1, 47, -1, 59, 60, -1, 62, 63, -1,
757 0, -1, -1, 58, -1, 60, -1, 62, 63, 37,
758 38, -1, -1, 41, 42, 43, 44, 45, -1, 47,
759 -1, -1, -1, 262, 263, 264, 265, -1, -1, -1,
760 58, 270, 60, -1, 62, 63, -1, -1, 93, 94,
761 -1, 41, -1, -1, 44, -1, -1, -1, -1, -1,
762 262, 263, 264, 265, 266, 267, 268, 269, 58, 59,
763 -1, -1, -1, 63, -1, 93, 94, 37, 38, 124,
764 -1, 41, 42, 43, 44, 45, -1, 47, 262, 263,
765 264, 265, 266, 267, 268, 269, -1, -1, 58, -1,
766 60, -1, 62, 63, 37, 38, 124, -1, -1, 42,
767 43, 44, 45, -1, 47, 37, 38, -1, -1, 41,
768 42, 43, 44, 45, -1, 47, -1, 60, -1, 62,
769 63, -1, -1, 93, 94, 125, -1, -1, 60, -1,
770 62, 63, 37, 38, -1, -1, 41, 42, 43, 44,
771 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
772 93, 94, -1, -1, 124, 60, -1, 62, 63, 37,
773 38, -1, 94, 41, 42, 43, 44, 45, -1, 47,
774 37, 38, -1, -1, -1, 42, 43, 44, 45, -1,
775 47, 124, 60, -1, 62, 63, -1, -1, -1, 94,
776 -1, -1, 124, 60, -1, 62, 63, 262, 263, 264,
777 265, 41, -1, -1, 44, 270, -1, 262, 263, 264,
778 265, 266, 267, 268, 269, -1, 94, -1, 58, 124,
779 -1, -1, -1, 63, -1, -1, 93, 94, -1, -1,
780 -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
781 268, 269, -1, -1, -1, -1, 124, -1, 41, 41,
782 -1, 44, 44, 93, 37, 38, -1, 124, 41, 42,
783 43, 44, 45, -1, 47, 58, 58, -1, -1, -1,
784 63, 63, -1, -1, -1, -1, -1, 60, -1, 62,
785 63, 37, 38, -1, -1, 41, 42, 43, 44, 45,
786 -1, 47, 262, 263, 264, 265, 266, 267, 268, 269,
787 93, 93, -1, -1, 60, -1, 62, 63, 0, -1,
788 -1, 94, -1, -1, -1, -1, -1, -1, -1, 262,
789 263, 264, 265, 266, 267, 268, 269, 44, -1, 46,
790 262, 263, 264, 265, 266, 267, 268, 269, 94, -1,
791 -1, 124, 59, 60, -1, 62, 63, -1, -1, 41,
792 38, -1, 44, 41, -1, -1, 44, 262, 263, 264,
793 265, 266, 267, 268, 269, -1, 58, 59, 124, -1,
794 58, 63, 60, -1, 62, 63, -1, -1, -1, -1,
795 -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
796 268, 269, -1, -1, -1, 262, 263, 264, 265, 266,
797 267, 268, 269, 37, 38, 93, 94, -1, 42, 43,
798 44, 45, -1, 47, 37, 38, -1, -1, 41, 42,
799 43, 44, 45, -1, 47, -1, 60, -1, 62, 63,
800 -1, -1, -1, 125, -1, -1, 124, 60, -1, 62,
801 63, 37, 38, -1, -1, 41, 42, 43, 44, 45,
802 -1, 47, -1, -1, -1, -1, -1, -1, -1, 93,
803 94, -1, -1, -1, 60, -1, 62, 63, 37, 38,
804 -1, 94, 41, 42, 43, 44, 45, -1, 47, 262,
805 263, 264, 265, 266, 267, 268, 269, -1, -1, -1,
806 124, 60, -1, 62, 63, -1, -1, -1, 94, -1,
807 -1, 124, -1, -1, -1, -1, 262, 263, 264, 265,
808 266, 267, 268, 269, 37, 38, -1, -1, 41, 42,
809 43, 44, 45, -1, 47, 94, 37, 38, 124, -1,
810 41, 42, 43, 44, 45, -1, 47, 60, 41, 62,
811 63, -1, -1, 46, -1, 262, 263, 264, 265, 60,
812 -1, 62, 63, 270, -1, 124, 59, 60, -1, 62,
813 63, -1, 37, 38, -1, -1, 41, 42, 43, 44,
814 45, 94, 47, -1, 262, 263, 264, 265, 266, 267,
815 268, 269, -1, 94, -1, 60, -1, 62, 63, -1,
816 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
817 -1, 124, 41, 42, 43, 44, 45, -1, 47, -1,
818 -1, -1, -1, 124, -1, -1, -1, -1, -1, 94,
819 -1, 60, -1, 62, 63, -1, -1, -1, 262, 263,
820 264, 265, 266, 267, 268, 269, -1, -1, -1, 262,
821 263, 264, 265, 266, 267, 268, 269, 0, -1, 124,
822 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1,
823 -1, -1, -1, -1, -1, -1, 262, 263, 264, 265,
824 266, 267, 268, 269, -1, -1, -1, -1, -1, -1,
825 -1, -1, -1, -1, -1, 124, -1, -1, 41, -1,
826 -1, 44, -1, 262, 263, 264, 265, 266, 267, 268,
827 269, -1, -1, -1, -1, 58, 59, -1, 37, 38,
828 63, -1, 41, 42, 43, 44, 45, -1, 47, -1,
829 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
830 -1, 60, -1, 62, 63, -1, -1, -1, -1, 262,
831 263, 264, 265, 266, 267, 268, 269, -1, -1, -1,
832 -1, 262, 263, 264, 265, 266, 267, 268, 269, 262,
833 263, 264, 265, -1, -1, 94, -1, 270, -1, -1,
834 -1, -1, 125, -1, 37, 38, -1, -1, 41, 42,
835 43, 44, 45, -1, 47, -1, -1, 262, 263, 264,
836 265, 266, 267, 268, 269, 124, -1, 60, -1, 62,
837 63, -1, -1, -1, -1, -1, -1, -1, -1, 37,
838 38, -1, -1, 41, 42, 43, 44, 45, -1, 47,
839 -1, -1, -1, 262, 263, 264, 265, 266, 267, 268,
840 269, 94, 60, -1, 62, 63, 46, 37, 38, -1,
841 -1, 41, 42, 43, 44, 45, -1, 47, -1, 59,
842 60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
843 60, 124, 62, 63, 37, 38, 94, -1, 41, 42,
844 43, 44, 45, -1, 47, 37, 38, -1, -1, 41,
845 42, 43, 44, 45, -1, 47, -1, 60, -1, 62,
846 63, -1, -1, -1, 94, -1, 124, -1, 60, -1,
847 62, 63, 37, 38, -1, -1, 41, 42, 43, 44,
848 45, -1, 47, -1, -1, 125, -1, -1, -1, -1,
849 -1, 94, -1, -1, 124, 60, -1, 62, 63, -1,
850 -1, -1, 94, 262, 263, 264, 265, 266, 267, 268,
851 269, -1, -1, -1, -1, -1, -1, -1, -1, -1,
852 -1, 124, -1, -1, -1, -1, -1, -1, -1, 94,
853 37, 38, 124, -1, 41, 42, 43, 44, 45, -1,
854 47, 37, 38, -1, -1, 41, 42, 43, 44, 45,
855 -1, 47, -1, 60, -1, 62, 63, -1, -1, 124,
856 -1, -1, -1, -1, 60, -1, 62, 63, -1, 262,
857 263, 264, 265, 266, 267, 268, 269, -1, 37, -1,
858 -1, -1, -1, 42, 43, -1, 45, 94, 47, -1,
859 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
860 -1, 60, -1, 62, 262, 263, 264, 265, 266, 267,
861 268, 269, -1, -1, -1, -1, -1, 124, -1, -1,
862 -1, -1, 262, 263, 264, 265, 41, -1, 124, -1,
863 270, 46, 262, 263, 264, 265, 266, 267, 268, 269,
864 -1, -1, -1, -1, 59, 60, -1, 62, 63, -1,
865 -1, -1, -1, -1, -1, -1, -1, -1, -1, 262,
866 263, 264, 265, 266, 267, 268, 269, -1, -1, -1,
867 262, 263, 264, 265, 266, 267, 268, 269, -1, -1,
868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
869 -1, -1, -1, -1, -1, -1, -1, 262, 263, 264,
870 265, 266, 267, 268, 269, -1, 37, 38, -1, -1,
871 41, 42, 43, 44, 45, -1, 47, 37, 38, -1,
872 -1, 41, 42, 43, 44, 45, -1, 47, -1, 60,
873 -1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
874 60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
875 -1, -1, -1, -1, -1, 262, 263, 264, 265, 266,
876 267, 268, 269, 94, -1, -1, 262, 263, 264, 265,
877 266, 267, 268, 269, 94, 37, 38, -1, -1, 41,
878 42, 43, 44, 45, -1, 47, -1, -1, -1, 37,
879 38, -1, -1, 124, 42, 43, 44, 45, 60, 47,
880 62, 63, -1, -1, 124, 264, 265, 266, 267, -1,
881 -1, -1, 60, -1, 62, 63, 37, 38, -1, -1,
882 -1, 42, 43, 44, 45, -1, 47, -1, 37, 38,
883 -1, -1, 94, 42, 43, 44, 45, 58, 47, 60,
884 -1, 62, 63, -1, -1, 93, 94, 262, 263, 264,
885 265, 60, -1, 62, 63, 270, -1, -1, -1, -1,
886 -1, -1, 124, -1, 37, 38, -1, -1, 41, 42,
887 43, 44, 45, 94, 47, -1, 124, -1, -1, 44,
888 -1, 46, -1, -1, 93, 94, -1, 60, -1, 62,
889 63, -1, -1, -1, 59, 60, -1, 62, 63, 37,
890 38, -1, -1, 124, 42, 43, 44, 45, -1, 47,
891 -1, -1, -1, -1, -1, 124, -1, -1, -1, -1,
892 -1, 94, 60, -1, 62, 63, -1, -1, -1, -1,
893 -1, 262, 263, 264, 265, 266, 267, 268, 269, -1,
894 -1, -1, 262, 263, 264, 265, 266, 267, 268, 269,
895 -1, 124, 37, 38, -1, -1, 94, 42, 43, 44,
896 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
897 -1, -1, -1, -1, 37, 60, -1, 62, 63, 42,
898 43, -1, 45, -1, 47, -1, 124, -1, -1, -1,
899 -1, -1, -1, -1, -1, -1, -1, 60, -1, 62,
900 262, 263, 264, 265, 266, 267, 268, 269, -1, 94,
901 -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
902 268, 269, -1, -1, -1, -1, 37, 38, -1, -1,
903 -1, 42, 43, 44, 45, -1, 47, -1, -1, 124,
904 -1, 262, 263, 264, 265, 266, 267, 268, 269, 60,
905 -1, 62, 63, 262, 263, 264, 265, 266, 267, 268,
906 269, 37, 38, -1, -1, -1, 42, 43, 44, 45,
907 -1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
908 -1, -1, -1, 94, 60, -1, 62, 63, -1, 262,
909 263, 264, 265, 266, 267, 268, 269, 262, 263, 264,
910 265, -1, -1, -1, -1, 270, -1, -1, -1, -1,
911 -1, 37, 38, 124, -1, 41, 42, 43, 94, 45,
912 -1, 47, -1, -1, 262, 263, 264, 265, 266, 267,
913 268, 269, -1, -1, 60, -1, 62, 63, -1, 37,
914 38, -1, -1, 41, 42, 43, -1, 45, 124, 47,
915 37, 38, -1, -1, 41, 42, 43, -1, 45, -1,
916 47, -1, 60, -1, 62, 63, -1, -1, 94, -1,
917 -1, -1, -1, 60, -1, 62, 63, 262, 263, 264,
918 265, 266, 267, 268, 269, 37, 38, -1, -1, 41,
919 42, 43, -1, 45, -1, 47, 94, -1, 124, 262,
920 263, 264, 265, 266, 267, -1, -1, 94, 60, -1,
921 62, 63, -1, 37, 38, -1, -1, -1, 42, 43,
922 -1, 45, -1, 47, 37, 38, 124, -1, -1, 42,
923 43, -1, 45, -1, 47, -1, 60, 124, 62, 63,
924 -1, -1, 94, -1, -1, -1, -1, 60, -1, 62,
925 -1, 262, 263, 264, 265, 266, 267, 268, 269, -1,
926 38, -1, -1, 41, -1, 43, 44, 45, -1, -1,
927 94, -1, 124, -1, -1, -1, -1, -1, -1, -1,
928 58, 94, 60, -1, 62, 63, 262, 263, 264, 265,
929 266, 267, 268, 269, -1, -1, -1, -1, 38, -1,
930 124, 41, -1, 43, 44, 45, 38, -1, -1, 41,
931 -1, 124, 44, -1, -1, 93, 94, -1, 58, -1,
932 60, -1, 62, 63, -1, -1, 58, -1, 60, -1,
933 62, 63, -1, -1, -1, -1, 262, 263, 264, 265,
934 266, 267, 268, 269, -1, -1, 124, -1, -1, -1,
935 -1, -1, -1, 93, 94, -1, -1, -1, -1, -1,
936 -1, 93, 94, -1, 262, 263, 264, 265, 266, 267,
937 268, 269, -1, -1, -1, 262, 263, 264, 265, 266,
938 267, 268, 269, -1, 124, -1, -1, -1, -1, -1,
939 -1, -1, 124, -1, -1, -1, -1, -1, -1, -1,
940 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
941 262, 263, 264, 265, 266, 267, 268, 269, -1, -1,
942 -1, -1, -1, 37, 38, -1, -1, -1, 42, 43,
943 -1, 45, -1, 47, -1, -1, -1, -1, 262, 263,
944 264, 265, 266, 267, 268, 269, 60, -1, 62, 262,
945 263, 264, 265, 266, 267, 268, 269, 38, -1, -1,
946 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
947 -1, -1, -1, -1, -1, -1, -1, 58, -1, 60,
948 94, 62, 63, -1, 262, 263, 264, 265, 266, 267,
949 268, 269, -1, -1, 38, -1, -1, 41, -1, -1,
950 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
951 124, -1, 93, 94, 58, -1, 60, -1, 62, 63,
952 -1, -1, 262, 263, 264, 265, 266, 267, 268, 269,
953 262, 263, 264, 265, 266, 267, 268, 269, 38, -1,
954 -1, 41, -1, 124, 44, -1, -1, -1, 38, 93,
955 94, 41, -1, -1, 44, -1, -1, -1, 58, -1,
956 60, 38, 62, 63, 41, -1, -1, 44, 58, -1,
957 60, 38, 62, 63, 41, -1, -1, 44, -1, -1,
958 124, 58, 37, 38, -1, -1, 63, 42, 43, -1,
959 45, 58, 47, 93, 94, -1, 63, -1, -1, -1,
960 -1, -1, -1, 93, 94, 60, -1, 62, -1, -1,
961 -1, -1, -1, 37, 38, -1, 93, 94, 42, 43,
962 -1, 45, -1, 47, 124, -1, 93, 94, -1, -1,
963 -1, -1, -1, -1, 124, -1, 60, 41, 62, 94,
964 -1, -1, 46, -1, -1, -1, -1, 124, 262, 263,
965 264, 265, 266, 267, 268, 59, 60, 124, 62, 63,
966 -1, 46, -1, -1, -1, -1, -1, -1, -1, 124,
967 -1, 41, -1, 58, 59, 60, 46, 62, 63, -1,
968 41, 262, 263, 264, 265, 46, -1, 268, 269, 59,
969 60, 41, 62, 63, -1, -1, 46, -1, 59, 60,
970 -1, 62, 63, -1, -1, -1, -1, -1, -1, 59,
971 60, 41, 62, 63, -1, -1, 46, -1, 262, 263,
972 264, 265, 41, -1, 268, 269, -1, 46, -1, 59,
973 60, -1, 62, 63, 44, -1, 46, -1, -1, -1,
974 59, 60, -1, 62, 63, -1, -1, -1, -1, 59,
975 60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
976 -1, -1, 262, 263, 264, 265, -1, 46, 268, 269,
977 -1, -1, 262, 263, 264, 265, -1, -1, 268, 269,
978 59, 60, -1, 62, 63, 262, 263, -1, -1, -1,
979 -1, 268, 269, -1, -1, 262, 263, -1, 44, -1,
980 46, 268, 269, -1, -1, -1, -1, 262, 263, 264,
981 265, 266, 267, 59, 60, -1, 62, 63, -1, -1,
982 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
983 -1, -1, -1, -1, -1, -1, -1, -1, 262, 263,
984 264, 265, 266, 267, -1, -1, -1, -1, -1, -1,
985 -1, -1, -1, -1, -1, -1, -1, -1, 262, 263,
986 264, 265, -1, -1, -1, -1, 270, -1, -1, -1,
987 -1, -1, -1, -1, -1, -1, -1, 262, 263, 264,
988 265, -1, -1, -1, -1, 270, -1, -1, -1, -1,
989 -1, -1, 262, 263, 264, 265, -1, -1, -1, -1,
990 270, 262, 263, 264, 265, -1, -1, -1, -1, 270,
991 -1, -1, 262, 263, 264, 265, -1, -1, -1, -1,
992 270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
993 -1, -1, 262, 263, 264, 265, -1, -1, -1, -1,
994 270, -1, -1, 262, 263, 264, 265, -1, -1, -1,
995 -1, 270, 262, 263, 264, 265, -1, -1, -1, -1,
996 270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
997 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
998 -1, -1, -1, 262, 263, 264, 265, -1, -1, -1,
999 -1, 270, -1, -1, -1, -1, -1, -1, -1, -1,
1000 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1001 -1, -1, -1, -1, -1, -1, 262, 263, 264, 265,
1002 -1, -1, -1, -1, 270,
1008 #define YYMAXTOKEN 346
1010 char *parsername[] = {
1011 "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,
1012 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,
1013 0,0,0,0,0,0,0,0,0,"':'","';'","'<'","'='","'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,
1014 0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1015 0,0,0,0,0,0,0,0,0,0,0,0,"'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1016 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1017 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1018 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"NUMBER",
1019 "STRING","SYMBOL","FIELD","VAR","EQ","NEQ","LE","GE","SHR","SHL","AND","OR",
1020 "IN","PLA","MIA","MUA","MOA","DVA","ANA","ORA","INC","DEC_","APP","AVG","DEV",
1021 "AMIN","AMAX","SUM","QAVG","QDEV","QMIN_","QMAX_","QSUM","SAVG","SDEV","SMIN",
1022 "SMAX","SSUM","ABS","INT","BOUND","LEN","CHOP","TR","SUBSTR","SQRT","EXP","LOG",
1023 "LN","POW","RANDOM","SIN","COS","TAN","ASIN","ACOS","ATAN","ATAN2","DATE",
1024 "TIME","DURATION","EXPAND","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","LEAP",
1025 "JULIAN","SECTION_","DBASE_","FORM_","PREVFORM","SWITCH","THIS","LAST","DISP",
1026 "FOREACH","HOST","USER","UID","GID","SYSTEM","ACCESS","BEEP","ERROR","PRINTF",
1029 char *parserrule[] = {
1033 "string : '{' string '}'",
1034 "string : string ';' string",
1035 "string : string '.' string",
1037 "string : VAR APP string",
1038 "string : VAR '=' string",
1039 "string : '(' number ')'",
1040 "string : string '?' string ':' string",
1041 "string : string '<' string",
1042 "string : string '>' string",
1043 "string : string EQ string",
1044 "string : string NEQ string",
1045 "string : string LE string",
1046 "string : string GE string",
1047 "string : string IN string",
1049 "string : FIELD '[' number ']'",
1050 "string : FIELD '=' string",
1051 "string : FIELD '[' number ']' '=' string",
1052 "string : SYSTEM '(' string ')'",
1053 "string : '$' SYMBOL",
1054 "string : CHOP '(' string ')'",
1055 "string : TR '(' string ',' string ')'",
1056 "string : SUBSTR '(' string ',' number ',' number ')'",
1059 "string : PREVFORM",
1060 "string : SECTION_",
1061 "string : SECTION_ '[' number ']'",
1064 "string : SWITCH '(' string ',' string ')'",
1065 "string : FOREACH '(' string ')'",
1066 "string : FOREACH '(' string ',' string ')'",
1069 "string : TIME '(' number ')'",
1070 "string : DATE '(' number ')'",
1071 "string : DURATION '(' number ')'",
1072 "string : EXPAND '(' FIELD ')'",
1073 "string : EXPAND '(' FIELD '[' number ']' ')'",
1074 "string : PRINTF '(' args ')'",
1076 "string : ERROR '(' args ')'",
1078 "args : args ',' string",
1080 "number : '{' string '}'",
1081 "number : '(' number ')'",
1083 "number : FIELD '[' number ']'",
1084 "number : FIELD '=' number",
1085 "number : FIELD '[' number ']' '=' number",
1087 "number : VAR '=' number",
1088 "number : VAR PLA number",
1089 "number : VAR MIA number",
1090 "number : VAR MUA number",
1091 "number : VAR DVA number",
1092 "number : VAR MOA number",
1093 "number : VAR ANA number",
1094 "number : VAR ORA number",
1096 "number : VAR DEC_",
1098 "number : DEC_ VAR",
1099 "number : '-' number",
1100 "number : '!' number",
1101 "number : '~' number",
1102 "number : number '&' number",
1103 "number : number '^' number",
1104 "number : number '|' number",
1105 "number : number SHL number",
1106 "number : number SHR number",
1107 "number : number '%' number",
1108 "number : number '+' number",
1109 "number : number '-' number",
1110 "number : number '*' number",
1111 "number : number '/' number",
1112 "number : number '<' number",
1113 "number : number '>' number",
1114 "number : number EQ number",
1115 "number : number NEQ number",
1116 "number : number LE number",
1117 "number : number GE number",
1118 "number : number AND number",
1119 "number : number OR number",
1120 "number : number '?' number ':' number",
1121 "number : number ',' number",
1125 "number : AVG '(' FIELD ')'",
1126 "number : DEV '(' FIELD ')'",
1127 "number : AMIN '(' FIELD ')'",
1128 "number : AMAX '(' FIELD ')'",
1129 "number : SUM '(' FIELD ')'",
1130 "number : QAVG '(' FIELD ')'",
1131 "number : QDEV '(' FIELD ')'",
1132 "number : QMIN_ '(' FIELD ')'",
1133 "number : QMAX_ '(' FIELD ')'",
1134 "number : QSUM '(' FIELD ')'",
1135 "number : SAVG '(' FIELD ')'",
1136 "number : SDEV '(' FIELD ')'",
1137 "number : SMIN '(' FIELD ')'",
1138 "number : SMAX '(' FIELD ')'",
1139 "number : SSUM '(' FIELD ')'",
1140 "number : ABS '(' number ')'",
1141 "number : INT '(' number ')'",
1142 "number : BOUND '(' number ',' number ',' number ')'",
1143 "number : LEN '(' string ')'",
1144 "number : SQRT '(' number ')'",
1145 "number : EXP '(' number ')'",
1146 "number : LOG '(' number ')'",
1147 "number : LN '(' number ')'",
1148 "number : POW '(' number ',' number ')'",
1150 "number : SIN '(' number ')'",
1151 "number : COS '(' number ')'",
1152 "number : TAN '(' number ')'",
1153 "number : ASIN '(' number ')'",
1154 "number : ACOS '(' number ')'",
1155 "number : ATAN '(' number ')'",
1156 "number : ATAN2 '(' number ',' number ')'",
1157 "number : SECTION_",
1158 "number : SECTION_ '[' number ']'",
1160 "number : DATE '(' string ')'",
1161 "number : TIME '(' string ')'",
1162 "number : DURATION '(' string ')'",
1163 "number : YEAR '(' number ')'",
1164 "number : MONTH '(' number ')'",
1165 "number : DAY '(' number ')'",
1166 "number : HOUR '(' number ')'",
1167 "number : MINUTE '(' number ')'",
1168 "number : SECOND '(' number ')'",
1169 "number : JULIAN '(' number ')'",
1170 "number : LEAP '(' number ')'",
1173 "number : ACCESS '(' string ',' number ')'",
1178 #define YYMAXDEPTH YYSTACKSIZE
1181 #define YYSTACKSIZE YYMAXDEPTH
1183 #define YYSTACKSIZE 500
1184 #define YYMAXDEPTH 500
1195 short yyss[YYSTACKSIZE];
1196 YYSTYPE yyvs[YYSTACKSIZE];
1197 #define yystacksize YYSTACKSIZE
1198 #define YYABORT goto yyabort
1199 #define YYREJECT goto yyabort
1200 #define YYACCEPT goto yyaccept
1201 #define YYERROR goto yyerrlab
1205 register int yym, yyn, yystate;
1208 extern char *getenv();
1210 if (yys = getenv("YYDEBUG"))
1213 if (yyn >= '0' && yyn <= '9')
1214 yydebug = yyn - '0';
1224 *yyssp = yystate = 0;
1227 if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
1230 if ((yychar = yylex()) < 0) yychar = 0;
1235 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1236 if (!yys) yys = "illegal-symbol";
1237 printf("%sdebug: state %d, reading %d (%s)\n",
1238 YYPREFIX, yystate, yychar, yys);
1242 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1243 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1247 printf("%sdebug: state %d, shifting to state %d\n",
1248 YYPREFIX, yystate, yytable[yyn]);
1250 if (yyssp >= yyss + yystacksize - 1)
1254 *++yyssp = yystate = yytable[yyn];
1257 if (yyerrflag > 0) --yyerrflag;
1260 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1261 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1266 if (yyerrflag) goto yyinrecovery;
1271 yyerror("syntax error");
1283 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1284 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1288 printf("%sdebug: state %d, error recovery shifting\
1289 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
1291 if (yyssp >= yyss + yystacksize - 1)
1295 *++yyssp = yystate = yytable[yyn];
1303 printf("%sdebug: error recovery discarding state %d\n",
1306 if (yyssp <= yyss) goto yyabort;
1314 if (yychar == 0) goto yyabort;
1319 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1320 if (!yys) yys = "illegal-symbol";
1321 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
1322 YYPREFIX, yystate, yychar, yys);
1331 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
1332 YYPREFIX, yystate, yyn, yyrule[yyn]);
1335 yyval = yyvsp[1-yym];
1340 { yyret = yyvsp[0].sval; }
1344 { yyval.sval = yyvsp[0].sval; }
1348 { yyval.sval = yyvsp[-1].sval; }
1352 { yyval.sval = yyvsp[0].sval; f_free(yyvsp[-2].sval); }
1356 { char *s=yyvsp[-2].sval, *t=yyvsp[0].sval, *r=new
1357 char[f_len(s)+f_len(t)+1]; *r=0;
1358 if (s) strcpy(r, s); f_free(s);
1359 if (t) strcat(r, t); f_free(t);
1364 { yyval.sval = f_getsvar(yyvsp[0].ival); }
1368 { int v=yyvsp[-2].ival;
1369 char *s=f_getsvar(v), *t=yyvsp[0].sval, *r=new
1370 char[f_len(s)+f_len(t)+1]; *r=0;
1371 if (s) strcpy(r, s); f_free(s);
1372 if (t) strcat(r, t); f_free(t);
1373 yyval.sval = f_setsvar(v, r); }
1377 { yyval.sval = f_setsvar(yyvsp[-2].ival, yyvsp[0].sval);}
1381 { yyval.sval = f_str(yyvsp[-1].dval); }
1385 { yyval.sval = f_num(yyvsp[-4].sval) ? yyvsp[-2].sval : yyvsp[0].sval; }
1389 { yyval.sval = f_str((double)
1390 (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) < 0));}
1394 { yyval.sval = f_str((double)
1395 (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) > 0));}
1399 { yyval.sval = f_str((double)
1400 (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) == 0));}
1404 { yyval.sval = f_str((double)
1405 (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) != 0));}
1408 #line 100 "parser.y"
1409 { yyval.sval = f_str((double)
1410 (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) <= 0));}
1413 #line 102 "parser.y"
1414 { yyval.sval = f_str((double)
1415 (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) >= 0));}
1418 #line 104 "parser.y"
1419 { yyval.sval = f_str((double)f_instr(yyvsp[-2].sval, yyvsp[0].sval));}
1422 #line 105 "parser.y"
1423 { yyval.sval = f_field(yyvsp[0].ival,database->getrow());}
1426 #line 106 "parser.y"
1427 { yyval.sval = f_field(yyvsp[-3].ival, (int)yyvsp[-1].dval); }
1430 #line 107 "parser.y"
1431 { yyval.sval = f_assign(yyvsp[-2].ival,
1432 database->getrow(), yyvsp[0].sval);
1436 #line 111 "parser.y"
1437 { yyval.sval = f_assign(yyvsp[-5].ival, (int)yyvsp[-3].dval, yyvsp[0].sval);
1441 #line 113 "parser.y"
1442 { yyval.sval = f_system(yyvsp[-1].sval); }
1445 #line 114 "parser.y"
1446 { yyval.sval = copystring(getenv(yyvsp[0].sval)); }
1449 #line 115 "parser.y"
1450 { char *s=yyvsp[-1].sval; if (s) { int n=strlen(s);
1451 if (n && s[n-1]=='\n') s[n-1] = 0; }
1455 #line 118 "parser.y"
1456 { yyval.sval = f_tr(yyvsp[-3].sval, yyvsp[-1].sval); }
1459 #line 120 "parser.y"
1460 { yyval.sval = f_substr(yyvsp[-5].sval, (int)yyvsp[-3].dval, (int)yyvsp[-1].dval);}
1463 #line 121 "parser.y"
1464 { char s[80]; if (gethostname(s, 80))
1465 *s=0; s[80-1]=0; yyval.sval = copystring(s);}
1468 #line 123 "parser.y"
1469 { yyval.sval = copystring(getenv("USER")); }
1472 #line 124 "parser.y"
1473 { yyval.sval = copystring(prev_form); }
1476 #line 125 "parser.y"
1477 { yyval.sval = !database ? 0 : copystring(
1478 sections->at(sections->curr())->name);}
1481 #line 127 "parser.y"
1482 { yyval.sval = copystring(sections->at(
1483 f_section((int)yyvsp[-1].dval))->name);}
1486 #line 129 "parser.y"
1487 { yyval.sval = form && form->name ?
1488 copystring(resolve_tilde
1490 form->name, "gf")):0;}
1493 #line 133 "parser.y"
1494 { yyval.sval = form && form->dbase ?
1495 copystring(resolve_tilde
1502 #line 140 "parser.y"
1503 { char *name = yyvsp[-3].sval, *expr = yyvsp[-1].sval;
1504 f_free(switch_name);
1505 f_free(switch_expr);
1506 switch_name = copystring(name);
1507 switch_expr = copystring(expr);
1508 f_free(name); f_free(expr); yyval.sval = 0; }
1511 #line 146 "parser.y"
1512 { f_foreach(0, yyvsp[-1].sval); yyval.sval = 0; }
1515 #line 148 "parser.y"
1516 { f_foreach(yyvsp[-3].sval, yyvsp[-1].sval); yyval.sval = 0; }
1519 #line 149 "parser.y"
1520 { yyval.sval = copystring(mktimestring
1521 (time(0), FALSE)); }
1524 #line 151 "parser.y"
1525 { yyval.sval = copystring(mkdatestring
1529 #line 153 "parser.y"
1530 { yyval.sval = copystring(mktimestring
1531 ((time_t)yyvsp[-1].dval, FALSE)); }
1534 #line 155 "parser.y"
1535 { yyval.sval = copystring(mkdatestring
1536 ((time_t)yyvsp[-1].dval)); }
1539 #line 157 "parser.y"
1540 { yyval.sval = copystring(mktimestring
1541 ((time_t)yyvsp[-1].dval, TRUE)); }
1544 #line 159 "parser.y"
1545 { yyval.sval = f_expand(yyvsp[-1].ival,
1546 database->getrow()); }
1549 #line 162 "parser.y"
1550 { yyval.sval = f_expand(yyvsp[-4].ival, (int)yyvsp[-2].dval); }
1553 #line 163 "parser.y"
1554 { yyval.sval = f_printf(yyvsp[-1].aval); }
1557 #line 164 "parser.y"
1558 { /*<<< XBell(display, 0);*/ yyval.sval = 0; }
1561 #line 165 "parser.y"
1562 { char *s = f_printf(yyvsp[-1].aval);
1563 QMessageBox::warning(0, "KGrok", s);
1564 f_free(s); yyval.sval = 0; }
1567 #line 170 "parser.y"
1568 { yyval.aval = f_addarg(0, yyvsp[0].sval); }
1571 #line 171 "parser.y"
1572 { yyval.aval = f_addarg(yyvsp[-2].aval, yyvsp[0].sval); }
1575 #line 174 "parser.y"
1576 { yyval.dval = yyvsp[0].dval; }
1579 #line 175 "parser.y"
1580 { yyval.dval = f_num(yyvsp[-1].sval); }
1583 #line 176 "parser.y"
1584 { yyval.dval = yyvsp[-1].dval; }
1587 #line 177 "parser.y"
1588 { yyval.dval = f_num(f_field(yyvsp[0].ival,
1589 database->getrow())); }
1592 #line 179 "parser.y"
1593 { yyval.dval = f_num(f_field(yyvsp[-3].ival, (int)yyvsp[-1].dval)); }
1596 #line 180 "parser.y"
1597 { f_free(f_assign(yyvsp[-2].ival, database->
1598 getrow(), f_str(yyval.dval = yyvsp[0].dval)));
1602 #line 184 "parser.y"
1603 { f_free(f_assign(yyvsp[-5].ival, (int)yyvsp[-3].dval,
1604 f_str(yyval.dval = yyvsp[0].dval))); assigned = 1; }
1607 #line 186 "parser.y"
1608 { yyval.dval = f_getnvar(yyvsp[0].ival); }
1611 #line 187 "parser.y"
1612 { yyval.dval = f_setnvar(yyvsp[-2].ival, yyvsp[0].dval); }
1615 #line 188 "parser.y"
1616 { int v = yyvsp[-2].ival;
1617 yyval.dval = f_setnvar(v, f_getnvar(v)+yyvsp[0].dval); }
1620 #line 190 "parser.y"
1621 { int v = yyvsp[-2].ival;
1622 yyval.dval = f_setnvar(v, f_getnvar(v)-yyvsp[0].dval); }
1625 #line 192 "parser.y"
1626 { int v = yyvsp[-2].ival;
1627 yyval.dval = f_setnvar(v, f_getnvar(v)*yyvsp[0].dval); }
1630 #line 194 "parser.y"
1631 { int v = yyvsp[-2].ival; double d=yyvsp[0].dval; if(d==0)d=1;
1632 yyval.dval = f_setnvar(v, f_getnvar(v)/d); }
1635 #line 196 "parser.y"
1636 { int v = yyvsp[-2].ival; double d=yyvsp[0].dval; if(d==0)d=1;
1637 yyval.dval = f_setnvar(v, (double)((int)
1638 f_getnvar(v)%(int)d));}
1641 #line 199 "parser.y"
1642 { int v = yyvsp[-2].ival;
1643 yyval.dval = f_setnvar(v, (double)((int)yyvsp[0].dval &
1644 (int)f_getnvar(v)));}
1647 #line 202 "parser.y"
1648 { int v = yyvsp[-2].ival;
1649 yyval.dval = f_setnvar(v, (double)((int)yyvsp[0].dval |
1650 (int)f_getnvar(v)));}
1653 #line 205 "parser.y"
1654 { int v = yyvsp[-1].ival;
1655 yyval.dval = f_setnvar(v, f_getnvar(v)+1)-1;}
1658 #line 207 "parser.y"
1659 { int v = yyvsp[-1].ival;
1660 yyval.dval = f_setnvar(v, f_getnvar(v)-1)+1;}
1663 #line 209 "parser.y"
1664 { int v = yyvsp[0].ival;
1665 yyval.dval = f_setnvar(v, f_getnvar(v)+1); }
1668 #line 211 "parser.y"
1669 { int v = yyvsp[0].ival;
1670 yyval.dval = f_setnvar(v, f_getnvar(v)-1); }
1673 #line 213 "parser.y"
1674 { yyval.dval = - yyvsp[0].dval; }
1677 #line 214 "parser.y"
1678 { yyval.dval = ! yyvsp[0].dval; }
1681 #line 215 "parser.y"
1682 { yyval.dval = ~ (int)yyvsp[0].dval; }
1685 #line 216 "parser.y"
1686 { yyval.dval = (int)yyvsp[-2].dval & (int)yyvsp[0].dval; }
1689 #line 217 "parser.y"
1690 { yyval.dval = (int)yyvsp[-2].dval ^ (int)yyvsp[0].dval; }
1693 #line 218 "parser.y"
1694 { yyval.dval = (int)yyvsp[-2].dval | (int)yyvsp[0].dval; }
1697 #line 219 "parser.y"
1698 { yyval.dval = (int)yyvsp[-2].dval << (int)yyvsp[0].dval; }
1701 #line 220 "parser.y"
1702 { yyval.dval = (int)yyvsp[-2].dval >> (int)yyvsp[0].dval; }
1705 #line 221 "parser.y"
1706 { int i=(int)yyvsp[0].dval; if (i==0) i=1;
1707 yyval.dval = (int)yyvsp[-2].dval % i; }
1710 #line 223 "parser.y"
1711 { yyval.dval = yyvsp[-2].dval + yyvsp[0].dval; }
1714 #line 224 "parser.y"
1715 { yyval.dval = yyvsp[-2].dval - yyvsp[0].dval; }
1718 #line 225 "parser.y"
1719 { yyval.dval = yyvsp[-2].dval * yyvsp[0].dval; }
1722 #line 226 "parser.y"
1723 { double d=yyvsp[0].dval; if (d==0) d=1;
1724 yyval.dval = yyvsp[-2].dval / d; }
1727 #line 228 "parser.y"
1728 { yyval.dval = yyvsp[-2].dval < yyvsp[0].dval; }
1731 #line 229 "parser.y"
1732 { yyval.dval = yyvsp[-2].dval > yyvsp[0].dval; }
1735 #line 230 "parser.y"
1736 { yyval.dval = yyvsp[-2].dval == yyvsp[0].dval; }
1739 #line 231 "parser.y"
1740 { yyval.dval = yyvsp[-2].dval != yyvsp[0].dval; }
1743 #line 232 "parser.y"
1744 { yyval.dval = yyvsp[-2].dval <= yyvsp[0].dval; }
1747 #line 233 "parser.y"
1748 { yyval.dval = yyvsp[-2].dval >= yyvsp[0].dval; }
1751 #line 234 "parser.y"
1752 { yyval.dval = yyvsp[-2].dval && yyvsp[0].dval; }
1755 #line 235 "parser.y"
1756 { yyval.dval = yyvsp[-2].dval || yyvsp[0].dval; }
1759 #line 236 "parser.y"
1760 { yyval.dval = yyvsp[-4].dval ? yyvsp[-2].dval : yyvsp[0].dval; }
1763 #line 237 "parser.y"
1764 { yyval.dval = yyvsp[0].dval; }
1767 #line 238 "parser.y"
1768 { yyval.dval = database->getrow() > 0 ?
1769 database->getrow() : 0; }
1772 #line 240 "parser.y"
1773 { yyval.dval = database ?
1774 database->rowcount() - 1 : -1; }
1777 #line 242 "parser.y"
1778 { /*<<<$$ = database && card->disprow >= 0
1780 database->rowcount()
1781 ? card->disprow : -1; <<<*/ }
1784 #line 246 "parser.y"
1785 { yyval.dval = f_avg(yyvsp[-1].ival); }
1788 #line 247 "parser.y"
1789 { yyval.dval = f_dev(yyvsp[-1].ival); }
1792 #line 248 "parser.y"
1793 { yyval.dval = f_min(yyvsp[-1].ival); }
1796 #line 249 "parser.y"
1797 { yyval.dval = f_max(yyvsp[-1].ival); }
1800 #line 250 "parser.y"
1801 { yyval.dval = f_sum(yyvsp[-1].ival); }
1804 #line 251 "parser.y"
1805 { yyval.dval = f_qavg(yyvsp[-1].ival); }
1808 #line 252 "parser.y"
1809 { yyval.dval = f_qdev(yyvsp[-1].ival); }
1812 #line 253 "parser.y"
1813 { yyval.dval = f_qmin(yyvsp[-1].ival); }
1816 #line 254 "parser.y"
1817 { yyval.dval = f_qmax(yyvsp[-1].ival); }
1820 #line 255 "parser.y"
1821 { yyval.dval = f_qsum(yyvsp[-1].ival); }
1824 #line 256 "parser.y"
1825 { yyval.dval = f_savg(yyvsp[-1].ival); }
1828 #line 257 "parser.y"
1829 { yyval.dval = f_sdev(yyvsp[-1].ival); }
1832 #line 258 "parser.y"
1833 { yyval.dval = f_smin(yyvsp[-1].ival); }
1836 #line 259 "parser.y"
1837 { yyval.dval = f_smax(yyvsp[-1].ival); }
1840 #line 260 "parser.y"
1841 { yyval.dval = f_ssum(yyvsp[-1].ival); }
1844 #line 261 "parser.y"
1845 { yyval.dval = fabs(yyvsp[-1].dval); }
1848 #line 262 "parser.y"
1849 { yyval.dval = (int)(yyvsp[-1].dval); }
1852 #line 264 "parser.y"
1853 { register double a=yyvsp[-5].dval, b=yyvsp[-3].dval, c=yyvsp[-1].dval;
1854 yyval.dval = a < b ? b : a > c ? c : a; }
1857 #line 266 "parser.y"
1858 { char *a=yyvsp[-1].sval; yyval.dval = a ? f_len(a) : 0;
1862 #line 268 "parser.y"
1863 { yyval.dval = sqrt(fabs(yyvsp[-1].dval)); }
1866 #line 269 "parser.y"
1867 { yyval.dval = exp(yyvsp[-1].dval); }
1870 #line 270 "parser.y"
1871 { double a=yyvsp[-1].dval; yyval.dval = a<=0 ? 0:log10(a);}
1874 #line 271 "parser.y"
1875 { double a=yyvsp[-1].dval; yyval.dval = a<=0 ? 0:log(a); }
1878 #line 273 "parser.y"
1879 { yyval.dval = pow(yyvsp[-3].dval, yyvsp[-1].dval); }
1882 #line 274 "parser.y"
1883 { yyval.dval = drand48(); }
1886 #line 275 "parser.y"
1887 { yyval.dval = sin(yyvsp[-1].dval); }
1890 #line 276 "parser.y"
1891 { yyval.dval = cos(yyvsp[-1].dval); }
1894 #line 277 "parser.y"
1895 { yyval.dval = tan(yyvsp[-1].dval); }
1898 #line 278 "parser.y"
1899 { yyval.dval = asin(yyvsp[-1].dval); }
1902 #line 279 "parser.y"
1903 { yyval.dval = acos(yyvsp[-1].dval); }
1906 #line 280 "parser.y"
1907 { yyval.dval = atan(yyvsp[-1].dval); }
1910 #line 282 "parser.y"
1911 { yyval.dval = atan2(yyvsp[-3].dval, yyvsp[-1].dval); }
1914 #line 283 "parser.y"
1915 { yyval.dval = database ? sections->curr() :0;}
1918 #line 284 "parser.y"
1919 { yyval.dval = f_section((int)yyvsp[-1].dval); }
1922 #line 285 "parser.y"
1923 { yyval.dval = time(0); }
1926 #line 286 "parser.y"
1927 { yyval.dval = parse_datetimestring(yyvsp[-1].sval); }
1930 #line 287 "parser.y"
1931 { yyval.dval = parse_timestring(yyvsp[-1].sval, FALSE); }
1934 #line 288 "parser.y"
1935 { yyval.dval = parse_timestring(yyvsp[-1].sval, TRUE); }
1938 #line 289 "parser.y"
1939 { const time_t t = (time_t)yyvsp[-1].dval;
1940 yyval.dval = localtime(&t)->tm_year; }
1943 #line 291 "parser.y"
1944 { const time_t t = (time_t)yyvsp[-1].dval;
1945 yyval.dval = localtime(&t)->tm_mon+1; }
1948 #line 293 "parser.y"
1949 { const time_t t = (time_t)yyvsp[-1].dval;
1950 yyval.dval = localtime(&t)->tm_mday; }
1953 #line 295 "parser.y"
1954 { const time_t t = (time_t)yyvsp[-1].dval;
1955 yyval.dval = localtime(&t)->tm_hour; }
1958 #line 297 "parser.y"
1959 { const time_t t = (time_t)yyvsp[-1].dval;
1960 yyval.dval = localtime(&t)->tm_min; }
1963 #line 299 "parser.y"
1964 { const time_t t = (time_t)yyvsp[-1].dval;
1965 yyval.dval = localtime(&t)->tm_sec; }
1968 #line 301 "parser.y"
1969 { const time_t t = (time_t)yyvsp[-1].dval;
1970 yyval.dval = localtime(&t)->tm_yday; }
1973 #line 303 "parser.y"
1974 { const time_t t = (time_t)yyvsp[-1].dval;
1975 int y=localtime(&t)->tm_year;
1976 yyval.dval = !(y%4) ^ !(y%100) ^ !(y%400); }
1979 #line 306 "parser.y"
1980 { yyval.dval = getuid(); }
1983 #line 307 "parser.y"
1984 { yyval.dval = getgid(); }
1987 #line 309 "parser.y"
1988 { char *a = yyvsp[-3].sval;
1989 yyval.dval = a ? access(a, (int)yyvsp[-1].dval) : 0;
1992 #line 1993 "y.tab.c"
1998 if (yystate == 0 && yym == 0)
2002 printf("%sdebug: after reduction, shifting from state 0 to\
2003 state %d\n", YYPREFIX, YYFINAL);
2010 if ((yychar = yylex()) < 0) yychar = 0;
2015 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2016 if (!yys) yys = "illegal-symbol";
2017 printf("%sdebug: state %d, reading %d (%s)\n",
2018 YYPREFIX, YYFINAL, yychar, yys);
2022 if (yychar == 0) goto yyaccept;
2025 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2026 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2027 yystate = yytable[yyn];
2029 yystate = yydgoto[yym];
2032 printf("%sdebug: after reduction, shifting from state %d \
2033 to state %d\n", YYPREFIX, *yyssp, yystate);
2035 if (yyssp >= yyss + yystacksize - 1)
2043 yyerror("yacc stack overflow");