]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/nonworking/kgrok/files/parser_yacc.cpp
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / nonworking / kgrok / files / parser_yacc.cpp
1 #ifndef lint
2 static const char yysccsid[] = "@(#)yaccpar     1.9 (Berkeley) 02/21/93";
3 #endif
4 #define YYBYACC 1
5 #define YYMAJOR 1
6 #define YYMINOR 9
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
20 #define yyss parserss
21 #define yyssp parserssp
22 #define yyvs parservs
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"
36 #line 2 "parser.y"
37 /**/
38 /* (C) Copyright 2001 by Thomas Driemeyer <thomas@bitrot.de> www.bitrot.de.*/
39 /**/
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.*/
47 /**/
48 /* expression language grammar, compiled to parser.C by yacc*/
49 /**/
50
51 #include <stdio.h>
52 #include <stdlib.h>
53 #include <unistd.h>
54 #include <string.h>
55 #include <time.h>
56 #include <math.h>
57 #include <qmessagebox.h>
58 #include "form.h"
59 #include "section.h"
60 #include "database.h"
61 #include "evaluate.h"
62 #include "util.h"
63
64 #define yyparse Evaluate::yyeparse
65 #line 32 "parser.y"
66 typedef union { int ival; double dval; char *sval; Arg *aval; } YYSTYPE;
67 #line 68 "y.tab.c"
68 #define NUMBER 257
69 #define STRING 258
70 #define SYMBOL 259
71 #define FIELD 260
72 #define VAR 261
73 #define EQ 262
74 #define NEQ 263
75 #define LE 264
76 #define GE 265
77 #define SHR 266
78 #define SHL 267
79 #define AND 268
80 #define OR 269
81 #define IN 270
82 #define PLA 271
83 #define MIA 272
84 #define MUA 273
85 #define MOA 274
86 #define DVA 275
87 #define ANA 276
88 #define ORA 277
89 #define INC 278
90 #define DEC_ 279
91 #define APP 280
92 #define AVG 281
93 #define DEV 282
94 #define AMIN 283
95 #define AMAX 284
96 #define SUM 285
97 #define QAVG 286
98 #define QDEV 287
99 #define QMIN_ 288
100 #define QMAX_ 289
101 #define QSUM 290
102 #define SAVG 291
103 #define SDEV 292
104 #define SMIN 293
105 #define SMAX 294
106 #define SSUM 295
107 #define ABS 296
108 #define INT 297
109 #define BOUND 298
110 #define LEN 299
111 #define CHOP 300
112 #define TR 301
113 #define SUBSTR 302
114 #define SQRT 303
115 #define EXP 304
116 #define LOG 305
117 #define LN 306
118 #define POW 307
119 #define RANDOM 308
120 #define SIN 309
121 #define COS 310
122 #define TAN 311
123 #define ASIN 312
124 #define ACOS 313
125 #define ATAN 314
126 #define ATAN2 315
127 #define DATE 316
128 #define TIME 317
129 #define DURATION 318
130 #define EXPAND 319
131 #define YEAR 320
132 #define MONTH 321
133 #define DAY 322
134 #define HOUR 323
135 #define MINUTE 324
136 #define SECOND 325
137 #define LEAP 326
138 #define JULIAN 327
139 #define SECTION_ 328
140 #define DBASE_ 329
141 #define FORM_ 330
142 #define PREVFORM 331
143 #define SWITCH 332
144 #define THIS 333
145 #define LAST 334
146 #define DISP 335
147 #define FOREACH 336
148 #define HOST 337
149 #define USER 338
150 #define UID 339
151 #define GID 340
152 #define SYSTEM 341
153 #define ACCESS 342
154 #define BEEP 343
155 #define ERROR 344
156 #define PRINTF 345
157 #define UMINUS 346
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,
174     1,    1,    1,
175 };
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,
191     1,    1,    6,
192 };
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,
234 };
235 short parserdgoto[] = {                                      26,
236   106,  133,  134,
237 };
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,
279 };
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,
321 };
322 short parsergindex[] = {                                      0,
323   -29,  191,  295,
324 };
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,
663     0,    0,    0,    0,  112,
664 };
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,
1003 };
1004 #define YYFINAL 26
1005 #ifndef YYDEBUG
1006 #define YYDEBUG 0
1007 #endif
1008 #define YYMAXTOKEN 346
1009 #if YYDEBUG
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",
1027 "UMINUS",
1028 };
1029 char *parserrule[] = {
1030 "$accept : stmt",
1031 "stmt : string",
1032 "string : STRING",
1033 "string : '{' string '}'",
1034 "string : string ';' string",
1035 "string : string '.' string",
1036 "string : VAR",
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",
1048 "string : FIELD",
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 ')'",
1057 "string : HOST",
1058 "string : USER",
1059 "string : PREVFORM",
1060 "string : SECTION_",
1061 "string : SECTION_ '[' number ']'",
1062 "string : FORM_",
1063 "string : DBASE_",
1064 "string : SWITCH '(' string ',' string ')'",
1065 "string : FOREACH '(' string ')'",
1066 "string : FOREACH '(' string ',' string ')'",
1067 "string : TIME",
1068 "string : DATE",
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 ')'",
1075 "string : BEEP",
1076 "string : ERROR '(' args ')'",
1077 "args : string",
1078 "args : args ',' string",
1079 "number : NUMBER",
1080 "number : '{' string '}'",
1081 "number : '(' number ')'",
1082 "number : FIELD",
1083 "number : FIELD '[' number ']'",
1084 "number : FIELD '=' number",
1085 "number : FIELD '[' number ']' '=' number",
1086 "number : VAR",
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",
1095 "number : VAR INC",
1096 "number : VAR DEC_",
1097 "number : INC VAR",
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",
1122 "number : THIS",
1123 "number : LAST",
1124 "number : DISP",
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 ')'",
1149 "number : RANDOM",
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 ']'",
1159 "number : DATE",
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 ')'",
1171 "number : UID",
1172 "number : GID",
1173 "number : ACCESS '(' string ',' number ')'",
1174 };
1175 #endif
1176 #ifdef YYSTACKSIZE
1177 #undef YYMAXDEPTH
1178 #define YYMAXDEPTH YYSTACKSIZE
1179 #else
1180 #ifdef YYMAXDEPTH
1181 #define YYSTACKSIZE YYMAXDEPTH
1182 #else
1183 #define YYSTACKSIZE 500
1184 #define YYMAXDEPTH 500
1185 #endif
1186 #endif
1187 int yydebug;
1188 int yynerrs;
1189 int yyerrflag;
1190 int yychar;
1191 short *yyssp;
1192 YYSTYPE *yyvsp;
1193 YYSTYPE yyval;
1194 YYSTYPE yylval;
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
1202 int
1203 yyparse(void)
1204 {
1205     register int yym, yyn, yystate;
1206 #if YYDEBUG
1207     register char *yys;
1208     extern char *getenv();
1209
1210     if (yys = getenv("YYDEBUG"))
1211     {
1212         yyn = *yys;
1213         if (yyn >= '0' && yyn <= '9')
1214             yydebug = yyn - '0';
1215     }
1216 #endif
1217
1218     yynerrs = 0;
1219     yyerrflag = 0;
1220     yychar = (-1);
1221
1222     yyssp = yyss;
1223     yyvsp = yyvs;
1224     *yyssp = yystate = 0;
1225
1226 yyloop:
1227     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
1228     if (yychar < 0)
1229     {
1230         if ((yychar = yylex()) < 0) yychar = 0;
1231 #if YYDEBUG
1232         if (yydebug)
1233         {
1234             yys = 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);
1239         }
1240 #endif
1241     }
1242     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1243             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1244     {
1245 #if YYDEBUG
1246         if (yydebug)
1247             printf("%sdebug: state %d, shifting to state %d\n",
1248                     YYPREFIX, yystate, yytable[yyn]);
1249 #endif
1250         if (yyssp >= yyss + yystacksize - 1)
1251         {
1252             goto yyoverflow;
1253         }
1254         *++yyssp = yystate = yytable[yyn];
1255         *++yyvsp = yylval;
1256         yychar = (-1);
1257         if (yyerrflag > 0)  --yyerrflag;
1258         goto yyloop;
1259     }
1260     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1261             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1262     {
1263         yyn = yytable[yyn];
1264         goto yyreduce;
1265     }
1266     if (yyerrflag) goto yyinrecovery;
1267 #ifdef lint
1268     goto yynewerror;
1269 #endif
1270 yynewerror:
1271     yyerror("syntax error");
1272 #ifdef lint
1273     goto yyerrlab;
1274 #endif
1275 yyerrlab:
1276     ++yynerrs;
1277 yyinrecovery:
1278     if (yyerrflag < 3)
1279     {
1280         yyerrflag = 3;
1281         for (;;)
1282         {
1283             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1284                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1285             {
1286 #if YYDEBUG
1287                 if (yydebug)
1288                     printf("%sdebug: state %d, error recovery shifting\
1289  to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
1290 #endif
1291                 if (yyssp >= yyss + yystacksize - 1)
1292                 {
1293                     goto yyoverflow;
1294                 }
1295                 *++yyssp = yystate = yytable[yyn];
1296                 *++yyvsp = yylval;
1297                 goto yyloop;
1298             }
1299             else
1300             {
1301 #if YYDEBUG
1302                 if (yydebug)
1303                     printf("%sdebug: error recovery discarding state %d\n",
1304                             YYPREFIX, *yyssp);
1305 #endif
1306                 if (yyssp <= yyss) goto yyabort;
1307                 --yyssp;
1308                 --yyvsp;
1309             }
1310         }
1311     }
1312     else
1313     {
1314         if (yychar == 0) goto yyabort;
1315 #if YYDEBUG
1316         if (yydebug)
1317         {
1318             yys = 0;
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);
1323         }
1324 #endif
1325         yychar = (-1);
1326         goto yyloop;
1327     }
1328 yyreduce:
1329 #if YYDEBUG
1330     if (yydebug)
1331         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
1332                 YYPREFIX, yystate, yyn, yyrule[yyn]);
1333 #endif
1334     yym = yylen[yyn];
1335     yyval = yyvsp[1-yym];
1336     switch (yyn)
1337     {
1338 case 1:
1339 #line 71 "parser.y"
1340 { yyret = yyvsp[0].sval; }
1341 break;
1342 case 2:
1343 #line 74 "parser.y"
1344 { yyval.sval = yyvsp[0].sval; }
1345 break;
1346 case 3:
1347 #line 75 "parser.y"
1348 { yyval.sval = yyvsp[-1].sval; }
1349 break;
1350 case 4:
1351 #line 76 "parser.y"
1352 { yyval.sval = yyvsp[0].sval; f_free(yyvsp[-2].sval); }
1353 break;
1354 case 5:
1355 #line 77 "parser.y"
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);
1360                                           yyval.sval = r; }
1361 break;
1362 case 6:
1363 #line 82 "parser.y"
1364 { yyval.sval = f_getsvar(yyvsp[0].ival); }
1365 break;
1366 case 7:
1367 #line 83 "parser.y"
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); }
1374 break;
1375 case 8:
1376 #line 89 "parser.y"
1377 { yyval.sval = f_setsvar(yyvsp[-2].ival, yyvsp[0].sval);}
1378 break;
1379 case 9:
1380 #line 90 "parser.y"
1381 { yyval.sval = f_str(yyvsp[-1].dval); }
1382 break;
1383 case 10:
1384 #line 91 "parser.y"
1385 { yyval.sval = f_num(yyvsp[-4].sval) ? yyvsp[-2].sval : yyvsp[0].sval; }
1386 break;
1387 case 11:
1388 #line 92 "parser.y"
1389 { yyval.sval = f_str((double)
1390                                                         (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) <  0));}
1391 break;
1392 case 12:
1393 #line 94 "parser.y"
1394 { yyval.sval = f_str((double)
1395                                                         (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) >  0));}
1396 break;
1397 case 13:
1398 #line 96 "parser.y"
1399 { yyval.sval = f_str((double)
1400                                                         (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) == 0));}
1401 break;
1402 case 14:
1403 #line 98 "parser.y"
1404 { yyval.sval = f_str((double)
1405                                                         (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) != 0));}
1406 break;
1407 case 15:
1408 #line 100 "parser.y"
1409 { yyval.sval = f_str((double)
1410                                                         (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) <= 0));}
1411 break;
1412 case 16:
1413 #line 102 "parser.y"
1414 { yyval.sval = f_str((double)
1415                                                         (f_cmp(yyvsp[-2].sval, yyvsp[0].sval) >= 0));}
1416 break;
1417 case 17:
1418 #line 104 "parser.y"
1419 { yyval.sval = f_str((double)f_instr(yyvsp[-2].sval, yyvsp[0].sval));}
1420 break;
1421 case 18:
1422 #line 105 "parser.y"
1423 { yyval.sval = f_field(yyvsp[0].ival,database->getrow());}
1424 break;
1425 case 19:
1426 #line 106 "parser.y"
1427 { yyval.sval = f_field(yyvsp[-3].ival, (int)yyvsp[-1].dval); }
1428 break;
1429 case 20:
1430 #line 107 "parser.y"
1431 { yyval.sval = f_assign(yyvsp[-2].ival,
1432                                                 database->getrow(), yyvsp[0].sval);
1433                                           assigned = 1; }
1434 break;
1435 case 21:
1436 #line 111 "parser.y"
1437 { yyval.sval = f_assign(yyvsp[-5].ival, (int)yyvsp[-3].dval, yyvsp[0].sval);
1438                                           assigned = 1; }
1439 break;
1440 case 22:
1441 #line 113 "parser.y"
1442 { yyval.sval = f_system(yyvsp[-1].sval); }
1443 break;
1444 case 23:
1445 #line 114 "parser.y"
1446 { yyval.sval = copystring(getenv(yyvsp[0].sval)); }
1447 break;
1448 case 24:
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; }
1452                                           yyval.sval = s; }
1453 break;
1454 case 25:
1455 #line 118 "parser.y"
1456 { yyval.sval = f_tr(yyvsp[-3].sval, yyvsp[-1].sval); }
1457 break;
1458 case 26:
1459 #line 120 "parser.y"
1460 { yyval.sval = f_substr(yyvsp[-5].sval, (int)yyvsp[-3].dval, (int)yyvsp[-1].dval);}
1461 break;
1462 case 27:
1463 #line 121 "parser.y"
1464 { char s[80]; if (gethostname(s, 80))
1465                                           *s=0; s[80-1]=0; yyval.sval = copystring(s);}
1466 break;
1467 case 28:
1468 #line 123 "parser.y"
1469 { yyval.sval = copystring(getenv("USER")); }
1470 break;
1471 case 29:
1472 #line 124 "parser.y"
1473 { yyval.sval = copystring(prev_form); }
1474 break;
1475 case 30:
1476 #line 125 "parser.y"
1477 { yyval.sval = !database ? 0 : copystring(
1478                                         sections->at(sections->curr())->name);}
1479 break;
1480 case 31:
1481 #line 127 "parser.y"
1482 { yyval.sval = copystring(sections->at(
1483                                                 f_section((int)yyvsp[-1].dval))->name);}
1484 break;
1485 case 32:
1486 #line 129 "parser.y"
1487 { yyval.sval = form && form->name ?
1488                                                 copystring(resolve_tilde
1489                                                         (form->memindex,
1490                                                          form->name, "gf")):0;}
1491 break;
1492 case 33:
1493 #line 133 "parser.y"
1494 { yyval.sval = form && form->dbase ?
1495                                                 copystring(resolve_tilde
1496                                                         (form->memindex,
1497                                                          form->dbase,
1498                                                          form->proc ?
1499                                                                 0 : "db")) :0;}
1500 break;
1501 case 34:
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; }
1509 break;
1510 case 35:
1511 #line 146 "parser.y"
1512 { f_foreach(0, yyvsp[-1].sval); yyval.sval = 0; }
1513 break;
1514 case 36:
1515 #line 148 "parser.y"
1516 { f_foreach(yyvsp[-3].sval, yyvsp[-1].sval); yyval.sval = 0; }
1517 break;
1518 case 37:
1519 #line 149 "parser.y"
1520 { yyval.sval = copystring(mktimestring
1521                                                 (time(0), FALSE)); }
1522 break;
1523 case 38:
1524 #line 151 "parser.y"
1525 { yyval.sval = copystring(mkdatestring
1526                                                 (time(0))); }
1527 break;
1528 case 39:
1529 #line 153 "parser.y"
1530 { yyval.sval = copystring(mktimestring
1531                                                 ((time_t)yyvsp[-1].dval, FALSE)); }
1532 break;
1533 case 40:
1534 #line 155 "parser.y"
1535 { yyval.sval = copystring(mkdatestring
1536                                                 ((time_t)yyvsp[-1].dval)); }
1537 break;
1538 case 41:
1539 #line 157 "parser.y"
1540 { yyval.sval = copystring(mktimestring
1541                                                 ((time_t)yyvsp[-1].dval, TRUE)); }
1542 break;
1543 case 42:
1544 #line 159 "parser.y"
1545 { yyval.sval = f_expand(yyvsp[-1].ival,
1546                                                         database->getrow()); }
1547 break;
1548 case 43:
1549 #line 162 "parser.y"
1550 { yyval.sval = f_expand(yyvsp[-4].ival, (int)yyvsp[-2].dval); }
1551 break;
1552 case 44:
1553 #line 163 "parser.y"
1554 { yyval.sval = f_printf(yyvsp[-1].aval); }
1555 break;
1556 case 45:
1557 #line 164 "parser.y"
1558 { /*<<< XBell(display, 0);*/ yyval.sval = 0; }
1559 break;
1560 case 46:
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; }
1565 break;
1566 case 47:
1567 #line 170 "parser.y"
1568 { yyval.aval = f_addarg(0, yyvsp[0].sval); }
1569 break;
1570 case 48:
1571 #line 171 "parser.y"
1572 { yyval.aval = f_addarg(yyvsp[-2].aval, yyvsp[0].sval); }
1573 break;
1574 case 49:
1575 #line 174 "parser.y"
1576 { yyval.dval = yyvsp[0].dval; }
1577 break;
1578 case 50:
1579 #line 175 "parser.y"
1580 { yyval.dval = f_num(yyvsp[-1].sval); }
1581 break;
1582 case 51:
1583 #line 176 "parser.y"
1584 { yyval.dval = yyvsp[-1].dval; }
1585 break;
1586 case 52:
1587 #line 177 "parser.y"
1588 { yyval.dval = f_num(f_field(yyvsp[0].ival,
1589                                                         database->getrow())); }
1590 break;
1591 case 53:
1592 #line 179 "parser.y"
1593 { yyval.dval = f_num(f_field(yyvsp[-3].ival, (int)yyvsp[-1].dval)); }
1594 break;
1595 case 54:
1596 #line 180 "parser.y"
1597 { f_free(f_assign(yyvsp[-2].ival, database->
1598                                                     getrow(), f_str(yyval.dval = yyvsp[0].dval)));
1599                                            assigned = 1; }
1600 break;
1601 case 55:
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; }
1605 break;
1606 case 56:
1607 #line 186 "parser.y"
1608 { yyval.dval = f_getnvar(yyvsp[0].ival); }
1609 break;
1610 case 57:
1611 #line 187 "parser.y"
1612 { yyval.dval = f_setnvar(yyvsp[-2].ival, yyvsp[0].dval); }
1613 break;
1614 case 58:
1615 #line 188 "parser.y"
1616 { int v = yyvsp[-2].ival;
1617                                           yyval.dval = f_setnvar(v, f_getnvar(v)+yyvsp[0].dval); }
1618 break;
1619 case 59:
1620 #line 190 "parser.y"
1621 { int v = yyvsp[-2].ival;
1622                                           yyval.dval = f_setnvar(v, f_getnvar(v)-yyvsp[0].dval); }
1623 break;
1624 case 60:
1625 #line 192 "parser.y"
1626 { int v = yyvsp[-2].ival;
1627                                           yyval.dval = f_setnvar(v, f_getnvar(v)*yyvsp[0].dval); }
1628 break;
1629 case 61:
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); }
1633 break;
1634 case 62:
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));}
1639 break;
1640 case 63:
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)));}
1645 break;
1646 case 64:
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)));}
1651 break;
1652 case 65:
1653 #line 205 "parser.y"
1654 { int v = yyvsp[-1].ival;
1655                                           yyval.dval = f_setnvar(v, f_getnvar(v)+1)-1;}
1656 break;
1657 case 66:
1658 #line 207 "parser.y"
1659 { int v = yyvsp[-1].ival;
1660                                           yyval.dval = f_setnvar(v, f_getnvar(v)-1)+1;}
1661 break;
1662 case 67:
1663 #line 209 "parser.y"
1664 { int v = yyvsp[0].ival;
1665                                           yyval.dval = f_setnvar(v, f_getnvar(v)+1); }
1666 break;
1667 case 68:
1668 #line 211 "parser.y"
1669 { int v = yyvsp[0].ival;
1670                                           yyval.dval = f_setnvar(v, f_getnvar(v)-1); }
1671 break;
1672 case 69:
1673 #line 213 "parser.y"
1674 { yyval.dval = - yyvsp[0].dval; }
1675 break;
1676 case 70:
1677 #line 214 "parser.y"
1678 { yyval.dval = ! yyvsp[0].dval; }
1679 break;
1680 case 71:
1681 #line 215 "parser.y"
1682 { yyval.dval = ~ (int)yyvsp[0].dval; }
1683 break;
1684 case 72:
1685 #line 216 "parser.y"
1686 { yyval.dval = (int)yyvsp[-2].dval &  (int)yyvsp[0].dval; }
1687 break;
1688 case 73:
1689 #line 217 "parser.y"
1690 { yyval.dval = (int)yyvsp[-2].dval ^  (int)yyvsp[0].dval; }
1691 break;
1692 case 74:
1693 #line 218 "parser.y"
1694 { yyval.dval = (int)yyvsp[-2].dval |  (int)yyvsp[0].dval; }
1695 break;
1696 case 75:
1697 #line 219 "parser.y"
1698 { yyval.dval = (int)yyvsp[-2].dval << (int)yyvsp[0].dval; }
1699 break;
1700 case 76:
1701 #line 220 "parser.y"
1702 { yyval.dval = (int)yyvsp[-2].dval >> (int)yyvsp[0].dval; }
1703 break;
1704 case 77:
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; }
1708 break;
1709 case 78:
1710 #line 223 "parser.y"
1711 { yyval.dval = yyvsp[-2].dval +  yyvsp[0].dval; }
1712 break;
1713 case 79:
1714 #line 224 "parser.y"
1715 { yyval.dval = yyvsp[-2].dval -  yyvsp[0].dval; }
1716 break;
1717 case 80:
1718 #line 225 "parser.y"
1719 { yyval.dval = yyvsp[-2].dval *  yyvsp[0].dval; }
1720 break;
1721 case 81:
1722 #line 226 "parser.y"
1723 { double d=yyvsp[0].dval; if (d==0) d=1;
1724                                           yyval.dval = yyvsp[-2].dval /  d; }
1725 break;
1726 case 82:
1727 #line 228 "parser.y"
1728 { yyval.dval = yyvsp[-2].dval <  yyvsp[0].dval; }
1729 break;
1730 case 83:
1731 #line 229 "parser.y"
1732 { yyval.dval = yyvsp[-2].dval >  yyvsp[0].dval; }
1733 break;
1734 case 84:
1735 #line 230 "parser.y"
1736 { yyval.dval = yyvsp[-2].dval == yyvsp[0].dval; }
1737 break;
1738 case 85:
1739 #line 231 "parser.y"
1740 { yyval.dval = yyvsp[-2].dval != yyvsp[0].dval; }
1741 break;
1742 case 86:
1743 #line 232 "parser.y"
1744 { yyval.dval = yyvsp[-2].dval <= yyvsp[0].dval; }
1745 break;
1746 case 87:
1747 #line 233 "parser.y"
1748 { yyval.dval = yyvsp[-2].dval >= yyvsp[0].dval; }
1749 break;
1750 case 88:
1751 #line 234 "parser.y"
1752 { yyval.dval = yyvsp[-2].dval && yyvsp[0].dval; }
1753 break;
1754 case 89:
1755 #line 235 "parser.y"
1756 { yyval.dval = yyvsp[-2].dval || yyvsp[0].dval; }
1757 break;
1758 case 90:
1759 #line 236 "parser.y"
1760 { yyval.dval = yyvsp[-4].dval ?  yyvsp[-2].dval : yyvsp[0].dval; }
1761 break;
1762 case 91:
1763 #line 237 "parser.y"
1764 { yyval.dval = yyvsp[0].dval; }
1765 break;
1766 case 92:
1767 #line 238 "parser.y"
1768 { yyval.dval = database->getrow() > 0 ?
1769                                                database->getrow() : 0; }
1770 break;
1771 case 93:
1772 #line 240 "parser.y"
1773 { yyval.dval = database ?
1774                                                database->rowcount() - 1 : -1; }
1775 break;
1776 case 94:
1777 #line 242 "parser.y"
1778 { /*<<<$$ = database && card->disprow >= 0
1779                                                         && card->disprow <
1780                                                            database->rowcount()
1781                                                ? card->disprow : -1; <<<*/ }
1782 break;
1783 case 95:
1784 #line 246 "parser.y"
1785 { yyval.dval = f_avg(yyvsp[-1].ival); }
1786 break;
1787 case 96:
1788 #line 247 "parser.y"
1789 { yyval.dval = f_dev(yyvsp[-1].ival); }
1790 break;
1791 case 97:
1792 #line 248 "parser.y"
1793 { yyval.dval = f_min(yyvsp[-1].ival); }
1794 break;
1795 case 98:
1796 #line 249 "parser.y"
1797 { yyval.dval = f_max(yyvsp[-1].ival); }
1798 break;
1799 case 99:
1800 #line 250 "parser.y"
1801 { yyval.dval = f_sum(yyvsp[-1].ival); }
1802 break;
1803 case 100:
1804 #line 251 "parser.y"
1805 { yyval.dval = f_qavg(yyvsp[-1].ival); }
1806 break;
1807 case 101:
1808 #line 252 "parser.y"
1809 { yyval.dval = f_qdev(yyvsp[-1].ival); }
1810 break;
1811 case 102:
1812 #line 253 "parser.y"
1813 { yyval.dval = f_qmin(yyvsp[-1].ival); }
1814 break;
1815 case 103:
1816 #line 254 "parser.y"
1817 { yyval.dval = f_qmax(yyvsp[-1].ival); }
1818 break;
1819 case 104:
1820 #line 255 "parser.y"
1821 { yyval.dval = f_qsum(yyvsp[-1].ival); }
1822 break;
1823 case 105:
1824 #line 256 "parser.y"
1825 { yyval.dval = f_savg(yyvsp[-1].ival); }
1826 break;
1827 case 106:
1828 #line 257 "parser.y"
1829 { yyval.dval = f_sdev(yyvsp[-1].ival); }
1830 break;
1831 case 107:
1832 #line 258 "parser.y"
1833 { yyval.dval = f_smin(yyvsp[-1].ival); }
1834 break;
1835 case 108:
1836 #line 259 "parser.y"
1837 { yyval.dval = f_smax(yyvsp[-1].ival); }
1838 break;
1839 case 109:
1840 #line 260 "parser.y"
1841 { yyval.dval = f_ssum(yyvsp[-1].ival); }
1842 break;
1843 case 110:
1844 #line 261 "parser.y"
1845 { yyval.dval = fabs(yyvsp[-1].dval); }
1846 break;
1847 case 111:
1848 #line 262 "parser.y"
1849 { yyval.dval = (int)(yyvsp[-1].dval); }
1850 break;
1851 case 112:
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; }
1855 break;
1856 case 113:
1857 #line 266 "parser.y"
1858 { char *a=yyvsp[-1].sval; yyval.dval = a ? f_len(a) : 0;
1859                                                                 f_free(a); }
1860 break;
1861 case 114:
1862 #line 268 "parser.y"
1863 { yyval.dval = sqrt(fabs(yyvsp[-1].dval));  }
1864 break;
1865 case 115:
1866 #line 269 "parser.y"
1867 { yyval.dval = exp(yyvsp[-1].dval); }
1868 break;
1869 case 116:
1870 #line 270 "parser.y"
1871 { double a=yyvsp[-1].dval; yyval.dval = a<=0 ? 0:log10(a);}
1872 break;
1873 case 117:
1874 #line 271 "parser.y"
1875 { double a=yyvsp[-1].dval; yyval.dval = a<=0 ? 0:log(a); }
1876 break;
1877 case 118:
1878 #line 273 "parser.y"
1879 { yyval.dval = pow(yyvsp[-3].dval, yyvsp[-1].dval); }
1880 break;
1881 case 119:
1882 #line 274 "parser.y"
1883 { yyval.dval = drand48(); }
1884 break;
1885 case 120:
1886 #line 275 "parser.y"
1887 { yyval.dval = sin(yyvsp[-1].dval); }
1888 break;
1889 case 121:
1890 #line 276 "parser.y"
1891 { yyval.dval = cos(yyvsp[-1].dval); }
1892 break;
1893 case 122:
1894 #line 277 "parser.y"
1895 { yyval.dval = tan(yyvsp[-1].dval); }
1896 break;
1897 case 123:
1898 #line 278 "parser.y"
1899 { yyval.dval = asin(yyvsp[-1].dval); }
1900 break;
1901 case 124:
1902 #line 279 "parser.y"
1903 { yyval.dval = acos(yyvsp[-1].dval); }
1904 break;
1905 case 125:
1906 #line 280 "parser.y"
1907 { yyval.dval = atan(yyvsp[-1].dval); }
1908 break;
1909 case 126:
1910 #line 282 "parser.y"
1911 { yyval.dval = atan2(yyvsp[-3].dval, yyvsp[-1].dval); }
1912 break;
1913 case 127:
1914 #line 283 "parser.y"
1915 { yyval.dval = database ? sections->curr() :0;}
1916 break;
1917 case 128:
1918 #line 284 "parser.y"
1919 { yyval.dval = f_section((int)yyvsp[-1].dval); }
1920 break;
1921 case 129:
1922 #line 285 "parser.y"
1923 { yyval.dval = time(0); }
1924 break;
1925 case 130:
1926 #line 286 "parser.y"
1927 { yyval.dval = parse_datetimestring(yyvsp[-1].sval); }
1928 break;
1929 case 131:
1930 #line 287 "parser.y"
1931 { yyval.dval = parse_timestring(yyvsp[-1].sval, FALSE); }
1932 break;
1933 case 132:
1934 #line 288 "parser.y"
1935 { yyval.dval = parse_timestring(yyvsp[-1].sval, TRUE); }
1936 break;
1937 case 133:
1938 #line 289 "parser.y"
1939 { const time_t t = (time_t)yyvsp[-1].dval;
1940                                           yyval.dval = localtime(&t)->tm_year; }
1941 break;
1942 case 134:
1943 #line 291 "parser.y"
1944 { const time_t t = (time_t)yyvsp[-1].dval;
1945                                           yyval.dval = localtime(&t)->tm_mon+1; }
1946 break;
1947 case 135:
1948 #line 293 "parser.y"
1949 { const time_t t = (time_t)yyvsp[-1].dval;
1950                                           yyval.dval = localtime(&t)->tm_mday; }
1951 break;
1952 case 136:
1953 #line 295 "parser.y"
1954 { const time_t t = (time_t)yyvsp[-1].dval;
1955                                           yyval.dval = localtime(&t)->tm_hour; }
1956 break;
1957 case 137:
1958 #line 297 "parser.y"
1959 { const time_t t = (time_t)yyvsp[-1].dval;
1960                                           yyval.dval = localtime(&t)->tm_min; }
1961 break;
1962 case 138:
1963 #line 299 "parser.y"
1964 { const time_t t = (time_t)yyvsp[-1].dval;
1965                                           yyval.dval = localtime(&t)->tm_sec; }
1966 break;
1967 case 139:
1968 #line 301 "parser.y"
1969 { const time_t t = (time_t)yyvsp[-1].dval;
1970                                           yyval.dval = localtime(&t)->tm_yday; }
1971 break;
1972 case 140:
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); }
1977 break;
1978 case 141:
1979 #line 306 "parser.y"
1980 { yyval.dval = getuid(); }
1981 break;
1982 case 142:
1983 #line 307 "parser.y"
1984 { yyval.dval = getgid(); }
1985 break;
1986 case 143:
1987 #line 309 "parser.y"
1988 { char *a = yyvsp[-3].sval;
1989                                           yyval.dval = a ? access(a, (int)yyvsp[-1].dval) : 0;
1990                                           f_free(a); }
1991 break;
1992 #line 1993 "y.tab.c"
1993     }
1994     yyssp -= yym;
1995     yystate = *yyssp;
1996     yyvsp -= yym;
1997     yym = yylhs[yyn];
1998     if (yystate == 0 && yym == 0)
1999     {
2000 #if YYDEBUG
2001         if (yydebug)
2002             printf("%sdebug: after reduction, shifting from state 0 to\
2003  state %d\n", YYPREFIX, YYFINAL);
2004 #endif
2005         yystate = YYFINAL;
2006         *++yyssp = YYFINAL;
2007         *++yyvsp = yyval;
2008         if (yychar < 0)
2009         {
2010             if ((yychar = yylex()) < 0) yychar = 0;
2011 #if YYDEBUG
2012             if (yydebug)
2013             {
2014                 yys = 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);
2019             }
2020 #endif
2021         }
2022         if (yychar == 0) goto yyaccept;
2023         goto yyloop;
2024     }
2025     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2026             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2027         yystate = yytable[yyn];
2028     else
2029         yystate = yydgoto[yym];
2030 #if YYDEBUG
2031     if (yydebug)
2032         printf("%sdebug: after reduction, shifting from state %d \
2033 to state %d\n", YYPREFIX, *yyssp, yystate);
2034 #endif
2035     if (yyssp >= yyss + yystacksize - 1)
2036     {
2037         goto yyoverflow;
2038     }
2039     *++yyssp = yystate;
2040     *++yyvsp = yyval;
2041     goto yyloop;
2042 yyoverflow:
2043     yyerror("yacc stack overflow");
2044 yyabort:
2045     return (1);
2046 yyaccept:
2047     return (0);
2048 }