]> andersk Git - splint.git/blob - src/cgrammar.c.der
Fixed off by one bug involving arrays initialized with a block of values.
[splint.git] / src / cgrammar.c.der
1 /*
2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER:  Change bison.reset too.
4 */
5
6 /*@-allmacros@*/
7 /*@+boolint@*/
8 /*@+charint@*/
9 /*@-macroparams@*/
10 /*@-macroundef@*/
11 /*@-unreachable@*/
12 /*@-macrospec@*/
13 /*@-varuse@*/
14 /*@+ignorequals@*/
15 /*@-macrostmt@*/
16 /*@-noeffect@*/
17 /*@-shadow@*/
18 /*@-exitarg@*/
19 /*@-macroredef@*/
20 /*@-uniondef@*/
21 /*@-compdef@*/
22 /*@-matchfields@*/
23 /*@-exportlocal@*/
24 /*@-evalorderuncon@*/
25 /*@-exportheader@*/
26 /*@-typeuse@*/
27 /*@-redecl@*/
28 /*@-redef@*/
29 /*@-noparams@*/
30 /*@-ansireserved@*/
31 /*@-fielduse@*/
32 /*@-ifblock@*/
33 /*@-elseifcomplete@*/
34 /*@-whileblock@*/
35 /*@-forblock@*/
36 /*@-branchstate@*/
37 /*@-readonlytrans@*/
38 /*@-namechecks@*/
39 /*@-usedef@*/
40 /*@-systemunrecog@*/
41 /*@-dependenttrans@*/
42 /*@-unqualifiedtrans@*/
43 /*@-nullassign@*/
44 /*@-nullpass@*/
45 /*@-nullptrarith*/
46 /*@-usereleased@*/
47 /*@-declundef@*/
48
49 /*drl added 11/27/2001*/
50 /*@-bounds@*/
51
52 /*drl added 12/11/2002*/
53 /*@-type@*/
54
55 /* < end of bison.head > */
56
57 /* A Bison parser, made by GNU Bison 1.875a.  */
58
59 /* Skeleton parser for Yacc-like parsing with Bison,
60    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
61
62    This program is free software; you can redistribute it and/or modify
63    it under the terms of the GNU General Public License as published by
64    the Free Software Foundation; either version 2, or (at your option)
65    any later version.
66
67    This program is distributed in the hope that it will be useful,
68    but WITHOUT ANY WARRANTY; without even the implied warranty of
69    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
70    GNU General Public License for more details.
71
72    You should have received a copy of the GNU General Public License
73    along with this program; if not, write to the Free Software
74    Foundation, Inc., 59 Temple Place - Suite 330,
75    Boston, MA 02111-1307, USA.  */
76
77 /* As a special exception, when this file is copied by Bison into a
78    Bison output file, you may use that output file without restriction.
79    This special exception was added by the Free Software Foundation
80    in version 1.24 of Bison.  */
81
82 /* Written by Richard Stallman by simplifying the original so called
83    ``semantic'' parser.  */
84
85 /* All symbols defined below should begin with yy or YY, to avoid
86    infringing on user name space.  This should be done even for local
87    variables, as they might otherwise be expanded by user macros.
88    There are some unavoidable exceptions within include files to
89    define necessary library symbols; they are noted "INFRINGES ON
90    USER NAME SPACE" below.  */
91
92 /* Identify Bison output.  */
93 #define YYBISON 1
94
95 /* Skeleton name.  */
96 #define YYSKELETON_NAME "yacc.c"
97
98 /* Pure parsers.  */
99 #define YYPURE 0
100
101 /* Using locations.  */
102 #define YYLSP_NEEDED 0
103
104
105
106 /* Tokens.  */
107 #ifndef YYTOKENTYPE
108 # define YYTOKENTYPE
109    /* Put the tokens into the symbol table, so that GDB and other debuggers
110       know about them.  */
111    enum yytokentype {
112      BADTOK = 258,
113      SKIPTOK = 259,
114      CTOK_ELIPSIS = 260,
115      CASE = 261,
116      DEFAULT = 262,
117      CIF = 263,
118      CELSE = 264,
119      SWITCH = 265,
120      WHILE = 266,
121      DO = 267,
122      CFOR = 268,
123      GOTO = 269,
124      CONTINUE = 270,
125      BREAK = 271,
126      RETURN = 272,
127      TSEMI = 273,
128      TLBRACE = 274,
129      TRBRACE = 275,
130      TCOMMA = 276,
131      TCOLON = 277,
132      TASSIGN = 278,
133      TLPAREN = 279,
134      TRPAREN = 280,
135      TLSQBR = 281,
136      TRSQBR = 282,
137      TDOT = 283,
138      TAMPERSAND = 284,
139      TEXCL = 285,
140      TTILDE = 286,
141      TMINUS = 287,
142      TPLUS = 288,
143      TMULT = 289,
144      TDIV = 290,
145      TPERCENT = 291,
146      TLT = 292,
147      TGT = 293,
148      TCIRC = 294,
149      TBAR = 295,
150      TQUEST = 296,
151      CSIZEOF = 297,
152      CALIGNOF = 298,
153      CTYPEOF = 299,
154      ARROW_OP = 300,
155      CTYPEDEF = 301,
156      COFFSETOF = 302,
157      INC_OP = 303,
158      DEC_OP = 304,
159      LEFT_OP = 305,
160      RIGHT_OP = 306,
161      LE_OP = 307,
162      GE_OP = 308,
163      EQ_OP = 309,
164      NE_OP = 310,
165      AND_OP = 311,
166      OR_OP = 312,
167      MUL_ASSIGN = 313,
168      DIV_ASSIGN = 314,
169      MOD_ASSIGN = 315,
170      ADD_ASSIGN = 316,
171      SUB_ASSIGN = 317,
172      LEFT_ASSIGN = 318,
173      RIGHT_ASSIGN = 319,
174      AND_ASSIGN = 320,
175      XOR_ASSIGN = 321,
176      OR_ASSIGN = 322,
177      CSTRUCT = 323,
178      CUNION = 324,
179      CENUM = 325,
180      VA_ARG = 326,
181      VA_DCL = 327,
182      QWARN = 328,
183      QGLOBALS = 329,
184      QMODIFIES = 330,
185      QNOMODS = 331,
186      QCONSTANT = 332,
187      QFUNCTION = 333,
188      QITER = 334,
189      QDEFINES = 335,
190      QUSES = 336,
191      QALLOCATES = 337,
192      QSETS = 338,
193      QRELEASES = 339,
194      QPRECLAUSE = 340,
195      QPOSTCLAUSE = 341,
196      QINVARIANT = 342,
197      QALT = 343,
198      QUNDEF = 344,
199      QKILLED = 345,
200      QENDMACRO = 346,
201      LLMACRO = 347,
202      LLMACROITER = 348,
203      LLMACROEND = 349,
204      TENDMACRO = 350,
205      QDREVEALSTATE = 351,
206      QSWITCHBREAK = 352,
207      QLOOPBREAK = 353,
208      QINNERBREAK = 354,
209      QSAFEBREAK = 355,
210      QINNERCONTINUE = 356,
211      QFALLTHROUGH = 357,
212      QLINTNOTREACHED = 358,
213      QLINTFALLTHROUGH = 359,
214      QLINTFALLTHRU = 360,
215      QARGSUSED = 361,
216      QPRINTFLIKE = 362,
217      QLINTPRINTFLIKE = 363,
218      QSCANFLIKE = 364,
219      QMESSAGELIKE = 365,
220      QNOTREACHED = 366,
221      QCONST = 367,
222      QRESTRICT = 368,
223      QVOLATILE = 369,
224      QINLINE = 370,
225      QEXTENSION = 371,
226      QEXTERN = 372,
227      QSTATIC = 373,
228      QAUTO = 374,
229      QREGISTER = 375,
230      QOUT = 376,
231      QIN = 377,
232      QYIELD = 378,
233      QONLY = 379,
234      QTEMP = 380,
235      QSHARED = 381,
236      QREF = 382,
237      QUNIQUE = 383,
238      QCHECKED = 384,
239      QUNCHECKED = 385,
240      QCHECKEDSTRICT = 386,
241      QCHECKMOD = 387,
242      QKEEP = 388,
243      QKEPT = 389,
244      QPARTIAL = 390,
245      QSPECIAL = 391,
246      QOWNED = 392,
247      QDEPENDENT = 393,
248      QRETURNED = 394,
249      QEXPOSED = 395,
250      QNULL = 396,
251      QOBSERVER = 397,
252      QISNULL = 398,
253      QEXITS = 399,
254      QMAYEXIT = 400,
255      QNEVEREXIT = 401,
256      QTRUEEXIT = 402,
257      QFALSEEXIT = 403,
258      QLONG = 404,
259      QSIGNED = 405,
260      QUNSIGNED = 406,
261      QSHORT = 407,
262      QUNUSED = 408,
263      QSEF = 409,
264      QNOTNULL = 410,
265      QRELNULL = 411,
266      QABSTRACT = 412,
267      QNUMABSTRACT = 413,
268      QCONCRETE = 414,
269      QMUTABLE = 415,
270      QIMMUTABLE = 416,
271      QTRUENULL = 417,
272      QFALSENULL = 418,
273      QEXTERNAL = 419,
274      QREFCOUNTED = 420,
275      QREFS = 421,
276      QNEWREF = 422,
277      QTEMPREF = 423,
278      QKILLREF = 424,
279      QRELDEF = 425,
280      CGCHAR = 426,
281      CBOOL = 427,
282      CINT = 428,
283      CGFLOAT = 429,
284      CDOUBLE = 430,
285      CVOID = 431,
286      QANYTYPE = 432,
287      QINTEGRALTYPE = 433,
288      QUNSIGNEDINTEGRALTYPE = 434,
289      QSIGNEDINTEGRALTYPE = 435,
290      QNULLTERMINATED = 436,
291      QSETBUFFERSIZE = 437,
292      QSETSTRINGLENGTH = 438,
293      QMAXSET = 439,
294      QMAXREAD = 440,
295      QTESTINRANGE = 441,
296      TCAND = 442,
297      IDENTIFIER = 443,
298      NEW_IDENTIFIER = 444,
299      TYPE_NAME_OR_ID = 445,
300      CANNOTATION = 446,
301      CCONSTANT = 447,
302      ITER_NAME = 448,
303      ITER_ENDNAME = 449,
304      TYPE_NAME = 450,
305      METASTATE_NAME = 451
306    };
307 #endif
308 #define BADTOK 258
309 #define SKIPTOK 259
310 #define CTOK_ELIPSIS 260
311 #define CASE 261
312 #define DEFAULT 262
313 #define CIF 263
314 #define CELSE 264
315 #define SWITCH 265
316 #define WHILE 266
317 #define DO 267
318 #define CFOR 268
319 #define GOTO 269
320 #define CONTINUE 270
321 #define BREAK 271
322 #define RETURN 272
323 #define TSEMI 273
324 #define TLBRACE 274
325 #define TRBRACE 275
326 #define TCOMMA 276
327 #define TCOLON 277
328 #define TASSIGN 278
329 #define TLPAREN 279
330 #define TRPAREN 280
331 #define TLSQBR 281
332 #define TRSQBR 282
333 #define TDOT 283
334 #define TAMPERSAND 284
335 #define TEXCL 285
336 #define TTILDE 286
337 #define TMINUS 287
338 #define TPLUS 288
339 #define TMULT 289
340 #define TDIV 290
341 #define TPERCENT 291
342 #define TLT 292
343 #define TGT 293
344 #define TCIRC 294
345 #define TBAR 295
346 #define TQUEST 296
347 #define CSIZEOF 297
348 #define CALIGNOF 298
349 #define CTYPEOF 299
350 #define ARROW_OP 300
351 #define CTYPEDEF 301
352 #define COFFSETOF 302
353 #define INC_OP 303
354 #define DEC_OP 304
355 #define LEFT_OP 305
356 #define RIGHT_OP 306
357 #define LE_OP 307
358 #define GE_OP 308
359 #define EQ_OP 309
360 #define NE_OP 310
361 #define AND_OP 311
362 #define OR_OP 312
363 #define MUL_ASSIGN 313
364 #define DIV_ASSIGN 314
365 #define MOD_ASSIGN 315
366 #define ADD_ASSIGN 316
367 #define SUB_ASSIGN 317
368 #define LEFT_ASSIGN 318
369 #define RIGHT_ASSIGN 319
370 #define AND_ASSIGN 320
371 #define XOR_ASSIGN 321
372 #define OR_ASSIGN 322
373 #define CSTRUCT 323
374 #define CUNION 324
375 #define CENUM 325
376 #define VA_ARG 326
377 #define VA_DCL 327
378 #define QWARN 328
379 #define QGLOBALS 329
380 #define QMODIFIES 330
381 #define QNOMODS 331
382 #define QCONSTANT 332
383 #define QFUNCTION 333
384 #define QITER 334
385 #define QDEFINES 335
386 #define QUSES 336
387 #define QALLOCATES 337
388 #define QSETS 338
389 #define QRELEASES 339
390 #define QPRECLAUSE 340
391 #define QPOSTCLAUSE 341
392 #define QINVARIANT 342
393 #define QALT 343
394 #define QUNDEF 344
395 #define QKILLED 345
396 #define QENDMACRO 346
397 #define LLMACRO 347
398 #define LLMACROITER 348
399 #define LLMACROEND 349
400 #define TENDMACRO 350
401 #define QDREVEALSTATE 351
402 #define QSWITCHBREAK 352
403 #define QLOOPBREAK 353
404 #define QINNERBREAK 354
405 #define QSAFEBREAK 355
406 #define QINNERCONTINUE 356
407 #define QFALLTHROUGH 357
408 #define QLINTNOTREACHED 358
409 #define QLINTFALLTHROUGH 359
410 #define QLINTFALLTHRU 360
411 #define QARGSUSED 361
412 #define QPRINTFLIKE 362
413 #define QLINTPRINTFLIKE 363
414 #define QSCANFLIKE 364
415 #define QMESSAGELIKE 365
416 #define QNOTREACHED 366
417 #define QCONST 367
418 #define QRESTRICT 368
419 #define QVOLATILE 369
420 #define QINLINE 370
421 #define QEXTENSION 371
422 #define QEXTERN 372
423 #define QSTATIC 373
424 #define QAUTO 374
425 #define QREGISTER 375
426 #define QOUT 376
427 #define QIN 377
428 #define QYIELD 378
429 #define QONLY 379
430 #define QTEMP 380
431 #define QSHARED 381
432 #define QREF 382
433 #define QUNIQUE 383
434 #define QCHECKED 384
435 #define QUNCHECKED 385
436 #define QCHECKEDSTRICT 386
437 #define QCHECKMOD 387
438 #define QKEEP 388
439 #define QKEPT 389
440 #define QPARTIAL 390
441 #define QSPECIAL 391
442 #define QOWNED 392
443 #define QDEPENDENT 393
444 #define QRETURNED 394
445 #define QEXPOSED 395
446 #define QNULL 396
447 #define QOBSERVER 397
448 #define QISNULL 398
449 #define QEXITS 399
450 #define QMAYEXIT 400
451 #define QNEVEREXIT 401
452 #define QTRUEEXIT 402
453 #define QFALSEEXIT 403
454 #define QLONG 404
455 #define QSIGNED 405
456 #define QUNSIGNED 406
457 #define QSHORT 407
458 #define QUNUSED 408
459 #define QSEF 409
460 #define QNOTNULL 410
461 #define QRELNULL 411
462 #define QABSTRACT 412
463 #define QNUMABSTRACT 413
464 #define QCONCRETE 414
465 #define QMUTABLE 415
466 #define QIMMUTABLE 416
467 #define QTRUENULL 417
468 #define QFALSENULL 418
469 #define QEXTERNAL 419
470 #define QREFCOUNTED 420
471 #define QREFS 421
472 #define QNEWREF 422
473 #define QTEMPREF 423
474 #define QKILLREF 424
475 #define QRELDEF 425
476 #define CGCHAR 426
477 #define CBOOL 427
478 #define CINT 428
479 #define CGFLOAT 429
480 #define CDOUBLE 430
481 #define CVOID 431
482 #define QANYTYPE 432
483 #define QINTEGRALTYPE 433
484 #define QUNSIGNEDINTEGRALTYPE 434
485 #define QSIGNEDINTEGRALTYPE 435
486 #define QNULLTERMINATED 436
487 #define QSETBUFFERSIZE 437
488 #define QSETSTRINGLENGTH 438
489 #define QMAXSET 439
490 #define QMAXREAD 440
491 #define QTESTINRANGE 441
492 #define TCAND 442
493 #define IDENTIFIER 443
494 #define NEW_IDENTIFIER 444
495 #define TYPE_NAME_OR_ID 445
496 #define CANNOTATION 446
497 #define CCONSTANT 447
498 #define ITER_NAME 448
499 #define ITER_ENDNAME 449
500 #define TYPE_NAME 450
501 #define METASTATE_NAME 451
502
503
504
505
506 /* Copy the first part of user declarations.  */
507
508
509 /*
510 **
511 ** cgrammar.y
512 **
513 ** Yacc/Bison grammar for extended ANSI C used by Splint.
514 **
515 ** original grammar by Nate Osgood ---
516 **    hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
517 **
518 ** changes for Splint --- handle typedef names correctly
519 ** fix struct/union parsing bug (empty struct is accepted)
520 ** add productions to handle macros --- require
521 ** error correction --- main source of conflicts in grammar.
522 ** need to process initializations sequentially, L->R
523 **
524 ** production names are cryptic, so more productions fit on one line
525 **
526 ** conflicts:  87 shift/reduce, 18 reduce/reduce
527 ** most of these are due to handling macros
528 ** a few are due to handling type expressions
529 */
530
531 /*@=allmacros@*/
532
533 extern int yylex ();
534 extern void yyerror (char *);
535
536 # include "splintMacros.nf"
537 # include "basic.h"
538 # include "cscanner.h"
539 # include "cscannerHelp.h"
540 # include "cgrammar.h"
541 # include "exprChecks.h"
542
543 /*@-allmacros@*/
544 /*@-matchfields@*/
545
546 # define SHOWCSYM FALSE
547
548 /*
549 ** This is necessary, or else when the bison-generated code #include's malloc.h,
550 ** there will be a parse error.
551 **
552 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
553 ** in bison-generated files under Win32.
554 */
555
556 # ifdef WIN32
557 # undef malloc
558 # undef calloc
559 # undef realloc
560 # endif
561
562
563
564 /* Enabling traces.  */
565 #ifndef YYDEBUG
566 # define YYDEBUG 1
567 #endif
568
569 /* Enabling verbose error messages.  */
570 #ifdef YYERROR_VERBOSE
571 # undef YYERROR_VERBOSE
572 # define YYERROR_VERBOSE 1
573 #else
574 # define YYERROR_VERBOSE 0
575 #endif
576
577 #if ! defined (cgrammar_YYSTYPE) && ! defined (cgrammar_YYSTYPE_IS_DECLARED)
578
579 typedef union cgrammar_YYSTYPE {
580   lltok tok;
581   int count;
582   qual typequal;
583   qualList tquallist;
584   ctype ctyp;
585   /*@dependent@*/ sRef sr;
586   /*@only@*/ sRef osr;
587
588   /*@only@*/ functionClauseList funcclauselist;
589   /*@only@*/ functionClause funcclause;  
590   /*@only@*/ flagSpec flagspec;
591   /*@only@*/ globalsClause globsclause;
592   /*@only@*/ modifiesClause modsclause;
593   /*@only@*/ warnClause warnclause;
594   /*@only@*/ stateClause stateclause;
595   /*@only@*/ pointers pointers;
596   /*@only@*/ functionConstraint fcnconstraint; 
597
598   /*@only@*/ metaStateConstraint msconstraint;
599   /*@only@*/ metaStateSpecifier msspec;
600   /*@only@*/ metaStateExpression msexpr;
601   /*@observer@*/ metaStateInfo msinfo;
602
603   /*@only@*/ sRefList srlist;
604   /*@only@*/ globSet globset;
605   /*@only@*/ qtype qtyp;
606   /*@only@*/ cstring cname;
607   /*@observer@*/ annotationInfo annotation;
608   /*@only@*/ idDecl ntyp;
609   /*@only@*/ idDeclList ntyplist;
610   /*@only@*/ uentryList flist;
611   /*@owned@*/ uentryList entrylist;
612   /*@observer@*/ /*@dependent@*/ uentry entry;
613   /*@only@*/ uentry oentry;
614   /*@only@*/ exprNode expr;
615   /*@only@*/ enumNameList enumnamelist;
616   /*@only@*/ exprNodeList exprlist;
617   /*@only@*/ sRefSet srset; 
618   /*@only@*/ cstringList cstringlist;
619
620   /*drl
621     added 1/19/2001
622   */
623   constraint con;
624   constraintList conL;
625   constraintExpr conE;
626   /* drl */  
627 } cgrammar_YYSTYPE;
628 /* Line 191 of yacc.c.  */
629
630 # define yystype cgrammar_YYSTYPE /* obsolescent; will be withdrawn */
631 # define cgrammar_YYSTYPE_IS_DECLARED 1
632 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
633 #endif
634
635
636
637 /* Copy the second part of user declarations.  */
638
639
640 /* Line 214 of yacc.c.  */
641
642
643 #if ! defined (yyoverflow) || YYERROR_VERBOSE
644
645 /* The parser invokes alloca or malloc; define the necessary symbols.  */
646
647 # if YYSTACK_USE_ALLOCA
648 #  define YYSTACK_ALLOC alloca
649 # else
650 #  ifndef YYSTACK_USE_ALLOCA
651 #   if defined (alloca) || defined (_ALLOCA_H)
652 #    define YYSTACK_ALLOC alloca
653 #   else
654 #    ifdef __GNUC__
655 #     define YYSTACK_ALLOC __builtin_alloca
656 #    endif
657 #   endif
658 #  endif
659 # endif
660
661 # ifdef YYSTACK_ALLOC
662    /* Pacify GCC's `empty if-body' warning. */
663 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
664 # else
665 #  if defined (__STDC__) || defined (__cplusplus)
666 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
667 #   define YYSIZE_T size_t
668 #  endif
669 #  define YYSTACK_ALLOC malloc
670 #  define YYSTACK_FREE free
671 # endif
672 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
673
674
675 #if (! defined (yyoverflow) \
676      && (! defined (__cplusplus) \
677          || (cgrammar_YYSTYPE_IS_TRIVIAL)))
678
679 /* A type that is properly aligned for any stack member.  */
680 union yyalloc
681 {
682   short yyss;
683   cgrammar_YYSTYPE yyvs;
684   };
685
686 /* The size of the maximum gap between one aligned stack and the next.  */
687 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
688
689 /* The size of an array large to enough to hold all stacks, each with
690    N elements.  */
691 # define YYSTACK_BYTES(N) \
692      ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE))                                \
693       + YYSTACK_GAP_MAXIMUM)
694
695 /* Copy COUNT objects from FROM to TO.  The source and destination do
696    not overlap.  */
697 # ifndef YYCOPY
698 #  if 1 < __GNUC__
699 #   define YYCOPY(To, From, Count) \
700       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
701 #  else
702 #   define YYCOPY(To, From, Count)              \
703       do                                        \
704         {                                       \
705           register YYSIZE_T yyi;                \
706           for (yyi = 0; yyi < (Count); yyi++)   \
707             (To)[yyi] = (From)[yyi];            \
708         }                                       \
709       while (0)
710 #  endif
711 # endif
712
713 /* Relocate STACK from its old location to the new one.  The
714    local variables YYSIZE and YYSTACKSIZE give the old and new number of
715    elements in the stack, and YYPTR gives the new location of the
716    stack.  Advance YYPTR to a properly aligned location for the next
717    stack.  */
718 # define YYSTACK_RELOCATE(Stack)                                        \
719     do                                                                  \
720       {                                                                 \
721         YYSIZE_T yynewbytes;                                            \
722         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
723         Stack = &yyptr->Stack;                                          \
724         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
725         yyptr += yynewbytes / sizeof (*yyptr);                          \
726       }                                                                 \
727     while (0)
728
729 #endif
730
731 #if defined (__STDC__) || defined (__cplusplus)
732    typedef signed char yysigned_char;
733 #else
734    typedef short yysigned_char;
735 #endif
736
737 /* YYFINAL -- State number of the termination state. */
738 #define YYFINAL  262
739 /* YYLAST -- Last index in YYTABLE.  */
740 #define YYLAST   7115
741
742 /* YYNTOKENS -- Number of terminals. */
743 #define YYNTOKENS  197
744 /* YYNNTS -- Number of nonterminals. */
745 #define YYNNTS  272
746 /* YYNRULES -- Number of rules. */
747 #define YYNRULES  713
748 /* YYNRULES -- Number of states. */
749 #define YYNSTATES  1256
750
751 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
752 #define YYUNDEFTOK  2
753 #define YYMAXUTOK   451
754
755 #define YYTRANSLATE(YYX)                                                \
756   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
757
758 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
759 static const unsigned char yytranslate[] =
760 {
761        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
766        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
767        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
768        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
769        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
770        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
771        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
772        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
773        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
774        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
775        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
776        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
777        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
778        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
779        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
780        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
781        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
782        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
783        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
784        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
785        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
786        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
787        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
788       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
789       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
790       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
791       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
792       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
793       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
794       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
795       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
796       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
797      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
798      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
799      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
800      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
801      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
802      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
803      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
804      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
805      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
806      195,   196
807 };
808
809 #if YYDEBUG
810 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
811    YYRHS.  */
812 static const unsigned short yyprhs[] =
813 {
814        0,     0,     3,     4,     6,     8,    11,    14,    16,    18,
815       20,    22,    24,    26,    28,    37,    49,    50,    56,    58,
816       62,    64,    67,    69,    76,    80,    87,    88,    95,    96,
817      104,   106,   113,   117,   124,   125,   132,   133,   141,   142,
818      143,   154,   158,   162,   166,   169,   171,   175,   176,   181,
819      182,   187,   189,   193,   195,   197,   199,   203,   205,   209,
820      211,   213,   215,   217,   219,   221,   226,   232,   234,   236,
821      238,   240,   244,   249,   252,   256,   260,   264,   266,   268,
822      270,   271,   274,   275,   278,   280,   282,   284,   286,   288,
823      290,   292,   294,   296,   298,   300,   302,   305,   306,   311,
824      313,   316,   317,   321,   323,   327,   329,   331,   332,   335,
825      339,   342,   344,   348,   351,   352,   355,   357,   359,   361,
826      363,   365,   367,   369,   371,   373,   375,   377,   379,   381,
827      383,   385,   387,   391,   392,   396,   397,   398,   403,   406,
828      409,   411,   413,   415,   417,   421,   426,   429,   433,   437,
829      441,   443,   445,   447,   451,   453,   455,   459,   464,   467,
830      471,   475,   479,   480,   482,   484,   488,   490,   492,   494,
831      498,   500,   502,   503,   508,   510,   515,   519,   524,   531,
832      537,   543,   546,   549,   557,   559,   563,   565,   568,   571,
833      574,   577,   580,   583,   586,   589,   593,   595,   599,   604,
834      606,   616,   617,   621,   622,   623,   628,   631,   636,   639,
835      641,   646,   648,   652,   656,   660,   662,   666,   670,   672,
836      676,   680,   682,   686,   690,   694,   698,   700,   704,   708,
837      710,   714,   716,   720,   722,   726,   728,   729,   734,   736,
838      737,   742,   744,   745,   746,   754,   756,   760,   764,   768,
839      772,   776,   780,   784,   788,   792,   796,   800,   802,   806,
840      807,   809,   811,   813,   815,   817,   821,   822,   832,   833,
841      845,   847,   849,   852,   853,   860,   861,   870,   875,   880,
842      881,   882,   885,   887,   892,   895,   897,   902,   903,   908,
843      910,   914,   919,   922,   925,   928,   930,   933,   937,   940,
844      942,   946,   948,   950,   952,   954,   956,   959,   960,   967,
845      970,   973,   974,   981,   982,   988,   990,   992,   994,   996,
846      998,  1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,
847     1018,  1020,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,
848     1038,  1040,  1042,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
849     1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,  1076,
850     1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1097,
851     1100,  1103,  1106,  1109,  1112,  1115,  1118,  1121,  1124,  1127,
852     1130,  1133,  1136,  1139,  1142,  1145,  1148,  1151,  1154,  1157,
853     1160,  1163,  1166,  1169,  1172,  1176,  1178,  1183,  1185,  1189,
854     1192,  1195,  1198,  1199,  1201,  1202,  1203,  1204,  1217,  1218,
855     1219,  1231,  1238,  1245,  1246,  1247,  1258,  1259,  1260,  1271,
856     1277,  1283,  1288,  1293,  1294,  1296,  1298,  1301,  1307,  1311,
857     1314,  1319,  1321,  1325,  1330,  1337,  1338,  1347,  1352,  1354,
858     1358,  1361,  1363,  1368,  1370,  1372,  1375,  1378,  1380,  1383,
859     1385,  1388,  1390,  1392,  1394,  1396,  1399,  1401,  1404,  1407,
860     1411,  1413,  1417,  1419,  1423,  1425,  1427,  1431,  1432,  1435,
861     1436,  1441,  1446,  1448,  1450,  1453,  1455,  1457,  1460,  1461,
862     1463,  1469,  1472,  1476,  1480,  1485,  1489,  1494,  1499,  1505,
863     1507,  1509,  1511,  1513,  1515,  1517,  1519,  1521,  1523,  1525,
864     1530,  1532,  1534,  1536,  1539,  1542,  1550,  1557,  1560,  1561,
865     1562,  1573,  1574,  1581,  1583,  1585,  1587,  1589,  1592,  1594,
866     1596,  1598,  1600,  1602,  1604,  1606,  1610,  1612,  1613,  1617,
867     1620,  1623,  1625,  1627,  1629,  1631,  1633,  1635,  1637,  1639,
868     1641,  1643,  1647,  1649,  1651,  1653,  1656,  1659,  1660,  1663,
869     1664,  1669,  1670,  1677,  1678,  1682,  1683,  1689,  1693,  1696,
870     1700,  1701,  1702,  1703,  1704,  1705,  1707,  1710,  1713,  1717,
871     1720,  1724,  1728,  1733,  1736,  1739,  1743,  1747,  1752,  1754,
872     1757,  1759,  1762,  1764,  1768,  1770,  1775,  1777,  1780,  1782,
873     1785,  1787,  1790,  1792,  1797,  1800,  1801,  1807,  1808,  1815,
874     1820,  1825,  1826,  1827,  1838,  1840,  1841,  1846,  1848,  1850,
875     1852,  1854,  1856,  1859,  1861,  1865,  1867,  1872,  1876,  1881,
876     1888,  1894,  1900,  1903,  1906,  1908,  1911,  1914,  1917,  1920,
877     1923,  1926,  1929,  1932,  1934,  1936,  1941,  1943,  1947,  1951,
878     1955,  1957,  1961,  1965,  1967,  1971,  1975,  1977,  1981,  1985,
879     1989,  1993,  1995,  1999,  2003,  2005,  2009,  2011,  2015,  2017,
880     2021,  2023,  2027,  2029,  2033,  2035,  2036,  2037,  2045,  2047,
881     2051,  2055,  2059,  2063,  2067,  2071,  2075,  2079,  2083,  2087,
882     2091,  2093,  2094,  2096,  2099,  2107,  2110,  2113,  2121,  2128,
883     2131,  2135,  2138,  2142,  2145,  2149,  2153,  2157,  2161,  2164,
884     2168,  2169,  2171,  2172,  2174,  2176,  2178,  2180,  2182,  2184,
885     2186,  2188,  2190,  2195
886 };
887
888 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
889 static const short yyrhs[] =
890 {
891      198,     0,    -1,    -1,   199,    -1,   200,    -1,   199,   200,
892       -1,   261,   464,    -1,   201,    -1,   202,    -1,   212,    -1,
893      215,    -1,   301,    -1,    18,    -1,     1,    -1,    77,   345,
894      359,   369,   359,   464,   310,    91,    -1,    77,   345,   359,
895      369,   359,    23,   310,   317,   316,   464,    91,    -1,    -1,
896       78,   203,   204,   464,    91,    -1,   205,    -1,   345,   359,
897      205,    -1,   209,    -1,   373,   209,    -1,   467,    -1,   310,
898       24,   359,   369,   310,    25,    -1,   206,    26,    27,    -1,
899      206,    26,   310,   300,    27,   359,    -1,    -1,   206,   311,
900       24,    25,   207,   233,    -1,    -1,   206,   311,    24,   370,
901       25,   208,   233,    -1,   467,    -1,   310,    24,   359,   205,
902      310,    25,    -1,   209,    26,    27,    -1,   209,    26,   310,
903      300,    27,   359,    -1,    -1,   209,   311,    24,    25,   210,
904      234,    -1,    -1,   209,   311,    24,   370,    25,   211,   234,
905       -1,    -1,    -1,    79,   467,    24,   370,    25,   213,   234,
906      214,   464,    91,    -1,    92,   401,    95,    -1,    93,   387,
907       95,    -1,    94,   388,    95,    -1,    92,    95,    -1,   256,
908       -1,   218,    23,   221,    -1,    -1,   230,   219,    22,   222,
909       -1,    -1,     5,   220,    22,   222,    -1,   218,    -1,   218,
910       40,   221,    -1,   196,    -1,   187,    -1,    56,    -1,   225,
911      223,   224,    -1,   225,    -1,   228,   227,   228,    -1,   184,
912       -1,   185,    -1,    53,    -1,    52,    -1,    54,    -1,   229,
913       -1,   231,    24,   228,    25,    -1,    24,   228,   232,   228,
914       25,    -1,   230,    -1,   192,    -1,   466,    -1,   189,    -1,
915      230,    26,    27,    -1,   230,    26,   192,    27,    -1,    34,
916      230,    -1,    24,   230,    25,    -1,   230,    28,   467,    -1,
917      230,    45,   467,    -1,   226,    -1,    33,    -1,    32,    -1,
918       -1,   235,   233,    -1,    -1,   236,   234,    -1,   237,    -1,
919      241,    -1,   240,    -1,   323,    -1,   326,    -1,   247,    -1,
920      238,    -1,   242,    -1,   240,    -1,   324,    -1,   328,    -1,
921      248,    -1,   238,    91,    -1,    -1,    74,   239,   249,   464,
922       -1,    76,    -1,   242,    91,    -1,    -1,    75,   243,   262,
923       -1,   245,    -1,   245,    40,   244,    -1,   189,    -1,   247,
924       -1,    -1,   248,    91,    -1,    73,   244,   440,    -1,    73,
925      244,    -1,   250,    -1,   249,    21,   250,    -1,   251,   252,
926       -1,    -1,   253,   251,    -1,   466,    -1,   189,    -1,   301,
927       -1,    89,    -1,    90,    -1,   121,    -1,   122,    -1,   135,
928       -1,    80,    -1,    81,    -1,    82,    -1,    83,    -1,    84,
929       -1,    85,    -1,    86,    -1,   369,    -1,   345,   359,   369,
930       -1,    -1,    19,   258,   418,    -1,    -1,    -1,   259,   422,
931      260,   411,    -1,   216,   257,    -1,   265,   464,    -1,   464,
932       -1,   466,    -1,   189,    -1,   190,    -1,   263,    26,    27,
933       -1,   263,    26,   264,    27,    -1,    34,   263,    -1,    24,
934      263,    25,    -1,   263,    28,   467,    -1,   263,    45,   467,
935       -1,   263,    -1,   440,    -1,   263,    -1,   265,    21,   263,
936       -1,   466,    -1,   189,    -1,   266,    26,    27,    -1,   266,
937       26,   264,    27,    -1,    34,   266,    -1,    24,   266,    25,
938       -1,   266,    28,   467,    -1,   266,    45,   467,    -1,    -1,
939      268,    -1,   266,    -1,   268,    21,   266,    -1,   466,    -1,
940      189,    -1,   440,    -1,    24,   298,    25,    -1,   190,    -1,
941      116,    -1,    -1,    24,   270,   411,    25,    -1,   269,    -1,
942      271,    26,   298,    27,    -1,   271,    24,    25,    -1,   271,
943       24,   272,    25,    -1,    71,    24,   297,    21,   381,    25,
944       -1,   271,   359,    28,   467,   310,    -1,   271,   359,    45,
945      467,   310,    -1,   271,    48,    -1,   271,    49,    -1,    24,
946      381,    25,    19,   423,   465,    20,    -1,   297,    -1,   272,
947       21,   297,    -1,   271,    -1,    48,   273,    -1,    49,   273,
948       -1,    29,   281,    -1,    34,   281,    -1,    33,   281,    -1,
949       32,   281,    -1,    31,   281,    -1,    30,   281,    -1,   278,
950      276,   279,    -1,   275,    -1,   274,    28,   467,    -1,   274,
951       26,   298,    27,    -1,   467,    -1,    47,   310,    24,   381,
952      359,    21,   274,    25,   310,    -1,    -1,   310,   277,   280,
953       -1,    -1,    -1,    42,    24,   381,    25,    -1,    42,   273,
954       -1,    43,    24,   381,    25,    -1,    43,   273,    -1,   273,
955       -1,    24,   381,    25,   281,    -1,   281,    -1,   282,    34,
956      281,    -1,   282,    35,   281,    -1,   282,    36,   281,    -1,
957      282,    -1,   283,    33,   282,    -1,   283,    32,   282,    -1,
958      283,    -1,   284,    50,   283,    -1,   284,    51,   283,    -1,
959      284,    -1,   285,    37,   284,    -1,   285,    38,   284,    -1,
960      285,    52,   284,    -1,   285,    53,   284,    -1,   285,    -1,
961      286,    54,   285,    -1,   286,    55,   285,    -1,   286,    -1,
962      287,    29,   286,    -1,   287,    -1,   288,    39,   287,    -1,
963      288,    -1,   289,    40,   288,    -1,   289,    -1,    -1,   290,
964       56,   291,   289,    -1,   290,    -1,    -1,   292,    57,   293,
965      290,    -1,   292,    -1,    -1,    -1,   292,    41,   295,   298,
966       22,   296,   294,    -1,   294,    -1,   273,    23,   297,    -1,
967      273,    58,   297,    -1,   273,    59,   297,    -1,   273,    60,
968      297,    -1,   273,    61,   297,    -1,   273,    62,   297,    -1,
969      273,    63,   297,    -1,   273,    64,   297,    -1,   273,    65,
970      297,    -1,   273,    66,   297,    -1,   273,    67,   297,    -1,
971      297,    -1,   298,    21,   297,    -1,    -1,   298,    -1,   294,
972       -1,   302,    -1,    72,    -1,   308,    -1,   345,   310,    18,
973       -1,    -1,   345,   359,   369,   359,   303,   310,   316,    18,
974      310,    -1,    -1,   345,   359,   369,   359,    23,   304,   310,
975      317,   316,    18,   310,    -1,   306,    -1,   195,    -1,   369,
976      359,    -1,    -1,   369,   359,    23,   307,   310,   317,    -1,
977       -1,    46,   345,   309,   359,   314,   310,   246,    18,    -1,
978       46,   345,   310,    18,    -1,    46,   312,   310,    18,    -1,
979       -1,    -1,   313,   310,    -1,   306,    -1,   312,    21,   359,
980      306,    -1,   315,   310,    -1,   305,    -1,   314,    21,   359,
981      305,    -1,    -1,   316,    21,   359,   306,    -1,   297,    -1,
982       19,   321,    20,    -1,    19,   321,    21,    20,    -1,   318,
983      317,    -1,   319,    23,    -1,   467,    22,    -1,   320,    -1,
984      319,   320,    -1,    26,   300,    27,    -1,    28,   467,    -1,
985      317,    -1,   321,    21,   317,    -1,   117,    -1,   115,    -1,
986      118,    -1,   119,    -1,   120,    -1,   324,    91,    -1,    -1,
987      254,   359,   325,   268,   464,   310,    -1,   328,    91,    -1,
988      255,   359,    -1,    -1,   327,   334,   329,   267,   464,   310,
989       -1,    -1,   327,   330,   331,   464,   310,    -1,   224,    -1,
990      217,    -1,   144,    -1,   145,    -1,   147,    -1,   148,    -1,
991      146,    -1,   129,    -1,   132,    -1,   130,    -1,   131,    -1,
992      137,    -1,   138,    -1,   123,    -1,   125,    -1,   124,    -1,
993      133,    -1,   134,    -1,   126,    -1,   128,    -1,   141,    -1,
994      143,    -1,   156,    -1,   155,    -1,   140,    -1,   142,    -1,
995      181,    -1,   191,    -1,   139,    -1,   154,    -1,   153,    -1,
996      164,    -1,   162,    -1,   163,    -1,   157,    -1,   158,    -1,
997      159,    -1,   160,    -1,   161,    -1,   165,    -1,   166,    -1,
998      169,    -1,   170,    -1,   167,    -1,   168,    -1,   152,    -1,
999      149,    -1,   150,    -1,   151,    -1,   121,    -1,   122,    -1,
1000      135,    -1,   136,    -1,   112,   310,    -1,   114,   310,    -1,
1001      113,   310,    -1,   341,   310,    -1,   334,   310,    -1,   332,
1002      310,    -1,   335,   310,    -1,   333,   310,    -1,   337,   310,
1003       -1,   336,   310,    -1,   338,   310,    -1,   339,   310,    -1,
1004      171,   359,    -1,   173,   359,    -1,   172,   359,    -1,   174,
1005      359,    -1,   175,   359,    -1,   176,   359,    -1,   177,   359,
1006       -1,   178,   359,    -1,   179,   359,    -1,   180,   359,    -1,
1007      468,   359,    -1,   350,   359,    -1,   364,   359,    -1,   340,
1008      359,    -1,   310,   345,   310,    -1,   347,    -1,   347,    88,
1009      346,    91,    -1,   381,    -1,   381,    21,   346,    -1,   322,
1010      348,    -1,   342,   348,    -1,   343,   348,    -1,    -1,   345,
1011       -1,    -1,    -1,    -1,   359,    68,   467,   310,    19,   351,
1012      415,   360,   416,   352,    20,   349,    -1,    -1,    -1,   359,
1013       69,   467,   310,    19,   353,   415,   360,   416,   354,    20,
1014       -1,   359,    68,   467,   310,    19,    20,    -1,   359,    69,
1015      467,   310,    19,    20,    -1,    -1,    -1,   359,    68,   310,
1016       19,   355,   415,   360,   416,   356,    20,    -1,    -1,    -1,
1017      359,    69,   310,    19,   357,   415,   360,   416,   358,    20,
1018       -1,   359,    68,   310,    19,    20,    -1,   359,    69,   310,
1019       19,    20,    -1,   359,    68,   467,   359,    -1,   359,    69,
1020      467,   359,    -1,    -1,   361,    -1,   215,    -1,   360,   361,
1021       -1,   345,   359,   362,   310,    18,    -1,   345,   310,    18,
1022       -1,   363,   359,    -1,   362,    21,   363,   359,    -1,   369,
1023       -1,    22,   310,   300,    -1,   369,    22,   310,   300,    -1,
1024      359,    70,    19,   366,    20,   310,    -1,    -1,   359,    70,
1025      467,    19,   365,   366,    20,   310,    -1,   359,    70,   467,
1026      310,    -1,   367,    -1,   366,    21,   367,    -1,   366,    21,
1027       -1,   467,    -1,   467,    23,   310,   300,    -1,   206,    -1,
1028      383,    -1,   373,   195,    -1,   373,   368,    -1,   206,    -1,
1029      373,   206,    -1,   376,    -1,   359,   374,    -1,   112,    -1,
1030      113,    -1,   114,    -1,   371,    -1,   372,   371,    -1,    34,
1031       -1,    34,   372,    -1,    34,   373,    -1,    34,   372,   373,
1032       -1,   375,    -1,   375,    21,     5,    -1,   467,    -1,   375,
1033       21,   467,    -1,     5,    -1,   377,    -1,   377,    21,     5,
1034       -1,    -1,   378,   380,    -1,    -1,   377,    21,   379,   380,
1035       -1,   310,   345,   368,   310,    -1,   467,    -1,   344,    -1,
1036      344,   382,    -1,   373,    -1,   384,    -1,   373,   384,    -1,
1037       -1,   384,    -1,   310,    24,   359,   382,    25,    -1,    26,
1038       27,    -1,    26,   300,    27,    -1,   384,    26,    27,    -1,
1039      384,    26,   300,    27,    -1,   310,    24,    25,    -1,   310,
1040       24,   376,    25,    -1,   384,   310,    24,    25,    -1,   384,
1041      310,    24,   376,    25,    -1,   403,    -1,   405,    -1,   408,
1042       -1,   411,    -1,   426,    -1,   429,    -1,   461,    -1,   434,
1043       -1,   463,    -1,   386,    -1,    96,    24,   298,    25,    -1,
1044      389,    -1,   387,    -1,   396,    -1,   389,   396,    -1,   433,
1045      389,    -1,   460,   402,    11,    24,   298,    25,    18,    -1,
1046      460,   402,    11,    24,   298,    25,    -1,   391,   396,    -1,
1047       -1,    -1,    13,    24,   299,    18,   299,    18,   392,   299,
1048      393,    25,    -1,    -1,   193,   413,    24,   395,   437,    25,
1049       -1,   194,    -1,   403,    -1,   405,    -1,   408,    -1,   399,
1050      422,    -1,   399,    -1,   400,    -1,   426,    -1,   397,    -1,
1051      390,    -1,   394,    -1,   463,    -1,    24,   396,    25,    -1,
1052        1,    -1,    -1,   428,   398,   396,    -1,   413,    19,    -1,
1053      417,    20,    -1,   402,    -1,   421,    -1,   403,    -1,   405,
1054       -1,   408,    -1,   412,    -1,   427,    -1,   429,    -1,   434,
1055       -1,   462,    -1,    24,   402,    25,    -1,   463,    -1,   386,
1056       -1,     1,    -1,   467,    22,    -1,   111,   385,    -1,    -1,
1057      102,   404,    -1,    -1,     6,   300,   406,    22,    -1,    -1,
1058      102,   404,     6,   300,   407,    22,    -1,    -1,     7,   409,
1059       22,    -1,    -1,   102,   404,     7,   410,    22,    -1,    24,
1060      411,    25,    -1,   413,   419,    -1,   413,   420,   414,    -1,
1061       -1,    -1,    -1,    -1,    -1,    20,    -1,   111,    20,    -1,
1062      425,    20,    -1,   425,   111,    20,    -1,   422,    20,    -1,
1063      422,   111,    20,    -1,   422,   425,    20,    -1,   422,   425,
1064      111,    20,    -1,    19,   418,    -1,    19,    20,    -1,    19,
1065      421,    20,    -1,    19,   422,    20,    -1,    19,   422,   425,
1066       20,    -1,   402,    -1,   421,   402,    -1,   301,    -1,   422,
1067      301,    -1,   424,    -1,   423,    21,   424,    -1,   297,    -1,
1068       19,   423,   465,    20,    -1,   385,    -1,   425,   385,    -1,
1069       18,    -1,   298,    18,    -1,    18,    -1,   298,    18,    -1,
1070      298,    -1,     8,    24,   298,    25,    -1,   428,   385,    -1,
1071       -1,   428,   385,     9,   430,   385,    -1,    -1,    10,    24,
1072      298,   431,    25,   385,    -1,    11,    24,   298,    25,    -1,
1073       11,    24,   298,    25,    -1,    -1,    -1,   193,   435,   413,
1074       24,   436,   437,    25,   411,   459,   414,    -1,   439,    -1,
1075       -1,   437,   438,    21,   439,    -1,   458,    -1,   466,    -1,
1076      190,    -1,   189,    -1,   192,    -1,   440,   192,    -1,   440,
1077       -1,    24,   298,    25,    -1,   441,    -1,   271,    26,   298,
1078       27,    -1,   271,    24,    25,    -1,   271,    24,   272,    25,
1079       -1,    71,    24,   297,    21,   381,    25,    -1,   271,   359,
1080       28,   467,   310,    -1,   271,   359,    45,   467,   310,    -1,
1081      271,    48,    -1,   271,    49,    -1,   442,    -1,    48,   273,
1082       -1,    49,   273,    -1,    29,   281,    -1,    34,   281,    -1,
1083       33,   281,    -1,    32,   281,    -1,    31,   281,    -1,    30,
1084      281,    -1,   276,    -1,   443,    -1,    24,   381,    25,   281,
1085       -1,   444,    -1,   282,    34,   281,    -1,   282,    35,   281,
1086       -1,   282,    36,   281,    -1,   445,    -1,   283,    33,   282,
1087       -1,   283,    32,   282,    -1,   446,    -1,   284,    50,   283,
1088       -1,   284,    51,   283,    -1,   447,    -1,   285,    37,   284,
1089       -1,   285,    38,   284,    -1,   285,    52,   284,    -1,   285,
1090       53,   284,    -1,   448,    -1,   286,    54,   285,    -1,   286,
1091       55,   285,    -1,   449,    -1,   287,    29,   286,    -1,   450,
1092       -1,   288,    39,   287,    -1,   451,    -1,   289,    40,   288,
1093       -1,   452,    -1,   290,    56,   289,    -1,   453,    -1,   292,
1094       57,   290,    -1,   454,    -1,    -1,    -1,   292,    41,   456,
1095      298,    22,   457,   294,    -1,   455,    -1,   273,    23,   297,
1096       -1,   273,    58,   297,    -1,   273,    59,   297,    -1,   273,
1097       60,   297,    -1,   273,    61,   297,    -1,   273,    62,   297,
1098       -1,   273,    63,   297,    -1,   273,    64,   297,    -1,   273,
1099       65,   297,    -1,   273,    66,   297,    -1,   273,    67,   297,
1100       -1,   194,    -1,    -1,    12,    -1,   432,   385,    -1,   460,
1101      385,    11,    24,   298,    25,    18,    -1,   391,   385,    -1,
1102      432,   402,    -1,   460,   402,    11,    24,   298,    25,    18,
1103       -1,   460,   402,    11,    24,   298,    25,    -1,   391,   402,
1104       -1,    14,   467,    18,    -1,    15,    18,    -1,   101,    15,
1105       18,    -1,    16,    18,    -1,    97,    16,    18,    -1,    98,
1106       16,    18,    -1,    99,    16,    18,    -1,   100,    16,    18,
1107       -1,    17,    18,    -1,    17,   298,    18,    -1,    -1,    18,
1108       -1,    -1,    21,    -1,   188,    -1,   189,    -1,   193,    -1,
1109      194,    -1,   466,    -1,   190,    -1,   195,    -1,   190,    -1,
1110       44,    24,   298,    25,    -1,    44,    24,   381,    25,    -1
1111 };
1112
1113 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1114 static const unsigned short yyrline[] =
1115 {
1116        0,   327,   327,   329,   333,   334,   338,   339,   340,   341,
1117      342,   343,   344,   345,   349,   351,   356,   356,   365,   371,
1118      376,   377,   382,   383,   385,   387,   405,   404,   436,   435,
1119      465,   466,   468,   472,   490,   489,   502,   501,   516,   517,
1120      515,   524,   525,   526,   527,   531,   535,   540,   540,   545,
1121      545,   553,   554,   558,   564,   565,   569,   570,   574,   580,
1122      581,   585,   586,   587,   591,   592,   593,   599,   600,   604,
1123      606,   608,   610,   619,   621,   623,   625,   642,   646,   647,
1124      654,   655,   665,   666,   671,   672,   673,   674,   675,   676,
1125      680,   681,   682,   683,   684,   685,   689,   693,   693,   702,
1126      706,   711,   710,   725,   727,   732,   736,   737,   741,   745,
1127      751,   756,   757,   761,   765,   766,   770,   771,   772,   776,
1128      777,   778,   779,   780,   784,   785,   786,   787,   788,   792,
1129      793,   797,   804,   809,   809,   815,   816,   815,   826,   837,
1130      838,   842,   843,   844,   845,   846,   847,   848,   849,   850,
1131      854,   855,   860,   861,   865,   867,   869,   870,   871,   872,
1132      873,   875,   880,   881,   885,   891,   904,   905,   906,   907,
1133      908,   909,   910,   910,   916,   917,   918,   919,   920,   921,
1134      922,   923,   924,   925,   930,   931,   935,   936,   937,   938,
1135      939,   940,   941,   942,   943,   944,   945,   949,   950,   952,
1136      956,   962,   962,   966,   969,   973,   974,   975,   976,   982,
1137      983,   988,   989,   990,   991,   995,   996,   997,  1001,  1002,
1138     1003,  1007,  1008,  1009,  1010,  1011,  1015,  1016,  1017,  1021,
1139     1022,  1026,  1027,  1031,  1032,  1036,  1038,  1037,  1049,  1051,
1140     1050,  1063,  1064,  1065,  1064,  1070,  1071,  1072,  1073,  1074,
1141     1075,  1076,  1077,  1078,  1079,  1080,  1081,  1085,  1086,  1090,
1142     1091,  1095,  1101,  1102,  1103,  1107,  1122,  1121,  1133,  1132,
1143     1141,  1142,  1146,  1151,  1151,  1156,  1156,  1159,  1160,  1164,
1144     1168,  1172,  1176,  1177,  1181,  1185,  1186,  1190,  1191,  1195,
1145     1196,  1197,  1198,  1206,  1207,  1212,  1213,  1217,  1218,  1222,
1146     1224,  1234,  1235,  1236,  1237,  1238,  1242,  1247,  1246,  1262,
1147     1266,  1271,  1270,  1285,  1284,  1316,  1317,  1321,  1322,  1323,
1148     1324,  1325,  1329,  1330,  1331,  1332,  1336,  1337,  1338,  1339,
1149     1340,  1341,  1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,
1150     1350,  1351,  1352,  1356,  1357,  1361,  1362,  1366,  1367,  1371,
1151     1372,  1373,  1374,  1375,  1379,  1380,  1381,  1382,  1383,  1384,
1152     1388,  1389,  1390,  1391,  1395,  1396,  1397,  1398,  1402,  1403,
1153     1404,  1405,  1406,  1407,  1408,  1409,  1410,  1411,  1412,  1413,
1154     1421,  1422,  1423,  1424,  1425,  1426,  1427,  1428,  1429,  1430,
1155     1431,  1432,  1433,  1434,  1438,  1443,  1444,  1449,  1450,  1455,
1156     1456,  1457,  1461,  1462,  1466,  1473,  1475,  1473,  1479,  1481,
1157     1479,  1484,  1486,  1488,  1490,  1488,  1493,  1495,  1493,  1498,
1158     1500,  1502,  1503,  1507,  1511,  1512,  1513,  1517,  1519,  1524,
1159     1526,  1531,  1532,  1533,  1538,  1540,  1540,  1542,  1546,  1548,
1160     1550,  1554,  1559,  1567,  1568,  1569,  1575,  1580,  1581,  1586,
1161     1587,  1591,  1592,  1593,  1597,  1598,  1602,  1603,  1604,  1605,
1162     1609,  1610,  1614,  1615,  1619,  1620,  1621,  1625,  1625,  1626,
1163     1626,  1631,  1643,  1660,  1661,  1665,  1666,  1667,  1671,  1672,
1164     1676,  1678,  1679,  1681,  1682,  1684,  1686,  1688,  1690,  1697,
1165     1698,  1699,  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1710,
1166     1714,  1718,  1722,  1723,  1728,  1730,  1732,  1734,  1740,  1740,
1167     1739,  1748,  1747,  1751,  1755,  1756,  1757,  1758,  1759,  1760,
1168     1761,  1762,  1763,  1764,  1765,  1766,  1767,  1771,  1771,  1778,
1169     1782,  1786,  1787,  1791,  1792,  1793,  1794,  1795,  1796,  1797,
1170     1798,  1799,  1800,  1801,  1802,  1806,  1807,  1815,  1816,  1823,
1171     1823,  1825,  1825,  1830,  1830,  1832,  1832,  1837,  1838,  1843,
1172     1847,  1851,  1855,  1859,  1863,  1867,  1868,  1869,  1870,  1872,
1173     1873,  1875,  1877,  1884,  1889,  1891,  1893,  1895,  1900,  1901,
1174     1905,  1906,  1910,  1911,  1915,  1916,  1920,  1921,  1925,  1926,
1175     1930,  1931,  1932,  1936,  1950,  1955,  1955,  1960,  1960,  1965,
1176     1971,  1975,  1976,  1975,  1986,  1987,  1987,  1992,  1993,  1994,
1177     2005,  2013,  2014,  2018,  2019,  2023,  2024,  2025,  2026,  2027,
1178     2029,  2030,  2031,  2032,  2036,  2037,  2038,  2039,  2040,  2041,
1179     2042,  2043,  2044,  2045,  2049,  2050,  2054,  2055,  2056,  2057,
1180     2061,  2062,  2063,  2067,  2068,  2069,  2073,  2074,  2075,  2076,
1181     2077,  2081,  2082,  2083,  2087,  2088,  2092,  2093,  2097,  2098,
1182     2102,  2103,  2107,  2108,  2112,  2113,  2114,  2113,  2119,  2120,
1183     2121,  2122,  2123,  2124,  2125,  2126,  2127,  2128,  2129,  2130,
1184     2134,  2135,  2139,  2143,  2145,  2147,  2152,  2153,  2155,  2157,
1185     2161,  2162,  2163,  2165,  2166,  2167,  2168,  2169,  2170,  2171,
1186     2174,  2176,  2179,  2181,  2185,  2189,  2190,  2191,  2192,  2193,
1187     2197,  2198,  2199,  2200
1188 };
1189 #endif
1190
1191 #if YYDEBUG || YYERROR_VERBOSE
1192 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1193    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1194 static const char *const yytname[] =
1195 {
1196   "$end", "error", "$undefined", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", 
1197   "CASE", "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", 
1198   "GOTO", "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", 
1199   "TCOMMA", "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", 
1200   "TDOT", "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", 
1201   "TDIV", "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF", 
1202   "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP", 
1203   "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", 
1204   "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", 
1205   "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", 
1206   "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG", 
1207   "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT", 
1208   "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS", 
1209   "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT", 
1210   "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER", 
1211   "LLMACROEND", "TENDMACRO", "QDREVEALSTATE", "QSWITCHBREAK", 
1212   "QLOOPBREAK", "QINNERBREAK", "QSAFEBREAK", "QINNERCONTINUE", 
1213   "QFALLTHROUGH", "QLINTNOTREACHED", "QLINTFALLTHROUGH", "QLINTFALLTHRU", 
1214   "QARGSUSED", "QPRINTFLIKE", "QLINTPRINTFLIKE", "QSCANFLIKE", 
1215   "QMESSAGELIKE", "QNOTREACHED", "QCONST", "QRESTRICT", "QVOLATILE", 
1216   "QINLINE", "QEXTENSION", "QEXTERN", "QSTATIC", "QAUTO", "QREGISTER", 
1217   "QOUT", "QIN", "QYIELD", "QONLY", "QTEMP", "QSHARED", "QREF", "QUNIQUE", 
1218   "QCHECKED", "QUNCHECKED", "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", 
1219   "QKEPT", "QPARTIAL", "QSPECIAL", "QOWNED", "QDEPENDENT", "QRETURNED", 
1220   "QEXPOSED", "QNULL", "QOBSERVER", "QISNULL", "QEXITS", "QMAYEXIT", 
1221   "QNEVEREXIT", "QTRUEEXIT", "QFALSEEXIT", "QLONG", "QSIGNED", 
1222   "QUNSIGNED", "QSHORT", "QUNUSED", "QSEF", "QNOTNULL", "QRELNULL", 
1223   "QABSTRACT", "QNUMABSTRACT", "QCONCRETE", "QMUTABLE", "QIMMUTABLE", 
1224   "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED", "QREFS", 
1225   "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR", "CBOOL", "CINT", 
1226   "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE", "QINTEGRALTYPE", 
1227   "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE", "QNULLTERMINATED", 
1228   "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET", "QMAXREAD", 
1229   "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER", 
1230   "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME", 
1231   "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "$accept", "file", 
1232   "externalDefs", "externalDef", "constantDecl", "fcnDecl", "@1", 
1233   "plainFcn", "plainNamedDecl", "namedDeclBase", "@2", "@3", 
1234   "plainNamedDeclBase", "@4", "@5", "iterDecl", "@6", "@7", "macroDef", 
1235   "fcnDefHdr", "metaStateConstraint", "metaStateSpecifier", "@8", "@9", 
1236   "metaStateExpression", "metaStateName", "constraintSeperator", 
1237   "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp", 
1238   "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr", 
1239   "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain", 
1240   "functionClause", "functionClausePlain", "globalsClause", 
1241   "globalsClausePlain", "@10", "nomodsClause", "modifiesClause", 
1242   "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause", 
1243   "warnClause", "warnClausePlain", "globIdList", "globIdListExpr", 
1244   "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag", 
1245   "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies", 
1246   "modListExpr", "mExpr", "modList", "specClauseListExpr", 
1247   "optSpecClauseList", "specClauseList", "primaryExpr", "@15", 
1248   "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator", 
1249   "offsetofExpr", "sizeofExpr", "@16", "processSizeof", 
1250   "endprocessSizeof", "sizeofExprAux", "castExpr", "timesExpr", 
1251   "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr", "bitandExpr", 
1252   "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18", 
1253   "conditionalExpr", "@19", "@20", "assignExpr", "expr", "optExpr", 
1254   "constantExpr", "initializer", "instanceDecl", "@21", "@22", 
1255   "namedInitializerType", "namedInitializer", "@23", "typeDecl", "@24", 
1256   "IsType", "PushType", "namedInitializerList", "namedInitializerListAux", 
1257   "namedInitializerTypeList", "namedInitializerTypeListAux", 
1258   "optDeclarators", "init", "designation", "designatorList", "designator", 
1259   "initList", "storageSpecifier", "stateClause", "stateClausePlain", 
1260   "@25", "conditionClause", "startConditionClause", 
1261   "conditionClausePlain", "@26", "@27", "functionConstraint", 
1262   "exitsQualifier", "checkQualifier", "stateQualifier", "paramQualifier", 
1263   "visibilityQualifier", "returnQualifier", "typedefQualifier", 
1264   "refcountQualifier", "typeModifier", "definedQualifier", 
1265   "typeQualifier", "typeSpecifier", "completeType", 
1266   "completeTypeSpecifier", "altType", "completeTypeSpecifierAux", 
1267   "optCompleteType", "optStructInvariant", "suSpc", "@28", "@29", "@30", 
1268   "@31", "@32", "@33", "@34", "@35", "NotType", "structDeclList", 
1269   "structDecl", "structNamedDeclList", "structNamedDecl", "enumSpc", 
1270   "@36", "enumeratorList", "enumerator", "optNamedDecl", "namedDecl", 
1271   "genericParamList", "innerMods", "innerModsList", "pointers", 
1272   "paramIdList", "idList", "paramTypeList", "paramList", "@37", "@38", 
1273   "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase", 
1274   "abstractDeclBase", "stmt", "debugStmt", "iterBody", "endBody", 
1275   "iterDefStmtList", "iterDefIterationStmt", "forPred", "@39", "@40", 
1276   "partialIterStmt", "@41", "iterDefStmt", "iterSelectionStmt", "@42", 
1277   "openScope", "closeScope", "macroBody", "stmtErr", "labeledStmt", 
1278   "optExtraFallThroughs", "caseStmt", "@43", "@44", "defaultStmt", "@45", 
1279   "@46", "compoundStmt", "compoundStmtErr", "CreateInnerScope", 
1280   "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope", 
1281   "DeleteInnerScopeSafe", "compoundStmtRest", "compoundStmtAux", 
1282   "compoundStmtAuxErr", "stmtListErr", "initializerList", 
1283   "typeInitializerList", "typeInitializer", "stmtList", "expressionStmt", 
1284   "expressionStmtErr", "ifPred", "selectionStmt", "@47", "@48", 
1285   "whilePred", "iterWhilePred", "iterStmt", "@49", "@50", "iterArgList", 
1286   "@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr", 
1287   "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr", 
1288   "plusIterExpr", "shiftIterExpr", "relationalIterExpr", 
1289   "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr", 
1290   "andIterExpr", "orIterExpr", "conditionalIterExpr", "@52", "@53", 
1291   "assignIterExpr", "endIter", "doHeader", "iterationStmt", 
1292   "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId", 
1293   "typeName", 0
1294 };
1295 #endif
1296
1297 # ifdef YYPRINT
1298 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1299    token YYLEX-NUM.  */
1300 static const unsigned short yytoknum[] =
1301 {
1302        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1303      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1304      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1305      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1306      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1307      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1308      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1309      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1310      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1311      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1312      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1313      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1314      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1315      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1316      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1317      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1318      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1319      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1320      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1321      445,   446,   447,   448,   449,   450,   451
1322 };
1323 # endif
1324
1325 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1326 static const unsigned short yyr1[] =
1327 {
1328        0,   197,   198,   198,   199,   199,   200,   200,   200,   200,
1329      200,   200,   200,   200,   201,   201,   203,   202,   204,   204,
1330      205,   205,   206,   206,   206,   206,   207,   206,   208,   206,
1331      209,   209,   209,   209,   210,   209,   211,   209,   213,   214,
1332      212,   215,   215,   215,   215,   216,   217,   219,   218,   220,
1333      218,   221,   221,   222,   223,   223,   224,   224,   225,   226,
1334      226,   227,   227,   227,   228,   228,   228,   229,   229,   230,
1335      230,   230,   230,   230,   230,   230,   230,   231,   232,   232,
1336      233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
1337      236,   236,   236,   236,   236,   236,   237,   239,   238,   240,
1338      241,   243,   242,   244,   244,   245,   246,   246,   247,   248,
1339      248,   249,   249,   250,   251,   251,   252,   252,   252,   253,
1340      253,   253,   253,   253,   254,   254,   254,   254,   254,   255,
1341      255,   256,   256,   258,   257,   259,   260,   257,   261,   262,
1342      262,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1343      264,   264,   265,   265,   266,   266,   266,   266,   266,   266,
1344      266,   266,   267,   267,   268,   268,   269,   269,   269,   269,
1345      269,   269,   270,   269,   271,   271,   271,   271,   271,   271,
1346      271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1347      273,   273,   273,   273,   273,   273,   273,   274,   274,   274,
1348      275,   277,   276,   278,   279,   280,   280,   280,   280,   281,
1349      281,   282,   282,   282,   282,   283,   283,   283,   284,   284,
1350      284,   285,   285,   285,   285,   285,   286,   286,   286,   287,
1351      287,   288,   288,   289,   289,   290,   291,   290,   292,   293,
1352      292,   294,   295,   296,   294,   297,   297,   297,   297,   297,
1353      297,   297,   297,   297,   297,   297,   297,   298,   298,   299,
1354      299,   300,   301,   301,   301,   302,   303,   302,   304,   302,
1355      305,   305,   306,   307,   306,   309,   308,   308,   308,   310,
1356      311,   312,   313,   313,   314,   315,   315,   316,   316,   317,
1357      317,   317,   317,   318,   318,   319,   319,   320,   320,   321,
1358      321,   322,   322,   322,   322,   322,   323,   325,   324,   326,
1359      327,   329,   328,   330,   328,   331,   331,   332,   332,   332,
1360      332,   332,   333,   333,   333,   333,   334,   334,   334,   334,
1361      334,   334,   334,   334,   334,   334,   334,   334,   334,   334,
1362      334,   334,   334,   335,   335,   336,   336,   337,   337,   338,
1363      338,   338,   338,   338,   339,   339,   339,   339,   339,   339,
1364      340,   340,   340,   340,   341,   341,   341,   341,   342,   342,
1365      342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
1366      343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
1367      343,   343,   343,   343,   344,   345,   345,   346,   346,   347,
1368      347,   347,   348,   348,   349,   351,   352,   350,   353,   354,
1369      350,   350,   350,   355,   356,   350,   357,   358,   350,   350,
1370      350,   350,   350,   359,   360,   360,   360,   361,   361,   362,
1371      362,   363,   363,   363,   364,   365,   364,   364,   366,   366,
1372      366,   367,   367,   368,   368,   368,   368,   369,   369,   370,
1373      370,   371,   371,   371,   372,   372,   373,   373,   373,   373,
1374      374,   374,   375,   375,   376,   376,   376,   378,   377,   379,
1375      377,   380,   380,   381,   381,   382,   382,   382,   383,   383,
1376      384,   384,   384,   384,   384,   384,   384,   384,   384,   385,
1377      385,   385,   385,   385,   385,   385,   385,   385,   385,   386,
1378      387,   388,   389,   389,   390,   390,   390,   390,   392,   393,
1379      391,   395,   394,   394,   396,   396,   396,   396,   396,   396,
1380      396,   396,   396,   396,   396,   396,   396,   398,   397,   399,
1381      400,   401,   401,   402,   402,   402,   402,   402,   402,   402,
1382      402,   402,   402,   402,   402,   403,   403,   404,   404,   406,
1383      405,   407,   405,   409,   408,   410,   408,   411,   411,   412,
1384      413,   414,   415,   416,   417,   418,   418,   418,   418,   418,
1385      418,   418,   418,   419,   420,   420,   420,   420,   421,   421,
1386      422,   422,   423,   423,   424,   424,   425,   425,   426,   426,
1387      427,   427,   427,   428,   429,   430,   429,   431,   429,   432,
1388      433,   435,   436,   434,   437,   438,   437,   439,   439,   439,
1389      439,   440,   440,   441,   441,   442,   442,   442,   442,   442,
1390      442,   442,   442,   442,   443,   443,   443,   443,   443,   443,
1391      443,   443,   443,   443,   444,   444,   445,   445,   445,   445,
1392      446,   446,   446,   447,   447,   447,   448,   448,   448,   448,
1393      448,   449,   449,   449,   450,   450,   451,   451,   452,   452,
1394      453,   453,   454,   454,   455,   456,   457,   455,   458,   458,
1395      458,   458,   458,   458,   458,   458,   458,   458,   458,   458,
1396      459,   459,   460,   461,   461,   461,   462,   462,   462,   462,
1397      463,   463,   463,   463,   463,   463,   463,   463,   463,   463,
1398      464,   464,   465,   465,   466,   467,   467,   467,   467,   467,
1399      468,   468,   468,   468
1400 };
1401
1402 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1403 static const unsigned char yyr2[] =
1404 {
1405        0,     2,     0,     1,     1,     2,     2,     1,     1,     1,
1406        1,     1,     1,     1,     8,    11,     0,     5,     1,     3,
1407        1,     2,     1,     6,     3,     6,     0,     6,     0,     7,
1408        1,     6,     3,     6,     0,     6,     0,     7,     0,     0,
1409       10,     3,     3,     3,     2,     1,     3,     0,     4,     0,
1410        4,     1,     3,     1,     1,     1,     3,     1,     3,     1,
1411        1,     1,     1,     1,     1,     4,     5,     1,     1,     1,
1412        1,     3,     4,     2,     3,     3,     3,     1,     1,     1,
1413        0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1414        1,     1,     1,     1,     1,     1,     2,     0,     4,     1,
1415        2,     0,     3,     1,     3,     1,     1,     0,     2,     3,
1416        2,     1,     3,     2,     0,     2,     1,     1,     1,     1,
1417        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1418        1,     1,     3,     0,     3,     0,     0,     4,     2,     2,
1419        1,     1,     1,     1,     3,     4,     2,     3,     3,     3,
1420        1,     1,     1,     3,     1,     1,     3,     4,     2,     3,
1421        3,     3,     0,     1,     1,     3,     1,     1,     1,     3,
1422        1,     1,     0,     4,     1,     4,     3,     4,     6,     5,
1423        5,     2,     2,     7,     1,     3,     1,     2,     2,     2,
1424        2,     2,     2,     2,     2,     3,     1,     3,     4,     1,
1425        9,     0,     3,     0,     0,     4,     2,     4,     2,     1,
1426        4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
1427        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
1428        3,     1,     3,     1,     3,     1,     0,     4,     1,     0,
1429        4,     1,     0,     0,     7,     1,     3,     3,     3,     3,
1430        3,     3,     3,     3,     3,     3,     3,     1,     3,     0,
1431        1,     1,     1,     1,     1,     3,     0,     9,     0,    11,
1432        1,     1,     2,     0,     6,     0,     8,     4,     4,     0,
1433        0,     2,     1,     4,     2,     1,     4,     0,     4,     1,
1434        3,     4,     2,     2,     2,     1,     2,     3,     2,     1,
1435        3,     1,     1,     1,     1,     1,     2,     0,     6,     2,
1436        2,     0,     6,     0,     5,     1,     1,     1,     1,     1,
1437        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1438        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1439        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1440        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1441        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
1442        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1443        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1444        2,     2,     2,     2,     3,     1,     4,     1,     3,     2,
1445        2,     2,     0,     1,     0,     0,     0,    12,     0,     0,
1446       11,     6,     6,     0,     0,    10,     0,     0,    10,     5,
1447        5,     4,     4,     0,     1,     1,     2,     5,     3,     2,
1448        4,     1,     3,     4,     6,     0,     8,     4,     1,     3,
1449        2,     1,     4,     1,     1,     2,     2,     1,     2,     1,
1450        2,     1,     1,     1,     1,     2,     1,     2,     2,     3,
1451        1,     3,     1,     3,     1,     1,     3,     0,     2,     0,
1452        4,     4,     1,     1,     2,     1,     1,     2,     0,     1,
1453        5,     2,     3,     3,     4,     3,     4,     4,     5,     1,
1454        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1455        1,     1,     1,     2,     2,     7,     6,     2,     0,     0,
1456       10,     0,     6,     1,     1,     1,     1,     2,     1,     1,
1457        1,     1,     1,     1,     1,     3,     1,     0,     3,     2,
1458        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1459        1,     3,     1,     1,     1,     2,     2,     0,     2,     0,
1460        4,     0,     6,     0,     3,     0,     5,     3,     2,     3,
1461        0,     0,     0,     0,     0,     1,     2,     2,     3,     2,
1462        3,     3,     4,     2,     2,     3,     3,     4,     1,     2,
1463        1,     2,     1,     3,     1,     4,     1,     2,     1,     2,
1464        1,     2,     1,     4,     2,     0,     5,     0,     6,     4,
1465        4,     0,     0,    10,     1,     0,     4,     1,     1,     1,
1466        1,     1,     2,     1,     3,     1,     4,     3,     4,     6,
1467        5,     5,     2,     2,     1,     2,     2,     2,     2,     2,
1468        2,     2,     2,     1,     1,     4,     1,     3,     3,     3,
1469        1,     3,     3,     1,     3,     3,     1,     3,     3,     3,
1470        3,     1,     3,     3,     1,     3,     1,     3,     1,     3,
1471        1,     3,     1,     3,     1,     0,     0,     7,     1,     3,
1472        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1473        1,     0,     1,     2,     7,     2,     2,     7,     6,     2,
1474        3,     2,     3,     2,     3,     3,     3,     3,     2,     3,
1475        0,     1,     0,     1,     1,     1,     1,     1,     1,     1,
1476        1,     1,     4,     4
1477 };
1478
1479 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1480    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1481    means the default is an error.  */
1482 static const unsigned short yydefact[] =
1483 {
1484        0,    13,    12,   456,     0,   423,   263,   423,    16,     0,
1485        0,     0,     0,   279,   279,   279,   302,   301,   303,   304,
1486      305,   364,   365,   328,   330,   329,   333,   334,   322,   324,
1487      325,   323,   331,   332,   366,   367,   326,   327,   343,   339,
1488      335,   340,   336,   317,   318,   321,   319,   320,   361,   362,
1489      363,   360,   345,   344,   338,   337,   349,   350,   351,   352,
1490      353,   347,   348,   346,   354,   355,   358,   359,   356,   357,
1491      423,   423,   423,   423,   423,   423,   423,   423,   423,   423,
1492      341,   704,   705,   709,   342,   706,   707,   710,     0,     0,
1493        4,     7,     8,   447,     9,    10,   135,    45,   700,    11,
1494      262,   264,     0,   402,   279,   279,   279,   279,   279,   279,
1495      279,   279,   423,   279,   402,   402,   423,   395,   423,     0,
1496      423,   131,   279,   708,    22,   423,   451,   452,   453,   454,
1497      457,   458,   279,   282,   279,   279,   275,   423,   711,   423,
1498      423,   709,     0,   544,   203,   553,     0,     0,     0,   682,
1499        0,     0,     0,     0,   203,   590,     0,   203,   203,   203,
1500      203,   203,   203,   279,   203,   203,     0,    44,     0,     0,
1501        0,     0,     0,     0,   547,   203,   171,   167,   170,   611,
1502      601,   174,   186,   209,   196,   279,   211,   215,   218,   221,
1503      226,   229,   231,   233,   235,   238,   241,   245,   257,   592,
1504      543,     0,     0,   578,   533,   534,   535,   536,     0,     0,
1505      537,   203,   538,     0,   539,   168,     0,   540,   542,   166,
1506        0,   526,     0,   588,     0,   560,   513,     0,     0,     0,
1507      522,     0,   523,   502,   521,   518,   519,   514,   515,   516,
1508        0,     0,   520,   527,     0,     0,   524,   501,     0,   368,
1509      370,   369,   380,   382,   381,   383,   384,   385,   386,   387,
1510      388,   389,     1,     5,   279,     0,   133,   138,   423,   701,
1511        6,   423,   403,   399,   373,   375,   372,   374,   377,   376,
1512      378,   379,   393,   371,   400,   401,     0,   279,   279,   391,
1513      279,   279,     0,   392,   448,   390,   455,   459,   279,   167,
1514      170,     0,   423,   473,     0,   166,   423,     0,   281,   423,
1515        0,   272,   279,   700,    18,    20,     0,   423,   279,    30,
1516      467,   209,   261,   549,     0,   203,   203,   203,   203,     0,
1517      691,   693,   698,     0,   560,     0,     0,     0,   189,   194,
1518      193,   192,   191,   190,     0,   279,   187,   188,   203,   203,
1519        0,     0,     0,     0,     0,   547,     0,   279,   546,   498,
1520      203,   489,   490,   491,   492,     0,   493,   494,   203,   496,
1521      203,   495,   497,   560,   203,   203,   181,   182,     0,   203,
1522      203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
1523      204,   201,   203,   203,   203,   203,   203,   203,   203,   203,
1524      203,   203,   203,   203,   203,   203,   203,   203,   236,   242,
1525      239,   591,   203,   689,    41,     0,   561,   579,   594,   686,
1526      612,     0,   545,   203,     0,     0,     0,   589,    42,   503,
1527      507,   580,   423,   517,   529,   530,     0,     0,     0,    43,
1528       24,   203,   467,   423,   423,   279,   265,   132,     0,   397,
1529        0,   423,     0,   423,     0,   279,     0,   712,   279,   203,
1530        0,   475,   474,   476,   713,   279,   278,   279,   277,   273,
1531      423,     0,   279,     0,   423,   279,    21,   464,     0,     0,
1532      449,   465,   279,     0,   554,     0,   597,     0,   260,     0,
1533      690,   699,   560,     0,   169,   203,   541,   279,     0,     0,
1534        0,   694,   695,   696,   697,   692,   548,   203,   555,     0,
1535      685,   423,   558,   683,     0,     0,   176,     0,   184,     0,
1536        0,     0,   246,   247,   248,   249,   250,   251,   252,   253,
1537      254,   255,   256,   195,     0,   212,   213,   214,   217,   216,
1538      219,   220,   222,   223,   224,   225,   227,   228,   230,   232,
1539      234,   203,   203,   203,   258,   574,   711,   578,     0,   423,
1540      559,   595,     0,     0,   525,   511,   279,   581,   528,     0,
1541        0,    26,     0,   565,   203,   586,   134,   423,   203,   560,
1542      279,   266,   396,   279,   413,     0,   421,   416,     0,   422,
1543        0,   438,   441,   435,   437,   394,   481,     0,   467,   477,
1544      203,     0,   283,   271,   285,   270,   279,   279,   279,   700,
1545       17,    32,   203,   467,   279,    19,   450,   460,   462,    38,
1546      469,   423,   468,   472,   550,   593,     0,   599,   203,   173,
1547      203,   210,   423,     0,   279,   499,   551,     0,   557,   573,
1548        0,   602,   203,   177,   175,   279,   279,   203,   203,   202,
1549      237,     0,   240,   575,   576,   203,   203,   203,   600,   203,
1550      423,   203,   423,    80,    28,   566,   569,   203,   203,   567,
1551      203,   587,   137,     0,   268,   279,   398,   419,   562,   405,
1552      420,   562,   408,   279,   440,   279,     0,   482,   485,   279,
1553        0,   483,     0,   467,   423,   107,   284,   203,   279,   279,
1554        0,    34,     0,   279,     0,    82,   466,   279,   478,   203,
1555        0,   203,   584,   702,   582,     0,     0,     0,   556,   203,
1556      203,   185,   179,   180,   279,   206,   279,   208,   243,   577,
1557      596,     0,   279,   203,   203,   203,   203,   203,   203,   203,
1558      203,     0,   167,   170,   186,   209,   633,   215,   218,   221,
1559      226,   229,   231,   233,   235,   238,     0,   605,   604,   168,
1560      615,   624,   634,   636,   640,   643,   646,   651,   654,   656,
1561      658,   660,   662,   664,   668,   607,   166,     0,    25,     0,
1562       97,   101,    99,   124,   125,   126,   127,   128,   129,   130,
1563       27,    80,    84,     0,    86,    85,     0,    89,     0,   423,
1564      423,    87,     0,    88,   313,     0,    80,   570,   571,   203,
1565      568,    23,   279,   287,   423,   411,   562,   423,   412,   562,
1566      434,   439,   203,     0,     0,   486,   484,   487,     0,   279,
1567        0,   106,   203,   203,     0,   289,   274,   203,     0,   295,
1568        0,   203,     0,   423,    82,    36,     0,   461,   463,    39,
1569       82,    90,    92,    91,    95,    93,    94,   470,   443,     0,
1570      279,   478,   444,   479,   598,   508,   702,   203,     0,     0,
1571      178,   552,     0,   605,     0,     0,   203,   688,     0,     0,
1572      189,   194,   193,   192,   191,   190,   187,   188,   203,   203,
1573      203,   181,   182,     0,   203,   203,   203,   203,   203,   203,
1574      203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
1575      203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
1576      203,   203,   665,   203,   512,     0,   506,   105,   110,   103,
1577      114,   700,    81,    96,   100,   108,   307,   310,   306,     0,
1578      311,   309,    29,   572,   203,     0,   425,   423,   423,   424,
1579      423,   423,   423,   442,   279,   480,   488,   286,   276,   299,
1580        0,     0,   298,   292,   293,   296,   294,   287,    14,    33,
1581       35,    82,    31,   700,    83,   467,   471,   445,   446,   203,
1582        0,   583,   183,     0,   199,     0,   560,   205,   207,   244,
1583      687,   169,   203,     0,   176,     0,     0,     0,     0,   669,
1584      670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
1585      212,   213,   214,   217,   216,   219,   220,   222,   223,   224,
1586      225,   227,   228,   230,   232,   234,   661,   203,   663,   203,
1587      505,   109,     0,   119,   120,   121,   122,   123,   700,   111,
1588      423,   114,     0,     0,   142,   143,   102,   152,   700,   140,
1589      141,     0,    49,     0,     0,    59,    60,    70,    68,   316,
1590        0,   315,    57,    77,     0,    64,    67,     0,   700,    69,
1591      162,   287,   279,   423,     0,   279,   426,   414,   423,   417,
1592      423,   436,   290,   203,   297,   700,    37,     0,   279,   509,
1593      585,   279,   203,     0,   684,   681,   210,   279,   177,   175,
1594      279,   279,     0,   606,   104,   114,    98,   117,   113,   118,
1595      116,   115,     0,   146,     0,     0,     0,     0,   139,     0,
1596        0,   155,   164,   700,   154,     0,     0,    67,     0,    73,
1597        0,    55,    54,     0,    62,    61,    63,     0,     0,     0,
1598        0,     0,     0,   279,   700,   163,     0,   267,   279,   428,
1599      279,   279,   423,   431,     0,   406,     0,   409,   291,   300,
1600        0,    40,   279,     0,   200,     0,   197,   680,   561,     0,
1601      179,   180,   666,   112,   147,   144,   150,     0,   151,   148,
1602      149,   153,     0,   158,     0,     0,     0,     0,   279,     0,
1603       79,    78,     0,    74,     0,    51,    46,    47,    56,    67,
1604       58,    71,     0,    75,    76,     0,     0,   314,   279,   279,
1605      288,   203,   279,     0,   429,   279,   415,     0,   418,     0,
1606       15,   510,   198,   603,   178,   203,   145,   159,   156,     0,
1607      160,   161,   165,   308,    53,    50,     0,     0,    72,    48,
1608       65,   312,   269,   432,   423,   427,   203,   404,   410,   667,
1609      157,    66,    52,   430,   433,   407
1610 };
1611
1612 /* YYDEFGOTO[NTERM-NUM]. */
1613 static const short yydefgoto[] =
1614 {
1615       -1,    88,    89,    90,    91,    92,   140,   313,   314,    93,
1616      663,   806,   315,   844,   971,    94,   705,   973,   946,    96,
1617     1059,  1195,  1141,  1125,  1196,  1235,  1133,  1061,  1062,  1063,
1618     1137,  1064,  1065,  1199,  1067,  1192,   790,   849,   791,   850,
1619      792,   851,   930,   852,   795,   853,   931,   928,   929,   830,
1620      797,   798,  1038,  1039,  1040,  1108,  1041,   799,   800,    97,
1621      267,   443,   268,   579,    98,  1046,  1176,  1177,  1048,  1122,
1622     1144,  1123,   181,   334,   182,   517,   183,   983,   184,   746,
1623      534,   185,   533,   649,   186,   187,   188,   189,   190,   191,
1624      192,   193,   194,   195,   551,   196,   553,   197,   552,   876,
1625      198,   227,   489,   323,   431,   100,   675,   812,   604,   605,
1626      608,   101,   309,   102,   265,   134,   135,   606,   607,   945,
1627      836,   837,   838,   839,   960,   103,   801,   855,  1051,   803,
1628      804,   856,  1070,   939,  1068,   104,   105,   106,   107,   108,
1629      109,   110,   111,   112,   113,   114,   115,   303,   432,   448,
1630      117,   273,  1255,   118,   816,  1217,   819,  1219,   678,  1154,
1631      681,  1156,   119,   948,   949,  1151,  1152,   120,   686,   590,
1632      591,   860,   137,   479,   129,   130,   122,   616,   617,   480,
1633      481,   482,   707,   622,   336,   824,   862,   463,   358,   359,
1634      228,   248,   229,   230,   360,   979,  1163,   232,   659,   233,
1635      234,   436,   235,   236,   202,   417,   361,   356,   362,   483,
1636      717,   363,   324,   637,   364,   207,   365,   560,   814,  1077,
1637      241,   576,   512,   416,   209,   577,   713,   714,   578,   366,
1638      210,   211,   367,   656,   626,   368,   244,   369,   373,   720,
1639      757,   925,   758,   215,   760,   761,   762,   763,   764,   765,
1640      766,   767,   768,   769,   770,   771,   772,   773,   774,  1027,
1641     1225,   775,  1168,   370,   371,   217,   372,   270,   868,   305,
1642      220,   125
1643 };
1644
1645 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1646    STATE-NUM.  */
1647 #define YYPACT_NINF -1021
1648 static const short yypact[] =
1649 {
1650     2377, -1021, -1021,   434,    55,  5691, -1021,  6920, -1021,   627,
1651     2271,  3974,  3974, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1652    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1653    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1654    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1655    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1656    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1657    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1658    -1021, -1021, -1021,   114, -1021, -1021, -1021, -1021,   101,  2559,
1659    -1021, -1021, -1021,   469, -1021, -1021,   119, -1021,   163, -1021,
1660    -1021, -1021,   202,  6506, -1021, -1021, -1021, -1021, -1021, -1021,
1661    -1021, -1021, -1021, -1021,  6506,  6506,   221,   168, -1021,   795,
1662    -1021, -1021,   627, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1663      434, -1021,  5859, -1021,   245, -1021,   221, -1021, -1021, -1021,
1664     5691, -1021,   276, -1021,  5982, -1021,   281,   341,   348, -1021,
1665      361,   627,   382,   390,  1410, -1021,  2945,  5982,  5982,  5982,
1666     5982,  5982,  5982, -1021,  6011,  6011,   397, -1021,   420,   412,
1667      454,   472,   527,   501,   430,  5148, -1021,   533,   570, -1021,
1668      580, -1021,   751,   858, -1021, -1021, -1021,   965,   359,   289,
1669      538,   404,   581,   579,   588,   605,    85, -1021, -1021,   380,
1670    -1021,  3762,   542,   592, -1021, -1021, -1021, -1021,   682,  3442,
1671    -1021,  5148, -1021,  3762, -1021,   550,  3762, -1021, -1021,   670,
1672      740, -1021,   748, -1021,  3140,   580,   743,   489,   738,  3868,
1673    -1021,  3974, -1021, -1021, -1021,  6230, -1021, -1021, -1021, -1021,
1674      770,   825, -1021, -1021,  3974,  3762, -1021, -1021,   752, -1021,
1675    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1676    -1021, -1021, -1021, -1021,   849,   828, -1021, -1021,  6782, -1021,
1677    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1678    -1021, -1021, -1021, -1021, -1021, -1021,   839,   325, -1021, -1021,
1679      627,   627,   185, -1021,   469, -1021, -1021, -1021,  1773, -1021,
1680    -1021,   102,  6920,   161,   873, -1021, -1021,   894, -1021, -1021,
1681      909,   923,   325,   163, -1021,   645,   935, -1021,   627, -1021,
1682      229, -1021, -1021, -1021,   944,  5982,  5982,  5982,  1542,   943,
1683    -1021, -1021, -1021,   625,   967,   611,   949,   983, -1021, -1021,
1684    -1021, -1021, -1021, -1021,   972,  1773, -1021, -1021,  5982,  5982,
1685     1004,  1006,  1010,  1016,  1017,   430,   543,  2059, -1021, -1021,
1686     5148, -1021, -1021, -1021, -1021,  1018, -1021, -1021,  5148, -1021,
1687     5148, -1021, -1021, -1021,  5880,  5982, -1021, -1021,    64,  5982,
1688     5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
1689    -1021, -1021,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
1690     5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982, -1021, -1021,
1691    -1021, -1021,  5982, -1021, -1021,  2750, -1021, -1021,  1027, -1021,
1692    -1021,  1028, -1021,  5982,   673,  1013,  1020, -1021, -1021, -1021,
1693    -1021, -1021,   221,  6230, -1021, -1021,  3974,  3548,  1030, -1021,
1694    -1021,  5982,    58,  4081,  5232,   325, -1021,   590,   954,  1029,
1695     1033,  1037,  1038,  1037,   627,  1039,   128, -1021, -1021,  5891,
1696     1024,   709, -1021,   757, -1021,   325, -1021,   678, -1021, -1021,
1697    -1021,   968,  1022,  1036, -1021,   325,   645, -1021,   627,  1041,
1698    -1021,  1040,   627,  1042, -1021,   264,  1046,   385,  1046,  1044,
1699    -1021, -1021,   967,  1043, -1021,  5583, -1021, -1021,  1047,  1048,
1700      395, -1021, -1021, -1021, -1021, -1021, -1021,  5982, -1021,  1049,
1701    -1021,  4081, -1021, -1021,  1062,  1053, -1021,   417, -1021,   103,
1702      627,   627, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1703    -1021, -1021, -1021, -1021,   610, -1021, -1021, -1021,   965,   965,
1704      359,   359,   289,   289,   289,   289,   538,   538,   404,   581,
1705      579,  5982,  5982,  5982, -1021, -1021,  3335, -1021,  3655,  4271,
1706    -1021, -1021,  1054,   573, -1021, -1021,   325, -1021, -1021,  1055,
1707     1057, -1021,  1056, -1021,  4651, -1021, -1021,  4461,  4695,   967,
1708    -1021,  1063, -1021, -1021,  1060,  1068, -1021,  1070,  1072, -1021,
1709      560, -1021,  1069, -1021, -1021, -1021, -1021,  1071,   744,   757,
1710     5923,  1073, -1021, -1021, -1021, -1021,  1074, -1021, -1021,   175,
1711    -1021, -1021,  5982,   200,   325, -1021, -1021,  1075, -1021, -1021,
1712     1094,  6920, -1021, -1021, -1021, -1021,  1079, -1021,  1542, -1021,
1713     5610, -1021, -1021,  1081, -1021, -1021, -1021,  1087, -1021, -1021,
1714     1086, -1021,  5982, -1021, -1021, -1021, -1021,  6060,  6090, -1021,
1715      588,   689,   605, -1021, -1021,  4802,  5148,  5982, -1021,  6149,
1716    -1021,  5982, -1021,  1090, -1021, -1021, -1021,  4846,  4953, -1021,
1717     4997, -1021, -1021,  1093, -1021, -1021, -1021, -1021, -1021,  1103,
1718    -1021, -1021,  1104, -1021,   627, -1021,   627, -1021, -1021,   290,
1719     1101, -1021,  1100,    66, -1021,  1058, -1021,  2136, -1021, -1021,
1720     1102, -1021,  1111, -1021,   259,  1090, -1021,   627,   788,  5148,
1721     1123,  5610, -1021,  1122, -1021,  1125,  1119,  1127, -1021,  5982,
1722     6149, -1021, -1021, -1021,  1773, -1021,  1773, -1021, -1021, -1021,
1723    -1021,   658,  1773,  5982,  5982,  5982,  5982,  5982,  5982,  6011,
1724     6011,  1130,   746,   776,   851,  1480, -1021,   976,   772,   885,
1725      597,   830,  1128,  1112,  1120,  1105,   181,  1143, -1021,    49,
1726    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1727    -1021, -1021, -1021, -1021, -1021, -1021,   777,   803, -1021,   980,
1728    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1729    -1021,  1090, -1021,  1088, -1021, -1021,  1089, -1021,  1091, -1021,
1730    -1021, -1021,  1092, -1021,  2080,  1097,  1090, -1021, -1021,  5104,
1731    -1021, -1021, -1021, -1021,  6644, -1021, -1021,  6644, -1021, -1021,
1732    -1021, -1021,  5982,   973,  1164, -1021, -1021, -1021,  1165,   678,
1733     1173, -1021,  2136,  5982,   627, -1021, -1021,  2136,   711, -1021,
1734     1171,  2136,  1106, -1021,  1090, -1021,  1169, -1021, -1021, -1021,
1735     1090, -1021, -1021, -1021, -1021, -1021, -1021, -1021,   469,  1172,
1736    -1021,   714, -1021,   757, -1021, -1021,  1122,  5562,  1178,   627,
1737    -1021, -1021,   805,  1174,  1175,  1176,  5982,  1184,   806,  1183,
1738      815,   829,   834,   837,   861,   862,   870,   880,  5982,  5912,
1739     5982,   890,   905,   105,  5982,  5982,  5982,  5982,  5982,  5982,
1740     5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
1741     5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
1742     5982,  5982, -1021,  5982, -1021,  1188,  1193, -1021,  1023,  1177,
1743      402,    87, -1021, -1021, -1021, -1021, -1021, -1021, -1021,   456,
1744    -1021, -1021, -1021, -1021,  2136,   700, -1021,   221,  5394, -1021,
1745     6644,  5394,  6644, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1746      982,  1187, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1747    -1021,  1090, -1021,   163, -1021,   407, -1021, -1021, -1021,  5955,
1748     1196, -1021, -1021,   516, -1021,  1201,   967,  1081,  1081, -1021,
1749    -1021,   907,  5583,  1199,   908,   922,   307,   627,   627, -1021,
1750    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1751      924,   930,   931,   327,   694,   692,   755,    81,   104,   513,
1752      681,   535,   637,    91,   405,   147,   588,  5982,   605,  6149,
1753    -1021,   550,   980, -1021, -1021, -1021, -1021, -1021,   872, -1021,
1754     6368,   402,    18,    18, -1021, -1021, -1021,   457,   892, -1021,
1755    -1021,    70, -1021,   488,    94, -1021, -1021, -1021, -1021, -1021,
1756     1198, -1021,    30, -1021,   961, -1021,   429,  1200,   163, -1021,
1757       70, -1021, -1021, -1021,  1204,   310, -1021, -1021,  5394, -1021,
1758     5394, -1021, -1021,  1259, -1021,   916, -1021,  1135,   437, -1021,
1759    -1021, -1021,  5982,   627, -1021,  1034,   937, -1021,   939,   948,
1760    -1021, -1021,   997, -1021, -1021,   402, -1021, -1021, -1021, -1021,
1761    -1021, -1021,    89,   457,   555,   627,   627,    18, -1021,    70,
1762       70, -1021,   461,   969, -1021,  1205,   988,   451,    94,   558,
1763       73, -1021, -1021,   488, -1021, -1021, -1021,   488,    27,   627,
1764      627,  1207,   488, -1021,   163,  1211,   971, -1021,   325, -1021,
1765    -1021,  1213, -1021,  1214,  1215, -1021,  1220, -1021, -1021, -1021,
1766     1150, -1021,   132,  1217, -1021,   320, -1021, -1021, -1021,  1218,
1767      950,   958, -1021, -1021, -1021, -1021,   457,  1219,   550, -1021,
1768    -1021,   457,   500,   461,   654,   627,   627,    70, -1021,  1051,
1769    -1021, -1021,   488, -1021,   451,  1208, -1021,   558, -1021,   558,
1770    -1021, -1021,  1223, -1021, -1021,  1051,  1226, -1021, -1021, -1021,
1771    -1021,  5982,   310,  1227, -1021, -1021, -1021,  1224, -1021,  1232,
1772    -1021, -1021, -1021, -1021,   963,  5982, -1021, -1021, -1021,  1228,
1773    -1021, -1021,   461, -1021, -1021, -1021,  1234,    73, -1021, -1021,
1774    -1021, -1021, -1021, -1021, -1021, -1021,  5982, -1021, -1021, -1021,
1775    -1021, -1021, -1021, -1021, -1021, -1021
1776 };
1777
1778 /* YYPGOTO[NTERM-NUM].  */
1779 static const short yypgoto[] =
1780 {
1781    -1021, -1021, -1021,  1179, -1021, -1021, -1021, -1021,  -382,  -115,
1782    -1021, -1021,   942, -1021, -1021, -1021, -1021, -1021,    76, -1021,
1783    -1021,   314, -1021, -1021,    24,    57, -1021,   130, -1021, -1021,
1784    -1021,  -943, -1021,  -910, -1021, -1021,  -718,  -731, -1021, -1021,
1785    -1021,  -603, -1021,  -579, -1021,  -420, -1021,   233, -1021, -1021,
1786      571,  -667, -1021,   162,   228, -1021, -1021, -1021, -1021, -1021,
1787    -1021, -1021, -1021, -1021, -1021, -1021,  -882,    86, -1021, -1020,
1788    -1021,   201, -1021, -1021,  -624,   386,  1233, -1021, -1021,  1095,
1789    -1021, -1021, -1021, -1021,  -114,  -378,  -375,  -344,  -363,  -391,
1790     -390,  -387,  -524,  -520, -1021,  -622, -1021,  -140, -1021, -1021,
1791     1113,  1267,  -596,  -438,     6, -1021, -1021, -1021,   445,    -3,
1792    -1021, -1021, -1021,   650,  -253, -1021, -1021, -1021, -1021,  -902,
1793     -760, -1021, -1021,   438, -1021, -1021, -1021,  -392, -1021, -1021,
1794    -1021,  -366, -1021, -1021, -1021, -1021, -1021,   477, -1021, -1021,
1795    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,    75,   699,
1796    -1021,   918, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1797    -1021, -1021,  1244,  -523,  -898, -1021,    74, -1021, -1021,   608,
1798      613,   439,     1,  -383,  1168, -1021,    33, -1021, -1021,  -573,
1799    -1021, -1021, -1021,   595,  -117,   998, -1021,  -448,   695,    41,
1800     1291, -1021,  1061, -1021,   741, -1021, -1021, -1021, -1021,  -163,
1801    -1021, -1021, -1021, -1021, -1021,    20,   994,   955,  1545, -1021,
1802    -1021,  1639, -1021, -1021,  -326, -1021,   594,   136,  -502,  -714,
1803    -1021,   800, -1021, -1021,   897,  -201,   602,   459,  -474,   125,
1804    -1021,   180,    54, -1021, -1021,   137, -1021,   142, -1021, -1021,
1805      604, -1021,   298,  -633, -1021, -1021, -1021, -1021, -1021, -1021,
1806    -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
1807    -1021, -1021, -1021,  1698, -1021, -1021,  1818,  -274,   462,     0,
1808       19, -1021
1809 };
1810
1811 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1812    positive, shift that token.  If negative, reduce the rule which
1813    number is the opposite.  If zero, do what YYDEFACT says.
1814    If YYTABLE_NINF, syntax error.  */
1815 #define YYTABLE_NINF -712
1816 static const short yytable[] =
1817 {
1818      123,   121,   133,   570,   322,   123,    99,   294,   493,   123,
1819      219,   219,   219,   599,   548,   304,   549,   538,   539,   124,
1820      550,   597,   540,   541,   124,   690,   759,   650,   142,  1066,
1821      203,   509,   710,   652,   433,   744,   131,   756,   854,   471,
1822      546,   547,  1042,   338,   339,   340,   341,   342,   343,  1047,
1823     1076,   200,  1043,  1076,  1201,   542,   543,   544,   545,   572,
1824      793,   425,   473,   477,   212,  1085,   429,   444,   430,   636,
1825     -613,   477,   959,   932,  -613,   116,    95,   963,  1052,   132,
1826      136,   967,   139,   571,   794,   655,  1131,   759,   942,   123,
1827      121,   827,   520,   615,  1119,    99,   744,  1128,   756,  1182,
1828     1183,   262,  -647,   668,  1120,   269,  -647,  1054,   124,   521,
1829     1126,  1042,  -655,   970,  1174,  1114,  -655,  1115,  1128,   974,
1830      828,  1043,   123,   412,   412,  -648,   409,   457,  1054,  -648,
1831      644,   397,   398,   997,  1116,   754,   242,   242,   266,   755,
1832      123,   124,   410,  1127,  1129,   403,   404,   213,  -711,   412,
1833      998,   123,   214,   494,   397,   398,   219,  -475,   459,   319,
1834     1112,  1113,   692,   297,   116,    95,   509,  1232,  -659,  1146,
1835      329,   449,  -659,   318,   700,   219,   337,   854,   272,   817,
1836     1076,   269,  1076,   854,  1071,  -279,   406,   459,   793,   272,
1837      272,   243,   243,   269,  1200,     3,   754,   200,   698,  1206,
1838      755,   219,  -711,   793,   454,   477,    81,  1044,  1045,   219,
1839      212,   219,   794,   219,   559,   317,   219,  1132,  1194,  1202,
1840     1197,   413,   922,   473,   219,   701,   271,   794,   498,   219,
1841      702,   219,   703,   419,   477,  1181,   421,  1079,   923,  -279,
1842     1086,   420,   200,   796,   219,   219,  -423,  -423,  -423,  1236,
1843      200,  -423,  -423,   672,   200,   212,   288,   200,    81,  1121,
1844      863,    81,  1057,   212,   847,   438,   306,   212,   751,   752,
1845      212,   802,   753,   568,   429,    81,  1044,  1045,   535,   536,
1846      537,   747,    81,  1057,   748,   412,   200,   123,   447,   625,
1847      123,   123,   123,   213,   951,  1031,   750,   805,   214,   212,
1848      320,   322,  -711,  -711,   854,   325,   124,  -711,  -711,   451,
1849      453,   455,   123,   470,   950,   749,   459,   952,   123,   322,
1850       81,    82,   141,  1159,     3,    85,    86,  1197,   412,   751,
1851      752,   124,  1150,   753,  1099,   699,   461,   319,   213,   397,
1852      398,   412,   747,   214,     3,   748,   213,  1222,  -642,   242,
1853      213,   214,  -642,   213,   242,   214,   242,   750,   214,     3,
1854      219,   392,   393,   394,  1155,   326,  1157,   322,   219,   242,
1855      219,   796,   327,    81,    82,   141,   749,   458,    85,    86,
1856      632,   631,   213,  1089,   953,   328,   796,   214,  -423,  -423,
1857     -423,   395,   396,  -423,  -423,   961,   759,  1026,   411,   802,
1858      330,   412,   690,  1028,   243,   744,   412,   756,   331,   243,
1859      627,   243,   477,   863,   802,   219,   412,  -423,  -423,  -423,
1860      635,   348,  -423,  -423,   243,   805,  -657,  1078,   350,  1080,
1861     -657,  -423,   688,  -423,   405,   557,   219,   219,   642,   567,
1862      805,  -423,   643,   219,   349,   123,   580,    81,    82,   141,
1863      567,   -47,    85,    86,   123,  1138,   200,  1139,   403,   404,
1864      322,  1052,   602,   459,   124,   123,   449,   123,     3,   212,
1865      351,     3,   322,   592,  1140,   123,  1193,  1138,   123,  1139,
1866     1053,  1178,   123,  1114,   124,  1115,   124,  1184,   352,  1185,
1867     1054,  1033,  1034,  -280,   319,   264,  1140,   618,    81,    82,
1868      141,   623,  1116,    85,    86,   754,  1186,   427,   318,   755,
1869      412,   219,  1053,    81,    82,   141,   354,   716,    85,    86,
1870      123,   123,  1054,  1035,  1036,  1227,  1184,  1023,  1185,  1024,
1871     1013,  1014,   355,  1025,  -649,  1015,  1016,  1037,  -649,   645,
1872      646,  1091,  1092,   353,  1093,  1186,   126,   127,   128,   507,
1873      508,  1178,   213,  1021,  1022,  -705,  -652,   214,   219,   219,
1874     -652,   242,   242,   397,   398,   567,   123,   660,  1017,  1018,
1875     1019,  1020,   399,   400,   219,   399,   400,   219,   219,  1042,
1876      683,   684,  1175,   567,  1138,   124,  1139,   401,   402,  1043,
1877      401,   402,  -709,   858,   412,  -423,  -423,  -423,   658,   200,
1878     -423,  -423,  -706,  1140,   208,   240,   240,   874,  -423,   875,
1879      405,  -423,   212,  -423,   123,   879,   243,   243,   406,   880,
1880      881,   882,   883,   884,   885,    81,    82,   141,   407,   411,
1881       85,    86,   412,   319,   912,   913,   494,   414,   751,   752,
1882     1055,  1056,   753,   491,    81,  1057,   412,   318,  1058,   914,
1883      915,   747,   647,   648,   748,   219,   219,  1049,  -653,   776,
1884     1095,   408,  -653,   249,   250,   251,   750,   219,   219,  -280,
1885      219,   472,  1055,  1056,   399,   400,    81,  1057,  1042,   412,
1886     1058,  1228,   322,   877,   123,   749,   123,  -531,  1043,   401,
1887      402,   427,  -708,   322,   412,   213,   708,   219,   494,  1087,
1888      214,   415,  -650,   592,   123,   592,  -650,   123,   123,   219,
1889      412,   728,     3,  -644,   599,  -641,   840,  -644,  1072,  -641,
1890      776,  1073,   461,   848,   395,   396,   623,   124,   392,   393,
1891      394,   397,   398,  -279,   964,   459,   989,   833,  -279,   834,
1892      459,   861,   420,    81,  1044,  1045,   858,   179,     3,   477,
1893      208,   201,   231,   231,   274,   275,   276,   277,   278,   279,
1894      280,   281,   422,   283,  1106,  -707,   286,  -610,  -423,   688,
1895     -423,  -610,   423,  1243,  1118,   374,  -645,   375,  -423,  -423,
1896     -645,  -279,   302,   600,   307,   308,   310,   395,   396,   434,
1897      316,  1010,  1011,  1012,  1143,   208,  -423,  -609,  -608,   376,
1898      377,  -609,  -608,   208,   908,   909,   302,   208,  1254,   219,
1899      208,  1160,  -279,   344,   459,    81,    82,   141,   240,   426,
1900       85,    86,     3,   240,   412,   240,   412,   412,   926,   123,
1901      985,   991,   219,   428,   123,   391,  -627,   219,   240,   208,
1902     -627,   219,    81,  1044,  1045,   435,   179,   439,   124,  1188,
1903     -632,   840,   442,   962,  -632,  -631,   840,   446,  -630,  -631,
1904      840,   123,  -630,   290,   291,   292,    81,    82,   141,   123,
1905     1208,    85,    86,   603,   302,   889,   440,   890,  1096,  -423,
1906      124,   379,  -629,  -628,   916,   917,  -629,  -628,   984,   947,
1907      269,  -625,   947,  1105,   861,  -625,  -423,   201,   464,   891,
1908      892,  -626,    81,    82,   141,  -626,   418,    85,    86,   977,
1909      269,  -622,   466,  1117,   441,  -622,   380,   381,   382,   383,
1910      384,   385,   386,   387,   388,   389,  -623,   468,  -614,  -617,
1911     -623,  1050,  -614,  -617,   269,   910,   911,  1073,   302,  1069,
1912      450,   452,   201,   642,   219,  -637,   469,  1098,   302,  -637,
1913      201,  -638,  -639,   460,   201,  -638,  -639,   201,  -635,   474,
1914     -618,   490,  -635,   840,  -618,   231,   484,   515,   316,  -616,
1915      231,  -620,   231,  -616,   495,  -620,    81,    82,   141,  -621,
1916     1169,    85,    86,  -621,  -619,   231,   201,   269,  -619,  1209,
1917     1187,   492,  1073,   954,   684,   302,   497,   123,   123,   392,
1918      393,   394,  1082,  1083,   204,   237,   237,   302,   496,   208,
1919      905,   906,   907,  1134,  1135,  1136,  1100,  1101,   412,  1172,
1920     1190,  1191,   501,   947,   502,   947,   947,   947,   503,   776,
1921      240,   240,   284,   285,   504,   505,   561,   511,   564,   562,
1922     1110,   569,  1050,  1050,   565,   582,  1109,   294,   598,   611,
1923      583,  1124,   584,  1069,  1069,   510,  -279,   587,   593,   610,
1924      613,   620,   628,   513,   624,   514,   619,   412,   629,   634,
1925     1124,   322,   633,   640,   638,   123,  1153,   641,   657,   661,
1926      677,   664,   286,   219,   662,  1249,   674,   679,   123,   580,
1927      680,   682,   685,   123,   124,   694,   704,   693,   687,   706,
1928      630,   585,   840,   588,   709,   594,   322,   124,   595,   718,
1929      719,   460,  1166,   601,  1050,   123,   123,  1050,   811,  1124,
1930     1124,  1162,   612,   815,   818,   316,   825,   826,  1069,   843,
1931     1069,   779,   621,  1069,  1179,  1180,   845,  1069,   575,   123,
1932      123,   865,  1069,   867,   870,  1210,   869,   302,   123,   871,
1933      204,   919,   208,   947,   888,   947,   201,   918,  1203,  1204,
1934      920,   921,   123,   779,   780,   781,   782,   124,   924,   927,
1935      783,   784,   785,   786,   787,   788,   789,   231,   231,   933,
1936      934,   124,   935,   938,  1050,   123,   123,  1124,   941,   955,
1937      956,   958,  1069,   966,   972,   204,   975,   968,   982,   986,
1938      987,   988,   990,   204,  1230,  1231,   575,   204,   992,  1029,
1939      204,  1030,   123,  1153,  1084,   179,  1090,  1032,   237,  1094,
1940     1097,  1130,  1149,   237,  1142,   237,  1161,  1189,  1167,  1205,
1941      673,   124,  1187,   302,  1212,  1216,  1215,  1069,   237,   204,
1942     1218,  1220,  1221,  1224,  1247,  1245,  1226,  1234,  1237,   601,
1943     1238,  1240,  1248,  1060,   575,  1250,   695,   696,   697,  1251,
1944      476,  1252,  1239,  1198,   316,  1104,   831,  1173,   263,  1111,
1945     1229,  1145,   575,   671,   957,   995,   965,   199,   832,  1158,
1946      390,   940,   676,   298,   302,   833,  1244,   834,   157,   158,
1947      159,   160,   161,   162,   823,   722,   723,   821,   296,   201,
1948      978,   462,   857,   247,  1223,   437,   163,   164,   165,   391,
1949      506,   639,   558,   866,   252,   253,   254,   255,   256,   257,
1950      258,   259,   260,   261,   873,   813,   981,  1103,   980,     0,
1951      166,     0,     0,   820,     0,   822,     0,     0,     0,   460,
1952        0,     0,     0,     0,     0,     0,     0,     0,   841,   842,
1953      671,   730,     0,   846,     0,     0,   282,   621,   859,     0,
1954      287,     0,   289,   671,   293,     0,     0,     0,     0,   295,
1955      391,     0,     0,     0,   302,   176,   302,   321,     0,     0,
1956        0,   311,   302,   312,     0,     0,     0,     0,     0,     0,
1957      321,   321,   321,   321,   321,   321,     0,   346,   347,   301,
1958        0,     0,     0,     0,   864,     0,     0,     0,     0,   204,
1959        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1960        0,   333,     0,   335,     0,     0,   378,     0,   332,     0,
1961      237,   237,     0,     0,   298,     0,     0,     0,     0,   157,
1962      158,   159,   160,   161,   162,     0,     0,    81,   177,   178,
1963        0,   179,    85,    86,     0,     0,     0,   163,   164,   165,
1964        0,   499,   944,     0,     0,     0,     0,     0,   199,     0,
1965        0,     0,     0,     0,     0,     0,   199,     0,     0,     0,
1966      199,   166,     0,   199,     0,     0,     0,   518,     0,     0,
1967        0,   424,   522,   523,   524,   525,   526,   527,   528,   529,
1968      530,   531,   532,   894,     0,     0,     0,     0,     0,     0,
1969      976,   859,   199,   601,     0,   445,     0,     0,     0,     0,
1970        0,     0,     0,     0,     0,   554,   176,     0,     0,     0,
1971        0,     0,     0,     0,     0,     0,     0,     0,   895,   896,
1972      897,   898,   899,   900,   901,   902,   903,   904,     0,     0,
1973      465,     0,   204,   467,     0,   205,   238,   238,     0,     0,
1974     -259,   475,     0,     0,   478,   456,   298,     0,     0,     0,
1975        0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
1976        0,     0,     0,     0,     0,     0,     0,     0,     0,   163,
1977      164,   165,   485,   486,   487,   488,     0,  1074,    81,   299,
1978      300,     0,   179,     0,  1081,     0,     0,     0,     0,     0,
1979        0,     0,   456,   166,     0,     0,   500,     0,     0,     0,
1980        0,     0,     0,     0,   456,   321,   321,   321,   321,   321,
1981      321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
1982      321,     0,   519,     0,     0,     0,     0,     0,     0,   206,
1983      239,   239,     0,     0,     0,     0,     0,     0,   176,     0,
1984        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1985        0,     0,     0,     0,   321,     0,   566,     0,     0,   391,
1986        0,     0,   199,     0,     0,     0,   478,     0,     0,     0,
1987      563,   581,   321,     0,     0,   586,     0,   589,     0,     0,
1988        0,   205,     0,     0,     0,     0,     0,     0,   216,   245,
1989      245,     0,     0,     0,   609,     0,     0,     0,   614,     0,
1990        0,     0,  1147,     0,     0,     0,     0,     0,   321,     0,
1991       81,   299,   300,     0,   179,     0,     0,     0,   859,     0,
1992      321,  1164,     0,   712,     0,     0,   205,   302,     0,     0,
1993     1170,  1171,     0,     0,   205,   721,     0,     0,   205,     0,
1994        0,   205,     0,     0,     0,     0,     0,     0,     0,   238,
1995        0,     0,     0,     0,   238,     0,   238,     0,     0,     0,
1996        0,     0,     0,     0,   321,     0,   321,     0,     0,   238,
1997      205,     0,  -172,  1207,     0,   206,     0,   298,     0,     0,
1998     1211,  1213,   157,   158,   159,   160,   161,   162,     0,     0,
1999      835,     0,   859,     0,     0,  -203,  -203,     0,     0,   651,
2000      163,   164,   165,     0,   712,   199,     0,     0,   218,   246,
2001      246,     0,     0,   321,     0,     0,     0,     0,  1233,     0,
2002      206,     0,   689,     0,   166,   321,     0,     0,   206,     0,
2003        0,     0,   206,     0,   216,   206,     0,   478,  1241,  1242,
2004        0,     0,     0,   239,     0,  1246,     0,     0,   239,     0,
2005      239,     0,     0,     0,     0,     0,   715,     0,     0,     0,
2006      725,   727,     0,   239,   206,     0,     0,     0,     0,   176,
2007        0,     0,   745,     0,     0,   488,     0,     0,     0,   216,
2008        0,     0,     0,     0,   581,     0,   778,   216,     0,     0,
2009        0,   216,     0,     0,   216,     0,     0,     0,     0,     0,
2010        0,     0,   245,     0,   731,     0,     0,   245,   777,   245,
2011        0,     0,     0,     0,     0,     0,     0,     0,   829,     0,
2012        0,     0,   245,   216,     0,   835,     0,     0,     0,     0,
2013      835,     0,     0,   745,   835,     0,     0,     0,     0,     0,
2014      205,    81,   299,   300,     0,   179,   321,   321,   321,   321,
2015      321,   321,   886,   887,   218,     0,     0,     0,     0,     0,
2016      712,   238,   238,     0,     0,     0,   872,     0,   893,     0,
2017        0,   456,     0,   456,     0,     0,     0,     0,     0,   878,
2018        0,   993,   518,     0,     0,     0,     0,   999,  1000,  1001,
2019     1002,  1003,  1004,  1005,  1006,  1007,  1008,  1009,     0,   218,
2020        0,     0,     0,     0,     0,     0,     0,   218,     0,     0,
2021        0,   218,     0,     0,   218,     0,     0,     0,     0,     0,
2022        0,     0,   246,   936,   937,     0,     0,   246,     0,   246,
2023        0,     0,     0,     0,   206,   321,     0,   835,     0,     0,
2024        0,     0,   246,   218,     0,     0,   321,     0,     0,     0,
2025        0,     0,     0,     0,     0,   239,   239,     0,  -172,     0,
2026        0,     0,     0,   357,     0,     0,     0,   969,   157,   158,
2027      159,   160,   161,   162,     0,     0,     0,     0,     0,     0,
2028        0,  -203,  -203,   205,     0,     0,   163,   164,   165,   321,
2029        0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
2030        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2031      166,     0,     0,     0,   245,   245,     0,     0,   321,   321,
2032      321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2033      321,   321,   321,   321,   321,   832,   321,   996,     0,     0,
2034      298,     0,   833,     0,   834,   157,   158,   159,   160,   161,
2035      162,     0,     0,     0,     0,   176,     0,     0,     0,     0,
2036        0,     0,     0,   163,   164,   165,     0,     0,     0,     0,
2037        0,  1075,     0,     0,     0,     0,   835,   206,     0,     0,
2038        0,     0,     0,    23,    24,    25,    26,   166,    27,     0,
2039        0,     0,     0,    32,    33,     0,     0,    36,    37,  1088,
2040       39,    40,    41,    42,     0,   321,     0,     0,     0,     0,
2041        0,     0,     0,   218,     0,    54,    55,     0,     0,     0,
2042        0,     0,     0,     0,     0,     0,   488,    81,   299,   300,
2043        0,   179,   176,     0,   246,   246,   216,     0,     0,     0,
2044        0,    80,   745,     0,     0,     0,     0,     0,     0,     0,
2045        0,    84,   143,     0,     0,     0,     0,   144,   145,   146,
2046        0,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2047     -560,     0,     0,     0,  1102,   156,     0,     0,     0,     0,
2048      157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
2049        0,     0,     0,  -203,  -203,     0,     0,  1148,   163,   164,
2050      165,     0,     0,     0,    81,   177,   178,     0,   179,    85,
2051       86,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2052        0,     0,   166,     0,     0,     0,     0,     0,     0,     0,
2053        0,     0,     0,     0,     0,     0,     0,     0,     0,  1165,
2054        0,     0,     0,     0,     0,     0,   167,   168,   169,   170,
2055      171,   172,   173,   174,     0,     0,   218,    -2,     1,     0,
2056        0,     0,   175,     0,     0,     0,     0,   176,     0,     0,
2057        0,     0,     0,     0,     0,     2,  1214,     0,     0,     0,
2058        0,  -279,     0,     0,     0,     0,     0,     0,     0,     0,
2059        0,     3,     0,     0,     0,     0,     0,     0,     0,     0,
2060        0,     4,     0,     5,     0,     0,     0,     0,     0,     0,
2061        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2062        0,     0,     0,     0,   321,  -423,  -423,  -423,     0,     6,
2063        0,     0,     0,     0,     7,     8,     9,     0,   321,    81,
2064      177,   178,     0,   179,   180,    86,     0,     0,     0,    10,
2065       11,    12,     0,     0,     0,     0,     0,     0,     0,   321,
2066        0,     0,     0,     0,     0,     0,     0,     0,  1253,    13,
2067       14,    15,    16,     0,    17,    18,    19,    20,    21,    22,
2068       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
2069       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2070       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2071       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2072       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2073       72,    73,    74,    75,    76,    77,    78,    79,    80,    -3,
2074        1,     0,     0,     0,     0,    81,    82,    83,    84,     0,
2075       85,    86,    87,     0,     0,     0,     0,     2,     0,     0,
2076        0,     0,     0,  -279,     0,     0,     0,     0,     0,     0,
2077        0,     0,     0,     3,     0,     0,     0,     0,     0,     0,
2078        0,     0,     0,     4,     0,     5,     0,     0,     0,     0,
2079        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2080        0,     0,     0,     0,     0,     0,     0,  -423,  -423,  -423,
2081        0,     6,     0,     0,     0,     0,     7,     8,     9,     0,
2082        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2083        0,    10,    11,    12,     0,     0,     0,     0,     0,     0,
2084        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2085        0,    13,    14,    15,    16,     0,    17,    18,    19,    20,
2086       21,    22,    23,    24,    25,    26,     0,    27,    28,    29,
2087       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2088       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2089       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2090       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2091       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2092       80,     0,     0,     0,     0,     0,     0,    81,    82,    83,
2093       84,   143,    85,    86,    87,     0,   144,   145,   146,     0,
2094      147,   148,   149,   150,   151,   152,   153,   154,   155,  -560,
2095      555,     0,     0,     0,   156,     0,     0,     0,     0,   157,
2096      158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
2097        0,     0,  -203,  -203,     4,     0,     5,   163,   164,   165,
2098        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2099        0,     0,     0,     0,     0,     0,     0,     0,  -423,  -423,
2100     -423,   166,     6,     0,     0,     0,     0,     0,     0,     0,
2101        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2102        0,     0,     0,     0,     0,     0,   168,   169,   170,   171,
2103      172,   173,   174,     0,     0,     0,     0,     0,     0,     0,
2104        0,   175,    13,    14,    15,    16,   176,    17,    18,    19,
2105       20,    21,    22,    23,    24,    25,    26,     0,    27,    28,
2106       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2107       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2108       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2109       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2110       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2111       79,    80,     0,     0,     0,     0,     0,     0,    81,   177,
2112      556,    84,   179,   180,    86,    87,   143,     0,     0,     0,
2113        0,   144,   145,   146,     0,   147,   148,   149,   150,   151,
2114      152,   153,   154,   155,  -172,     0,     0,     0,     0,   156,
2115        0,     0,     0,     0,   157,   158,   159,   160,   161,   162,
2116        0,     0,     0,     0,     0,     0,     0,  -203,  -203,  -279,
2117        0,     0,   163,   164,   165,     0,     0,     0,     0,     0,
2118        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2119        0,     0,     0,  -279,  -279,  -279,   166,     0,     0,     0,
2120        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2121        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2122        0,   168,   169,   170,   171,   172,   173,   174,     0,     0,
2123        0,     0,     0,     0,     0,     0,   175,  -279,  -279,  -279,
2124     -279,   176,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2125     -279,  -279,     0,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2126     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2127     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2128     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2129     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2130     -279,  -279,  -279,  -279,  -279,  -279,  -279,     0,     0,     0,
2131        0,     0,     0,    81,   177,   178,  -279,   179,   180,    86,
2132     -279,   221,     0,     0,     0,     0,   144,   145,   146,     0,
2133        0,   222,   149,   150,   151,   152,   153,   154,   223,  -172,
2134     -564,     0,     0,     0,   224,     0,     0,     0,     0,   157,
2135      158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
2136        0,     0,  -203,  -203,  -279,     0,     0,   163,   164,   165,
2137        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2138        0,     0,     0,     0,     0,     0,     0,     0,  -279,  -279,
2139     -279,   166,     0,     0,     0,     0,     0,     0,     0,     0,
2140        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2141        0,     0,     0,     0,     0,     0,     0,   169,   170,   171,
2142      172,   173,   174,     0,     0,     0,     0,     0,     0,     0,
2143        0,   175,  -279,  -279,  -279,  -279,   176,  -279,  -279,  -279,
2144     -279,  -279,  -279,  -279,  -279,  -279,  -279,     0,  -279,  -279,
2145     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2146     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2147     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2148     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2149     -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
2150     -279,  -279,     0,     0,     0,     0,     0,     0,    81,   177,
2151      178,  -279,   179,   225,   226,  -279,  -170,     0,     0,     0,
2152        0,  -170,  -170,  -170,     0,  -170,  -170,  -170,  -170,  -170,
2153     -170,  -170,  -170,  -170,  -170,  -170,  -170,  -709,  -170,  -170,
2154        0,  -170,     0,  -170,  -170,  -170,  -170,  -170,  -170,  -170,
2155     -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,     0,
2156     -170,     0,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,
2157     -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,
2158     -170,  -170,  -170,     0,     0,     0,  -170,     0,     0,     0,
2159        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2160        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2161        0,  -170,  -170,  -170,  -170,  -170,  -170,  -170,     0,     0,
2162        0,     0,     0,   143,     0,     0,  -170,     0,   144,   145,
2163      146,  -170,   147,   148,   149,   150,   151,   152,   153,   154,
2164      155,  -560,     0,     0,     0,     0,   156,     0,     0,     0,
2165        0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
2166        0,     0,     0,     0,  -203,  -203,     0,     0,     0,   163,
2167      164,   165,     0,     0,     0,     0,     0,     0,     0,     0,
2168        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2169        0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
2170        0,     0,     0,  -170,  -170,  -170,     0,  -170,  -170,  -170,
2171        0,     0,     0,     0,     0,     0,     0,  -532,   168,   169,
2172      170,   171,   172,   173,   174,     0,     0,     0,     0,   221,
2173        0,     0,     0,   175,   144,   145,   146,     0,   176,   222,
2174      149,   150,   151,   152,   153,   154,   223,  -504,  -504,     0,
2175        0,     0,   224,  -504,     0,     0,     0,   157,   158,   159,
2176      160,   161,   162,     0,     0,     0,     0,     0,     0,     0,
2177     -203,  -203,     0,     0,     0,   163,   164,   165,     0,     0,
2178        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2179        0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
2180        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2181       81,   177,   178,     0,   179,   180,    86,     0,     0,     0,
2182        0,     0,     0,  -504,     0,   169,   170,   171,   172,   173,
2183      174,     0,     0,     0,     0,     0,   143,     0,     0,   175,
2184        0,   144,   145,   146,   176,   147,   148,   149,   150,   151,
2185      152,   153,   154,   155,  -560,   653,     0,     0,     0,   156,
2186        0,     0,     0,     0,   157,   158,   159,   160,   161,   162,
2187        0,     0,     0,     0,     0,     0,     0,  -203,  -203,     0,
2188        0,     0,   163,   164,   165,     0,     0,     0,     0,     0,
2189        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2190        0,     0,     0,     0,     0,     0,   166,     0,     0,     0,
2191        0,     0,     0,     0,     0,     0,    81,   177,   178,     0,
2192      179,   225,   226,     0,     0,     0,     0,     0,     0,     0,
2193        0,   168,   169,   170,   171,   172,   173,   174,     0,     0,
2194        0,     0,     0,   143,     0,     0,   175,     0,   144,   145,
2195      146,   176,   147,   148,   149,   150,   151,   152,   153,   154,
2196      155,  -560,     0,     0,     0,     0,   156,     0,     0,     0,
2197        0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
2198        0,     0,     0,     0,  -203,  -203,     0,     0,     0,   163,
2199      164,   165,     0,     0,     0,     0,     0,     0,     0,     0,
2200        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2201        0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
2202        0,     0,     0,    81,   177,   178,     0,   179,   180,    86,
2203        0,     0,     0,     0,     0,     0,     0,     0,   168,   169,
2204      170,   171,   172,   173,   174,     0,     0,     0,     0,   221,
2205        0,     0,     0,   175,   144,   145,   146,     0,   176,   222,
2206      149,   150,   151,   152,   153,   154,   223,  -560,  -564,     0,
2207        0,     0,   224,     0,     0,     0,     0,   157,   158,   159,
2208      160,   161,   162,     0,     0,     0,     0,     0,     0,     0,
2209     -203,  -203,     0,     0,     0,   163,   164,   165,     0,     0,
2210        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2211        0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
2212        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2213       81,   177,   178,     0,   179,   180,    86,     0,     0,     0,
2214        0,     0,     0,  -500,     0,   169,   170,   171,   172,   173,
2215      174,     0,     0,     0,     0,   221,     0,     0,     0,   175,
2216      144,   145,   146,     0,   176,   222,   149,   150,   151,   152,
2217      153,   154,   223,  -560,  -564,     0,     0,     0,   224,     0,
2218        0,     0,     0,   157,   158,   159,   160,   161,   162,     0,
2219        0,     0,     0,     0,     0,     0,  -203,  -203,     0,     0,
2220        0,   163,   164,   165,     0,     0,     0,     0,     0,     0,
2221        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2222        0,     0,     0,     0,     0,   166,     0,     0,     0,     0,
2223        0,     0,     0,     0,     0,     0,    81,   177,   178,     0,
2224      179,   225,   226,     0,     0,     0,     0,     0,     0,     0,
2225        0,   169,   170,   171,   172,   173,   174,     0,     0,     0,
2226        0,     0,     0,     0,     0,   175,     0,   144,   145,   146,
2227      176,   147,   148,   149,   150,   151,   152,   153,   154,   223,
2228     -560,   573,     0,     0,     0,   357,     0,     0,     0,     0,
2229      157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
2230        0,     0,     0,  -203,  -203,     4,     0,     5,   163,   164,
2231      165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2233        0,     0,   166,     6,     0,     0,     0,     0,     0,     0,
2234        0,     0,    81,   177,   178,     0,   179,   225,   226,     0,
2235        0,     0,     0,     0,     0,     0,     0,   168,   169,   170,
2236      171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
2237        0,     0,   574,    13,    14,    15,    16,   176,    17,    18,
2238       19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
2239       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2240       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2241       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2242       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2243       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2244       78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
2245      177,   556,    84,   179,   180,    86,    87,   144,   145,   146,
2246        0,   147,   148,   149,   150,   151,   152,   153,   154,   223,
2247     -560,   654,     0,     0,     0,   357,     0,     0,     0,     0,
2248      157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
2249        0,     0,     0,  -203,  -203,     4,     0,     5,   163,   164,
2250      165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2251        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2252        0,     0,   166,     6,     0,     0,     0,     0,     0,     0,
2253        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2254        0,     0,     0,     0,     0,     0,     0,   168,   169,   170,
2255      171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
2256        0,     0,   175,    13,    14,    15,    16,   176,    17,    18,
2257       19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
2258       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2259       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2260       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2261       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2262       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2263       78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
2264      177,   556,    84,   179,   180,    86,    87,   144,   145,   146,
2265        0,   147,   148,   149,   150,   151,   152,   153,   154,   223,
2266     -560,   666,     0,     0,     0,   357,     0,     0,     0,     0,
2267      157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
2268        0,     0,     0,  -203,  -203,     4,     0,     5,   163,   164,
2269      165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2270        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2271        0,     0,   166,     6,     0,     0,     0,     0,     0,     0,
2272        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2273        0,     0,     0,     0,     0,     0,     0,   168,   169,   170,
2274      171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
2275        0,     0,   667,    13,    14,    15,    16,   176,    17,    18,
2276       19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
2277       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2278       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2279       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2280       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2281       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2282       78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
2283      177,   556,    84,   179,   180,    86,    87,   144,   145,   146,
2284        0,   147,   148,   149,   150,   151,   152,   153,   154,   223,
2285     -560,   665,     0,     0,     0,   357,     0,     0,     0,     0,
2286      157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
2287        0,     0,     0,     0,     0,     0,     0,     0,   163,   164,
2288      165,   144,   145,   146,     0,   147,   148,   149,   150,   151,
2289      152,   153,   154,   223,  -560,   669,     0,     0,     0,   357,
2290        0,     0,   166,     0,   157,   158,   159,   160,   161,   162,
2291        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2292        0,     0,   163,   164,   165,     0,     0,   168,   169,   170,
2293      171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
2294        0,     0,   175,     0,     0,     0,   166,   176,     0,     0,
2295        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2296        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2297        0,   168,   169,   170,   171,   172,   173,   174,     0,     0,
2298        0,     0,     0,     0,     0,     0,   670,     0,   144,   145,
2299      146,   176,   147,   148,   149,   150,   151,   152,   153,   154,
2300      223,  -560,   729,     0,     0,     0,   357,     0,     0,     0,
2301        0,   157,   158,   159,   160,   161,   162,     0,     0,    81,
2302      177,   178,     0,   179,   180,    86,     0,     0,     0,   163,
2303      164,   165,   144,   145,   146,     0,   147,   148,   149,   150,
2304      151,   152,   153,   154,   223,  -560,   807,     0,     0,     0,
2305      357,     0,     0,   166,     0,   157,   158,   159,   160,   161,
2306      162,     0,     0,    81,   177,   178,     0,   179,   180,    86,
2307        0,     0,     0,   163,   164,   165,     0,     0,   168,   169,
2308      170,   171,   172,   173,   174,     0,     0,     0,     0,     0,
2309        0,     0,     0,   175,     0,     0,     0,   166,   176,     0,
2310        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2311        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2312        0,     0,   168,   169,   170,   171,   172,   173,   174,     0,
2313        0,     0,     0,     0,     0,     0,     0,   175,     0,   144,
2314      145,   146,   176,   147,   148,   149,   150,   151,   152,   153,
2315      154,   223,  -560,   808,     0,     0,     0,   357,     0,     0,
2316        0,     0,   157,   158,   159,   160,   161,   162,     0,     0,
2317       81,   177,   178,     0,   179,   180,    86,     0,     0,     0,
2318      163,   164,   165,   144,   145,   146,     0,   147,   148,   149,
2319      150,   151,   152,   153,   154,   223,  -560,   810,     0,     0,
2320        0,   357,     0,     0,   166,     0,   157,   158,   159,   160,
2321      161,   162,     0,     0,    81,   177,   178,     0,   179,   180,
2322       86,     0,     0,     0,   163,   164,   165,     0,     0,   168,
2323      169,   170,   171,   172,   173,   174,     0,     0,     0,     0,
2324        0,     0,     0,     0,   809,     0,     0,     0,   166,   176,
2325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2326        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2327        0,     0,     0,   168,   169,   170,   171,   172,   173,   174,
2328        0,     0,     0,     0,     0,     0,     0,     0,   175,     0,
2329      144,   145,   146,   176,   147,   148,   149,   150,   151,   152,
2330      153,   154,   223,  -560,   943,     0,     0,     0,   357,     0,
2331        0,     0,     0,   157,   158,   159,   160,   161,   162,     0,
2332        0,    81,   177,   178,     0,   179,   180,    86,     0,     0,
2333        0,   163,   164,   165,   144,   145,   146,     0,   147,   148,
2334      149,   150,   151,   152,   153,   154,   223,  -560,     0,     0,
2335        0,     0,   357,     0,     0,   166,     0,   157,   158,   159,
2336      160,   161,   162,     0,     0,    81,   177,   178,     0,   179,
2337      180,    86,     0,     0,     0,   163,   164,   165,     0,     0,
2338      168,   169,   170,   171,   172,   173,   174,     0,     0,     0,
2339        0,     0,     0,     0,     0,   175,     0,     0,     0,   166,
2340      176,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2341        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2342        0,     0,     0,     0,   168,   169,   170,   171,   172,   173,
2343      174,  -136,     0,     0,     0,     0,  -136,     0,     0,   175,
2344        0,     0,     0,     0,   176,     0,     0,     0,     0,     0,
2345        0,     0,     0,     0,     0,     0,     4,     0,     5,     0,
2346        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2347        0,     0,    81,   177,   178,     0,   179,   180,    86,     0,
2348        0,     0,     0,     0,     6,     0,     0,     0,     0,     0,
2349        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2350        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2351        0,     0,     0,     0,     0,     0,    81,   177,   178,     0,
2352      179,   180,    86,     0,    13,    14,    15,    16,     0,    17,
2353       18,    19,    20,    21,    22,    23,    24,    25,    26,     0,
2354       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2355       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2356       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2357       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2358       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2359       77,    78,    79,    80,  -563,     0,     0,     0,     0,     0,
2360        0,     0,   138,    84,     0,     0,     0,    87,     0,     0,
2361        0,     0,     0,     0,     0,     0,     0,     0,     4,     0,
2362        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2364        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2365        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2366        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2367        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2368        0,     0,     0,     0,     0,     0,    13,    14,    15,    16,
2369        0,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2370       26,     0,    27,    28,    29,    30,    31,    32,    33,    34,
2371       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2372       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2373       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2374       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2375       75,    76,    77,    78,    79,    80,     0,     0,     0,     0,
2376        0,   711,  -703,     0,   138,    84,   298,     0,     0,    87,
2377        0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
2378        0,     0,   630,     0,     0,     0,     0,   298,     0,   163,
2379      164,   165,   157,   158,   159,   160,   161,   162,     0,     0,
2380        0,     0,     0,     0,     0,     0,     0,     0,     0,   711,
2381      163,   164,   165,   166,   298,     0,     0,     0,     0,   157,
2382      158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
2383        0,     0,     0,     0,   166,     0,     0,   163,   164,   165,
2384        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2385        0,     0,     0,     0,     0,     0,     0,     0,   176,     0,
2386        0,   166,     0,     0,     0,     0,     0,     0,     0,     0,
2387        0,     0,     0,     0,     0,     0,     0,     0,     0,   176,
2388        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2389        0,     0,     0,     0,     0,  -279,     0,     0,     0,     0,
2390        0,     0,     0,     0,     0,     3,   176,     0,     0,     0,
2391        0,     0,     0,     0,     0,     4,     0,     0,     0,     0,
2392        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2393       81,   299,   300,     0,   179,     0,     0,     0,     0,     0,
2394        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2395        0,    81,   299,   300,     0,   179,     0,     0,     0,     0,
2396        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2397        0,     0,     0,     0,     0,     0,     0,     0,    81,   299,
2398      300,     0,   179,    13,    14,    15,    16,     0,    17,    18,
2399       19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
2400       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2401       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2402       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2403       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2404       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2405       78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
2406       82,    83,    84,   298,    85,    86,    87,     0,   157,   158,
2407      159,   160,   161,   162,     0,     0,     0,     0,     0,     0,
2408        0,  -203,  -203,     0,   298,   516,   163,   164,   165,   157,
2409      158,   159,   160,   161,   162,   298,     0,     0,   596,     0,
2410      157,   158,   159,   160,   161,   162,     0,   163,   164,   165,
2411      166,     0,     0,     0,     0,     0,   298,   994,   163,   164,
2412      165,   157,   158,   159,   160,   161,   162,   298,     0,     0,
2413      691,   166,   157,   158,   159,   160,   161,   162,     0,   163,
2414      164,   165,   166,     0,     0,     0,     0,     0,     0,     0,
2415      163,   164,   165,     0,     0,   176,     0,     0,     0,   298,
2416     -259,     0,     0,   166,   157,   158,   159,   160,   161,   162,
2417        0,     0,     0,     0,   166,     0,   176,     0,     0,     0,
2418        0,     0,   163,   164,   165,     0,   298,   176,     0,     0,
2419        0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
2420        0,     0,     0,     0,     0,     0,   166,     0,   176,   163,
2421      164,   165,     0,     0,     0,   345,     0,     0,     0,   176,
2422      157,   158,   159,   160,   161,   162,     0,    81,   299,   300,
2423        0,   179,     0,   166,     0,     0,     0,     0,   163,   164,
2424      165,     0,     0,     0,     0,     0,     0,     0,    81,   299,
2425      300,   176,   179,     0,     0,     0,     0,     0,     0,    81,
2426      299,   300,   166,   179,   724,     0,     0,     0,     0,   157,
2427      158,   159,   160,   161,   162,     0,     0,     0,   176,     0,
2428       81,   299,   300,     0,   179,     0,     0,   163,   164,   165,
2429        0,    81,   299,   300,   726,   179,     0,     0,     0,   157,
2430      158,   159,   160,   161,   162,     0,     0,   176,     0,     0,
2431        0,   166,     0,     0,     0,     0,     0,   163,   164,   165,
2432        0,     0,     0,    81,   299,   300,     0,   179,     0,     0,
2433        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2434        0,   166,     0,     0,     0,     0,     0,     0,     0,     0,
2435       81,   299,   300,   732,   179,     0,   176,     0,   733,   734,
2436      735,   736,   737,   738,     0,     0,     0,     0,     0,     0,
2437        0,     0,     0,     0,     0,     0,   163,   739,   740,    81,
2438      299,   300,     0,   179,     0,     0,   176,     0,     0,     0,
2439        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2440      741,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2441        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2442        0,     0,     0,     0,     0,     0,     0,     0,    81,   299,
2443      300,     0,   179,     0,     0,     0,     0,     0,     0,     0,
2444        0,     0,     0,     0,     0,   176,     0,     0,     0,     0,
2445        0,     0,     0,     0,     4,     0,     5,     0,    81,   299,
2446      300,     0,   179,     0,     0,     0,     0,     0,     0,     0,
2447        0,     0,     0,     0,     0,     0,     0,     0,  -423,  -423,
2448     -423,     0,     6,     0,     0,     0,     0,     0,     0,     0,
2449        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2451        0,     0,     0,     0,     0,     0,     0,    81,   742,   743,
2452        0,   179,    13,    14,    15,    16,     0,    17,    18,    19,
2453       20,    21,    22,    23,    24,    25,    26,     0,    27,    28,
2454       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2455       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2456       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2457       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2458       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2459       79,    80,     4,     0,     5,     0,     0,     0,     0,     0,
2460      138,    84,     0,     0,     0,    87,     0,     0,     0,     0,
2461        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2462        6,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2463        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2464        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2465        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2466       13,    14,    15,    16,     0,    17,    18,    19,    20,    21,
2467       22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
2468       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2469       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2470       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2471       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2472       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2473        4,     0,     0,     0,     0,     0,    81,  1107,   138,    84,
2474        0,     0,     0,    87,     0,     0,     0,     0,     0,     0,
2475        0,     0,     0,     0,  -423,  -423,  -423,     0,     0,     0,
2476        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2477        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2478        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2479        0,     0,     0,     0,     0,     0,     0,     0,    13,    14,
2480       15,    16,     0,    17,    18,    19,    20,    21,    22,    23,
2481       24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
2482       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2483       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2484       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2485       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2486       73,    74,    75,    76,    77,    78,    79,    80,     4,     0,
2487        0,     0,     0,     0,     0,     0,   138,    84,     0,     0,
2488        0,    87,     0,     0,     0,     0,     0,     0,     0,     0,
2489        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2490        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2491        0,     0,     0,     0,     0,     0,    10,    11,    12,     0,
2492        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2493        0,     0,     0,     0,     0,     0,    13,    14,    15,    16,
2494        0,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2495       26,     0,    27,    28,    29,    30,    31,    32,    33,    34,
2496       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2497       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2498       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2499       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2500       75,    76,    77,    78,    79,    80,     4,     0,     5,     0,
2501        0,     0,     0,     0,   138,    84,     0,     0,     0,    87,
2502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2503        0,     0,     0,     0,     6,     0,     0,     0,     0,     0,
2504        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2506        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2507        0,     0,     0,     0,    13,    14,    15,    16,     0,    17,
2508       18,    19,    20,    21,    22,    23,    24,    25,    26,     0,
2509       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2510       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2511       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2512       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2513       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2514       77,    78,    79,    80,     4,     0,     0,     0,     0,     0,
2515        0,     0,   138,    84,     0,     0,     0,    87,     0,     0,
2516        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2517        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2518        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2519        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2520        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2521        0,     0,    13,    14,    15,    16,     0,    17,    18,    19,
2522       20,    21,    22,    23,    24,    25,    26,     0,    27,    28,
2523       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2524       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2525       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2526       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2527       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2528       79,    80,     0,     0,     0,     0,     0,     0,     0,     0,
2529      138,    84,     0,     0,     0,    87
2530 };
2531
2532 static const short yycheck[] =
2533 {
2534        0,     0,     5,   441,   144,     5,     0,   122,   334,     9,
2535       10,    11,    12,   461,   405,   132,   406,   395,   396,     0,
2536      407,   459,   397,   398,     5,   598,   659,   551,     9,   939,
2537       10,   357,   628,   553,   235,   659,     3,   659,   705,   313,
2538      403,   404,    24,   157,   158,   159,   160,   161,   162,   931,
2539      948,    10,    34,   951,    27,   399,   400,   401,   402,   442,
2540      663,   224,   315,     5,    10,   967,   229,   268,   231,   507,
2541       21,     5,   832,   791,    25,     0,     0,   837,     5,    24,
2542        5,   841,     7,    25,   663,   559,    56,   720,   806,    89,
2543       89,    25,    28,   475,    24,    89,   720,    24,   720,  1119,
2544     1120,     0,    21,   577,    34,    18,    25,    34,    89,    45,
2545     1053,    24,    21,   844,    25,    26,    25,    28,    24,   850,
2546      693,    34,   122,    21,    21,    21,    41,    25,    34,    25,
2547       27,    50,    51,    28,    45,   659,    11,    12,    19,   659,
2548      140,   122,    57,  1053,  1054,    54,    55,    10,    34,    21,
2549       45,   151,    10,    25,    50,    51,   156,    25,    26,   140,
2550     1042,  1043,   600,   130,    89,    89,   492,  1187,    21,  1071,
2551      151,   288,    25,   140,   612,   175,   156,   844,   103,   681,
2552     1078,    18,  1080,   850,   944,    24,    39,    26,   791,   114,
2553      115,    11,    12,    18,  1137,    34,   720,   156,    23,  1142,
2554      720,   201,    88,   806,    19,     5,   188,   189,   190,   209,
2555      156,   211,   791,   213,   415,   140,   216,   187,  1128,   192,
2556     1130,   201,    41,   476,   224,    25,    24,   806,   345,   229,
2557      613,   231,   614,   213,     5,  1117,   216,   951,    57,    18,
2558      971,   192,   201,   663,   244,   245,   188,   189,   190,  1192,
2559      209,   193,   194,   579,   213,   201,    88,   216,   188,   189,
2560      708,   188,   189,   209,     5,   245,    21,   213,   659,   659,
2561      216,   663,   659,   436,   437,   188,   189,   190,   392,   393,
2562      394,   659,   188,   189,   659,    21,   245,   287,   287,    25,
2563      290,   291,   292,   156,   817,   928,   659,   663,   156,   245,
2564       24,   441,   188,   189,   971,    24,   287,   193,   194,   290,
2565      291,   292,   312,   312,   816,   659,    26,   819,   318,   459,
2566      188,   189,   190,  1083,    34,   193,   194,  1237,    21,   720,
2567      720,   312,    22,   720,    27,   609,   303,   318,   201,    50,
2568       51,    21,   720,   201,    34,   720,   209,    27,    21,   224,
2569      213,   209,    25,   216,   229,   213,   231,   720,   216,    34,
2570      360,    34,    35,    36,  1078,    24,  1080,   507,   368,   244,
2571      370,   791,    24,   188,   189,   190,   720,   302,   193,   194,
2572      497,   495,   245,   979,   822,    24,   806,   245,   188,   189,
2573      190,    32,    33,   193,   194,   833,  1029,   921,    18,   791,
2574       18,    21,   975,   923,   224,  1029,    21,  1029,    18,   229,
2575       25,   231,     5,   861,   806,   415,    21,   188,   189,   190,
2576       25,    24,   193,   194,   244,   791,    21,   950,    16,   952,
2577       25,    24,    25,    26,    29,   415,   436,   437,    21,   433,
2578      806,    34,    25,   443,    24,   445,   445,   188,   189,   190,
2579      444,    22,   193,   194,   454,    26,   415,    28,    54,    55,
2580      600,     5,   465,    26,   445,   465,   583,   467,    34,   415,
2581       16,    34,   612,   454,    45,   475,    25,    26,   478,    28,
2582       24,  1114,   482,    26,   465,    28,   467,    26,    16,    28,
2583       34,    89,    90,    24,   475,    26,    45,   478,   188,   189,
2584      190,   482,    45,   193,   194,  1029,    45,    18,   475,  1029,
2585       21,   511,    24,   188,   189,   190,    15,   634,   193,   194,
2586      520,   521,    34,   121,   122,    25,    26,   918,    28,   919,
2587      908,   909,   102,   920,    21,   910,   911,   135,    25,   520,
2588      521,    25,    26,    16,    28,    45,   112,   113,   114,     6,
2589        7,  1184,   415,   916,   917,    22,    21,   415,   558,   559,
2590       25,   436,   437,    50,    51,   559,   566,   566,   912,   913,
2591      914,   915,    37,    38,   574,    37,    38,   577,   578,    24,
2592       20,    21,    27,   577,    26,   566,    28,    52,    53,    34,
2593       52,    53,    22,   708,    21,   188,   189,   190,    25,   558,
2594      193,   194,    22,    45,    10,    11,    12,   724,    18,   726,
2595       29,    21,   558,    23,   614,   732,   436,   437,    39,   733,
2596      734,   735,   736,   737,   738,   188,   189,   190,    40,    18,
2597      193,   194,    21,   614,    37,    38,    25,    95,  1029,  1029,
2598      184,   185,  1029,    18,   188,   189,    21,   614,   192,    52,
2599       53,  1029,    42,    43,  1029,   655,   656,   931,    21,   659,
2600      986,    56,    25,    13,    14,    15,  1029,   667,   668,    24,
2601      670,    26,   184,   185,    37,    38,   188,   189,    24,    21,
2602      192,    27,   822,    25,   684,  1029,   686,    95,    34,    52,
2603       53,    18,    22,   833,    21,   558,   621,   697,    25,   973,
2604      558,    19,    21,   684,   704,   686,    25,   707,   708,   709,
2605       21,    22,    34,    21,  1162,    21,   697,    25,    18,    25,
2606      720,    21,   689,   704,    32,    33,   707,   708,    34,    35,
2607       36,    50,    51,    24,    23,    26,   876,    26,    24,    28,
2608       26,   708,   192,   188,   189,   190,   861,   192,    34,     5,
2609      156,    10,    11,    12,   104,   105,   106,   107,   108,   109,
2610      110,   111,    22,   113,  1038,    22,   116,    21,    24,    25,
2611       26,    25,    24,  1211,  1048,    24,    21,    26,    34,    28,
2612       25,    24,   132,    26,   134,   135,   136,    32,    33,    19,
2613      140,   905,   906,   907,  1068,   201,    45,    21,    21,    48,
2614       49,    25,    25,   209,    32,    33,   156,   213,  1246,   809,
2615      216,  1085,    24,   163,    26,   188,   189,   190,   224,   225,
2616      193,   194,    34,   229,    21,   231,    21,    21,    25,   829,
2617       25,    25,   832,    95,   834,   185,    21,   837,   244,   245,
2618       25,   841,   188,   189,   190,    20,   192,    95,   829,  1123,
2619       21,   832,    24,   834,    25,    21,   837,    18,    21,    25,
2620      841,   861,    25,    68,    69,    70,   188,   189,   190,   869,
2621     1144,   193,   194,   195,   224,    24,    27,    26,   992,    28,
2622      861,    23,    21,    21,    54,    55,    25,    25,   869,   814,
2623       18,    21,   817,    21,   861,    25,    45,   156,    25,    48,
2624       49,    21,   188,   189,   190,    25,   211,   193,   194,   195,
2625       18,    21,    18,    21,   264,    25,    58,    59,    60,    61,
2626       62,    63,    64,    65,    66,    67,    21,    18,    21,    21,
2627       25,   931,    25,    25,    18,    50,    51,    21,   288,   939,
2628      290,   291,   201,    21,   944,    21,    23,    25,   298,    25,
2629      209,    21,    21,   303,   213,    25,    25,   216,    21,    24,
2630       21,    18,    25,   944,    25,   224,    22,   373,   318,    21,
2631      229,    21,   231,    25,    25,    25,   188,   189,   190,    21,
2632     1097,   193,   194,    25,    21,   244,   245,    18,    25,    18,
2633       21,    24,    21,    20,    21,   345,    24,   997,   998,    34,
2634       35,    36,    20,    21,    10,    11,    12,   357,    25,   415,
2635       34,    35,    36,    52,    53,    54,   997,   998,    21,    22,
2636       32,    33,    18,   948,    18,   950,   951,   952,    18,  1029,
2637      436,   437,   114,   115,    18,    18,     9,    19,    25,    11,
2638     1040,    11,  1042,  1043,    24,    91,  1040,  1162,    24,    27,
2639       21,  1051,    19,  1053,  1054,   360,    19,    19,    19,    91,
2640       24,    21,    18,   368,    22,   370,    25,    21,    25,    21,
2641     1070,  1211,    25,    11,    25,  1075,  1075,    24,    24,    24,
2642       20,    25,   432,  1083,    27,  1225,    23,    19,  1088,  1088,
2643       20,    19,    23,  1093,  1075,    21,    21,    24,    27,     5,
2644       19,   451,  1083,   453,    25,   455,  1246,  1088,   458,    22,
2645       24,   461,  1093,   463,  1114,  1115,  1116,  1117,    25,  1119,
2646     1120,  1088,   472,    20,    20,   475,    25,    27,  1128,    27,
2647     1130,    73,   482,  1133,  1115,  1116,    25,  1137,   443,  1139,
2648     1140,    18,  1142,    21,    25,  1148,    21,   497,  1148,    22,
2649      156,    39,   558,  1078,    24,  1080,   415,    29,  1139,  1140,
2650       40,    56,  1162,    73,    74,    75,    76,  1148,    25,   189,
2651       80,    81,    82,    83,    84,    85,    86,   436,   437,    91,
2652       91,  1162,    91,    91,  1184,  1185,  1186,  1187,    91,    25,
2653       25,    18,  1192,    22,    25,   201,    24,    91,    20,    25,
2654       25,    25,    18,   209,  1185,  1186,   511,   213,    25,    21,
2655      216,    18,  1212,  1212,    27,   192,    20,    40,   224,    18,
2656       21,    23,    18,   229,    24,   231,    91,    22,   194,    22,
2657      580,  1212,    21,   583,    21,    20,    22,  1237,   244,   245,
2658       20,    91,    25,    25,    20,    18,    27,   196,    40,   599,
2659       27,    25,    20,   939,   559,    27,   606,   607,   608,    25,
2660      318,  1237,  1205,  1133,   614,  1032,   695,  1105,    89,  1041,
2661     1184,  1070,   577,   578,   829,   889,   838,    10,    19,    20,
2662      185,   804,   583,    24,   634,    26,  1212,    28,    29,    30,
2663       31,    32,    33,    34,   686,   645,   646,   684,   130,   558,
2664      861,   303,   707,    12,  1168,   244,    47,    48,    49,   659,
2665      355,   511,   415,   711,    70,    71,    72,    73,    74,    75,
2666       76,    77,    78,    79,   720,   675,   867,  1029,   866,    -1,
2667       71,    -1,    -1,   683,    -1,   685,    -1,    -1,    -1,   689,
2668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   698,   699,
2669      655,   656,    -1,   703,    -1,    -1,   112,   707,   708,    -1,
2670      116,    -1,   118,   668,   120,    -1,    -1,    -1,    -1,   125,
2671      720,    -1,    -1,    -1,   724,   116,   726,   144,    -1,    -1,
2672       -1,   137,   732,   139,    -1,    -1,    -1,    -1,    -1,    -1,
2673      157,   158,   159,   160,   161,   162,    -1,   164,   165,   132,
2674       -1,    -1,    -1,    -1,   709,    -1,    -1,    -1,    -1,   415,
2675       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2676       -1,   154,    -1,   156,    -1,    -1,   182,    -1,    18,    -1,
2677      436,   437,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2678       30,    31,    32,    33,    34,    -1,    -1,   188,   189,   190,
2679       -1,   192,   193,   194,    -1,    -1,    -1,    47,    48,    49,
2680       -1,   348,   812,    -1,    -1,    -1,    -1,    -1,   201,    -1,
2681       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
2682      213,    71,    -1,   216,    -1,    -1,    -1,   374,    -1,    -1,
2683       -1,   224,   379,   380,   381,   382,   383,   384,   385,   386,
2684      387,   388,   389,    23,    -1,    -1,    -1,    -1,    -1,    -1,
2685      860,   861,   245,   863,    -1,   271,    -1,    -1,    -1,    -1,
2686       -1,    -1,    -1,    -1,    -1,   412,   116,    -1,    -1,    -1,
2687       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
2688       60,    61,    62,    63,    64,    65,    66,    67,    -1,    -1,
2689      306,    -1,   558,   309,    -1,    10,    11,    12,    -1,    -1,
2690       18,   317,    -1,    -1,   320,   298,    24,    -1,    -1,    -1,
2691       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
2692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
2693       48,    49,   325,   326,   327,   328,    -1,   947,   188,   189,
2694      190,    -1,   192,    -1,   954,    -1,    -1,    -1,    -1,    -1,
2695       -1,    -1,   345,    71,    -1,    -1,   349,    -1,    -1,    -1,
2696       -1,    -1,    -1,    -1,   357,   392,   393,   394,   395,   396,
2697      397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
2698      407,    -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    10,
2699       11,    12,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
2700       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2701       -1,    -1,    -1,    -1,   441,    -1,   432,    -1,    -1,  1029,
2702       -1,    -1,   415,    -1,    -1,    -1,   442,    -1,    -1,    -1,
2703      423,   447,   459,    -1,    -1,   451,    -1,   453,    -1,    -1,
2704       -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
2705       12,    -1,    -1,    -1,   470,    -1,    -1,    -1,   474,    -1,
2706       -1,    -1,  1072,    -1,    -1,    -1,    -1,    -1,   495,    -1,
2707      188,   189,   190,    -1,   192,    -1,    -1,    -1,  1088,    -1,
2708      507,  1091,    -1,   630,    -1,    -1,   201,  1097,    -1,    -1,
2709     1100,  1101,    -1,    -1,   209,   642,    -1,    -1,   213,    -1,
2710       -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   224,
2711       -1,    -1,    -1,    -1,   229,    -1,   231,    -1,    -1,    -1,
2712       -1,    -1,    -1,    -1,   551,    -1,   553,    -1,    -1,   244,
2713      245,    -1,    19,  1143,    -1,   156,    -1,    24,    -1,    -1,
2714     1150,  1151,    29,    30,    31,    32,    33,    34,    -1,    -1,
2715      697,    -1,  1162,    -1,    -1,    42,    43,    -1,    -1,   552,
2716       47,    48,    49,    -1,   711,   558,    -1,    -1,    10,    11,
2717       12,    -1,    -1,   600,    -1,    -1,    -1,    -1,  1188,    -1,
2718      201,    -1,   598,    -1,    71,   612,    -1,    -1,   209,    -1,
2719       -1,    -1,   213,    -1,   156,   216,    -1,   613,  1208,  1209,
2720       -1,    -1,    -1,   224,    -1,  1215,    -1,    -1,   229,    -1,
2721      231,    -1,    -1,    -1,    -1,    -1,   632,    -1,    -1,    -1,
2722      647,   648,    -1,   244,   245,    -1,    -1,    -1,    -1,   116,
2723       -1,    -1,   659,    -1,    -1,   628,    -1,    -1,    -1,   201,
2724       -1,    -1,    -1,    -1,   660,    -1,   662,   209,    -1,    -1,
2725       -1,   213,    -1,    -1,   216,    -1,    -1,    -1,    -1,    -1,
2726       -1,    -1,   224,    -1,   657,    -1,    -1,   229,   661,   231,
2727       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,    -1,
2728       -1,    -1,   244,   245,    -1,   832,    -1,    -1,    -1,    -1,
2729      837,    -1,    -1,   720,   841,    -1,    -1,    -1,    -1,    -1,
2730      415,   188,   189,   190,    -1,   192,   733,   734,   735,   736,
2731      737,   738,   739,   740,   156,    -1,    -1,    -1,    -1,    -1,
2732      867,   436,   437,    -1,    -1,    -1,   719,    -1,   744,    -1,
2733       -1,   724,    -1,   726,    -1,    -1,    -1,    -1,    -1,   732,
2734       -1,   888,   889,    -1,    -1,    -1,    -1,   894,   895,   896,
2735      897,   898,   899,   900,   901,   902,   903,   904,    -1,   201,
2736       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
2737       -1,   213,    -1,    -1,   216,    -1,    -1,    -1,    -1,    -1,
2738       -1,    -1,   224,   799,   800,    -1,    -1,   229,    -1,   231,
2739       -1,    -1,    -1,    -1,   415,   822,    -1,   944,    -1,    -1,
2740       -1,    -1,   244,   245,    -1,    -1,   833,    -1,    -1,    -1,
2741       -1,    -1,    -1,    -1,    -1,   436,   437,    -1,    19,    -1,
2742       -1,    -1,    -1,    24,    -1,    -1,    -1,   843,    29,    30,
2743       31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
2744       -1,    42,    43,   558,    -1,    -1,    47,    48,    49,   876,
2745       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
2746       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2747       71,    -1,    -1,    -1,   436,   437,    -1,    -1,   905,   906,
2748      907,   908,   909,   910,   911,   912,   913,   914,   915,   916,
2749      917,   918,   919,   920,   921,    19,   923,   890,    -1,    -1,
2750       24,    -1,    26,    -1,    28,    29,    30,    31,    32,    33,
2751       34,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
2752       -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,
2753       -1,   947,    -1,    -1,    -1,    -1,  1083,   558,    -1,    -1,
2754       -1,    -1,    -1,   123,   124,   125,   126,    71,   128,    -1,
2755       -1,    -1,    -1,   133,   134,    -1,    -1,   137,   138,   975,
2756      140,   141,   142,   143,    -1,   992,    -1,    -1,    -1,    -1,
2757       -1,    -1,    -1,   415,    -1,   155,   156,    -1,    -1,    -1,
2758       -1,    -1,    -1,    -1,    -1,    -1,   979,   188,   189,   190,
2759       -1,   192,   116,    -1,   436,   437,   558,    -1,    -1,    -1,
2760       -1,   181,  1029,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2761       -1,   191,     1,    -1,    -1,    -1,    -1,     6,     7,     8,
2762       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2763       19,    -1,    -1,    -1,  1027,    24,    -1,    -1,    -1,    -1,
2764       29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2765       -1,    -1,    -1,    42,    43,    -1,    -1,  1073,    47,    48,
2766       49,    -1,    -1,    -1,   188,   189,   190,    -1,   192,   193,
2767      194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2768       -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1092,
2770       -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
2771       99,   100,   101,   102,    -1,    -1,   558,     0,     1,    -1,
2772       -1,    -1,   111,    -1,    -1,    -1,    -1,   116,    -1,    -1,
2773       -1,    -1,    -1,    -1,    -1,    18,  1152,    -1,    -1,    -1,
2774       -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2775       -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2776       -1,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,
2777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2778       -1,    -1,    -1,    -1,  1211,    68,    69,    70,    -1,    72,
2779       -1,    -1,    -1,    -1,    77,    78,    79,    -1,  1225,   188,
2780      189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,    92,
2781       93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1246,
2782       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1244,   112,
2783      113,   114,   115,    -1,   117,   118,   119,   120,   121,   122,
2784      123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
2785      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2786      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2787      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2788      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2789      173,   174,   175,   176,   177,   178,   179,   180,   181,     0,
2790        1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,    -1,
2791      193,   194,   195,    -1,    -1,    -1,    -1,    18,    -1,    -1,
2792       -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,
2793       -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,
2794       -1,    -1,    -1,    44,    -1,    46,    -1,    -1,    -1,    -1,
2795       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
2797       -1,    72,    -1,    -1,    -1,    -1,    77,    78,    79,    -1,
2798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2799       -1,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
2800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2801       -1,   112,   113,   114,   115,    -1,   117,   118,   119,   120,
2802      121,   122,   123,   124,   125,   126,    -1,   128,   129,   130,
2803      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2804      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2805      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2806      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2807      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2808      181,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,
2809      191,     1,   193,   194,   195,    -1,     6,     7,     8,    -1,
2810       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2811       20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2812       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2813       -1,    -1,    42,    43,    44,    -1,    46,    47,    48,    49,
2814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
2816       70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2817       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2818       -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,    99,
2819      100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2820       -1,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2821      120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
2822      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2823      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2824      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2825      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2826      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2827      180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
2828      190,   191,   192,   193,   194,   195,     1,    -1,    -1,    -1,
2829       -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
2830       15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
2831       -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
2832       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
2833       -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
2834       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2835       -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
2836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2838       -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
2839       -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,
2840      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2841      125,   126,    -1,   128,   129,   130,   131,   132,   133,   134,
2842      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2843      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2844      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2845      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2846      175,   176,   177,   178,   179,   180,   181,    -1,    -1,    -1,
2847       -1,    -1,    -1,   188,   189,   190,   191,   192,   193,   194,
2848      195,     1,    -1,    -1,    -1,    -1,     6,     7,     8,    -1,
2849       -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2850       20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2851       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2852       -1,    -1,    42,    43,    44,    -1,    -1,    47,    48,    49,
2853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2854       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
2855       70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
2858      100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2859       -1,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2860      120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
2861      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2862      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2863      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2864      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2865      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2866      180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
2867      190,   191,   192,   193,   194,   195,     1,    -1,    -1,    -1,
2868       -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
2869       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2870       -1,    26,    -1,    28,    29,    30,    31,    32,    33,    34,
2871       35,    36,    37,    38,    39,    40,    41,    42,    43,    -1,
2872       45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
2873       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2874       65,    66,    67,    -1,    -1,    -1,    71,    -1,    -1,    -1,
2875       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2877       -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
2878       -1,    -1,    -1,     1,    -1,    -1,   111,    -1,     6,     7,
2879        8,   116,    10,    11,    12,    13,    14,    15,    16,    17,
2880       18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,
2881       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
2882       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    47,
2883       48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2884       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2885       -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
2886       -1,    -1,    -1,   188,   189,   190,    -1,   192,   193,   194,
2887       -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,
2888       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,     1,
2889       -1,    -1,    -1,   111,     6,     7,     8,    -1,   116,    11,
2890       12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2891       -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,    31,
2892       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2893       42,    43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
2894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2895       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
2896       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2897      188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
2898       -1,    -1,    -1,    95,    -1,    97,    98,    99,   100,   101,
2899      102,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,   111,
2900       -1,     6,     7,     8,   116,    10,    11,    12,    13,    14,
2901       15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
2902       -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
2903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
2904       -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
2905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2906       -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
2907       -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
2908      192,   193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2909       -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
2910       -1,    -1,    -1,     1,    -1,    -1,   111,    -1,     6,     7,
2911        8,   116,    10,    11,    12,    13,    14,    15,    16,    17,
2912       18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,
2913       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
2914       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    47,
2915       48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2917       -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
2918       -1,    -1,    -1,   188,   189,   190,    -1,   192,   193,   194,
2919       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,
2920       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,     1,
2921       -1,    -1,    -1,   111,     6,     7,     8,    -1,   116,    11,
2922       12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2923       -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2924       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2925       42,    43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
2926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2927       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
2928       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2929      188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
2930       -1,    -1,    -1,    95,    -1,    97,    98,    99,   100,   101,
2931      102,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,   111,
2932        6,     7,     8,    -1,   116,    11,    12,    13,    14,    15,
2933       16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
2934       -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
2935       -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
2936       -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,
2937       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2938       -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
2939       -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
2940      192,   193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2941       -1,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
2942       -1,    -1,    -1,    -1,    -1,   111,    -1,     6,     7,     8,
2943      116,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2944       19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
2945       29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2946       -1,    -1,    -1,    42,    43,    44,    -1,    46,    47,    48,
2947       49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2948       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2949       -1,    -1,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
2950       -1,    -1,   188,   189,   190,    -1,   192,   193,   194,    -1,
2951       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
2952       99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
2953       -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
2954      119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
2955      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2956      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2957      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2958      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2959      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2960      179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
2961      189,   190,   191,   192,   193,   194,   195,     6,     7,     8,
2962       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2963       19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
2964       29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2965       -1,    -1,    -1,    42,    43,    44,    -1,    46,    47,    48,
2966       49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2967       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2968       -1,    -1,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
2969       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
2971       99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
2972       -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
2973      119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
2974      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2975      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2976      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2977      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2978      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2979      179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
2980      189,   190,   191,   192,   193,   194,   195,     6,     7,     8,
2981       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2982       19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
2983       29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2984       -1,    -1,    -1,    42,    43,    44,    -1,    46,    47,    48,
2985       49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2986       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2987       -1,    -1,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
2988       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2989       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
2990       99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
2991       -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
2992      119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
2993      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2994      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2995      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2996      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2997      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2998      179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
2999      189,   190,   191,   192,   193,   194,   195,     6,     7,     8,
3000       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3001       19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
3002       29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
3003       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,
3004       49,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
3005       15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
3006       -1,    -1,    71,    -1,    29,    30,    31,    32,    33,    34,
3007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3008       -1,    -1,    47,    48,    49,    -1,    -1,    96,    97,    98,
3009       99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
3010       -1,    -1,   111,    -1,    -1,    -1,    71,   116,    -1,    -1,
3011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3012       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3013       -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
3014       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,     6,     7,
3015        8,   116,    10,    11,    12,    13,    14,    15,    16,    17,
3016       18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,
3017       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,   188,
3018      189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,    47,
3019       48,    49,     6,     7,     8,    -1,    10,    11,    12,    13,
3020       14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
3021       24,    -1,    -1,    71,    -1,    29,    30,    31,    32,    33,
3022       34,    -1,    -1,   188,   189,   190,    -1,   192,   193,   194,
3023       -1,    -1,    -1,    47,    48,    49,    -1,    -1,    96,    97,
3024       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,
3025       -1,    -1,    -1,   111,    -1,    -1,    -1,    71,   116,    -1,
3026       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3027       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3028       -1,    -1,    96,    97,    98,    99,   100,   101,   102,    -1,
3029       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,     6,
3030        7,     8,   116,    10,    11,    12,    13,    14,    15,    16,
3031       17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,
3032       -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
3033      188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
3034       47,    48,    49,     6,     7,     8,    -1,    10,    11,    12,
3035       13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
3036       -1,    24,    -1,    -1,    71,    -1,    29,    30,    31,    32,
3037       33,    34,    -1,    -1,   188,   189,   190,    -1,   192,   193,
3038      194,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,    96,
3039       97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
3040       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    71,   116,
3041       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3042       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3043       -1,    -1,    -1,    96,    97,    98,    99,   100,   101,   102,
3044       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
3045        6,     7,     8,   116,    10,    11,    12,    13,    14,    15,
3046       16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
3047       -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
3048       -1,   188,   189,   190,    -1,   192,   193,   194,    -1,    -1,
3049       -1,    47,    48,    49,     6,     7,     8,    -1,    10,    11,
3050       12,    13,    14,    15,    16,    17,    18,    19,    -1,    -1,
3051       -1,    -1,    24,    -1,    -1,    71,    -1,    29,    30,    31,
3052       32,    33,    34,    -1,    -1,   188,   189,   190,    -1,   192,
3053      193,   194,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
3054       96,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
3055       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    71,
3056      116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3057       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3058       -1,    -1,    -1,    -1,    96,    97,    98,    99,   100,   101,
3059      102,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,   111,
3060       -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
3061       -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    46,    -1,
3062       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3063       -1,    -1,   188,   189,   190,    -1,   192,   193,   194,    -1,
3064       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,
3065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3066       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3067       -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
3068      192,   193,   194,    -1,   112,   113,   114,   115,    -1,   117,
3069      118,   119,   120,   121,   122,   123,   124,   125,   126,    -1,
3070      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
3071      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3072      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3073      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3074      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3075      178,   179,   180,   181,    20,    -1,    -1,    -1,    -1,    -1,
3076       -1,    -1,   190,   191,    -1,    -1,    -1,   195,    -1,    -1,
3077       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
3078       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3079       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3080       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3081       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3083       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3084       -1,    -1,    -1,    -1,    -1,    -1,   112,   113,   114,   115,
3085       -1,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3086      126,    -1,   128,   129,   130,   131,   132,   133,   134,   135,
3087      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3088      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3089      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3090      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3091      176,   177,   178,   179,   180,   181,    -1,    -1,    -1,    -1,
3092       -1,    19,    20,    -1,   190,   191,    24,    -1,    -1,   195,
3093       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
3094       -1,    -1,    19,    -1,    -1,    -1,    -1,    24,    -1,    47,
3095       48,    49,    29,    30,    31,    32,    33,    34,    -1,    -1,
3096       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
3097       47,    48,    49,    71,    24,    -1,    -1,    -1,    -1,    29,
3098       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
3099       -1,    -1,    -1,    -1,    71,    -1,    -1,    47,    48,    49,
3100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3101       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
3102       -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3103       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
3104       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3105       -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
3106       -1,    -1,    -1,    -1,    -1,    34,   116,    -1,    -1,    -1,
3107       -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
3108       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3109      188,   189,   190,    -1,   192,    -1,    -1,    -1,    -1,    -1,
3110       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3111       -1,   188,   189,   190,    -1,   192,    -1,    -1,    -1,    -1,
3112       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3113       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
3114      190,    -1,   192,   112,   113,   114,   115,    -1,   117,   118,
3115      119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
3116      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3117      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3118      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3119      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3120      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3121      179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
3122      189,   190,   191,    24,   193,   194,   195,    -1,    29,    30,
3123       31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
3124       -1,    42,    43,    -1,    24,    25,    47,    48,    49,    29,
3125       30,    31,    32,    33,    34,    24,    -1,    -1,    27,    -1,
3126       29,    30,    31,    32,    33,    34,    -1,    47,    48,    49,
3127       71,    -1,    -1,    -1,    -1,    -1,    24,    25,    47,    48,
3128       49,    29,    30,    31,    32,    33,    34,    24,    -1,    -1,
3129       27,    71,    29,    30,    31,    32,    33,    34,    -1,    47,
3130       48,    49,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3131       47,    48,    49,    -1,    -1,   116,    -1,    -1,    -1,    24,
3132       25,    -1,    -1,    71,    29,    30,    31,    32,    33,    34,
3133       -1,    -1,    -1,    -1,    71,    -1,   116,    -1,    -1,    -1,
3134       -1,    -1,    47,    48,    49,    -1,    24,   116,    -1,    -1,
3135       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
3136       -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,   116,    47,
3137       48,    49,    -1,    -1,    -1,    24,    -1,    -1,    -1,   116,
3138       29,    30,    31,    32,    33,    34,    -1,   188,   189,   190,
3139       -1,   192,    -1,    71,    -1,    -1,    -1,    -1,    47,    48,
3140       49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
3141      190,   116,   192,    -1,    -1,    -1,    -1,    -1,    -1,   188,
3142      189,   190,    71,   192,    24,    -1,    -1,    -1,    -1,    29,
3143       30,    31,    32,    33,    34,    -1,    -1,    -1,   116,    -1,
3144      188,   189,   190,    -1,   192,    -1,    -1,    47,    48,    49,
3145       -1,   188,   189,   190,    24,   192,    -1,    -1,    -1,    29,
3146       30,    31,    32,    33,    34,    -1,    -1,   116,    -1,    -1,
3147       -1,    71,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
3148       -1,    -1,    -1,   188,   189,   190,    -1,   192,    -1,    -1,
3149       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3150       -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3151      188,   189,   190,    24,   192,    -1,   116,    -1,    29,    30,
3152       31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
3153       -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,   188,
3154      189,   190,    -1,   192,    -1,    -1,   116,    -1,    -1,    -1,
3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3156       71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3157       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3158       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
3159      190,    -1,   192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3160       -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
3161       -1,    -1,    -1,    -1,    44,    -1,    46,    -1,   188,   189,
3162      190,    -1,   192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
3164       70,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3166       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3167       -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,
3168       -1,   192,   112,   113,   114,   115,    -1,   117,   118,   119,
3169      120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
3170      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3171      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3172      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3173      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3174      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3175      180,   181,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,
3176      190,   191,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
3177       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3178       72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3179       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3182      112,   113,   114,   115,    -1,   117,   118,   119,   120,   121,
3183      122,   123,   124,   125,   126,    -1,   128,   129,   130,   131,
3184      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
3185      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
3186      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
3187      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
3188      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
3189       44,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,
3190       -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,
3191       -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,
3192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3193       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3194       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3195       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,   113,
3196      114,   115,    -1,   117,   118,   119,   120,   121,   122,   123,
3197      124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
3198      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3199      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3200      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3201      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3202      174,   175,   176,   177,   178,   179,   180,   181,    44,    -1,
3203       -1,    -1,    -1,    -1,    -1,    -1,   190,   191,    -1,    -1,
3204       -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3205       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3206       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3207       -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    94,    -1,
3208       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3209       -1,    -1,    -1,    -1,    -1,    -1,   112,   113,   114,   115,
3210       -1,   117,   118,   119,   120,   121,   122,   123,   124,   125,
3211      126,    -1,   128,   129,   130,   131,   132,   133,   134,   135,
3212      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
3213      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
3214      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
3215      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
3216      176,   177,   178,   179,   180,   181,    44,    -1,    46,    -1,
3217       -1,    -1,    -1,    -1,   190,   191,    -1,    -1,    -1,   195,
3218       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3219       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,
3220       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3223       -1,    -1,    -1,    -1,   112,   113,   114,   115,    -1,   117,
3224      118,   119,   120,   121,   122,   123,   124,   125,   126,    -1,
3225      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
3226      138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3227      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3228      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3229      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3230      178,   179,   180,   181,    44,    -1,    -1,    -1,    -1,    -1,
3231       -1,    -1,   190,   191,    -1,    -1,    -1,   195,    -1,    -1,
3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3233       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3234       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3235       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3236       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3237       -1,    -1,   112,   113,   114,   115,    -1,   117,   118,   119,
3238      120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
3239      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3240      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3241      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3242      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3243      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3244      180,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3245      190,   191,    -1,    -1,    -1,   195
3246 };
3247
3248 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3249    symbol of state STATE-NUM.  */
3250 static const unsigned short yystos[] =
3251 {
3252        0,     1,    18,    34,    44,    46,    72,    77,    78,    79,
3253       92,    93,    94,   112,   113,   114,   115,   117,   118,   119,
3254      120,   121,   122,   123,   124,   125,   126,   128,   129,   130,
3255      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3256      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3257      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3258      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3259      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3260      181,   188,   189,   190,   191,   193,   194,   195,   198,   199,
3261      200,   201,   202,   206,   212,   215,   216,   256,   261,   301,
3262      302,   308,   310,   322,   332,   333,   334,   335,   336,   337,
3263      338,   339,   340,   341,   342,   343,   345,   347,   350,   359,
3264      364,   369,   373,   466,   467,   468,   112,   113,   114,   371,
3265      372,   373,    24,   306,   312,   313,   345,   369,   190,   345,
3266      203,   190,   467,     1,     6,     7,     8,    10,    11,    12,
3267       13,    14,    15,    16,    17,    18,    24,    29,    30,    31,
3268       32,    33,    34,    47,    48,    49,    71,    95,    96,    97,
3269       98,    99,   100,   101,   102,   111,   116,   189,   190,   192,
3270      193,   269,   271,   273,   275,   278,   281,   282,   283,   284,
3271      285,   286,   287,   288,   289,   290,   292,   294,   297,   298,
3272      386,   391,   401,   402,   403,   405,   408,   412,   413,   421,
3273      427,   428,   429,   432,   434,   440,   460,   462,   463,   466,
3274      467,     1,    11,    18,    24,   193,   194,   298,   387,   389,
3275      390,   391,   394,   396,   397,   399,   400,   403,   405,   408,
3276      413,   417,   426,   428,   433,   460,   463,   387,   388,   310,
3277      310,   310,   359,   359,   359,   359,   359,   359,   359,   359,
3278      359,   359,     0,   200,    26,   311,    19,   257,   259,    18,
3279      464,    24,   345,   348,   310,   310,   310,   310,   310,   310,
3280      310,   310,   359,   310,   348,   348,   310,   359,    88,   359,
3281       68,    69,    70,   359,   206,   359,   371,   373,    24,   189,
3282      190,   298,   310,   344,   381,   466,    21,   310,   310,   309,
3283      310,   359,   359,   204,   205,   209,   310,   345,   373,   467,
3284       24,   273,   294,   300,   409,    24,    24,    24,    24,   467,
3285       18,    18,    18,   298,   270,   298,   381,   402,   281,   281,
3286      281,   281,   281,   281,   310,    24,   273,   273,    24,    24,
3287       16,    16,    16,    16,    15,   102,   404,    24,   385,   386,
3288      391,   403,   405,   408,   411,   413,   426,   429,   432,   434,
3289      460,   461,   463,   435,    24,    26,    48,    49,   359,    23,
3290       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
3291      276,   310,    34,    35,    36,    32,    33,    50,    51,    37,
3292       38,    52,    53,    54,    55,    29,    39,    40,    56,    41,
3293       57,    18,    21,   402,    95,    19,   420,   402,   385,   402,
3294      192,   402,    22,    24,   298,   396,   413,    18,    95,   396,
3295      396,   301,   345,   422,    19,    20,   398,   389,   402,    95,
3296       27,   310,    24,   258,   422,   359,    18,   369,   346,   381,
3297      310,   467,   310,   467,    19,   467,   298,    25,   345,    26,
3298      310,   373,   382,   384,    25,   359,    18,   359,    18,    23,
3299      369,   464,    26,   311,    24,   359,   209,     5,   359,   370,
3300      376,   377,   378,   406,    22,   298,   298,   298,   298,   299,
3301       18,    18,    24,   411,    25,    25,    25,    24,   381,   297,
3302      298,    18,    18,    18,    18,    18,   404,     6,     7,   411,
3303      385,    19,   419,   385,   385,   413,    25,   272,   297,   298,
3304       28,    45,   297,   297,   297,   297,   297,   297,   297,   297,
3305      297,   297,   297,   279,   277,   281,   281,   281,   282,   282,
3306      283,   283,   284,   284,   284,   284,   285,   285,   286,   287,
3307      288,   291,   295,   293,   297,    20,   190,   402,   421,   422,
3308      414,     9,    11,   298,    25,    24,   359,   301,   396,    11,
3309      300,    25,   370,    20,   111,   385,   418,   422,   425,   260,
3310      369,   359,    91,    21,    19,   310,   359,    19,   310,   359,
3311      366,   367,   467,    19,   310,   310,    27,   300,    24,   384,
3312       26,   310,   306,   195,   305,   306,   314,   315,   307,   359,
3313       91,    27,   310,    24,   359,   205,   374,   375,   467,    25,
3314       21,   310,   380,   467,    22,    25,   431,    25,    18,    25,
3315       19,   281,   381,    25,    21,    25,   300,   410,    25,   418,
3316       11,    24,    21,    25,    27,   467,   467,    42,    43,   280,
3317      289,   298,   290,    20,    20,   425,   430,    24,    25,   395,
3318      369,    24,    27,   207,    25,    20,    20,   111,   425,    20,
3319      111,   385,   411,   310,    23,   303,   346,    20,   355,    19,
3320       20,   357,    19,    20,    21,    23,   365,    27,    25,   359,
3321      376,    27,   300,    24,    21,   310,   310,   310,    23,   464,
3322      300,    25,   370,   205,    21,   213,     5,   379,   345,    25,
3323      299,    19,   297,   423,   424,   359,   381,   407,    22,    24,
3324      436,   297,   310,   310,    24,   273,    24,   273,    22,    20,
3325      385,   298,    24,    29,    30,    31,    32,    33,    34,    48,
3326       49,    71,   189,   190,   271,   273,   276,   282,   283,   284,
3327      285,   286,   287,   288,   289,   290,   292,   437,   439,   440,
3328      441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
3329      451,   452,   453,   454,   455,   458,   466,   298,   359,    73,
3330       74,    75,    76,    80,    81,    82,    83,    84,    85,    86,
3331      233,   235,   237,   238,   240,   241,   242,   247,   248,   254,
3332      255,   323,   324,   326,   327,   328,   208,    20,    20,   111,
3333       20,    25,   304,   310,   415,    20,   351,   415,    20,   353,
3334      310,   367,   310,   366,   382,    25,    27,    25,   376,   359,
3335      246,   247,    19,    26,    28,   297,   317,   318,   319,   320,
3336      467,   310,   310,    27,   210,    25,   310,     5,   467,   234,
3337      236,   238,   240,   242,   248,   324,   328,   380,   206,   310,
3338      368,   373,   383,   384,   385,    18,   423,    21,   465,    21,
3339       25,    22,   298,   437,   381,   381,   296,    25,   298,   381,
3340      281,   281,   281,   281,   281,   281,   273,   273,    24,    24,
3341       26,    48,    49,   359,    23,    58,    59,    60,    61,    62,
3342       63,    64,    65,    66,    67,    34,    35,    36,    32,    33,
3343       50,    51,    37,    38,    52,    53,    54,    55,    29,    39,
3344       40,    56,    41,    57,    25,   438,    25,   189,   244,   245,
3345      239,   243,   233,    91,    91,    91,   359,   359,    91,   330,
3346      334,    91,   233,    20,   310,   316,   215,   345,   360,   361,
3347      415,   360,   415,   300,    20,    25,    25,   305,    18,   317,
3348      321,   300,   467,   317,    23,   320,    22,   317,    91,   359,
3349      234,   211,    25,   214,   234,    24,   310,   195,   368,   392,
3350      465,   424,    20,   274,   467,    25,    25,    25,    25,   294,
3351       18,    25,    25,   297,    25,   272,   298,    28,    45,   297,
3352      297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
3353      281,   281,   281,   282,   282,   283,   283,   284,   284,   284,
3354      284,   285,   285,   286,   287,   288,   289,   456,   290,    21,
3355       18,   440,    40,    89,    90,   121,   122,   135,   249,   250,
3356      251,   253,    24,    34,   189,   190,   262,   263,   265,   464,
3357      466,   325,     5,    24,    34,   184,   185,   189,   192,   217,
3358      218,   224,   225,   226,   228,   229,   230,   231,   331,   466,
3359      329,   317,    18,    21,   310,   359,   361,   416,   360,   416,
3360      360,   310,    20,    21,    27,   316,   234,   464,   359,   299,
3361       20,    25,    26,    28,    18,   411,   281,    21,    25,    27,
3362      467,   467,   298,   439,   244,    21,   464,   189,   252,   301,
3363      466,   251,   263,   263,    26,    28,    45,    21,   464,    24,
3364       34,   189,   266,   268,   466,   220,   228,   230,    24,   230,
3365       23,    56,   187,   223,    52,    53,    54,   227,    26,    28,
3366       45,   219,    24,   464,   267,   268,   316,   310,   359,    18,
3367       22,   362,   363,   369,   356,   416,   358,   416,    20,   317,
3368      464,    91,   373,   393,   310,   298,   467,   194,   459,   381,
3369      310,   310,    22,   250,    25,    27,   263,   264,   440,   467,
3370      467,   263,   266,   266,    26,    28,    45,    21,   464,    22,
3371       32,    33,   232,    25,   230,   218,   221,   230,   224,   230,
3372      228,    27,   192,   467,   467,    22,   228,   310,   464,    18,
3373      306,   310,    21,   310,   359,    22,    20,   352,    20,   354,
3374       91,    25,    27,   414,    25,   457,    27,    25,    27,   264,
3375      467,   467,   266,   310,   196,   222,   228,    40,    27,   222,
3376       25,   310,   310,   300,   363,    18,   310,    20,    20,   294,
3377       27,    25,   221,   359,   300,   349
3378 };
3379
3380 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
3381 # define YYSIZE_T __SIZE_TYPE__
3382 #endif
3383 #if ! defined (YYSIZE_T) && defined (size_t)
3384 # define YYSIZE_T size_t
3385 #endif
3386 #if ! defined (YYSIZE_T)
3387 # if defined (__STDC__) || defined (__cplusplus)
3388 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
3389 #  define YYSIZE_T size_t
3390 # endif
3391 #endif
3392 #if ! defined (YYSIZE_T)
3393 # define YYSIZE_T unsigned int
3394 #endif
3395
3396 #define yyerrok         (yyerrstatus = 0)
3397 #define yyclearin       (yychar = YYEMPTY)
3398 #define YYEMPTY         (-2)
3399 #define YYEOF           0
3400
3401 #define YYACCEPT        goto yyacceptlab
3402 #define YYABORT         goto yyabortlab
3403 #define YYERROR         goto yyerrlab1
3404
3405
3406 /* Like YYERROR except do call yyerror.  This remains here temporarily
3407    to ease the transition to the new meaning of YYERROR, for GCC.
3408    Once GCC version 2 has supplanted version 1, this can go.  */
3409
3410 #define YYFAIL          goto yyerrlab
3411
3412 #define YYRECOVERING()  (!!yyerrstatus)
3413
3414 #define YYBACKUP(Token, Value)                                  \
3415 do                                                              \
3416   if (yychar == YYEMPTY && yylen == 1)                          \
3417     {                                                           \
3418       yychar = (Token);                                         \
3419       yylval = (Value);                                         \
3420       yytoken = YYTRANSLATE (yychar);                           \
3421       YYPOPSTACK;                                               \
3422       goto yybackup;                                            \
3423     }                                                           \
3424   else                                                          \
3425     {                                                           \
3426       yyerror ("syntax error: cannot back up");\
3427       YYERROR;                                                  \
3428     }                                                           \
3429 while (0)
3430
3431 #define YYTERROR        1
3432 #define YYERRCODE       256
3433
3434 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
3435    are run).  */
3436
3437 #ifndef YYLLOC_DEFAULT
3438 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
3439   Current.first_line   = Rhs[1].first_line;      \
3440   Current.first_column = Rhs[1].first_column;    \
3441   Current.last_line    = Rhs[N].last_line;       \
3442   Current.last_column  = Rhs[N].last_column;
3443 #endif
3444
3445 /* YYLEX -- calling `yylex' with the right arguments.  */
3446
3447 #ifdef YYLEX_PARAM
3448 # define YYLEX yylex (YYLEX_PARAM)
3449 #else
3450 # define YYLEX yylex ()
3451 #endif
3452
3453 /* Enable debugging if requested.  */
3454 #if YYDEBUG
3455
3456 # ifndef YYFPRINTF
3457 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3458 #  define YYFPRINTF fprintf
3459 # endif
3460
3461 # define YYDPRINTF(Args)                        \
3462 do {                                            \
3463   if (yydebug)                                  \
3464     YYFPRINTF Args;                             \
3465 } while (0)
3466
3467 # define YYDSYMPRINT(Args)                      \
3468 do {                                            \
3469   if (yydebug)                                  \
3470     yysymprint Args;                            \
3471 } while (0)
3472
3473 # define YYDSYMPRINTF(Title, Token, Value, Location)            \
3474 do {                                                            \
3475   if (yydebug)                                                  \
3476     {                                                           \
3477       YYFPRINTF (stderr, "%s ", Title);                         \
3478       yysymprint (stderr,                                       \
3479                   Token, Value);        \
3480       YYFPRINTF (stderr, "\n");                                 \
3481     }                                                           \
3482 } while (0)
3483
3484 /*------------------------------------------------------------------.
3485 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3486 | TOP (cinluded).                                                   |
3487 `------------------------------------------------------------------*/
3488
3489 #if defined (__STDC__) || defined (__cplusplus)
3490 static void
3491 yy_stack_print (short *bottom, short *top)
3492 #else
3493 static void
3494 yy_stack_print (bottom, top)
3495     short *bottom;
3496     short *top;
3497 #endif
3498 {
3499   YYFPRINTF (stderr, "Stack now");
3500   for (/* Nothing. */; bottom <= top; ++bottom)
3501     YYFPRINTF (stderr, " %d", *bottom);
3502   YYFPRINTF (stderr, "\n");
3503 }
3504
3505 # define YY_STACK_PRINT(Bottom, Top)                            \
3506 do {                                                            \
3507   if (yydebug)                                                  \
3508     yy_stack_print ((Bottom), (Top));                           \
3509 } while (0)
3510
3511
3512 /*------------------------------------------------.
3513 | Report that the YYRULE is going to be reduced.  |
3514 `------------------------------------------------*/
3515
3516 #if defined (__STDC__) || defined (__cplusplus)
3517 static void
3518 yy_reduce_print (int yyrule)
3519 #else
3520 static void
3521 yy_reduce_print (yyrule)
3522     int yyrule;
3523 #endif
3524 {
3525   int yyi;
3526   unsigned int yylineno = yyrline[yyrule];
3527   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
3528              yyrule - 1, yylineno);
3529   /* Print the symbols being reduced, and their result.  */
3530   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
3531     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
3532   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
3533 }
3534
3535 # define YY_REDUCE_PRINT(Rule)          \
3536 do {                                    \
3537   if (yydebug)                          \
3538     yy_reduce_print (Rule);             \
3539 } while (0)
3540
3541 /* Nonzero means print parse trace.  It is left uninitialized so that
3542    multiple parsers can coexist.  */
3543 int yydebug;
3544 #else /* !YYDEBUG */
3545 # define YYDPRINTF(Args)
3546 # define YYDSYMPRINT(Args)
3547 # define YYDSYMPRINTF(Title, Token, Value, Location)
3548 # define YY_STACK_PRINT(Bottom, Top)
3549 # define YY_REDUCE_PRINT(Rule)
3550 #endif /* !YYDEBUG */
3551
3552
3553 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3554 #ifndef YYINITDEPTH
3555 # define YYINITDEPTH 200
3556 #endif
3557
3558 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3559    if the built-in stack extension method is used).
3560
3561    Do not make this value too large; the results are undefined if
3562    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
3563    evaluated with infinite-precision integer arithmetic.  */
3564
3565 #if YYMAXDEPTH == 0
3566 # undef YYMAXDEPTH
3567 #endif
3568
3569 #ifndef YYMAXDEPTH
3570 # define YYMAXDEPTH 10000
3571 #endif
3572
3573 \f
3574
3575 #if YYERROR_VERBOSE
3576
3577 # ifndef yystrlen
3578 #  if defined (__GLIBC__) && defined (_STRING_H)
3579 #   define yystrlen strlen
3580 #  else
3581 /* Return the length of YYSTR.  */
3582 static YYSIZE_T
3583 #   if defined (__STDC__) || defined (__cplusplus)
3584 yystrlen (const char *yystr)
3585 #   else
3586 yystrlen (yystr)
3587      const char *yystr;
3588 #   endif
3589 {
3590   register const char *yys = yystr;
3591
3592   while (*yys++ != '\0')
3593     continue;
3594
3595   return yys - yystr - 1;
3596 }
3597 #  endif
3598 # endif
3599
3600 # ifndef yystpcpy
3601 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
3602 #   define yystpcpy stpcpy
3603 #  else
3604 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3605    YYDEST.  */
3606 static char *
3607 #   if defined (__STDC__) || defined (__cplusplus)
3608 yystpcpy (char *yydest, const char *yysrc)
3609 #   else
3610 yystpcpy (yydest, yysrc)
3611      char *yydest;
3612      const char *yysrc;
3613 #   endif
3614 {
3615   register char *yyd = yydest;
3616   register const char *yys = yysrc;
3617
3618   while ((*yyd++ = *yys++) != '\0')
3619     continue;
3620
3621   return yyd - 1;
3622 }
3623 #  endif
3624 # endif
3625
3626 #endif /* !YYERROR_VERBOSE */
3627
3628 \f
3629
3630 #if YYDEBUG
3631 /*--------------------------------.
3632 | Print this symbol on YYOUTPUT.  |
3633 `--------------------------------*/
3634
3635 #if defined (__STDC__) || defined (__cplusplus)
3636 static void
3637 yysymprint (FILE *yyoutput, int yytype, cgrammar_YYSTYPE *yyvaluep)
3638 #else
3639 static void
3640 yysymprint (yyoutput, yytype, yyvaluep)
3641     FILE *yyoutput;
3642     int yytype;
3643     cgrammar_YYSTYPE *yyvaluep;
3644 #endif
3645 {
3646   /* Pacify ``unused variable'' warnings.  */
3647   (void) yyvaluep;
3648
3649   if (yytype < YYNTOKENS)
3650     {
3651       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3652 # ifdef YYPRINT
3653       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3654 # endif
3655     }
3656   else
3657     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3658
3659   switch (yytype)
3660     {
3661       default:
3662         break;
3663     }
3664   YYFPRINTF (yyoutput, ")");
3665 }
3666
3667 #endif /* ! YYDEBUG */
3668 /*-----------------------------------------------.
3669 | Release the memory associated to this symbol.  |
3670 `-----------------------------------------------*/
3671
3672 #if defined (__STDC__) || defined (__cplusplus)
3673 static void
3674 yydestruct (int yytype, cgrammar_YYSTYPE *yyvaluep)
3675 #else
3676 static void
3677 yydestruct (yytype, yyvaluep)
3678     int yytype;
3679     cgrammar_YYSTYPE *yyvaluep;
3680 #endif
3681 {
3682   /* Pacify ``unused variable'' warnings.  */
3683   (void) yyvaluep;
3684
3685   switch (yytype)
3686     {
3687
3688       default:
3689         break;
3690     }
3691 }
3692 \f
3693
3694 /* Prevent warnings from -Wmissing-prototypes.  */
3695
3696 #ifdef YYPARSE_PARAM
3697 # if defined (__STDC__) || defined (__cplusplus)
3698 int yyparse (void *YYPARSE_PARAM);
3699 # else
3700 int yyparse ();
3701 # endif
3702 #else /* ! YYPARSE_PARAM */
3703 #if defined (__STDC__) || defined (__cplusplus)
3704 int yyparse (void);
3705 #else
3706 int yyparse ();
3707 #endif
3708 #endif /* ! YYPARSE_PARAM */
3709
3710
3711
3712 /* The lookahead symbol.  */
3713 int yychar;
3714
3715 /* The semantic value of the lookahead symbol.  */
3716 cgrammar_YYSTYPE yylval;
3717
3718 /* Number of syntax errors so far.  */
3719 int yynerrs;
3720
3721
3722
3723 /*----------.
3724 | yyparse.  |
3725 `----------*/
3726
3727 #ifdef YYPARSE_PARAM
3728 # if defined (__STDC__) || defined (__cplusplus)
3729 int yyparse (void *YYPARSE_PARAM)
3730 # else
3731 int yyparse (YYPARSE_PARAM)
3732   void *YYPARSE_PARAM;
3733 # endif
3734 #else /* ! YYPARSE_PARAM */
3735 #if defined (__STDC__) || defined (__cplusplus)
3736 int
3737 yyparse (void)
3738 #else
3739 int
3740 yyparse ()
3741
3742 #endif
3743 #endif
3744 {
3745   
3746   register int yystate;
3747   register int yyn;
3748   int yyresult;
3749   /* Number of tokens to shift before error messages enabled.  */
3750   int yyerrstatus;
3751   /* Lookahead token as an internal (translated) token number.  */
3752   int yytoken = 0;
3753
3754   /* Three stacks and their tools:
3755      `yyss': related to states,
3756      `yyvs': related to semantic values,
3757      `yyls': related to locations.
3758
3759      Refer to the stacks thru separate pointers, to allow yyoverflow
3760      to reallocate them elsewhere.  */
3761
3762   /* The state stack.  */
3763   short yyssa[YYINITDEPTH];
3764   short *yyss = yyssa;
3765   register short *yyssp;
3766
3767   /* The semantic value stack.  */
3768   cgrammar_YYSTYPE yyvsa[YYINITDEPTH];
3769   cgrammar_YYSTYPE *yyvs = yyvsa;
3770   register cgrammar_YYSTYPE *yyvsp;
3771
3772
3773
3774 #define YYPOPSTACK   (yyvsp--, yyssp--)
3775
3776   YYSIZE_T yystacksize = YYINITDEPTH;
3777
3778   /* The variables used to return semantic value and location from the
3779      action routines.  */
3780   cgrammar_YYSTYPE yyval;
3781
3782
3783   /* When reducing, the number of symbols on the RHS of the reduced
3784      rule.  */
3785   int yylen;
3786
3787   YYDPRINTF ((stderr, "Starting parse\n"));
3788
3789   yystate = 0;
3790   yyerrstatus = 0;
3791   yynerrs = 0;
3792   yychar = YYEMPTY;             /* Cause a token to be read.  */
3793
3794   /* Initialize stack pointers.
3795      Waste one element of value and location stack
3796      so that they stay on the same level as the state stack.
3797      The wasted elements are never initialized.  */
3798
3799   yyssp = yyss;
3800   yyvsp = yyvs;
3801
3802   goto yysetstate;
3803
3804 /*------------------------------------------------------------.
3805 | yynewstate -- Push a new state, which is found in yystate.  |
3806 `------------------------------------------------------------*/
3807  yynewstate:
3808   /* In all cases, when you get here, the value and location stacks
3809      have just been pushed. so pushing a state here evens the stacks.
3810      */
3811   yyssp++;
3812
3813  yysetstate:
3814   *yyssp = yystate;
3815
3816   if (yyss + yystacksize - 1 <= yyssp)
3817     {
3818       /* Get the current used size of the three stacks, in elements.  */
3819       YYSIZE_T yysize = yyssp - yyss + 1;
3820
3821 #ifdef yyoverflow
3822       {
3823         /* Give user a chance to reallocate the stack. Use copies of
3824            these so that the &'s don't force the real ones into
3825            memory.  */
3826         cgrammar_YYSTYPE *yyvs1 = yyvs;
3827         short *yyss1 = yyss;
3828
3829
3830         /* Each stack pointer address is followed by the size of the
3831            data in use in that stack, in bytes.  This used to be a
3832            conditional around just the two extra args, but that might
3833            be undefined if yyoverflow is a macro.  */
3834         yyoverflow ("parser stack overflow",
3835                     &yyss1, yysize * sizeof (*yyssp),
3836                     &yyvs1, yysize * sizeof (*yyvsp),
3837
3838                     &yystacksize);
3839
3840         yyss = yyss1;
3841         yyvs = yyvs1;
3842       }
3843 #else /* no yyoverflow */
3844 # ifndef YYSTACK_RELOCATE
3845       goto yyoverflowlab;
3846 # else
3847       /* Extend the stack our own way.  */
3848       if (YYMAXDEPTH <= yystacksize)
3849         goto yyoverflowlab;
3850       yystacksize *= 2;
3851       if (YYMAXDEPTH < yystacksize)
3852         yystacksize = YYMAXDEPTH;
3853
3854       {
3855         short *yyss1 = yyss;
3856         union yyalloc *yyptr =
3857           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3858         if (! yyptr)
3859           goto yyoverflowlab;
3860         YYSTACK_RELOCATE (yyss);
3861         YYSTACK_RELOCATE (yyvs);
3862
3863 #  undef YYSTACK_RELOCATE
3864         if (yyss1 != yyssa)
3865           YYSTACK_FREE (yyss1);
3866       }
3867 # endif
3868 #endif /* no yyoverflow */
3869
3870       yyssp = yyss + yysize - 1;
3871       yyvsp = yyvs + yysize - 1;
3872
3873
3874       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3875                   (unsigned long int) yystacksize));
3876
3877       if (yyss + yystacksize - 1 <= yyssp)
3878         YYABORT;
3879     }
3880
3881   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3882
3883   goto yybackup;
3884
3885 /*-----------.
3886 | yybackup.  |
3887 `-----------*/
3888 yybackup:
3889
3890 /* Do appropriate processing given the current state.  */
3891 /* Read a lookahead token if we need one and don't already have one.  */
3892 /* yyresume: */
3893
3894   /* First try to decide what to do without reference to lookahead token.  */
3895
3896   yyn = yypact[yystate];
3897   if (yyn == YYPACT_NINF)
3898     goto yydefault;
3899
3900   /* Not known => get a lookahead token if don't already have one.  */
3901
3902   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
3903   if (yychar == YYEMPTY)
3904     {
3905       YYDPRINTF ((stderr, "Reading a token: "));
3906       yychar = YYLEX;
3907     }
3908
3909   if (yychar <= YYEOF)
3910     {
3911       yychar = yytoken = YYEOF;
3912       YYDPRINTF ((stderr, "Now at end of input.\n"));
3913     }
3914   else
3915     {
3916       yytoken = YYTRANSLATE (yychar);
3917       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
3918     }
3919
3920   /* If the proper action on seeing token YYTOKEN is to reduce or to
3921      detect an error, take that action.  */
3922   yyn += yytoken;
3923   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3924     goto yydefault;
3925   yyn = yytable[yyn];
3926   if (yyn <= 0)
3927     {
3928       if (yyn == 0 || yyn == YYTABLE_NINF)
3929         goto yyerrlab;
3930       yyn = -yyn;
3931       goto yyreduce;
3932     }
3933
3934   if (yyn == YYFINAL)
3935     YYACCEPT;
3936
3937   /* Shift the lookahead token.  */
3938   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
3939
3940   /* Discard the token being shifted unless it is eof.  */
3941   if (yychar != YYEOF)
3942     yychar = YYEMPTY;
3943
3944   *++yyvsp = yylval;
3945
3946
3947   /* Count tokens shifted since error; after three, turn off error
3948      status.  */
3949   if (yyerrstatus)
3950     yyerrstatus--;
3951
3952   yystate = yyn;
3953   goto yynewstate;
3954
3955
3956 /*-----------------------------------------------------------.
3957 | yydefault -- do the default action for the current state.  |
3958 `-----------------------------------------------------------*/
3959 yydefault:
3960   yyn = yydefact[yystate];
3961   if (yyn == 0)
3962     goto yyerrlab;
3963   goto yyreduce;
3964
3965
3966 /*-----------------------------.
3967 | yyreduce -- Do a reduction.  |
3968 `-----------------------------*/
3969 yyreduce:
3970   /* yyn is the number of a rule to reduce with.  */
3971   yylen = yyr2[yyn];
3972
3973   /* If YYLEN is nonzero, implement the default value of the action:
3974      `$$ = $1'.
3975
3976      Otherwise, the following line sets YYVAL to garbage.
3977      This behavior is undocumented and Bison
3978      users should not rely upon it.  Assigning to YYVAL
3979      unconditionally makes the parser a bit smaller, and it avoids a
3980      GCC warning that YYVAL may be used uninitialized.  */
3981   yyval = yyvsp[1-yylen];
3982
3983
3984   YY_REDUCE_PRINT (yyn);
3985   switch (yyn)
3986     {
3987         case 4:
3988
3989     { context_checkGlobalScope (); ;}
3990     break;
3991
3992   case 5:
3993
3994     { context_checkGlobalScope (); ;}
3995     break;
3996
3997   case 6:
3998
3999     { uentry_clearDecl (); ;}
4000     break;
4001
4002   case 7:
4003
4004     { uentry_clearDecl (); ;}
4005     break;
4006
4007   case 8:
4008
4009     { uentry_clearDecl (); ;}
4010     break;
4011
4012   case 9:
4013
4014     { uentry_clearDecl (); ;}
4015     break;
4016
4017   case 10:
4018
4019     { uentry_clearDecl (); ;}
4020     break;
4021
4022   case 11:
4023
4024     { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;}
4025     break;
4026
4027   case 12:
4028
4029     { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;}
4030     break;
4031
4032   case 13:
4033
4034     { uentry_clearDecl (); ;}
4035     break;
4036
4037   case 14:
4038
4039     { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;}
4040     break;
4041
4042   case 15:
4043
4044     { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;}
4045     break;
4046
4047   case 16:
4048
4049     { context_enterFunctionHeader (); ;}
4050     break;
4051
4052   case 17:
4053
4054     { 
4055      declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); 
4056      context_exitFunctionHeader (); 
4057      lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
4058    ;}
4059     break;
4060
4061   case 18:
4062
4063     { 
4064      qtype qint = qtype_create (ctype_int);
4065      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
4066      qtype_free (qint);
4067    ;}
4068     break;
4069
4070   case 19:
4071
4072     { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;}
4073     break;
4074
4075   case 21:
4076
4077     { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;}
4078     break;
4079
4080   case 22:
4081
4082     { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;}
4083     break;
4084
4085   case 23:
4086
4087     { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;}
4088     break;
4089
4090   case 24:
4091
4092     { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;}
4093     break;
4094
4095   case 25:
4096
4097     {
4098      exprNode_findValue (yyvsp[-2].expr);
4099      idDecl_notExpectingFunction (yyvsp[-5].ntyp);
4100
4101      if (exprNode_hasValue (yyvsp[-2].expr)) 
4102        {
4103          yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), 
4104                                                                   exprNode_getLongValue (yyvsp[-2].expr)));
4105        } 
4106      else
4107        {
4108          yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp))); 
4109        }
4110
4111      lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
4112    ;}
4113     break;
4114
4115   case 26:
4116
4117     { setCurrentParams (uentryList_missingParams); ;}
4118     break;
4119
4120   case 27:
4121
4122     { /* need to support globals and modifies here! */
4123      functionClauseList fcl;
4124      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
4125                                     uentryList_makeMissingParams ());
4126      
4127      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
4128
4129      /*drl 7/25/01 added*/
4130      setImplicitfcnConstraints();
4131
4132      DPRINTF((message("namedDeclBase PushType TLPAREN TRPAREN...:\n adding implict constraints to functionClause List: %s",
4133                       functionClauseList_unparse(yyvsp[0].funcclauselist)
4134                       )
4135               ));
4136      
4137      fcl = functionClauseList_setImplicitConstraints(yyvsp[0].funcclauselist);
4138
4139      idDecl_addClauses (yyval.ntyp, fcl);
4140
4141      DPRINTF((message("1 added fuctionClause List: %s to the Id",
4142                       functionClauseList_unparse(fcl)
4143                       )
4144               ));
4145
4146      
4147      context_popLoc ();
4148      lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
4149    ;}
4150     break;
4151
4152   case 28:
4153
4154     { setCurrentParams (yyvsp[-1].entrylist); ;}
4155     break;
4156
4157   case 29:
4158
4159     {
4160      functionClauseList fcl;
4161      setImplicitfcnConstraints ();
4162      clearCurrentParams ();
4163      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
4164
4165      DPRINTF((message("namedDeclBase PushType TLPAREN genericParamList TRPAREN...:\n adding implict constraints to functionClause List: %s",
4166                       functionClauseList_unparse(yyvsp[0].funcclauselist)
4167                       )
4168               )) ;
4169      
4170      fcl = functionClauseList_setImplicitConstraints(yyvsp[0].funcclauselist);
4171
4172      idDecl_addClauses (yyval.ntyp, fcl);
4173
4174      DPRINTF((message("added fuctionClause List: %s to the Id",
4175                       functionClauseList_unparse(fcl)
4176                       )
4177               ));
4178
4179      
4180      context_popLoc (); 
4181      lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
4182    ;}
4183     break;
4184
4185   case 30:
4186
4187     { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;}
4188     break;
4189
4190   case 31:
4191
4192     { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;}
4193     break;
4194
4195   case 32:
4196
4197     { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); 
4198      lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); 
4199    ;}
4200     break;
4201
4202   case 33:
4203
4204     { 
4205      int value;
4206
4207      if (exprNode_hasValue (yyvsp[-2].expr) 
4208          && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
4209        {
4210          value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
4211        }
4212      else
4213        {
4214          value = 0;
4215        }
4216
4217      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
4218      lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
4219    ;}
4220     break;
4221
4222   case 34:
4223
4224     { setCurrentParams (uentryList_missingParams); ;}
4225     break;
4226
4227   case 35:
4228
4229     {
4230      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
4231                                     uentryList_makeMissingParams ());
4232      
4233      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
4234      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
4235      context_popLoc (); 
4236      lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
4237    ;}
4238     break;
4239
4240   case 36:
4241
4242     { setCurrentParams (yyvsp[-1].entrylist); ;}
4243     break;
4244
4245   case 37:
4246
4247     { 
4248      clearCurrentParams ();
4249      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
4250      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
4251      context_popLoc (); 
4252      lltok_free (yyvsp[-4].tok);
4253      /*!! lltok_free2 ($3, $5); */
4254    ;}
4255     break;
4256
4257   case 38:
4258
4259     { setCurrentParams (yyvsp[-1].entrylist); ;}
4260     break;
4261
4262   case 39:
4263
4264     { clearCurrentParams (); ;}
4265     break;
4266
4267   case 40:
4268
4269     { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); 
4270      lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok); 
4271    ;}
4272     break;
4273
4274   case 41:
4275
4276     { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;}
4277     break;
4278
4279   case 42:
4280
4281     { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;}
4282     break;
4283
4284   case 43:
4285
4286     { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;}
4287     break;
4288
4289   case 44:
4290
4291     { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;}
4292     break;
4293
4294   case 45:
4295
4296     { clabstract_declareFunction (yyvsp[0].ntyp); ;}
4297     break;
4298
4299   case 46:
4300
4301     { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;}
4302     break;
4303
4304   case 47:
4305
4306     { cscannerHelp_expectingMetaStateName (); ;}
4307     break;
4308
4309   case 48:
4310
4311     { cscannerHelp_clearExpectingMetaStateName ();
4312       yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); 
4313       lltok_free (yyvsp[-1].tok); 
4314     ;}
4315     break;
4316
4317   case 49:
4318
4319     { cscannerHelp_expectingMetaStateName (); ;}
4320     break;
4321
4322   case 50:
4323
4324     { cscannerHelp_clearExpectingMetaStateName ();
4325       yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); 
4326       lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
4327     ;}
4328     break;
4329
4330   case 51:
4331
4332     { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;}
4333     break;
4334
4335   case 52:
4336
4337     { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;}
4338     break;
4339
4340   case 56:
4341
4342     { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;}
4343     break;
4344
4345   case 57:
4346
4347     { yyval.conL = constraintList_single (yyvsp[0].con); ;}
4348     break;
4349
4350   case 58:
4351
4352     {
4353  yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
4354  DPRINTF(("Done BufConstraint1\n")); ;}
4355     break;
4356
4357   case 65:
4358
4359     {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE);  DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;}
4360     break;
4361
4362   case 66:
4363
4364     {
4365    DPRINTF( ("Got BufConstraintExpr BINary Op ") );
4366    yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;}
4367     break;
4368
4369   case 67:
4370
4371     { yyval.conE =  constraintExpr_makeTermsRef (yyvsp[0].sr);;}
4372     break;
4373
4374   case 68:
4375
4376     { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;}
4377     break;
4378
4379   case 69:
4380
4381     { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;}
4382     break;
4383
4384   case 70:
4385
4386     { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;}
4387     break;
4388
4389   case 71:
4390
4391     { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;}
4392     break;
4393
4394   case 72:
4395
4396     {
4397     /*
4398     char *t; int c; 
4399     t =  cstring_toCharsSafe (exprNode_unparse($3)); 
4400     c = atoi( t );
4401     */
4402     yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
4403   ;}
4404     break;
4405
4406   case 73:
4407
4408     { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;}
4409     break;
4410
4411   case 74:
4412
4413     { yyval.sr = yyvsp[-1].sr; ;}
4414     break;
4415
4416   case 75:
4417
4418     { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;}
4419     break;
4420
4421   case 76:
4422
4423     { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;}
4424     break;
4425
4426   case 80:
4427
4428     { yyval.funcclauselist = functionClauseList_new (); ;}
4429     break;
4430
4431   case 81:
4432
4433     { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;}
4434     break;
4435
4436   case 82:
4437
4438     { yyval.funcclauselist = functionClauseList_new (); ;}
4439     break;
4440
4441   case 83:
4442
4443     { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;}
4444     break;
4445
4446   case 84:
4447
4448     { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;}
4449     break;
4450
4451   case 85:
4452
4453     { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
4454     break;
4455
4456   case 86:
4457
4458     { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
4459     break;
4460
4461   case 87:
4462
4463     { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;}
4464     break;
4465
4466   case 88:
4467
4468     { yyval.funcclause = yyvsp[0].funcclause; ;}
4469     break;
4470
4471   case 89:
4472
4473     { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;}
4474     break;
4475
4476   case 90:
4477
4478     { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;}
4479     break;
4480
4481   case 91:
4482
4483     { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
4484     break;
4485
4486   case 92:
4487
4488     { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
4489     break;
4490
4491   case 93:
4492
4493     { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;}
4494     break;
4495
4496   case 94:
4497
4498     { yyval.funcclause = yyvsp[0].funcclause; ;}
4499     break;
4500
4501   case 95:
4502
4503     { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;}
4504     break;
4505
4506   case 96:
4507
4508     { yyval.globsclause = yyvsp[-1].globsclause; ;}
4509     break;
4510
4511   case 97:
4512
4513     { setProcessingGlobalsList (); ;}
4514     break;
4515
4516   case 98:
4517
4518     { 
4519      unsetProcessingGlobals (); 
4520      yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset); 
4521    ;}
4522     break;
4523
4524   case 99:
4525
4526     { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;}
4527     break;
4528
4529   case 100:
4530
4531     { yyval.modsclause = yyvsp[-1].modsclause; ;}
4532     break;
4533
4534   case 101:
4535
4536     {
4537      context_setProtectVars (); enterParamsTemp (); 
4538      sRef_setGlobalScopeSafe (); 
4539    ;}
4540     break;
4541
4542   case 102:
4543
4544     { 
4545      exitParamsTemp ();
4546      sRef_clearGlobalScopeSafe (); 
4547      context_releaseVars ();
4548      yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
4549    ;}
4550     break;
4551
4552   case 103:
4553
4554     { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;}
4555     break;
4556
4557   case 104:
4558
4559     { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;}
4560     break;
4561
4562   case 107:
4563
4564     { yyval.warnclause = warnClause_undefined; ;}
4565     break;
4566
4567   case 108:
4568
4569     { yyval.warnclause = yyvsp[-1].warnclause; ;}
4570     break;
4571
4572   case 109:
4573
4574     {      
4575      llassert (exprNode_knownStringValue (yyvsp[0].expr));
4576      yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr)))); 
4577      exprNode_free (yyvsp[0].expr);
4578    ;}
4579     break;
4580
4581   case 110:
4582
4583     { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;}
4584     break;
4585
4586   case 111:
4587
4588     { yyval.globset = globSet_single (yyvsp[0].sr); ;}
4589     break;
4590
4591   case 112:
4592
4593     { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;}
4594     break;
4595
4596   case 113:
4597
4598     { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;}
4599     break;
4600
4601   case 114:
4602
4603     { yyval.tquallist = qualList_undefined; ;}
4604     break;
4605
4606   case 115:
4607
4608     { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;}
4609     break;
4610
4611   case 116:
4612
4613     { yyval.sr = uentry_getSref (yyvsp[0].entry); ;}
4614     break;
4615
4616   case 117:
4617
4618     { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;}
4619     break;
4620
4621   case 118:
4622
4623     { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;}
4624     break;
4625
4626   case 119:
4627
4628     { yyval.typequal = qual_createUndef (); ;}
4629     break;
4630
4631   case 120:
4632
4633     { yyval.typequal = qual_createKilled (); ;}
4634     break;
4635
4636   case 121:
4637
4638     { yyval.typequal = qual_createOut (); ;}
4639     break;
4640
4641   case 122:
4642
4643     { yyval.typequal = qual_createIn (); ;}
4644     break;
4645
4646   case 123:
4647
4648     { yyval.typequal = qual_createPartial (); ;}
4649     break;
4650
4651   case 131:
4652
4653     { 
4654      /**!!! deal with fred; fred (int); declarations! **/
4655      qtype qint = qtype_create (ctype_int); 
4656      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
4657      qtype_free (qint);
4658    ;}
4659     break;
4660
4661   case 132:
4662
4663     { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;}
4664     break;
4665
4666   case 133:
4667
4668     { checkDoneParams (); context_enterInnerContext (); ;}
4669     break;
4670
4671   case 134:
4672
4673     {  
4674      exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; 
4675      context_exitInner (yyvsp[0].expr); 
4676    ;}
4677     break;
4678
4679   case 135:
4680
4681     { context_enterOldStyleScope (); ;}
4682     break;
4683
4684   case 136:
4685
4686     { oldStyleDoneParams (); context_enterInnerContext (); ;}
4687     break;
4688
4689   case 137:
4690
4691     {
4692      exprNode_checkFunctionBody (yyvsp[0].expr); 
4693      yyval.expr = yyvsp[0].expr; /* oldstyle */ 
4694      context_exitInner (yyvsp[0].expr);
4695    ;}
4696     break;
4697
4698   case 138:
4699
4700     { 
4701      context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); 
4702      exprNode_checkFunction (context_getHeader (),  yyvsp[0].expr); 
4703      /* DRL 8 8 2000 */
4704      
4705      context_exitFunction ();
4706    ;}
4707     break;
4708
4709   case 139:
4710
4711     { yyval.srset = yyvsp[-1].srset; ;}
4712     break;
4713
4714   case 140:
4715
4716     { yyval.srset = sRefSet_new (); ;}
4717     break;
4718
4719   case 141:
4720
4721     { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;}
4722     break;
4723
4724   case 142:
4725
4726     { yyval.sr = fixModifiesId (yyvsp[0].cname); ;}
4727     break;
4728
4729   case 143:
4730
4731     { yyval.sr = fixModifiesId (yyvsp[0].cname); ;}
4732     break;
4733
4734   case 144:
4735
4736     { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;}
4737     break;
4738
4739   case 145:
4740
4741     { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;}
4742     break;
4743
4744   case 146:
4745
4746     { yyval.sr = modListPointer (yyvsp[0].sr); ;}
4747     break;
4748
4749   case 147:
4750
4751     { yyval.sr = yyvsp[-1].sr; ;}
4752     break;
4753
4754   case 148:
4755
4756     { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;}
4757     break;
4758
4759   case 149:
4760
4761     { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;}
4762     break;
4763
4764   case 150:
4765
4766     { yyval.sr = yyvsp[0].sr; ;}
4767     break;
4768
4769   case 151:
4770
4771     { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;}
4772     break;
4773
4774   case 152:
4775
4776     { yyval.srset = sRefSet_single (yyvsp[0].sr); ;}
4777     break;
4778
4779   case 153:
4780
4781     { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;}
4782     break;
4783
4784   case 154:
4785
4786     { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;}
4787     break;
4788
4789   case 155:
4790
4791     { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;}
4792     break;
4793
4794   case 156:
4795
4796     { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;}
4797     break;
4798
4799   case 157:
4800
4801     { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;}
4802     break;
4803
4804   case 158:
4805
4806     { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;}
4807     break;
4808
4809   case 159:
4810
4811     { yyval.sr = yyvsp[-1].sr; ;}
4812     break;
4813
4814   case 160:
4815
4816     { cstring_markOwned (yyvsp[0].cname);
4817                                             yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;}
4818     break;
4819
4820   case 161:
4821
4822     { cstring_markOwned (yyvsp[0].cname);
4823                                             yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;}
4824     break;
4825
4826   case 162:
4827
4828     { DPRINTF ((message("Empty optSpecClauseList") )); yyval.srset = sRefSet_undefined ;}
4829     break;
4830
4831   case 164:
4832
4833     { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } 
4834       else {
4835         DPRINTF((message("returning sRefSEt_undefined ")  ));
4836         yyval.srset = sRefSet_undefined; } 
4837     ;}
4838     break;
4839
4840   case 165:
4841
4842     { if (sRef_isValid (yyvsp[0].sr))
4843         {
4844           yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); 
4845         }
4846       else
4847         {
4848           yyval.srset = yyvsp[-2].srset;
4849         }
4850     ;}
4851     break;
4852
4853   case 166:
4854
4855     { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;}
4856     break;
4857
4858   case 167:
4859
4860     { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;}
4861     break;
4862
4863   case 169:
4864
4865     { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;}
4866     break;
4867
4868   case 170:
4869
4870     { yyval.expr = exprNode_fromIdentifier (cscannerHelp_coerceId (yyvsp[0].cname)); ;}
4871     break;
4872
4873   case 171:
4874
4875     { yyval.expr = exprNode_makeError (); ;}
4876     break;
4877
4878   case 172:
4879
4880     { exprChecks_inCompoundStatementExpression (); ;}
4881     break;
4882
4883   case 173:
4884
4885     { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;}
4886     break;
4887
4888   case 175:
4889
4890     { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;}
4891     break;
4892
4893   case 176:
4894
4895     { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;}
4896     break;
4897
4898   case 177:
4899
4900     { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;}
4901     break;
4902
4903   case 178:
4904
4905     { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;}
4906     break;
4907
4908   case 179:
4909
4910     { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
4911     break;
4912
4913   case 180:
4914
4915     { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
4916     break;
4917
4918   case 181:
4919
4920     { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
4921     break;
4922
4923   case 182:
4924
4925     { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
4926     break;
4927
4928   case 183:
4929
4930     { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;}
4931     break;
4932
4933   case 184:
4934
4935     { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
4936     break;
4937
4938   case 185:
4939
4940     { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;}
4941     break;
4942
4943   case 187:
4944
4945     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4946     break;
4947
4948   case 188:
4949
4950     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4951     break;
4952
4953   case 189:
4954
4955     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4956     break;
4957
4958   case 190:
4959
4960     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4961     break;
4962
4963   case 191:
4964
4965     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4966     break;
4967
4968   case 192:
4969
4970     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4971     break;
4972
4973   case 193:
4974
4975     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4976     break;
4977
4978   case 194:
4979
4980     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
4981     break;
4982
4983   case 195:
4984
4985     { yyval.expr = yyvsp[-1].expr; ;}
4986     break;
4987
4988   case 196:
4989
4990     { yyval.expr = yyvsp[0].expr; ;}
4991     break;
4992
4993   case 197:
4994
4995     { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;}
4996     break;
4997
4998   case 198:
4999
5000     { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;}
5001     break;
5002
5003   case 199:
5004
5005     { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;}
5006     break;
5007
5008   case 200:
5009
5010     { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); 
5011      lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;}
5012     break;
5013
5014   case 201:
5015
5016     { context_setProtectVars (); ;}
5017     break;
5018
5019   case 202:
5020
5021     { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;}
5022     break;
5023
5024   case 203:
5025
5026     {context_enterSizeof();}
5027     break;
5028
5029   case 204:
5030
5031     {context_leaveSizeof();}
5032     break;
5033
5034   case 205:
5035
5036     { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok);  ;}
5037     break;
5038
5039   case 206:
5040
5041     { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;}
5042     break;
5043
5044   case 207:
5045
5046     { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;}
5047     break;
5048
5049   case 208:
5050
5051     { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;}
5052     break;
5053
5054   case 210:
5055
5056     { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;}
5057     break;
5058
5059   case 212:
5060
5061     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5062     break;
5063
5064   case 213:
5065
5066     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5067     break;
5068
5069   case 214:
5070
5071     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5072     break;
5073
5074   case 216:
5075
5076     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5077     break;
5078
5079   case 217:
5080
5081     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5082     break;
5083
5084   case 219:
5085
5086     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5087     break;
5088
5089   case 220:
5090
5091     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5092     break;
5093
5094   case 222:
5095
5096     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5097     break;
5098
5099   case 223:
5100
5101     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5102     break;
5103
5104   case 224:
5105
5106     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5107     break;
5108
5109   case 225:
5110
5111     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5112     break;
5113
5114   case 227:
5115
5116     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5117     break;
5118
5119   case 228:
5120
5121     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5122     break;
5123
5124   case 230:
5125
5126     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5127     break;
5128
5129   case 232:
5130
5131     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5132     break;
5133
5134   case 234:
5135
5136     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5137     break;
5138
5139   case 236:
5140
5141     { exprNode_produceGuards (yyvsp[-1].expr); 
5142      context_enterAndClause (yyvsp[-1].expr); 
5143    ;}
5144     break;
5145
5146   case 237:
5147
5148     { 
5149      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
5150      context_exitAndClause (yyval.expr, yyvsp[0].expr);
5151    ;}
5152     break;
5153
5154   case 239:
5155
5156     { 
5157      exprNode_produceGuards (yyvsp[-1].expr);
5158      context_enterOrClause (yyvsp[-1].expr); 
5159    ;}
5160     break;
5161
5162   case 240:
5163
5164     { 
5165      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
5166      context_exitOrClause (yyval.expr, yyvsp[0].expr);
5167    ;}
5168     break;
5169
5170   case 242:
5171
5172     { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;}
5173     break;
5174
5175   case 243:
5176
5177     { context_enterFalseClause (yyvsp[-4].expr); ;}
5178     break;
5179
5180   case 244:
5181
5182     { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;}
5183     break;
5184
5185   case 246:
5186
5187     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5188     break;
5189
5190   case 247:
5191
5192     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5193     break;
5194
5195   case 248:
5196
5197     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5198     break;
5199
5200   case 249:
5201
5202     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5203     break;
5204
5205   case 250:
5206
5207     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5208     break;
5209
5210   case 251:
5211
5212     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5213     break;
5214
5215   case 252:
5216
5217     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5218     break;
5219
5220   case 253:
5221
5222     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5223     break;
5224
5225   case 254:
5226
5227     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5228     break;
5229
5230   case 255:
5231
5232     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5233     break;
5234
5235   case 256:
5236
5237     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
5238     break;
5239
5240   case 258:
5241
5242     { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;}
5243     break;
5244
5245   case 259:
5246
5247     { yyval.expr = exprNode_undefined; ;}
5248     break;
5249
5250   case 262:
5251
5252     { yyval.expr = yyvsp[0].expr; ;}
5253     break;
5254
5255   case 263:
5256
5257     { doVaDcl (); yyval.expr = exprNode_makeError (); ;}
5258     break;
5259
5260   case 264:
5261
5262     { yyval.expr = exprNode_makeError (); ;}
5263     break;
5264
5265   case 265:
5266
5267     { yyval.expr = exprNode_makeError (); ;}
5268     break;
5269
5270   case 266:
5271
5272     {
5273      setProcessingVars (yyvsp[-3].qtyp); 
5274      processNamedDecl (yyvsp[-1].ntyp); 
5275    ;}
5276     break;
5277
5278   case 267:
5279
5280     { 
5281      unsetProcessingVars (); 
5282      yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp); 
5283      DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
5284    ;}
5285     break;
5286
5287   case 268:
5288
5289     { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;}
5290     break;
5291
5292   case 269:
5293
5294     { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); 
5295      unsetProcessingVars ();
5296    ;}
5297     break;
5298
5299   case 270:
5300
5301     { yyval.expr = yyvsp[0].expr; ;}
5302     break;
5303
5304   case 271:
5305
5306     { yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ;}
5307     break;
5308
5309   case 272:
5310
5311     { 
5312      processNamedDecl (yyvsp[-1].ntyp); 
5313      yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
5314    ;}
5315     break;
5316
5317   case 273:
5318
5319     { processNamedDecl (yyvsp[-2].ntyp); ;}
5320     break;
5321
5322   case 274:
5323
5324     { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;}
5325     break;
5326
5327   case 275:
5328
5329     { setProcessingTypedef (yyvsp[0].qtyp); ;}
5330     break;
5331
5332   case 276:
5333
5334     { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;}
5335     break;
5336
5337   case 277:
5338
5339     { /* in the ANSI grammar, semantics unclear */ ;}
5340     break;
5341
5342   case 278:
5343
5344     { /* in the ANSI grammar, semantics unclear */ ;}
5345     break;
5346
5347   case 279:
5348
5349     { cscannerHelp_setExpectingTypeName (); ;}
5350     break;
5351
5352   case 280:
5353
5354     { cscannerHelp_setExpectingTypeName (); context_pushLoc (); ;}
5355     break;
5356
5357   case 281:
5358
5359     { yyval.exprlist = yyvsp[-1].exprlist; ;}
5360     break;
5361
5362   case 282:
5363
5364     { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
5365     break;
5366
5367   case 283:
5368
5369     { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;}
5370     break;
5371
5372   case 284:
5373
5374     { yyval.exprlist = yyvsp[-1].exprlist; ;}
5375     break;
5376
5377   case 285:
5378
5379     { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
5380     break;
5381
5382   case 286:
5383
5384     { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;}
5385     break;
5386
5387   case 287:
5388
5389     { yyval.expr = exprNode_makeError (); ;}
5390     break;
5391
5392   case 288:
5393
5394     { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;}
5395     break;
5396
5397   case 290:
5398
5399     { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;}
5400     break;
5401
5402   case 291:
5403
5404     { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;}
5405     break;
5406
5407   case 292:
5408
5409     { yyval.expr = exprNode_undefined; ;}
5410     break;
5411
5412   case 293:
5413
5414     { yyval.expr = yyvsp[-1].expr; ;}
5415     break;
5416
5417   case 294:
5418
5419     { yyval.expr = exprNode_undefined; 
5420                                      /* gcc extension, obsolete since 2.5 */ ;}
5421     break;
5422
5423   case 295:
5424
5425     { yyval.expr = exprNode_undefined; ;}
5426     break;
5427
5428   case 296:
5429
5430     { yyval.expr = exprNode_undefined; ;}
5431     break;
5432
5433   case 297:
5434
5435     { yyval.expr = exprNode_undefined; ;}
5436     break;
5437
5438   case 298:
5439
5440     { yyval.expr = exprNode_undefined; ;}
5441     break;
5442
5443   case 299:
5444
5445     { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
5446     break;
5447
5448   case 300:
5449
5450     { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;}
5451     break;
5452
5453   case 301:
5454
5455     { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;}
5456     break;
5457
5458   case 302:
5459
5460     { yyval.typequal = qual_createInline (); ;}
5461     break;
5462
5463   case 303:
5464
5465     { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;}
5466     break;
5467
5468   case 304:
5469
5470     { yyval.typequal = qual_createAuto (); ;}
5471     break;
5472
5473   case 305:
5474
5475     { yyval.typequal = qual_createRegister (); ;}
5476     break;
5477
5478   case 306:
5479
5480     { yyval.stateclause = yyvsp[-1].stateclause; ;}
5481     break;
5482
5483   case 307:
5484
5485     {
5486      context_setProtectVars (); 
5487      enterParamsTemp (); 
5488      sRef_setGlobalScopeSafe (); 
5489    ;}
5490     break;
5491
5492   case 308:
5493
5494     { 
5495      exitParamsTemp ();
5496      sRef_clearGlobalScopeSafe (); 
5497      context_releaseVars ();
5498      yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
5499    ;}
5500     break;
5501
5502   case 309:
5503
5504     { yyval.funcclause = yyvsp[-1].funcclause; ;}
5505     break;
5506
5507   case 310:
5508
5509     { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;}
5510     break;
5511
5512   case 311:
5513
5514     {
5515      context_exitFunctionHeader ();
5516      context_setProtectVars (); 
5517      enterParamsTemp (); 
5518      sRef_setGlobalScopeSafe (); 
5519    ;}
5520     break;
5521
5522   case 312:
5523
5524     { 
5525      exitParamsTemp ();
5526      sRef_clearGlobalScopeSafe (); 
5527      context_releaseVars ();
5528      yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
5529    ;}
5530     break;
5531
5532   case 313:
5533
5534     {
5535      context_setProtectVars (); 
5536      enterParamsTemp (); 
5537      sRef_setGlobalScopeSafe (); 
5538    ;}
5539     break;
5540
5541   case 314:
5542
5543     {
5544      context_exitFunctionHeader ();
5545      exitParamsTemp ();
5546      sRef_clearGlobalScopeSafe (); 
5547      context_releaseVars ();
5548      DPRINTF (("done optGlobBufConstraintsAux\n"));
5549
5550      if (lltok_isEnsures (yyvsp[-4].tok)) 
5551        {
5552          yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
5553        }
5554      else if (lltok_isRequires (yyvsp[-4].tok))
5555        {
5556          yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
5557        }
5558      else
5559        {
5560          BADBRANCH;
5561        }
5562
5563      DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
5564    ;}
5565     break;
5566
5567   case 315:
5568
5569     { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;}
5570     break;
5571
5572   case 316:
5573
5574     { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;}
5575     break;
5576
5577   case 317:
5578
5579     { yyval.typequal = qual_createExits (); ;}
5580     break;
5581
5582   case 318:
5583
5584     { yyval.typequal = qual_createMayExit (); ;}
5585     break;
5586
5587   case 319:
5588
5589     { yyval.typequal = qual_createTrueExit (); ;}
5590     break;
5591
5592   case 320:
5593
5594     { yyval.typequal = qual_createFalseExit (); ;}
5595     break;
5596
5597   case 321:
5598
5599     { yyval.typequal = qual_createNeverExit (); ;}
5600     break;
5601
5602   case 322:
5603
5604     { yyval.typequal = qual_createChecked (); ;}
5605     break;
5606
5607   case 323:
5608
5609     { yyval.typequal = qual_createCheckMod (); ;}
5610     break;
5611
5612   case 324:
5613
5614     { yyval.typequal = qual_createUnchecked (); ;}
5615     break;
5616
5617   case 325:
5618
5619     { yyval.typequal = qual_createCheckedStrict (); ;}
5620     break;
5621
5622   case 326:
5623
5624     { yyval.typequal = qual_createOwned (); ;}
5625     break;
5626
5627   case 327:
5628
5629     { yyval.typequal = qual_createDependent (); ;}
5630     break;
5631
5632   case 328:
5633
5634     { yyval.typequal = qual_createYield (); ;}
5635     break;
5636
5637   case 329:
5638
5639     { yyval.typequal = qual_createTemp (); ;}
5640     break;
5641
5642   case 330:
5643
5644     { yyval.typequal = qual_createOnly (); ;}
5645     break;
5646
5647   case 331:
5648
5649     { yyval.typequal = qual_createKeep (); ;}
5650     break;
5651
5652   case 332:
5653
5654     { yyval.typequal = qual_createKept (); ;}
5655     break;
5656
5657   case 333:
5658
5659     { yyval.typequal = qual_createShared (); ;}
5660     break;
5661
5662   case 334:
5663
5664     { yyval.typequal = qual_createUnique (); ;}
5665     break;
5666
5667   case 335:
5668
5669     { yyval.typequal = qual_createNull (); ;}
5670     break;
5671
5672   case 336:
5673
5674     { yyval.typequal = qual_createIsNull (); ;}
5675     break;
5676
5677   case 337:
5678
5679     { yyval.typequal = qual_createRelNull (); ;}
5680     break;
5681
5682   case 338:
5683
5684     { yyval.typequal = qual_createNotNull (); ;}
5685     break;
5686
5687   case 339:
5688
5689     { yyval.typequal = qual_createExposed (); ;}
5690     break;
5691
5692   case 340:
5693
5694     { yyval.typequal = qual_createObserver (); ;}
5695     break;
5696
5697   case 341:
5698
5699     { yyval.typequal = qual_createNullTerminated (); ;}
5700     break;
5701
5702   case 342:
5703
5704     { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;}
5705     break;
5706
5707   case 343:
5708
5709     { yyval.typequal = qual_createReturned (); ;}
5710     break;
5711
5712   case 344:
5713
5714     { yyval.typequal = qual_createSef (); ;}
5715     break;
5716
5717   case 345:
5718
5719     { yyval.typequal = qual_createUnused (); ;}
5720     break;
5721
5722   case 346:
5723
5724     { yyval.typequal = qual_createExternal (); ;}
5725     break;
5726
5727   case 347:
5728
5729     { yyval.typequal = qual_createTrueNull (); ;}
5730     break;
5731
5732   case 348:
5733
5734     { yyval.typequal = qual_createFalseNull (); ;}
5735     break;
5736
5737   case 349:
5738
5739     { yyval.typequal = qual_createAbstract (); ;}
5740     break;
5741
5742   case 350:
5743
5744     { yyval.typequal = qual_createNumAbstract (); ;}
5745     break;
5746
5747   case 351:
5748
5749     { yyval.typequal = qual_createConcrete (); ;}
5750     break;
5751
5752   case 352:
5753
5754     { yyval.typequal = qual_createMutable (); ;}
5755     break;
5756
5757   case 353:
5758
5759     { yyval.typequal = qual_createImmutable (); ;}
5760     break;
5761
5762   case 354:
5763
5764     { yyval.typequal = qual_createRefCounted (); ;}
5765     break;
5766
5767   case 355:
5768
5769     { yyval.typequal = qual_createRefs (); ;}
5770     break;
5771
5772   case 356:
5773
5774     { yyval.typequal = qual_createKillRef (); ;}
5775     break;
5776
5777   case 357:
5778
5779     { yyval.typequal = qual_createRelDef (); ;}
5780     break;
5781
5782   case 358:
5783
5784     { yyval.typequal = qual_createNewRef (); ;}
5785     break;
5786
5787   case 359:
5788
5789     { yyval.typequal = qual_createTempRef (); ;}
5790     break;
5791
5792   case 360:
5793
5794     { yyval.typequal = qual_createShort (); ;}
5795     break;
5796
5797   case 361:
5798
5799     { yyval.typequal = qual_createLong (); ;}
5800     break;
5801
5802   case 362:
5803
5804     { yyval.typequal = qual_createSigned (); ;}
5805     break;
5806
5807   case 363:
5808
5809     { yyval.typequal = qual_createUnsigned (); ;}
5810     break;
5811
5812   case 364:
5813
5814     { yyval.typequal = qual_createOut (); ;}
5815     break;
5816
5817   case 365:
5818
5819     { yyval.typequal = qual_createIn (); ;}
5820     break;
5821
5822   case 366:
5823
5824     { yyval.typequal = qual_createPartial (); ;}
5825     break;
5826
5827   case 367:
5828
5829     { yyval.typequal = qual_createSpecial (); ;}
5830     break;
5831
5832   case 368:
5833
5834     { yyval.typequal = qual_createConst (); ;}
5835     break;
5836
5837   case 369:
5838
5839     { yyval.typequal = qual_createVolatile (); ;}
5840     break;
5841
5842   case 370:
5843
5844     { yyval.typequal = qual_createRestrict (); ;}
5845     break;
5846
5847   case 371:
5848
5849     { yyval.typequal = yyvsp[-1].typequal; ;}
5850     break;
5851
5852   case 372:
5853
5854     { yyval.typequal = yyvsp[-1].typequal; ;}
5855     break;
5856
5857   case 373:
5858
5859     { yyval.typequal = yyvsp[-1].typequal; ;}
5860     break;
5861
5862   case 374:
5863
5864     { yyval.typequal = yyvsp[-1].typequal; ;}
5865     break;
5866
5867   case 375:
5868
5869     { yyval.typequal = yyvsp[-1].typequal; ;}
5870     break;
5871
5872   case 376:
5873
5874     { yyval.typequal = yyvsp[-1].typequal; ;}
5875     break;
5876
5877   case 377:
5878
5879     { yyval.typequal = yyvsp[-1].typequal; ;}
5880     break;
5881
5882   case 378:
5883
5884     { yyval.typequal = yyvsp[-1].typequal; ;}
5885     break;
5886
5887   case 379:
5888
5889     { yyval.typequal = yyvsp[-1].typequal; ;}
5890     break;
5891
5892   case 386:
5893
5894     { yyval.ctyp = ctype_makeAnytype (); ;}
5895     break;
5896
5897   case 387:
5898
5899     { yyval.ctyp = ctype_anyintegral; ;}
5900     break;
5901
5902   case 388:
5903
5904     { yyval.ctyp = ctype_unsignedintegral; ;}
5905     break;
5906
5907   case 389:
5908
5909     { yyval.ctyp = ctype_signedintegral; ;}
5910     break;
5911
5912   case 393:
5913
5914     { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;}
5915     break;
5916
5917   case 394:
5918
5919     { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;}
5920     break;
5921
5922   case 395:
5923
5924     { yyval.qtyp = yyvsp[0].qtyp; ;}
5925     break;
5926
5927   case 396:
5928
5929     { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;}
5930     break;
5931
5932   case 398:
5933
5934     { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;}
5935     break;
5936
5937   case 399:
5938
5939     { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;}
5940     break;
5941
5942   case 400:
5943
5944     { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;}
5945     break;
5946
5947   case 401:
5948
5949     { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;}
5950     break;
5951
5952   case 402:
5953
5954     { yyval.qtyp = qtype_unknown (); ;}
5955     break;
5956
5957   case 403:
5958
5959     { yyval.qtyp = yyvsp[0].qtyp; ;}
5960     break;
5961
5962   case 404:
5963
5964     { yyval.conL = constraintList_undefined; ;}
5965     break;
5966
5967   case 405:
5968
5969     { sRef_setGlobalScopeSafe (); ;}
5970     break;
5971
5972   case 406:
5973
5974     { sRef_clearGlobalScopeSafe (); ;}
5975     break;
5976
5977   case 407:
5978
5979     { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* context_setGlobalStructInfo(ct, $12); */ yyval.ctyp = ct; ;}
5980     break;
5981
5982   case 408:
5983
5984     { sRef_setGlobalScopeSafe (); ;}
5985     break;
5986
5987   case 409:
5988
5989     { sRef_clearGlobalScopeSafe (); ;}
5990     break;
5991
5992   case 410:
5993
5994     { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;}
5995     break;
5996
5997   case 411:
5998
5999     { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;}
6000     break;
6001
6002   case 412:
6003
6004     { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;}
6005     break;
6006
6007   case 413:
6008
6009     { sRef_setGlobalScopeSafe (); ;}
6010     break;
6011
6012   case 414:
6013
6014     { sRef_clearGlobalScopeSafe (); ;}
6015     break;
6016
6017   case 415:
6018
6019     { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;}
6020     break;
6021
6022   case 416:
6023
6024     { sRef_setGlobalScopeSafe (); ;}
6025     break;
6026
6027   case 417:
6028
6029     { sRef_clearGlobalScopeSafe (); ;}
6030     break;
6031
6032   case 418:
6033
6034     { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;}
6035     break;
6036
6037   case 419:
6038
6039     { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;}
6040     break;
6041
6042   case 420:
6043
6044     { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;}
6045     break;
6046
6047   case 421:
6048
6049     { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;}
6050     break;
6051
6052   case 422:
6053
6054     { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;}
6055     break;
6056
6057   case 423:
6058
6059     { cscannerHelp_clearExpectingTypeName (); ;}
6060     break;
6061
6062   case 425:
6063
6064     { yyval.flist = uentryList_undefined; /* bogus! */ ;}
6065     break;
6066
6067   case 426:
6068
6069     { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;}
6070     break;
6071
6072   case 427:
6073
6074     { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;}
6075     break;
6076
6077   case 428:
6078
6079     { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;}
6080     break;
6081
6082   case 429:
6083
6084     { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;}
6085     break;
6086
6087   case 430:
6088
6089     { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;}
6090     break;
6091
6092   case 431:
6093
6094     { yyval.ntyp = yyvsp[0].ntyp; ;}
6095     break;
6096
6097   case 432:
6098
6099     { yyval.ntyp = idDecl_undefined; ;}
6100     break;
6101
6102   case 433:
6103
6104     { yyval.ntyp = yyvsp[-3].ntyp; ;}
6105     break;
6106
6107   case 434:
6108
6109     { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;}
6110     break;
6111
6112   case 435:
6113
6114     { context_pushLoc (); ;}
6115     break;
6116
6117   case 436:
6118
6119     { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;}
6120     break;
6121
6122   case 437:
6123
6124     { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;}
6125     break;
6126
6127   case 438:
6128
6129     { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;}
6130     break;
6131
6132   case 439:
6133
6134     { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;}
6135     break;
6136
6137   case 441:
6138
6139     { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
6140      usymtab_supGlobalEntry (ue);
6141      yyval.cname = yyvsp[0].cname;
6142    ;}
6143     break;
6144
6145   case 442:
6146
6147     { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
6148      usymtab_supGlobalEntry (ue);
6149      yyval.cname = yyvsp[-3].cname; 
6150    ;}
6151     break;
6152
6153   case 444:
6154
6155     { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;}
6156     break;
6157
6158   case 445:
6159
6160     { 
6161      qtype qt = qtype_unknown ();
6162      qtype_adjustPointers (yyvsp[-1].pointers, qt);
6163      yyval.ntyp = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt);
6164    ;}
6165     break;
6166
6167   case 446:
6168
6169     { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;}
6170     break;
6171
6172   case 448:
6173
6174     { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;}
6175     break;
6176
6177   case 449:
6178
6179     { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;}
6180     break;
6181
6182   case 450:
6183
6184     { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;}
6185     break;
6186
6187   case 451:
6188
6189     { yyval.typequal = qual_createConst (); ;}
6190     break;
6191
6192   case 452:
6193
6194     { yyval.typequal = qual_createRestrict (); ;}
6195     break;
6196
6197   case 453:
6198
6199     { yyval.typequal = qual_createVolatile (); ;}
6200     break;
6201
6202   case 454:
6203
6204     { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;}
6205     break;
6206
6207   case 455:
6208
6209     { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;}
6210     break;
6211
6212   case 456:
6213
6214     { yyval.pointers = pointers_create (yyvsp[0].tok); ;}
6215     break;
6216
6217   case 457:
6218
6219     { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;}
6220     break;
6221
6222   case 458:
6223
6224     { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;}
6225     break;
6226
6227   case 459:
6228
6229     { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;}
6230     break;
6231
6232   case 461:
6233
6234     { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;}
6235     break;
6236
6237   case 462:
6238
6239     { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;}
6240     break;
6241
6242   case 463:
6243
6244     { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;}
6245     break;
6246
6247   case 464:
6248
6249     { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;}
6250     break;
6251
6252   case 466:
6253
6254     { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;}
6255     break;
6256
6257   case 467:
6258
6259     { storeLoc (); ;}
6260     break;
6261
6262   case 468:
6263
6264     { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;}
6265     break;
6266
6267   case 469:
6268
6269     { storeLoc (); ;}
6270     break;
6271
6272   case 470:
6273
6274     { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;}
6275     break;
6276
6277   case 471:
6278
6279     { 
6280      if (isFlipOldStyle ()) 
6281        { 
6282          llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); 
6283        }
6284      else 
6285        { 
6286          setNewStyle (); 
6287        }
6288      yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); 
6289    ;}
6290     break;
6291
6292   case 472:
6293
6294     { 
6295      idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
6296
6297      if (isNewStyle ()) 
6298        {
6299          llparseerror (message ("Inconsistent function parameter syntax: %q",
6300                                 idDecl_unparse (tparam))); 
6301        }
6302
6303      setFlipOldStyle ();
6304      yyval.oentry = makeCurrentParam (tparam);
6305      idDecl_free (tparam);
6306    ;}
6307     break;
6308
6309   case 474:
6310
6311     { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;}
6312     break;
6313
6314   case 475:
6315
6316     { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;}
6317     break;
6318
6319   case 477:
6320
6321     { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;}
6322     break;
6323
6324   case 478:
6325
6326     { yyval.ctyp = ctype_unknown; ;}
6327     break;
6328
6329   case 480:
6330
6331     { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;}
6332     break;
6333
6334   case 481:
6335
6336     { yyval.ctyp = ctype_makeArray (ctype_unknown); ;}
6337     break;
6338
6339   case 482:
6340
6341     { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;}
6342     break;
6343
6344   case 483:
6345
6346     { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;}
6347     break;
6348
6349   case 484:
6350
6351     { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;}
6352     break;
6353
6354   case 485:
6355
6356     { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;}
6357     break;
6358
6359   case 486:
6360
6361     { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;}
6362     break;
6363
6364   case 487:
6365
6366     { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;}
6367     break;
6368
6369   case 488:
6370
6371     { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;}
6372     break;
6373
6374   case 499:
6375
6376     { exprNode_revealState (yyvsp[-1].expr); yyval.expr = exprNode_undefined; ;}
6377     break;
6378
6379   case 500:
6380
6381     { yyval.expr = yyvsp[0].expr; ;}
6382     break;
6383
6384   case 503:
6385
6386     { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
6387     break;
6388
6389   case 504:
6390
6391     { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;}
6392     break;
6393
6394   case 505:
6395
6396     { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;}
6397     break;
6398
6399   case 506:
6400
6401     { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;}
6402     break;
6403
6404   case 507:
6405
6406     { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;}
6407     break;
6408
6409   case 508:
6410
6411     { context_setProtectVars (); ;}
6412     break;
6413
6414   case 509:
6415
6416     { context_sizeofReleaseVars (); ;}
6417     break;
6418
6419   case 510:
6420
6421     { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); 
6422      context_enterForClause (yyvsp[-5].expr); ;}
6423     break;
6424
6425   case 511:
6426
6427     { setProcessingIterVars (yyvsp[-2].entry); ;}
6428     break;
6429
6430   case 512:
6431
6432     { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;}
6433     break;
6434
6435   case 513:
6436
6437     { yyval.expr = exprNode_createId (yyvsp[0].entry); ;}
6438     break;
6439
6440   case 517:
6441
6442     { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;}
6443     break;
6444
6445   case 525:
6446
6447     { yyval.expr = yyvsp[-1].expr; ;}
6448     break;
6449
6450   case 526:
6451
6452     { yyval.expr = exprNode_makeError (); ;}
6453     break;
6454
6455   case 527:
6456
6457     { exprNode_checkIfPred (yyvsp[0].expr); ;}
6458     break;
6459
6460   case 528:
6461
6462     { /* don't: context_exitTrueClause ($1, $2); */
6463      yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr); 
6464    ;}
6465     break;
6466
6467   case 529:
6468
6469     { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
6470     break;
6471
6472   case 530:
6473
6474     { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
6475     break;
6476
6477   case 541:
6478
6479     { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;}
6480     break;
6481
6482   case 544:
6483
6484     { yyval.expr = exprNode_makeError (); ;}
6485     break;
6486
6487   case 545:
6488
6489     { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;}
6490     break;
6491
6492   case 546:
6493
6494     { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;}
6495     break;
6496
6497   case 547:
6498
6499     { ; ;}
6500     break;
6501
6502   case 548:
6503
6504     { ; ;}
6505     break;
6506
6507   case 549:
6508
6509     { context_enterCaseClause (yyvsp[0].expr); ;}
6510     break;
6511
6512   case 550:
6513
6514     { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;}
6515     break;
6516
6517   case 551:
6518
6519     { context_enterCaseClause (yyvsp[0].expr); ;}
6520     break;
6521
6522   case 552:
6523
6524     { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;}
6525     break;
6526
6527   case 553:
6528
6529     { context_enterCaseClause (exprNode_undefined); ;}
6530     break;
6531
6532   case 554:
6533
6534     { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;}
6535     break;
6536
6537   case 555:
6538
6539     { context_enterCaseClause (exprNode_undefined); ;}
6540     break;
6541
6542   case 556:
6543
6544     { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;}
6545     break;
6546
6547   case 557:
6548
6549     { yyval.expr = yyvsp[-1].expr; ;}
6550     break;
6551
6552   case 558:
6553
6554     { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;}
6555     break;
6556
6557   case 559:
6558
6559     { yyval.expr = yyvsp[-1].expr; ;}
6560     break;
6561
6562   case 560:
6563
6564     { context_enterInnerContext (); ;}
6565     break;
6566
6567   case 561:
6568
6569     { context_exitInnerPlain (); ;}
6570     break;
6571
6572   case 562:
6573
6574     { context_enterStructInnerContext (); ;}
6575     break;
6576
6577   case 563:
6578
6579     { context_exitStructInnerContext (); ;}
6580     break;
6581
6582   case 564:
6583
6584     { context_exitInnerSafe (); ;}
6585     break;
6586
6587   case 565:
6588
6589     { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
6590     break;
6591
6592   case 566:
6593
6594     { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;}
6595     break;
6596
6597   case 567:
6598
6599     { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
6600     break;
6601
6602   case 568:
6603
6604     { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;}
6605     break;
6606
6607   case 569:
6608
6609     { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
6610     break;
6611
6612   case 570:
6613
6614     { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;}
6615     break;
6616
6617   case 571:
6618
6619     { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;}
6620     break;
6621
6622   case 572:
6623
6624     { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), 
6625                                                         lltok_getLoc (yyvsp[-1].tok))); 
6626    ;}
6627     break;
6628
6629   case 573:
6630
6631     { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;}
6632     break;
6633
6634   case 574:
6635
6636     { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
6637     break;
6638
6639   case 575:
6640
6641     { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
6642     break;
6643
6644   case 576:
6645
6646     { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
6647     break;
6648
6649   case 577:
6650
6651     { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;}
6652     break;
6653
6654   case 579:
6655
6656     { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
6657     break;
6658
6659   case 580:
6660
6661     { yyval.expr = yyvsp[0].expr; ;}
6662     break;
6663
6664   case 581:
6665
6666     { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
6667     break;
6668
6669   case 582:
6670
6671     { yyval.expr = yyvsp[0].expr; ;}
6672     break;
6673
6674   case 583:
6675
6676     { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;}
6677     break;
6678
6679   case 584:
6680
6681     { yyval.expr = yyvsp[0].expr; ;}
6682     break;
6683
6684   case 585:
6685
6686     { yyval.expr = yyvsp[-2].expr; ;}
6687     break;
6688
6689   case 586:
6690
6691     { yyval.expr = yyvsp[0].expr; ;}
6692     break;
6693
6694   case 587:
6695
6696     { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
6697     break;
6698
6699   case 588:
6700
6701     { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
6702     break;
6703
6704   case 589:
6705
6706     { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;}
6707     break;
6708
6709   case 590:
6710
6711     { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
6712     break;
6713
6714   case 591:
6715
6716     { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;}
6717     break;
6718
6719   case 592:
6720
6721     { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;}
6722     break;
6723
6724   case 593:
6725
6726     { 
6727      exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); 
6728      exprNode_checkIfPred (yyvsp[-1].expr);
6729      yyval.expr = yyvsp[-1].expr;
6730    ;}
6731     break;
6732
6733   case 594:
6734
6735     { 
6736      context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
6737      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
6738    ;}
6739     break;
6740
6741   case 595:
6742
6743     { context_enterFalseClause (yyvsp[-2].expr); ;}
6744     break;
6745
6746   case 596:
6747
6748     {
6749      context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
6750      yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); 
6751    ;}
6752     break;
6753
6754   case 597:
6755
6756     { context_enterSwitch (yyvsp[0].expr); ;}
6757     break;
6758
6759   case 598:
6760
6761     { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;}
6762     break;
6763
6764   case 599:
6765
6766     { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;}
6767     break;
6768
6769   case 600:
6770
6771     { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;}
6772     break;
6773
6774   case 601:
6775
6776     { context_enterIterClause (); ;}
6777     break;
6778
6779   case 602:
6780
6781     { setProcessingIterVars (yyvsp[-3].entry); ;}
6782     break;
6783
6784   case 603:
6785
6786     { 
6787      yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry); 
6788
6789    ;}
6790     break;
6791
6792   case 604:
6793
6794     { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
6795     break;
6796
6797   case 605:
6798
6799     { nextIterParam (); ;}
6800     break;
6801
6802   case 606:
6803
6804     { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;}
6805     break;
6806
6807   case 607:
6808
6809     { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;}
6810     break;
6811
6812   case 608:
6813
6814     { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;}
6815     break;
6816
6817   case 609:
6818
6819     { uentry ue = cscannerHelp_coerceIterId (yyvsp[0].cname);
6820
6821                       if (uentry_isValid (ue)) 
6822                         {
6823                           yyval.expr = exprNode_iterId (ue);
6824                         }
6825                       else
6826                         {
6827                           yyval.expr = exprNode_iterNewId (cstring_copy (cscannerHelp_observeLastIdentifier ()));
6828                         }
6829                     ;}
6830     break;
6831
6832   case 610:
6833
6834     { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;}
6835     break;
6836
6837   case 612:
6838
6839     { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;}
6840     break;
6841
6842   case 614:
6843
6844     { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;}
6845     break;
6846
6847   case 616:
6848
6849     { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;}
6850     break;
6851
6852   case 617:
6853
6854     { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;}
6855     break;
6856
6857   case 618:
6858
6859     { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;}
6860     break;
6861
6862   case 619:
6863
6864     { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;}
6865     break;
6866
6867   case 620:
6868
6869     { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
6870     break;
6871
6872   case 621:
6873
6874     { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
6875     break;
6876
6877   case 622:
6878
6879     { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
6880     break;
6881
6882   case 623:
6883
6884     { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
6885     break;
6886
6887   case 625:
6888
6889     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6890     break;
6891
6892   case 626:
6893
6894     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6895     break;
6896
6897   case 627:
6898
6899     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6900     break;
6901
6902   case 628:
6903
6904     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6905     break;
6906
6907   case 629:
6908
6909     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6910     break;
6911
6912   case 630:
6913
6914     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6915     break;
6916
6917   case 631:
6918
6919     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6920     break;
6921
6922   case 632:
6923
6924     { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
6925     break;
6926
6927   case 633:
6928
6929     { yyval.expr = yyvsp[0].expr; ;}
6930     break;
6931
6932   case 635:
6933
6934     { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;}
6935     break;
6936
6937   case 637:
6938
6939     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6940     break;
6941
6942   case 638:
6943
6944     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6945     break;
6946
6947   case 639:
6948
6949     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6950     break;
6951
6952   case 641:
6953
6954     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6955     break;
6956
6957   case 642:
6958
6959     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6960     break;
6961
6962   case 644:
6963
6964     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6965     break;
6966
6967   case 645:
6968
6969     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6970     break;
6971
6972   case 647:
6973
6974     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6975     break;
6976
6977   case 648:
6978
6979     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6980     break;
6981
6982   case 649:
6983
6984     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6985     break;
6986
6987   case 650:
6988
6989     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6990     break;
6991
6992   case 652:
6993
6994     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
6995     break;
6996
6997   case 653:
6998
6999     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7000     break;
7001
7002   case 655:
7003
7004     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7005     break;
7006
7007   case 657:
7008
7009     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7010     break;
7011
7012   case 659:
7013
7014     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7015     break;
7016
7017   case 661:
7018
7019     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7020     break;
7021
7022   case 663:
7023
7024     { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7025     break;
7026
7027   case 665:
7028
7029     { context_enterTrueClause (yyvsp[-1].expr); ;}
7030     break;
7031
7032   case 666:
7033
7034     { context_enterFalseClause (yyvsp[-4].expr); ;}
7035     break;
7036
7037   case 667:
7038
7039     { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;}
7040     break;
7041
7042   case 669:
7043
7044     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7045     break;
7046
7047   case 670:
7048
7049     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7050     break;
7051
7052   case 671:
7053
7054     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7055     break;
7056
7057   case 672:
7058
7059     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7060     break;
7061
7062   case 673:
7063
7064     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7065     break;
7066
7067   case 674:
7068
7069     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7070     break;
7071
7072   case 675:
7073
7074     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7075     break;
7076
7077   case 676:
7078
7079     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7080     break;
7081
7082   case 677:
7083
7084     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7085     break;
7086
7087   case 678:
7088
7089     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7090     break;
7091
7092   case 679:
7093
7094     { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
7095     break;
7096
7097   case 680:
7098
7099     { yyval.entry = yyvsp[0].entry; ;}
7100     break;
7101
7102   case 681:
7103
7104     { yyval.entry = uentry_undefined; ;}
7105     break;
7106
7107   case 682:
7108
7109     { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;}
7110     break;
7111
7112   case 683:
7113
7114     { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
7115     break;
7116
7117   case 684:
7118
7119     { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;}
7120     break;
7121
7122   case 685:
7123
7124     { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
7125     break;
7126
7127   case 686:
7128
7129     { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
7130     break;
7131
7132   case 687:
7133
7134     { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;}
7135     break;
7136
7137   case 688:
7138
7139     { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;}
7140     break;
7141
7142   case 689:
7143
7144     { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
7145     break;
7146
7147   case 690:
7148
7149     { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;}
7150     break;
7151
7152   case 691:
7153
7154     { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;}
7155     break;
7156
7157   case 692:
7158
7159     { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;}
7160     break;
7161
7162   case 693:
7163
7164     { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;}
7165     break;
7166
7167   case 694:
7168
7169     { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;}
7170     break;
7171
7172   case 695:
7173
7174     { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;}
7175     break;
7176
7177   case 696:
7178
7179     { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;}
7180     break;
7181
7182   case 697:
7183
7184     { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;}
7185     break;
7186
7187   case 698:
7188
7189     { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;}
7190     break;
7191
7192   case 699:
7193
7194     { yyval.expr = exprNode_return (yyvsp[-1].expr); ;}
7195     break;
7196
7197   case 701:
7198
7199     { ; ;}
7200     break;
7201
7202   case 703:
7203
7204     { ; ;}
7205     break;
7206
7207   case 706:
7208
7209     { yyval.cname = uentry_getName (yyvsp[0].entry); ;}
7210     break;
7211
7212   case 707:
7213
7214     { yyval.cname = uentry_getName (yyvsp[0].entry); ;}
7215     break;
7216
7217   case 708:
7218
7219     { yyval.cname = uentry_getName (yyvsp[0].entry); ;}
7220     break;
7221
7222   case 709:
7223
7224     { yyval.cname = yyvsp[0].cname; ;}
7225     break;
7226
7227   case 711:
7228
7229     { yyval.ctyp = ctype_unknown; ;}
7230     break;
7231
7232   case 712:
7233
7234     { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;}
7235     break;
7236
7237   case 713:
7238
7239     { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;}
7240     break;
7241
7242
7243     }
7244
7245 /* Line 999 of yacc.c.  */
7246
7247 \f
7248   yyvsp -= yylen;
7249   yyssp -= yylen;
7250
7251
7252   YY_STACK_PRINT (yyss, yyssp);
7253
7254   *++yyvsp = yyval;
7255
7256
7257   /* Now `shift' the result of the reduction.  Determine what state
7258      that goes to, based on the state we popped back to and the rule
7259      number reduced by.  */
7260
7261   yyn = yyr1[yyn];
7262
7263   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7264   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7265     yystate = yytable[yystate];
7266   else
7267     yystate = yydefgoto[yyn - YYNTOKENS];
7268
7269   goto yynewstate;
7270
7271
7272 /*------------------------------------.
7273 | yyerrlab -- here on detecting error |
7274 `------------------------------------*/
7275 yyerrlab:
7276   /* If not already recovering from an error, report this error.  */
7277   if (!yyerrstatus)
7278     {
7279       ++yynerrs;
7280 #if YYERROR_VERBOSE
7281       yyn = yypact[yystate];
7282
7283       if (YYPACT_NINF < yyn && yyn < YYLAST)
7284         {
7285           YYSIZE_T yysize = 0;
7286           int yytype = YYTRANSLATE (yychar);
7287           char *yymsg;
7288           int yyx, yycount;
7289
7290           yycount = 0;
7291           /* Start YYX at -YYN if negative to avoid negative indexes in
7292              YYCHECK.  */
7293           for (yyx = yyn < 0 ? -yyn : 0;
7294                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
7295             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
7296               yysize += yystrlen (yytname[yyx]) + 15, yycount++;
7297           yysize += yystrlen ("syntax error, unexpected ") + 1;
7298           yysize += yystrlen (yytname[yytype]);
7299           yymsg = (char *) YYSTACK_ALLOC (yysize);
7300           if (yymsg != 0)
7301             {
7302               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
7303               yyp = yystpcpy (yyp, yytname[yytype]);
7304
7305               if (yycount < 5)
7306                 {
7307                   yycount = 0;
7308                   for (yyx = yyn < 0 ? -yyn : 0;
7309                        yyx < (int) (sizeof (yytname) / sizeof (char *));
7310                        yyx++)
7311                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
7312                       {
7313                         const char *yyq = ! yycount ? ", expecting " : " or ";
7314                         yyp = yystpcpy (yyp, yyq);
7315                         yyp = yystpcpy (yyp, yytname[yyx]);
7316                         yycount++;
7317                       }
7318                 }
7319               yyerror (yymsg);
7320               YYSTACK_FREE (yymsg);
7321             }
7322           else
7323             yyerror ("syntax error; also virtual memory exhausted");
7324         }
7325       else
7326 #endif /* YYERROR_VERBOSE */
7327         yyerror ("syntax error");
7328     }
7329
7330
7331
7332   if (yyerrstatus == 3)
7333     {
7334       /* If just tried and failed to reuse lookahead token after an
7335          error, discard it.  */
7336
7337       /* Return failure if at end of input.  */
7338       if (yychar == YYEOF)
7339         {
7340           /* Pop the error token.  */
7341           YYPOPSTACK;
7342           /* Pop the rest of the stack.  */
7343           while (yyss < yyssp)
7344             {
7345               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
7346               yydestruct (yystos[*yyssp], yyvsp);
7347               YYPOPSTACK;
7348             }
7349           YYABORT;
7350         }
7351
7352       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
7353       yydestruct (yytoken, &yylval);
7354       yychar = YYEMPTY;
7355
7356     }
7357
7358   /* Else will try to reuse lookahead token after shifting the error
7359      token.  */
7360   goto yyerrlab1;
7361
7362
7363 /*----------------------------------------------------.
7364 | yyerrlab1 -- error raised explicitly by an action.  |
7365 `----------------------------------------------------*/
7366 yyerrlab1:
7367   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
7368
7369   for (;;)
7370     {
7371       yyn = yypact[yystate];
7372       if (yyn != YYPACT_NINF)
7373         {
7374           yyn += YYTERROR;
7375           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7376             {
7377               yyn = yytable[yyn];
7378               if (0 < yyn)
7379                 break;
7380             }
7381         }
7382
7383       /* Pop the current state because it cannot handle the error token.  */
7384       if (yyssp == yyss)
7385         YYABORT;
7386
7387       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
7388       yydestruct (yystos[yystate], yyvsp);
7389       yyvsp--;
7390       yystate = *--yyssp;
7391
7392       YY_STACK_PRINT (yyss, yyssp);
7393     }
7394
7395   if (yyn == YYFINAL)
7396     YYACCEPT;
7397
7398   YYDPRINTF ((stderr, "Shifting error token, "));
7399
7400   *++yyvsp = yylval;
7401
7402
7403   yystate = yyn;
7404   goto yynewstate;
7405
7406
7407 /*-------------------------------------.
7408 | yyacceptlab -- YYACCEPT comes here.  |
7409 `-------------------------------------*/
7410 yyacceptlab:
7411   yyresult = 0;
7412   goto yyreturn;
7413
7414 /*-----------------------------------.
7415 | yyabortlab -- YYABORT comes here.  |
7416 `-----------------------------------*/
7417 yyabortlab:
7418   yyresult = 1;
7419   goto yyreturn;
7420
7421 #ifndef yyoverflow
7422 /*----------------------------------------------.
7423 | yyoverflowlab -- parser overflow comes here.  |
7424 `----------------------------------------------*/
7425 yyoverflowlab:
7426   yyerror ("parser stack overflow");
7427   yyresult = 2;
7428   /* Fall through.  */
7429 #endif
7430
7431 yyreturn:
7432 #ifndef yyoverflow
7433   if (yyss != yyssa)
7434     YYSTACK_FREE (yyss);
7435 #endif
7436   return yyresult;
7437 }
7438
7439
7440
7441
7442
7443 /*@-redecl@*/ /*@-namechecks@*/
7444 extern char *yytext;
7445 /*@=redecl@*/ /*@=namechecks@*/
7446
7447 # include "bison.reset"
7448
7449 void yyerror (/*@unused@*/ char *s) 
7450 {
7451   static bool givehint = FALSE;
7452
7453   if (context_inIterDef ())
7454     {
7455       llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s", 
7456                                     context_inFunctionName ()));
7457     }
7458   else if (context_inIterEnd ())
7459     {
7460       llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s", 
7461                                     context_inFunctionName ()));
7462     }
7463   else if (context_inMacro ())
7464     {
7465       llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s", 
7466                                     context_inFunctionName ()));
7467       
7468       if (context_inUnknownMacro ())
7469         {
7470           if (!givehint)
7471             {
7472               llhint (cstring_makeLiteral 
7473                      ("Precede macro definition with /*@notfunction@*/ "
7474                       "to suppress checking and force expansion"));
7475               givehint = TRUE;
7476             }
7477         }
7478
7479       cscannerHelp_swallowMacro ();
7480       context_exitAllClausesQuiet ();
7481     }
7482   else
7483     {
7484       llparseerror (cstring_undefined);
7485     }
7486 }
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500 /*
7501 ** Resets all flags in bison.head
7502 */
7503
7504
7505 /*@=allmacros@*/
7506 /*@=boolint@*/
7507 /*@=charint@*/
7508 /*@=macroparams@*/
7509 /*@=macroundef@*/
7510 /*@=unreachable@*/
7511 /*@=macrospec@*/
7512 /*@=varuse@*/
7513 /*@=ignorequals@*/
7514 /*@=macrostmt@*/
7515 /*@=noeffect@*/
7516 /*@=shadow@*/
7517 /*@=exitarg@*/
7518 /*@=macroredef@*/
7519 /*@=uniondef@*/
7520 /*@=compdef@*/
7521 /*@=matchfields@*/
7522 /*@=exportlocal@*/
7523 /*@=evalorderuncon@*/
7524 /*@=exportheader@*/
7525 /*@=typeuse@*/
7526 /*@=redecl@*/
7527 /*@=redef@*/
7528 /*@=noparams@*/
7529 /*@=ansireserved@*/
7530 /*@=fielduse@*/
7531 /*@=ifblock@*/
7532 /*@=elseifcomplete@*/
7533 /*@=whileblock@*/
7534 /*@=forblock@*/
7535 /*@=branchstate@*/
7536 /*@=readonlytrans@*/
7537 /*@=namechecks@*/
7538 /*@=usedef@*/
7539 /*@=systemunrecog@*/
7540 /*@=dependenttrans@*/
7541 /*@=unqualifiedtrans@*/
7542 /*@=declundef@*/
7543
7544
7545 /*drl added 11/27/2001*/
7546 /*@=bounds@*/
7547
7548 /*drl added 12/11/2002*/
7549 /*@=type@*/
This page took 0.64204 seconds and 5 git commands to generate.