/* A Bison parser, made by GNU Bison 3.8.2.  */

/* Bison implementation for Yacc-like parsers in C

   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
   Inc.

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
   especially those whose name start with YY_ or yy_.  They are
   private implementation details that can be changed or removed.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output, and Bison version.  */
#define YYBISON 30802

/* Bison version string.  */
#define YYBISON_VERSION "3.8.2"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 0

/* Push parsers.  */
#define YYPUSH 0

/* Pull parsers.  */
#define YYPULL 1

/* Substitute the type names.  */
#define YYSTYPE         C_STYPE
/* Substitute the variable and function names.  */
#define yyparse         c_parse
#define yylex           c_lex
#define yyerror         c_error
#define yydebug         c_debug
#define yynerrs         c_nerrs
#define yylval          c_lval
#define yychar          c_char

/* First part of user prologue.  */
#line 24 "cgrammar.y"

/*
**
** cgrammar.y
**
** Yacc/Bison grammar for extended ANSI C used by Splint.
**
** original grammar by Nate Osgood ---
**    hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
**
** changes for Splint --- handle typedef names correctly
** fix struct/union parsing bug (empty struct is accepted)
** add productions to handle macros --- require
** error correction --- main source of conflicts in grammar.
** need to process initializations sequentially, L->R
**
** production names are cryptic, so more productions fit on one line
**
** conflicts:  87 shift/reduce, 18 reduce/reduce
** most of these are due to handling macros
** a few are due to handling type expressions
**
** UPDATE: 138 shift/reduce, 17 reduce/reduce conflicts
*/

/*@=allmacros@*/

# include "splintMacros.nf"
# include "basic.h"
# include "cscanner.h"
# include "cscannerHelp.h"
# include "exprChecks.h"

/*@-allmacros@*/
/*@-matchfields@*/

# define YYDEBUG 1

/*
** This is necessary, or else when the bison-generated code #include's malloc.h,
** there will be a parse error.
**
** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
** in bison-generated files under Win32.
*/

# ifdef WIN32
# undef malloc
# undef calloc
# undef realloc
# endif


#line 133 "cgrammar.c"

# ifndef YY_CAST
#  ifdef __cplusplus
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
#  else
#   define YY_CAST(Type, Val) ((Type) (Val))
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
#  endif
# endif
# ifndef YY_NULLPTR
#  if defined __cplusplus
#   if 201103L <= __cplusplus
#    define YY_NULLPTR nullptr
#   else
#    define YY_NULLPTR 0
#   endif
#  else
#   define YY_NULLPTR ((void*)0)
#  endif
# endif

/* Use api.header.include to #include this header
   instead of duplicating it here.  */
#ifndef YY_C_CGRAMMAR_H_INCLUDED
# define YY_C_CGRAMMAR_H_INCLUDED
/* Debug traces.  */
#ifndef C_DEBUG
# if defined YYDEBUG
#if YYDEBUG
#   define C_DEBUG 1
#  else
#   define C_DEBUG 0
#  endif
# else /* ! defined YYDEBUG */
#  define C_DEBUG 0
# endif /* ! defined YYDEBUG */
#endif  /* ! defined C_DEBUG */
#if C_DEBUG
extern int c_debug;
#endif

/* Token kinds.  */
#ifndef C_TOKENTYPE
# define C_TOKENTYPE
  enum c_tokentype
  {
    C_EMPTY = -2,
    C_EOF = 0,                     /* "end of file"  */
    C_error = 256,                 /* error  */
    C_UNDEF = 257,                 /* "invalid token"  */
    BADTOK = 258,                  /* BADTOK  */
    SKIPTOK = 259,                 /* SKIPTOK  */
    CTOK_ELIPSIS = 260,            /* CTOK_ELIPSIS  */
    CASE = 261,                    /* CASE  */
    DEFAULT = 262,                 /* DEFAULT  */
    CIF = 263,                     /* CIF  */
    CELSE = 264,                   /* CELSE  */
    SWITCH = 265,                  /* SWITCH  */
    WHILE = 266,                   /* WHILE  */
    DO = 267,                      /* DO  */
    CFOR = 268,                    /* CFOR  */
    GOTO = 269,                    /* GOTO  */
    CONTINUE = 270,                /* CONTINUE  */
    BREAK = 271,                   /* BREAK  */
    RETURN = 272,                  /* RETURN  */
    TSEMI = 273,                   /* TSEMI  */
    TLBRACE = 274,                 /* TLBRACE  */
    TRBRACE = 275,                 /* TRBRACE  */
    TCOMMA = 276,                  /* TCOMMA  */
    TCOLON = 277,                  /* TCOLON  */
    TASSIGN = 278,                 /* TASSIGN  */
    TLPAREN = 279,                 /* TLPAREN  */
    TRPAREN = 280,                 /* TRPAREN  */
    TLSQBR = 281,                  /* TLSQBR  */
    TRSQBR = 282,                  /* TRSQBR  */
    TDOT = 283,                    /* TDOT  */
    TAMPERSAND = 284,              /* TAMPERSAND  */
    TEXCL = 285,                   /* TEXCL  */
    TTILDE = 286,                  /* TTILDE  */
    TMINUS = 287,                  /* TMINUS  */
    TPLUS = 288,                   /* TPLUS  */
    TMULT = 289,                   /* TMULT  */
    TDIV = 290,                    /* TDIV  */
    TPERCENT = 291,                /* TPERCENT  */
    TLT = 292,                     /* TLT  */
    TGT = 293,                     /* TGT  */
    TCIRC = 294,                   /* TCIRC  */
    TBAR = 295,                    /* TBAR  */
    TQUEST = 296,                  /* TQUEST  */
    CSIZEOF = 297,                 /* CSIZEOF  */
    CALIGNOF = 298,                /* CALIGNOF  */
    CTYPEOF = 299,                 /* CTYPEOF  */
    ARROW_OP = 300,                /* ARROW_OP  */
    CTYPEDEF = 301,                /* CTYPEDEF  */
    COFFSETOF = 302,               /* COFFSETOF  */
    INC_OP = 303,                  /* INC_OP  */
    DEC_OP = 304,                  /* DEC_OP  */
    LEFT_OP = 305,                 /* LEFT_OP  */
    RIGHT_OP = 306,                /* RIGHT_OP  */
    LE_OP = 307,                   /* LE_OP  */
    GE_OP = 308,                   /* GE_OP  */
    EQ_OP = 309,                   /* EQ_OP  */
    NE_OP = 310,                   /* NE_OP  */
    AND_OP = 311,                  /* AND_OP  */
    OR_OP = 312,                   /* OR_OP  */
    MUL_ASSIGN = 313,              /* MUL_ASSIGN  */
    DIV_ASSIGN = 314,              /* DIV_ASSIGN  */
    MOD_ASSIGN = 315,              /* MOD_ASSIGN  */
    ADD_ASSIGN = 316,              /* ADD_ASSIGN  */
    SUB_ASSIGN = 317,              /* SUB_ASSIGN  */
    LEFT_ASSIGN = 318,             /* LEFT_ASSIGN  */
    RIGHT_ASSIGN = 319,            /* RIGHT_ASSIGN  */
    AND_ASSIGN = 320,              /* AND_ASSIGN  */
    XOR_ASSIGN = 321,              /* XOR_ASSIGN  */
    OR_ASSIGN = 322,               /* OR_ASSIGN  */
    CSTRUCT = 323,                 /* CSTRUCT  */
    CUNION = 324,                  /* CUNION  */
    CENUM = 325,                   /* CENUM  */
    VA_ARG = 326,                  /* VA_ARG  */
    VA_DCL = 327,                  /* VA_DCL  */
    QWARN = 328,                   /* QWARN  */
    QGLOBALS = 329,                /* QGLOBALS  */
    QMODIFIES = 330,               /* QMODIFIES  */
    QNOMODS = 331,                 /* QNOMODS  */
    QCONSTANT = 332,               /* QCONSTANT  */
    QFUNCTION = 333,               /* QFUNCTION  */
    QITER = 334,                   /* QITER  */
    QDEFINES = 335,                /* QDEFINES  */
    QUSES = 336,                   /* QUSES  */
    QALLOCATES = 337,              /* QALLOCATES  */
    QSETS = 338,                   /* QSETS  */
    QRELEASES = 339,               /* QRELEASES  */
    QPRECLAUSE = 340,              /* QPRECLAUSE  */
    QPOSTCLAUSE = 341,             /* QPOSTCLAUSE  */
    QALT = 342,                    /* QALT  */
    QUNDEF = 343,                  /* QUNDEF  */
    QKILLED = 344,                 /* QKILLED  */
    QENDMACRO = 345,               /* QENDMACRO  */
    LLMACRO = 346,                 /* LLMACRO  */
    LLMACROITER = 347,             /* LLMACROITER  */
    LLMACROEND = 348,              /* LLMACROEND  */
    TENDMACRO = 349,               /* TENDMACRO  */
    QDREVEALSTATE = 350,           /* QDREVEALSTATE  */
    QSWITCHBREAK = 351,            /* QSWITCHBREAK  */
    QLOOPBREAK = 352,              /* QLOOPBREAK  */
    QINNERBREAK = 353,             /* QINNERBREAK  */
    QSAFEBREAK = 354,              /* QSAFEBREAK  */
    QINNERCONTINUE = 355,          /* QINNERCONTINUE  */
    QFALLTHROUGH = 356,            /* QFALLTHROUGH  */
    QLINTNOTREACHED = 357,         /* QLINTNOTREACHED  */
    QLINTFALLTHROUGH = 358,        /* QLINTFALLTHROUGH  */
    QLINTFALLTHRU = 359,           /* QLINTFALLTHRU  */
    QARGSUSED = 360,               /* QARGSUSED  */
    QPRINTFLIKE = 361,             /* QPRINTFLIKE  */
    QLINTPRINTFLIKE = 362,         /* QLINTPRINTFLIKE  */
    QSCANFLIKE = 363,              /* QSCANFLIKE  */
    QMESSAGELIKE = 364,            /* QMESSAGELIKE  */
    QNOTREACHED = 365,             /* QNOTREACHED  */
    QCONST = 366,                  /* QCONST  */
    QRESTRICT = 367,               /* QRESTRICT  */
    QVOLATILE = 368,               /* QVOLATILE  */
    QINLINE = 369,                 /* QINLINE  */
    QEXTENSION = 370,              /* QEXTENSION  */
    QEXTERN = 371,                 /* QEXTERN  */
    QSTATIC = 372,                 /* QSTATIC  */
    QAUTO = 373,                   /* QAUTO  */
    QREGISTER = 374,               /* QREGISTER  */
    QOUT = 375,                    /* QOUT  */
    QIN = 376,                     /* QIN  */
    QYIELD = 377,                  /* QYIELD  */
    QONLY = 378,                   /* QONLY  */
    QTEMP = 379,                   /* QTEMP  */
    QSHARED = 380,                 /* QSHARED  */
    QREF = 381,                    /* QREF  */
    QUNIQUE = 382,                 /* QUNIQUE  */
    QCHECKED = 383,                /* QCHECKED  */
    QUNCHECKED = 384,              /* QUNCHECKED  */
    QCHECKEDSTRICT = 385,          /* QCHECKEDSTRICT  */
    QCHECKMOD = 386,               /* QCHECKMOD  */
    QKEEP = 387,                   /* QKEEP  */
    QKEPT = 388,                   /* QKEPT  */
    QPARTIAL = 389,                /* QPARTIAL  */
    QSPECIAL = 390,                /* QSPECIAL  */
    QOWNED = 391,                  /* QOWNED  */
    QDEPENDENT = 392,              /* QDEPENDENT  */
    QRETURNED = 393,               /* QRETURNED  */
    QEXPOSED = 394,                /* QEXPOSED  */
    QNULL = 395,                   /* QNULL  */
    QOBSERVER = 396,               /* QOBSERVER  */
    QISNULL = 397,                 /* QISNULL  */
    QEXITS = 398,                  /* QEXITS  */
    QMAYEXIT = 399,                /* QMAYEXIT  */
    QNEVEREXIT = 400,              /* QNEVEREXIT  */
    QTRUEEXIT = 401,               /* QTRUEEXIT  */
    QFALSEEXIT = 402,              /* QFALSEEXIT  */
    QLONG = 403,                   /* QLONG  */
    QSIGNED = 404,                 /* QSIGNED  */
    QUNSIGNED = 405,               /* QUNSIGNED  */
    QSHORT = 406,                  /* QSHORT  */
    QUNUSED = 407,                 /* QUNUSED  */
    QSEF = 408,                    /* QSEF  */
    QNOTNULL = 409,                /* QNOTNULL  */
    QRELNULL = 410,                /* QRELNULL  */
    QABSTRACT = 411,               /* QABSTRACT  */
    QNUMABSTRACT = 412,            /* QNUMABSTRACT  */
    QCONCRETE = 413,               /* QCONCRETE  */
    QMUTABLE = 414,                /* QMUTABLE  */
    QIMMUTABLE = 415,              /* QIMMUTABLE  */
    QTRUENULL = 416,               /* QTRUENULL  */
    QFALSENULL = 417,              /* QFALSENULL  */
    QEXTERNAL = 418,               /* QEXTERNAL  */
    QREFCOUNTED = 419,             /* QREFCOUNTED  */
    QREFS = 420,                   /* QREFS  */
    QNEWREF = 421,                 /* QNEWREF  */
    QTEMPREF = 422,                /* QTEMPREF  */
    QKILLREF = 423,                /* QKILLREF  */
    QRELDEF = 424,                 /* QRELDEF  */
    CGCHAR = 425,                  /* CGCHAR  */
    CBOOL = 426,                   /* CBOOL  */
    CINT = 427,                    /* CINT  */
    CGFLOAT = 428,                 /* CGFLOAT  */
    CDOUBLE = 429,                 /* CDOUBLE  */
    CVOID = 430,                   /* CVOID  */
    QANYTYPE = 431,                /* QANYTYPE  */
    QINTEGRALTYPE = 432,           /* QINTEGRALTYPE  */
    QUNSIGNEDINTEGRALTYPE = 433,   /* QUNSIGNEDINTEGRALTYPE  */
    QSIGNEDINTEGRALTYPE = 434,     /* QSIGNEDINTEGRALTYPE  */
    QNULLTERMINATED = 435,         /* QNULLTERMINATED  */
    QMAXSET = 436,                 /* QMAXSET  */
    QMAXREAD = 437,                /* QMAXREAD  */
    TCAND = 438,                   /* TCAND  */
    IDENTIFIER = 439,              /* IDENTIFIER  */
    NEW_IDENTIFIER = 440,          /* NEW_IDENTIFIER  */
    CANNOTATION = 441,             /* CANNOTATION  */
    CCONSTANT = 442,               /* CCONSTANT  */
    ITER_NAME = 443,               /* ITER_NAME  */
    ITER_ENDNAME = 444,            /* ITER_ENDNAME  */
    TYPE_NAME = 445,               /* TYPE_NAME  */
    METASTATE_NAME = 446           /* METASTATE_NAME  */
  };
  typedef enum c_tokentype c_token_kind_t;
#endif
/* Token kinds.  */
#define C_EMPTY -2
#define C_EOF 0
#define C_error 256
#define C_UNDEF 257
#define BADTOK 258
#define SKIPTOK 259
#define CTOK_ELIPSIS 260
#define CASE 261
#define DEFAULT 262
#define CIF 263
#define CELSE 264
#define SWITCH 265
#define WHILE 266
#define DO 267
#define CFOR 268
#define GOTO 269
#define CONTINUE 270
#define BREAK 271
#define RETURN 272
#define TSEMI 273
#define TLBRACE 274
#define TRBRACE 275
#define TCOMMA 276
#define TCOLON 277
#define TASSIGN 278
#define TLPAREN 279
#define TRPAREN 280
#define TLSQBR 281
#define TRSQBR 282
#define TDOT 283
#define TAMPERSAND 284
#define TEXCL 285
#define TTILDE 286
#define TMINUS 287
#define TPLUS 288
#define TMULT 289
#define TDIV 290
#define TPERCENT 291
#define TLT 292
#define TGT 293
#define TCIRC 294
#define TBAR 295
#define TQUEST 296
#define CSIZEOF 297
#define CALIGNOF 298
#define CTYPEOF 299
#define ARROW_OP 300
#define CTYPEDEF 301
#define COFFSETOF 302
#define INC_OP 303
#define DEC_OP 304
#define LEFT_OP 305
#define RIGHT_OP 306
#define LE_OP 307
#define GE_OP 308
#define EQ_OP 309
#define NE_OP 310
#define AND_OP 311
#define OR_OP 312
#define MUL_ASSIGN 313
#define DIV_ASSIGN 314
#define MOD_ASSIGN 315
#define ADD_ASSIGN 316
#define SUB_ASSIGN 317
#define LEFT_ASSIGN 318
#define RIGHT_ASSIGN 319
#define AND_ASSIGN 320
#define XOR_ASSIGN 321
#define OR_ASSIGN 322
#define CSTRUCT 323
#define CUNION 324
#define CENUM 325
#define VA_ARG 326
#define VA_DCL 327
#define QWARN 328
#define QGLOBALS 329
#define QMODIFIES 330
#define QNOMODS 331
#define QCONSTANT 332
#define QFUNCTION 333
#define QITER 334
#define QDEFINES 335
#define QUSES 336
#define QALLOCATES 337
#define QSETS 338
#define QRELEASES 339
#define QPRECLAUSE 340
#define QPOSTCLAUSE 341
#define QALT 342
#define QUNDEF 343
#define QKILLED 344
#define QENDMACRO 345
#define LLMACRO 346
#define LLMACROITER 347
#define LLMACROEND 348
#define TENDMACRO 349
#define QDREVEALSTATE 350
#define QSWITCHBREAK 351
#define QLOOPBREAK 352
#define QINNERBREAK 353
#define QSAFEBREAK 354
#define QINNERCONTINUE 355
#define QFALLTHROUGH 356
#define QLINTNOTREACHED 357
#define QLINTFALLTHROUGH 358
#define QLINTFALLTHRU 359
#define QARGSUSED 360
#define QPRINTFLIKE 361
#define QLINTPRINTFLIKE 362
#define QSCANFLIKE 363
#define QMESSAGELIKE 364
#define QNOTREACHED 365
#define QCONST 366
#define QRESTRICT 367
#define QVOLATILE 368
#define QINLINE 369
#define QEXTENSION 370
#define QEXTERN 371
#define QSTATIC 372
#define QAUTO 373
#define QREGISTER 374
#define QOUT 375
#define QIN 376
#define QYIELD 377
#define QONLY 378
#define QTEMP 379
#define QSHARED 380
#define QREF 381
#define QUNIQUE 382
#define QCHECKED 383
#define QUNCHECKED 384
#define QCHECKEDSTRICT 385
#define QCHECKMOD 386
#define QKEEP 387
#define QKEPT 388
#define QPARTIAL 389
#define QSPECIAL 390
#define QOWNED 391
#define QDEPENDENT 392
#define QRETURNED 393
#define QEXPOSED 394
#define QNULL 395
#define QOBSERVER 396
#define QISNULL 397
#define QEXITS 398
#define QMAYEXIT 399
#define QNEVEREXIT 400
#define QTRUEEXIT 401
#define QFALSEEXIT 402
#define QLONG 403
#define QSIGNED 404
#define QUNSIGNED 405
#define QSHORT 406
#define QUNUSED 407
#define QSEF 408
#define QNOTNULL 409
#define QRELNULL 410
#define QABSTRACT 411
#define QNUMABSTRACT 412
#define QCONCRETE 413
#define QMUTABLE 414
#define QIMMUTABLE 415
#define QTRUENULL 416
#define QFALSENULL 417
#define QEXTERNAL 418
#define QREFCOUNTED 419
#define QREFS 420
#define QNEWREF 421
#define QTEMPREF 422
#define QKILLREF 423
#define QRELDEF 424
#define CGCHAR 425
#define CBOOL 426
#define CINT 427
#define CGFLOAT 428
#define CDOUBLE 429
#define CVOID 430
#define QANYTYPE 431
#define QINTEGRALTYPE 432
#define QUNSIGNEDINTEGRALTYPE 433
#define QSIGNEDINTEGRALTYPE 434
#define QNULLTERMINATED 435
#define QMAXSET 436
#define QMAXREAD 437
#define TCAND 438
#define IDENTIFIER 439
#define NEW_IDENTIFIER 440
#define CANNOTATION 441
#define CCONSTANT 442
#define ITER_NAME 443
#define ITER_ENDNAME 444
#define TYPE_NAME 445
#define METASTATE_NAME 446

/* Value type.  */
#if ! defined C_STYPE && ! defined C_STYPE_IS_DECLARED
union C_STYPE
{
#line 87 "cgrammar.y"

  lltok tok;
  int count;
  qual typequal;
  qualList tquallist;
  ctype ctyp;
  /*@dependent@*/ sRef sr;

  /*@only@*/ functionClauseList funcclauselist;
  /*@only@*/ functionClause funcclause;
  /*@only@*/ flagSpec flagspec;
  /*@only@*/ globalsClause globsclause;
  /*@only@*/ modifiesClause modsclause;
  /*@only@*/ warnClause warnclause;
  /*@only@*/ stateClause stateclause;
  /*@only@*/ pointers pointers;
  /*@only@*/ functionConstraint fcnconstraint;

  /*@only@*/ metaStateConstraint msconstraint;
  /*@only@*/ metaStateSpecifier msspec;
  /*@only@*/ metaStateExpression msexpr;
  /*@observer@*/ metaStateInfo msinfo;

  /*@only@*/ globSet globset;
  /*@only@*/ qtype qtyp;
  /*@only@*/ cstring cname;
  /*@observer@*/ annotationInfo annotation;
  /*@only@*/ idDecl ntyp;
  /*@only@*/ idDeclList ntyplist;
  /*@only@*/ uentryList flist;
  /*@owned@*/ uentryList entrylist;
  /*@observer@*/ /*@dependent@*/ uentry entry;
  /*@only@*/ uentry oentry;
  /*@only@*/ exprNode expr;
  /*@only@*/ enumNameList enumnamelist;
  /*@only@*/ exprNodeList exprlist;
  /*@only@*/ sRefSet srset;
  /*@only@*/ cstringList cstringlist;

  constraint con;
  constraintList conL;
  constraintExpr conE;

#line 620 "cgrammar.c"

};
typedef union C_STYPE C_STYPE;
# define C_STYPE_IS_TRIVIAL 1
# define C_STYPE_IS_DECLARED 1
#endif


extern C_STYPE c_lval;


int c_parse (void);


#endif /* !YY_C_CGRAMMAR_H_INCLUDED  */
/* Symbol kind.  */
enum yysymbol_kind_t
{
  YYSYMBOL_YYEMPTY = -2,
  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
  YYSYMBOL_YYerror = 1,                    /* error  */
  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
  YYSYMBOL_BADTOK = 3,                     /* BADTOK  */
  YYSYMBOL_SKIPTOK = 4,                    /* SKIPTOK  */
  YYSYMBOL_CTOK_ELIPSIS = 5,               /* CTOK_ELIPSIS  */
  YYSYMBOL_CASE = 6,                       /* CASE  */
  YYSYMBOL_DEFAULT = 7,                    /* DEFAULT  */
  YYSYMBOL_CIF = 8,                        /* CIF  */
  YYSYMBOL_CELSE = 9,                      /* CELSE  */
  YYSYMBOL_SWITCH = 10,                    /* SWITCH  */
  YYSYMBOL_WHILE = 11,                     /* WHILE  */
  YYSYMBOL_DO = 12,                        /* DO  */
  YYSYMBOL_CFOR = 13,                      /* CFOR  */
  YYSYMBOL_GOTO = 14,                      /* GOTO  */
  YYSYMBOL_CONTINUE = 15,                  /* CONTINUE  */
  YYSYMBOL_BREAK = 16,                     /* BREAK  */
  YYSYMBOL_RETURN = 17,                    /* RETURN  */
  YYSYMBOL_TSEMI = 18,                     /* TSEMI  */
  YYSYMBOL_TLBRACE = 19,                   /* TLBRACE  */
  YYSYMBOL_TRBRACE = 20,                   /* TRBRACE  */
  YYSYMBOL_TCOMMA = 21,                    /* TCOMMA  */
  YYSYMBOL_TCOLON = 22,                    /* TCOLON  */
  YYSYMBOL_TASSIGN = 23,                   /* TASSIGN  */
  YYSYMBOL_TLPAREN = 24,                   /* TLPAREN  */
  YYSYMBOL_TRPAREN = 25,                   /* TRPAREN  */
  YYSYMBOL_TLSQBR = 26,                    /* TLSQBR  */
  YYSYMBOL_TRSQBR = 27,                    /* TRSQBR  */
  YYSYMBOL_TDOT = 28,                      /* TDOT  */
  YYSYMBOL_TAMPERSAND = 29,                /* TAMPERSAND  */
  YYSYMBOL_TEXCL = 30,                     /* TEXCL  */
  YYSYMBOL_TTILDE = 31,                    /* TTILDE  */
  YYSYMBOL_TMINUS = 32,                    /* TMINUS  */
  YYSYMBOL_TPLUS = 33,                     /* TPLUS  */
  YYSYMBOL_TMULT = 34,                     /* TMULT  */
  YYSYMBOL_TDIV = 35,                      /* TDIV  */
  YYSYMBOL_TPERCENT = 36,                  /* TPERCENT  */
  YYSYMBOL_TLT = 37,                       /* TLT  */
  YYSYMBOL_TGT = 38,                       /* TGT  */
  YYSYMBOL_TCIRC = 39,                     /* TCIRC  */
  YYSYMBOL_TBAR = 40,                      /* TBAR  */
  YYSYMBOL_TQUEST = 41,                    /* TQUEST  */
  YYSYMBOL_CSIZEOF = 42,                   /* CSIZEOF  */
  YYSYMBOL_CALIGNOF = 43,                  /* CALIGNOF  */
  YYSYMBOL_CTYPEOF = 44,                   /* CTYPEOF  */
  YYSYMBOL_ARROW_OP = 45,                  /* ARROW_OP  */
  YYSYMBOL_CTYPEDEF = 46,                  /* CTYPEDEF  */
  YYSYMBOL_COFFSETOF = 47,                 /* COFFSETOF  */
  YYSYMBOL_INC_OP = 48,                    /* INC_OP  */
  YYSYMBOL_DEC_OP = 49,                    /* DEC_OP  */
  YYSYMBOL_LEFT_OP = 50,                   /* LEFT_OP  */
  YYSYMBOL_RIGHT_OP = 51,                  /* RIGHT_OP  */
  YYSYMBOL_LE_OP = 52,                     /* LE_OP  */
  YYSYMBOL_GE_OP = 53,                     /* GE_OP  */
  YYSYMBOL_EQ_OP = 54,                     /* EQ_OP  */
  YYSYMBOL_NE_OP = 55,                     /* NE_OP  */
  YYSYMBOL_AND_OP = 56,                    /* AND_OP  */
  YYSYMBOL_OR_OP = 57,                     /* OR_OP  */
  YYSYMBOL_MUL_ASSIGN = 58,                /* MUL_ASSIGN  */
  YYSYMBOL_DIV_ASSIGN = 59,                /* DIV_ASSIGN  */
  YYSYMBOL_MOD_ASSIGN = 60,                /* MOD_ASSIGN  */
  YYSYMBOL_ADD_ASSIGN = 61,                /* ADD_ASSIGN  */
  YYSYMBOL_SUB_ASSIGN = 62,                /* SUB_ASSIGN  */
  YYSYMBOL_LEFT_ASSIGN = 63,               /* LEFT_ASSIGN  */
  YYSYMBOL_RIGHT_ASSIGN = 64,              /* RIGHT_ASSIGN  */
  YYSYMBOL_AND_ASSIGN = 65,                /* AND_ASSIGN  */
  YYSYMBOL_XOR_ASSIGN = 66,                /* XOR_ASSIGN  */
  YYSYMBOL_OR_ASSIGN = 67,                 /* OR_ASSIGN  */
  YYSYMBOL_CSTRUCT = 68,                   /* CSTRUCT  */
  YYSYMBOL_CUNION = 69,                    /* CUNION  */
  YYSYMBOL_CENUM = 70,                     /* CENUM  */
  YYSYMBOL_VA_ARG = 71,                    /* VA_ARG  */
  YYSYMBOL_VA_DCL = 72,                    /* VA_DCL  */
  YYSYMBOL_QWARN = 73,                     /* QWARN  */
  YYSYMBOL_QGLOBALS = 74,                  /* QGLOBALS  */
  YYSYMBOL_QMODIFIES = 75,                 /* QMODIFIES  */
  YYSYMBOL_QNOMODS = 76,                   /* QNOMODS  */
  YYSYMBOL_QCONSTANT = 77,                 /* QCONSTANT  */
  YYSYMBOL_QFUNCTION = 78,                 /* QFUNCTION  */
  YYSYMBOL_QITER = 79,                     /* QITER  */
  YYSYMBOL_QDEFINES = 80,                  /* QDEFINES  */
  YYSYMBOL_QUSES = 81,                     /* QUSES  */
  YYSYMBOL_QALLOCATES = 82,                /* QALLOCATES  */
  YYSYMBOL_QSETS = 83,                     /* QSETS  */
  YYSYMBOL_QRELEASES = 84,                 /* QRELEASES  */
  YYSYMBOL_QPRECLAUSE = 85,                /* QPRECLAUSE  */
  YYSYMBOL_QPOSTCLAUSE = 86,               /* QPOSTCLAUSE  */
  YYSYMBOL_QALT = 87,                      /* QALT  */
  YYSYMBOL_QUNDEF = 88,                    /* QUNDEF  */
  YYSYMBOL_QKILLED = 89,                   /* QKILLED  */
  YYSYMBOL_QENDMACRO = 90,                 /* QENDMACRO  */
  YYSYMBOL_LLMACRO = 91,                   /* LLMACRO  */
  YYSYMBOL_LLMACROITER = 92,               /* LLMACROITER  */
  YYSYMBOL_LLMACROEND = 93,                /* LLMACROEND  */
  YYSYMBOL_TENDMACRO = 94,                 /* TENDMACRO  */
  YYSYMBOL_QDREVEALSTATE = 95,             /* QDREVEALSTATE  */
  YYSYMBOL_QSWITCHBREAK = 96,              /* QSWITCHBREAK  */
  YYSYMBOL_QLOOPBREAK = 97,                /* QLOOPBREAK  */
  YYSYMBOL_QINNERBREAK = 98,               /* QINNERBREAK  */
  YYSYMBOL_QSAFEBREAK = 99,                /* QSAFEBREAK  */
  YYSYMBOL_QINNERCONTINUE = 100,           /* QINNERCONTINUE  */
  YYSYMBOL_QFALLTHROUGH = 101,             /* QFALLTHROUGH  */
  YYSYMBOL_QLINTNOTREACHED = 102,          /* QLINTNOTREACHED  */
  YYSYMBOL_QLINTFALLTHROUGH = 103,         /* QLINTFALLTHROUGH  */
  YYSYMBOL_QLINTFALLTHRU = 104,            /* QLINTFALLTHRU  */
  YYSYMBOL_QARGSUSED = 105,                /* QARGSUSED  */
  YYSYMBOL_QPRINTFLIKE = 106,              /* QPRINTFLIKE  */
  YYSYMBOL_QLINTPRINTFLIKE = 107,          /* QLINTPRINTFLIKE  */
  YYSYMBOL_QSCANFLIKE = 108,               /* QSCANFLIKE  */
  YYSYMBOL_QMESSAGELIKE = 109,             /* QMESSAGELIKE  */
  YYSYMBOL_QNOTREACHED = 110,              /* QNOTREACHED  */
  YYSYMBOL_QCONST = 111,                   /* QCONST  */
  YYSYMBOL_QRESTRICT = 112,                /* QRESTRICT  */
  YYSYMBOL_QVOLATILE = 113,                /* QVOLATILE  */
  YYSYMBOL_QINLINE = 114,                  /* QINLINE  */
  YYSYMBOL_QEXTENSION = 115,               /* QEXTENSION  */
  YYSYMBOL_QEXTERN = 116,                  /* QEXTERN  */
  YYSYMBOL_QSTATIC = 117,                  /* QSTATIC  */
  YYSYMBOL_QAUTO = 118,                    /* QAUTO  */
  YYSYMBOL_QREGISTER = 119,                /* QREGISTER  */
  YYSYMBOL_QOUT = 120,                     /* QOUT  */
  YYSYMBOL_QIN = 121,                      /* QIN  */
  YYSYMBOL_QYIELD = 122,                   /* QYIELD  */
  YYSYMBOL_QONLY = 123,                    /* QONLY  */
  YYSYMBOL_QTEMP = 124,                    /* QTEMP  */
  YYSYMBOL_QSHARED = 125,                  /* QSHARED  */
  YYSYMBOL_QREF = 126,                     /* QREF  */
  YYSYMBOL_QUNIQUE = 127,                  /* QUNIQUE  */
  YYSYMBOL_QCHECKED = 128,                 /* QCHECKED  */
  YYSYMBOL_QUNCHECKED = 129,               /* QUNCHECKED  */
  YYSYMBOL_QCHECKEDSTRICT = 130,           /* QCHECKEDSTRICT  */
  YYSYMBOL_QCHECKMOD = 131,                /* QCHECKMOD  */
  YYSYMBOL_QKEEP = 132,                    /* QKEEP  */
  YYSYMBOL_QKEPT = 133,                    /* QKEPT  */
  YYSYMBOL_QPARTIAL = 134,                 /* QPARTIAL  */
  YYSYMBOL_QSPECIAL = 135,                 /* QSPECIAL  */
  YYSYMBOL_QOWNED = 136,                   /* QOWNED  */
  YYSYMBOL_QDEPENDENT = 137,               /* QDEPENDENT  */
  YYSYMBOL_QRETURNED = 138,                /* QRETURNED  */
  YYSYMBOL_QEXPOSED = 139,                 /* QEXPOSED  */
  YYSYMBOL_QNULL = 140,                    /* QNULL  */
  YYSYMBOL_QOBSERVER = 141,                /* QOBSERVER  */
  YYSYMBOL_QISNULL = 142,                  /* QISNULL  */
  YYSYMBOL_QEXITS = 143,                   /* QEXITS  */
  YYSYMBOL_QMAYEXIT = 144,                 /* QMAYEXIT  */
  YYSYMBOL_QNEVEREXIT = 145,               /* QNEVEREXIT  */
  YYSYMBOL_QTRUEEXIT = 146,                /* QTRUEEXIT  */
  YYSYMBOL_QFALSEEXIT = 147,               /* QFALSEEXIT  */
  YYSYMBOL_QLONG = 148,                    /* QLONG  */
  YYSYMBOL_QSIGNED = 149,                  /* QSIGNED  */
  YYSYMBOL_QUNSIGNED = 150,                /* QUNSIGNED  */
  YYSYMBOL_QSHORT = 151,                   /* QSHORT  */
  YYSYMBOL_QUNUSED = 152,                  /* QUNUSED  */
  YYSYMBOL_QSEF = 153,                     /* QSEF  */
  YYSYMBOL_QNOTNULL = 154,                 /* QNOTNULL  */
  YYSYMBOL_QRELNULL = 155,                 /* QRELNULL  */
  YYSYMBOL_QABSTRACT = 156,                /* QABSTRACT  */
  YYSYMBOL_QNUMABSTRACT = 157,             /* QNUMABSTRACT  */
  YYSYMBOL_QCONCRETE = 158,                /* QCONCRETE  */
  YYSYMBOL_QMUTABLE = 159,                 /* QMUTABLE  */
  YYSYMBOL_QIMMUTABLE = 160,               /* QIMMUTABLE  */
  YYSYMBOL_QTRUENULL = 161,                /* QTRUENULL  */
  YYSYMBOL_QFALSENULL = 162,               /* QFALSENULL  */
  YYSYMBOL_QEXTERNAL = 163,                /* QEXTERNAL  */
  YYSYMBOL_QREFCOUNTED = 164,              /* QREFCOUNTED  */
  YYSYMBOL_QREFS = 165,                    /* QREFS  */
  YYSYMBOL_QNEWREF = 166,                  /* QNEWREF  */
  YYSYMBOL_QTEMPREF = 167,                 /* QTEMPREF  */
  YYSYMBOL_QKILLREF = 168,                 /* QKILLREF  */
  YYSYMBOL_QRELDEF = 169,                  /* QRELDEF  */
  YYSYMBOL_CGCHAR = 170,                   /* CGCHAR  */
  YYSYMBOL_CBOOL = 171,                    /* CBOOL  */
  YYSYMBOL_CINT = 172,                     /* CINT  */
  YYSYMBOL_CGFLOAT = 173,                  /* CGFLOAT  */
  YYSYMBOL_CDOUBLE = 174,                  /* CDOUBLE  */
  YYSYMBOL_CVOID = 175,                    /* CVOID  */
  YYSYMBOL_QANYTYPE = 176,                 /* QANYTYPE  */
  YYSYMBOL_QINTEGRALTYPE = 177,            /* QINTEGRALTYPE  */
  YYSYMBOL_QUNSIGNEDINTEGRALTYPE = 178,    /* QUNSIGNEDINTEGRALTYPE  */
  YYSYMBOL_QSIGNEDINTEGRALTYPE = 179,      /* QSIGNEDINTEGRALTYPE  */
  YYSYMBOL_QNULLTERMINATED = 180,          /* QNULLTERMINATED  */
  YYSYMBOL_QMAXSET = 181,                  /* QMAXSET  */
  YYSYMBOL_QMAXREAD = 182,                 /* QMAXREAD  */
  YYSYMBOL_TCAND = 183,                    /* TCAND  */
  YYSYMBOL_IDENTIFIER = 184,               /* IDENTIFIER  */
  YYSYMBOL_NEW_IDENTIFIER = 185,           /* NEW_IDENTIFIER  */
  YYSYMBOL_CANNOTATION = 186,              /* CANNOTATION  */
  YYSYMBOL_CCONSTANT = 187,                /* CCONSTANT  */
  YYSYMBOL_ITER_NAME = 188,                /* ITER_NAME  */
  YYSYMBOL_ITER_ENDNAME = 189,             /* ITER_ENDNAME  */
  YYSYMBOL_TYPE_NAME = 190,                /* TYPE_NAME  */
  YYSYMBOL_METASTATE_NAME = 191,           /* METASTATE_NAME  */
  YYSYMBOL_YYACCEPT = 192,                 /* $accept  */
  YYSYMBOL_file = 193,                     /* file  */
  YYSYMBOL_externalDefs = 194,             /* externalDefs  */
  YYSYMBOL_externalDef = 195,              /* externalDef  */
  YYSYMBOL_constantDecl = 196,             /* constantDecl  */
  YYSYMBOL_fcnDecl = 197,                  /* fcnDecl  */
  YYSYMBOL_198_1 = 198,                    /* $@1  */
  YYSYMBOL_plainFcn = 199,                 /* plainFcn  */
  YYSYMBOL_plainNamedDecl = 200,           /* plainNamedDecl  */
  YYSYMBOL_namedDeclBase = 201,            /* namedDeclBase  */
  YYSYMBOL_202_2 = 202,                    /* $@2  */
  YYSYMBOL_203_3 = 203,                    /* $@3  */
  YYSYMBOL_plainNamedDeclBase = 204,       /* plainNamedDeclBase  */
  YYSYMBOL_205_4 = 205,                    /* $@4  */
  YYSYMBOL_206_5 = 206,                    /* $@5  */
  YYSYMBOL_iterDecl = 207,                 /* iterDecl  */
  YYSYMBOL_208_6 = 208,                    /* $@6  */
  YYSYMBOL_209_7 = 209,                    /* $@7  */
  YYSYMBOL_macroDef = 210,                 /* macroDef  */
  YYSYMBOL_metaStateConstraint = 211,      /* metaStateConstraint  */
  YYSYMBOL_metaStateSpecifier = 212,       /* metaStateSpecifier  */
  YYSYMBOL_213_8 = 213,                    /* $@8  */
  YYSYMBOL_214_9 = 214,                    /* $@9  */
  YYSYMBOL_metaStateExpression = 215,      /* metaStateExpression  */
  YYSYMBOL_BufConstraintList = 216,        /* BufConstraintList  */
  YYSYMBOL_BufConstraint = 217,            /* BufConstraint  */
  YYSYMBOL_BufConstraintExpr = 218,        /* BufConstraintExpr  */
  YYSYMBOL_BufConstraintSrefExpr = 219,    /* BufConstraintSrefExpr  */
  YYSYMBOL_BufUnaryOp = 220,               /* BufUnaryOp  */
  YYSYMBOL_BufBinaryOp = 221,              /* BufBinaryOp  */
  YYSYMBOL_BufRelationalOp = 222,          /* BufRelationalOp  */
  YYSYMBOL_BufConstraintSeparator = 223,   /* BufConstraintSeparator  */
  YYSYMBOL_functionClauses = 224,          /* functionClauses  */
  YYSYMBOL_functionClausesPlain = 225,     /* functionClausesPlain  */
  YYSYMBOL_functionClause = 226,           /* functionClause  */
  YYSYMBOL_functionClausePlain = 227,      /* functionClausePlain  */
  YYSYMBOL_globalsClause = 228,            /* globalsClause  */
  YYSYMBOL_globalsClausePlain = 229,       /* globalsClausePlain  */
  YYSYMBOL_230_10 = 230,                   /* $@10  */
  YYSYMBOL_nomodsClause = 231,             /* nomodsClause  */
  YYSYMBOL_modifiesClause = 232,           /* modifiesClause  */
  YYSYMBOL_modifiesClausePlain = 233,      /* modifiesClausePlain  */
  YYSYMBOL_234_11 = 234,                   /* $@11  */
  YYSYMBOL_flagSpec = 235,                 /* flagSpec  */
  YYSYMBOL_flagId = 236,                   /* flagId  */
  YYSYMBOL_optWarnClause = 237,            /* optWarnClause  */
  YYSYMBOL_warnClause = 238,               /* warnClause  */
  YYSYMBOL_warnClausePlain = 239,          /* warnClausePlain  */
  YYSYMBOL_globIdList = 240,               /* globIdList  */
  YYSYMBOL_globIdListExpr = 241,           /* globIdListExpr  */
  YYSYMBOL_optGlobQuals = 242,             /* optGlobQuals  */
  YYSYMBOL_globId = 243,                   /* globId  */
  YYSYMBOL_globQual = 244,                 /* globQual  */
  YYSYMBOL_stateTag = 245,                 /* stateTag  */
  YYSYMBOL_conditionTag = 246,             /* conditionTag  */
  YYSYMBOL_fcnHdr = 247,                   /* fcnHdr  */
  YYSYMBOL_optInitializerList = 248,       /* optInitializerList  */
  YYSYMBOL_249_12 = 249,                   /* $@12  */
  YYSYMBOL_250_13 = 250,                   /* $@13  */
  YYSYMBOL_fcnBody = 251,                  /* fcnBody  */
  YYSYMBOL_252_14 = 252,                   /* $@14  */
  YYSYMBOL_fcnDef = 253,                   /* fcnDef  */
  YYSYMBOL_locModifies = 254,              /* locModifies  */
  YYSYMBOL_modListExpr = 255,              /* modListExpr  */
  YYSYMBOL_mExpr = 256,                    /* mExpr  */
  YYSYMBOL_modList = 257,                  /* modList  */
  YYSYMBOL_specClauseListExpr = 258,       /* specClauseListExpr  */
  YYSYMBOL_optSpecClauseList = 259,        /* optSpecClauseList  */
  YYSYMBOL_specClauseList = 260,           /* specClauseList  */
  YYSYMBOL_primaryExpr = 261,              /* primaryExpr  */
  YYSYMBOL_262_15 = 262,                   /* $@15  */
  YYSYMBOL_postfixExpr = 263,              /* postfixExpr  */
  YYSYMBOL_argumentExprList = 264,         /* argumentExprList  */
  YYSYMBOL_unaryExpr = 265,                /* unaryExpr  */
  YYSYMBOL_fieldDesignator = 266,          /* fieldDesignator  */
  YYSYMBOL_offsetofExpr = 267,             /* offsetofExpr  */
  YYSYMBOL_sizeofExpr = 268,               /* sizeofExpr  */
  YYSYMBOL_269_16 = 269,                   /* $@16  */
  YYSYMBOL_processSizeof = 270,            /* processSizeof  */
  YYSYMBOL_endprocessSizeof = 271,         /* endprocessSizeof  */
  YYSYMBOL_sizeofExprAux = 272,            /* sizeofExprAux  */
  YYSYMBOL_castExpr = 273,                 /* castExpr  */
  YYSYMBOL_timesExpr = 274,                /* timesExpr  */
  YYSYMBOL_plusExpr = 275,                 /* plusExpr  */
  YYSYMBOL_shiftExpr = 276,                /* shiftExpr  */
  YYSYMBOL_relationalExpr = 277,           /* relationalExpr  */
  YYSYMBOL_equalityExpr = 278,             /* equalityExpr  */
  YYSYMBOL_bitandExpr = 279,               /* bitandExpr  */
  YYSYMBOL_xorExpr = 280,                  /* xorExpr  */
  YYSYMBOL_bitorExpr = 281,                /* bitorExpr  */
  YYSYMBOL_andExpr = 282,                  /* andExpr  */
  YYSYMBOL_283_17 = 283,                   /* $@17  */
  YYSYMBOL_orExpr = 284,                   /* orExpr  */
  YYSYMBOL_285_18 = 285,                   /* $@18  */
  YYSYMBOL_conditionalExpr = 286,          /* conditionalExpr  */
  YYSYMBOL_287_19 = 287,                   /* $@19  */
  YYSYMBOL_288_20 = 288,                   /* $@20  */
  YYSYMBOL_289_21 = 289,                   /* $@21  */
  YYSYMBOL_290_22 = 290,                   /* $@22  */
  YYSYMBOL_assignExpr = 291,               /* assignExpr  */
  YYSYMBOL_expr = 292,                     /* expr  */
  YYSYMBOL_optExpr = 293,                  /* optExpr  */
  YYSYMBOL_optInitExpr = 294,              /* optInitExpr  */
  YYSYMBOL_constantExpr = 295,             /* constantExpr  */
  YYSYMBOL_initializer = 296,              /* initializer  */
  YYSYMBOL_instanceDeclAux = 297,          /* instanceDeclAux  */
  YYSYMBOL_298_23 = 298,                   /* $@23  */
  YYSYMBOL_299_24 = 299,                   /* $@24  */
  YYSYMBOL_instanceDecl = 300,             /* instanceDecl  */
  YYSYMBOL_namedInitializerType = 301,     /* namedInitializerType  */
  YYSYMBOL_namedInitializer = 302,         /* namedInitializer  */
  YYSYMBOL_303_25 = 303,                   /* $@25  */
  YYSYMBOL_typeDecl = 304,                 /* typeDecl  */
  YYSYMBOL_305_26 = 305,                   /* $@26  */
  YYSYMBOL_IsType = 306,                   /* IsType  */
  YYSYMBOL_PushType = 307,                 /* PushType  */
  YYSYMBOL_namedInitializerList = 308,     /* namedInitializerList  */
  YYSYMBOL_namedInitializerListAux = 309,  /* namedInitializerListAux  */
  YYSYMBOL_namedInitializerTypeList = 310, /* namedInitializerTypeList  */
  YYSYMBOL_namedInitializerTypeListAux = 311, /* namedInitializerTypeListAux  */
  YYSYMBOL_declarators = 312,              /* declarators  */
  YYSYMBOL_init = 313,                     /* init  */
  YYSYMBOL_designation = 314,              /* designation  */
  YYSYMBOL_designatorList = 315,           /* designatorList  */
  YYSYMBOL_designator = 316,               /* designator  */
  YYSYMBOL_initList = 317,                 /* initList  */
  YYSYMBOL_storageSpecifier = 318,         /* storageSpecifier  */
  YYSYMBOL_stateClause = 319,              /* stateClause  */
  YYSYMBOL_stateClausePlain = 320,         /* stateClausePlain  */
  YYSYMBOL_321_27 = 321,                   /* $@27  */
  YYSYMBOL_conditionClause = 322,          /* conditionClause  */
  YYSYMBOL_startConditionClause = 323,     /* startConditionClause  */
  YYSYMBOL_conditionClausePlain = 324,     /* conditionClausePlain  */
  YYSYMBOL_325_28 = 325,                   /* $@28  */
  YYSYMBOL_326_29 = 326,                   /* $@29  */
  YYSYMBOL_functionConstraint = 327,       /* functionConstraint  */
  YYSYMBOL_exitsQualifier = 328,           /* exitsQualifier  */
  YYSYMBOL_checkQualifier = 329,           /* checkQualifier  */
  YYSYMBOL_stateQualifier = 330,           /* stateQualifier  */
  YYSYMBOL_paramQualifier = 331,           /* paramQualifier  */
  YYSYMBOL_visibilityQualifier = 332,      /* visibilityQualifier  */
  YYSYMBOL_returnQualifier = 333,          /* returnQualifier  */
  YYSYMBOL_typedefQualifier = 334,         /* typedefQualifier  */
  YYSYMBOL_refcountQualifier = 335,        /* refcountQualifier  */
  YYSYMBOL_typeModifier = 336,             /* typeModifier  */
  YYSYMBOL_definedQualifier = 337,         /* definedQualifier  */
  YYSYMBOL_typeQualifier = 338,            /* typeQualifier  */
  YYSYMBOL_typeSpecifier = 339,            /* typeSpecifier  */
  YYSYMBOL_completeType = 340,             /* completeType  */
  YYSYMBOL_completeTypeSpecifier = 341,    /* completeTypeSpecifier  */
  YYSYMBOL_altType = 342,                  /* altType  */
  YYSYMBOL_completeTypeSpecifierAux = 343, /* completeTypeSpecifierAux  */
  YYSYMBOL_optCompleteType = 344,          /* optCompleteType  */
  YYSYMBOL_suSpc = 345,                    /* suSpc  */
  YYSYMBOL_346_30 = 346,                   /* $@30  */
  YYSYMBOL_347_31 = 347,                   /* $@31  */
  YYSYMBOL_348_32 = 348,                   /* $@32  */
  YYSYMBOL_349_33 = 349,                   /* $@33  */
  YYSYMBOL_350_34 = 350,                   /* $@34  */
  YYSYMBOL_351_35 = 351,                   /* $@35  */
  YYSYMBOL_352_36 = 352,                   /* $@36  */
  YYSYMBOL_353_37 = 353,                   /* $@37  */
  YYSYMBOL_NotType = 354,                  /* NotType  */
  YYSYMBOL_structDeclList = 355,           /* structDeclList  */
  YYSYMBOL_structDecl = 356,               /* structDecl  */
  YYSYMBOL_structNamedDeclList = 357,      /* structNamedDeclList  */
  YYSYMBOL_structNamedDecl = 358,          /* structNamedDecl  */
  YYSYMBOL_enumSpc = 359,                  /* enumSpc  */
  YYSYMBOL_360_38 = 360,                   /* $@38  */
  YYSYMBOL_enumeratorList = 361,           /* enumeratorList  */
  YYSYMBOL_enumerator = 362,               /* enumerator  */
  YYSYMBOL_optNamedDecl = 363,             /* optNamedDecl  */
  YYSYMBOL_namedDecl = 364,                /* namedDecl  */
  YYSYMBOL_genericParamList = 365,         /* genericParamList  */
  YYSYMBOL_innerMods = 366,                /* innerMods  */
  YYSYMBOL_innerModsList = 367,            /* innerModsList  */
  YYSYMBOL_pointers = 368,                 /* pointers  */
  YYSYMBOL_paramIdList = 369,              /* paramIdList  */
  YYSYMBOL_idList = 370,                   /* idList  */
  YYSYMBOL_paramTypeList = 371,            /* paramTypeList  */
  YYSYMBOL_paramList = 372,                /* paramList  */
  YYSYMBOL_paramDecl = 373,                /* paramDecl  */
  YYSYMBOL_typeExpression = 374,           /* typeExpression  */
  YYSYMBOL_abstractDecl = 375,             /* abstractDecl  */
  YYSYMBOL_optAbstractDeclBase = 376,      /* optAbstractDeclBase  */
  YYSYMBOL_abstractDeclBase = 377,         /* abstractDeclBase  */
  YYSYMBOL_stmt = 378,                     /* stmt  */
  YYSYMBOL_debugStmt = 379,                /* debugStmt  */
  YYSYMBOL_iterBody = 380,                 /* iterBody  */
  YYSYMBOL_endBody = 381,                  /* endBody  */
  YYSYMBOL_iterDefStmtList = 382,          /* iterDefStmtList  */
  YYSYMBOL_iterDefIterationStmt = 383,     /* iterDefIterationStmt  */
  YYSYMBOL_forPred = 384,                  /* forPred  */
  YYSYMBOL_385_39 = 385,                   /* $@39  */
  YYSYMBOL_386_40 = 386,                   /* $@40  */
  YYSYMBOL_partialIterStmt = 387,          /* partialIterStmt  */
  YYSYMBOL_388_41 = 388,                   /* $@41  */
  YYSYMBOL_iterDefStmt = 389,              /* iterDefStmt  */
  YYSYMBOL_iterSelectionStmt = 390,        /* iterSelectionStmt  */
  YYSYMBOL_391_42 = 391,                   /* $@42  */
  YYSYMBOL_openScope = 392,                /* openScope  */
  YYSYMBOL_closeScope = 393,               /* closeScope  */
  YYSYMBOL_macroBody = 394,                /* macroBody  */
  YYSYMBOL_stmtErr = 395,                  /* stmtErr  */
  YYSYMBOL_labeledStmt = 396,              /* labeledStmt  */
  YYSYMBOL_fallThroughList = 397,          /* fallThroughList  */
  YYSYMBOL_caseStmt = 398,                 /* caseStmt  */
  YYSYMBOL_399_43 = 399,                   /* $@43  */
  YYSYMBOL_400_44 = 400,                   /* $@44  */
  YYSYMBOL_defaultStmt = 401,              /* defaultStmt  */
  YYSYMBOL_402_45 = 402,                   /* $@45  */
  YYSYMBOL_403_46 = 403,                   /* $@46  */
  YYSYMBOL_compoundStmt = 404,             /* compoundStmt  */
  YYSYMBOL_compoundStmtErr = 405,          /* compoundStmtErr  */
  YYSYMBOL_CreateInnerScope = 406,         /* CreateInnerScope  */
  YYSYMBOL_DeleteInnerScope = 407,         /* DeleteInnerScope  */
  YYSYMBOL_CreateStructInnerScope = 408,   /* CreateStructInnerScope  */
  YYSYMBOL_DeleteStructInnerScope = 409,   /* DeleteStructInnerScope  */
  YYSYMBOL_DeleteInnerScopeSafe = 410,     /* DeleteInnerScopeSafe  */
  YYSYMBOL_initStmtList = 411,             /* initStmtList  */
  YYSYMBOL_compoundStmtAux = 412,          /* compoundStmtAux  */
  YYSYMBOL_initStmtListErr = 413,          /* initStmtListErr  */
  YYSYMBOL_compoundStmtAuxErr = 414,       /* compoundStmtAuxErr  */
  YYSYMBOL_initializerList = 415,          /* initializerList  */
  YYSYMBOL_typeInitializerList = 416,      /* typeInitializerList  */
  YYSYMBOL_typeInitializer = 417,          /* typeInitializer  */
  YYSYMBOL_expressionStmt = 418,           /* expressionStmt  */
  YYSYMBOL_expressionStmtErr = 419,        /* expressionStmtErr  */
  YYSYMBOL_ifPred = 420,                   /* ifPred  */
  YYSYMBOL_selectionStmt = 421,            /* selectionStmt  */
  YYSYMBOL_422_47 = 422,                   /* $@47  */
  YYSYMBOL_423_48 = 423,                   /* $@48  */
  YYSYMBOL_whilePred = 424,                /* whilePred  */
  YYSYMBOL_iterWhilePred = 425,            /* iterWhilePred  */
  YYSYMBOL_iterStmt = 426,                 /* iterStmt  */
  YYSYMBOL_427_49 = 427,                   /* $@49  */
  YYSYMBOL_428_50 = 428,                   /* $@50  */
  YYSYMBOL_iterArgList = 429,              /* iterArgList  */
  YYSYMBOL_430_51 = 430,                   /* $@51  */
  YYSYMBOL_iterArgExpr = 431,              /* iterArgExpr  */
  YYSYMBOL_cconstantExpr = 432,            /* cconstantExpr  */
  YYSYMBOL_primaryIterExpr = 433,          /* primaryIterExpr  */
  YYSYMBOL_postfixIterExpr = 434,          /* postfixIterExpr  */
  YYSYMBOL_unaryIterExpr = 435,            /* unaryIterExpr  */
  YYSYMBOL_castIterExpr = 436,             /* castIterExpr  */
  YYSYMBOL_timesIterExpr = 437,            /* timesIterExpr  */
  YYSYMBOL_plusIterExpr = 438,             /* plusIterExpr  */
  YYSYMBOL_shiftIterExpr = 439,            /* shiftIterExpr  */
  YYSYMBOL_relationalIterExpr = 440,       /* relationalIterExpr  */
  YYSYMBOL_equalityIterExpr = 441,         /* equalityIterExpr  */
  YYSYMBOL_bitandIterExpr = 442,           /* bitandIterExpr  */
  YYSYMBOL_xorIterExpr = 443,              /* xorIterExpr  */
  YYSYMBOL_bitorIterExpr = 444,            /* bitorIterExpr  */
  YYSYMBOL_andIterExpr = 445,              /* andIterExpr  */
  YYSYMBOL_orIterExpr = 446,               /* orIterExpr  */
  YYSYMBOL_conditionalIterExpr = 447,      /* conditionalIterExpr  */
  YYSYMBOL_448_52 = 448,                   /* $@52  */
  YYSYMBOL_449_53 = 449,                   /* $@53  */
  YYSYMBOL_450_54 = 450,                   /* $@54  */
  YYSYMBOL_451_55 = 451,                   /* $@55  */
  YYSYMBOL_assignIterExpr = 452,           /* assignIterExpr  */
  YYSYMBOL_endIter = 453,                  /* endIter  */
  YYSYMBOL_doHeader = 454,                 /* doHeader  */
  YYSYMBOL_iterationStmt = 455,            /* iterationStmt  */
  YYSYMBOL_456_56 = 456,                   /* $@56  */
  YYSYMBOL_iterationStmtErr = 457,         /* iterationStmtErr  */
  YYSYMBOL_458_57 = 458,                   /* $@57  */
  YYSYMBOL_jumpStmt = 459,                 /* jumpStmt  */
  YYSYMBOL_optSemi = 460,                  /* optSemi  */
  YYSYMBOL_optComma = 461,                 /* optComma  */
  YYSYMBOL_id = 462,                       /* id  */
  YYSYMBOL_newId = 463,                    /* newId  */
  YYSYMBOL_typeName = 464                  /* typeName  */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;


/* Second part of user prologue.  */
#line 131 "cgrammar.y"

extern int c_lex (void);
static void c_error (const char *);

#line 1115 "cgrammar.c"


#ifdef short
# undef short
#endif

/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
   <limits.h> and (if available) <stdint.h> are included
   so that the code can choose integer types of a good width.  */

#ifndef __PTRDIFF_MAX__
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
#  define YY_STDINT_H
# endif
#endif

/* Narrow types that promote to a signed type and that can represent a
   signed or unsigned integer of at least N bits.  In tables they can
   save space and decrease cache pressure.  Promoting to a signed type
   helps avoid bugs in integer arithmetic.  */

#ifdef __INT_LEAST8_MAX__
typedef __INT_LEAST8_TYPE__ yytype_int8;
#elif defined YY_STDINT_H
typedef int_least8_t yytype_int8;
#else
typedef signed char yytype_int8;
#endif

#ifdef __INT_LEAST16_MAX__
typedef __INT_LEAST16_TYPE__ yytype_int16;
#elif defined YY_STDINT_H
typedef int_least16_t yytype_int16;
#else
typedef short yytype_int16;
#endif

/* Work around bug in HP-UX 11.23, which defines these macros
   incorrectly for preprocessor constants.  This workaround can likely
   be removed in 2023, as HPE has promised support for HP-UX 11.23
   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
#ifdef __hpux
# undef UINT_LEAST8_MAX
# undef UINT_LEAST16_MAX
# define UINT_LEAST8_MAX 255
# define UINT_LEAST16_MAX 65535
#endif

#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
       && UINT_LEAST8_MAX <= INT_MAX)
typedef uint_least8_t yytype_uint8;
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
typedef unsigned char yytype_uint8;
#else
typedef short yytype_uint8;
#endif

#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
       && UINT_LEAST16_MAX <= INT_MAX)
typedef uint_least16_t yytype_uint16;
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
typedef unsigned short yytype_uint16;
#else
typedef int yytype_uint16;
#endif

#ifndef YYPTRDIFF_T
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
# elif defined PTRDIFF_MAX
#  ifndef ptrdiff_t
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  endif
#  define YYPTRDIFF_T ptrdiff_t
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
# else
#  define YYPTRDIFF_T long
#  define YYPTRDIFF_MAXIMUM LONG_MAX
# endif
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned
# endif
#endif

#define YYSIZE_MAXIMUM                                  \
  YY_CAST (YYPTRDIFF_T,                                 \
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
            ? YYPTRDIFF_MAXIMUM                         \
            : YY_CAST (YYSIZE_T, -1)))

#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))


/* Stored state numbers (used for stacks). */
typedef yytype_int16 yy_state_t;

/* State numbers in computations.  */
typedef int yy_state_fast_t;

#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(Msgid) Msgid
# endif
#endif


#ifndef YY_ATTRIBUTE_PURE
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
# else
#  define YY_ATTRIBUTE_PURE
# endif
#endif

#ifndef YY_ATTRIBUTE_UNUSED
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
# else
#  define YY_ATTRIBUTE_UNUSED
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YY_USE(E) ((void) (E))
#else
# define YY_USE(E) /* empty */
#endif

/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
    _Pragma ("GCC diagnostic push")                                     \
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
# else
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
    _Pragma ("GCC diagnostic push")                                     \
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
    _Pragma ("GCC diagnostic pop")
#else
# define YY_INITIAL_VALUE(Value) Value
#endif
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif

#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
    _Pragma ("GCC diagnostic push")                            \
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
# define YY_IGNORE_USELESS_CAST_END            \
    _Pragma ("GCC diagnostic pop")
#endif
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
# define YY_IGNORE_USELESS_CAST_BEGIN
# define YY_IGNORE_USELESS_CAST_END
#endif


#define YY_ASSERT(E) ((void) (0 && (E)))

#if !defined yyoverflow

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
#     ifndef EXIT_SUCCESS
#      define EXIT_SUCCESS 0
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's 'empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
       && ! ((defined YYMALLOC || defined malloc) \
             && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef EXIT_SUCCESS
#    define EXIT_SUCCESS 0
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* !defined yyoverflow */

#if (! defined yyoverflow \
     && (! defined __cplusplus \
         || (defined C_STYPE_IS_TRIVIAL && C_STYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yy_state_t yyss_alloc;
  YYSTYPE yyvs_alloc;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

# define YYCOPY_NEEDED 1

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    do                                                                  \
      {                                                                 \
        YYPTRDIFF_T yynewbytes;                                         \
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
        Stack = &yyptr->Stack_alloc;                                    \
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
      }                                                                 \
    while (0)

#endif

#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from SRC to DST.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(Dst, Src, Count) \
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
#  else
#   define YYCOPY(Dst, Src, Count)              \
      do                                        \
        {                                       \
          YYPTRDIFF_T yyi;                      \
          for (yyi = 0; yyi < (Count); yyi++)   \
            (Dst)[yyi] = (Src)[yyi];            \
        }                                       \
      while (0)
#  endif
# endif
#endif /* !YYCOPY_NEEDED */

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  261
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   6016

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  192
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  273
/* YYNRULES -- Number of rules.  */
#define YYNRULES  713
/* YYNSTATES -- Number of states.  */
#define YYNSTATES  1244

/* YYMAXUTOK -- Last valid token kind.  */
#define YYMAXUTOK   446


/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
   as returned by yylex, with out-of-bounds checking.  */
#define YYTRANSLATE(YYX)                                \
  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
   : YYSYMBOL_YYUNDEF)

/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
   as returned by yylex.  */
static const yytype_uint8 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191
};

#if C_DEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
static const yytype_int16 yyrline[] =
{
       0,   314,   314,   315,   319,   320,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   336,   338,   343,   343,   352,
     358,   363,   364,   369,   370,   372,   374,   392,   391,   406,
     405,   421,   422,   424,   428,   434,   433,   446,   445,   460,
     461,   459,   468,   469,   470,   471,   475,   480,   480,   485,
     485,   493,   494,   498,   499,   503,   507,   509,   511,   513,
     518,   520,   522,   524,   526,   528,   530,   532,   537,   538,
     542,   543,   547,   548,   549,   553,   554,   562,   563,   572,
     573,   578,   579,   580,   581,   582,   583,   587,   588,   589,
     590,   591,   592,   596,   600,   600,   609,   613,   618,   617,
     632,   634,   639,   643,   644,   648,   652,   658,   663,   664,
     668,   672,   673,   677,   678,   679,   683,   684,   685,   686,
     687,   691,   692,   693,   694,   695,   699,   700,   704,   710,
     717,   719,   719,   721,   721,   726,   726,   735,   744,   745,
     749,   750,   751,   752,   753,   754,   755,   756,   760,   761,
     766,   767,   771,   773,   775,   776,   777,   778,   779,   781,
     786,   787,   791,   793,   798,   799,   800,   801,   802,   803,
     803,   809,   810,   811,   812,   813,   814,   815,   816,   817,
     818,   823,   824,   828,   829,   830,   831,   832,   833,   834,
     835,   836,   837,   838,   842,   843,   845,   849,   855,   855,
     860,   864,   868,   869,   870,   871,   876,   877,   882,   883,
     884,   885,   889,   890,   891,   895,   896,   897,   901,   902,
     903,   904,   905,   909,   910,   911,   915,   916,   920,   921,
     925,   926,   930,   932,   931,   943,   945,   944,   957,   959,
     961,   958,   963,   964,   963,   969,   970,   971,   972,   973,
     974,   975,   976,   977,   978,   979,   980,   984,   985,   989,
     990,   994,   995,   999,  1003,  1008,  1007,  1011,  1010,  1023,
    1024,  1028,  1029,  1033,  1038,  1038,  1043,  1043,  1046,  1047,
    1048,  1052,  1056,  1060,  1064,  1065,  1069,  1073,  1074,  1078,
    1079,  1083,  1084,  1085,  1086,  1094,  1095,  1100,  1101,  1105,
    1106,  1110,  1112,  1122,  1123,  1124,  1125,  1126,  1130,  1135,
    1134,  1150,  1154,  1159,  1158,  1173,  1172,  1201,  1202,  1206,
    1207,  1208,  1209,  1210,  1214,  1215,  1216,  1217,  1221,  1222,
    1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,  1231,  1232,
    1233,  1234,  1235,  1236,  1237,  1241,  1242,  1246,  1247,  1251,
    1252,  1256,  1257,  1258,  1259,  1260,  1264,  1265,  1266,  1267,
    1268,  1269,  1273,  1274,  1275,  1276,  1280,  1281,  1282,  1283,
    1287,  1288,  1289,  1290,  1291,  1292,  1293,  1294,  1295,  1296,
    1297,  1298,  1306,  1307,  1308,  1309,  1310,  1311,  1312,  1313,
    1314,  1315,  1316,  1317,  1318,  1319,  1323,  1328,  1329,  1334,
    1335,  1340,  1341,  1342,  1346,  1347,  1351,  1353,  1351,  1356,
    1358,  1356,  1361,  1363,  1365,  1367,  1365,  1370,  1372,  1370,
    1375,  1377,  1379,  1380,  1384,  1388,  1389,  1390,  1394,  1396,
    1401,  1403,  1408,  1409,  1410,  1415,  1417,  1417,  1419,  1423,
    1425,  1427,  1431,  1436,  1444,  1445,  1446,  1452,  1457,  1458,
    1463,  1464,  1468,  1469,  1470,  1474,  1475,  1479,  1480,  1481,
    1482,  1486,  1487,  1491,  1492,  1493,  1507,  1508,  1509,  1513,
    1514,  1515,  1531,  1536,  1537,  1541,  1542,  1543,  1547,  1548,
    1552,  1554,  1555,  1557,  1558,  1560,  1562,  1564,  1566,  1573,
    1574,  1575,  1576,  1577,  1578,  1579,  1580,  1581,  1582,  1586,
    1590,  1594,  1598,  1599,  1604,  1606,  1608,  1610,  1616,  1616,
    1615,  1624,  1623,  1627,  1631,  1632,  1633,  1634,  1635,  1636,
    1637,  1638,  1639,  1640,  1641,  1642,  1643,  1647,  1647,  1654,
    1658,  1662,  1666,  1667,  1668,  1669,  1670,  1671,  1672,  1673,
    1674,  1675,  1676,  1677,  1681,  1682,  1690,  1691,  1698,  1698,
    1700,  1700,  1705,  1705,  1707,  1707,  1712,  1713,  1718,  1722,
    1726,  1730,  1734,  1738,  1742,  1743,  1744,  1745,  1746,  1747,
    1751,  1753,  1758,  1759,  1760,  1761,  1762,  1763,  1767,  1769,
    1774,  1775,  1779,  1780,  1784,  1785,  1789,  1790,  1794,  1795,
    1796,  1800,  1810,  1815,  1815,  1820,  1820,  1825,  1831,  1835,
    1836,  1835,  1843,  1844,  1844,  1849,  1850,  1851,  1859,  1860,
    1864,  1865,  1869,  1870,  1871,  1872,  1873,  1875,  1876,  1877,
    1878,  1882,  1883,  1884,  1885,  1886,  1887,  1888,  1889,  1890,
    1891,  1895,  1896,  1900,  1901,  1902,  1903,  1907,  1908,  1909,
    1913,  1914,  1915,  1919,  1920,  1921,  1922,  1923,  1927,  1928,
    1929,  1933,  1934,  1938,  1939,  1943,  1944,  1948,  1949,  1953,
    1954,  1958,  1959,  1960,  1959,  1962,  1963,  1962,  1968,  1969,
    1970,  1971,  1972,  1973,  1974,  1975,  1976,  1977,  1978,  1979,
    1983,  1984,  1988,  1992,  1994,  1996,  1996,  2001,  2002,  2004,
    2006,  2006,  2011,  2012,  2013,  2015,  2016,  2017,  2018,  2019,
    2020,  2021,  2025,  2026,  2030,  2031,  2035,  2039,  2040,  2041,
    2042,  2046,  2047,  2048
};
#endif

/** Accessing symbol of state STATE.  */
#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])

#if C_DEBUG || 0
/* The user-facing name of the symbol whose (internal) number is
   YYSYMBOL.  No bounds checking.  */
static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;

/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "\"end of file\"", "error", "\"invalid token\"", "BADTOK", "SKIPTOK",
  "CTOK_ELIPSIS", "CASE", "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE",
  "DO", "CFOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE",
  "TRBRACE", "TCOMMA", "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR",
  "TRSQBR", "TDOT", "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS",
  "TMULT", "TDIV", "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST",
  "CSIZEOF", "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF",
  "INC_OP", "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP",
  "NE_OP", "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",
  "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
  "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG",
  "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT",
  "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS",
  "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QALT", "QUNDEF", "QKILLED",
  "QENDMACRO", "LLMACRO", "LLMACROITER", "LLMACROEND", "TENDMACRO",
  "QDREVEALSTATE", "QSWITCHBREAK", "QLOOPBREAK", "QINNERBREAK",
  "QSAFEBREAK", "QINNERCONTINUE", "QFALLTHROUGH", "QLINTNOTREACHED",
  "QLINTFALLTHROUGH", "QLINTFALLTHRU", "QARGSUSED", "QPRINTFLIKE",
  "QLINTPRINTFLIKE", "QSCANFLIKE", "QMESSAGELIKE", "QNOTREACHED", "QCONST",
  "QRESTRICT", "QVOLATILE", "QINLINE", "QEXTENSION", "QEXTERN", "QSTATIC",
  "QAUTO", "QREGISTER", "QOUT", "QIN", "QYIELD", "QONLY", "QTEMP",
  "QSHARED", "QREF", "QUNIQUE", "QCHECKED", "QUNCHECKED", "QCHECKEDSTRICT",
  "QCHECKMOD", "QKEEP", "QKEPT", "QPARTIAL", "QSPECIAL", "QOWNED",
  "QDEPENDENT", "QRETURNED", "QEXPOSED", "QNULL", "QOBSERVER", "QISNULL",
  "QEXITS", "QMAYEXIT", "QNEVEREXIT", "QTRUEEXIT", "QFALSEEXIT", "QLONG",
  "QSIGNED", "QUNSIGNED", "QSHORT", "QUNUSED", "QSEF", "QNOTNULL",
  "QRELNULL", "QABSTRACT", "QNUMABSTRACT", "QCONCRETE", "QMUTABLE",
  "QIMMUTABLE", "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED",
  "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR", "CBOOL",
  "CINT", "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE", "QINTEGRALTYPE",
  "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE", "QNULLTERMINATED",
  "QMAXSET", "QMAXREAD", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER",
  "CANNOTATION", "CCONSTANT", "ITER_NAME", "ITER_ENDNAME", "TYPE_NAME",
  "METASTATE_NAME", "$accept", "file", "externalDefs", "externalDef",
  "constantDecl", "fcnDecl", "$@1", "plainFcn", "plainNamedDecl",
  "namedDeclBase", "$@2", "$@3", "plainNamedDeclBase", "$@4", "$@5",
  "iterDecl", "$@6", "$@7", "macroDef", "metaStateConstraint",
  "metaStateSpecifier", "$@8", "$@9", "metaStateExpression",
  "BufConstraintList", "BufConstraint", "BufConstraintExpr",
  "BufConstraintSrefExpr", "BufUnaryOp", "BufBinaryOp", "BufRelationalOp",
  "BufConstraintSeparator", "functionClauses", "functionClausesPlain",
  "functionClause", "functionClausePlain", "globalsClause",
  "globalsClausePlain", "$@10", "nomodsClause", "modifiesClause",
  "modifiesClausePlain", "$@11", "flagSpec", "flagId", "optWarnClause",
  "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
  "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
  "fcnHdr", "optInitializerList", "$@12", "$@13", "fcnBody", "$@14",
  "fcnDef", "locModifies", "modListExpr", "mExpr", "modList",
  "specClauseListExpr", "optSpecClauseList", "specClauseList",
  "primaryExpr", "$@15", "postfixExpr", "argumentExprList", "unaryExpr",
  "fieldDesignator", "offsetofExpr", "sizeofExpr", "$@16", "processSizeof",
  "endprocessSizeof", "sizeofExprAux", "castExpr", "timesExpr", "plusExpr",
  "shiftExpr", "relationalExpr", "equalityExpr", "bitandExpr", "xorExpr",
  "bitorExpr", "andExpr", "$@17", "orExpr", "$@18", "conditionalExpr",
  "$@19", "$@20", "$@21", "$@22", "assignExpr", "expr", "optExpr",
  "optInitExpr", "constantExpr", "initializer", "instanceDeclAux", "$@23",
  "$@24", "instanceDecl", "namedInitializerType", "namedInitializer",
  "$@25", "typeDecl", "$@26", "IsType", "PushType", "namedInitializerList",
  "namedInitializerListAux", "namedInitializerTypeList",
  "namedInitializerTypeListAux", "declarators", "init", "designation",
  "designatorList", "designator", "initList", "storageSpecifier",
  "stateClause", "stateClausePlain", "$@27", "conditionClause",
  "startConditionClause", "conditionClausePlain", "$@28", "$@29",
  "functionConstraint", "exitsQualifier", "checkQualifier",
  "stateQualifier", "paramQualifier", "visibilityQualifier",
  "returnQualifier", "typedefQualifier", "refcountQualifier",
  "typeModifier", "definedQualifier", "typeQualifier", "typeSpecifier",
  "completeType", "completeTypeSpecifier", "altType",
  "completeTypeSpecifierAux", "optCompleteType", "suSpc", "$@30", "$@31",
  "$@32", "$@33", "$@34", "$@35", "$@36", "$@37", "NotType",
  "structDeclList", "structDecl", "structNamedDeclList", "structNamedDecl",
  "enumSpc", "$@38", "enumeratorList", "enumerator", "optNamedDecl",
  "namedDecl", "genericParamList", "innerMods", "innerModsList",
  "pointers", "paramIdList", "idList", "paramTypeList", "paramList",
  "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase",
  "abstractDeclBase", "stmt", "debugStmt", "iterBody", "endBody",
  "iterDefStmtList", "iterDefIterationStmt", "forPred", "$@39", "$@40",
  "partialIterStmt", "$@41", "iterDefStmt", "iterSelectionStmt", "$@42",
  "openScope", "closeScope", "macroBody", "stmtErr", "labeledStmt",
  "fallThroughList", "caseStmt", "$@43", "$@44", "defaultStmt", "$@45",
  "$@46", "compoundStmt", "compoundStmtErr", "CreateInnerScope",
  "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope",
  "DeleteInnerScopeSafe", "initStmtList", "compoundStmtAux",
  "initStmtListErr", "compoundStmtAuxErr", "initializerList",
  "typeInitializerList", "typeInitializer", "expressionStmt",
  "expressionStmtErr", "ifPred", "selectionStmt", "$@47", "$@48",
  "whilePred", "iterWhilePred", "iterStmt", "$@49", "$@50", "iterArgList",
  "$@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
  "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
  "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
  "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
  "andIterExpr", "orIterExpr", "conditionalIterExpr", "$@52", "$@53",
  "$@54", "$@55", "assignIterExpr", "endIter", "doHeader", "iterationStmt",
  "$@56", "iterationStmtErr", "$@57", "jumpStmt", "optSemi", "optComma",
  "id", "newId", "typeName", YY_NULLPTR
};

static const char *
yysymbol_name (yysymbol_kind_t yysymbol)
{
  return yytname[yysymbol];
}
#endif

#define YYPACT_NINF (-1032)

#define yypact_value_is_default(Yyn) \
  ((Yyn) == YYPACT_NINF)

#define YYTABLE_NINF (-711)

#define yytable_value_is_error(Yyn) \
  0

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
static const yytype_int16 yypact[] =
{
    2354, -1032, -1032,   347,    51,  5032,  5826, -1032,   718,  2735,
    4068,  4068, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032,    64,  2549, -1032, -1032,
   -1032,   251, -1032, -1032,    35,   108, -1032,    82,   153, -1032,
     168,  5525, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032,  5525,  5525,   179,   124, -1032,   227, -1032, -1032,
     718, -1032, -1032, -1032, -1032, -1032, -1032, -1032,   347, -1032,
    5195, -1032,   151, -1032,   217, -1032, -1032,  5032,   224, -1032,
    5325, -1032,   280,   299,   342, -1032,   718,   409,   427,  1668,
   -1032,  3495,  5325,  5325,  5325,  5325,  5325,  5325, -1032,  5370,
    5370,   426, -1032,   438,   457,   463,   472,   553,   484, -1032,
    4544, -1032,   565, -1032,   573, -1032,   762,  1159, -1032, -1032,
   -1032,   483,   544,   133,   829,   560,   580,   543,   579,   587,
      67, -1032, -1032,   399, -1032, -1032,   179, -1032,   595, -1032,
   -1032,   128, -1032, -1032, -1032,   644,  2925, -1032,  4544, -1032,
    3875, -1032,   511,  3875, -1032,   660, -1032,   682,   693, -1032,
     706,   711, -1032,  3685,   573,   722,   416,   661,  3920, -1032,
    4068, -1032, -1032, -1032,  5525, -1032, -1032, -1032, -1032,   748,
     755, -1032, -1032,  4068,  3875, -1032, -1032,   689, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032,   751,   767, -1032,  5826,   721, -1032, -1032,
   -1032,   785, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,   620,
   -1032, -1032,   718,   718,   376, -1032,   251, -1032, -1032, -1032,
    1886, -1032,   123,  5826,   311,   788, -1032, -1032, -1032, -1032,
   -1032, -1032,   803,   620,   108, -1032,   506,   810, -1032,   718,
   -1032,    95, -1032, -1032, -1032,   818,  5325,  5325,  5325,   824,
   -1032, -1032, -1032,   491,   823,   459,   830,   854, -1032, -1032,
   -1032, -1032, -1032, -1032,   825,  1886, -1032, -1032,  5325,  5325,
     882,   895,   912,   923,   932,  1942, -1032, -1032, -1032, -1032,
   -1032, -1032,   937, -1032, -1032,  4544, -1032,  4544, -1032,   660,
   -1032, -1032,  3975,  5325, -1032, -1032,   196,  5325,  5325,  5325,
    5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325, -1032, -1032,
    5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,
    5325,  5325,  5325,  5325,  5325,  5325, -1032,   956, -1032, -1032,
    5325,   620, -1032,  5325, -1032, -1032,  3115, -1032, -1032, -1032,
   -1032,   950, -1032, -1032,   953,  3875, -1032,  5325,  4631,   465,
     955,   961, -1032, -1032, -1032, -1032, -1032, -1032,  5525, -1032,
   -1032,  4068,  2192,   998, -1032, -1032,  5325,    69, -1032,   937,
    4793, -1032,   620, -1032, -1032,   620, -1032,   535,   926,   972,
    1007,  1013,  1018,  1013,   718,  1031,   336, -1032, -1032,  5221,
    1029,   654, -1032,   683, -1032, -1032,   620, -1032,    -3, -1032,
   -1032,   978,  1048,  1038, -1032,   620,   506, -1032,  5826,   718,
    1069, -1032,  1063, -1032,  1073, -1032,   383,  1079,   436, -1032,
   -1032,   823,  1076, -1032,  2250, -1032, -1032,  1077,  1082,   521,
   -1032, -1032, -1032, -1032, -1032,  1080,  4174, -1032, -1032,  1093,
    4544,  1083, -1032,   542, -1032,   115,   718,   718, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
     680, -1032, -1032, -1032,   483,   483,   544,   544,   133,   133,
     133,   133,   829,   829,   560,   580,   543,  5325,  1084,  5325,
    5325, -1032, -1032, -1032,  1086, -1032,  3305, -1032, -1032,  1090,
   -1032,   650,  1079, -1032,  1099, -1032, -1032, -1032, -1032, -1032,
    1094,  1092, -1032,  1096, -1032, -1032,   620, -1032,  1100, -1032,
   -1032,  1105,  1109, -1032,  1110,  1113, -1032,   744, -1032,  1111,
   -1032, -1032, -1032, -1032,  1112,   798,   683,  5247,  1116, -1032,
   -1032, -1032, -1032,    57, -1032, -1032,    81, -1032, -1032,  5325,
     234,   620, -1032,   737, -1032,  1122, -1032, -1032,   170, -1032,
   -1032,  1119, -1032, -1032,  3963, -1032, -1032,  1126, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032,  4359,  1123, -1032, -1032,  5325,
   -1032, -1032, -1032, -1032,  5396,  5422, -1032,   579, -1032,   779,
     587,  1127, -1032, -1032,  4544,  5325, -1032,  1811,  5448,  5325,
   -1032,  1251, -1032, -1032,  1138, -1032, -1032, -1032, -1032, -1032,
    1131, -1032, -1032,  1132, -1032,   718, -1032,   718, -1032, -1032,
      84,  1139, -1032,  1141,    54, -1032,   988,  1154, -1032,  1097,
   -1032,  1521, -1032, -1032,  1147, -1032,  1151, -1032,   251,  1162,
   -1032,   684, -1032,   683,   198,  1251, -1032, -1032, -1032,  4544,
    3963, -1032,  1168, -1032,  1170,  1158, -1032, -1032, -1032, -1032,
    5325,  5448, -1032, -1032, -1032,  1886, -1032,  1886, -1032,  5325,
   -1032, -1032, -1032,   670,  1172,  1886,  5325,  5325,  5325,  5325,
    5325,  5325,  5370,  5370,  1171,   707,   903,  1205, -1032,  1023,
     844,   995,   857,  1006,  1163,  1157,  1160,  1142,    74,  1174,
   -1032,    40, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,   733,   760,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032,  1251, -1032,  1107, -1032, -1032,  1117, -1032, -1032,
   -1032, -1032,  1118, -1032,  1970,  1120,  1251, -1032, -1032,  1178,
    5662, -1032, -1032,  5662, -1032, -1032, -1032, -1032,  5325,  1052,
    1181, -1032, -1032, -1032,  1186,    -3, -1032,  1025,  1175, -1032,
   -1032,  1521,  5325,   718, -1032, -1032,  1521,   594, -1032,  1207,
    1521,  1144, -1032,  1251, -1032,  1206,   221, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032,  1251, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032,  1168,  2004,  1212,   718, -1032,   795,  1210,  1223,
    1224, -1032,  5325,  1232, -1032,   806,  1227,   827,   833,   840,
     907,   919,   965,   966,   967,  5325,  5273,  5325,   974,   975,
     362,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,
    5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,
    5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  5325,  1231,
    5325, -1032,  1233,  1237,   653,   155, -1032, -1032, -1032, -1032,
   -1032, -1032,   310, -1032, -1032, -1032,  1521, -1032,  1238,  4875,
   -1032,  5662,  4875,  5662, -1032, -1032, -1032, -1032, -1032,   511,
     988, -1032, -1032,  1057,  1230, -1032, -1032, -1032, -1032, -1032,
     108, -1032, -1032, -1032,  1251, -1032,   549,   108, -1032,  1239,
   -1032, -1032,   371, -1032,  1240,   823,  1126,  1126, -1032, -1032,
    5299,   980,  2250,  1241,   982,   987,   295,   718,   718, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
     993,   994,  1000,   936,   948,   922,   942,    72,   261,   591,
     696,   777,   859,   348,   335,   100,   579,  1253,  5325,   587,
    5448, -1032, -1032, -1032, -1032, -1032, -1032,   576, -1032,  5744,
     653,   191,   191, -1032, -1032,   304,   582, -1032, -1032,   344,
   -1032,   420,   528, -1032, -1032, -1032, -1032, -1032,  1250, -1032,
      -6,  1028,   648,  1236,   108, -1032,   344, -1032,  1258,    83,
   -1032, -1032,  4875, -1032,  4875, -1032, -1032, -1032, -1032,  1424,
   -1032,  1187, -1032,   140,  1188, -1032, -1032,  5325,   718, -1032,
    1091, -1032,  1002, -1032,  1003,  1008, -1032, -1032, -1032,  1065,
   -1032,   653, -1032, -1032, -1032, -1032, -1032, -1032,   476,   304,
     672,   718,   718,   191, -1032,   344,   344, -1032,   421,   617,
   -1032,  1259,  1059,   604,   528,   734,    85, -1032, -1032,   420,
   -1032, -1032, -1032,   420,     3,   718,   718,  1260,   528, -1032,
     108,  1263, -1032, -1032,  1265, -1032,  1267,  1270, -1032,  1271,
   -1032, -1032, -1032, -1032, -1032, -1032,   411, -1032, -1032, -1032,
    1268,  1269,  1010,  1019,  5325, -1032, -1032, -1032, -1032,   304,
    1272,   511, -1032, -1032,   304,   793,   421,   702,   718,   718,
     344, -1032,  1104, -1032, -1032,   420, -1032,   604,  1256, -1032,
     734, -1032,   734, -1032, -1032,  1274, -1032, -1032,  1106,   892,
   -1032, -1032,  5325,    83,  1280, -1032, -1032, -1032,  1282, -1032,
    1283, -1032, -1032, -1032,  1022, -1032,  5325, -1032, -1032, -1032,
    1279, -1032, -1032,   421, -1032, -1032,  1284,    85, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032,  5325, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032
};

/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
   Performed when YYTABLE does not specify something else to do.  Zero
   means the default is an error.  */
static const yytype_int16 yydefact[] =
{
       0,    14,    13,   457,     0,   424,   424,    17,     0,     0,
       0,     0,   281,   281,   281,   304,   303,   305,   306,   307,
     366,   367,   330,   332,   331,   335,   336,   324,   326,   327,
     325,   333,   334,   368,   369,   328,   329,   345,   341,   337,
     342,   338,   319,   320,   323,   321,   322,   363,   364,   365,
     362,   347,   346,   340,   339,   351,   352,   353,   354,   355,
     349,   350,   348,   356,   357,   360,   361,   358,   359,   424,
     424,   424,   424,   424,   424,   424,   424,   424,   424,   343,
     706,   707,   344,   708,   709,   711,     0,     0,     4,     7,
       8,   448,     9,    10,   131,   702,    11,   269,     0,    12,
       0,   404,   281,   281,   281,   281,   281,   281,   281,   281,
     424,   281,   404,   404,   424,   397,   424,     0,   424,   128,
     281,   710,    23,   424,   452,   453,   454,   455,   458,   459,
     281,   284,     0,   281,   276,   424,   424,   424,     0,   543,
     200,   552,     0,     0,     0,   682,     0,     0,     0,   200,
     588,     0,   200,   200,   200,   200,   200,   200,   281,   200,
     200,     0,    45,     0,     0,     0,     0,     0,     0,   546,
     200,   168,   165,   608,   599,   171,   183,   206,   193,   281,
     208,   212,   215,   218,   223,   226,   228,   230,   232,   235,
     238,   245,   257,   590,   572,   574,   424,   542,     0,   573,
     532,     0,   533,   534,   535,     0,     0,   536,   200,   537,
       0,   538,   166,     0,   539,     0,   541,   164,     0,   526,
       0,     0,   586,     0,   559,   513,     0,     0,     0,   522,
       0,   523,   502,   521,   518,   519,   514,   515,   516,     0,
       0,   520,   527,     0,     0,   524,   501,     0,   370,   372,
     371,   382,   384,   383,   385,   386,   387,   388,   389,   390,
     391,     1,     5,   281,     0,   135,   424,     0,   703,     6,
     424,   270,   281,   424,   405,   401,   375,   377,   374,   376,
     379,   378,   380,   381,   395,   373,   402,   403,   281,   281,
     281,   393,   281,   281,     0,   394,   449,   392,   456,   460,
     281,   165,     0,   424,   473,     0,   164,   281,   424,   283,
     281,   424,   273,   281,   702,    19,    21,     0,   424,   281,
      31,   281,   206,   263,   548,     0,   200,   200,   200,     0,
     693,   695,   700,     0,   559,     0,     0,     0,   186,   191,
     190,   189,   188,   187,     0,   281,   184,   185,   200,   200,
       0,     0,     0,     0,     0,   281,   545,   498,   489,   490,
     491,   492,     0,   493,   494,   200,   496,   200,   495,     0,
     497,   559,   200,   200,   178,   179,     0,   200,   200,   200,
     200,   200,   200,   200,   200,   200,   200,   200,   201,   198,
     200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
     200,   200,   200,   200,   200,   200,   233,   242,   236,   589,
     200,   281,    42,   200,   554,   547,     0,   560,   575,   576,
     577,   592,   687,   609,     0,     0,   544,   200,   424,     0,
       0,     0,   587,    43,   503,   507,   580,   424,   517,   529,
     530,     0,     0,     0,    44,    25,   200,   281,   137,     0,
     424,   134,   281,   424,   264,   281,   280,   129,     0,   399,
       0,   424,     0,   424,     0,   281,     0,   712,   281,   200,
       0,   475,   474,   476,   713,   279,   281,   278,   281,   274,
     424,     0,   281,     0,   424,   281,    22,   466,   424,     0,
       0,   450,   467,   469,     0,   553,     0,   595,     0,   692,
     701,   559,     0,   167,   200,   540,   281,     0,     0,     0,
     696,   697,   698,   699,   694,     0,   424,   557,   683,     0,
     200,     0,   173,     0,   181,     0,     0,     0,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   192,
       0,   209,   210,   211,   214,   213,   216,   217,   219,   220,
     221,   222,   224,   225,   227,   229,   231,   200,     0,   200,
     200,   258,   424,   550,     0,   578,     0,   558,   593,     0,
     691,     0,   260,   261,     0,   262,   525,   511,   581,   528,
       0,     0,    27,     0,   136,   289,   281,   281,   265,   398,
     281,   414,     0,   422,   417,     0,   423,     0,   439,   442,
     436,   438,   396,   481,     0,   281,   477,   200,     0,   285,
     272,   287,   271,   103,   281,   281,   702,    18,    33,   200,
     281,   281,    20,   478,   451,   461,   463,    39,   281,   549,
     591,     0,   597,   170,   200,   207,   424,     0,   281,   499,
     556,   570,   564,   566,   565,   424,     0,   686,   600,   200,
     174,   172,   281,   281,   200,   200,   199,   234,   240,     0,
     237,     0,   555,   579,   200,   200,   598,   200,   200,   200,
     424,    77,    29,   290,     0,   281,   281,   400,   420,   561,
     406,   421,   561,   409,   281,   441,   281,     0,   482,   485,
     281,     0,   483,     0,   281,   424,     0,     0,   104,     0,
     286,   200,   281,   281,     0,    35,     0,   281,   444,     0,
     281,   478,   445,   479,   281,    79,   468,   470,   471,   200,
     200,   584,   704,   582,     0,     0,   571,   567,   568,   569,
     200,   200,   182,   176,   177,   281,   203,   281,   205,   200,
     243,   551,   594,     0,     0,   281,   200,   200,   200,   200,
     200,   200,   200,   200,     0,   165,   183,   206,   630,   212,
     215,   218,   223,   226,   228,   230,   232,   235,     0,   603,
     602,   166,   612,   621,   631,   633,   637,   640,   643,   648,
     651,   653,   655,   657,   659,   661,   668,   605,   164,     0,
      26,    94,    98,    96,   121,   122,   123,   124,   125,   126,
     127,    28,    77,    81,     0,    83,    82,     0,    86,   424,
     424,    84,     0,    85,   315,     0,    77,    24,   266,     0,
     424,   412,   561,   424,   413,   561,   435,   440,   200,     0,
       0,   486,   484,   487,     0,   281,   102,   107,   100,   281,
     105,   200,   200,     0,   291,   275,   200,     0,   297,     0,
     200,     0,   424,    79,    37,     0,   281,   472,   446,   447,
     462,   465,   464,    40,    79,    87,    89,    88,    92,    90,
      91,   596,   704,   200,     0,     0,   175,     0,   603,     0,
       0,   241,   200,   689,   508,     0,     0,   186,   191,   190,
     189,   188,   187,   184,   185,   200,   200,   200,   178,   179,
       0,   200,   200,   200,   200,   200,   200,   200,   200,   200,
     200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
     200,   200,   200,   200,   200,   200,   200,   200,   200,   665,
     200,   512,     0,   506,   111,   702,    78,    93,    97,   309,
     312,   308,     0,   313,   311,    30,   200,   426,   424,   424,
     425,   424,   424,   424,   424,   281,   480,   488,   288,   106,
       0,   277,   301,     0,     0,   300,   294,   295,   298,   296,
     702,    15,    34,    36,    79,    32,   281,   702,    80,     0,
     583,   180,     0,   196,     0,   559,   202,   204,   244,   688,
     200,   167,   200,     0,   173,     0,     0,     0,     0,   669,
     670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
     209,   210,   211,   214,   213,   216,   217,   219,   220,   221,
     222,   224,   225,   227,   229,   231,   658,     0,   200,   660,
     200,   505,   116,   117,   118,   119,   120,   702,   108,   424,
     111,     0,     0,   141,    99,   150,   702,   139,   140,     0,
      49,     0,     0,    68,    69,    61,    56,   318,     0,   317,
      53,     0,    57,     0,   702,    60,   160,   268,     0,   281,
     427,   415,   424,   418,   424,   443,   437,   101,   292,   200,
     299,     0,    38,   281,     0,   585,   281,   200,     0,   684,
     680,   509,   207,   281,   174,   172,   281,   281,   663,     0,
     604,   111,    95,   114,   110,   115,   113,   112,     0,   144,
       0,     0,     0,     0,   138,     0,     0,   153,   162,   702,
     152,     0,     0,    57,     0,    64,     0,    76,    75,     0,
      73,    72,    74,     0,     0,     0,     0,     0,     0,   281,
     702,   161,   429,   281,   281,   424,   432,     0,   407,     0,
     410,   293,   302,    16,    41,   197,     0,   194,   681,   560,
       0,     0,   176,   177,   200,   666,   109,   145,   142,   148,
       0,   149,   146,   147,   151,     0,   156,     0,     0,     0,
       0,   281,     0,    71,    70,     0,    65,     0,    51,    46,
      47,    54,    57,    55,    62,     0,    66,    67,     0,     0,
     316,   281,   200,   281,     0,   430,   281,   416,     0,   419,
       0,   195,   601,   510,   175,   664,   200,   143,   157,   154,
       0,   158,   159,   163,   310,    50,     0,     0,    63,    48,
      58,   314,   433,   424,   428,   200,   408,   411,   667,   155,
      59,    52,   431,   434
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -1032, -1032, -1032,  1221, -1032, -1032, -1032, -1032,  -412,  -118,
   -1032, -1032,   992, -1032, -1032, -1032, -1032, -1032,    60, -1032,
     370, -1032, -1032,    86,   186, -1032,  -883,  -919, -1032, -1032,
   -1032, -1032,  -720,  -781, -1032, -1032, -1032,  -614, -1032,  -585,
   -1032,  -565, -1032,   356, -1032, -1032,   704,  -673, -1032,   219,
     278, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032,  -880,   144, -1032, -1031, -1032,   256, -1032,
   -1032,  -642,   432,  1423, -1032, -1032,  1150, -1032, -1032, -1032,
   -1032,     2,  -361,  -347,  -330,  -383,  -390,  -369,  -368,  -530,
    -515, -1032,  -630, -1032,  -126, -1032, -1032, -1032, -1032,  1035,
     223,  -663, -1032,  -407,    32, -1032, -1032, -1032,   902,   503,
      20, -1032,     8, -1032,  1051,  -264, -1032, -1032, -1032, -1032,
   -1032,  -770, -1032, -1032,   493, -1032, -1032, -1032,  -528, -1032,
   -1032, -1032,  -511, -1032, -1032, -1032, -1032, -1032,   532, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,    15,
     752, -1032,   986, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032,  1169,  -711,  -646, -1032,   145, -1032, -1032,   662,
     665,   636,     1,  -400,  1225, -1032,    13, -1032, -1032,  -583,
   -1032,  -547,  -127,  1050, -1032,  -459,  -131,   172,  1341, -1032,
    1114, -1032,  -175, -1032, -1032, -1032, -1032,  -177, -1032, -1032,
   -1032, -1032, -1032,  -115,   403, -1032,   429, -1032, -1032,   497,
   -1032, -1032,  -327, -1032,  1156,   197,  -626,  -812, -1032, -1032,
     910,   944, -1032,  1098,   643,   494,    33, -1032,   103,   260,
   -1032, -1032,   317, -1032,   486, -1032, -1032,   637, -1032,   341,
    -639, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032, -1032,
   -1032, -1032,   569, -1032, -1032, -1032, -1032,   655,  -280,   501,
       0,    58, -1032
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
       0,    86,    87,    88,    89,    90,   137,   314,   315,    91,
     671,   816,   316,   853,   974,    92,   715,   977,   947,  1057,
    1188,  1137,  1121,  1189,  1059,  1060,  1061,  1192,  1063,  1185,
    1133,  1129,   801,   863,   802,   864,   803,   865,   934,   866,
     806,   867,   935,   837,   838,   697,   808,   699,  1037,  1038,
    1039,  1104,  1040,   809,   810,    94,   265,   266,   267,   448,
     449,    95,  1044,  1169,  1170,  1046,  1118,  1140,  1119,   175,
     334,   176,   523,   177,   982,   178,   758,   540,   179,   539,
     656,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   557,   190,   560,   191,   558,   739,   559,   882,   192,
     226,   573,   574,   324,    96,    97,   675,   676,    98,   611,
     612,   615,    99,   311,   100,   264,   132,   133,   613,   614,
     271,   845,   846,   847,   848,   963,   101,   811,   869,  1049,
     813,   814,   870,  1066,   942,  1064,   102,   103,   104,   105,
     106,   107,   108,   109,   110,   111,   112,   113,   304,   948,
     458,   115,   275,   116,   822,  1208,   825,  1210,   679,  1147,
     682,  1149,   117,   949,   950,  1144,  1145,   118,   687,   597,
     598,   710,   135,   490,   127,   128,   120,   624,   625,   491,
     492,   493,   336,   830,   712,   473,   356,   197,   227,   247,
     228,   229,   230,   990,  1160,   231,   668,   232,   233,   441,
     234,   235,   198,   199,   200,   201,   202,   494,   661,   203,
     325,   564,   361,   204,   362,   567,   820,  1071,   240,   645,
     517,   206,   417,   438,   722,   723,   363,   207,   208,   209,
     664,   631,   210,   243,   211,   371,   731,   769,   932,   770,
     212,   772,   773,   774,   775,   776,   777,   778,   779,   780,
     781,   782,   783,   784,   785,   786,  1027,  1164,  1028,  1216,
     787,  1159,   213,   368,   369,   214,   215,   216,   269,   874,
     306,   218,   123
};

/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule whose
   number is the opposite.  If YYTABLE_NINF, syntax error.  */
static const yytype_int16 yytable[] =
{
     121,   119,   296,   305,   744,   121,   563,   502,   121,   217,
     217,   217,   606,   554,   323,   114,   129,   195,   552,   553,
     134,   136,   691,  1062,   196,   131,   756,   657,   515,   771,
    1194,     3,   544,   545,   481,   555,   337,   556,   768,   581,
     425,   194,   868,   241,   241,   660,   430,   583,   546,   547,
    1127,   434,   483,   435,  -130,  1045,   823,   804,   122,   487,
      93,  -610,   604,   122,   261,  -610,   138,   548,   549,   550,
     551,   962,   973,   622,   487,   130,   966,   421,   695,   833,
     970,   717,   936,   978,  1175,  1176,   805,   121,   119,   756,
    1050,   420,   771,  -644,   582,   422,   945,  -644,   424,   268,
     487,   768,   114,   270,   702,  1143,   807,  -133,   407,  1124,
     469,   834,   952,   242,   242,   929,   274,     3,     3,  1052,
     121,  -656,   395,   396,   408,  -656,   268,   274,   274,   443,
     696,   930,  1123,  1125,   413,   414,   410,   121,   766,   404,
    1073,   299,   651,   812,   410,   122,   121,    93,   467,  1223,
     319,   217,   318,   767,   338,   339,   340,   341,   342,   343,
     815,  1108,  1109,   459,   713,  -475,   469,   861,  1122,   307,
     217,   272,   308,   268,   515,   716,  1067,  1128,   122,  1041,
     868,    80,    81,   395,   396,    83,    84,   610,   804,  1042,
    1195,   868,   273,  1082,   520,   320,   951,   288,   959,   953,
     693,   766,   804,   860,   329,  1187,   217,  1190,   217,   707,
     217,   290,   704,   217,   419,  1041,   767,   805,   507,  1199,
     706,   196,   483,   217,   526,  1042,   487,   423,   217,   415,
     217,   805,   193,  1174,   518,   310,   519,   807,   418,   487,
    1072,   527,  1074,   217,   217,  -424,   689,  -424,   321,   437,
    1193,   807,   713,  -424,  -424,  -424,   241,  -424,  -424,   705,
    1148,   241,  1150,   241,   579,   434,   436,    80,    81,    80,
    1055,    83,    84,   691,   812,  -282,   241,   263,   763,  -424,
    -424,   437,  -645,  -424,  -424,   762,  -645,   323,   812,   121,
     457,   815,   121,   121,   121,   292,   293,   294,   436,   764,
     765,   868,  1226,  1070,   326,   815,  1070,   759,  1190,  1152,
     570,   395,   396,   121,   480,  1050,   410,   471,   468,   121,
     323,   760,  1095,   327,    80,    81,   242,  1091,    83,    84,
    1110,   242,  1111,   242,  1051,  -281,   703,   469,   761,    80,
    1043,   763,   357,   323,  1052,     3,   242,   122,   762,  1112,
     461,   463,   465,   302,    80,    81,  -654,   410,    83,    84,
    -654,   503,   764,   765,   403,   217,   328,   217,  1115,  -652,
     759,   122,   333,  -652,   335,    80,  1043,   320,  1116,   636,
     357,     3,    80,    81,   760,   644,    83,    84,   756,   647,
     997,   771,   541,   542,   543,   464,  1086,  1087,  1026,  1088,
     768,   761,   401,   402,   410,  -424,  -424,   998,   630,  -424,
    -424,   121,   562,   236,   236,  1029,   217,   409,  -424,  -424,
     410,   954,  -424,  -424,   195,   217,  1070,   330,  1070,   193,
     364,   196,   410,   193,   432,   964,   193,   410,  1211,   237,
     237,   217,   217,   437,  1051,   331,   429,  1177,   194,  1178,
     348,   420,   121,   437,  1052,   121,   587,   410,   124,   125,
     126,   632,   349,   459,   121,   437,  1179,   193,   364,   122,
     578,  1171,   585,   350,   241,   241,   121,   409,   121,   351,
     410,   323,   578,   432,   503,   121,   410,   365,   352,   121,
     503,  1053,  1054,   323,    80,  1055,   609,  1056,   319,   354,
     766,  1167,  1110,   623,  1111,   708,   635,   238,   238,   500,
     122,   725,   410,   122,   729,   767,   217,   390,   391,   392,
     217,  1112,   599,   466,   643,   365,   121,   121,    80,  1117,
    -282,   196,   482,   742,   122,  1023,   122,   357,  1171,   357,
    1021,  1022,   410,   320,   242,   242,   639,   626,   642,   496,
     497,   498,  1124,  -424,  1013,  1014,  -424,  1024,  -424,  1025,
      80,    81,  1052,   649,    83,    84,   217,   650,   466,   353,
    1015,  1016,   509,   358,   419,   469,   393,   394,   466,   244,
     244,   196,   404,     3,   652,   653,   121,  -707,   871,  1017,
    1018,  1019,  1020,   708,   268,  -708,   525,  1101,   418,   359,
     268,  1053,  1054,  1113,    80,  1055,   673,  1056,   879,   403,
     880,   358,  -646,   881,   401,   402,  -646,   967,   886,   405,
     842,   121,   843,   121,   606,   364,   236,   364,   121,  1186,
    1134,   236,  1135,   236,   319,   268,   711,   359,  1180,   193,
     763,   395,   396,   406,   122,   217,   236,   762,   193,  1136,
     571,   572,   237,   728,     3,  1047,   366,   237,  1090,   237,
     196,   764,   765,   416,   217,   245,   245,   360,   788,   759,
     -47,   410,   237,   221,  1134,   666,  1135,   727,  -281,   320,
     469,   122,   365,   760,   365,   121,   718,   121,   357,   412,
    1081,   410,   357,  1136,   366,   883,  1041,  1084,   423,  1168,
     761,   217,   323,   471,  -710,   360,  1042,  -281,  -281,   607,
     469,   121,    80,  1055,   121,   426,   323,  -647,     3,   217,
     238,  -647,   654,   655,   711,   238,  1041,   238,  -607,  1219,
     427,   788,  -607,    80,    81,   428,  1042,    83,    84,   367,
     238,  1032,  1033,   599,  -709,   599,   395,   396,   887,   888,
     889,   890,   891,   892,  -606,   433,   988,  1102,  -606,   849,
    1134,  -281,  1135,   469,   684,   685,  1114,   439,   358,   122,
     358,     3,   862,  1034,  1035,   440,   364,   367,   445,  1136,
     364,   410,   659,   444,  1139,   933,   372,  1036,   373,   193,
    -424,   447,   244,   451,   359,  1232,   359,   244,  -649,   244,
     410,   740,  -649,   487,    80,    81,   453,  -424,    83,    84,
     374,   375,   244,   474,   397,   398,   410,   357,  1218,  1177,
     984,  1178,  -424,   689,  -424,   370,   479,   410,  1243,   399,
     400,   991,  -424,   365,   484,   121,   357,   365,  1179,  1181,
     495,   217,   499,   121,   236,   236,   217,   501,  -624,   506,
     217,   366,  -624,   366,  -629,   504,    80,  1043,  -629,   173,
    1201,  -628,   360,   370,   360,  -628,   397,   398,    80,    81,
     237,   237,    83,    84,   858,   121,   915,   916,   245,   505,
    -650,   399,   400,   245,  -650,   245,    80,  1043,   743,   173,
     572,   357,   789,   122,   919,   920,   397,   398,   245,   849,
     510,   965,    80,    81,   849,   364,    83,    84,   849,   921,
     922,   399,   400,   511,  1010,  1011,  1012,  1230,  1134,   358,
    1135,    80,    81,   358,   364,    83,    84,   896,  -627,   897,
     512,  -424,  -627,   983,   367,  1048,   367,  1136,   238,   238,
    -626,   513,  1065,  -641,  -626,   359,   217,  -641,  -424,   359,
     514,   898,   899,   877,   393,   394,   516,  -639,   466,   568,
     466,  -639,   365,  -642,   569,   296,  1161,  -642,   885,  -638,
     390,   391,   392,  -638,   393,   394,   121,   587,  -239,   364,
     576,   365,   390,   391,   392,   577,  -625,  -622,  -623,  1083,
    -625,  -622,  -623,   590,  1092,  -619,  -620,   121,   121,  -619,
    -620,  -611,   366,  -614,   849,  -611,   366,  -614,   649,   580,
     244,   244,  1094,   360,  -634,  -635,   589,   360,  -634,  -635,
     370,  -636,   370,  -632,  -615,  -636,   591,  -632,  -615,  -613,
     788,  -617,  -281,  -613,   122,  -617,   365,   594,  1215,  1106,
    -618,  1048,  1048,  -616,  -618,   917,   918,  -616,   358,  1120,
     600,  1065,  1065,   605,   437,  1096,  1097,   912,   913,   914,
     923,   924,   620,   248,   249,   250,  1120,   358,   617,   121,
    1146,  1105,   955,   685,   359,   618,   323,  1078,  1079,   217,
    1130,  1131,  1132,   121,   628,   367,   410,  1165,   121,   367,
    1238,  1183,  1184,   359,   627,   629,   245,   245,   286,   287,
     410,   633,   637,   638,   646,   640,   658,   648,   662,   323,
    1048,   121,   121,  1048,   665,  1120,  1120,   667,   669,   670,
     996,   672,   358,  -267,  1065,   678,  1065,   122,   680,  1065,
     681,   366,   683,  1065,   686,   121,   121,   849,  1065,   688,
     694,   122,   360,   714,   719,   634,  1157,   730,   359,   741,
     366,   821,   824,   276,   277,   278,   279,   280,   281,   282,
     283,   360,   285,   817,   831,   205,   239,   239,   832,  1172,
    1173,   370,   839,   836,   852,   370,   854,  1048,   121,   121,
    1120,   303,   377,   876,   309,  1065,   856,   840,   317,   873,
     884,   875,   925,  1196,  1197,   895,   926,   937,   928,   931,
     927,   946,   303,   121,  1146,   366,   956,   938,   941,   344,
     944,   957,   173,   572,   367,   960,   360,   378,   379,   380,
     381,   382,   383,   384,   385,   386,   387,  1065,   901,   969,
     389,   975,   981,   367,   971,   985,  1221,  1222,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   986,   987,
     989,  1099,   992,  -662,  1030,  1031,  -281,  1080,  1089,  1085,
    1138,   122,  1093,   902,   903,   904,   905,   906,   907,   908,
     909,   910,   911,  1126,   303,  1098,  1142,  1153,  1154,   284,
    1158,  1182,  1198,   289,  1180,   291,  1203,   295,   367,  1206,
    1207,  1209,   297,  1213,  1214,  1225,  1227,  1229,  1234,  1217,
     370,  1228,  1236,  1237,   312,   313,  1239,   205,   262,  1240,
    1156,   486,  1058,  1241,   446,  1191,  1077,   698,  1107,   370,
    1166,  1220,  1141,   454,   696,   791,   792,   793,   995,   388,
     575,   794,   795,   796,   797,   798,   799,   800,   958,   456,
     968,   303,   677,   460,   462,   376,   943,   859,  1233,   829,
     827,   303,   246,   298,   472,   470,  1212,   442,   475,   584,
     566,   477,   205,   872,   450,   411,   205,   980,   878,   205,
     317,  1100,   488,   979,   370,     0,     0,     0,     0,   239,
     431,     0,     0,   508,   239,     0,   239,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   303,     0,     0,   239,
     205,     0,     0,     0,     0,     0,   303,   524,     0,     0,
       0,     0,   528,   529,   530,   531,   532,   533,   534,   535,
     536,   537,   538,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   452,
       0,     0,   455,   841,  1151,   561,     0,     0,   300,     0,
     842,     0,   843,   152,   153,   154,   155,   156,   157,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   158,   159,   160,     0,     0,     0,   476,     0,     0,
     478,     0,     0,     0,     0,     0,     0,   485,     0,     0,
     489,     0,     0,     0,     0,   161,     0,     0,   488,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   592,     0,   595,     0,   601,     0,     0,   602,
       0,     0,   470,     0,   608,     0,     0,   521,     0,     0,
       0,     0,     0,   619,     0,     0,   317,     0,     0,   171,
     841,     0,     0,     0,     0,   300,     0,   842,     0,   843,
     152,   153,   154,   155,   156,   157,     0,   303,     0,     0,
       0,     0,     0,   322,     0,     0,     0,     0,   158,   159,
     160,     0,   205,     0,     0,   322,   322,   322,   322,   322,
     322,   205,   346,   347,     0,     0,     0,     0,     0,     0,
       0,     0,   161,     0,     0,     0,     0,   239,   239,     0,
       0,     0,     0,     0,     0,     0,   411,     0,    80,   172,
       0,   173,    83,    84,     0,     0,   489,     0,     0,     0,
       0,     0,   586,     0,     0,     0,   588,     0,     0,     0,
     593,     0,   596,     0,     0,     0,   171,     0,   674,     0,
       0,   303,     0,     0,     0,     0,     0,     0,     0,   616,
       0,     0,     0,   621,     0,     0,   488,   608,     0,     0,
       0,     0,     0,     0,     0,   700,   701,     0,     0,   721,
       0,   488,   317,     0,   709,     0,     0,     0,     0,   488,
       0,     0,     0,     0,   732,     0,   332,     0,     0,   303,
       0,     0,   300,     0,     0,     0,     0,   152,   153,   154,
     155,   156,   157,   733,   734,    80,   172,     0,   173,    83,
      84,     0,     0,     0,     0,   158,   159,   160,     0,   389,
       0,     0,   205,     0,     0,     0,   818,   819,     0,     0,
       0,   588,     0,     0,     0,   826,   844,   828,     0,   161,
       0,   470,     0,     0,     0,   488,     0,     0,     0,     0,
       0,     0,     0,   850,   851,   721,     0,     0,   855,     0,
       0,   857,   709,     0,   608,   488,     0,     0,     0,     0,
       0,     0,     0,     0,   690,     0,     0,     0,     0,     0,
       0,     0,   389,   171,     0,     0,   303,     0,   303,   489,
       0,     0,     0,     0,     0,     0,   303,     0,     0,     0,
       0,     0,     0,     0,     0,   724,     0,     0,     0,     0,
       0,     0,     0,   322,   322,   322,   322,   322,   322,   322,
     322,   322,   322,   322,   322,   322,   322,   322,   322,  -259,
       0,     0,     0,     0,     0,   300,   322,     0,     0,   790,
     152,   153,   154,   155,   156,   157,     0,     0,     0,     0,
       0,     0,    80,   301,     0,   173,     0,     0,   158,   159,
     160,     0,     0,     0,   835,     0,     0,     0,     0,   322,
       0,     0,     0,     0,     0,     0,   844,     0,     0,     0,
       0,   844,   161,     0,     0,   844,     0,     0,     0,     0,
     961,     0,   322,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  -169,     0,   488,   721,     0,
     300,     0,     0,     0,     0,   152,   153,   154,   155,   156,
     157,     0,     0,     0,     0,   900,   171,   322,  -200,  -200,
     993,   524,     0,   158,   159,   160,   999,  1000,  1001,  1002,
    1003,  1004,  1005,  1006,  1007,  1008,  1009,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   161,     0,     0,
       0,  -169,     0,     0,     0,     0,   355,     0,     0,     0,
       0,   152,   153,   154,   155,   156,   157,     0,   939,   940,
     322,   844,     0,   322,  -200,  -200,     0,     0,     0,   158,
     159,   160,     0,     0,     0,    80,   301,     0,   173,  1068,
       0,   171,     0,     0,     0,     0,  1076,     0,     0,     0,
       0,     0,     0,   161,     0,     0,     0,     0,     0,     0,
       0,   972,     0,   720,  -705,   976,     0,   709,   300,     0,
     322,     0,     0,   152,   153,   154,   155,   156,   157,     0,
       0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
       0,   158,   159,   160,     0,     0,     0,   171,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      80,   301,     0,   173,     0,   161,     0,   736,   738,     0,
       0,   389,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   757,    22,    23,    24,    25,     0,    26,     0,     0,
       0,     0,    31,    32,     0,     0,    35,    36,     0,    38,
      39,    40,    41,     0,   844,     0,     0,  1069,     0,   171,
       0,     0,     0,  1075,    53,    54,    80,   301,     0,   173,
       0,     0,     0,     0,   709,     0,     0,  1155,     0,     0,
       0,     0,     0,     0,   303,     0,     0,  1162,  1163,     0,
      79,     0,     0,     0,   757,     0,    82,     0,     0,     0,
       0,     0,   322,     0,     0,     0,     0,     0,     0,   322,
     322,   322,   322,   322,   322,   893,   894,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    80,   301,
    1200,   173,     0,   219,  1202,  1204,     0,     0,   140,   141,
     142,     0,     0,   220,   145,   221,   146,   147,   148,   149,
     222,  -504,  -504,     0,     0,     0,   223,  -504,     0,     0,
       0,   152,   153,   154,   155,   156,   157,     0,     0,     0,
       0,     0,  1224,     0,  -200,  -200,     0,     0,     0,   158,
     159,   160,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   322,  1231,     0,     0,     0,     0,  1235,     0,     0,
       0,     0,     0,   161,     0,   322,     0,     0,     0,   634,
       0,     0,     0,     0,   300,     0,     0,     0,     0,   152,
     153,   154,   155,   156,   157,     0,  -504,     0,   164,   165,
     166,   167,   168,   169,     0,     0,     0,   158,   159,   160,
       0,     0,   170,     0,     0,   322,     0,   171,     0,     0,
       0,     0,     0,     0,  1205,     0,     0,     0,     0,     0,
       0,   161,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   322,   322,   322,   322,   322,
     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
     322,   322,     0,   322,    -2,     1,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
       0,     0,     2,     0,     0,     0,    80,   172,  -281,   173,
     224,   225,     0,     0,     0,     0,     0,     0,     3,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     4,     0,
       5,     0,  1242,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   322,     0,     0,     0,     0,
       0,     0,  -424,  -424,  -424,     0,     0,     0,     0,     0,
       0,     6,     7,     8,    80,   301,     0,   173,     0,     0,
       0,     0,     0,     0,     0,     9,    10,    11,     0,     0,
       0,     0,     0,   757,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    12,    13,    14,    15,     0,
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       0,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,     0,     0,     0,    80,    81,
      82,     0,    83,    84,    85,     0,     0,     0,     0,    -3,
       1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
       0,     0,     0,  -281,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     3,     0,     0,     0,   322,     0,     0,
       0,     0,     0,     4,     0,     5,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  -424,  -424,  -424,
       0,     0,     0,     0,     0,   322,     6,     7,     8,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   322,
       9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   322,     0,
      12,    13,    14,    15,     0,    16,    17,    18,    19,    20,
      21,    22,    23,    24,    25,     0,    26,    27,    28,    29,
      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
       0,     0,     0,    80,    81,    82,   139,    83,    84,    85,
       0,   140,   141,   142,     0,   143,   144,   145,  -690,   146,
     147,   148,   149,   150,  -559,     0,     0,     0,     0,   151,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,     4,
       0,     5,   158,   159,   160,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -424,  -424,  -424,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
     163,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,     0,     0,     0,   170,    12,    13,    14,    15,
     171,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,     0,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,     0,     0,     0,    80,
     172,    82,   173,   174,    84,    85,   139,     0,     0,     0,
       0,   140,   141,   142,     0,   143,   144,   145,  -690,   146,
     147,   148,   149,   150,  -559,     0,     0,     0,     0,   151,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,     4,
       0,     5,   158,   159,   160,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -424,  -424,  -424,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  -531,
     163,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,     0,     0,     0,   170,    12,    13,    14,    15,
     171,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,     0,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,     0,     0,     0,    80,
     172,    82,   173,   174,    84,    85,   139,     0,     0,     0,
       0,   140,   141,   142,     0,   143,   144,   145,  -690,   146,
     147,   148,   149,   150,  -559,   565,     0,     0,     0,   151,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,     4,
       0,     5,   158,   159,   160,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -424,  -424,  -424,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     163,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,     0,     0,     0,   170,    12,    13,    14,    15,
     171,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,     0,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,     0,     0,     0,    80,
     172,    82,   173,   174,    84,    85,   139,     0,     0,     0,
       0,   140,   141,   142,     0,   143,   144,   145,  -690,   146,
     147,   148,   149,   150,  -559,   663,     0,     0,     0,   151,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,     4,
       0,     5,   158,   159,   160,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -424,  -424,  -424,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     163,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,     0,     0,     0,   170,    12,    13,    14,    15,
     171,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,     0,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,     0,     0,     0,    80,
     172,    82,   173,   174,    84,    85,   139,     0,     0,     0,
       0,   140,   141,   142,     0,   143,   144,   145,  -690,   146,
     147,   148,   149,   150,  -169,     0,     0,     0,     0,   151,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,  -281,
       0,     0,   158,   159,   160,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -281,  -281,  -281,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     163,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,     0,     0,     0,   170,  -281,  -281,  -281,  -281,
     171,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,     0,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,     0,     0,     0,    80,
     172,  -281,   173,   174,    84,  -281,   219,     0,     0,     0,
       0,   140,   141,   142,     0,     0,   220,   145,   221,   146,
     147,   148,   149,   222,  -169,  -563,     0,     0,     0,   223,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,  -281,
       0,     0,   158,   159,   160,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -281,  -281,  -281,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,     0,     0,     0,   170,  -281,  -281,  -281,  -281,
     171,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,     0,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,
    -281,  -281,  -281,  -281,  -281,  -281,     0,     0,     0,    80,
     172,  -281,   173,   224,   225,  -281,   139,     0,     0,     0,
       0,   140,   141,   142,     0,   143,   144,   145,  -690,   146,
     147,   148,   149,   150,  -559,     0,     0,     0,     0,   151,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,     0,
       0,   219,   158,   159,   160,     0,   140,   141,   142,     0,
       0,   220,   145,   221,   146,   147,   148,   149,   222,  -559,
    -563,     0,     0,     0,   223,     0,   161,     0,     0,   152,
     153,   154,   155,   156,   157,     0,     0,     0,     0,     0,
       0,     0,  -200,  -200,     0,     0,     0,   158,   159,   160,
     163,   164,   165,   166,   167,   168,   169,     0,     0,     0,
       0,     0,   720,     0,     0,   170,     0,   300,     0,     0,
     171,   161,   152,   153,   154,   155,   156,   157,     0,   300,
     522,     0,     0,     0,   152,   153,   154,   155,   156,   157,
     158,   159,   160,     0,  -500,     0,   164,   165,   166,   167,
     168,   169,   158,   159,   160,     0,     0,     0,     0,     0,
     170,     0,     0,     0,   161,   171,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   161,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
     172,     0,   173,   174,    84,     0,     0,     0,     0,   219,
       0,     0,     0,     0,   140,   141,   142,     0,   171,   220,
     145,   221,   146,   147,   148,   149,   222,  -559,  -563,     0,
     171,     0,   223,     0,     0,     0,     0,   152,   153,   154,
     155,   156,   157,     0,    80,   172,     0,   173,   224,   225,
    -200,  -200,     0,     0,     0,   158,   159,   160,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   161,
       0,     0,     0,     0,     0,     0,     0,    80,   301,     0,
     173,     0,     0,     0,     0,     0,     0,     0,     0,    80,
     301,     0,   173,     0,   164,   165,   166,   167,   168,   169,
       0,     0,     0,     0,     0,     0,     0,     0,   170,     0,
     140,   141,   142,   171,   143,   144,   145,  -685,   146,   147,
     148,   149,   222,  -559,   641,     0,     0,     0,   355,     0,
       0,     0,     0,   152,   153,   154,   155,   156,   157,     0,
       0,     0,     0,     0,     0,     0,  -200,  -200,     4,     0,
       5,   158,   159,   160,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   161,     0,     0,     0,     0,
       0,     0,    80,   172,     0,   173,   224,   225,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   163,
     164,   165,   166,   167,   168,   169,     0,     0,     0,     0,
       0,     0,     0,     0,   170,    12,    13,    14,    15,   171,
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       0,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,     0,     0,     0,    80,   172,
      82,   173,   174,    84,    85,   140,   141,   142,     0,   143,
     144,   145,  -685,   146,   147,   148,   149,   222,  -559,   726,
       0,     0,     0,   355,     0,     0,     0,     0,   152,   153,
     154,   155,   156,   157,     0,     0,     0,     0,     0,     0,
       0,  -200,  -200,     4,     0,     5,   158,   159,   160,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     161,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   163,   164,   165,   166,   167,   168,
     169,     0,     0,     0,     0,     0,     0,     0,     0,   170,
      12,    13,    14,    15,   171,    16,    17,    18,    19,    20,
      21,    22,    23,    24,    25,     0,    26,    27,    28,    29,
      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
       0,     0,     0,    80,   172,    82,   173,   174,    84,    85,
     140,   141,   142,     0,   143,   144,   145,  -685,   146,   147,
     148,   149,   222,  -559,     0,     0,     0,     0,   355,     0,
       0,     0,     0,   152,   153,   154,   155,   156,   157,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   158,   159,   160,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   161,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   163,
     164,   165,   166,   167,   168,   169,     0,     0,     0,  -259,
       0,     0,     0,     0,   170,   300,     0,     0,     0,   171,
     152,   153,   154,   155,   156,   157,     0,     0,     0,     0,
       0,     0,     0,  -200,  -200,     4,     0,     0,   158,   159,
     160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   161,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    80,   172,
       0,   173,   174,    84,     0,     0,     0,     0,     0,     0,
       0,     0,    12,    13,    14,    15,   171,    16,    17,    18,
      19,    20,    21,    22,    23,    24,    25,     0,    26,    27,
      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,  -132,     0,     0,    80,   301,    82,   173,     0,
       0,    85,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     4,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  -562,     0,     0,     0,     0,
       0,     0,     0,     0,    12,    13,    14,    15,     0,    16,
      17,    18,    19,    20,    21,    22,    23,    24,    25,     4,
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
      76,    77,    78,    79,     0,     0,     0,     0,     0,    82,
       0,     0,     0,    85,     0,     0,    12,    13,    14,    15,
       0,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,     0,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,  -281,     0,     0,     0,
       0,    82,     0,     0,     0,    85,     3,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     4,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    12,    13,    14,    15,     0,    16,    17,
      18,    19,    20,    21,    22,    23,    24,    25,     0,    26,
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
      77,    78,    79,     0,     0,     0,    80,    81,    82,   300,
      83,    84,    85,     0,   152,   153,   154,   155,   156,   157,
       0,     0,     0,     0,     0,     0,     0,  -200,  -200,     0,
       0,     0,   158,   159,   160,   300,     0,     0,   603,     0,
     152,   153,   154,   155,   156,   157,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   161,     0,   158,   159,
     160,   300,     0,     0,   692,     0,   152,   153,   154,   155,
     156,   157,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   161,     0,   158,   159,   160,   300,   994,     0,
       0,     0,   152,   153,   154,   155,   156,   157,     0,     0,
     171,     0,     0,     0,     0,     0,     0,     0,   161,     0,
     158,   159,   160,   300,  -259,     0,     0,     0,   152,   153,
     154,   155,   156,   157,     0,     0,   171,     0,     0,     0,
       0,     0,     0,     0,   161,     0,   158,   159,   160,   300,
       0,     0,     0,     0,   152,   153,   154,   155,   156,   157,
       0,     0,   171,     0,     0,     0,     0,     0,     0,     0,
     161,     0,   158,   159,   160,     0,     0,     0,     0,    80,
     301,     0,   173,     0,     0,     0,     0,     0,   171,     0,
       0,     0,     0,     0,   345,     0,   161,     0,     0,   152,
     153,   154,   155,   156,   157,    80,   301,     0,   173,     0,
       0,     0,     0,     0,   171,     0,     0,   158,   159,   160,
     735,     0,     0,     0,     0,   152,   153,   154,   155,   156,
     157,    80,   301,     0,   173,     0,     0,     0,     0,     0,
     171,   161,     0,   158,   159,   160,   737,     0,     0,     0,
       0,   152,   153,   154,   155,   156,   157,    80,   301,     0,
     173,     0,     0,     0,     0,     0,     0,   161,     0,   158,
     159,   160,   745,     0,     0,     0,     0,   746,   747,   748,
     749,   750,   751,    80,   301,   171,   173,     0,     0,     0,
       0,     0,     0,   161,     0,   158,   752,   753,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
     301,   171,   173,     0,     0,     0,     0,     0,     0,   754,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   171,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    80,   301,     0,   173,     0,     0,
       0,     0,     0,   171,     0,     0,     0,     0,     0,     4,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      80,   301,     0,   173,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -424,  -424,  -424,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    80,   301,     0,   173,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    80,   755,     0,   173,    12,    13,    14,    15,
       0,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,     0,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,     4,     0,     0,     0,
       0,    82,     0,     0,     0,    85,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     9,    10,    11,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    12,    13,    14,    15,     0,    16,    17,
      18,    19,    20,    21,    22,    23,    24,    25,     4,    26,
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
      77,    78,    79,     0,     0,     0,     0,     0,    82,     0,
       0,     0,    85,     0,     0,    12,    13,    14,    15,     0,
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       4,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,     0,     0,     0,    80,  1103,
      82,     0,     0,     0,    85,     0,     0,    12,    13,    14,
      15,     0,    16,    17,    18,    19,    20,    21,    22,    23,
      24,    25,     0,    26,    27,    28,    29,    30,    31,    32,
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,     0,     0,     0,
       0,     0,    82,     0,     0,     0,    85
};

static const yytype_int16 yycheck[] =
{
       0,     0,   120,   130,   667,     5,   413,   334,     8,     9,
      10,    11,   471,   403,   140,     0,     3,     9,   401,   402,
       5,     6,   605,   942,     9,     5,   668,   557,   355,   668,
      27,    34,   393,   394,   314,   404,   151,   405,   668,   446,
     215,     9,   715,    10,    11,   560,   223,   447,   395,   396,
      56,   228,   316,   230,    19,   935,   682,   671,     0,     5,
       0,    21,   469,     5,     0,    25,     8,   397,   398,   399,
     400,   841,   853,   485,     5,    24,   846,   208,    21,    25,
     850,   628,   802,   864,  1115,  1116,   671,    87,    87,   731,
       5,   206,   731,    21,    25,   210,   816,    25,   213,    18,
       5,   731,    87,    21,    23,    22,   671,    72,    41,    24,
      26,   694,   823,    10,    11,    41,   101,    34,    34,    34,
     120,    21,    50,    51,    57,    25,    18,   112,   113,   244,
      73,    57,  1051,  1052,     6,     7,    21,   137,   668,    39,
     952,   128,    27,   671,    21,    87,   146,    87,    25,  1180,
     137,   151,   137,   668,   152,   153,   154,   155,   156,   157,
     671,  1041,  1042,   290,   623,    25,    26,   714,  1051,    18,
     170,    18,    21,    18,   501,     5,   946,   183,   120,    24,
     853,   184,   185,    50,    51,   188,   189,   190,   802,    34,
     187,   864,    24,   974,   369,   137,   822,    18,   837,   825,
     607,   731,   816,     5,   146,  1124,   206,  1126,   208,   621,
     210,    87,   619,   213,   206,    24,   731,   802,   345,  1138,
     620,   206,   486,   223,    28,    34,     5,   187,   228,   101,
     230,   816,     9,  1113,   365,    18,   367,   802,   206,     5,
     951,    45,   953,   243,   244,    24,    25,    26,    24,   234,
    1133,   816,   711,   184,   185,    34,   223,   188,   189,    25,
    1072,   228,  1074,   230,   441,   442,   234,   184,   185,   184,
     185,   188,   189,   856,   802,    24,   243,    26,   668,   184,
     185,   266,    21,   188,   189,   668,    25,   413,   816,   289,
     289,   802,   292,   293,   294,    68,    69,    70,   266,   668,
     668,   974,  1185,   949,    24,   816,   952,   668,  1227,  1079,
     425,    50,    51,   313,   313,     5,    21,   304,   303,   319,
     446,   668,    27,    24,   184,   185,   223,   990,   188,   189,
      26,   228,    28,   230,    24,    24,   616,    26,   668,   184,
     185,   731,   170,   469,    34,    34,   243,   289,   731,    45,
     292,   293,   294,   130,   184,   185,    21,    21,   188,   189,
      25,    25,   731,   731,    29,   365,    24,   367,    24,    21,
     731,   313,   149,    25,   151,   184,   185,   319,    34,   506,
     208,    34,   184,   185,   731,   516,   188,   189,  1030,   520,
      28,  1030,   390,   391,   392,    19,    25,    26,   928,    28,
    1030,   731,    54,    55,    21,   184,   185,    45,    25,   188,
     189,   411,   411,    10,    11,   930,   416,    18,   184,   185,
      21,   828,   188,   189,   416,   425,  1072,    18,  1074,   206,
     170,   416,    21,   210,    18,   842,   213,    21,    27,    10,
      11,   441,   442,   428,    24,    18,   223,    26,   416,    28,
      24,   566,   452,   438,    34,   455,   455,    21,   111,   112,
     113,    25,    24,   590,   464,   450,    45,   244,   208,   411,
     438,  1110,   452,    16,   441,   442,   476,    18,   478,    16,
      21,   607,   450,    18,    25,   485,    21,   170,    16,   489,
      25,   181,   182,   619,   184,   185,   476,   187,   485,    15,
    1030,    25,    26,   488,    28,   623,   504,    10,    11,    18,
     452,   638,    21,   455,   645,  1030,   516,    34,    35,    36,
     520,    45,   464,   300,   516,   208,   526,   527,   184,   185,
      24,   516,    26,   664,   476,   925,   478,   365,  1177,   367,
     923,   924,    21,   485,   441,   442,    25,   489,   516,   326,
     327,   328,    24,    18,   915,   916,    21,   926,    23,   927,
     184,   185,    34,    21,   188,   189,   566,    25,   345,    16,
     917,   918,   349,   170,   566,    26,    32,    33,   355,    10,
      11,   566,    39,    34,   526,   527,   586,    22,   719,   919,
     920,   921,   922,   711,    18,    22,   373,    21,   566,   170,
      18,   181,   182,    21,   184,   185,   586,   187,   735,    29,
     737,   208,    21,   739,    54,    55,    25,    23,   745,    40,
      26,   621,    28,   623,  1083,   365,   223,   367,   628,    25,
      26,   228,    28,   230,   621,    18,   623,   208,    21,   416,
    1030,    50,    51,    56,   586,   645,   243,  1030,   425,    45,
     427,   428,   223,   645,    34,   935,   170,   228,   985,   230,
     645,  1030,  1030,    19,   664,    10,    11,   170,   668,  1030,
      22,    21,   243,    13,    26,    25,    28,   645,    24,   621,
      26,   623,   365,  1030,   367,   685,   628,   687,   516,    94,
     970,    21,   520,    45,   208,    25,    24,   977,   187,    27,
    1030,   701,   828,   690,    22,   208,    34,    24,    24,    26,
      26,   711,   184,   185,   714,    22,   842,    21,    34,   719,
     223,    25,    42,    43,   711,   228,    24,   230,    21,    27,
      24,   731,    25,   184,   185,    24,    34,   188,   189,   170,
     243,    88,    89,   685,    22,   687,    50,    51,   746,   747,
     748,   749,   750,   751,    21,    94,   882,  1037,    25,   701,
      26,    24,    28,    26,    20,    21,  1046,    19,   365,   711,
     367,    34,   714,   120,   121,    20,   516,   208,    27,    45,
     520,    21,   559,    94,  1064,    25,    24,   134,    26,   566,
      28,    24,   223,    72,   365,  1202,   367,   228,    21,   230,
      21,    22,    25,     5,   184,   185,    21,    45,   188,   189,
      48,    49,   243,    25,    37,    38,    21,   645,    25,    26,
      25,    28,    24,    25,    26,   170,    23,    21,  1235,    52,
      53,    25,    34,   516,    24,   835,   664,   520,    45,  1119,
      22,   841,    18,   843,   441,   442,   846,    24,    21,    24,
     850,   365,    25,   367,    21,    25,   184,   185,    25,   187,
    1140,    21,   365,   208,   367,    25,    37,    38,   184,   185,
     441,   442,   188,   189,   190,   875,    32,    33,   223,    25,
      21,    52,    53,   228,    25,   230,   184,   185,   665,   187,
     667,   719,   669,   835,    37,    38,    37,    38,   243,   841,
      18,   843,   184,   185,   846,   645,   188,   189,   850,    52,
      53,    52,    53,    18,   912,   913,   914,    25,    26,   516,
      28,   184,   185,   520,   664,   188,   189,    24,    21,    26,
      18,    28,    25,   875,   365,   935,   367,    45,   441,   442,
      21,    18,   942,    21,    25,   516,   946,    25,    45,   520,
      18,    48,    49,   730,    32,    33,    19,    21,   735,     9,
     737,    25,   645,    21,    11,  1083,  1093,    25,   745,    21,
      34,    35,    36,    25,    32,    33,   976,   976,    22,   719,
      25,   664,    34,    35,    36,    24,    21,    21,    21,   976,
      25,    25,    25,    21,   992,    21,    21,   997,   998,    25,
      25,    21,   516,    21,   946,    25,   520,    25,    21,    11,
     441,   442,    25,   516,    21,    21,    90,   520,    25,    25,
     365,    21,   367,    21,    21,    25,    19,    25,    25,    21,
    1030,    21,    19,    25,   976,    25,   719,    19,  1164,  1039,
      21,  1041,  1042,    21,    25,    50,    51,    25,   645,  1049,
      19,  1051,  1052,    24,  1039,   997,   998,    34,    35,    36,
      54,    55,    24,    12,    13,    14,  1066,   664,    90,  1069,
    1069,  1039,    20,    21,   645,    27,  1202,    20,    21,  1079,
      52,    53,    54,  1083,    21,   516,    21,    22,  1088,   520,
    1216,    32,    33,   664,    25,    22,   441,   442,   112,   113,
      21,    25,    25,    21,    11,    25,    22,    24,    22,  1235,
    1110,  1111,  1112,  1113,    24,  1115,  1116,    18,    24,    27,
     897,    25,   719,    23,  1124,    20,  1126,  1069,    19,  1129,
      20,   645,    19,  1133,    23,  1135,  1136,  1079,  1138,    27,
      24,  1083,   645,    21,    25,    19,  1088,    24,   719,    22,
     664,    20,    20,   102,   103,   104,   105,   106,   107,   108,
     109,   664,   111,    25,    25,     9,    10,    11,    27,  1111,
    1112,   516,    18,   185,    27,   520,    25,  1177,  1178,  1179,
    1180,   130,    23,    25,   133,  1185,    24,    90,   137,    21,
      18,    21,    29,  1135,  1136,    24,    39,    90,    56,    25,
      40,    23,   151,  1203,  1203,   719,    25,    90,    90,   158,
      90,    25,   187,   990,   645,    40,   719,    58,    59,    60,
      61,    62,    63,    64,    65,    66,    67,  1227,    23,    22,
     179,    25,    20,   664,    90,    25,  1178,  1179,    69,    70,
      71,    72,    73,    74,    75,    76,    77,    78,    25,    25,
      18,  1028,    25,    22,    21,    18,    18,    27,    18,    20,
      24,  1203,    21,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    23,   223,    22,    18,    90,    90,   110,
     189,    22,    22,   114,    21,   116,    21,   118,   719,    22,
      20,    20,   123,    25,    25,   191,    40,   191,    18,    27,
     645,    27,    20,    20,   135,   136,    27,   151,    87,    25,
    1087,   319,   942,  1227,   263,  1129,   960,   613,  1040,   664,
    1101,  1177,  1066,   272,    73,    74,    75,    76,   896,   179,
     428,    80,    81,    82,    83,    84,    85,    86,   835,   288,
     847,   290,   590,   292,   293,   176,   814,   711,  1203,   687,
     685,   300,    11,   128,   304,   304,  1159,   243,   307,   449,
     416,   310,   206,   720,   266,   196,   210,   873,   731,   213,
     319,  1030,   321,   872,   719,    -1,    -1,    -1,    -1,   223,
     224,    -1,    -1,   348,   228,    -1,   230,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,    -1,   243,
     244,    -1,    -1,    -1,    -1,    -1,   355,   372,    -1,    -1,
      -1,    -1,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   270,
      -1,    -1,   273,    19,    20,   410,    -1,    -1,    24,    -1,
      26,    -1,    28,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    47,    48,    49,    -1,    -1,    -1,   308,    -1,    -1,
     311,    -1,    -1,    -1,    -1,    -1,    -1,   318,    -1,    -1,
     321,    -1,    -1,    -1,    -1,    71,    -1,    -1,   447,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   461,    -1,   463,    -1,   465,    -1,    -1,   468,
      -1,    -1,   471,    -1,   473,    -1,    -1,   371,    -1,    -1,
      -1,    -1,    -1,   482,    -1,    -1,   485,    -1,    -1,   115,
      19,    -1,    -1,    -1,    -1,    24,    -1,    26,    -1,    28,
      29,    30,    31,    32,    33,    34,    -1,   506,    -1,    -1,
      -1,    -1,    -1,   140,    -1,    -1,    -1,    -1,    47,    48,
      49,    -1,   416,    -1,    -1,   152,   153,   154,   155,   156,
     157,   425,   159,   160,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    71,    -1,    -1,    -1,    -1,   441,   442,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   437,    -1,   184,   185,
      -1,   187,   188,   189,    -1,    -1,   447,    -1,    -1,    -1,
      -1,    -1,   453,    -1,    -1,    -1,   457,    -1,    -1,    -1,
     461,    -1,   463,    -1,    -1,    -1,   115,    -1,   587,    -1,
      -1,   590,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   480,
      -1,    -1,    -1,   484,    -1,    -1,   605,   606,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   614,   615,    -1,    -1,   634,
      -1,   620,   621,    -1,   623,    -1,    -1,    -1,    -1,   628,
      -1,    -1,    -1,    -1,   649,    -1,    18,    -1,    -1,   638,
      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
      32,    33,    34,   652,   653,   184,   185,    -1,   187,   188,
     189,    -1,    -1,    -1,    -1,    47,    48,    49,    -1,   668,
      -1,    -1,   566,    -1,    -1,    -1,   675,   676,    -1,    -1,
      -1,   562,    -1,    -1,    -1,   684,   701,   686,    -1,    71,
      -1,   690,    -1,    -1,    -1,   694,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   702,   703,   720,    -1,    -1,   707,    -1,
      -1,   710,   711,    -1,   713,   714,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   605,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   731,   115,    -1,    -1,   735,    -1,   737,   620,
      -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   636,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,    18,
      -1,    -1,    -1,    -1,    -1,    24,   413,    -1,    -1,   670,
      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,   184,   185,    -1,   187,    -1,    -1,    47,    48,
      49,    -1,    -1,    -1,   695,    -1,    -1,    -1,    -1,   446,
      -1,    -1,    -1,    -1,    -1,    -1,   841,    -1,    -1,    -1,
      -1,   846,    71,    -1,    -1,   850,    -1,    -1,    -1,    -1,
     839,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    19,    -1,   856,   873,    -1,
      24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
      34,    -1,    -1,    -1,    -1,   756,   115,   504,    42,    43,
     895,   896,    -1,    47,    48,    49,   901,   902,   903,   904,
     905,   906,   907,   908,   909,   910,   911,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
      -1,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,
      -1,    29,    30,    31,    32,    33,    34,    -1,   809,   810,
     557,   946,    -1,   560,    42,    43,    -1,    -1,    -1,    47,
      48,    49,    -1,    -1,    -1,   184,   185,    -1,   187,   948,
      -1,   115,    -1,    -1,    -1,    -1,   955,    -1,    -1,    -1,
      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   852,    -1,    19,    20,   856,    -1,   976,    24,    -1,
     607,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,   619,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    47,    48,    49,    -1,    -1,    -1,   115,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     184,   185,    -1,   187,    -1,    71,    -1,   654,   655,    -1,
      -1,  1030,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   668,   122,   123,   124,   125,    -1,   127,    -1,    -1,
      -1,    -1,   132,   133,    -1,    -1,   136,   137,    -1,   139,
     140,   141,   142,    -1,  1079,    -1,    -1,   948,    -1,   115,
      -1,    -1,    -1,   954,   154,   155,   184,   185,    -1,   187,
      -1,    -1,    -1,    -1,  1083,    -1,    -1,  1086,    -1,    -1,
      -1,    -1,    -1,    -1,  1093,    -1,    -1,  1096,  1097,    -1,
     180,    -1,    -1,    -1,   731,    -1,   186,    -1,    -1,    -1,
      -1,    -1,   739,    -1,    -1,    -1,    -1,    -1,    -1,   746,
     747,   748,   749,   750,   751,   752,   753,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,
    1139,   187,    -1,     1,  1143,  1144,    -1,    -1,     6,     7,
       8,    -1,    -1,    11,    12,    13,    14,    15,    16,    17,
      18,    19,    20,    -1,    -1,    -1,    24,    25,    -1,    -1,
      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
      -1,    -1,  1181,    -1,    42,    43,    -1,    -1,    -1,    47,
      48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   828,  1201,    -1,    -1,    -1,    -1,  1206,    -1,    -1,
      -1,    -1,    -1,    71,    -1,   842,    -1,    -1,    -1,    19,
      -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
      30,    31,    32,    33,    34,    -1,    94,    -1,    96,    97,
      98,    99,   100,   101,    -1,    -1,    -1,    47,    48,    49,
      -1,    -1,   110,    -1,    -1,   882,    -1,   115,    -1,    -1,
      -1,    -1,    -1,    -1,  1145,    -1,    -1,    -1,    -1,    -1,
      -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   912,   913,   914,   915,   916,
     917,   918,   919,   920,   921,   922,   923,   924,   925,   926,
     927,   928,    -1,   930,     0,     1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,    -1,    -1,
      -1,    -1,    18,    -1,    -1,    -1,   184,   185,    24,   187,
     188,   189,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
      46,    -1,  1233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   992,    -1,    -1,    -1,    -1,
      -1,    -1,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
      -1,    77,    78,    79,   184,   185,    -1,   187,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
      -1,    -1,    -1,  1030,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
      -1,   127,   128,   129,   130,   131,   132,   133,   134,   135,
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
     176,   177,   178,   179,   180,    -1,    -1,    -1,   184,   185,
     186,    -1,   188,   189,   190,    -1,    -1,    -1,    -1,     0,
       1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,    -1,    -1,
      -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    34,    -1,    -1,    -1,  1164,    -1,    -1,
      -1,    -1,    -1,    44,    -1,    46,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
      -1,    -1,    -1,    -1,    -1,  1202,    77,    78,    79,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1216,
      91,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1235,    -1,
     111,   112,   113,   114,    -1,   116,   117,   118,   119,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
      -1,    -1,    -1,   184,   185,   186,     1,   188,   189,   190,
      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
      -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    -1,    -1,    -1,   184,
     185,   186,   187,   188,   189,   190,     1,    -1,    -1,    -1,
      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
      -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    -1,    -1,    -1,   184,
     185,   186,   187,   188,   189,   190,     1,    -1,    -1,    -1,
      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
      -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    -1,    -1,    -1,   184,
     185,   186,   187,   188,   189,   190,     1,    -1,    -1,    -1,
      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
      -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    -1,    -1,    -1,   184,
     185,   186,   187,   188,   189,   190,     1,    -1,    -1,    -1,
      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    -1,    -1,    -1,   184,
     185,   186,   187,   188,   189,   190,     1,    -1,    -1,    -1,
      -1,     6,     7,     8,    -1,    -1,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    -1,    -1,    -1,   184,
     185,   186,   187,   188,   189,   190,     1,    -1,    -1,    -1,
      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
      -1,     1,    47,    48,    49,    -1,     6,     7,     8,    -1,
      -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
      20,    -1,    -1,    -1,    24,    -1,    71,    -1,    -1,    29,
      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    42,    43,    -1,    -1,    -1,    47,    48,    49,
      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
      -1,    -1,    19,    -1,    -1,   110,    -1,    24,    -1,    -1,
     115,    71,    29,    30,    31,    32,    33,    34,    -1,    24,
      25,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      47,    48,    49,    -1,    94,    -1,    96,    97,    98,    99,
     100,   101,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
     110,    -1,    -1,    -1,    71,   115,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,
     185,    -1,   187,   188,   189,    -1,    -1,    -1,    -1,     1,
      -1,    -1,    -1,    -1,     6,     7,     8,    -1,   115,    11,
      12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
     115,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
      32,    33,    34,    -1,   184,   185,    -1,   187,   188,   189,
      42,    43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
     187,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,
     185,    -1,   187,    -1,    96,    97,    98,    99,   100,   101,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
       6,     7,     8,   115,    10,    11,    12,    13,    14,    15,
      16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
      -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,    -1,
      46,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
      -1,    -1,   184,   185,    -1,   187,   188,   189,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
      96,    97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
      -1,   127,   128,   129,   130,   131,   132,   133,   134,   135,
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
     176,   177,   178,   179,   180,    -1,    -1,    -1,   184,   185,
     186,   187,   188,   189,   190,     6,     7,     8,    -1,    10,
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
      -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
      31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    42,    43,    44,    -1,    46,    47,    48,    49,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,   100,
     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
      -1,    -1,    -1,   184,   185,   186,   187,   188,   189,   190,
       6,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
      16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,
      -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
      96,    97,    98,    99,   100,   101,    -1,    -1,    -1,    18,
      -1,    -1,    -1,    -1,   110,    24,    -1,    -1,    -1,   115,
      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    42,    43,    44,    -1,    -1,    47,    48,
      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,
      -1,   187,   188,   189,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
     119,   120,   121,   122,   123,   124,   125,    -1,   127,   128,
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
     179,   180,    19,    -1,    -1,   184,   185,   186,   187,    -1,
      -1,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    20,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,   116,
     117,   118,   119,   120,   121,   122,   123,   124,   125,    44,
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
     177,   178,   179,   180,    -1,    -1,    -1,    -1,    -1,   186,
      -1,    -1,    -1,   190,    -1,    -1,   111,   112,   113,   114,
      -1,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    24,    -1,    -1,    -1,
      -1,   186,    -1,    -1,    -1,   190,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   111,   112,   113,   114,    -1,   116,   117,
     118,   119,   120,   121,   122,   123,   124,   125,    -1,   127,
     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
     178,   179,   180,    -1,    -1,    -1,   184,   185,   186,    24,
     188,   189,   190,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
      -1,    -1,    47,    48,    49,    24,    -1,    -1,    27,    -1,
      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    47,    48,
      49,    24,    -1,    -1,    27,    -1,    29,    30,    31,    32,
      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    71,    -1,    47,    48,    49,    24,    25,    -1,
      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
      47,    48,    49,    24,    25,    -1,    -1,    -1,    29,    30,
      31,    32,    33,    34,    -1,    -1,   115,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    71,    -1,    47,    48,    49,    24,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
      -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      71,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,   184,
     185,    -1,   187,    -1,    -1,    -1,    -1,    -1,   115,    -1,
      -1,    -1,    -1,    -1,    24,    -1,    71,    -1,    -1,    29,
      30,    31,    32,    33,    34,   184,   185,    -1,   187,    -1,
      -1,    -1,    -1,    -1,   115,    -1,    -1,    47,    48,    49,
      24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
      34,   184,   185,    -1,   187,    -1,    -1,    -1,    -1,    -1,
     115,    71,    -1,    47,    48,    49,    24,    -1,    -1,    -1,
      -1,    29,    30,    31,    32,    33,    34,   184,   185,    -1,
     187,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    47,
      48,    49,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
      32,    33,    34,   184,   185,   115,   187,    -1,    -1,    -1,
      -1,    -1,    -1,    71,    -1,    47,    48,    49,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,
     185,   115,   187,    -1,    -1,    -1,    -1,    -1,    -1,    71,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   184,   185,    -1,   187,    -1,    -1,
      -1,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,    44,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     184,   185,    -1,   187,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,   187,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   184,   185,    -1,   187,   111,   112,   113,   114,
      -1,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,    44,    -1,    -1,    -1,
      -1,   186,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   111,   112,   113,   114,    -1,   116,   117,
     118,   119,   120,   121,   122,   123,   124,   125,    44,   127,
     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
     178,   179,   180,    -1,    -1,    -1,    -1,    -1,   186,    -1,
      -1,    -1,   190,    -1,    -1,   111,   112,   113,   114,    -1,
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
      44,   127,   128,   129,   130,   131,   132,   133,   134,   135,
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
     176,   177,   178,   179,   180,    -1,    -1,    -1,   184,   185,
     186,    -1,    -1,    -1,   190,    -1,    -1,   111,   112,   113,
     114,    -1,   116,   117,   118,   119,   120,   121,   122,   123,
     124,   125,    -1,   127,   128,   129,   130,   131,   132,   133,
     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
     174,   175,   176,   177,   178,   179,   180,    -1,    -1,    -1,
      -1,    -1,   186,    -1,    -1,    -1,   190
};

/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
   state STATE-NUM.  */
static const yytype_int16 yystos[] =
{
       0,     1,    18,    34,    44,    46,    77,    78,    79,    91,
      92,    93,   111,   112,   113,   114,   116,   117,   118,   119,
     120,   121,   122,   123,   124,   125,   127,   128,   129,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
     184,   185,   186,   188,   189,   190,   193,   194,   195,   196,
     197,   201,   207,   210,   247,   253,   296,   297,   300,   304,
     306,   318,   328,   329,   330,   331,   332,   333,   334,   335,
     336,   337,   338,   339,   341,   343,   345,   354,   359,   364,
     368,   462,   463,   464,   111,   112,   113,   366,   367,   368,
      24,   302,   308,   309,   341,   364,   341,   198,   463,     1,
       6,     7,     8,    10,    11,    12,    14,    15,    16,    17,
      18,    24,    29,    30,    31,    32,    33,    34,    47,    48,
      49,    71,    94,    95,    96,    97,    98,    99,   100,   101,
     110,   115,   185,   187,   188,   261,   263,   265,   267,   270,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     284,   286,   291,   292,   296,   304,   341,   379,   394,   395,
     396,   397,   398,   401,   405,   406,   413,   419,   420,   421,
     424,   426,   432,   454,   457,   458,   459,   462,   463,     1,
      11,    13,    18,    24,   188,   189,   292,   380,   382,   383,
     384,   387,   389,   390,   392,   393,   396,   398,   401,   406,
     410,   418,   420,   425,   454,   459,   380,   381,   306,   306,
     306,   354,   354,   354,   354,   354,   354,   354,   354,   354,
     354,     0,   195,    26,   307,   248,   249,   250,    18,   460,
      21,   312,    18,    24,   341,   344,   306,   306,   306,   306,
     306,   306,   306,   306,   354,   306,   344,   344,    18,   354,
      87,   354,    68,    69,    70,   354,   201,   354,   366,   368,
      24,   185,   292,   306,   340,   374,   462,    18,    21,   306,
      18,   305,   354,   354,   199,   200,   204,   306,   341,   368,
     463,    24,   265,   286,   295,   402,    24,    24,    24,   463,
      18,    18,    18,   292,   262,   292,   374,   395,   273,   273,
     273,   273,   273,   273,   306,    24,   265,   265,    24,    24,
      16,    16,    16,    16,    15,    24,   378,   379,   396,   398,
     401,   404,   406,   418,   421,   424,   426,   454,   455,   456,
     459,   427,    24,    26,    48,    49,   354,    23,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,   268,   306,
      34,    35,    36,    32,    33,    50,    51,    37,    38,    52,
      53,    54,    55,    29,    39,    40,    56,    41,    57,    18,
      21,   354,    94,     6,     7,   101,    19,   414,   296,   304,
     395,   378,   395,   187,   395,   384,    22,    24,    24,   292,
     389,   406,    18,    94,   389,   389,   296,   341,   415,    19,
      20,   391,   382,   395,    94,    27,   306,    24,   251,   252,
     415,    72,   354,    21,   306,   354,   306,   364,   342,   374,
     306,   463,   306,   463,    19,   463,   292,    25,   341,    26,
     306,   368,   375,   377,    25,   306,   354,   306,   354,    23,
     364,   460,    26,   307,    24,   354,   204,     5,   306,   354,
     365,   371,   372,   373,   399,    22,   292,   292,   292,    18,
      18,    24,   404,    25,    25,    25,    24,   374,   291,   292,
      18,    18,    18,    18,    18,   404,    19,   412,   378,   378,
     384,   406,    25,   264,   291,   292,    28,    45,   291,   291,
     291,   291,   291,   291,   291,   291,   291,   291,   291,   271,
     269,   273,   273,   273,   274,   274,   275,   275,   276,   276,
     276,   276,   277,   277,   278,   279,   280,   283,   287,   289,
     285,   291,   364,   295,   403,    20,   413,   407,     9,    11,
     395,   292,   292,   293,   294,   300,    25,    24,   296,   389,
      11,   295,    25,   365,   412,   302,   354,   364,   354,    90,
      21,    19,   306,   354,    19,   306,   354,   361,   362,   463,
      19,   306,   306,    27,   295,    24,   377,    26,   306,   302,
     190,   301,   302,   310,   311,   303,   354,    90,    27,   306,
      24,   354,   200,   341,   369,   370,   463,    25,    21,    22,
      25,   423,    25,    25,    19,   273,   374,    25,    21,    25,
      25,    20,   296,   304,   378,   411,    11,   378,    24,    21,
      25,    27,   463,   463,    42,    43,   272,   281,    22,   292,
     282,   400,    22,    20,   422,    24,    25,    18,   388,    24,
      27,   202,    25,   302,   306,   298,   299,   342,    20,   350,
      19,    20,   352,    19,    20,    21,    23,   360,    27,    25,
     354,   371,    27,   295,    24,    21,    73,   237,   238,   239,
     306,   306,    23,   460,   295,    25,   365,   200,   201,   306,
     363,   368,   376,   377,    21,   208,     5,   373,   463,    25,
      19,   291,   416,   417,   354,   374,    20,   296,   304,   378,
      24,   428,   291,   306,   306,    24,   265,    24,   265,   288,
      22,    22,   378,   292,   293,    24,    29,    30,    31,    32,
      33,    34,    48,    49,    71,   185,   263,   265,   268,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   284,   429,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   452,   462,   292,
     354,    74,    75,    76,    80,    81,    82,    83,    84,    85,
      86,   224,   226,   228,   229,   231,   232,   233,   238,   245,
     246,   319,   320,   322,   323,   324,   203,    25,   306,   306,
     408,    20,   346,   408,    20,   348,   306,   362,   306,   361,
     375,    25,    27,    25,   371,   354,   185,   235,   236,    18,
      90,    19,    26,    28,   291,   313,   314,   315,   316,   463,
     306,   306,    27,   205,    25,   306,    24,   306,   190,   363,
       5,   373,   463,   225,   227,   229,   231,   233,   239,   320,
     324,   378,   416,    21,   461,    21,    25,   292,   429,   374,
     374,   286,   290,    25,    18,   292,   374,   273,   273,   273,
     273,   273,   273,   265,   265,    24,    24,    26,    48,    49,
     354,    23,    58,    59,    60,    61,    62,    63,    64,    65,
      66,    67,    34,    35,    36,    32,    33,    50,    51,    37,
      38,    52,    53,    54,    55,    29,    39,    40,    56,    41,
      57,    25,   430,    25,   230,   234,   224,    90,    90,   354,
     354,    90,   326,   330,    90,   224,    23,   210,   341,   355,
     356,   408,   355,   408,   295,    20,    25,    25,   301,   432,
      40,   306,   313,   317,   295,   463,   313,    23,   316,    22,
     313,    90,   354,   225,   206,    25,   354,   209,   225,   461,
     417,    20,   266,   463,    25,    25,    25,    25,   286,    18,
     385,    25,    25,   291,    25,   264,   292,    28,    45,   291,
     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
     273,   273,   273,   274,   274,   275,   275,   276,   276,   276,
     276,   277,   277,   278,   279,   280,   281,   448,   450,   282,
      21,    18,    88,    89,   120,   121,   134,   240,   241,   242,
     244,    24,    34,   185,   254,   255,   257,   460,   462,   321,
       5,    24,    34,   181,   182,   185,   187,   211,   212,   216,
     217,   218,   219,   220,   327,   462,   325,   313,   306,   354,
     356,   409,   355,   409,   355,   354,   306,   235,    20,    21,
      27,   460,   225,   368,   460,    20,    25,    26,    28,    18,
     404,   293,   273,    21,    25,    27,   463,   463,    22,   292,
     431,    21,   460,   185,   243,   296,   462,   242,   255,   255,
      26,    28,    45,    21,   460,    24,    34,   185,   258,   260,
     462,   214,   218,   219,    24,   219,    23,    56,   183,   223,
      52,    53,    54,   222,    26,    28,    45,   213,    24,   460,
     259,   260,    18,    22,   357,   358,   364,   351,   409,   353,
     409,    20,   313,    90,    90,   306,   292,   463,   189,   453,
     386,   374,   306,   306,   449,    22,   241,    25,    27,   255,
     256,   432,   463,   463,   255,   258,   258,    26,    28,    45,
      21,   460,    22,    32,    33,   221,    25,   219,   212,   215,
     219,   216,   219,   218,    27,   187,   463,   463,    22,   219,
     306,   460,   306,    21,   306,   354,    22,    20,   347,    20,
     349,    27,   407,    25,    25,   286,   451,    27,    25,    27,
     256,   463,   463,   258,   306,   191,   218,    40,    27,   191,
      25,   306,   295,   358,    18,   306,    20,    20,   286,    27,
      25,   215,   354,   295
};

/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
static const yytype_int16 yyr1[] =
{
       0,   192,   193,   193,   194,   194,   195,   195,   195,   195,
     195,   195,   195,   195,   195,   196,   196,   198,   197,   199,
     199,   200,   200,   201,   201,   201,   201,   202,   201,   203,
     201,   204,   204,   204,   204,   205,   204,   206,   204,   208,
     209,   207,   210,   210,   210,   210,   211,   213,   212,   214,
     212,   215,   215,   216,   216,   217,   218,   218,   218,   218,
     219,   219,   219,   219,   219,   219,   219,   219,   220,   220,
     221,   221,   222,   222,   222,   223,   223,   224,   224,   225,
     225,   226,   226,   226,   226,   226,   226,   227,   227,   227,
     227,   227,   227,   228,   230,   229,   231,   232,   234,   233,
     235,   235,   236,   237,   237,   238,   239,   239,   240,   240,
     241,   242,   242,   243,   243,   243,   244,   244,   244,   244,
     244,   245,   245,   245,   245,   245,   246,   246,   247,   247,
     248,   249,   248,   250,   248,   252,   251,   253,   254,   254,
     255,   255,   255,   255,   255,   255,   255,   255,   256,   256,
     257,   257,   258,   258,   258,   258,   258,   258,   258,   258,
     259,   259,   260,   260,   261,   261,   261,   261,   261,   262,
     261,   263,   263,   263,   263,   263,   263,   263,   263,   263,
     263,   264,   264,   265,   265,   265,   265,   265,   265,   265,
     265,   265,   265,   265,   266,   266,   266,   267,   269,   268,
     270,   271,   272,   272,   272,   272,   273,   273,   274,   274,
     274,   274,   275,   275,   275,   276,   276,   276,   277,   277,
     277,   277,   277,   278,   278,   278,   279,   279,   280,   280,
     281,   281,   282,   283,   282,   284,   285,   284,   286,   287,
     288,   286,   289,   290,   286,   291,   291,   291,   291,   291,
     291,   291,   291,   291,   291,   291,   291,   292,   292,   293,
     293,   294,   294,   295,   296,   298,   297,   299,   297,   300,
     300,   301,   301,   302,   303,   302,   305,   304,   304,   304,
     304,   306,   307,   308,   309,   309,   310,   311,   311,   312,
     312,   313,   313,   313,   313,   314,   314,   315,   315,   316,
     316,   317,   317,   318,   318,   318,   318,   318,   319,   321,
     320,   322,   323,   325,   324,   326,   324,   327,   327,   328,
     328,   328,   328,   328,   329,   329,   329,   329,   330,   330,
     330,   330,   330,   330,   330,   330,   330,   330,   330,   330,
     330,   330,   330,   330,   330,   331,   331,   332,   332,   333,
     333,   334,   334,   334,   334,   334,   335,   335,   335,   335,
     335,   335,   336,   336,   336,   336,   337,   337,   337,   337,
     338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
     338,   338,   339,   339,   339,   339,   339,   339,   339,   339,
     339,   339,   339,   339,   339,   339,   340,   341,   341,   342,
     342,   343,   343,   343,   344,   344,   346,   347,   345,   348,
     349,   345,   345,   345,   350,   351,   345,   352,   353,   345,
     345,   345,   345,   345,   354,   355,   355,   355,   356,   356,
     357,   357,   358,   358,   358,   359,   360,   359,   359,   361,
     361,   361,   362,   362,   363,   363,   363,   363,   364,   364,
     365,   365,   366,   366,   366,   367,   367,   368,   368,   368,
     368,   369,   369,   370,   370,   370,   371,   371,   371,   372,
     372,   372,   373,   374,   374,   375,   375,   375,   376,   376,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   378,
     378,   378,   378,   378,   378,   378,   378,   378,   378,   379,
     380,   381,   382,   382,   383,   383,   383,   383,   385,   386,
     384,   388,   387,   387,   389,   389,   389,   389,   389,   389,
     389,   389,   389,   389,   389,   389,   389,   391,   390,   392,
     393,   394,   395,   395,   395,   395,   395,   395,   395,   395,
     395,   395,   395,   395,   396,   396,   397,   397,   399,   398,
     400,   398,   402,   401,   403,   401,   404,   404,   405,   406,
     407,   408,   409,   410,   411,   411,   411,   411,   411,   411,
     412,   412,   413,   413,   413,   413,   413,   413,   414,   414,
     415,   415,   416,   416,   417,   417,   418,   418,   419,   419,
     419,   420,   421,   422,   421,   423,   421,   424,   425,   427,
     428,   426,   429,   430,   429,   431,   431,   431,   432,   432,
     433,   433,   434,   434,   434,   434,   434,   434,   434,   434,
     434,   435,   435,   435,   435,   435,   435,   435,   435,   435,
     435,   436,   436,   437,   437,   437,   437,   438,   438,   438,
     439,   439,   439,   440,   440,   440,   440,   440,   441,   441,
     441,   442,   442,   443,   443,   444,   444,   445,   445,   446,
     446,   447,   448,   449,   447,   450,   451,   447,   452,   452,
     452,   452,   452,   452,   452,   452,   452,   452,   452,   452,
     453,   453,   454,   455,   455,   456,   455,   457,   457,   457,
     458,   457,   459,   459,   459,   459,   459,   459,   459,   459,
     459,   459,   460,   460,   461,   461,   462,   463,   463,   463,
     463,   464,   464,   464
};

/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
static const yytype_int8 yyr2[] =
{
       0,     2,     0,     1,     1,     2,     2,     1,     1,     1,
       1,     1,     1,     1,     1,     8,    10,     0,     5,     1,
       3,     1,     2,     1,     6,     3,     6,     0,     6,     0,
       7,     1,     6,     3,     6,     0,     6,     0,     7,     0,
       0,    10,     3,     3,     3,     2,     3,     0,     4,     0,
       4,     1,     3,     1,     3,     3,     1,     1,     4,     5,
       1,     1,     3,     4,     2,     3,     3,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     0,     2,     0,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     0,     4,     1,     2,     0,     3,
       1,     3,     1,     0,     1,     2,     3,     2,     1,     3,
       2,     0,     2,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
       0,     0,     2,     0,     2,     0,     2,     3,     2,     1,
       1,     1,     3,     4,     2,     3,     3,     3,     1,     1,
       1,     3,     1,     1,     3,     4,     2,     3,     3,     3,
       0,     1,     1,     3,     1,     1,     1,     3,     1,     0,
       4,     1,     4,     3,     4,     6,     5,     5,     2,     2,
       7,     1,     3,     1,     2,     2,     2,     2,     2,     2,
       2,     2,     3,     1,     3,     4,     1,     9,     0,     3,
       0,     0,     4,     2,     4,     2,     1,     4,     1,     3,
       3,     3,     1,     3,     3,     1,     3,     3,     1,     3,
       3,     3,     3,     1,     3,     3,     1,     3,     1,     3,
       1,     3,     1,     0,     4,     1,     0,     4,     1,     0,
       0,     6,     0,     0,     7,     1,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     1,     3,     0,
       1,     1,     1,     1,     3,     0,     6,     0,     8,     1,
       2,     1,     1,     2,     0,     6,     0,     8,     4,     4,
       3,     0,     0,     2,     1,     4,     2,     1,     4,     3,
       4,     1,     3,     4,     2,     2,     2,     1,     2,     3,
       2,     1,     3,     1,     1,     1,     1,     1,     2,     0,
       6,     2,     2,     0,     6,     0,     5,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     3,     1,     4,     1,
       3,     2,     2,     2,     0,     1,     0,     0,    11,     0,
       0,    11,     6,     6,     0,     0,    10,     0,     0,    10,
       5,     5,     4,     4,     0,     1,     1,     2,     5,     3,
       2,     4,     1,     3,     4,     6,     0,     8,     4,     1,
       3,     2,     1,     5,     1,     1,     2,     2,     1,     2,
       1,     2,     1,     1,     1,     1,     2,     1,     2,     2,
       3,     1,     3,     1,     3,     3,     1,     1,     3,     1,
       3,     3,     4,     1,     2,     1,     1,     2,     0,     1,
       5,     2,     3,     3,     4,     3,     4,     4,     5,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
       1,     1,     1,     2,     2,     7,     6,     2,     0,     0,
      10,     0,     6,     1,     1,     1,     1,     2,     1,     1,
       1,     1,     1,     1,     1,     3,     1,     0,     3,     2,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       3,     1,     1,     1,     2,     2,     1,     2,     0,     4,
       0,     5,     0,     3,     0,     4,     3,     2,     3,     0,
       0,     0,     0,     0,     1,     1,     1,     2,     2,     2,
       2,     3,     1,     1,     1,     2,     2,     2,     2,     3,
       1,     2,     1,     3,     1,     4,     1,     2,     1,     2,
       1,     4,     2,     0,     5,     0,     6,     4,     4,     0,
       0,    10,     1,     0,     4,     1,     1,     1,     1,     2,
       1,     3,     1,     4,     3,     4,     6,     5,     5,     2,
       2,     1,     2,     2,     2,     2,     2,     2,     2,     2,
       1,     1,     4,     1,     3,     3,     3,     1,     3,     3,
       1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
       3,     1,     0,     0,     6,     0,     0,     7,     1,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       0,     1,     1,     2,     7,     0,     3,     2,     7,     6,
       0,     3,     3,     2,     3,     2,     3,     3,     3,     3,
       2,     3,     0,     1,     0,     1,     1,     1,     1,     1,
       1,     1,     4,     4
};


enum { YYENOMEM = -2 };

#define yyerrok         (yyerrstatus = 0)
#define yyclearin       (yychar = C_EMPTY)

#define YYACCEPT        goto yyacceptlab
#define YYABORT         goto yyabortlab
#define YYERROR         goto yyerrorlab
#define YYNOMEM         goto yyexhaustedlab


#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)                                    \
  do                                                              \
    if (yychar == C_EMPTY)                                        \
      {                                                           \
        yychar = (Token);                                         \
        yylval = (Value);                                         \
        YYPOPSTACK (yylen);                                       \
        yystate = *yyssp;                                         \
        goto yybackup;                                            \
      }                                                           \
    else                                                          \
      {                                                           \
        yyerror (YY_("syntax error: cannot back up")); \
        YYERROR;                                                  \
      }                                                           \
  while (0)

/* Backward compatibility with an undocumented macro.
   Use C_error or C_UNDEF. */
#define YYERRCODE C_UNDEF


/* Enable debugging if requested.  */
#if C_DEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)                        \
do {                                            \
  if (yydebug)                                  \
    YYFPRINTF Args;                             \
} while (0)




# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
do {                                                                      \
  if (yydebug)                                                            \
    {                                                                     \
      YYFPRINTF (stderr, "%s ", Title);                                   \
      yy_symbol_print (stderr,                                            \
                  Kind, Value); \
      YYFPRINTF (stderr, "\n");                                           \
    }                                                                     \
} while (0)


/*-----------------------------------.
| Print this symbol's value on YYO.  |
`-----------------------------------*/

static void
yy_symbol_value_print (FILE *yyo,
                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
  FILE *yyoutput = yyo;
  YY_USE (yyoutput);
  if (!yyvaluep)
    return;
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  YY_USE (yykind);
  YY_IGNORE_MAYBE_UNINITIALIZED_END
}


/*---------------------------.
| Print this symbol on YYO.  |
`---------------------------*/

static void
yy_symbol_print (FILE *yyo,
                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
  YYFPRINTF (yyo, "%s %s (",
             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));

  yy_symbol_value_print (yyo, yykind, yyvaluep);
  YYFPRINTF (yyo, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

static void
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
{
  YYFPRINTF (stderr, "Stack now");
  for (; yybottom <= yytop; yybottom++)
    {
      int yybot = *yybottom;
      YYFPRINTF (stderr, " %d", yybot);
    }
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)                            \
do {                                                            \
  if (yydebug)                                                  \
    yy_stack_print ((Bottom), (Top));                           \
} while (0)


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

static void
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
                 int yyrule)
{
  int yylno = yyrline[yyrule];
  int yynrhs = yyr2[yyrule];
  int yyi;
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
             yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr,
                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
                       &yyvsp[(yyi + 1) - (yynrhs)]);
      YYFPRINTF (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)          \
do {                                    \
  if (yydebug)                          \
    yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !C_DEBUG */
# define YYDPRINTF(Args) ((void) 0)
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !C_DEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif






/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

static void
yydestruct (const char *yymsg,
            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
{
  YY_USE (yyvaluep);
  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);

  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  YY_USE (yykind);
  YY_IGNORE_MAYBE_UNINITIALIZED_END
}


/* Lookahead token kind.  */
int yychar;

/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;
/* Number of syntax errors so far.  */
int yynerrs;




/*----------.
| yyparse.  |
`----------*/

int
yyparse (void)
{
    yy_state_fast_t yystate = 0;
    /* Number of tokens to shift before error messages enabled.  */
    int yyerrstatus = 0;

    /* Refer to the stacks through separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */

    /* Their size.  */
    YYPTRDIFF_T yystacksize = YYINITDEPTH;

    /* The state stack: array, bottom, top.  */
    yy_state_t yyssa[YYINITDEPTH];
    yy_state_t *yyss = yyssa;
    yy_state_t *yyssp = yyss;

    /* The semantic value stack: array, bottom, top.  */
    YYSTYPE yyvsa[YYINITDEPTH];
    YYSTYPE *yyvs = yyvsa;
    YYSTYPE *yyvsp = yyvs;

  int yyn;
  /* The return value of yyparse.  */
  int yyresult;
  /* Lookahead symbol kind.  */
  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;



#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yychar = C_EMPTY; /* Cause a token to be read.  */

  goto yysetstate;


/*------------------------------------------------------------.
| yynewstate -- push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;


/*--------------------------------------------------------------------.
| yysetstate -- set current state (the top of the stack) to yystate.  |
`--------------------------------------------------------------------*/
yysetstate:
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
  YY_IGNORE_USELESS_CAST_BEGIN
  *yyssp = YY_CAST (yy_state_t, yystate);
  YY_IGNORE_USELESS_CAST_END
  YY_STACK_PRINT (yyss, yyssp);

  if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
    YYNOMEM;
#else
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYPTRDIFF_T yysize = yyssp - yyss + 1;

# if defined yyoverflow
      {
        /* Give user a chance to reallocate the stack.  Use copies of
           these so that the &'s don't force the real ones into
           memory.  */
        yy_state_t *yyss1 = yyss;
        YYSTYPE *yyvs1 = yyvs;

        /* Each stack pointer address is followed by the size of the
           data in use in that stack, in bytes.  This used to be a
           conditional around just the two extra args, but that might
           be undefined if yyoverflow is a macro.  */
        yyoverflow (YY_("memory exhausted"),
                    &yyss1, yysize * YYSIZEOF (*yyssp),
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
                    &yystacksize);
        yyss = yyss1;
        yyvs = yyvs1;
      }
# else /* defined YYSTACK_RELOCATE */
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
        YYNOMEM;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;

      {
        yy_state_t *yyss1 = yyss;
        union yyalloc *yyptr =
          YY_CAST (union yyalloc *,
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
        if (! yyptr)
          YYNOMEM;
        YYSTACK_RELOCATE (yyss_alloc, yyss);
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
      }
# endif

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;

      YY_IGNORE_USELESS_CAST_BEGIN
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
                  YY_CAST (long, yystacksize)));
      YY_IGNORE_USELESS_CAST_END

      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
    }
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */


  if (yystate == YYFINAL)
    YYACCEPT;

  goto yybackup;


/*-----------.
| yybackup.  |
`-----------*/
yybackup:
  /* Do appropriate processing given the current state.  Read a
     lookahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to lookahead token.  */
  yyn = yypact[yystate];
  if (yypact_value_is_default (yyn))
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
  if (yychar == C_EMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token\n"));
      yychar = yylex ();
    }

  if (yychar <= C_EOF)
    {
      yychar = C_EOF;
      yytoken = YYSYMBOL_YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else if (yychar == C_error)
    {
      /* The scanner already issued an error message, process directly
         to error recovery.  But do not keep the error token as
         lookahead, it is too special and may lead us to an endless
         loop in error recovery. */
      yychar = C_UNDEF;
      yytoken = YYSYMBOL_YYerror;
      goto yyerrlab1;
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yytable_value_is_error (yyn))
        goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the lookahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
  yystate = yyn;
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  *++yyvsp = yylval;
  YY_IGNORE_MAYBE_UNINITIALIZED_END

  /* Discard the shifted token.  */
  yychar = C_EMPTY;
  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     '$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];


  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
  case 4: /* externalDefs: externalDef  */
#line 319 "cgrammar.y"
               { context_checkGlobalScope (); }
#line 4009 "cgrammar.c"
    break;

  case 5: /* externalDefs: externalDefs externalDef  */
#line 320 "cgrammar.y"
                            { context_checkGlobalScope (); }
#line 4015 "cgrammar.c"
    break;

  case 6: /* externalDef: fcnDef optSemi  */
#line 324 "cgrammar.y"
                  { uentry_clearDecl (); }
#line 4021 "cgrammar.c"
    break;

  case 7: /* externalDef: constantDecl  */
#line 325 "cgrammar.y"
                  { uentry_clearDecl (); }
#line 4027 "cgrammar.c"
    break;

  case 8: /* externalDef: fcnDecl  */
#line 326 "cgrammar.y"
                  { uentry_clearDecl (); }
#line 4033 "cgrammar.c"
    break;

  case 9: /* externalDef: iterDecl  */
#line 327 "cgrammar.y"
                  { uentry_clearDecl (); }
#line 4039 "cgrammar.c"
    break;

  case 10: /* externalDef: macroDef  */
#line 328 "cgrammar.y"
                  { uentry_clearDecl (); }
#line 4045 "cgrammar.c"
    break;

  case 11: /* externalDef: initializer  */
#line 329 "cgrammar.y"
                  { uentry_checkDecl (); exprNode_free ((yyvsp[0].expr)); }
#line 4051 "cgrammar.c"
    break;

  case 12: /* externalDef: typeDecl  */
#line 330 "cgrammar.y"
                  { uentry_checkDecl (); }
#line 4057 "cgrammar.c"
    break;

  case 13: /* externalDef: TSEMI  */
#line 331 "cgrammar.y"
                  { uentry_clearDecl (); lltok_free ((yyvsp[0].tok)); /* okay to have a null statement */ }
#line 4063 "cgrammar.c"
    break;

  case 14: /* externalDef: error  */
#line 332 "cgrammar.y"
                  { uentry_clearDecl (); }
#line 4069 "cgrammar.c"
    break;

  case 15: /* constantDecl: QCONSTANT completeTypeSpecifier NotType namedDecl NotType optSemi IsType QENDMACRO  */
#line 337 "cgrammar.y"
   { checkConstant ((yyvsp[-6].qtyp), (yyvsp[-4].ntyp)); lltok_free2 ((yyvsp[-7].tok), (yyvsp[0].tok)); }
#line 4075 "cgrammar.c"
    break;

  case 16: /* constantDecl: QCONSTANT completeTypeSpecifier NotType namedDecl NotType TASSIGN IsType init optSemi QENDMACRO  */
#line 339 "cgrammar.y"
   { checkValueConstant ((yyvsp[-8].qtyp), (yyvsp[-6].ntyp), (yyvsp[-2].expr)); lltok_free3 ((yyvsp[-9].tok), (yyvsp[-4].tok), (yyvsp[0].tok)); }
#line 4081 "cgrammar.c"
    break;

  case 17: /* $@1: %empty  */
#line 343 "cgrammar.y"
             { context_enterFunctionHeader (); }
#line 4087 "cgrammar.c"
    break;

  case 18: /* fcnDecl: QFUNCTION $@1 plainFcn optSemi QENDMACRO  */
#line 344 "cgrammar.y"
   {
     declareStaticFunction ((yyvsp[-2].ntyp)); context_quietExitFunction ();
     context_exitFunctionHeader ();
     lltok_free2 ((yyvsp[-4].tok), (yyvsp[0].tok)); /*!*/
   }
#line 4097 "cgrammar.c"
    break;

  case 19: /* plainFcn: plainNamedDecl  */
#line 353 "cgrammar.y"
   {
     qtype qint = qtype_create (ctype_int);
     (yyval.ntyp) = idDecl_fixBase ((yyvsp[0].ntyp), qint);
     qtype_free (qint);
   }
#line 4107 "cgrammar.c"
    break;

  case 20: /* plainFcn: completeTypeSpecifier NotType plainNamedDecl  */
#line 359 "cgrammar.y"
   { (yyval.ntyp) = idDecl_fixBase ((yyvsp[0].ntyp), (yyvsp[-2].qtyp)); }
#line 4113 "cgrammar.c"
    break;

  case 22: /* plainNamedDecl: pointers plainNamedDeclBase  */
#line 365 "cgrammar.y"
   { (yyval.ntyp) = (yyvsp[0].ntyp); qtype_adjustPointers ((yyvsp[-1].pointers), idDecl_getTyp ((yyval.ntyp))); }
#line 4119 "cgrammar.c"
    break;

  case 23: /* namedDeclBase: newId  */
#line 369 "cgrammar.y"
         { (yyval.ntyp) = idDecl_create ((yyvsp[0].cname), qtype_unknown ()); }
#line 4125 "cgrammar.c"
    break;

  case 24: /* namedDeclBase: IsType TLPAREN NotType namedDecl IsType TRPAREN  */
#line 371 "cgrammar.y"
   { (yyval.ntyp) = idDecl_expectFunction ((yyvsp[-2].ntyp)); lltok_free2 ((yyvsp[-4].tok), (yyvsp[0].tok)); }
#line 4131 "cgrammar.c"
    break;

  case 25: /* namedDeclBase: namedDeclBase TLSQBR TRSQBR  */
#line 373 "cgrammar.y"
   { (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-2].ntyp), ctype_makeInnerArray (idDecl_getCtype ((yyvsp[-2].ntyp)))); lltok_free2 ((yyvsp[-1].tok), (yyvsp[0].tok)); }
#line 4137 "cgrammar.c"
    break;

  case 26: /* namedDeclBase: namedDeclBase TLSQBR IsType constantExpr TRSQBR NotType  */
#line 375 "cgrammar.y"
   {
     exprNode_findValue ((yyvsp[-2].expr));
     idDecl_notExpectingFunction ((yyvsp[-5].ntyp));

     if (exprNode_hasValue ((yyvsp[-2].expr)))
       {
	 (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-5].ntyp), ctype_makeInnerFixedArray (idDecl_getCtype ((yyvsp[-5].ntyp)),
								  exprNode_getLongValue ((yyvsp[-2].expr))));
       }
     else
       {
	 (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-5].ntyp), ctype_makeInnerArray (idDecl_getCtype ((yyvsp[-5].ntyp))));
       }

     lltok_free2 ((yyvsp[-4].tok), (yyvsp[-1].tok));
   }
#line 4158 "cgrammar.c"
    break;

  case 27: /* $@2: %empty  */
#line 392 "cgrammar.y"
   { setCurrentParams (uentryList_missingParams); }
#line 4164 "cgrammar.c"
    break;

  case 28: /* namedDeclBase: namedDeclBase PushType TLPAREN TRPAREN $@2 functionClauses  */
#line 394 "cgrammar.y"
   { /* need to support globals and modifies here! */
     functionClauseList fcl;
     ctype ct = ctype_makeFunction (idDecl_getCtype ((yyvsp[-5].ntyp)),
				    uentryList_makeMissingParams ());
     (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-5].ntyp), ct);
     setImplicitfcnConstraints();
     fcl = functionClauseList_setImplicitConstraints((yyvsp[0].funcclauselist));
     idDecl_addClauses ((yyval.ntyp), fcl);
     context_popLoc ();
     lltok_free2 ((yyvsp[-3].tok), (yyvsp[-2].tok));
   }
#line 4180 "cgrammar.c"
    break;

  case 29: /* $@3: %empty  */
#line 406 "cgrammar.y"
   { setCurrentParams ((yyvsp[-1].entrylist)); }
#line 4186 "cgrammar.c"
    break;

  case 30: /* namedDeclBase: namedDeclBase PushType TLPAREN genericParamList TRPAREN $@3 functionClauses  */
#line 408 "cgrammar.y"
   {
     functionClauseList fcl;
     setImplicitfcnConstraints ();
     clearCurrentParams ();
     (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-6].ntyp), ctype_makeFunction (idDecl_getCtype ((yyvsp[-6].ntyp)), (yyvsp[-3].entrylist)));
     fcl = functionClauseList_setImplicitConstraints((yyvsp[0].funcclauselist));
     idDecl_addClauses ((yyval.ntyp), fcl);
     context_popLoc ();
     lltok_free2 ((yyvsp[-4].tok), (yyvsp[-2].tok));
   }
#line 4201 "cgrammar.c"
    break;

  case 31: /* plainNamedDeclBase: newId  */
#line 421 "cgrammar.y"
         { (yyval.ntyp) = idDecl_create ((yyvsp[0].cname), qtype_unknown ()); }
#line 4207 "cgrammar.c"
    break;

  case 32: /* plainNamedDeclBase: IsType TLPAREN NotType plainNamedDecl IsType TRPAREN  */
#line 423 "cgrammar.y"
   { (yyval.ntyp) = idDecl_expectFunction ((yyvsp[-2].ntyp)); lltok_free2 ((yyvsp[-4].tok), (yyvsp[0].tok)); }
#line 4213 "cgrammar.c"
    break;

  case 33: /* plainNamedDeclBase: plainNamedDeclBase TLSQBR TRSQBR  */
#line 425 "cgrammar.y"
   { (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-2].ntyp), ctype_makeInnerArray (idDecl_getCtype ((yyvsp[-2].ntyp))));
     lltok_free2 ((yyvsp[-1].tok), (yyvsp[0].tok));
   }
#line 4221 "cgrammar.c"
    break;

  case 34: /* plainNamedDeclBase: plainNamedDeclBase TLSQBR IsType constantExpr TRSQBR NotType  */
#line 429 "cgrammar.y"
   {
     (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-5].ntyp), ctype_makeInnerFixedArray (idDecl_getCtype ((yyvsp[-5].ntyp)), exprNode_getLongValue ((yyvsp[-2].expr))));
     lltok_free2 ((yyvsp[-4].tok), (yyvsp[-1].tok));
   }
#line 4230 "cgrammar.c"
    break;

  case 35: /* $@4: %empty  */
#line 434 "cgrammar.y"
   { setCurrentParams (uentryList_missingParams); }
#line 4236 "cgrammar.c"
    break;

  case 36: /* plainNamedDeclBase: plainNamedDeclBase PushType TLPAREN TRPAREN $@4 functionClausesPlain  */
#line 436 "cgrammar.y"
   {
     ctype ct = ctype_makeFunction (idDecl_getCtype ((yyvsp[-5].ntyp)),
				    uentryList_makeMissingParams ());

     (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-5].ntyp), ct);
     idDecl_addClauses ((yyval.ntyp), (yyvsp[0].funcclauselist));
     context_popLoc ();
     lltok_free2 ((yyvsp[-3].tok), (yyvsp[-2].tok));
   }
#line 4250 "cgrammar.c"
    break;

  case 37: /* $@5: %empty  */
#line 446 "cgrammar.y"
   { setCurrentParams ((yyvsp[-1].entrylist)); }
#line 4256 "cgrammar.c"
    break;

  case 38: /* plainNamedDeclBase: plainNamedDeclBase PushType TLPAREN genericParamList TRPAREN $@5 functionClausesPlain  */
#line 448 "cgrammar.y"
   {
     clearCurrentParams ();
     (yyval.ntyp) = idDecl_replaceCtype ((yyvsp[-6].ntyp), ctype_makeFunction (idDecl_getCtype ((yyvsp[-6].ntyp)), (yyvsp[-3].entrylist)));
     idDecl_addClauses ((yyval.ntyp), (yyvsp[0].funcclauselist));
     context_popLoc ();
     lltok_free ((yyvsp[-4].tok));
     /*!! lltok_free2 ($3, $5); */
   }
#line 4269 "cgrammar.c"
    break;

  case 39: /* $@6: %empty  */
#line 460 "cgrammar.y"
   { setCurrentParams ((yyvsp[-1].entrylist)); }
#line 4275 "cgrammar.c"
    break;

  case 40: /* $@7: %empty  */
#line 461 "cgrammar.y"
   { clearCurrentParams (); }
#line 4281 "cgrammar.c"
    break;

  case 41: /* iterDecl: QITER newId TLPAREN genericParamList TRPAREN $@6 functionClausesPlain $@7 optSemi QENDMACRO  */
#line 462 "cgrammar.y"
   { declareCIter ((yyvsp[-8].cname), (yyvsp[-6].entrylist));
     lltok_free3 ((yyvsp[-9].tok), (yyvsp[-7].tok), (yyvsp[-5].tok));
   }
#line 4289 "cgrammar.c"
    break;

  case 42: /* macroDef: LLMACRO macroBody TENDMACRO  */
#line 468 "cgrammar.y"
                                   { exprNode_checkMacroBody ((yyvsp[-1].expr)); lltok_free2 ((yyvsp[-2].tok), (yyvsp[0].tok)); }
#line 4295 "cgrammar.c"
    break;

  case 43: /* macroDef: LLMACROITER iterBody TENDMACRO  */
#line 469 "cgrammar.y"
                                   { exprNode_checkIterBody ((yyvsp[-1].expr)); lltok_free2 ((yyvsp[-2].tok), (yyvsp[0].tok)); }
#line 4301 "cgrammar.c"
    break;

  case 44: /* macroDef: LLMACROEND endBody TENDMACRO  */
#line 470 "cgrammar.y"
                                   { exprNode_checkIterEnd ((yyvsp[-1].expr)); lltok_free2 ((yyvsp[-2].tok), (yyvsp[0].tok)); }
#line 4307 "cgrammar.c"
    break;

  case 45: /* macroDef: LLMACRO TENDMACRO  */
#line 471 "cgrammar.y"
                                   { exprChecks_checkEmptyMacroBody (); lltok_free2 ((yyvsp[-1].tok), (yyvsp[0].tok)); }
#line 4313 "cgrammar.c"
    break;

  case 46: /* metaStateConstraint: metaStateSpecifier TASSIGN metaStateExpression  */
#line 476 "cgrammar.y"
   { (yyval.msconstraint) = metaStateConstraint_create ((yyvsp[-2].msspec), (yyvsp[0].msexpr)); lltok_free ((yyvsp[-1].tok)); }
#line 4319 "cgrammar.c"
    break;

  case 47: /* $@8: %empty  */
#line 480 "cgrammar.y"
                         { cscannerHelp_expectingMetaStateName (); }
#line 4325 "cgrammar.c"
    break;

  case 48: /* metaStateSpecifier: BufConstraintSrefExpr $@8 TCOLON METASTATE_NAME  */
#line 481 "cgrammar.y"
   { cscannerHelp_clearExpectingMetaStateName ();
     (yyval.msspec) = metaStateSpecifier_create ((yyvsp[-3].sr), (yyvsp[0].msinfo));
     lltok_free ((yyvsp[-1].tok));
   }
#line 4334 "cgrammar.c"
    break;

  case 49: /* $@9: %empty  */
#line 485 "cgrammar.y"
                { cscannerHelp_expectingMetaStateName (); }
#line 4340 "cgrammar.c"
    break;

  case 50: /* metaStateSpecifier: CTOK_ELIPSIS $@9 TCOLON METASTATE_NAME  */
#line 486 "cgrammar.y"
   { cscannerHelp_clearExpectingMetaStateName ();
     (yyval.msspec) = metaStateSpecifier_createElipsis ((yyvsp[0].msinfo));
     lltok_free2 ((yyvsp[-3].tok), (yyvsp[-1].tok));
   }
#line 4349 "cgrammar.c"
    break;

  case 51: /* metaStateExpression: metaStateSpecifier  */
#line 493 "cgrammar.y"
                      { (yyval.msexpr) = metaStateExpression_create ((yyvsp[0].msspec)); }
#line 4355 "cgrammar.c"
    break;

  case 52: /* metaStateExpression: metaStateSpecifier TBAR metaStateExpression  */
#line 494 "cgrammar.y"
                                               { (yyval.msexpr) = metaStateExpression_createMerge ((yyvsp[-2].msspec), (yyvsp[0].msexpr)); lltok_free ((yyvsp[-1].tok)); }
#line 4361 "cgrammar.c"
    break;

  case 53: /* BufConstraintList: BufConstraint  */
#line 498 "cgrammar.y"
                 { (yyval.conL) = constraintList_single ((yyvsp[0].con)); }
#line 4367 "cgrammar.c"
    break;

  case 54: /* BufConstraintList: BufConstraint BufConstraintSeparator BufConstraintList  */
#line 499 "cgrammar.y"
                                                          { (yyval.conL) = constraintList_add ((yyvsp[0].conL), (yyvsp[-2].con)); }
#line 4373 "cgrammar.c"
    break;

  case 55: /* BufConstraint: BufConstraintExpr BufRelationalOp BufConstraintExpr  */
#line 503 "cgrammar.y"
                                                       { (yyval.con) = makeConstraintParse3 ((yyvsp[-2].conE), (yyvsp[-1].tok), (yyvsp[0].conE)); }
#line 4379 "cgrammar.c"
    break;

  case 56: /* BufConstraintExpr: CCONSTANT  */
#line 508 "cgrammar.y"
   { (yyval.conE) = constraintExpr_makeIntLiteral (exprNode_getLongValue ((yyvsp[0].expr))); }
#line 4385 "cgrammar.c"
    break;

  case 57: /* BufConstraintExpr: BufConstraintSrefExpr  */
#line 510 "cgrammar.y"
   { (yyval.conE) =  constraintExpr_makeTermsRef ((yyvsp[0].sr)); }
#line 4391 "cgrammar.c"
    break;

  case 58: /* BufConstraintExpr: BufUnaryOp TLPAREN BufConstraintSrefExpr TRPAREN  */
#line 512 "cgrammar.y"
   { (yyval.conE) = constraintExpr_parseMakeUnaryOp ((yyvsp[-3].tok), constraintExpr_makeTermsRef ((yyvsp[-1].sr))); }
#line 4397 "cgrammar.c"
    break;

  case 59: /* BufConstraintExpr: TLPAREN BufConstraintExpr BufBinaryOp BufConstraintExpr TRPAREN  */
#line 514 "cgrammar.y"
   { (yyval.conE) = constraintExpr_parseMakeBinaryOp ((yyvsp[-3].conE), (yyvsp[-2].tok), (yyvsp[-1].conE)); }
#line 4403 "cgrammar.c"
    break;

  case 60: /* BufConstraintSrefExpr: id  */
#line 519 "cgrammar.y"
   { /*@-onlytrans@*/ (yyval.sr) = checkbufferConstraintClausesId ((yyvsp[0].entry)); /*@=onlytrans@*/ /*@i523@*/ }
#line 4409 "cgrammar.c"
    break;

  case 61: /* BufConstraintSrefExpr: NEW_IDENTIFIER  */
#line 521 "cgrammar.y"
   { (yyval.sr) = fixStateClausesId ((yyvsp[0].cname)); }
#line 4415 "cgrammar.c"
    break;

  case 62: /* BufConstraintSrefExpr: BufConstraintSrefExpr TLSQBR TRSQBR  */
#line 523 "cgrammar.y"
   { (yyval.sr) = sRef_makeAnyArrayFetch ((yyvsp[-2].sr)); }
#line 4421 "cgrammar.c"
    break;

  case 63: /* BufConstraintSrefExpr: BufConstraintSrefExpr TLSQBR CCONSTANT TRSQBR  */
#line 525 "cgrammar.y"
   { (yyval.sr) = sRef_makeArrayFetchKnown ((yyvsp[-3].sr), exprNode_getLongValue ((yyvsp[-1].expr))); }
#line 4427 "cgrammar.c"
    break;

  case 64: /* BufConstraintSrefExpr: TMULT BufConstraintSrefExpr  */
#line 527 "cgrammar.y"
   { (yyval.sr) = sRef_constructPointer ((yyvsp[0].sr)); }
#line 4433 "cgrammar.c"
    break;

  case 65: /* BufConstraintSrefExpr: TLPAREN BufConstraintSrefExpr TRPAREN  */
#line 529 "cgrammar.y"
   { (yyval.sr) = (yyvsp[-1].sr); }
#line 4439 "cgrammar.c"
    break;

  case 66: /* BufConstraintSrefExpr: BufConstraintSrefExpr TDOT newId  */
#line 531 "cgrammar.y"
   { cstring_markOwned ((yyvsp[0].cname)); (yyval.sr) = sRef_buildField ((yyvsp[-2].sr), (yyvsp[0].cname)); }
#line 4445 "cgrammar.c"
    break;

  case 67: /* BufConstraintSrefExpr: BufConstraintSrefExpr ARROW_OP newId  */
#line 533 "cgrammar.y"
   { cstring_markOwned ((yyvsp[0].cname)); (yyval.sr) = sRef_makeArrow ((yyvsp[-2].sr), (yyvsp[0].cname)); }
#line 4451 "cgrammar.c"
    break;

  case 77: /* functionClauses: %empty  */
#line 562 "cgrammar.y"
          { (yyval.funcclauselist) = functionClauseList_new (); }
#line 4457 "cgrammar.c"
    break;

  case 78: /* functionClauses: functionClause functionClauses  */
#line 564 "cgrammar.y"
   { (yyval.funcclauselist) = functionClauseList_prepend ((yyvsp[0].funcclauselist), (yyvsp[-1].funcclause)); }
#line 4463 "cgrammar.c"
    break;

  case 79: /* functionClausesPlain: %empty  */
#line 572 "cgrammar.y"
          { (yyval.funcclauselist) = functionClauseList_new (); }
#line 4469 "cgrammar.c"
    break;

  case 80: /* functionClausesPlain: functionClausePlain functionClausesPlain  */
#line 574 "cgrammar.y"
   { (yyval.funcclauselist) = functionClauseList_prepend ((yyvsp[0].funcclauselist), (yyvsp[-1].funcclause)); }
#line 4475 "cgrammar.c"
    break;

  case 81: /* functionClause: globalsClause  */
#line 578 "cgrammar.y"
                   { (yyval.funcclause) = functionClause_createGlobals ((yyvsp[0].globsclause)); }
#line 4481 "cgrammar.c"
    break;

  case 82: /* functionClause: modifiesClause  */
#line 579 "cgrammar.y"
                   { (yyval.funcclause) = functionClause_createModifies ((yyvsp[0].modsclause)); }
#line 4487 "cgrammar.c"
    break;

  case 83: /* functionClause: nomodsClause  */
#line 580 "cgrammar.y"
                   { (yyval.funcclause) = functionClause_createModifies ((yyvsp[0].modsclause)); }
#line 4493 "cgrammar.c"
    break;

  case 84: /* functionClause: stateClause  */
#line 581 "cgrammar.y"
                   { (yyval.funcclause) = functionClause_createState ((yyvsp[0].stateclause)); }
#line 4499 "cgrammar.c"
    break;

  case 85: /* functionClause: conditionClause  */
#line 582 "cgrammar.y"
                   { (yyval.funcclause) = (yyvsp[0].funcclause); }
#line 4505 "cgrammar.c"
    break;

  case 86: /* functionClause: warnClause  */
#line 583 "cgrammar.y"
                   { (yyval.funcclause) = functionClause_createWarn ((yyvsp[0].warnclause)); }
#line 4511 "cgrammar.c"
    break;

  case 87: /* functionClausePlain: globalsClausePlain  */
#line 587 "cgrammar.y"
                        { (yyval.funcclause) = functionClause_createGlobals ((yyvsp[0].globsclause)); }
#line 4517 "cgrammar.c"
    break;

  case 88: /* functionClausePlain: modifiesClausePlain  */
#line 588 "cgrammar.y"
                        { (yyval.funcclause) = functionClause_createModifies ((yyvsp[0].modsclause)); }
#line 4523 "cgrammar.c"
    break;

  case 89: /* functionClausePlain: nomodsClause  */
#line 589 "cgrammar.y"
                        { (yyval.funcclause) = functionClause_createModifies ((yyvsp[0].modsclause)); }
#line 4529 "cgrammar.c"
    break;

  case 90: /* functionClausePlain: stateClausePlain  */
#line 590 "cgrammar.y"
                        { (yyval.funcclause) = functionClause_createState ((yyvsp[0].stateclause)); }
#line 4535 "cgrammar.c"
    break;

  case 91: /* functionClausePlain: conditionClausePlain  */
#line 591 "cgrammar.y"
                        { (yyval.funcclause) = (yyvsp[0].funcclause); }
#line 4541 "cgrammar.c"
    break;

  case 92: /* functionClausePlain: warnClausePlain  */
#line 592 "cgrammar.y"
                        { (yyval.funcclause) = functionClause_createWarn ((yyvsp[0].warnclause)); }
#line 4547 "cgrammar.c"
    break;

  case 93: /* globalsClause: globalsClausePlain QENDMACRO  */
#line 596 "cgrammar.y"
                                { (yyval.globsclause) = (yyvsp[-1].globsclause); }
#line 4553 "cgrammar.c"
    break;

  case 94: /* $@10: %empty  */
#line 600 "cgrammar.y"
            { setProcessingGlobalsList (); }
#line 4559 "cgrammar.c"
    break;

  case 95: /* globalsClausePlain: QGLOBALS $@10 globIdList optSemi  */
#line 602 "cgrammar.y"
   {
     unsetProcessingGlobals ();
     (yyval.globsclause) = globalsClause_create ((yyvsp[-3].tok), (yyvsp[-1].globset));
   }
#line 4568 "cgrammar.c"
    break;

  case 96: /* nomodsClause: QNOMODS  */
#line 609 "cgrammar.y"
           { (yyval.modsclause) = modifiesClause_createNoMods ((yyvsp[0].tok)); }
#line 4574 "cgrammar.c"
    break;

  case 97: /* modifiesClause: modifiesClausePlain QENDMACRO  */
#line 613 "cgrammar.y"
                                 { (yyval.modsclause) = (yyvsp[-1].modsclause); }
#line 4580 "cgrammar.c"
    break;

  case 98: /* $@11: %empty  */
#line 618 "cgrammar.y"
   {
     context_setProtectVars (); enterParamsTemp ();
     sRef_setGlobalScopeSafe ();
   }
#line 4589 "cgrammar.c"
    break;

  case 99: /* modifiesClausePlain: QMODIFIES $@11 locModifies  */
#line 623 "cgrammar.y"
   {
     exitParamsTemp ();
     sRef_clearGlobalScopeSafe ();
     context_releaseVars ();
     (yyval.modsclause) = modifiesClause_create ((yyvsp[-2].tok), (yyvsp[0].srset));
   }
#line 4600 "cgrammar.c"
    break;

  case 100: /* flagSpec: flagId  */
#line 633 "cgrammar.y"
   { (yyval.flagspec) = flagSpec_createPlain ((yyvsp[0].cname)); }
#line 4606 "cgrammar.c"
    break;

  case 101: /* flagSpec: flagId TBAR flagSpec  */
#line 635 "cgrammar.y"
   { (yyval.flagspec) = flagSpec_createOr ((yyvsp[-2].cname), (yyvsp[0].flagspec)); }
#line 4612 "cgrammar.c"
    break;

  case 103: /* optWarnClause: %empty  */
#line 643 "cgrammar.y"
          { (yyval.warnclause) = warnClause_undefined; }
#line 4618 "cgrammar.c"
    break;

  case 105: /* warnClause: warnClausePlain QENDMACRO  */
#line 648 "cgrammar.y"
                             { (yyval.warnclause) = (yyvsp[-1].warnclause); }
#line 4624 "cgrammar.c"
    break;

  case 106: /* warnClausePlain: QWARN flagSpec cconstantExpr  */
#line 653 "cgrammar.y"
   {
     llassert (exprNode_knownStringValue ((yyvsp[0].expr)));
     (yyval.warnclause) = warnClause_create ((yyvsp[-2].tok), (yyvsp[-1].flagspec), cstring_copy (multiVal_forceString (exprNode_getValue ((yyvsp[0].expr)))));
     exprNode_free ((yyvsp[0].expr));
   }
#line 4634 "cgrammar.c"
    break;

  case 107: /* warnClausePlain: QWARN flagSpec  */
#line 659 "cgrammar.y"
   { (yyval.warnclause) = warnClause_create ((yyvsp[-1].tok), (yyvsp[0].flagspec), cstring_undefined); }
#line 4640 "cgrammar.c"
    break;

  case 108: /* globIdList: globIdListExpr  */
#line 663 "cgrammar.y"
                                      { (yyval.globset) = globSet_single ((yyvsp[0].sr)); }
#line 4646 "cgrammar.c"
    break;

  case 109: /* globIdList: globIdList TCOMMA globIdListExpr  */
#line 664 "cgrammar.y"
                                      { (yyval.globset) = globSet_insert ((yyvsp[-2].globset), (yyvsp[0].sr)); }
#line 4652 "cgrammar.c"
    break;

  case 110: /* globIdListExpr: optGlobQuals globId  */
#line 668 "cgrammar.y"
                       { (yyval.sr) = clabstract_createGlobal ((yyvsp[0].sr), (yyvsp[-1].tquallist)); }
#line 4658 "cgrammar.c"
    break;

  case 111: /* optGlobQuals: %empty  */
#line 672 "cgrammar.y"
                         { (yyval.tquallist) = qualList_undefined; }
#line 4664 "cgrammar.c"
    break;

  case 112: /* optGlobQuals: globQual optGlobQuals  */
#line 673 "cgrammar.y"
                         { (yyval.tquallist) = qualList_add ((yyvsp[0].tquallist), (yyvsp[-1].typequal)); }
#line 4670 "cgrammar.c"
    break;

  case 113: /* globId: id  */
#line 677 "cgrammar.y"
                  { (yyval.sr) = uentry_getSref ((yyvsp[0].entry)); }
#line 4676 "cgrammar.c"
    break;

  case 114: /* globId: NEW_IDENTIFIER  */
#line 678 "cgrammar.y"
                  { (yyval.sr) = clabstract_unrecognizedGlobal ((yyvsp[0].cname)); }
#line 4682 "cgrammar.c"
    break;

  case 115: /* globId: initializer  */
#line 679 "cgrammar.y"
                  { (yyval.sr) = clabstract_checkGlobal ((yyvsp[0].expr)); }
#line 4688 "cgrammar.c"
    break;

  case 116: /* globQual: QUNDEF  */
#line 683 "cgrammar.y"
            { (yyval.typequal) = qual_createUndef (); }
#line 4694 "cgrammar.c"
    break;

  case 117: /* globQual: QKILLED  */
#line 684 "cgrammar.y"
            { (yyval.typequal) = qual_createKilled (); }
#line 4700 "cgrammar.c"
    break;

  case 118: /* globQual: QOUT  */
#line 685 "cgrammar.y"
            { (yyval.typequal) = qual_createOut (); }
#line 4706 "cgrammar.c"
    break;

  case 119: /* globQual: QIN  */
#line 686 "cgrammar.y"
            { (yyval.typequal) = qual_createIn (); }
#line 4712 "cgrammar.c"
    break;

  case 120: /* globQual: QPARTIAL  */
#line 687 "cgrammar.y"
            { (yyval.typequal) = qual_createPartial (); }
#line 4718 "cgrammar.c"
    break;

  case 128: /* fcnHdr: namedDecl  */
#line 705 "cgrammar.y"
   {
     qtype qint = qtype_create (ctype_int);
     clabstract_declareFunction (idDecl_fixBase ((yyvsp[0].ntyp), qint));
     qtype_free (qint);
   }
#line 4728 "cgrammar.c"
    break;

  case 129: /* fcnHdr: completeTypeSpecifier NotType namedDecl  */
#line 711 "cgrammar.y"
   {
     clabstract_declareFunction (idDecl_fixBase ((yyvsp[0].ntyp), (yyvsp[-2].qtyp)));
   }
#line 4736 "cgrammar.c"
    break;

  case 130: /* optInitializerList: %empty  */
#line 718 "cgrammar.y"
   { checkDoneParams (); }
#line 4742 "cgrammar.c"
    break;

  case 131: /* $@12: %empty  */
#line 719 "cgrammar.y"
   { context_enterOldStyleScope (); }
#line 4748 "cgrammar.c"
    break;

  case 132: /* optInitializerList: $@12 initializerList  */
#line 720 "cgrammar.y"
   { oldStyleDoneParams (); }
#line 4754 "cgrammar.c"
    break;

  case 133: /* $@13: %empty  */
#line 721 "cgrammar.y"
   { context_enterOldStyleScope (); }
#line 4760 "cgrammar.c"
    break;

  case 134: /* optInitializerList: $@13 VA_DCL  */
#line 722 "cgrammar.y"
   { doVaDcl (); oldStyleDoneParams (); }
#line 4766 "cgrammar.c"
    break;

  case 135: /* $@14: %empty  */
#line 726 "cgrammar.y"
   { context_enterInnerContext (); }
#line 4772 "cgrammar.c"
    break;

  case 136: /* fcnBody: $@14 compoundStmtAux  */
#line 727 "cgrammar.y"
   {
     exprNode_checkFunctionBody ((yyvsp[0].expr));
     context_exitInner ((yyvsp[0].expr));
     (yyval.expr) = (yyvsp[0].expr);
   }
#line 4782 "cgrammar.c"
    break;

  case 137: /* fcnDef: fcnHdr optInitializerList fcnBody  */
#line 736 "cgrammar.y"
   {
     context_setFunctionDefined (exprNode_loc ((yyvsp[0].expr)));
     exprNode_checkFunction (context_getHeader (),  (yyvsp[0].expr));
     context_exitFunction ();
   }
#line 4792 "cgrammar.c"
    break;

  case 138: /* locModifies: modList optSemi  */
#line 744 "cgrammar.y"
                             { (yyval.srset) = (yyvsp[-1].srset); }
#line 4798 "cgrammar.c"
    break;

  case 139: /* locModifies: optSemi  */
#line 745 "cgrammar.y"
                             { (yyval.srset) = sRefSet_new (); }
#line 4804 "cgrammar.c"
    break;

  case 140: /* modListExpr: id  */
#line 749 "cgrammar.y"
                                   { (yyval.sr) = uentry_getSref ((yyvsp[0].entry)); checkModifiesId ((yyvsp[0].entry)); }
#line 4810 "cgrammar.c"
    break;

  case 141: /* modListExpr: NEW_IDENTIFIER  */
#line 750 "cgrammar.y"
                                   { (yyval.sr) = fixModifiesId ((yyvsp[0].cname)); }
#line 4816 "cgrammar.c"
    break;

  case 142: /* modListExpr: modListExpr TLSQBR TRSQBR  */
#line 751 "cgrammar.y"
                                   { (yyval.sr) = modListArrayFetch ((yyvsp[-2].sr), sRef_undefined); }
#line 4822 "cgrammar.c"
    break;

  case 143: /* modListExpr: modListExpr TLSQBR mExpr TRSQBR  */
#line 752 "cgrammar.y"
                                   { (yyval.sr) = modListArrayFetch ((yyvsp[-3].sr), (yyvsp[-1].sr)); }
#line 4828 "cgrammar.c"
    break;

  case 144: /* modListExpr: TMULT modListExpr  */
#line 753 "cgrammar.y"
                                   { (yyval.sr) = modListPointer ((yyvsp[0].sr)); }
#line 4834 "cgrammar.c"
    break;

  case 145: /* modListExpr: TLPAREN modListExpr TRPAREN  */
#line 754 "cgrammar.y"
                                   { (yyval.sr) = (yyvsp[-1].sr); }
#line 4840 "cgrammar.c"
    break;

  case 146: /* modListExpr: modListExpr TDOT newId  */
#line 755 "cgrammar.y"
                                   { (yyval.sr) = modListFieldAccess ((yyvsp[-2].sr), (yyvsp[0].cname)); }
#line 4846 "cgrammar.c"
    break;

  case 147: /* modListExpr: modListExpr ARROW_OP newId  */
#line 756 "cgrammar.y"
                                   { (yyval.sr) = modListArrowAccess ((yyvsp[-2].sr), (yyvsp[0].cname)); }
#line 4852 "cgrammar.c"
    break;

  case 148: /* mExpr: modListExpr  */
#line 760 "cgrammar.y"
                   { (yyval.sr) = (yyvsp[0].sr); }
#line 4858 "cgrammar.c"
    break;

  case 149: /* mExpr: cconstantExpr  */
#line 761 "cgrammar.y"
                   { (yyval.sr) = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ }
#line 4864 "cgrammar.c"
    break;

  case 150: /* modList: modListExpr  */
#line 766 "cgrammar.y"
                              { (yyval.srset) = sRefSet_single ((yyvsp[0].sr)); }
#line 4870 "cgrammar.c"
    break;

  case 151: /* modList: modList TCOMMA modListExpr  */
#line 767 "cgrammar.y"
                              { (yyval.srset) = sRefSet_insert ((yyvsp[-2].srset), (yyvsp[0].sr)); }
#line 4876 "cgrammar.c"
    break;

  case 152: /* specClauseListExpr: id  */
#line 772 "cgrammar.y"
   { (yyval.sr) = checkStateClausesId ((yyvsp[0].entry)); }
#line 4882 "cgrammar.c"
    break;

  case 153: /* specClauseListExpr: NEW_IDENTIFIER  */
#line 774 "cgrammar.y"
   { (yyval.sr) = fixStateClausesId ((yyvsp[0].cname)); }
#line 4888 "cgrammar.c"
    break;

  case 154: /* specClauseListExpr: specClauseListExpr TLSQBR TRSQBR  */
#line 775 "cgrammar.y"
                                          { (yyval.sr) = sRef_makeAnyArrayFetch ((yyvsp[-2].sr)); }
#line 4894 "cgrammar.c"
    break;

  case 155: /* specClauseListExpr: specClauseListExpr TLSQBR mExpr TRSQBR  */
#line 776 "cgrammar.y"
                                          { (yyval.sr) = sRef_makeAnyArrayFetch ((yyvsp[-3].sr)); }
#line 4900 "cgrammar.c"
    break;

  case 156: /* specClauseListExpr: TMULT specClauseListExpr  */
#line 777 "cgrammar.y"
                                          { (yyval.sr) = sRef_constructPointer ((yyvsp[0].sr)); }
#line 4906 "cgrammar.c"
    break;

  case 157: /* specClauseListExpr: TLPAREN specClauseListExpr TRPAREN  */
#line 778 "cgrammar.y"
                                          { (yyval.sr) = (yyvsp[-1].sr); }
#line 4912 "cgrammar.c"
    break;

  case 158: /* specClauseListExpr: specClauseListExpr TDOT newId  */
#line 779 "cgrammar.y"
                                          { cstring_markOwned ((yyvsp[0].cname));
					    (yyval.sr) = sRef_buildField ((yyvsp[-2].sr), (yyvsp[0].cname)); }
#line 4919 "cgrammar.c"
    break;

  case 159: /* specClauseListExpr: specClauseListExpr ARROW_OP newId  */
#line 781 "cgrammar.y"
                                          { cstring_markOwned ((yyvsp[0].cname));
                                            (yyval.sr) = sRef_makeArrow ((yyvsp[-2].sr), (yyvsp[0].cname)); }
#line 4926 "cgrammar.c"
    break;

  case 160: /* optSpecClauseList: %empty  */
#line 786 "cgrammar.y"
          { (yyval.srset) = sRefSet_undefined; }
#line 4932 "cgrammar.c"
    break;

  case 162: /* specClauseList: specClauseListExpr  */
#line 792 "cgrammar.y"
   { (yyval.srset) = sRef_isValid ((yyvsp[0].sr)) ? sRefSet_single ((yyvsp[0].sr)) : sRefSet_undefined; }
#line 4938 "cgrammar.c"
    break;

  case 163: /* specClauseList: specClauseList TCOMMA specClauseListExpr  */
#line 794 "cgrammar.y"
    { (yyval.srset) = sRef_isValid ((yyvsp[0].sr)) ? sRefSet_insert ((yyvsp[-2].srset), (yyvsp[0].sr)) : (yyvsp[-2].srset); }
#line 4944 "cgrammar.c"
    break;

  case 164: /* primaryExpr: id  */
#line 798 "cgrammar.y"
      { (yyval.expr) = exprNode_fromIdentifier ((yyvsp[0].entry)); }
#line 4950 "cgrammar.c"
    break;

  case 165: /* primaryExpr: NEW_IDENTIFIER  */
#line 799 "cgrammar.y"
                  { (yyval.expr) = exprNode_fromUIO ((yyvsp[0].cname)); }
#line 4956 "cgrammar.c"
    break;

  case 167: /* primaryExpr: TLPAREN expr TRPAREN  */
#line 801 "cgrammar.y"
                        { (yyval.expr) = exprNode_addParens ((yyvsp[-2].tok), (yyvsp[-1].expr)); }
#line 4962 "cgrammar.c"
    break;

  case 168: /* primaryExpr: QEXTENSION  */
#line 802 "cgrammar.y"
              { (yyval.expr) = exprNode_makeError (); }
#line 4968 "cgrammar.c"
    break;

  case 169: /* $@15: %empty  */
#line 803 "cgrammar.y"
           { exprChecks_inCompoundStatementExpression (); }
#line 4974 "cgrammar.c"
    break;

  case 170: /* primaryExpr: TLPAREN $@15 compoundStmt TRPAREN  */
#line 805 "cgrammar.y"
   { exprChecks_leaveCompoundStatementExpression (); (yyval.expr) = exprNode_compoundStatementExpression ((yyvsp[-3].tok), (yyvsp[-1].expr)); }
#line 4980 "cgrammar.c"
    break;

  case 172: /* postfixExpr: postfixExpr TLSQBR expr TRSQBR  */
#line 810 "cgrammar.y"
                                  { (yyval.expr) = exprNode_arrayFetch ((yyvsp[-3].expr), (yyvsp[-1].expr)); }
#line 4986 "cgrammar.c"
    break;

  case 173: /* postfixExpr: postfixExpr TLPAREN TRPAREN  */
#line 811 "cgrammar.y"
                               { (yyval.expr) = exprNode_functionCall ((yyvsp[-2].expr), exprNodeList_new ()); }
#line 4992 "cgrammar.c"
    break;

  case 174: /* postfixExpr: postfixExpr TLPAREN argumentExprList TRPAREN  */
#line 812 "cgrammar.y"
                                                { (yyval.expr) = exprNode_functionCall ((yyvsp[-3].expr), (yyvsp[-1].exprlist)); }
#line 4998 "cgrammar.c"
    break;

  case 175: /* postfixExpr: VA_ARG TLPAREN assignExpr TCOMMA typeExpression TRPAREN  */
#line 813 "cgrammar.y"
                                                           { (yyval.expr) = exprNode_vaArg ((yyvsp[-5].tok), (yyvsp[-3].expr), (yyvsp[-1].qtyp)); }
#line 5004 "cgrammar.c"
    break;

  case 176: /* postfixExpr: postfixExpr NotType TDOT newId IsType  */
#line 814 "cgrammar.y"
                                         { (yyval.expr) = exprNode_fieldAccess ((yyvsp[-4].expr), (yyvsp[-2].tok), (yyvsp[-1].cname)); }
#line 5010 "cgrammar.c"
    break;

  case 177: /* postfixExpr: postfixExpr NotType ARROW_OP newId IsType  */
#line 815 "cgrammar.y"
                                             { (yyval.expr) = exprNode_arrowAccess ((yyvsp[-4].expr), (yyvsp[-2].tok), (yyvsp[-1].cname)); }
#line 5016 "cgrammar.c"
    break;

  case 178: /* postfixExpr: postfixExpr INC_OP  */
#line 816 "cgrammar.y"
                      { (yyval.expr) = exprNode_postOp ((yyvsp[-1].expr), (yyvsp[0].tok)); }
#line 5022 "cgrammar.c"
    break;

  case 179: /* postfixExpr: postfixExpr DEC_OP  */
#line 817 "cgrammar.y"
                      { (yyval.expr) = exprNode_postOp ((yyvsp[-1].expr), (yyvsp[0].tok)); }
#line 5028 "cgrammar.c"
    break;

  case 180: /* postfixExpr: TLPAREN typeExpression TRPAREN TLBRACE typeInitializerList optComma TRBRACE  */
#line 819 "cgrammar.y"
   { /* added for C99 */ (yyval.expr) = exprNode_undefined; /*@i87 no checking */ }
#line 5034 "cgrammar.c"
    break;

  case 181: /* argumentExprList: assignExpr  */
#line 823 "cgrammar.y"
              { (yyval.exprlist) = exprNodeList_singleton ((yyvsp[0].expr)); }
#line 5040 "cgrammar.c"
    break;

  case 182: /* argumentExprList: argumentExprList TCOMMA assignExpr  */
#line 824 "cgrammar.y"
                                      { (yyval.exprlist) = exprNodeList_push ((yyvsp[-2].exprlist), (yyvsp[0].expr)); }
#line 5046 "cgrammar.c"
    break;

  case 184: /* unaryExpr: INC_OP unaryExpr  */
#line 829 "cgrammar.y"
                    { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5052 "cgrammar.c"
    break;

  case 185: /* unaryExpr: DEC_OP unaryExpr  */
#line 830 "cgrammar.y"
                    { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5058 "cgrammar.c"
    break;

  case 186: /* unaryExpr: TAMPERSAND castExpr  */
#line 831 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5064 "cgrammar.c"
    break;

  case 187: /* unaryExpr: TMULT castExpr  */
#line 832 "cgrammar.y"
                   { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5070 "cgrammar.c"
    break;

  case 188: /* unaryExpr: TPLUS castExpr  */
#line 833 "cgrammar.y"
                   { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5076 "cgrammar.c"
    break;

  case 189: /* unaryExpr: TMINUS castExpr  */
#line 834 "cgrammar.y"
                   { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5082 "cgrammar.c"
    break;

  case 190: /* unaryExpr: TTILDE castExpr  */
#line 835 "cgrammar.y"
                   { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5088 "cgrammar.c"
    break;

  case 191: /* unaryExpr: TEXCL castExpr  */
#line 836 "cgrammar.y"
                   { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5094 "cgrammar.c"
    break;

  case 192: /* unaryExpr: processSizeof sizeofExpr endprocessSizeof  */
#line 837 "cgrammar.y"
                                                  { (yyval.expr) = (yyvsp[-1].expr); }
#line 5100 "cgrammar.c"
    break;

  case 193: /* unaryExpr: offsetofExpr  */
#line 838 "cgrammar.y"
                   { (yyval.expr) = (yyvsp[0].expr); }
#line 5106 "cgrammar.c"
    break;

  case 194: /* fieldDesignator: fieldDesignator TDOT newId  */
#line 842 "cgrammar.y"
                                      { (yyval.cstringlist) = cstringList_add ((yyvsp[-2].cstringlist), (yyvsp[0].cname)); lltok_free ((yyvsp[-1].tok)); }
#line 5112 "cgrammar.c"
    break;

  case 195: /* fieldDesignator: fieldDesignator TLSQBR expr TRSQBR  */
#line 843 "cgrammar.y"
                                      { (yyval.cstringlist) = (yyvsp[-3].cstringlist); lltok_free2 ((yyvsp[-2].tok), (yyvsp[0].tok)); }
#line 5118 "cgrammar.c"
    break;

  case 196: /* fieldDesignator: newId  */
#line 845 "cgrammar.y"
                                      { (yyval.cstringlist) = cstringList_single ((yyvsp[0].cname)); }
#line 5124 "cgrammar.c"
    break;

  case 197: /* offsetofExpr: COFFSETOF IsType TLPAREN typeExpression NotType TCOMMA fieldDesignator TRPAREN IsType  */
#line 850 "cgrammar.y"
   { (yyval.expr) = exprNode_offsetof ((yyvsp[-5].qtyp), (yyvsp[-2].cstringlist));
     lltok_free3 ((yyvsp[-8].tok), (yyvsp[-6].tok), (yyvsp[-3].tok)); lltok_free ((yyvsp[-1].tok)); }
#line 5131 "cgrammar.c"
    break;

  case 198: /* $@16: %empty  */
#line 855 "cgrammar.y"
          { context_setProtectVars (); }
#line 5137 "cgrammar.c"
    break;

  case 199: /* sizeofExpr: IsType $@16 sizeofExprAux  */
#line 856 "cgrammar.y"
                 { context_sizeofReleaseVars (); (yyval.expr) = (yyvsp[0].expr); }
#line 5143 "cgrammar.c"
    break;

  case 200: /* processSizeof: %empty  */
#line 860 "cgrammar.y"
          { context_enterSizeof(); }
#line 5149 "cgrammar.c"
    break;

  case 201: /* endprocessSizeof: %empty  */
#line 864 "cgrammar.y"
          { context_leaveSizeof(); }
#line 5155 "cgrammar.c"
    break;

  case 202: /* sizeofExprAux: CSIZEOF TLPAREN typeExpression TRPAREN  */
#line 868 "cgrammar.y"
                                           { (yyval.expr) = exprNode_sizeofType ((yyvsp[-1].qtyp)); lltok_free3 ((yyvsp[-3].tok), (yyvsp[-2].tok), (yyvsp[0].tok)); }
#line 5161 "cgrammar.c"
    break;

  case 203: /* sizeofExprAux: CSIZEOF unaryExpr  */
#line 869 "cgrammar.y"
                                           { (yyval.expr) = exprNode_sizeofExpr ((yyvsp[0].expr)); lltok_free ((yyvsp[-1].tok)); }
#line 5167 "cgrammar.c"
    break;

  case 204: /* sizeofExprAux: CALIGNOF TLPAREN typeExpression TRPAREN  */
#line 870 "cgrammar.y"
                                           { (yyval.expr) = exprNode_alignofType ((yyvsp[-1].qtyp)); lltok_free3 ((yyvsp[-3].tok), (yyvsp[-2].tok), (yyvsp[0].tok)); }
#line 5173 "cgrammar.c"
    break;

  case 205: /* sizeofExprAux: CALIGNOF unaryExpr  */
#line 871 "cgrammar.y"
                                           { (yyval.expr) = exprNode_alignofExpr ((yyvsp[0].expr)); lltok_free ((yyvsp[-1].tok)); }
#line 5179 "cgrammar.c"
    break;

  case 207: /* castExpr: TLPAREN typeExpression TRPAREN castExpr  */
#line 878 "cgrammar.y"
   { (yyval.expr) = exprNode_cast ((yyvsp[-3].tok), (yyvsp[0].expr), (yyvsp[-2].qtyp)); lltok_free ((yyvsp[-1].tok)); }
#line 5185 "cgrammar.c"
    break;

  case 209: /* timesExpr: timesExpr TMULT castExpr  */
#line 883 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5191 "cgrammar.c"
    break;

  case 210: /* timesExpr: timesExpr TDIV castExpr  */
#line 884 "cgrammar.y"
                           { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5197 "cgrammar.c"
    break;

  case 211: /* timesExpr: timesExpr TPERCENT castExpr  */
#line 885 "cgrammar.y"
                               { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5203 "cgrammar.c"
    break;

  case 213: /* plusExpr: plusExpr TPLUS timesExpr  */
#line 890 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5209 "cgrammar.c"
    break;

  case 214: /* plusExpr: plusExpr TMINUS timesExpr  */
#line 891 "cgrammar.y"
                             { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5215 "cgrammar.c"
    break;

  case 216: /* shiftExpr: shiftExpr LEFT_OP plusExpr  */
#line 896 "cgrammar.y"
                              { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5221 "cgrammar.c"
    break;

  case 217: /* shiftExpr: shiftExpr RIGHT_OP plusExpr  */
#line 897 "cgrammar.y"
                               { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5227 "cgrammar.c"
    break;

  case 219: /* relationalExpr: relationalExpr TLT shiftExpr  */
#line 902 "cgrammar.y"
                                { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5233 "cgrammar.c"
    break;

  case 220: /* relationalExpr: relationalExpr TGT shiftExpr  */
#line 903 "cgrammar.y"
                                { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5239 "cgrammar.c"
    break;

  case 221: /* relationalExpr: relationalExpr LE_OP shiftExpr  */
#line 904 "cgrammar.y"
                                  { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5245 "cgrammar.c"
    break;

  case 222: /* relationalExpr: relationalExpr GE_OP shiftExpr  */
#line 905 "cgrammar.y"
                                  { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5251 "cgrammar.c"
    break;

  case 224: /* equalityExpr: equalityExpr EQ_OP relationalExpr  */
#line 910 "cgrammar.y"
                                     { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5257 "cgrammar.c"
    break;

  case 225: /* equalityExpr: equalityExpr NE_OP relationalExpr  */
#line 911 "cgrammar.y"
                                     { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5263 "cgrammar.c"
    break;

  case 227: /* bitandExpr: bitandExpr TAMPERSAND equalityExpr  */
#line 916 "cgrammar.y"
                                      { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5269 "cgrammar.c"
    break;

  case 229: /* xorExpr: xorExpr TCIRC bitandExpr  */
#line 921 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5275 "cgrammar.c"
    break;

  case 231: /* bitorExpr: bitorExpr TBAR xorExpr  */
#line 926 "cgrammar.y"
                          { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5281 "cgrammar.c"
    break;

  case 233: /* $@17: %empty  */
#line 932 "cgrammar.y"
   { exprNode_produceGuards ((yyvsp[-1].expr));
     context_enterAndClause ((yyvsp[-1].expr));
   }
#line 5289 "cgrammar.c"
    break;

  case 234: /* andExpr: andExpr AND_OP $@17 bitorExpr  */
#line 936 "cgrammar.y"
   {
     (yyval.expr) = exprNode_op ((yyvsp[-3].expr), (yyvsp[0].expr), (yyvsp[-2].tok));
     context_exitAndClause ((yyval.expr), (yyvsp[0].expr));
   }
#line 5298 "cgrammar.c"
    break;

  case 236: /* $@18: %empty  */
#line 945 "cgrammar.y"
   {
     exprNode_produceGuards ((yyvsp[-1].expr));
     context_enterOrClause ((yyvsp[-1].expr));
   }
#line 5307 "cgrammar.c"
    break;

  case 237: /* orExpr: orExpr OR_OP $@18 andExpr  */
#line 950 "cgrammar.y"
   {
     (yyval.expr) = exprNode_op ((yyvsp[-3].expr), (yyvsp[0].expr), (yyvsp[-2].tok));
     context_exitOrClause ((yyval.expr), (yyvsp[0].expr));
   }
#line 5316 "cgrammar.c"
    break;

  case 239: /* $@19: %empty  */
#line 959 "cgrammar.y"
   { /* GCC extension: conditional with empty if */
     exprNode_produceGuards ((yyvsp[-1].expr)); context_enterTrueClause ((yyvsp[-1].expr)); }
#line 5323 "cgrammar.c"
    break;

  case 240: /* $@20: %empty  */
#line 961 "cgrammar.y"
   { context_enterFalseClause ((yyvsp[-3].expr)); }
#line 5329 "cgrammar.c"
    break;

  case 241: /* conditionalExpr: orExpr TQUEST $@19 TCOLON $@20 conditionalExpr  */
#line 962 "cgrammar.y"
   { (yyval.expr) = exprNode_condIfOmit ((yyvsp[-5].expr), (yyvsp[0].expr)); context_exitConditionalClause ((yyvsp[-5].expr), exprNode_undefined, (yyvsp[0].expr)); }
#line 5335 "cgrammar.c"
    break;

  case 242: /* $@21: %empty  */
#line 963 "cgrammar.y"
                 { exprNode_produceGuards ((yyvsp[-1].expr)); context_enterTrueClause ((yyvsp[-1].expr)); }
#line 5341 "cgrammar.c"
    break;

  case 243: /* $@22: %empty  */
#line 964 "cgrammar.y"
   { context_enterFalseClause ((yyvsp[-4].expr)); }
#line 5347 "cgrammar.c"
    break;

  case 244: /* conditionalExpr: orExpr TQUEST $@21 expr TCOLON $@22 conditionalExpr  */
#line 965 "cgrammar.y"
   { (yyval.expr) = exprNode_cond ((yyvsp[-6].expr), (yyvsp[-3].expr), (yyvsp[0].expr)); context_exitConditionalClause ((yyvsp[-6].expr), (yyvsp[-3].expr), (yyvsp[0].expr)); }
#line 5353 "cgrammar.c"
    break;

  case 246: /* assignExpr: unaryExpr TASSIGN assignExpr  */
#line 970 "cgrammar.y"
                                { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5359 "cgrammar.c"
    break;

  case 247: /* assignExpr: unaryExpr MUL_ASSIGN assignExpr  */
#line 971 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5365 "cgrammar.c"
    break;

  case 248: /* assignExpr: unaryExpr DIV_ASSIGN assignExpr  */
#line 972 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5371 "cgrammar.c"
    break;

  case 249: /* assignExpr: unaryExpr MOD_ASSIGN assignExpr  */
#line 973 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5377 "cgrammar.c"
    break;

  case 250: /* assignExpr: unaryExpr ADD_ASSIGN assignExpr  */
#line 974 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5383 "cgrammar.c"
    break;

  case 251: /* assignExpr: unaryExpr SUB_ASSIGN assignExpr  */
#line 975 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5389 "cgrammar.c"
    break;

  case 252: /* assignExpr: unaryExpr LEFT_ASSIGN assignExpr  */
#line 976 "cgrammar.y"
                                    { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5395 "cgrammar.c"
    break;

  case 253: /* assignExpr: unaryExpr RIGHT_ASSIGN assignExpr  */
#line 977 "cgrammar.y"
                                     { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5401 "cgrammar.c"
    break;

  case 254: /* assignExpr: unaryExpr AND_ASSIGN assignExpr  */
#line 978 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5407 "cgrammar.c"
    break;

  case 255: /* assignExpr: unaryExpr XOR_ASSIGN assignExpr  */
#line 979 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5413 "cgrammar.c"
    break;

  case 256: /* assignExpr: unaryExpr OR_ASSIGN assignExpr  */
#line 980 "cgrammar.y"
                                  { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 5419 "cgrammar.c"
    break;

  case 258: /* expr: expr TCOMMA assignExpr  */
#line 985 "cgrammar.y"
                          { (yyval.expr) = exprNode_comma ((yyvsp[-2].expr), (yyvsp[0].expr)); }
#line 5425 "cgrammar.c"
    break;

  case 259: /* optExpr: %empty  */
#line 989 "cgrammar.y"
          { (yyval.expr) = exprNode_undefined; }
#line 5431 "cgrammar.c"
    break;

  case 264: /* initializer: instanceDecl TSEMI IsType  */
#line 1003 "cgrammar.y"
                             { (yyval.expr) = (yyvsp[-2].expr); }
#line 5437 "cgrammar.c"
    break;

  case 265: /* $@23: %empty  */
#line 1008 "cgrammar.y"
   { setProcessingVars ((yyvsp[-3].qtyp)); processNamedDecl ((yyvsp[-1].ntyp)); }
#line 5443 "cgrammar.c"
    break;

  case 266: /* instanceDeclAux: completeTypeSpecifier NotType namedDecl NotType $@23 IsType  */
#line 1009 "cgrammar.y"
   { (yyval.expr) = exprNode_makeEmptyInitialization ((yyvsp[-3].ntyp)); }
#line 5449 "cgrammar.c"
    break;

  case 267: /* $@24: %empty  */
#line 1011 "cgrammar.y"
   { setProcessingVars ((yyvsp[-3].qtyp)); processNamedDecl ((yyvsp[-1].ntyp)); }
#line 5455 "cgrammar.c"
    break;

  case 268: /* instanceDeclAux: completeTypeSpecifier NotType namedDecl NotType $@24 IsType TASSIGN init  */
#line 1012 "cgrammar.y"
   { (yyval.expr) = exprNode_makeInitialization ((yyvsp[-5].ntyp), (yyvsp[0].expr)); }
#line 5461 "cgrammar.c"
    break;

  case 269: /* instanceDecl: instanceDeclAux  */
#line 1023 "cgrammar.y"
                   { unsetProcessingVars (); (yyval.expr) = (yyvsp[0].expr); }
#line 5467 "cgrammar.c"
    break;

  case 270: /* instanceDecl: instanceDeclAux declarators  */
#line 1024 "cgrammar.y"
                               { unsetProcessingVars (); (yyval.expr) = exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 5473 "cgrammar.c"
    break;

  case 271: /* namedInitializerType: namedInitializer  */
#line 1028 "cgrammar.y"
                    { (yyval.expr) = (yyvsp[0].expr); }
#line 5479 "cgrammar.c"
    break;

  case 272: /* namedInitializerType: TYPE_NAME  */
#line 1029 "cgrammar.y"
             { (yyval.expr) = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId ((yyvsp[0].ctyp)))); }
#line 5485 "cgrammar.c"
    break;

  case 273: /* namedInitializer: namedDecl NotType  */
#line 1034 "cgrammar.y"
   {
     processNamedDecl ((yyvsp[-1].ntyp));
     (yyval.expr) = exprNode_makeEmptyInitialization ((yyvsp[-1].ntyp));
   }
#line 5494 "cgrammar.c"
    break;

  case 274: /* $@25: %empty  */
#line 1038 "cgrammar.y"
                             { processNamedDecl ((yyvsp[-2].ntyp)); }
#line 5500 "cgrammar.c"
    break;

  case 275: /* namedInitializer: namedDecl NotType TASSIGN $@25 IsType init  */
#line 1039 "cgrammar.y"
   { (yyval.expr) = exprNode_makeInitialization ((yyvsp[-5].ntyp), (yyvsp[0].expr)); }
#line 5506 "cgrammar.c"
    break;

  case 276: /* $@26: %empty  */
#line 1043 "cgrammar.y"
                                  { setProcessingTypedef ((yyvsp[0].qtyp)); }
#line 5512 "cgrammar.c"
    break;

  case 277: /* typeDecl: CTYPEDEF completeTypeSpecifier $@26 NotType namedInitializerTypeList optWarnClause TSEMI IsType  */
#line 1045 "cgrammar.y"
   { clabstract_declareType ((yyvsp[-3].exprlist), (yyvsp[-2].warnclause)); }
#line 5518 "cgrammar.c"
    break;

  case 278: /* typeDecl: CTYPEDEF completeTypeSpecifier TSEMI IsType  */
#line 1046 "cgrammar.y"
                                               { /* in the ANSI grammar, semantics unclear */ }
#line 5524 "cgrammar.c"
    break;

  case 279: /* typeDecl: CTYPEDEF namedInitializerList TSEMI IsType  */
#line 1047 "cgrammar.y"
                                              { /* in the ANSI grammar, semantics unclear */ }
#line 5530 "cgrammar.c"
    break;

  case 281: /* IsType: %empty  */
#line 1052 "cgrammar.y"
          { cscannerHelp_setExpectingTypeName (); }
#line 5536 "cgrammar.c"
    break;

  case 282: /* PushType: %empty  */
#line 1056 "cgrammar.y"
          { cscannerHelp_setExpectingTypeName (); context_pushLoc (); }
#line 5542 "cgrammar.c"
    break;

  case 283: /* namedInitializerList: namedInitializerListAux IsType  */
#line 1060 "cgrammar.y"
                                   { (yyval.exprlist) = (yyvsp[-1].exprlist); }
#line 5548 "cgrammar.c"
    break;

  case 284: /* namedInitializerListAux: namedInitializer  */
#line 1064 "cgrammar.y"
                    { (yyval.exprlist) = exprNodeList_singleton ((yyvsp[0].expr)); }
#line 5554 "cgrammar.c"
    break;

  case 285: /* namedInitializerListAux: namedInitializerList TCOMMA NotType namedInitializer  */
#line 1065 "cgrammar.y"
                                                        { (yyval.exprlist) = exprNodeList_push ((yyvsp[-3].exprlist), (yyvsp[0].expr)); }
#line 5560 "cgrammar.c"
    break;

  case 286: /* namedInitializerTypeList: namedInitializerTypeListAux IsType  */
#line 1069 "cgrammar.y"
                                      { (yyval.exprlist) = (yyvsp[-1].exprlist); }
#line 5566 "cgrammar.c"
    break;

  case 287: /* namedInitializerTypeListAux: namedInitializerType  */
#line 1073 "cgrammar.y"
                        { (yyval.exprlist) = exprNodeList_singleton ((yyvsp[0].expr)); }
#line 5572 "cgrammar.c"
    break;

  case 288: /* namedInitializerTypeListAux: namedInitializerTypeList TCOMMA NotType namedInitializerType  */
#line 1074 "cgrammar.y"
                                                                { (yyval.exprlist) = exprNodeList_push ((yyvsp[-3].exprlist), (yyvsp[0].expr)); }
#line 5578 "cgrammar.c"
    break;

  case 289: /* declarators: TCOMMA NotType namedInitializer  */
#line 1078 "cgrammar.y"
                                   { (yyval.expr) = (yyvsp[0].expr); }
#line 5584 "cgrammar.c"
    break;

  case 290: /* declarators: declarators TCOMMA NotType namedInitializer  */
#line 1079 "cgrammar.y"
                                               { (yyval.expr) = exprNode_concat ((yyvsp[-3].expr), (yyvsp[0].expr)); }
#line 5590 "cgrammar.c"
    break;

  case 292: /* init: TLBRACE initList TRBRACE  */
#line 1084 "cgrammar.y"
                                   { (yyval.expr) = exprNode_makeInitBlock ((yyvsp[-2].tok), (yyvsp[-1].exprlist)); lltok_free ((yyvsp[0].tok)); }
#line 5596 "cgrammar.c"
    break;

  case 293: /* init: TLBRACE initList TCOMMA TRBRACE  */
#line 1085 "cgrammar.y"
                                   { (yyval.expr) = exprNode_makeInitBlock ((yyvsp[-3].tok), (yyvsp[-2].exprlist)); lltok_free2 ((yyvsp[-1].tok), (yyvsp[0].tok)); }
#line 5602 "cgrammar.c"
    break;

  case 294: /* init: designation init  */
#line 1086 "cgrammar.y"
                                   { (yyval.expr) = exprNode_undefined; }
#line 5608 "cgrammar.c"
    break;

  case 295: /* designation: designatorList TASSIGN  */
#line 1094 "cgrammar.y"
                                   { (yyval.expr) = (yyvsp[-1].expr); }
#line 5614 "cgrammar.c"
    break;

  case 296: /* designation: newId TCOLON  */
#line 1095 "cgrammar.y"
                                   { (yyval.expr) = exprNode_undefined;
                                     /* gcc extension, obsolete since 2.5 */ }
#line 5621 "cgrammar.c"
    break;

  case 297: /* designatorList: designator  */
#line 1100 "cgrammar.y"
                                   { (yyval.expr) = exprNode_undefined; }
#line 5627 "cgrammar.c"
    break;

  case 298: /* designatorList: designatorList designator  */
#line 1101 "cgrammar.y"
                                   { (yyval.expr) = exprNode_undefined; }
#line 5633 "cgrammar.c"
    break;

  case 299: /* designator: TLSQBR constantExpr TRSQBR  */
#line 1105 "cgrammar.y"
                                   { (yyval.expr) = exprNode_undefined; }
#line 5639 "cgrammar.c"
    break;

  case 300: /* designator: TDOT newId  */
#line 1106 "cgrammar.y"
                                   { (yyval.expr) = exprNode_undefined; }
#line 5645 "cgrammar.c"
    break;

  case 301: /* initList: init  */
#line 1111 "cgrammar.y"
   { (yyval.exprlist) = exprNodeList_singleton ((yyvsp[0].expr)); }
#line 5651 "cgrammar.c"
    break;

  case 302: /* initList: initList TCOMMA init  */
#line 1113 "cgrammar.y"
   { (yyval.exprlist) = exprNodeList_push ((yyvsp[-2].exprlist), (yyvsp[0].expr)); }
#line 5657 "cgrammar.c"
    break;

  case 303: /* storageSpecifier: QEXTERN  */
#line 1122 "cgrammar.y"
             { setStorageClass (SCEXTERN); (yyval.typequal) = qual_createExtern (); }
#line 5663 "cgrammar.c"
    break;

  case 304: /* storageSpecifier: QINLINE  */
#line 1123 "cgrammar.y"
             { (yyval.typequal) = qual_createInline (); }
#line 5669 "cgrammar.c"
    break;

  case 305: /* storageSpecifier: QSTATIC  */
#line 1124 "cgrammar.y"
             { setStorageClass (SCSTATIC); (yyval.typequal) = qual_createStatic (); }
#line 5675 "cgrammar.c"
    break;

  case 306: /* storageSpecifier: QAUTO  */
#line 1125 "cgrammar.y"
             { (yyval.typequal) = qual_createAuto (); }
#line 5681 "cgrammar.c"
    break;

  case 307: /* storageSpecifier: QREGISTER  */
#line 1126 "cgrammar.y"
             { (yyval.typequal) = qual_createRegister (); }
#line 5687 "cgrammar.c"
    break;

  case 308: /* stateClause: stateClausePlain QENDMACRO  */
#line 1130 "cgrammar.y"
                              { (yyval.stateclause) = (yyvsp[-1].stateclause); }
#line 5693 "cgrammar.c"
    break;

  case 309: /* $@27: %empty  */
#line 1135 "cgrammar.y"
   {
     context_setProtectVars ();
     enterParamsTemp ();
     sRef_setGlobalScopeSafe ();
   }
#line 5703 "cgrammar.c"
    break;

  case 310: /* stateClausePlain: stateTag NotType $@27 specClauseList optSemi IsType  */
#line 1141 "cgrammar.y"
   {
     exitParamsTemp ();
     sRef_clearGlobalScopeSafe ();
     context_releaseVars ();
     (yyval.stateclause) = stateClause_createPlain ((yyvsp[-5].tok), (yyvsp[-2].srset));
   }
#line 5714 "cgrammar.c"
    break;

  case 311: /* conditionClause: conditionClausePlain QENDMACRO  */
#line 1150 "cgrammar.y"
                                  { (yyval.funcclause) = (yyvsp[-1].funcclause); }
#line 5720 "cgrammar.c"
    break;

  case 312: /* startConditionClause: conditionTag NotType  */
#line 1154 "cgrammar.y"
                        { (yyval.tok) = (yyvsp[-1].tok); context_enterFunctionHeader (); }
#line 5726 "cgrammar.c"
    break;

  case 313: /* $@28: %empty  */
#line 1159 "cgrammar.y"
   {
     context_exitFunctionHeader ();
     context_setProtectVars ();
     enterParamsTemp ();
     sRef_setGlobalScopeSafe ();
   }
#line 5737 "cgrammar.c"
    break;

  case 314: /* conditionClausePlain: startConditionClause stateQualifier $@28 optSpecClauseList optSemi IsType  */
#line 1166 "cgrammar.y"
   {
     exitParamsTemp ();
     sRef_clearGlobalScopeSafe ();
     context_releaseVars ();
     (yyval.funcclause) = functionClause_createState (stateClause_create ((yyvsp[-5].tok), (yyvsp[-4].typequal), (yyvsp[-2].srset)));
   }
#line 5748 "cgrammar.c"
    break;

  case 315: /* $@29: %empty  */
#line 1173 "cgrammar.y"
   {
     context_setProtectVars ();
     enterParamsTemp ();
     sRef_setGlobalScopeSafe ();
   }
#line 5758 "cgrammar.c"
    break;

  case 316: /* conditionClausePlain: startConditionClause $@29 functionConstraint optSemi IsType  */
#line 1179 "cgrammar.y"
   {
     context_exitFunctionHeader ();
     exitParamsTemp ();
     sRef_clearGlobalScopeSafe ();
     context_releaseVars ();

     if (lltok_isEnsures ((yyvsp[-4].tok)))
       {
	 (yyval.funcclause) = functionClause_createEnsures ((yyvsp[-2].fcnconstraint));
       }
     else if (lltok_isRequires ((yyvsp[-4].tok)))
       {
	 (yyval.funcclause) = functionClause_createRequires ((yyvsp[-2].fcnconstraint));
       }
     else
       {
	 BADBRANCH;
       }
   }
#line 5782 "cgrammar.c"
    break;

  case 317: /* functionConstraint: BufConstraintList  */
#line 1201 "cgrammar.y"
                       { (yyval.fcnconstraint) = functionConstraint_createBufferConstraint ((yyvsp[0].conL)); }
#line 5788 "cgrammar.c"
    break;

  case 318: /* functionConstraint: metaStateConstraint  */
#line 1202 "cgrammar.y"
                       { (yyval.fcnconstraint) = functionConstraint_createMetaStateConstraint ((yyvsp[0].msconstraint)); }
#line 5794 "cgrammar.c"
    break;

  case 319: /* exitsQualifier: QEXITS  */
#line 1206 "cgrammar.y"
                 { (yyval.typequal) = qual_createExits (); }
#line 5800 "cgrammar.c"
    break;

  case 320: /* exitsQualifier: QMAYEXIT  */
#line 1207 "cgrammar.y"
                 { (yyval.typequal) = qual_createMayExit (); }
#line 5806 "cgrammar.c"
    break;

  case 321: /* exitsQualifier: QTRUEEXIT  */
#line 1208 "cgrammar.y"
                 { (yyval.typequal) = qual_createTrueExit (); }
#line 5812 "cgrammar.c"
    break;

  case 322: /* exitsQualifier: QFALSEEXIT  */
#line 1209 "cgrammar.y"
                 { (yyval.typequal) = qual_createFalseExit (); }
#line 5818 "cgrammar.c"
    break;

  case 323: /* exitsQualifier: QNEVEREXIT  */
#line 1210 "cgrammar.y"
                 { (yyval.typequal) = qual_createNeverExit (); }
#line 5824 "cgrammar.c"
    break;

  case 324: /* checkQualifier: QCHECKED  */
#line 1214 "cgrammar.y"
                   { (yyval.typequal) = qual_createChecked (); }
#line 5830 "cgrammar.c"
    break;

  case 325: /* checkQualifier: QCHECKMOD  */
#line 1215 "cgrammar.y"
                   { (yyval.typequal) = qual_createCheckMod (); }
#line 5836 "cgrammar.c"
    break;

  case 326: /* checkQualifier: QUNCHECKED  */
#line 1216 "cgrammar.y"
                   { (yyval.typequal) = qual_createUnchecked (); }
#line 5842 "cgrammar.c"
    break;

  case 327: /* checkQualifier: QCHECKEDSTRICT  */
#line 1217 "cgrammar.y"
                   { (yyval.typequal) = qual_createCheckedStrict (); }
#line 5848 "cgrammar.c"
    break;

  case 328: /* stateQualifier: QOWNED  */
#line 1221 "cgrammar.y"
                 { (yyval.typequal) = qual_createOwned (); }
#line 5854 "cgrammar.c"
    break;

  case 329: /* stateQualifier: QDEPENDENT  */
#line 1222 "cgrammar.y"
                 { (yyval.typequal) = qual_createDependent (); }
#line 5860 "cgrammar.c"
    break;

  case 330: /* stateQualifier: QYIELD  */
#line 1223 "cgrammar.y"
                 { (yyval.typequal) = qual_createYield (); }
#line 5866 "cgrammar.c"
    break;

  case 331: /* stateQualifier: QTEMP  */
#line 1224 "cgrammar.y"
                 { (yyval.typequal) = qual_createTemp (); }
#line 5872 "cgrammar.c"
    break;

  case 332: /* stateQualifier: QONLY  */
#line 1225 "cgrammar.y"
                 { (yyval.typequal) = qual_createOnly (); }
#line 5878 "cgrammar.c"
    break;

  case 333: /* stateQualifier: QKEEP  */
#line 1226 "cgrammar.y"
                 { (yyval.typequal) = qual_createKeep (); }
#line 5884 "cgrammar.c"
    break;

  case 334: /* stateQualifier: QKEPT  */
#line 1227 "cgrammar.y"
                 { (yyval.typequal) = qual_createKept (); }
#line 5890 "cgrammar.c"
    break;

  case 335: /* stateQualifier: QSHARED  */
#line 1228 "cgrammar.y"
                 { (yyval.typequal) = qual_createShared (); }
#line 5896 "cgrammar.c"
    break;

  case 336: /* stateQualifier: QUNIQUE  */
#line 1229 "cgrammar.y"
                 { (yyval.typequal) = qual_createUnique (); }
#line 5902 "cgrammar.c"
    break;

  case 337: /* stateQualifier: QNULL  */
#line 1230 "cgrammar.y"
                 { (yyval.typequal) = qual_createNull (); }
#line 5908 "cgrammar.c"
    break;

  case 338: /* stateQualifier: QISNULL  */
#line 1231 "cgrammar.y"
                 { (yyval.typequal) = qual_createIsNull (); }
#line 5914 "cgrammar.c"
    break;

  case 339: /* stateQualifier: QRELNULL  */
#line 1232 "cgrammar.y"
                 { (yyval.typequal) = qual_createRelNull (); }
#line 5920 "cgrammar.c"
    break;

  case 340: /* stateQualifier: QNOTNULL  */
#line 1233 "cgrammar.y"
                 { (yyval.typequal) = qual_createNotNull (); }
#line 5926 "cgrammar.c"
    break;

  case 341: /* stateQualifier: QEXPOSED  */
#line 1234 "cgrammar.y"
                 { (yyval.typequal) = qual_createExposed (); }
#line 5932 "cgrammar.c"
    break;

  case 342: /* stateQualifier: QOBSERVER  */
#line 1235 "cgrammar.y"
                 { (yyval.typequal) = qual_createObserver (); }
#line 5938 "cgrammar.c"
    break;

  case 343: /* stateQualifier: QNULLTERMINATED  */
#line 1236 "cgrammar.y"
                   { (yyval.typequal) = qual_createNullTerminated (); }
#line 5944 "cgrammar.c"
    break;

  case 344: /* stateQualifier: CANNOTATION  */
#line 1237 "cgrammar.y"
                 { (yyval.typequal) = qual_createMetaState ((yyvsp[0].annotation)); }
#line 5950 "cgrammar.c"
    break;

  case 345: /* paramQualifier: QRETURNED  */
#line 1241 "cgrammar.y"
                 { (yyval.typequal) = qual_createReturned (); }
#line 5956 "cgrammar.c"
    break;

  case 346: /* paramQualifier: QSEF  */
#line 1242 "cgrammar.y"
                 { (yyval.typequal) = qual_createSef (); }
#line 5962 "cgrammar.c"
    break;

  case 347: /* visibilityQualifier: QUNUSED  */
#line 1246 "cgrammar.y"
                 { (yyval.typequal) = qual_createUnused (); }
#line 5968 "cgrammar.c"
    break;

  case 348: /* visibilityQualifier: QEXTERNAL  */
#line 1247 "cgrammar.y"
                 { (yyval.typequal) = qual_createExternal (); }
#line 5974 "cgrammar.c"
    break;

  case 349: /* returnQualifier: QTRUENULL  */
#line 1251 "cgrammar.y"
                 { (yyval.typequal) = qual_createTrueNull (); }
#line 5980 "cgrammar.c"
    break;

  case 350: /* returnQualifier: QFALSENULL  */
#line 1252 "cgrammar.y"
                 { (yyval.typequal) = qual_createFalseNull (); }
#line 5986 "cgrammar.c"
    break;

  case 351: /* typedefQualifier: QABSTRACT  */
#line 1256 "cgrammar.y"
                 { (yyval.typequal) = qual_createAbstract (); }
#line 5992 "cgrammar.c"
    break;

  case 352: /* typedefQualifier: QNUMABSTRACT  */
#line 1257 "cgrammar.y"
                 { (yyval.typequal) = qual_createNumAbstract (); }
#line 5998 "cgrammar.c"
    break;

  case 353: /* typedefQualifier: QCONCRETE  */
#line 1258 "cgrammar.y"
                 { (yyval.typequal) = qual_createConcrete (); }
#line 6004 "cgrammar.c"
    break;

  case 354: /* typedefQualifier: QMUTABLE  */
#line 1259 "cgrammar.y"
                 { (yyval.typequal) = qual_createMutable (); }
#line 6010 "cgrammar.c"
    break;

  case 355: /* typedefQualifier: QIMMUTABLE  */
#line 1260 "cgrammar.y"
                 { (yyval.typequal) = qual_createImmutable (); }
#line 6016 "cgrammar.c"
    break;

  case 356: /* refcountQualifier: QREFCOUNTED  */
#line 1264 "cgrammar.y"
                 { (yyval.typequal) = qual_createRefCounted (); }
#line 6022 "cgrammar.c"
    break;

  case 357: /* refcountQualifier: QREFS  */
#line 1265 "cgrammar.y"
                 { (yyval.typequal) = qual_createRefs (); }
#line 6028 "cgrammar.c"
    break;

  case 358: /* refcountQualifier: QKILLREF  */
#line 1266 "cgrammar.y"
                 { (yyval.typequal) = qual_createKillRef (); }
#line 6034 "cgrammar.c"
    break;

  case 359: /* refcountQualifier: QRELDEF  */
#line 1267 "cgrammar.y"
                 { (yyval.typequal) = qual_createRelDef (); }
#line 6040 "cgrammar.c"
    break;

  case 360: /* refcountQualifier: QNEWREF  */
#line 1268 "cgrammar.y"
                 { (yyval.typequal) = qual_createNewRef (); }
#line 6046 "cgrammar.c"
    break;

  case 361: /* refcountQualifier: QTEMPREF  */
#line 1269 "cgrammar.y"
                 { (yyval.typequal) = qual_createTempRef (); }
#line 6052 "cgrammar.c"
    break;

  case 362: /* typeModifier: QSHORT  */
#line 1273 "cgrammar.y"
                     { (yyval.typequal) = qual_createShort (); }
#line 6058 "cgrammar.c"
    break;

  case 363: /* typeModifier: QLONG  */
#line 1274 "cgrammar.y"
                     { (yyval.typequal) = qual_createLong (); }
#line 6064 "cgrammar.c"
    break;

  case 364: /* typeModifier: QSIGNED  */
#line 1275 "cgrammar.y"
                     { (yyval.typequal) = qual_createSigned (); }
#line 6070 "cgrammar.c"
    break;

  case 365: /* typeModifier: QUNSIGNED  */
#line 1276 "cgrammar.y"
                     { (yyval.typequal) = qual_createUnsigned (); }
#line 6076 "cgrammar.c"
    break;

  case 366: /* definedQualifier: QOUT  */
#line 1280 "cgrammar.y"
                     { (yyval.typequal) = qual_createOut (); }
#line 6082 "cgrammar.c"
    break;

  case 367: /* definedQualifier: QIN  */
#line 1281 "cgrammar.y"
                     { (yyval.typequal) = qual_createIn (); }
#line 6088 "cgrammar.c"
    break;

  case 368: /* definedQualifier: QPARTIAL  */
#line 1282 "cgrammar.y"
                     { (yyval.typequal) = qual_createPartial (); }
#line 6094 "cgrammar.c"
    break;

  case 369: /* definedQualifier: QSPECIAL  */
#line 1283 "cgrammar.y"
                     { (yyval.typequal) = qual_createSpecial (); }
#line 6100 "cgrammar.c"
    break;

  case 370: /* typeQualifier: QCONST IsType  */
#line 1287 "cgrammar.y"
                       { (yyval.typequal) = qual_createConst (); }
#line 6106 "cgrammar.c"
    break;

  case 371: /* typeQualifier: QVOLATILE IsType  */
#line 1288 "cgrammar.y"
                       { (yyval.typequal) = qual_createVolatile (); }
#line 6112 "cgrammar.c"
    break;

  case 372: /* typeQualifier: QRESTRICT IsType  */
#line 1289 "cgrammar.y"
                       { (yyval.typequal) = qual_createRestrict (); }
#line 6118 "cgrammar.c"
    break;

  case 373: /* typeQualifier: definedQualifier IsType  */
#line 1290 "cgrammar.y"
                           { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6124 "cgrammar.c"
    break;

  case 374: /* typeQualifier: stateQualifier IsType  */
#line 1291 "cgrammar.y"
                         { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6130 "cgrammar.c"
    break;

  case 375: /* typeQualifier: exitsQualifier IsType  */
#line 1292 "cgrammar.y"
                         { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6136 "cgrammar.c"
    break;

  case 376: /* typeQualifier: paramQualifier IsType  */
#line 1293 "cgrammar.y"
                         { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6142 "cgrammar.c"
    break;

  case 377: /* typeQualifier: checkQualifier IsType  */
#line 1294 "cgrammar.y"
                         { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6148 "cgrammar.c"
    break;

  case 378: /* typeQualifier: returnQualifier IsType  */
#line 1295 "cgrammar.y"
                          { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6154 "cgrammar.c"
    break;

  case 379: /* typeQualifier: visibilityQualifier IsType  */
#line 1296 "cgrammar.y"
                              { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6160 "cgrammar.c"
    break;

  case 380: /* typeQualifier: typedefQualifier IsType  */
#line 1297 "cgrammar.y"
                           { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6166 "cgrammar.c"
    break;

  case 381: /* typeQualifier: refcountQualifier IsType  */
#line 1298 "cgrammar.y"
                            { (yyval.typequal) = (yyvsp[-1].typequal); }
#line 6172 "cgrammar.c"
    break;

  case 388: /* typeSpecifier: QANYTYPE NotType  */
#line 1312 "cgrammar.y"
                                 { (yyval.ctyp) = ctype_makeAnytype (); }
#line 6178 "cgrammar.c"
    break;

  case 389: /* typeSpecifier: QINTEGRALTYPE NotType  */
#line 1313 "cgrammar.y"
                                 { (yyval.ctyp) = ctype_anyintegral; }
#line 6184 "cgrammar.c"
    break;

  case 390: /* typeSpecifier: QUNSIGNEDINTEGRALTYPE NotType  */
#line 1314 "cgrammar.y"
                                 { (yyval.ctyp) = ctype_unsignedintegral; }
#line 6190 "cgrammar.c"
    break;

  case 391: /* typeSpecifier: QSIGNEDINTEGRALTYPE NotType  */
#line 1315 "cgrammar.y"
                                 { (yyval.ctyp) = ctype_signedintegral; }
#line 6196 "cgrammar.c"
    break;

  case 395: /* typeSpecifier: typeModifier NotType  */
#line 1319 "cgrammar.y"
                                  { (yyval.ctyp) = ctype_fromQual ((yyvsp[-1].typequal)); }
#line 6202 "cgrammar.c"
    break;

  case 396: /* completeType: IsType completeTypeSpecifier IsType  */
#line 1324 "cgrammar.y"
   { (yyval.qtyp) = qtype_resolve ((yyvsp[-1].qtyp)); }
#line 6208 "cgrammar.c"
    break;

  case 397: /* completeTypeSpecifier: completeTypeSpecifierAux  */
#line 1328 "cgrammar.y"
                            { (yyval.qtyp) = (yyvsp[0].qtyp); }
#line 6214 "cgrammar.c"
    break;

  case 398: /* completeTypeSpecifier: completeTypeSpecifierAux QALT altType QENDMACRO  */
#line 1330 "cgrammar.y"
   { (yyval.qtyp) = qtype_mergeAlt ((yyvsp[-3].qtyp), (yyvsp[-1].qtyp)); }
#line 6220 "cgrammar.c"
    break;

  case 400: /* altType: typeExpression TCOMMA altType  */
#line 1336 "cgrammar.y"
   { (yyval.qtyp) = qtype_mergeAlt ((yyvsp[-2].qtyp), (yyvsp[0].qtyp)); }
#line 6226 "cgrammar.c"
    break;

  case 401: /* completeTypeSpecifierAux: storageSpecifier optCompleteType  */
#line 1340 "cgrammar.y"
                                           { (yyval.qtyp) = qtype_addQual ((yyvsp[0].qtyp), (yyvsp[-1].typequal)); }
#line 6232 "cgrammar.c"
    break;

  case 402: /* completeTypeSpecifierAux: typeQualifier optCompleteType  */
#line 1341 "cgrammar.y"
                                           { (yyval.qtyp) = qtype_addQual ((yyvsp[0].qtyp), (yyvsp[-1].typequal)); }
#line 6238 "cgrammar.c"
    break;

  case 403: /* completeTypeSpecifierAux: typeSpecifier optCompleteType  */
#line 1342 "cgrammar.y"
                                           { (yyval.qtyp) = qtype_combine ((yyvsp[0].qtyp), (yyvsp[-1].ctyp)); }
#line 6244 "cgrammar.c"
    break;

  case 404: /* optCompleteType: %empty  */
#line 1346 "cgrammar.y"
                                           { (yyval.qtyp) = qtype_unknown (); }
#line 6250 "cgrammar.c"
    break;

  case 405: /* optCompleteType: completeTypeSpecifier  */
#line 1347 "cgrammar.y"
                                           { (yyval.qtyp) = (yyvsp[0].qtyp); }
#line 6256 "cgrammar.c"
    break;

  case 406: /* $@30: %empty  */
#line 1351 "cgrammar.y"
                                        { sRef_setGlobalScopeSafe (); }
#line 6262 "cgrammar.c"
    break;

  case 407: /* $@31: %empty  */
#line 1353 "cgrammar.y"
                                          { sRef_clearGlobalScopeSafe (); }
#line 6268 "cgrammar.c"
    break;

  case 408: /* suSpc: NotType CSTRUCT newId IsType TLBRACE $@30 CreateStructInnerScope structDeclList DeleteStructInnerScope $@31 TRBRACE  */
#line 1355 "cgrammar.y"
   { (yyval.ctyp) = declareStruct ((yyvsp[-8].cname), (yyvsp[-3].flist)); }
#line 6274 "cgrammar.c"
    break;

  case 409: /* $@32: %empty  */
#line 1356 "cgrammar.y"
                                        { sRef_setGlobalScopeSafe (); }
#line 6280 "cgrammar.c"
    break;

  case 410: /* $@33: %empty  */
#line 1358 "cgrammar.y"
                                         { sRef_clearGlobalScopeSafe (); }
#line 6286 "cgrammar.c"
    break;

  case 411: /* suSpc: NotType CUNION newId IsType TLBRACE $@32 CreateStructInnerScope structDeclList DeleteStructInnerScope $@33 TRBRACE  */
#line 1360 "cgrammar.y"
   { (yyval.ctyp) = declareUnion ((yyvsp[-8].cname), (yyvsp[-3].flist)); }
#line 6292 "cgrammar.c"
    break;

  case 412: /* suSpc: NotType CSTRUCT newId IsType TLBRACE TRBRACE  */
#line 1362 "cgrammar.y"
   { (yyval.ctyp) = declareStruct ((yyvsp[-3].cname), uentryList_new ()); }
#line 6298 "cgrammar.c"
    break;

  case 413: /* suSpc: NotType CUNION newId IsType TLBRACE TRBRACE  */
#line 1364 "cgrammar.y"
   { (yyval.ctyp) = declareUnion ((yyvsp[-3].cname), uentryList_new ()); }
#line 6304 "cgrammar.c"
    break;

  case 414: /* $@34: %empty  */
#line 1365 "cgrammar.y"
                                  { sRef_setGlobalScopeSafe (); }
#line 6310 "cgrammar.c"
    break;

  case 415: /* $@35: %empty  */
#line 1367 "cgrammar.y"
                                         { sRef_clearGlobalScopeSafe (); }
#line 6316 "cgrammar.c"
    break;

  case 416: /* suSpc: NotType CSTRUCT IsType TLBRACE $@34 CreateStructInnerScope structDeclList DeleteStructInnerScope $@35 TRBRACE  */
#line 1369 "cgrammar.y"
   { (yyval.ctyp) = declareUnnamedStruct ((yyvsp[-3].flist)); }
#line 6322 "cgrammar.c"
    break;

  case 417: /* $@36: %empty  */
#line 1370 "cgrammar.y"
                                 { sRef_setGlobalScopeSafe (); }
#line 6328 "cgrammar.c"
    break;

  case 418: /* $@37: %empty  */
#line 1372 "cgrammar.y"
   { sRef_clearGlobalScopeSafe (); }
#line 6334 "cgrammar.c"
    break;

  case 419: /* suSpc: NotType CUNION IsType TLBRACE $@36 CreateStructInnerScope structDeclList DeleteStructInnerScope $@37 TRBRACE  */
#line 1374 "cgrammar.y"
   { (yyval.ctyp) = declareUnnamedUnion ((yyvsp[-3].flist)); }
#line 6340 "cgrammar.c"
    break;

  case 420: /* suSpc: NotType CSTRUCT IsType TLBRACE TRBRACE  */
#line 1376 "cgrammar.y"
   { (yyval.ctyp) = ctype_createUnnamedStruct (uentryList_new ()); }
#line 6346 "cgrammar.c"
    break;

  case 421: /* suSpc: NotType CUNION IsType TLBRACE TRBRACE  */
#line 1378 "cgrammar.y"
   { (yyval.ctyp) = ctype_createUnnamedUnion (uentryList_new ()); }
#line 6352 "cgrammar.c"
    break;

  case 422: /* suSpc: NotType CSTRUCT newId NotType  */
#line 1379 "cgrammar.y"
                                 { (yyval.ctyp) = handleStruct ((yyvsp[-1].cname)); }
#line 6358 "cgrammar.c"
    break;

  case 423: /* suSpc: NotType CUNION newId NotType  */
#line 1380 "cgrammar.y"
                                { (yyval.ctyp) = handleUnion ((yyvsp[-1].cname)); }
#line 6364 "cgrammar.c"
    break;

  case 424: /* NotType: %empty  */
#line 1384 "cgrammar.y"
          { cscannerHelp_clearExpectingTypeName (); }
#line 6370 "cgrammar.c"
    break;

  case 426: /* structDeclList: macroDef  */
#line 1389 "cgrammar.y"
            { (yyval.flist) = uentryList_undefined; /* bogus! */ }
#line 6376 "cgrammar.c"
    break;

  case 427: /* structDeclList: structDeclList structDecl  */
#line 1390 "cgrammar.y"
                             { (yyval.flist) = uentryList_mergeFields ((yyvsp[-1].flist), (yyvsp[0].flist)); }
#line 6382 "cgrammar.c"
    break;

  case 428: /* structDecl: completeTypeSpecifier NotType structNamedDeclList IsType TSEMI  */
#line 1395 "cgrammar.y"
   { (yyval.flist) = fixUentryList ((yyvsp[-2].ntyplist), (yyvsp[-4].qtyp)); }
#line 6388 "cgrammar.c"
    break;

  case 429: /* structDecl: completeTypeSpecifier IsType TSEMI  */
#line 1397 "cgrammar.y"
   { (yyval.flist) = fixUnnamedDecl ((yyvsp[-2].qtyp)); }
#line 6394 "cgrammar.c"
    break;

  case 430: /* structNamedDeclList: structNamedDecl NotType  */
#line 1402 "cgrammar.y"
   { (yyval.ntyplist) = idDeclList_singleton ((yyvsp[-1].ntyp)); }
#line 6400 "cgrammar.c"
    break;

  case 431: /* structNamedDeclList: structNamedDeclList TCOMMA structNamedDecl NotType  */
#line 1404 "cgrammar.y"
   { (yyval.ntyplist) = idDeclList_add ((yyvsp[-3].ntyplist), (yyvsp[-1].ntyp)); }
#line 6406 "cgrammar.c"
    break;

  case 432: /* structNamedDecl: namedDecl  */
#line 1408 "cgrammar.y"
                                        { (yyval.ntyp) = (yyvsp[0].ntyp); }
#line 6412 "cgrammar.c"
    break;

  case 433: /* structNamedDecl: TCOLON IsType constantExpr  */
#line 1409 "cgrammar.y"
                                        { (yyval.ntyp) = idDecl_undefined; }
#line 6418 "cgrammar.c"
    break;

  case 434: /* structNamedDecl: namedDecl TCOLON IsType constantExpr  */
#line 1410 "cgrammar.y"
                                        { (yyval.ntyp) = (yyvsp[-3].ntyp); }
#line 6424 "cgrammar.c"
    break;

  case 435: /* enumSpc: NotType CENUM TLBRACE enumeratorList TRBRACE IsType  */
#line 1416 "cgrammar.y"
   { (yyval.ctyp) = declareUnnamedEnum ((yyvsp[-2].enumnamelist)); }
#line 6430 "cgrammar.c"
    break;

  case 436: /* $@38: %empty  */
#line 1417 "cgrammar.y"
                               { context_pushLoc (); }
#line 6436 "cgrammar.c"
    break;

  case 437: /* enumSpc: NotType CENUM newId TLBRACE $@38 enumeratorList TRBRACE IsType  */
#line 1418 "cgrammar.y"
   { context_popLoc (); (yyval.ctyp) = declareEnum ((yyvsp[-5].cname), (yyvsp[-2].enumnamelist)); }
#line 6442 "cgrammar.c"
    break;

  case 438: /* enumSpc: NotType CENUM newId IsType  */
#line 1419 "cgrammar.y"
                              { (yyval.ctyp) = handleEnum ((yyvsp[-1].cname)); }
#line 6448 "cgrammar.c"
    break;

  case 439: /* enumeratorList: enumerator  */
#line 1424 "cgrammar.y"
   { (yyval.enumnamelist) = enumNameList_single ((yyvsp[0].cname)); }
#line 6454 "cgrammar.c"
    break;

  case 440: /* enumeratorList: enumeratorList TCOMMA enumerator  */
#line 1426 "cgrammar.y"
   { (yyval.enumnamelist) = enumNameList_push ((yyvsp[-2].enumnamelist), (yyvsp[0].cname)); }
#line 6460 "cgrammar.c"
    break;

  case 442: /* enumerator: newId  */
#line 1432 "cgrammar.y"
   { uentry ue = uentry_makeEnumConstant ((yyvsp[0].cname), ctype_unknown);
     usymtab_supGlobalEntry (ue);
     (yyval.cname) = (yyvsp[0].cname);
   }
#line 6469 "cgrammar.c"
    break;

  case 443: /* enumerator: newId TASSIGN IsType constantExpr NotType  */
#line 1437 "cgrammar.y"
   { uentry ue = uentry_makeEnumInitializedConstant ((yyvsp[-4].cname), ctype_unknown, (yyvsp[-1].expr));
     usymtab_supGlobalEntry (ue);
     (yyval.cname) = (yyvsp[-4].cname);
   }
#line 6478 "cgrammar.c"
    break;

  case 445: /* optNamedDecl: optAbstractDeclBase  */
#line 1445 "cgrammar.y"
                         { (yyval.ntyp) = idDecl_create (cstring_undefined, qtype_create ((yyvsp[0].ctyp))); }
#line 6484 "cgrammar.c"
    break;

  case 446: /* optNamedDecl: pointers TYPE_NAME  */
#line 1447 "cgrammar.y"
   {
     qtype qt = qtype_unknown ();
     qtype_adjustPointers ((yyvsp[-1].pointers), qt);
     (yyval.ntyp) = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt);
   }
#line 6494 "cgrammar.c"
    break;

  case 447: /* optNamedDecl: pointers optNamedDecl  */
#line 1453 "cgrammar.y"
   { (yyval.ntyp) = (yyvsp[0].ntyp); qtype_adjustPointers ((yyvsp[-1].pointers), idDecl_getTyp ((yyval.ntyp))); }
#line 6500 "cgrammar.c"
    break;

  case 449: /* namedDecl: pointers namedDeclBase  */
#line 1459 "cgrammar.y"
   { (yyval.ntyp) = (yyvsp[0].ntyp); qtype_adjustPointers ((yyvsp[-1].pointers), idDecl_getTyp ((yyval.ntyp))); }
#line 6506 "cgrammar.c"
    break;

  case 450: /* genericParamList: paramTypeList  */
#line 1463 "cgrammar.y"
                       { (yyval.entrylist) = handleParamTypeList ((yyvsp[0].entrylist)); }
#line 6512 "cgrammar.c"
    break;

  case 451: /* genericParamList: NotType paramIdList  */
#line 1464 "cgrammar.y"
                       { (yyval.entrylist) = handleParamIdList ((yyvsp[0].entrylist)); }
#line 6518 "cgrammar.c"
    break;

  case 452: /* innerMods: QCONST  */
#line 1468 "cgrammar.y"
             { (yyval.typequal) = qual_createConst (); }
#line 6524 "cgrammar.c"
    break;

  case 453: /* innerMods: QRESTRICT  */
#line 1469 "cgrammar.y"
             { (yyval.typequal) = qual_createRestrict (); }
#line 6530 "cgrammar.c"
    break;

  case 454: /* innerMods: QVOLATILE  */
#line 1470 "cgrammar.y"
             { (yyval.typequal) = qual_createVolatile (); }
#line 6536 "cgrammar.c"
    break;

  case 455: /* innerModsList: innerMods  */
#line 1474 "cgrammar.y"
             { (yyval.tquallist) = qualList_single ((yyvsp[0].typequal)); }
#line 6542 "cgrammar.c"
    break;

  case 456: /* innerModsList: innerModsList innerMods  */
#line 1475 "cgrammar.y"
                           { (yyval.tquallist) = qualList_add ((yyvsp[-1].tquallist), (yyvsp[0].typequal)); }
#line 6548 "cgrammar.c"
    break;

  case 457: /* pointers: TMULT  */
#line 1479 "cgrammar.y"
         { (yyval.pointers) = pointers_create ((yyvsp[0].tok)); }
#line 6554 "cgrammar.c"
    break;

  case 458: /* pointers: TMULT innerModsList  */
#line 1480 "cgrammar.y"
                       { (yyval.pointers) = pointers_createMods ((yyvsp[-1].tok), (yyvsp[0].tquallist)); }
#line 6560 "cgrammar.c"
    break;

  case 459: /* pointers: TMULT pointers  */
#line 1481 "cgrammar.y"
                  { (yyval.pointers) = pointers_extend (pointers_create ((yyvsp[-1].tok)), (yyvsp[0].pointers)); }
#line 6566 "cgrammar.c"
    break;

  case 460: /* pointers: TMULT innerModsList pointers  */
#line 1482 "cgrammar.y"
                                { (yyval.pointers) = pointers_extend (pointers_createMods ((yyvsp[-2].tok), (yyvsp[-1].tquallist)), (yyvsp[0].pointers)); }
#line 6572 "cgrammar.c"
    break;

  case 462: /* paramIdList: idList TCOMMA CTOK_ELIPSIS  */
#line 1487 "cgrammar.y"
                              { (yyval.entrylist) = uentryList_add ((yyvsp[-2].entrylist), uentry_makeElipsisMarker ()); }
#line 6578 "cgrammar.c"
    break;

  case 463: /* idList: newId  */
#line 1491 "cgrammar.y"
         { (yyval.entrylist) = uentryList_single (uentry_makeVariableLoc ((yyvsp[0].cname), ctype_int)); }
#line 6584 "cgrammar.c"
    break;

  case 464: /* idList: idList TCOMMA newId  */
#line 1492 "cgrammar.y"
                       { (yyval.entrylist) = uentryList_add ((yyvsp[-2].entrylist), uentry_makeVariableLoc ((yyvsp[0].cname), ctype_int)); }
#line 6590 "cgrammar.c"
    break;

  case 465: /* idList: idList TCOMMA paramDecl  */
#line 1494 "cgrammar.y"
   {
     (yyval.entrylist) = uentryList_add ((yyvsp[-2].entrylist), (yyvsp[0].oentry));

     if (!isParamDeclStyleMixed())
       {
         setParamDeclStyleMixed ();
         llparseerror (cstring_makeLiteral ("Inconsistent function parameter"
                       " syntax (mixing old and new style declaration)"));
       }
   }
#line 6605 "cgrammar.c"
    break;

  case 466: /* paramTypeList: CTOK_ELIPSIS  */
#line 1507 "cgrammar.y"
                { (yyval.entrylist) = uentryList_single (uentry_makeElipsisMarker ()); }
#line 6611 "cgrammar.c"
    break;

  case 468: /* paramTypeList: paramList TCOMMA CTOK_ELIPSIS  */
#line 1509 "cgrammar.y"
                                 { (yyval.entrylist) = uentryList_add ((yyvsp[-2].entrylist), uentry_makeElipsisMarker ()); }
#line 6617 "cgrammar.c"
    break;

  case 469: /* paramList: paramDecl  */
#line 1513 "cgrammar.y"
             { (yyval.entrylist) = uentryList_single ((yyvsp[0].oentry)); }
#line 6623 "cgrammar.c"
    break;

  case 470: /* paramList: paramList TCOMMA paramDecl  */
#line 1514 "cgrammar.y"
                              { (yyval.entrylist) = uentryList_add ((yyvsp[-2].entrylist), (yyvsp[0].oentry)); }
#line 6629 "cgrammar.c"
    break;

  case 471: /* paramList: paramList TCOMMA newId  */
#line 1516 "cgrammar.y"
   {
     idDecl tparam = idDecl_create ((yyvsp[0].cname), qtype_unknown ());
     (yyval.entrylist) = uentryList_add ((yyvsp[-2].entrylist), makeCurrentParam (tparam));
     idDecl_free (tparam);

     if (!isParamDeclStyleMixed())
       {
         setParamDeclStyleMixed ();
         llparseerror (cstring_makeLiteral ("Inconsistent function parameter"
                       " syntax (mixing new and old style declaration)"));
       }
   }
#line 6646 "cgrammar.c"
    break;

  case 472: /* paramDecl: IsType completeTypeSpecifier optNamedDecl IsType  */
#line 1532 "cgrammar.y"
   { (yyval.oentry) = makeCurrentParam (idDecl_fixParamBase ((yyvsp[-1].ntyp), (yyvsp[-2].qtyp))); }
#line 6652 "cgrammar.c"
    break;

  case 474: /* typeExpression: completeType abstractDecl  */
#line 1537 "cgrammar.y"
                              { (yyval.qtyp) = qtype_newBase ((yyvsp[-1].qtyp), (yyvsp[0].ctyp)); }
#line 6658 "cgrammar.c"
    break;

  case 475: /* abstractDecl: pointers  */
#line 1541 "cgrammar.y"
            { (yyval.ctyp) = ctype_adjustPointers ((yyvsp[0].pointers), ctype_unknown); }
#line 6664 "cgrammar.c"
    break;

  case 477: /* abstractDecl: pointers abstractDeclBase  */
#line 1543 "cgrammar.y"
                             { (yyval.ctyp) = ctype_adjustPointers ((yyvsp[-1].pointers), (yyvsp[0].ctyp)); }
#line 6670 "cgrammar.c"
    break;

  case 478: /* optAbstractDeclBase: %empty  */
#line 1547 "cgrammar.y"
          { (yyval.ctyp) = ctype_unknown; }
#line 6676 "cgrammar.c"
    break;

  case 480: /* abstractDeclBase: IsType TLPAREN NotType abstractDecl TRPAREN  */
#line 1553 "cgrammar.y"
   { (yyval.ctyp) = ctype_expectFunction ((yyvsp[-1].ctyp)); }
#line 6682 "cgrammar.c"
    break;

  case 481: /* abstractDeclBase: TLSQBR TRSQBR  */
#line 1554 "cgrammar.y"
                 { (yyval.ctyp) = ctype_makeArray (ctype_unknown); }
#line 6688 "cgrammar.c"
    break;

  case 482: /* abstractDeclBase: TLSQBR constantExpr TRSQBR  */
#line 1556 "cgrammar.y"
   { (yyval.ctyp) = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue ((yyvsp[-1].expr))); }
#line 6694 "cgrammar.c"
    break;

  case 483: /* abstractDeclBase: abstractDeclBase TLSQBR TRSQBR  */
#line 1557 "cgrammar.y"
                                  { (yyval.ctyp) = ctype_makeInnerArray ((yyvsp[-2].ctyp)); }
#line 6700 "cgrammar.c"
    break;

  case 484: /* abstractDeclBase: abstractDeclBase TLSQBR constantExpr TRSQBR  */
#line 1559 "cgrammar.y"
   { (yyval.ctyp) = ctype_makeInnerFixedArray ((yyvsp[-3].ctyp), exprNode_getLongValue ((yyvsp[-1].expr))); }
#line 6706 "cgrammar.c"
    break;

  case 485: /* abstractDeclBase: IsType TLPAREN TRPAREN  */
#line 1561 "cgrammar.y"
   { (yyval.ctyp) = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); }
#line 6712 "cgrammar.c"
    break;

  case 486: /* abstractDeclBase: IsType TLPAREN paramTypeList TRPAREN  */
#line 1563 "cgrammar.y"
   { (yyval.ctyp) = ctype_makeParamsFunction (ctype_unknown, (yyvsp[-1].entrylist)); }
#line 6718 "cgrammar.c"
    break;

  case 487: /* abstractDeclBase: abstractDeclBase IsType TLPAREN TRPAREN  */
#line 1565 "cgrammar.y"
   { (yyval.ctyp) = ctype_makeFunction ((yyvsp[-3].ctyp), uentryList_makeMissingParams ()); }
#line 6724 "cgrammar.c"
    break;

  case 488: /* abstractDeclBase: abstractDeclBase IsType TLPAREN paramTypeList TRPAREN  */
#line 1567 "cgrammar.y"
   { (yyval.ctyp) = ctype_makeParamsFunction ((yyvsp[-4].ctyp), (yyvsp[-1].entrylist)); }
#line 6730 "cgrammar.c"
    break;

  case 499: /* debugStmt: QDREVEALSTATE TLPAREN expr TRPAREN  */
#line 1586 "cgrammar.y"
                                      { exprNode_revealState ((yyvsp[-1].expr)); (yyval.expr) = exprNode_undefined; }
#line 6736 "cgrammar.c"
    break;

  case 503: /* iterDefStmtList: iterDefStmtList iterDefStmt  */
#line 1600 "cgrammar.y"
   { (yyval.expr) = exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 6742 "cgrammar.c"
    break;

  case 504: /* iterDefIterationStmt: iterWhilePred iterDefStmtList  */
#line 1605 "cgrammar.y"
   { (yyval.expr) = exprNode_while ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 6748 "cgrammar.c"
    break;

  case 505: /* iterDefIterationStmt: doHeader stmtErr WHILE TLPAREN expr TRPAREN TSEMI  */
#line 1607 "cgrammar.y"
   { (yyval.expr) = exprNode_doWhile ((yyvsp[-5].expr), (yyvsp[-2].expr)); }
#line 6754 "cgrammar.c"
    break;

  case 506: /* iterDefIterationStmt: doHeader stmtErr WHILE TLPAREN expr TRPAREN  */
#line 1609 "cgrammar.y"
   { (yyval.expr) = exprNode_doWhile ((yyvsp[-4].expr), (yyvsp[-1].expr)); }
#line 6760 "cgrammar.c"
    break;

  case 507: /* iterDefIterationStmt: forPred iterDefStmt  */
#line 1611 "cgrammar.y"
   { (yyval.expr) = exprNode_for ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 6766 "cgrammar.c"
    break;

  case 508: /* $@39: %empty  */
#line 1616 "cgrammar.y"
   { context_setProtectVars (); }
#line 6772 "cgrammar.c"
    break;

  case 509: /* $@40: %empty  */
#line 1616 "cgrammar.y"
                                          { context_sizeofReleaseVars (); }
#line 6778 "cgrammar.c"
    break;

  case 510: /* forPred: CFOR TLPAREN optInitExpr TSEMI optExpr TSEMI $@39 optExpr $@40 TRPAREN  */
#line 1618 "cgrammar.y"
   { (yyval.expr) = exprNode_forPred ((yyvsp[-7].expr), (yyvsp[-5].expr), (yyvsp[-2].expr));
     context_enterForClause ((yyvsp[-5].expr)); }
#line 6785 "cgrammar.c"
    break;

  case 511: /* $@41: %empty  */
#line 1624 "cgrammar.y"
   { setProcessingIterVars ((yyvsp[-2].entry)); }
#line 6791 "cgrammar.c"
    break;

  case 512: /* partialIterStmt: ITER_NAME CreateInnerScope TLPAREN $@41 iterArgList TRPAREN  */
#line 1626 "cgrammar.y"
   { (yyval.expr) = exprNode_iterStart ((yyvsp[-5].entry), (yyvsp[-1].exprlist)); }
#line 6797 "cgrammar.c"
    break;

  case 513: /* partialIterStmt: ITER_ENDNAME  */
#line 1627 "cgrammar.y"
                { (yyval.expr) = exprNode_createId ((yyvsp[0].entry)); }
#line 6803 "cgrammar.c"
    break;

  case 517: /* iterDefStmt: openScope initializerList  */
#line 1634 "cgrammar.y"
                             { (yyval.expr) = (yyvsp[-1].expr); }
#line 6809 "cgrammar.c"
    break;

  case 525: /* iterDefStmt: TLPAREN iterDefStmt TRPAREN  */
#line 1642 "cgrammar.y"
                               { (yyval.expr) = (yyvsp[-1].expr); }
#line 6815 "cgrammar.c"
    break;

  case 526: /* iterDefStmt: error  */
#line 1643 "cgrammar.y"
         { (yyval.expr) = exprNode_makeError (); }
#line 6821 "cgrammar.c"
    break;

  case 527: /* $@42: %empty  */
#line 1647 "cgrammar.y"
          { exprNode_checkIfPred ((yyvsp[0].expr)); }
#line 6827 "cgrammar.c"
    break;

  case 528: /* iterSelectionStmt: ifPred $@42 iterDefStmt  */
#line 1648 "cgrammar.y"
   { /* don't: context_exitConditionalClause ($1, $2, exprNode_undefined); */
     (yyval.expr) = exprNode_if ((yyvsp[-2].expr), (yyvsp[0].expr));
   }
#line 6835 "cgrammar.c"
    break;

  case 529: /* openScope: CreateInnerScope TLBRACE  */
#line 1654 "cgrammar.y"
                            { (yyval.expr) = exprNode_createTok ((yyvsp[0].tok)); }
#line 6841 "cgrammar.c"
    break;

  case 530: /* closeScope: DeleteInnerScopeSafe TRBRACE  */
#line 1658 "cgrammar.y"
                                { (yyval.expr) = exprNode_createTok ((yyvsp[0].tok)); }
#line 6847 "cgrammar.c"
    break;

  case 540: /* stmtErr: TLPAREN stmtErr TRPAREN  */
#line 1674 "cgrammar.y"
                           { (yyval.expr) = exprNode_addParens ((yyvsp[-2].tok), (yyvsp[-1].expr)); }
#line 6853 "cgrammar.c"
    break;

  case 543: /* stmtErr: error  */
#line 1677 "cgrammar.y"
         { (yyval.expr) = exprNode_makeError (); }
#line 6859 "cgrammar.c"
    break;

  case 544: /* labeledStmt: newId TCOLON  */
#line 1681 "cgrammar.y"
                     { (yyval.expr) = exprNode_labelMarker ((yyvsp[-1].cname)); }
#line 6865 "cgrammar.c"
    break;

  case 545: /* labeledStmt: QNOTREACHED stmt  */
#line 1682 "cgrammar.y"
                     { (yyval.expr) = exprNode_notReached ((yyvsp[0].expr)); }
#line 6871 "cgrammar.c"
    break;

  case 548: /* $@43: %empty  */
#line 1698 "cgrammar.y"
                     { context_enterCaseClause ((yyvsp[0].expr)); }
#line 6877 "cgrammar.c"
    break;

  case 549: /* caseStmt: CASE constantExpr $@43 TCOLON  */
#line 1699 "cgrammar.y"
                     { (yyval.expr) = exprNode_caseMarker ((yyvsp[-2].expr), FALSE); }
#line 6883 "cgrammar.c"
    break;

  case 550: /* $@44: %empty  */
#line 1700 "cgrammar.y"
                                     { context_enterCaseClause ((yyvsp[0].expr)); }
#line 6889 "cgrammar.c"
    break;

  case 551: /* caseStmt: fallThroughList CASE constantExpr $@44 TCOLON  */
#line 1701 "cgrammar.y"
                     { (yyval.expr) = exprNode_caseMarker ((yyvsp[-2].expr), TRUE); }
#line 6895 "cgrammar.c"
    break;

  case 552: /* $@45: %empty  */
#line 1705 "cgrammar.y"
           { context_enterCaseClause (exprNode_undefined); }
#line 6901 "cgrammar.c"
    break;

  case 553: /* defaultStmt: DEFAULT $@45 TCOLON  */
#line 1706 "cgrammar.y"
          { (yyval.expr) = exprNode_defaultMarker ((yyvsp[-2].tok), FALSE); }
#line 6907 "cgrammar.c"
    break;

  case 554: /* $@46: %empty  */
#line 1707 "cgrammar.y"
                           { context_enterCaseClause (exprNode_undefined); }
#line 6913 "cgrammar.c"
    break;

  case 555: /* defaultStmt: fallThroughList DEFAULT $@46 TCOLON  */
#line 1708 "cgrammar.y"
          { (yyval.expr) = exprNode_defaultMarker ((yyvsp[-2].tok), TRUE); }
#line 6919 "cgrammar.c"
    break;

  case 556: /* compoundStmt: TLPAREN compoundStmt TRPAREN  */
#line 1712 "cgrammar.y"
                                { (yyval.expr) = (yyvsp[-1].expr); }
#line 6925 "cgrammar.c"
    break;

  case 557: /* compoundStmt: CreateInnerScope compoundStmtAux  */
#line 1714 "cgrammar.y"
   { (yyval.expr) = (yyvsp[0].expr); context_exitInner ((yyvsp[0].expr)); }
#line 6931 "cgrammar.c"
    break;

  case 558: /* compoundStmtErr: CreateInnerScope compoundStmtAuxErr DeleteInnerScope  */
#line 1718 "cgrammar.y"
                                                        { (yyval.expr) = (yyvsp[-1].expr); }
#line 6937 "cgrammar.c"
    break;

  case 559: /* CreateInnerScope: %empty  */
#line 1722 "cgrammar.y"
          { context_enterInnerContext (); }
#line 6943 "cgrammar.c"
    break;

  case 560: /* DeleteInnerScope: %empty  */
#line 1726 "cgrammar.y"
          { context_exitInnerPlain (); }
#line 6949 "cgrammar.c"
    break;

  case 561: /* CreateStructInnerScope: %empty  */
#line 1730 "cgrammar.y"
          { context_enterStructInnerContext (); }
#line 6955 "cgrammar.c"
    break;

  case 562: /* DeleteStructInnerScope: %empty  */
#line 1734 "cgrammar.y"
          { context_exitStructInnerContext (); }
#line 6961 "cgrammar.c"
    break;

  case 563: /* DeleteInnerScopeSafe: %empty  */
#line 1738 "cgrammar.y"
          { context_exitInnerSafe (); }
#line 6967 "cgrammar.c"
    break;

  case 566: /* initStmtList: typeDecl  */
#line 1744 "cgrammar.y"
            { (yyval.expr) = exprNode_undefined; }
#line 6973 "cgrammar.c"
    break;

  case 567: /* initStmtList: initStmtList initializer  */
#line 1745 "cgrammar.y"
                            { (yyval.expr) = exprNode_isDefined ((yyvsp[-1].expr)) ? exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)) : (yyvsp[0].expr); }
#line 6979 "cgrammar.c"
    break;

  case 568: /* initStmtList: initStmtList typeDecl  */
#line 1746 "cgrammar.y"
                         { (yyval.expr) = (yyvsp[-1].expr); }
#line 6985 "cgrammar.c"
    break;

  case 569: /* initStmtList: initStmtList stmt  */
#line 1747 "cgrammar.y"
                     { (yyval.expr) = exprNode_isDefined ((yyvsp[-1].expr)) ? exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)) : (yyvsp[0].expr); }
#line 6991 "cgrammar.c"
    break;

  case 570: /* compoundStmtAux: TLBRACE TRBRACE  */
#line 1752 "cgrammar.y"
   { (yyval.expr) = exprNode_makeBlock (exprNode_createTok ((yyvsp[0].tok))); }
#line 6997 "cgrammar.c"
    break;

  case 571: /* compoundStmtAux: TLBRACE initStmtList TRBRACE  */
#line 1754 "cgrammar.y"
   { (yyval.expr) = exprNode_makeBlock (exprNode_updateLocation ((yyvsp[-1].expr), lltok_getLoc ((yyvsp[0].tok)))); }
#line 7003 "cgrammar.c"
    break;

  case 574: /* initStmtListErr: typeDecl  */
#line 1760 "cgrammar.y"
            { (yyval.expr) = exprNode_undefined; }
#line 7009 "cgrammar.c"
    break;

  case 575: /* initStmtListErr: initStmtListErr initializer  */
#line 1761 "cgrammar.y"
                               { (yyval.expr) = exprNode_isDefined ((yyvsp[-1].expr)) ? exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)) : (yyvsp[0].expr); }
#line 7015 "cgrammar.c"
    break;

  case 576: /* initStmtListErr: initStmtListErr typeDecl  */
#line 1762 "cgrammar.y"
                            { (yyval.expr) = (yyvsp[-1].expr); }
#line 7021 "cgrammar.c"
    break;

  case 577: /* initStmtListErr: initStmtListErr stmtErr  */
#line 1763 "cgrammar.y"
                           { (yyval.expr) = exprNode_isDefined ((yyvsp[-1].expr)) ? exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)) : (yyvsp[0].expr); }
#line 7027 "cgrammar.c"
    break;

  case 578: /* compoundStmtAuxErr: TLBRACE TRBRACE  */
#line 1768 "cgrammar.y"
   { (yyval.expr) = exprNode_makeBlock (exprNode_createTok ((yyvsp[0].tok))); }
#line 7033 "cgrammar.c"
    break;

  case 579: /* compoundStmtAuxErr: TLBRACE initStmtListErr TRBRACE  */
#line 1770 "cgrammar.y"
   { (yyval.expr) = exprNode_makeBlock (exprNode_updateLocation ((yyvsp[-1].expr), lltok_getLoc ((yyvsp[0].tok)))); }
#line 7039 "cgrammar.c"
    break;

  case 581: /* initializerList: initializerList initializer  */
#line 1775 "cgrammar.y"
                               { (yyval.expr) = exprNode_concat ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 7045 "cgrammar.c"
    break;

  case 582: /* typeInitializerList: typeInitializer  */
#line 1779 "cgrammar.y"
                   { (yyval.expr) = (yyvsp[0].expr); }
#line 7051 "cgrammar.c"
    break;

  case 583: /* typeInitializerList: typeInitializerList TCOMMA typeInitializer  */
#line 1780 "cgrammar.y"
                                              { (yyval.expr) = exprNode_concat ((yyvsp[-2].expr), (yyvsp[0].expr)); }
#line 7057 "cgrammar.c"
    break;

  case 584: /* typeInitializer: assignExpr  */
#line 1784 "cgrammar.y"
              { (yyval.expr) = (yyvsp[0].expr); }
#line 7063 "cgrammar.c"
    break;

  case 585: /* typeInitializer: TLBRACE typeInitializerList optComma TRBRACE  */
#line 1785 "cgrammar.y"
                                                { (yyval.expr) = (yyvsp[-2].expr); }
#line 7069 "cgrammar.c"
    break;

  case 586: /* expressionStmt: TSEMI  */
#line 1789 "cgrammar.y"
         { (yyval.expr) = exprNode_createTok ((yyvsp[0].tok)); }
#line 7075 "cgrammar.c"
    break;

  case 587: /* expressionStmt: expr TSEMI  */
#line 1790 "cgrammar.y"
              { (yyval.expr) = exprNode_statement ((yyvsp[-1].expr), (yyvsp[0].tok)); }
#line 7081 "cgrammar.c"
    break;

  case 588: /* expressionStmtErr: TSEMI  */
#line 1794 "cgrammar.y"
         { (yyval.expr) = exprNode_createTok ((yyvsp[0].tok)); }
#line 7087 "cgrammar.c"
    break;

  case 589: /* expressionStmtErr: expr TSEMI  */
#line 1795 "cgrammar.y"
              { (yyval.expr) = exprNode_statement ((yyvsp[-1].expr), (yyvsp[0].tok)); }
#line 7093 "cgrammar.c"
    break;

  case 590: /* expressionStmtErr: expr  */
#line 1796 "cgrammar.y"
        { (yyval.expr) = exprNode_checkExpr ((yyvsp[0].expr)); }
#line 7099 "cgrammar.c"
    break;

  case 591: /* ifPred: CIF TLPAREN expr TRPAREN  */
#line 1801 "cgrammar.y"
   {
     exprNode_produceGuards ((yyvsp[-1].expr)); context_enterTrueClause ((yyvsp[-1].expr));
     exprNode_checkIfPred ((yyvsp[-1].expr));
     (yyval.expr) = (yyvsp[-1].expr);
   }
#line 7109 "cgrammar.c"
    break;

  case 592: /* selectionStmt: ifPred stmt  */
#line 1811 "cgrammar.y"
   {
     context_exitConditionalClause ((yyvsp[-1].expr), (yyvsp[0].expr), exprNode_undefined);
     (yyval.expr) = exprNode_if ((yyvsp[-1].expr), (yyvsp[0].expr));
   }
#line 7118 "cgrammar.c"
    break;

  case 593: /* $@47: %empty  */
#line 1815 "cgrammar.y"
                      { context_enterFalseClause ((yyvsp[-2].expr)); }
#line 7124 "cgrammar.c"
    break;

  case 594: /* selectionStmt: ifPred stmt CELSE $@47 stmt  */
#line 1816 "cgrammar.y"
   {
     context_exitConditionalClause ((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[0].expr));
     (yyval.expr) = exprNode_ifelse ((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[0].expr));
   }
#line 7133 "cgrammar.c"
    break;

  case 595: /* $@48: %empty  */
#line 1820 "cgrammar.y"
                       { context_enterSwitch ((yyvsp[0].expr)); }
#line 7139 "cgrammar.c"
    break;

  case 596: /* selectionStmt: SWITCH TLPAREN expr $@48 TRPAREN stmt  */
#line 1821 "cgrammar.y"
                       { (yyval.expr) = exprNode_switch ((yyvsp[-3].expr), (yyvsp[0].expr)); }
#line 7145 "cgrammar.c"
    break;

  case 597: /* whilePred: WHILE TLPAREN expr TRPAREN  */
#line 1826 "cgrammar.y"
   { (yyval.expr) = exprNode_whilePred ((yyvsp[-1].expr)); context_enterWhileClause ((yyvsp[-1].expr)); }
#line 7151 "cgrammar.c"
    break;

  case 598: /* iterWhilePred: WHILE TLPAREN expr TRPAREN  */
#line 1831 "cgrammar.y"
                              { (yyval.expr) = exprNode_whilePred((yyvsp[-1].expr)); }
#line 7157 "cgrammar.c"
    break;

  case 599: /* $@49: %empty  */
#line 1835 "cgrammar.y"
             { context_enterIterClause (); }
#line 7163 "cgrammar.c"
    break;

  case 600: /* $@50: %empty  */
#line 1836 "cgrammar.y"
                            { setProcessingIterVars ((yyvsp[-3].entry)); }
#line 7169 "cgrammar.c"
    break;

  case 601: /* iterStmt: ITER_NAME $@49 CreateInnerScope TLPAREN $@50 iterArgList TRPAREN compoundStmt endIter DeleteInnerScope  */
#line 1839 "cgrammar.y"
   { (yyval.expr) = exprNode_iter ((yyvsp[-9].entry), (yyvsp[-4].exprlist), (yyvsp[-2].expr), (yyvsp[-1].entry)); }
#line 7175 "cgrammar.c"
    break;

  case 602: /* iterArgList: iterArgExpr  */
#line 1843 "cgrammar.y"
               { (yyval.exprlist) = exprNodeList_singleton ((yyvsp[0].expr)); }
#line 7181 "cgrammar.c"
    break;

  case 603: /* $@51: %empty  */
#line 1844 "cgrammar.y"
               { nextIterParam (); }
#line 7187 "cgrammar.c"
    break;

  case 604: /* iterArgList: iterArgList $@51 TCOMMA iterArgExpr  */
#line 1845 "cgrammar.y"
   { (yyval.exprlist) = exprNodeList_push ((yyvsp[-3].exprlist), (yyvsp[0].expr)); }
#line 7193 "cgrammar.c"
    break;

  case 605: /* iterArgExpr: assignIterExpr  */
#line 1849 "cgrammar.y"
                    { (yyval.expr) = exprNode_iterExpr ((yyvsp[0].expr)); }
#line 7199 "cgrammar.c"
    break;

  case 606: /* iterArgExpr: id  */
#line 1850 "cgrammar.y"
                    { (yyval.expr) = exprNode_iterId ((yyvsp[0].entry)); }
#line 7205 "cgrammar.c"
    break;

  case 607: /* iterArgExpr: NEW_IDENTIFIER  */
#line 1851 "cgrammar.y"
                    { (yyval.expr) = exprNode_iterNewId ((yyvsp[0].cname)); }
#line 7211 "cgrammar.c"
    break;

  case 609: /* cconstantExpr: cconstantExpr CCONSTANT  */
#line 1860 "cgrammar.y"
                           { (yyval.expr) = exprNode_combineLiterals ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 7217 "cgrammar.c"
    break;

  case 611: /* primaryIterExpr: TLPAREN expr TRPAREN  */
#line 1865 "cgrammar.y"
                        { (yyval.expr) = exprNode_addParens ((yyvsp[-2].tok), (yyvsp[-1].expr)); }
#line 7223 "cgrammar.c"
    break;

  case 613: /* postfixIterExpr: postfixExpr TLSQBR expr TRSQBR  */
#line 1870 "cgrammar.y"
                                  { (yyval.expr) = exprNode_arrayFetch ((yyvsp[-3].expr), (yyvsp[-1].expr)); }
#line 7229 "cgrammar.c"
    break;

  case 614: /* postfixIterExpr: postfixExpr TLPAREN TRPAREN  */
#line 1871 "cgrammar.y"
                               { (yyval.expr) = exprNode_functionCall ((yyvsp[-2].expr), exprNodeList_new ()); }
#line 7235 "cgrammar.c"
    break;

  case 615: /* postfixIterExpr: postfixExpr TLPAREN argumentExprList TRPAREN  */
#line 1872 "cgrammar.y"
                                                { (yyval.expr) = exprNode_functionCall ((yyvsp[-3].expr), (yyvsp[-1].exprlist)); }
#line 7241 "cgrammar.c"
    break;

  case 616: /* postfixIterExpr: VA_ARG TLPAREN assignExpr TCOMMA typeExpression TRPAREN  */
#line 1874 "cgrammar.y"
       { (yyval.expr) = exprNode_vaArg ((yyvsp[-5].tok), (yyvsp[-3].expr), (yyvsp[-1].qtyp)); }
#line 7247 "cgrammar.c"
    break;

  case 617: /* postfixIterExpr: postfixExpr NotType TDOT newId IsType  */
#line 1875 "cgrammar.y"
                                         { (yyval.expr) = exprNode_fieldAccess ((yyvsp[-4].expr), (yyvsp[-2].tok), (yyvsp[-1].cname)); }
#line 7253 "cgrammar.c"
    break;

  case 618: /* postfixIterExpr: postfixExpr NotType ARROW_OP newId IsType  */
#line 1876 "cgrammar.y"
                                             { (yyval.expr) = exprNode_arrowAccess ((yyvsp[-4].expr), (yyvsp[-2].tok), (yyvsp[-1].cname)); }
#line 7259 "cgrammar.c"
    break;

  case 619: /* postfixIterExpr: postfixExpr INC_OP  */
#line 1877 "cgrammar.y"
                      { (yyval.expr) = exprNode_postOp ((yyvsp[-1].expr), (yyvsp[0].tok)); }
#line 7265 "cgrammar.c"
    break;

  case 620: /* postfixIterExpr: postfixExpr DEC_OP  */
#line 1878 "cgrammar.y"
                      { (yyval.expr) = exprNode_postOp ((yyvsp[-1].expr), (yyvsp[0].tok)); }
#line 7271 "cgrammar.c"
    break;

  case 622: /* unaryIterExpr: INC_OP unaryExpr  */
#line 1883 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7277 "cgrammar.c"
    break;

  case 623: /* unaryIterExpr: DEC_OP unaryExpr  */
#line 1884 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7283 "cgrammar.c"
    break;

  case 624: /* unaryIterExpr: TAMPERSAND castExpr  */
#line 1885 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7289 "cgrammar.c"
    break;

  case 625: /* unaryIterExpr: TMULT castExpr  */
#line 1886 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7295 "cgrammar.c"
    break;

  case 626: /* unaryIterExpr: TPLUS castExpr  */
#line 1887 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7301 "cgrammar.c"
    break;

  case 627: /* unaryIterExpr: TMINUS castExpr  */
#line 1888 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7307 "cgrammar.c"
    break;

  case 628: /* unaryIterExpr: TTILDE castExpr  */
#line 1889 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7313 "cgrammar.c"
    break;

  case 629: /* unaryIterExpr: TEXCL castExpr  */
#line 1890 "cgrammar.y"
                       { (yyval.expr) = exprNode_preOp ((yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7319 "cgrammar.c"
    break;

  case 630: /* unaryIterExpr: sizeofExpr  */
#line 1891 "cgrammar.y"
                       { (yyval.expr) = (yyvsp[0].expr); }
#line 7325 "cgrammar.c"
    break;

  case 632: /* castIterExpr: TLPAREN typeExpression TRPAREN castExpr  */
#line 1896 "cgrammar.y"
                                           { (yyval.expr) = exprNode_cast ((yyvsp[-3].tok), (yyvsp[0].expr), (yyvsp[-2].qtyp)); }
#line 7331 "cgrammar.c"
    break;

  case 634: /* timesIterExpr: timesExpr TMULT castExpr  */
#line 1901 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7337 "cgrammar.c"
    break;

  case 635: /* timesIterExpr: timesExpr TDIV castExpr  */
#line 1902 "cgrammar.y"
                           { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7343 "cgrammar.c"
    break;

  case 636: /* timesIterExpr: timesExpr TPERCENT castExpr  */
#line 1903 "cgrammar.y"
                               { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7349 "cgrammar.c"
    break;

  case 638: /* plusIterExpr: plusExpr TPLUS timesExpr  */
#line 1908 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7355 "cgrammar.c"
    break;

  case 639: /* plusIterExpr: plusExpr TMINUS timesExpr  */
#line 1909 "cgrammar.y"
                             { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7361 "cgrammar.c"
    break;

  case 641: /* shiftIterExpr: shiftExpr LEFT_OP plusExpr  */
#line 1914 "cgrammar.y"
                              { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7367 "cgrammar.c"
    break;

  case 642: /* shiftIterExpr: shiftExpr RIGHT_OP plusExpr  */
#line 1915 "cgrammar.y"
                               { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7373 "cgrammar.c"
    break;

  case 644: /* relationalIterExpr: relationalExpr TLT shiftExpr  */
#line 1920 "cgrammar.y"
                                { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7379 "cgrammar.c"
    break;

  case 645: /* relationalIterExpr: relationalExpr TGT shiftExpr  */
#line 1921 "cgrammar.y"
                                { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7385 "cgrammar.c"
    break;

  case 646: /* relationalIterExpr: relationalExpr LE_OP shiftExpr  */
#line 1922 "cgrammar.y"
                                  { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7391 "cgrammar.c"
    break;

  case 647: /* relationalIterExpr: relationalExpr GE_OP shiftExpr  */
#line 1923 "cgrammar.y"
                                  { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7397 "cgrammar.c"
    break;

  case 649: /* equalityIterExpr: equalityExpr EQ_OP relationalExpr  */
#line 1928 "cgrammar.y"
                                     { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7403 "cgrammar.c"
    break;

  case 650: /* equalityIterExpr: equalityExpr NE_OP relationalExpr  */
#line 1929 "cgrammar.y"
                                     { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7409 "cgrammar.c"
    break;

  case 652: /* bitandIterExpr: bitandExpr TAMPERSAND equalityExpr  */
#line 1934 "cgrammar.y"
                                      { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7415 "cgrammar.c"
    break;

  case 654: /* xorIterExpr: xorExpr TCIRC bitandExpr  */
#line 1939 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7421 "cgrammar.c"
    break;

  case 656: /* bitorIterExpr: bitorExpr TBAR xorExpr  */
#line 1944 "cgrammar.y"
                          { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7427 "cgrammar.c"
    break;

  case 658: /* andIterExpr: andExpr AND_OP bitorExpr  */
#line 1949 "cgrammar.y"
                            { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7433 "cgrammar.c"
    break;

  case 660: /* orIterExpr: orExpr OR_OP andExpr  */
#line 1954 "cgrammar.y"
                        { (yyval.expr) = exprNode_op ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7439 "cgrammar.c"
    break;

  case 662: /* $@52: %empty  */
#line 1959 "cgrammar.y"
                 { context_enterTrueClause ((yyvsp[-1].expr)); }
#line 7445 "cgrammar.c"
    break;

  case 663: /* $@53: %empty  */
#line 1960 "cgrammar.y"
          { context_enterFalseClause ((yyvsp[-3].expr)); }
#line 7451 "cgrammar.c"
    break;

  case 664: /* conditionalIterExpr: orExpr TQUEST $@52 TCOLON $@53 conditionalExpr  */
#line 1961 "cgrammar.y"
   { (yyval.expr) = exprNode_condIfOmit ((yyvsp[-5].expr), (yyvsp[0].expr)); }
#line 7457 "cgrammar.c"
    break;

  case 665: /* $@54: %empty  */
#line 1962 "cgrammar.y"
                 { context_enterTrueClause ((yyvsp[-1].expr)); }
#line 7463 "cgrammar.c"
    break;

  case 666: /* $@55: %empty  */
#line 1963 "cgrammar.y"
               { context_enterFalseClause ((yyvsp[-4].expr)); }
#line 7469 "cgrammar.c"
    break;

  case 667: /* conditionalIterExpr: orExpr TQUEST $@54 expr TCOLON $@55 conditionalExpr  */
#line 1964 "cgrammar.y"
   { (yyval.expr) = exprNode_cond ((yyvsp[-6].expr), (yyvsp[-3].expr), (yyvsp[0].expr)); }
#line 7475 "cgrammar.c"
    break;

  case 669: /* assignIterExpr: unaryExpr TASSIGN assignExpr  */
#line 1969 "cgrammar.y"
                                { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7481 "cgrammar.c"
    break;

  case 670: /* assignIterExpr: unaryExpr MUL_ASSIGN assignExpr  */
#line 1970 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7487 "cgrammar.c"
    break;

  case 671: /* assignIterExpr: unaryExpr DIV_ASSIGN assignExpr  */
#line 1971 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7493 "cgrammar.c"
    break;

  case 672: /* assignIterExpr: unaryExpr MOD_ASSIGN assignExpr  */
#line 1972 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7499 "cgrammar.c"
    break;

  case 673: /* assignIterExpr: unaryExpr ADD_ASSIGN assignExpr  */
#line 1973 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7505 "cgrammar.c"
    break;

  case 674: /* assignIterExpr: unaryExpr SUB_ASSIGN assignExpr  */
#line 1974 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7511 "cgrammar.c"
    break;

  case 675: /* assignIterExpr: unaryExpr LEFT_ASSIGN assignExpr  */
#line 1975 "cgrammar.y"
                                    { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7517 "cgrammar.c"
    break;

  case 676: /* assignIterExpr: unaryExpr RIGHT_ASSIGN assignExpr  */
#line 1976 "cgrammar.y"
                                     { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7523 "cgrammar.c"
    break;

  case 677: /* assignIterExpr: unaryExpr AND_ASSIGN assignExpr  */
#line 1977 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7529 "cgrammar.c"
    break;

  case 678: /* assignIterExpr: unaryExpr XOR_ASSIGN assignExpr  */
#line 1978 "cgrammar.y"
                                   { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7535 "cgrammar.c"
    break;

  case 679: /* assignIterExpr: unaryExpr OR_ASSIGN assignExpr  */
#line 1979 "cgrammar.y"
                                  { (yyval.expr) = exprNode_assign ((yyvsp[-2].expr), (yyvsp[0].expr), (yyvsp[-1].tok)); }
#line 7541 "cgrammar.c"
    break;

  case 680: /* endIter: %empty  */
#line 1983 "cgrammar.y"
                { (yyval.entry) = uentry_undefined; }
#line 7547 "cgrammar.c"
    break;

  case 681: /* endIter: ITER_ENDNAME  */
#line 1984 "cgrammar.y"
                { (yyval.entry) = (yyvsp[0].entry); }
#line 7553 "cgrammar.c"
    break;

  case 682: /* doHeader: DO  */
#line 1988 "cgrammar.y"
      { context_enterDoWhileClause (); (yyval.tok) = (yyvsp[0].tok); }
#line 7559 "cgrammar.c"
    break;

  case 683: /* iterationStmt: whilePred stmt  */
#line 1993 "cgrammar.y"
   { (yyval.expr) = exprNode_while ((yyvsp[-1].expr), (yyvsp[0].expr)); context_exitWhileClause ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 7565 "cgrammar.c"
    break;

  case 684: /* iterationStmt: doHeader stmt WHILE TLPAREN expr TRPAREN TSEMI  */
#line 1995 "cgrammar.y"
   { (yyval.expr) = exprNode_statement (exprNode_doWhile ((yyvsp[-5].expr), (yyvsp[-2].expr)), (yyvsp[0].tok)); }
#line 7571 "cgrammar.c"
    break;

  case 685: /* $@56: %empty  */
#line 1996 "cgrammar.y"
   { context_enterInnerContext (); }
#line 7577 "cgrammar.c"
    break;

  case 686: /* iterationStmt: $@56 forPred stmt  */
#line 1997 "cgrammar.y"
   { (yyval.expr) = exprNode_for ((yyvsp[-1].expr), (yyvsp[0].expr)); context_exitForClause ((yyvsp[-1].expr), (yyvsp[0].expr)); context_exitInnerPlain(); }
#line 7583 "cgrammar.c"
    break;

  case 687: /* iterationStmtErr: whilePred stmtErr  */
#line 2001 "cgrammar.y"
                     { (yyval.expr) = exprNode_while ((yyvsp[-1].expr), (yyvsp[0].expr)); context_exitWhileClause ((yyvsp[-1].expr), (yyvsp[0].expr)); }
#line 7589 "cgrammar.c"
    break;

  case 688: /* iterationStmtErr: doHeader stmtErr WHILE TLPAREN expr TRPAREN TSEMI  */
#line 2003 "cgrammar.y"
   { (yyval.expr) = exprNode_statement (exprNode_doWhile ((yyvsp[-5].expr), (yyvsp[-2].expr)), (yyvsp[0].tok)); }
#line 7595 "cgrammar.c"
    break;

  case 689: /* iterationStmtErr: doHeader stmtErr WHILE TLPAREN expr TRPAREN  */
#line 2005 "cgrammar.y"
   { (yyval.expr) = exprNode_doWhile ((yyvsp[-4].expr), (yyvsp[-1].expr)); }
#line 7601 "cgrammar.c"
    break;

  case 690: /* $@57: %empty  */
#line 2006 "cgrammar.y"
   { context_enterInnerContext (); }
#line 7607 "cgrammar.c"
    break;

  case 691: /* iterationStmtErr: $@57 forPred stmtErr  */
#line 2007 "cgrammar.y"
   { (yyval.expr) = exprNode_for ((yyvsp[-1].expr), (yyvsp[0].expr)); context_exitForClause ((yyvsp[-1].expr), (yyvsp[0].expr)); context_exitInnerPlain(); }
#line 7613 "cgrammar.c"
    break;

  case 692: /* jumpStmt: GOTO newId TSEMI  */
#line 2011 "cgrammar.y"
                            { (yyval.expr) = exprNode_goto ((yyvsp[-1].cname)); }
#line 7619 "cgrammar.c"
    break;

  case 693: /* jumpStmt: CONTINUE TSEMI  */
#line 2012 "cgrammar.y"
                            { (yyval.expr) = exprNode_continue ((yyvsp[-1].tok), BADTOK); }
#line 7625 "cgrammar.c"
    break;

  case 694: /* jumpStmt: QINNERCONTINUE CONTINUE TSEMI  */
#line 2014 "cgrammar.y"
                            { (yyval.expr) = exprNode_continue ((yyvsp[-2].tok), QINNERCONTINUE); }
#line 7631 "cgrammar.c"
    break;

  case 695: /* jumpStmt: BREAK TSEMI  */
#line 2015 "cgrammar.y"
                            { (yyval.expr) = exprNode_break ((yyvsp[-1].tok), BADTOK); }
#line 7637 "cgrammar.c"
    break;

  case 696: /* jumpStmt: QSWITCHBREAK BREAK TSEMI  */
#line 2016 "cgrammar.y"
                            { (yyval.expr) = exprNode_break ((yyvsp[-1].tok), QSWITCHBREAK); }
#line 7643 "cgrammar.c"
    break;

  case 697: /* jumpStmt: QLOOPBREAK BREAK TSEMI  */
#line 2017 "cgrammar.y"
                            { (yyval.expr) = exprNode_break ((yyvsp[-1].tok), QLOOPBREAK); }
#line 7649 "cgrammar.c"
    break;

  case 698: /* jumpStmt: QINNERBREAK BREAK TSEMI  */
#line 2018 "cgrammar.y"
                            { (yyval.expr) = exprNode_break ((yyvsp[-1].tok), QINNERBREAK); }
#line 7655 "cgrammar.c"
    break;

  case 699: /* jumpStmt: QSAFEBREAK BREAK TSEMI  */
#line 2019 "cgrammar.y"
                            { (yyval.expr) = exprNode_break ((yyvsp[-1].tok), QSAFEBREAK); }
#line 7661 "cgrammar.c"
    break;

  case 700: /* jumpStmt: RETURN TSEMI  */
#line 2020 "cgrammar.y"
                            { (yyval.expr) = exprNode_nullReturn ((yyvsp[-1].tok)); }
#line 7667 "cgrammar.c"
    break;

  case 701: /* jumpStmt: RETURN expr TSEMI  */
#line 2021 "cgrammar.y"
                            { (yyval.expr) = exprNode_return ((yyvsp[-1].expr)); }
#line 7673 "cgrammar.c"
    break;

  case 708: /* newId: ITER_NAME  */
#line 2040 "cgrammar.y"
                   { (yyval.cname) = uentry_getName ((yyvsp[0].entry)); }
#line 7679 "cgrammar.c"
    break;

  case 709: /* newId: ITER_ENDNAME  */
#line 2041 "cgrammar.y"
                   { (yyval.cname) = uentry_getName ((yyvsp[0].entry)); }
#line 7685 "cgrammar.c"
    break;

  case 710: /* newId: id  */
#line 2042 "cgrammar.y"
                   { (yyval.cname) = uentry_getName ((yyvsp[0].entry)); }
#line 7691 "cgrammar.c"
    break;

  case 712: /* typeName: CTYPEOF TLPAREN expr TRPAREN  */
#line 2047 "cgrammar.y"
                                { (yyval.ctyp) = exprNode_getType ((yyvsp[-1].expr)); exprNode_free ((yyvsp[-1].expr)); }
#line 7697 "cgrammar.c"
    break;

  case 713: /* typeName: CTYPEOF TLPAREN typeExpression TRPAREN  */
#line 2048 "cgrammar.y"
                                          { (yyval.ctyp) = qtype_getType ((yyvsp[-1].qtyp)); }
#line 7703 "cgrammar.c"
    break;


#line 7707 "cgrammar.c"

      default: break;
    }
  /* User semantic actions sometimes alter yychar, and that requires
     that yytoken be updated with the new translation.  We take the
     approach of translating immediately before every use of yytoken.
     One alternative is translating here after every semantic action,
     but that translation would be missed if the semantic action invokes
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
     incorrect destructor might then be invoked immediately.  In the
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
     to an incorrect destructor call or verbose syntax error message
     before the lookahead is translated.  */
  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;

  *++yyvsp = yyval;

  /* Now 'shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */
  {
    const int yylhs = yyr1[yyn] - YYNTOKENS;
    const int yyi = yypgoto[yylhs] + *yyssp;
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
               ? yytable[yyi]
               : yydefgoto[yylhs]);
  }

  goto yynewstate;


/*--------------------------------------.
| yyerrlab -- here on detecting error.  |
`--------------------------------------*/
yyerrlab:
  /* Make sure we have latest lookahead translation.  See comments at
     user semantic actions for why this is necessary.  */
  yytoken = yychar == C_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
      yyerror (YY_("syntax error"));
    }

  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */

      if (yychar <= C_EOF)
        {
          /* Return failure if at end of input.  */
          if (yychar == C_EOF)
            YYABORT;
        }
      else
        {
          yydestruct ("Error: discarding",
                      yytoken, &yylval);
          yychar = C_EMPTY;
        }
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:
  /* Pacify compilers when the user code never invokes YYERROR and the
     label yyerrorlab therefore never appears in user code.  */
  if (0)
    YYERROR;
  ++yynerrs;

  /* Do not reclaim the symbols of the rule whose action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */

  /* Pop stack until we find a state that shifts the error token.  */
  for (;;)
    {
      yyn = yypact[yystate];
      if (!yypact_value_is_default (yyn))
        {
          yyn += YYSYMBOL_YYerror;
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
            {
              yyn = yytable[yyn];
              if (0 < yyn)
                break;
            }
        }

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
        YYABORT;


      yydestruct ("Error: popping",
                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  *++yyvsp = yylval;
  YY_IGNORE_MAYBE_UNINITIALIZED_END


  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturnlab;


/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturnlab;


/*-----------------------------------------------------------.
| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
`-----------------------------------------------------------*/
yyexhaustedlab:
  yyerror (YY_("memory exhausted"));
  yyresult = 2;
  goto yyreturnlab;


/*----------------------------------------------------------.
| yyreturnlab -- parsing is finished, clean up and return.  |
`----------------------------------------------------------*/
yyreturnlab:
  if (yychar != C_EMPTY)
    {
      /* Make sure we have latest lookahead translation.  See comments at
         user semantic actions for why this is necessary.  */
      yytoken = YYTRANSLATE (yychar);
      yydestruct ("Cleanup: discarding lookahead",
                  yytoken, &yylval);
    }
  /* Do not reclaim the symbols of the rule whose action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif

  return yyresult;
}

#line 2051 "cgrammar.y"


# include "bison.reset"

static void
c_error (const /*@unused@*/ char *s)
{
  static bool givehint = FALSE;

  if (context_inIterDef ())
    {
      llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
				    context_inFunctionName ()));
    }
  else if (context_inIterEnd ())
    {
      llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
				    context_inFunctionName ()));
    }
  else if (context_inMacro ())
    {
      llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
				    context_inFunctionName ()));

      if (context_inUnknownMacro ())
	{
	  if (!givehint)
	    {
	      llhint (cstring_makeLiteral
		     ("Precede macro definition with /*@notfunction@*/ "
		      "to suppress checking and force expansion"));
	      givehint = TRUE;
	    }
	}

      cscannerHelp_swallowMacro ();
      context_exitAllClausesQuiet ();
    }
  else
    {
      llparseerror (cstring_undefined);
    }
}

