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