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