Changeset ac71a86


Ignore:
Timestamp:
Aug 19, 2016, 12:57:05 PM (7 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
04cdd9b, 2037f82
Parents:
8b7ee09
Message:

removed more memory leaks from the system

Location:
src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r8b7ee09 rac71a86  
    300300        newnode->type->array->dimension = size;
    301301        newnode->type->array->isStatic = isStatic;
    302         if ( newnode->type->array->dimension == 0 || dynamic_cast< ConstantExpr * >( newnode->type->array->dimension->build() ) ) {
     302        if ( newnode->type->array->dimension == 0 || newnode->type->array->dimension->isExpressionType<ConstantExpr *>() ) {
    303303                newnode->type->array->isVarLen = false;
    304304        } else {
  • src/Parser/ExpressionNode.cc

    r8b7ee09 rac71a86  
    5757static inline bool checkX( char c ) { return c == 'x' || c == 'X'; }
    5858
    59 Expression *build_constantInteger( std::string & str ) {
     59Expression *build_constantInteger( const std::string & str ) {
    6060        static const BasicType::Kind kind[2][3] = {
    6161                { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt },
     
    123123} // build_constantInteger
    124124
    125 Expression *build_constantFloat( std::string & str ) {
     125Expression *build_constantFloat( const std::string & str ) {
    126126        static const BasicType::Kind kind[2][3] = {
    127127                { BasicType::Float, BasicType::Double, BasicType::LongDouble },
     
    153153} // build_constantFloat
    154154
    155 Expression *build_constantChar( std::string & str ) {
     155Expression *build_constantChar( const std::string & str ) {
    156156        return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) );
    157157} // build_constantChar
    158158
    159 ConstantExpr *build_constantStr( std::string & str ) {
     159ConstantExpr *build_constantStr( const std::string & str ) {
    160160        // string should probably be a primitive type
    161161        ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ),
     
    213213}
    214214Expression *build_sizeOftype( DeclarationNode *decl_node ) {
    215         return new SizeofExpr( decl_node->buildType() );
     215        Expression* ret = new SizeofExpr( decl_node->buildType() );
     216        delete decl_node;
     217        return ret;
    216218}
    217219Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
     
    222224}
    223225Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) {
    224         return new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() );
     226        Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() );
     227        delete decl_node;
     228        delete member;
     229        return ret;
    225230}
    226231
  • src/Parser/ParseNode.h

    r8b7ee09 rac71a86  
    103103//##############################################################################
    104104
    105 class ExpressionNode : public ParseNode {
     105class ExpressionNode final : public ParseNode {
    106106  public:
    107107        ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {}
     
    114114        ExpressionNode *set_extension( bool exten ) { extension = exten; return this; }
    115115
    116         virtual void print( std::ostream &os, int indent = 0 ) const {}
    117         virtual void printOneLine( std::ostream &os, int indent = 0 ) const {}
    118 
    119         virtual Expression *build() const { return expr; }
     116        void print( std::ostream &os, int indent = 0 ) const {}
     117        void printOneLine( std::ostream &os, int indent = 0 ) const {}
     118
     119        template<typename T>
     120        bool isExpressionType() const {
     121                return nullptr != dynamic_cast<T>(expr.get());
     122        }
     123
     124        Expression *build() const { return const_cast<ExpressionNode*>(this)->expr.release(); }
    120125  private:
    121126        bool extension = false;
    122         Expression *expr;
     127        std::unique_ptr<Expression> expr;
    123128};
    124129
     
    151156};
    152157
    153 Expression *build_constantInteger( std::string &str );
    154 Expression *build_constantFloat( std::string &str );
    155 Expression *build_constantChar( std::string &str );
    156 ConstantExpr *build_constantStr( std::string &str );
     158Expression *build_constantInteger( const std::string &str );
     159Expression *build_constantFloat( const std::string &str );
     160Expression *build_constantChar( const std::string &str );
     161ConstantExpr *build_constantStr( const std::string &str );
    157162
    158163NameExpr *build_varref( const std::string *name, bool labelp = false );
     
    304309//##############################################################################
    305310
    306 class StatementNode : public ParseNode {
     311class StatementNode final : public ParseNode {
    307312  public:
    308313        StatementNode() { stmt = nullptr; }
     
    311316        virtual ~StatementNode() {}
    312317
    313         virtual StatementNode *clone() const { assert( false ); return nullptr; }
    314         virtual Statement *build() const { return stmt; }
     318        virtual StatementNode *clone() const final { assert( false ); return nullptr; }
     319        Statement *build() const { return const_cast<StatementNode*>(this)->stmt.release(); }
    315320
    316321        virtual StatementNode *add_label( const std::string * name ) {
    317322                stmt->get_labels().emplace_back( *name );
     323                delete name;
    318324                return this;
    319325        }
     
    324330        virtual void printList( std::ostream &os, int indent = 0 ) {}
    325331  private:
    326         Statement *stmt;
     332        std::unique_ptr<Statement> stmt;
    327333}; // StatementNode
    328334
  • src/Parser/StatementNode.cc

    r8b7ee09 rac71a86  
    4444                        agg = decl;
    4545                } // if
    46                 stmt = new DeclStmt( noLabels, maybeBuild< Declaration >(agg) );
     46                stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) );
    4747        } else {
    4848                assert( false );
     
    5656                StatementNode *node = dynamic_cast< StatementNode * >(curr);
    5757                assert( node );
    58                 assert( dynamic_cast< CaseStmt * >(node->stmt) );
     58                assert( dynamic_cast< CaseStmt * >(node->stmt.get()) );
    5959                prev = curr;
    6060        } // for
     
    6464        buildMoveList( stmt, stmts );
    6565        // splice any new Statements to end of current Statements
    66         CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt);
     66        CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt.get());
    6767        caseStmt->get_statements().splice( caseStmt->get_statements().end(), stmts );
    6868        return this;
     
    153153        std::list< Expression * > exps;
    154154        buildMoveList( ctl, exps );
    155         return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr, true );
     155        assertf( exps.size() < 2, "This means we are leaking memory");
     156        return new ReturnStmt( noLabels, !exps.empty() ? exps.back() : nullptr, true );
    156157}
    157158
  • src/Parser/parser.cc

    r8b7ee09 rac71a86  
    1 /* A Bison parser, made by GNU Bison 2.5.  */
     1/* A Bison parser, made by GNU Bison 3.0.2.  */
    22
    33/* Bison implementation for Yacc-like parsers in C
    4    
    5       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    6    
     4
     5   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
     6
    77   This program is free software: you can redistribute it and/or modify
    88   it under the terms of the GNU General Public License as published by
    99   the Free Software Foundation, either version 3 of the License, or
    1010   (at your option) any later version.
    11    
     11
    1212   This program is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1515   GNU General Public License for more details.
    16    
     16
    1717   You should have received a copy of the GNU General Public License
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     
    2727   Bison output files to be licensed under the GNU General Public
    2828   License without this special exception.
    29    
     29
    3030   This special exception was added by the Free Software Foundation in
    3131   version 2.2 of Bison.  */
     
    4545
    4646/* Bison version.  */
    47 #define YYBISON_VERSION "2.5"
     47#define YYBISON_VERSION "3.0.2"
    4848
    4949/* Skeleton name.  */
     
    5959#define YYPULL 1
    6060
    61 /* Using locations.  */
    62 #define YYLSP_NEEDED 0
    6361
    6462
    6563
    6664/* Copy the first part of user declarations.  */
    67 
    68 /* Line 268 of yacc.c  */
    69 #line 42 "parser.yy"
     65#line 42 "parser.yy" /* yacc.c:339  */
    7066
    7167#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    9490} // appendStr
    9591
    96 
    97 /* Line 268 of yacc.c  */
    98 #line 99 "Parser/parser.cc"
    99 
    100 /* Enabling traces.  */
    101 #ifndef YYDEBUG
    102 # define YYDEBUG 1
    103 #endif
     92#line 93 "Parser/parser.cc" /* yacc.c:339  */
     93
     94# ifndef YY_NULLPTR
     95#  if defined __cplusplus && 201103L <= __cplusplus
     96#   define YY_NULLPTR nullptr
     97#  else
     98#   define YY_NULLPTR 0
     99#  endif
     100# endif
    104101
    105102/* Enabling verbose error messages.  */
     
    111108#endif
    112109
    113 /* Enabling the token table.  */
    114 #ifndef YYTOKEN_TABLE
    115 # define YYTOKEN_TABLE 0
     110/* In a future release of Bison, this section will be replaced
     111   by #include "y.tab.h".  */
     112#ifndef YY_YY_Y_TAB_H_INCLUDED
     113# define YY_YY_Y_TAB_H_INCLUDED
     114/* Debug traces.  */
     115#ifndef YYDEBUG
     116# define YYDEBUG 1
    116117#endif
    117 
    118 
    119 /* Tokens.  */
     118#if YYDEBUG
     119extern int yydebug;
     120#endif
     121
     122/* Token type.  */
    120123#ifndef YYTOKENTYPE
    121124# define YYTOKENTYPE
    122    /* Put the tokens into the symbol table, so that GDB and other debuggers
    123       know about them.  */
    124    enum yytokentype {
    125      TYPEDEF = 258,
    126      AUTO = 259,
    127      EXTERN = 260,
    128      REGISTER = 261,
    129      STATIC = 262,
    130      INLINE = 263,
    131      FORTRAN = 264,
    132      CONST = 265,
    133      VOLATILE = 266,
    134      RESTRICT = 267,
    135      FORALL = 268,
    136      LVALUE = 269,
    137      VOID = 270,
    138      CHAR = 271,
    139      SHORT = 272,
    140      INT = 273,
    141      LONG = 274,
    142      FLOAT = 275,
    143      DOUBLE = 276,
    144      SIGNED = 277,
    145      UNSIGNED = 278,
    146      VALIST = 279,
    147      BOOL = 280,
    148      COMPLEX = 281,
    149      IMAGINARY = 282,
    150      TYPEOF = 283,
    151      LABEL = 284,
    152      ENUM = 285,
    153      STRUCT = 286,
    154      UNION = 287,
    155      OTYPE = 288,
    156      FTYPE = 289,
    157      DTYPE = 290,
    158      TRAIT = 291,
    159      SIZEOF = 292,
    160      OFFSETOF = 293,
    161      ATTRIBUTE = 294,
    162      EXTENSION = 295,
    163      IF = 296,
    164      ELSE = 297,
    165      SWITCH = 298,
    166      CASE = 299,
    167      DEFAULT = 300,
    168      DO = 301,
    169      WHILE = 302,
    170      FOR = 303,
    171      BREAK = 304,
    172      CONTINUE = 305,
    173      GOTO = 306,
    174      RETURN = 307,
    175      CHOOSE = 308,
    176      DISABLE = 309,
    177      ENABLE = 310,
    178      FALLTHRU = 311,
    179      TRY = 312,
    180      CATCH = 313,
    181      CATCHRESUME = 314,
    182      FINALLY = 315,
    183      THROW = 316,
    184      THROWRESUME = 317,
    185      AT = 318,
    186      ASM = 319,
    187      ALIGNAS = 320,
    188      ALIGNOF = 321,
    189      ATOMIC = 322,
    190      GENERIC = 323,
    191      NORETURN = 324,
    192      STATICASSERT = 325,
    193      THREADLOCAL = 326,
    194      IDENTIFIER = 327,
    195      QUOTED_IDENTIFIER = 328,
    196      TYPEDEFname = 329,
    197      TYPEGENname = 330,
    198      ATTR_IDENTIFIER = 331,
    199      ATTR_TYPEDEFname = 332,
    200      ATTR_TYPEGENname = 333,
    201      INTEGERconstant = 334,
    202      FLOATINGconstant = 335,
    203      CHARACTERconstant = 336,
    204      STRINGliteral = 337,
    205      ZERO = 338,
    206      ONE = 339,
    207      ARROW = 340,
    208      ICR = 341,
    209      DECR = 342,
    210      LS = 343,
    211      RS = 344,
    212      LE = 345,
    213      GE = 346,
    214      EQ = 347,
    215      NE = 348,
    216      ANDAND = 349,
    217      OROR = 350,
    218      ELLIPSIS = 351,
    219      MULTassign = 352,
    220      DIVassign = 353,
    221      MODassign = 354,
    222      PLUSassign = 355,
    223      MINUSassign = 356,
    224      LSassign = 357,
    225      RSassign = 358,
    226      ANDassign = 359,
    227      ERassign = 360,
    228      ORassign = 361,
    229      ATassign = 362,
    230      THEN = 363
    231    };
     125  enum yytokentype
     126  {
     127    TYPEDEF = 258,
     128    AUTO = 259,
     129    EXTERN = 260,
     130    REGISTER = 261,
     131    STATIC = 262,
     132    INLINE = 263,
     133    FORTRAN = 264,
     134    CONST = 265,
     135    VOLATILE = 266,
     136    RESTRICT = 267,
     137    FORALL = 268,
     138    LVALUE = 269,
     139    VOID = 270,
     140    CHAR = 271,
     141    SHORT = 272,
     142    INT = 273,
     143    LONG = 274,
     144    FLOAT = 275,
     145    DOUBLE = 276,
     146    SIGNED = 277,
     147    UNSIGNED = 278,
     148    VALIST = 279,
     149    BOOL = 280,
     150    COMPLEX = 281,
     151    IMAGINARY = 282,
     152    TYPEOF = 283,
     153    LABEL = 284,
     154    ENUM = 285,
     155    STRUCT = 286,
     156    UNION = 287,
     157    OTYPE = 288,
     158    FTYPE = 289,
     159    DTYPE = 290,
     160    TRAIT = 291,
     161    SIZEOF = 292,
     162    OFFSETOF = 293,
     163    ATTRIBUTE = 294,
     164    EXTENSION = 295,
     165    IF = 296,
     166    ELSE = 297,
     167    SWITCH = 298,
     168    CASE = 299,
     169    DEFAULT = 300,
     170    DO = 301,
     171    WHILE = 302,
     172    FOR = 303,
     173    BREAK = 304,
     174    CONTINUE = 305,
     175    GOTO = 306,
     176    RETURN = 307,
     177    CHOOSE = 308,
     178    DISABLE = 309,
     179    ENABLE = 310,
     180    FALLTHRU = 311,
     181    TRY = 312,
     182    CATCH = 313,
     183    CATCHRESUME = 314,
     184    FINALLY = 315,
     185    THROW = 316,
     186    THROWRESUME = 317,
     187    AT = 318,
     188    ASM = 319,
     189    ALIGNAS = 320,
     190    ALIGNOF = 321,
     191    ATOMIC = 322,
     192    GENERIC = 323,
     193    NORETURN = 324,
     194    STATICASSERT = 325,
     195    THREADLOCAL = 326,
     196    IDENTIFIER = 327,
     197    QUOTED_IDENTIFIER = 328,
     198    TYPEDEFname = 329,
     199    TYPEGENname = 330,
     200    ATTR_IDENTIFIER = 331,
     201    ATTR_TYPEDEFname = 332,
     202    ATTR_TYPEGENname = 333,
     203    INTEGERconstant = 334,
     204    FLOATINGconstant = 335,
     205    CHARACTERconstant = 336,
     206    STRINGliteral = 337,
     207    ZERO = 338,
     208    ONE = 339,
     209    ARROW = 340,
     210    ICR = 341,
     211    DECR = 342,
     212    LS = 343,
     213    RS = 344,
     214    LE = 345,
     215    GE = 346,
     216    EQ = 347,
     217    NE = 348,
     218    ANDAND = 349,
     219    OROR = 350,
     220    ELLIPSIS = 351,
     221    MULTassign = 352,
     222    DIVassign = 353,
     223    MODassign = 354,
     224    PLUSassign = 355,
     225    MINUSassign = 356,
     226    LSassign = 357,
     227    RSassign = 358,
     228    ANDassign = 359,
     229    ERassign = 360,
     230    ORassign = 361,
     231    ATassign = 362,
     232    THEN = 363
     233  };
    232234#endif
    233235/* Tokens.  */
     
    339341#define THEN 363
    340342
    341 
    342 
    343 
     343/* Value type.  */
    344344#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    345 typedef union YYSTYPE
     345typedef union YYSTYPE YYSTYPE;
     346union YYSTYPE
    346347{
    347 
    348 /* Line 293 of yacc.c  */
    349 #line 115 "parser.yy"
     348#line 115 "parser.yy" /* yacc.c:355  */
    350349
    351350        Token tok;
     
    363362        bool flag;
    364363
    365 
    366 
    367 /* Line 293 of yacc.c  */
    368 #line 369 "Parser/parser.cc"
    369 } YYSTYPE;
     364#line 365 "Parser/parser.cc" /* yacc.c:355  */
     365};
    370366# define YYSTYPE_IS_TRIVIAL 1
    371 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    372367# define YYSTYPE_IS_DECLARED 1
    373368#endif
    374369
    375370
     371extern YYSTYPE yylval;
     372
     373int yyparse (void);
     374
     375#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
     376
    376377/* Copy the second part of user declarations.  */
    377378
    378 
    379 /* Line 343 of yacc.c  */
    380 #line 381 "Parser/parser.cc"
     379#line 380 "Parser/parser.cc" /* yacc.c:358  */
    381380
    382381#ifdef short
     
    392391#ifdef YYTYPE_INT8
    393392typedef YYTYPE_INT8 yytype_int8;
    394 #elif (defined __STDC__ || defined __C99__FUNC__ \
    395      || defined __cplusplus || defined _MSC_VER)
     393#else
    396394typedef signed char yytype_int8;
    397 #else
    398 typedef short int yytype_int8;
    399395#endif
    400396
     
    416412# elif defined size_t
    417413#  define YYSIZE_T size_t
    418 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    419      || defined __cplusplus || defined _MSC_VER)
     414# elif ! defined YYSIZE_T
    420415#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    421416#  define YYSIZE_T size_t
     
    431426#  if ENABLE_NLS
    432427#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    433 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     428#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    434429#  endif
    435430# endif
    436431# ifndef YY_
    437 #  define YY_(msgid) msgid
     432#  define YY_(Msgid) Msgid
    438433# endif
    439434#endif
    440435
     436#ifndef YY_ATTRIBUTE
     437# if (defined __GNUC__                                               \
     438      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
     439     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
     440#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
     441# else
     442#  define YY_ATTRIBUTE(Spec) /* empty */
     443# endif
     444#endif
     445
     446#ifndef YY_ATTRIBUTE_PURE
     447# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
     448#endif
     449
     450#ifndef YY_ATTRIBUTE_UNUSED
     451# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
     452#endif
     453
     454#if !defined _Noreturn \
     455     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
     456# if defined _MSC_VER && 1200 <= _MSC_VER
     457#  define _Noreturn __declspec (noreturn)
     458# else
     459#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
     460# endif
     461#endif
     462
    441463/* Suppress unused-variable warnings by "using" E.  */
    442464#if ! defined lint || defined __GNUC__
    443 # define YYUSE(e) ((void) (e))
     465# define YYUSE(E) ((void) (E))
    444466#else
    445 # define YYUSE(e) /* empty */
     467# define YYUSE(E) /* empty */
    446468#endif
    447469
    448 /* Identity function, used to suppress warnings about constant conditions.  */
    449 #ifndef lint
    450 # define YYID(n) (n)
     470#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
     471/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
     472# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
     473    _Pragma ("GCC diagnostic push") \
     474    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
     475    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
     476# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
     477    _Pragma ("GCC diagnostic pop")
    451478#else
    452 #if (defined __STDC__ || defined __C99__FUNC__ \
    453      || defined __cplusplus || defined _MSC_VER)
    454 static int
    455 YYID (int yyi)
    456 #else
    457 static int
    458 YYID (yyi)
    459     int yyi;
     479# define YY_INITIAL_VALUE(Value) Value
    460480#endif
    461 {
    462   return yyi;
    463 }
     481#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     482# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     483# define YY_IGNORE_MAYBE_UNINITIALIZED_END
    464484#endif
     485#ifndef YY_INITIAL_VALUE
     486# define YY_INITIAL_VALUE(Value) /* Nothing. */
     487#endif
     488
    465489
    466490#if ! defined yyoverflow || YYERROR_VERBOSE
     
    481505#   else
    482506#    define YYSTACK_ALLOC alloca
    483 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    484      || defined __cplusplus || defined _MSC_VER)
     507#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    485508#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     509      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    486510#     ifndef EXIT_SUCCESS
    487511#      define EXIT_SUCCESS 0
     
    493517
    494518# ifdef YYSTACK_ALLOC
    495    /* Pacify GCC's `empty if-body' warning.  */
    496 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     519   /* Pacify GCC's 'empty if-body' warning.  */
     520#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    497521#  ifndef YYSTACK_ALLOC_MAXIMUM
    498522    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    510534#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    511535       && ! ((defined YYMALLOC || defined malloc) \
    512              && (defined YYFREE || defined free)))
     536             && (defined YYFREE || defined free)))
    513537#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    514538#   ifndef EXIT_SUCCESS
     
    518542#  ifndef YYMALLOC
    519543#   define YYMALLOC malloc
    520 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    521      || defined __cplusplus || defined _MSC_VER)
     544#   if ! defined malloc && ! defined EXIT_SUCCESS
    522545void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    523546#   endif
     
    525548#  ifndef YYFREE
    526549#   define YYFREE free
    527 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    528      || defined __cplusplus || defined _MSC_VER)
     550#   if ! defined free && ! defined EXIT_SUCCESS
    529551void free (void *); /* INFRINGES ON USER NAME SPACE */
    530552#   endif
     
    536558#if (! defined yyoverflow \
    537559     && (! defined __cplusplus \
    538         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     560        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    539561
    540562/* A type that is properly aligned for any stack member.  */
     
    561583   stack.  Advance YYPTR to a properly aligned location for the next
    562584   stack.  */
    563 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    564     do                                                                  \
    565       {                                                                 \
    566         YYSIZE_T yynewbytes;                                            \
    567         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    568         Stack = &yyptr->Stack_alloc;                                    \
    569         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    570         yyptr += yynewbytes / sizeof (*yyptr);                          \
    571       }                                                                 \
    572     while (YYID (0))
     585# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     586    do                                                                  \
     587      {                                                                 \
     588        YYSIZE_T yynewbytes;                                            \
     589        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     590        Stack = &yyptr->Stack_alloc;                                    \
     591        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     592        yyptr += yynewbytes / sizeof (*yyptr);                          \
     593      }                                                                 \
     594    while (0)
    573595
    574596#endif
    575597
    576598#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    577 /* Copy COUNT objects from FROM to TO.  The source and destination do
     599/* Copy COUNT objects from SRC to DST.  The source and destination do
    578600   not overlap.  */
    579601# ifndef YYCOPY
    580602#  if defined __GNUC__ && 1 < __GNUC__
    581 #   define YYCOPY(To, From, Count) \
    582       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     603#   define YYCOPY(Dst, Src, Count) \
     604      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    583605#  else
    584 #   define YYCOPY(To, From, Count)              \
    585       do                                        \
    586         {                                       \
    587           YYSIZE_T yyi;                         \
    588           for (yyi = 0; yyi < (Count); yyi++)   \
    589             (To)[yyi] = (From)[yyi];            \
    590         }                                       \
    591       while (YYID (0))
     606#   define YYCOPY(Dst, Src, Count)              \
     607      do                                        \
     608        {                                       \
     609          YYSIZE_T yyi;                         \
     610          for (yyi = 0; yyi < (Count); yyi++)   \
     611            (Dst)[yyi] = (Src)[yyi];            \
     612        }                                       \
     613      while (0)
    592614#  endif
    593615# endif
     
    605627/* YYNRULES -- Number of rules.  */
    606628#define YYNRULES  749
    607 /* YYNRULES -- Number of states.  */
     629/* YYNSTATES -- Number of states.  */
    608630#define YYNSTATES  1553
    609631
    610 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     632/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
     633   by yylex, with out-of-bounds checking.  */
    611634#define YYUNDEFTOK  2
    612635#define YYMAXUTOK   363
    613636
    614 #define YYTRANSLATE(YYX)                                                \
     637#define YYTRANSLATE(YYX)                                                \
    615638  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    616639
    617 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     640/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
     641   as returned by yylex, without out-of-bounds checking.  */
    618642static const yytype_uint8 yytranslate[] =
    619643{
     
    658682
    659683#if YYDEBUG
    660 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    661    YYRHS.  */
    662 static const yytype_uint16 yyprhs[] =
    663 {
    664        0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    665       17,    19,    21,    23,    25,    27,    29,    31,    34,    36,
    666       38,    42,    46,    48,    55,    60,    64,    72,    76,    84,
    667       87,    90,    98,   103,   105,   109,   110,   112,   114,   118,
    668      120,   124,   132,   136,   144,   146,   148,   150,   153,   156,
    669      159,   162,   165,   168,   173,   176,   181,   188,   190,   195,
    670      200,   202,   204,   206,   208,   210,   212,   214,   219,   224,
    671      226,   230,   234,   238,   240,   244,   248,   250,   254,   258,
    672      260,   264,   268,   272,   276,   278,   282,   286,   288,   292,
    673      294,   298,   300,   304,   306,   310,   312,   316,   318,   324,
    674      329,   335,   337,   339,   343,   346,   347,   349,   351,   353,
    675      355,   357,   359,   361,   363,   365,   367,   369,   371,   374,
    676      380,   387,   395,   397,   401,   403,   407,   408,   410,   412,
    677      414,   416,   418,   420,   422,   424,   426,   433,   438,   441,
    678      449,   451,   455,   457,   460,   462,   465,   467,   470,   473,
    679      479,   487,   493,   503,   509,   519,   521,   525,   527,   529,
    680      533,   537,   540,   542,   545,   548,   549,   551,   554,   558,
    681      559,   561,   564,   568,   572,   577,   578,   580,   582,   585,
    682      591,   599,   606,   613,   618,   622,   627,   630,   634,   637,
    683      641,   645,   649,   653,   659,   663,   667,   672,   674,   680,
    684      687,   693,   700,   710,   721,   731,   742,   745,   747,   750,
    685      753,   756,   758,   765,   774,   785,   798,   813,   814,   816,
    686      817,   819,   821,   825,   830,   838,   839,   841,   845,   847,
    687      851,   853,   855,   857,   861,   863,   865,   867,   871,   872,
    688      874,   878,   883,   885,   889,   891,   893,   897,   901,   905,
    689      909,   913,   916,   920,   927,   931,   935,   940,   942,   945,
    690      948,   952,   958,   967,   975,   983,   989,   999,  1002,  1005,
    691     1011,  1015,  1021,  1026,  1030,  1035,  1040,  1048,  1052,  1056,
    692     1060,  1064,  1069,  1076,  1078,  1080,  1082,  1084,  1086,  1088,
    693     1090,  1092,  1093,  1095,  1097,  1100,  1102,  1104,  1106,  1108,
    694     1110,  1112,  1114,  1115,  1121,  1123,  1126,  1130,  1132,  1135,
    695     1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
    696     1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    697     1177,  1179,  1182,  1185,  1189,  1193,  1195,  1199,  1201,  1204,
    698     1207,  1210,  1215,  1220,  1225,  1230,  1232,  1235,  1238,  1242,
    699     1244,  1247,  1250,  1252,  1255,  1258,  1262,  1264,  1267,  1270,
    700     1272,  1274,  1279,  1282,  1283,  1290,  1298,  1301,  1304,  1307,
    701     1308,  1311,  1314,  1318,  1321,  1325,  1327,  1330,  1334,  1337,
    702     1340,  1345,  1346,  1348,  1351,  1354,  1356,  1357,  1359,  1362,
    703     1365,  1371,  1374,  1375,  1383,  1386,  1391,  1392,  1395,  1396,
    704     1398,  1400,  1402,  1408,  1414,  1420,  1422,  1428,  1434,  1444,
    705     1446,  1452,  1453,  1455,  1457,  1463,  1465,  1467,  1473,  1479,
    706     1481,  1485,  1489,  1494,  1496,  1498,  1500,  1502,  1505,  1507,
    707     1511,  1515,  1517,  1520,  1522,  1526,  1528,  1530,  1532,  1534,
    708     1536,  1538,  1540,  1542,  1544,  1546,  1548,  1551,  1553,  1555,
    709     1557,  1560,  1561,  1564,  1567,  1569,  1574,  1575,  1577,  1580,
    710     1584,  1589,  1592,  1595,  1597,  1600,  1603,  1609,  1615,  1623,
    711     1630,  1632,  1635,  1638,  1642,  1644,  1647,  1650,  1655,  1658,
    712     1663,  1664,  1669,  1672,  1674,  1676,  1678,  1679,  1682,  1688,
    713     1694,  1708,  1710,  1712,  1716,  1720,  1723,  1727,  1731,  1734,
    714     1739,  1741,  1748,  1758,  1759,  1771,  1773,  1777,  1781,  1785,
    715     1787,  1789,  1795,  1798,  1804,  1805,  1807,  1809,  1813,  1814,
    716     1816,  1818,  1820,  1822,  1823,  1830,  1833,  1835,  1838,  1843,
    717     1846,  1850,  1854,  1858,  1863,  1869,  1875,  1881,  1888,  1890,
    718     1892,  1894,  1898,  1899,  1905,  1906,  1908,  1910,  1913,  1920,
    719     1922,  1926,  1927,  1929,  1934,  1936,  1938,  1940,  1942,  1945,
    720     1947,  1950,  1953,  1955,  1959,  1962,  1966,  1970,  1973,  1978,
    721     1983,  1987,  1996,  2000,  2003,  2005,  2008,  2015,  2024,  2028,
    722     2031,  2035,  2039,  2044,  2049,  2053,  2055,  2057,  2059,  2064,
    723     2071,  2075,  2078,  2082,  2086,  2091,  2096,  2100,  2103,  2105,
    724     2108,  2111,  2113,  2117,  2120,  2124,  2128,  2131,  2136,  2141,
    725     2145,  2152,  2161,  2165,  2168,  2170,  2173,  2176,  2179,  2183,
    726     2187,  2190,  2195,  2200,  2204,  2211,  2220,  2224,  2227,  2229,
    727     2232,  2235,  2237,  2239,  2242,  2246,  2250,  2253,  2258,  2265,
    728     2274,  2276,  2279,  2282,  2284,  2287,  2290,  2294,  2298,  2300,
    729     2305,  2310,  2314,  2320,  2329,  2333,  2336,  2340,  2342,  2348,
    730     2354,  2361,  2368,  2370,  2373,  2376,  2378,  2381,  2384,  2388,
    731     2392,  2394,  2399,  2404,  2408,  2414,  2423,  2427,  2429,  2432,
    732     2434,  2437,  2444,  2450,  2457,  2465,  2473,  2475,  2478,  2481,
    733     2483,  2486,  2489,  2493,  2497,  2499,  2504,  2509,  2513,  2522,
    734     2526,  2528,  2530,  2533,  2535,  2537,  2540,  2544,  2547,  2551,
    735     2554,  2558,  2562,  2565,  2570,  2574,  2577,  2581,  2584,  2589,
    736     2593,  2596,  2603,  2610,  2617,  2625,  2627,  2630,  2632,  2634,
    737     2636,  2639,  2643,  2646,  2650,  2653,  2657,  2661,  2666,  2669,
    738     2673,  2678,  2681,  2687,  2693,  2700,  2707,  2708,  2710,  2711
    739 };
    740 
    741 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    742 static const yytype_int16 yyrhs[] =
    743 {
    744      301,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    745       -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    746       -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,    82,
    747       -1,   141,    82,    -1,    72,    -1,   140,    -1,   109,   169,
    748      110,    -1,   109,   173,   110,    -1,   142,    -1,   143,   111,
    749      134,   164,   135,   112,    -1,   143,   109,   144,   110,    -1,
    750      143,   113,   139,    -1,   143,   113,   111,   134,   146,   135,
    751      112,    -1,   143,    85,   139,    -1,   143,    85,   111,   134,
    752      146,   135,   112,    -1,   143,    86,    -1,   143,    87,    -1,
    753      109,   274,   110,   114,   278,   371,   115,    -1,   143,   114,
    754      144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
    755      164,    -1,   147,    -1,   146,   116,   147,    -1,   139,    -1,
    756      139,   113,   147,    -1,   139,   113,   111,   134,   146,   135,
    757      112,    -1,   139,    85,   147,    -1,   139,    85,   111,   134,
    758      146,   135,   112,    -1,   143,    -1,   136,    -1,   141,    -1,
    759       40,   151,    -1,   149,   151,    -1,   150,   151,    -1,    86,
    760      148,    -1,    87,   148,    -1,    37,   148,    -1,    37,   109,
    761      274,   110,    -1,    66,   148,    -1,    66,   109,   274,   110,
    762       -1,    38,   109,   274,   116,   139,   110,    -1,    76,    -1,
    763       76,   109,   145,   110,    -1,    76,   109,   275,   110,    -1,
    764      117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
    765      122,    -1,   148,    -1,   109,   274,   110,   151,    -1,   109,
    766      274,   110,   167,    -1,   151,    -1,   152,   117,   151,    -1,
    767      152,   123,   151,    -1,   152,   124,   151,    -1,   152,    -1,
    768      153,   119,   152,    -1,   153,   120,   152,    -1,   153,    -1,
    769      154,    88,   153,    -1,   154,    89,   153,    -1,   154,    -1,
    770      155,   125,   154,    -1,   155,   126,   154,    -1,   155,    90,
    771      154,    -1,   155,    91,   154,    -1,   155,    -1,   156,    92,
    772      155,    -1,   156,    93,   155,    -1,   156,    -1,   157,   118,
    773      156,    -1,   157,    -1,   158,   127,   157,    -1,   158,    -1,
    774      159,   128,   158,    -1,   159,    -1,   160,    94,   159,    -1,
    775      160,    -1,   161,    95,   160,    -1,   161,    -1,   161,   129,
    776      169,   130,   162,    -1,   161,   129,   130,   162,    -1,   161,
    777      129,   169,   130,   167,    -1,   162,    -1,   162,    -1,   148,
    778      166,   164,    -1,   167,   372,    -1,    -1,   164,    -1,   131,
    779       -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,   101,
    780       -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,   106,
    781       -1,   111,   112,    -1,   111,   134,   164,   135,   112,    -1,
    782      111,   134,   116,   168,   135,   112,    -1,   111,   134,   164,
    783      116,   168,   135,   112,    -1,   165,    -1,   168,   116,   165,
    784       -1,   164,    -1,   169,   116,   164,    -1,    -1,   169,    -1,
    785      172,    -1,   173,    -1,   177,    -1,   178,    -1,   190,    -1,
    786      192,    -1,   193,    -1,   198,    -1,   127,   143,   114,   144,
    787      115,   132,    -1,    72,   130,   311,   171,    -1,   114,   115,
    788       -1,   114,   134,   134,   209,   174,   135,   115,    -1,   175,
    789       -1,   174,   134,   175,    -1,   212,    -1,    40,   212,    -1,
    790      307,    -1,   171,   135,    -1,   171,    -1,   176,   171,    -1,
    791      170,   132,    -1,    41,   109,   169,   110,   171,    -1,    41,
    792      109,   169,   110,   171,    42,   171,    -1,    43,   109,   169,
    793      110,   183,    -1,    43,   109,   169,   110,   114,   134,   205,
    794      184,   115,    -1,    53,   109,   169,   110,   183,    -1,    53,
    795      109,   169,   110,   114,   134,   205,   186,   115,    -1,   163,
    796       -1,   163,    96,   163,    -1,   309,    -1,   179,    -1,   180,
    797      116,   179,    -1,    44,   180,   130,    -1,    45,   130,    -1,
    798      181,    -1,   182,   181,    -1,   182,   171,    -1,    -1,   185,
    799       -1,   182,   176,    -1,   185,   182,   176,    -1,    -1,   187,
    800       -1,   182,   189,    -1,   182,   176,   188,    -1,   187,   182,
    801      189,    -1,   187,   182,   176,   188,    -1,    -1,   189,    -1,
    802       56,    -1,    56,   132,    -1,    47,   109,   169,   110,   171,
    803       -1,    46,   171,    47,   109,   169,   110,   132,    -1,    48,
    804      109,   134,   191,   110,   171,    -1,   170,   135,   132,   170,
    805      132,   170,    -1,   212,   170,   132,   170,    -1,    51,    72,
    806      132,    -1,    51,   117,   169,   132,    -1,    50,   132,    -1,
    807       50,    72,   132,    -1,    49,   132,    -1,    49,    72,   132,
    808       -1,    52,   170,   132,    -1,    61,   165,   132,    -1,    62,
    809      165,   132,    -1,    62,   165,    63,   164,   132,    -1,    57,
    810      173,   194,    -1,    57,   173,   196,    -1,    57,   173,   194,
    811      196,    -1,   195,    -1,    58,   109,    96,   110,   173,    -1,
    812      195,    58,   109,    96,   110,   173,    -1,    59,   109,    96,
    813      110,   173,    -1,   195,    59,   109,    96,   110,   173,    -1,
    814       58,   109,   134,   134,   197,   135,   110,   173,   135,    -1,
    815      195,    58,   109,   134,   134,   197,   135,   110,   173,   135,
    816       -1,    59,   109,   134,   134,   197,   135,   110,   173,   135,
    817       -1,   195,    59,   109,   134,   134,   197,   135,   110,   173,
    818      135,    -1,    60,   173,    -1,   225,    -1,   225,   308,    -1,
    819      225,   356,    -1,   365,   139,    -1,   365,    -1,    64,   199,
    820      109,   141,   110,   132,    -1,    64,   199,   109,   141,   130,
    821      200,   110,   132,    -1,    64,   199,   109,   141,   130,   200,
    822      130,   200,   110,   132,    -1,    64,   199,   109,   141,   130,
    823      200,   130,   200,   130,   203,   110,   132,    -1,    64,   199,
    824       51,   109,   141,   130,   130,   200,   130,   203,   130,   204,
    825      110,   132,    -1,    -1,    11,    -1,    -1,   201,    -1,   202,
    826       -1,   201,   116,   202,    -1,   141,   109,   163,   110,    -1,
    827      111,   163,   112,   141,   109,   163,   110,    -1,    -1,   141,
    828       -1,   203,   116,   141,    -1,   139,    -1,   204,   116,   139,
    829       -1,   135,    -1,   206,    -1,   212,    -1,   206,   134,   212,
    830       -1,   135,    -1,   208,    -1,   222,    -1,   208,   134,   222,
    831       -1,    -1,   210,    -1,    29,   211,   132,    -1,   210,    29,
    832      211,   132,    -1,   273,    -1,   211,   116,   273,    -1,   213,
    833       -1,   222,    -1,   214,   135,   132,    -1,   219,   135,   132,
    834       -1,   216,   135,   132,    -1,   292,   135,   132,    -1,   295,
    835      135,   132,    -1,   215,   276,    -1,   231,   215,   276,    -1,
    836      214,   135,   116,   134,   271,   276,    -1,   366,   271,   310,
    837       -1,   369,   271,   310,    -1,   227,   369,   271,   310,    -1,
    838      217,    -1,   227,   217,    -1,   231,   217,    -1,   231,   227,
    839      217,    -1,   216,   135,   116,   134,   271,    -1,   111,   112,
    840      271,   109,   134,   259,   135,   110,    -1,   369,   271,   109,
    841      134,   259,   135,   110,    -1,   218,   271,   109,   134,   259,
    842      135,   110,    -1,   111,   134,   261,   135,   112,    -1,   111,
    843      134,   261,   135,   116,   134,   262,   135,   112,    -1,     3,
    844      215,    -1,     3,   217,    -1,   219,   135,   116,   134,   139,
    845       -1,     3,   225,   308,    -1,   220,   135,   116,   134,   308,
    846       -1,   227,     3,   225,   308,    -1,   225,     3,   308,    -1,
    847      225,     3,   227,   308,    -1,     3,   139,   131,   164,    -1,
    848      221,   135,   116,   134,   139,   131,   164,    -1,   223,   135,
    849      132,    -1,   220,   135,   132,    -1,   221,   135,   132,    -1,
    850      239,   135,   132,    -1,   224,   308,   310,   276,    -1,   223,
    851      116,   311,   308,   310,   276,    -1,   235,    -1,   239,    -1,
    852      241,    -1,   282,    -1,   236,    -1,   240,    -1,   242,    -1,
    853      283,    -1,    -1,   227,    -1,   228,    -1,   227,   228,    -1,
    854      229,    -1,   313,    -1,    10,    -1,    12,    -1,    11,    -1,
    855       14,    -1,    67,    -1,    -1,    13,   109,   230,   285,   110,
    856       -1,   232,    -1,   227,   232,    -1,   231,   227,   232,    -1,
    857      233,    -1,   232,   233,    -1,     5,    -1,     7,    -1,     4,
    858       -1,     6,    -1,     8,    -1,     9,    -1,    69,    -1,    71,
    859       -1,    16,    -1,    21,    -1,    20,    -1,    18,    -1,    19,
    860       -1,    17,    -1,    22,    -1,    23,    -1,    15,    -1,    25,
    861       -1,    26,    -1,    27,    -1,    24,    -1,   236,    -1,   231,
    862      236,    -1,   235,   233,    -1,   235,   233,   227,    -1,   235,
    863      233,   236,    -1,   237,    -1,   226,   238,   226,    -1,   234,
    864       -1,   227,   234,    -1,   237,   228,    -1,   237,   234,    -1,
    865       28,   109,   275,   110,    -1,    28,   109,   169,   110,    -1,
    866       78,   109,   275,   110,    -1,    78,   109,   169,   110,    -1,
    867      240,    -1,   231,   240,    -1,   239,   233,    -1,   239,   233,
    868      227,    -1,   243,    -1,   227,   243,    -1,   240,   228,    -1,
    869      242,    -1,   231,   242,    -1,   241,   233,    -1,   241,   233,
    870      227,    -1,    74,    -1,   227,    74,    -1,   242,   228,    -1,
    871      244,    -1,   255,    -1,   246,   114,   247,   115,    -1,   246,
    872      273,    -1,    -1,   246,   273,   245,   114,   247,   115,    -1,
    873      246,   109,   291,   110,   114,   247,   115,    -1,   246,   284,
    874       -1,    31,   311,    -1,    32,   311,    -1,    -1,   247,   248,
    875       -1,   249,   132,    -1,    40,   249,   132,    -1,   250,   132,
    876       -1,    40,   250,   132,    -1,   365,    -1,   365,   273,    -1,
    877      249,   116,   273,    -1,   249,   116,    -1,   225,   251,    -1,
    878      250,   116,   311,   251,    -1,    -1,   253,    -1,   317,   252,
    879       -1,   330,   252,    -1,   356,    -1,    -1,   253,    -1,   130,
    880      163,    -1,    30,   311,    -1,   254,   114,   257,   371,   115,
    881       -1,   254,   273,    -1,    -1,   254,   273,   256,   114,   257,
    882      371,   115,    -1,   273,   258,    -1,   257,   116,   273,   258,
    883       -1,    -1,   131,   163,    -1,    -1,   260,    -1,   262,    -1,
    884      261,    -1,   261,   135,   116,   134,   262,    -1,   262,   135,
    885      116,   134,    96,    -1,   261,   135,   116,   134,    96,    -1,
    886      266,    -1,   262,   135,   116,   134,   266,    -1,   261,   135,
    887      116,   134,   266,    -1,   261,   135,   116,   134,   262,   135,
    888      116,   134,   266,    -1,   267,    -1,   262,   135,   116,   134,
    889      267,    -1,    -1,   264,    -1,   265,    -1,   265,   135,   116,
    890      134,    96,    -1,   269,    -1,   268,    -1,   265,   135,   116,
    891      134,   269,    -1,   265,   135,   116,   134,   268,    -1,   268,
    892       -1,   361,   271,   372,    -1,   369,   271,   372,    -1,   227,
    893      369,   271,   372,    -1,   217,    -1,   269,    -1,   361,    -1,
    894      369,    -1,   227,   369,    -1,   370,    -1,   224,   335,   372,
    895       -1,   224,   339,   372,    -1,   224,    -1,   224,   350,    -1,
    896      139,    -1,   270,   116,   139,    -1,   137,    -1,    74,    -1,
    897       75,    -1,   138,    -1,    74,    -1,    75,    -1,   139,    -1,
    898       74,    -1,    75,    -1,   365,    -1,   225,    -1,   225,   356,
    899       -1,   365,    -1,   370,    -1,   225,    -1,   225,   344,    -1,
    900       -1,   131,   277,    -1,   107,   277,    -1,   164,    -1,   114,
    901      278,   371,   115,    -1,    -1,   277,    -1,   279,   277,    -1,
    902      278,   116,   277,    -1,   278,   116,   279,   277,    -1,   280,
    903      130,    -1,   273,   130,    -1,   281,    -1,   280,   281,    -1,
    904      113,   273,    -1,   111,   134,   164,   135,   112,    -1,   111,
    905      134,   309,   135,   112,    -1,   111,   134,   163,    96,   163,
    906      135,   112,    -1,   113,   111,   134,   146,   135,   112,    -1,
    907      283,    -1,   231,   283,    -1,   282,   233,    -1,   282,   233,
    908      227,    -1,   284,    -1,   227,   284,    -1,   283,   228,    -1,
    909       75,   109,   291,   110,    -1,   286,   372,    -1,   285,   116,
    910      286,   372,    -1,    -1,   288,   273,   287,   289,    -1,   225,
    911      335,    -1,    33,    -1,    35,    -1,    34,    -1,    -1,   289,
    912      290,    -1,   128,   273,   109,   291,   110,    -1,   128,   114,
    913      134,   297,   115,    -1,   128,   109,   134,   285,   135,   110,
    914      114,   134,   297,   115,   109,   291,   110,    -1,   275,    -1,
    915      164,    -1,   291,   116,   275,    -1,   291,   116,   164,    -1,
    916       33,   293,    -1,   232,    33,   293,    -1,   292,   116,   293,
    917       -1,   294,   289,    -1,   294,   289,   131,   275,    -1,   273,
    918       -1,   272,   109,   134,   285,   135,   110,    -1,    36,   273,
    919      109,   134,   285,   135,   110,   114,   115,    -1,    -1,    36,
    920      273,   109,   134,   285,   135,   110,   114,   296,   297,   115,
    921       -1,   298,    -1,   297,   134,   298,    -1,   299,   135,   132,
    922       -1,   300,   135,   132,    -1,   215,    -1,   217,    -1,   299,
    923      135,   116,   134,   271,    -1,   225,   308,    -1,   300,   135,
    924      116,   134,   308,    -1,    -1,   302,    -1,   304,    -1,   302,
    925      134,   304,    -1,    -1,   302,    -1,   212,    -1,   306,    -1,
    926      198,    -1,    -1,     5,    82,   305,   114,   303,   115,    -1,
    927       40,   304,    -1,   307,    -1,   322,   173,    -1,   326,   134,
    928      207,   173,    -1,   216,   173,    -1,   224,   322,   173,    -1,
    929      227,   322,   173,    -1,   231,   322,   173,    -1,   231,   227,
    930      322,   173,    -1,   224,   326,   134,   207,   173,    -1,   227,
    931      326,   134,   207,   173,    -1,   231,   326,   134,   207,   173,
    932       -1,   231,   227,   326,   134,   207,   173,    -1,   317,    -1,
    933      330,    -1,   322,    -1,   163,   122,   163,    -1,    -1,    64,
    934      109,   141,   110,   311,    -1,    -1,   312,    -1,   313,    -1,
    935      312,   313,    -1,    39,   109,   109,   314,   110,   110,    -1,
    936      315,    -1,   314,   116,   315,    -1,    -1,   316,    -1,   316,
    937      109,   170,   110,    -1,   271,    -1,   233,    -1,   234,    -1,
    938      228,    -1,   318,   311,    -1,   319,    -1,   320,   311,    -1,
    939      321,   311,    -1,   137,    -1,   109,   318,   110,    -1,   149,
    940      317,    -1,   149,   227,   317,    -1,   109,   319,   110,    -1,
    941      318,   348,    -1,   109,   319,   110,   348,    -1,   109,   320,
    942      110,   349,    -1,   109,   320,   110,    -1,   109,   319,   110,
    943      109,   134,   263,   135,   110,    -1,   109,   321,   110,    -1,
    944      323,   311,    -1,   324,    -1,   325,   311,    -1,   318,   109,
    945      134,   263,   135,   110,    -1,   109,   324,   110,   109,   134,
    946      263,   135,   110,    -1,   109,   323,   110,    -1,   149,   322,
    947       -1,   149,   227,   322,    -1,   109,   324,   110,    -1,   109,
    948      324,   110,   348,    -1,   109,   325,   110,   349,    -1,   109,
    949      325,   110,    -1,   327,    -1,   328,    -1,   329,    -1,   318,
    950      109,   270,   110,    -1,   109,   328,   110,   109,   270,   110,
    951       -1,   109,   327,   110,    -1,   149,   326,    -1,   149,   227,
    952      326,    -1,   109,   328,   110,    -1,   109,   328,   110,   348,
    953       -1,   109,   329,   110,   349,    -1,   109,   329,   110,    -1,
    954      331,   311,    -1,   332,    -1,   333,   311,    -1,   334,   311,
    955       -1,   340,    -1,   109,   331,   110,    -1,   149,   330,    -1,
    956      149,   227,   330,    -1,   109,   332,   110,    -1,   331,   348,
    957       -1,   109,   332,   110,   348,    -1,   109,   333,   110,   349,
    958       -1,   109,   333,   110,    -1,   331,   109,   134,   263,   135,
    959      110,    -1,   109,   332,   110,   109,   134,   263,   135,   110,
    960       -1,   109,   334,   110,    -1,   318,   311,    -1,   336,    -1,
    961      337,   311,    -1,   338,   311,    -1,   149,   335,    -1,   149,
    962      227,   335,    -1,   109,   336,   110,    -1,   318,   354,    -1,
    963      109,   336,   110,   348,    -1,   109,   337,   110,   349,    -1,
    964      109,   337,   110,    -1,   318,   109,   134,   263,   135,   110,
    965       -1,   109,   336,   110,   109,   134,   263,   135,   110,    -1,
    966      109,   338,   110,    -1,   340,   311,    -1,   341,    -1,   342,
    967      311,    -1,   343,   311,    -1,    74,    -1,    75,    -1,   149,
    968      339,    -1,   149,   227,   339,    -1,   109,   341,   110,    -1,
    969      340,   354,    -1,   109,   341,   110,   354,    -1,   340,   109,
    970      134,   263,   135,   110,    -1,   109,   341,   110,   109,   134,
    971      263,   135,   110,    -1,   345,    -1,   346,   311,    -1,   347,
    972      311,    -1,   149,    -1,   149,   227,    -1,   149,   344,    -1,
    973      149,   227,   344,    -1,   109,   345,   110,    -1,   348,    -1,
    974      109,   345,   110,   348,    -1,   109,   346,   110,   349,    -1,
    975      109,   346,   110,    -1,   109,   134,   263,   135,   110,    -1,
    976      109,   345,   110,   109,   134,   263,   135,   110,    -1,   109,
    977      347,   110,    -1,   111,   112,    -1,   111,   112,   349,    -1,
    978      349,    -1,   111,   134,   164,   135,   112,    -1,   111,   134,
    979      117,   135,   112,    -1,   349,   111,   134,   164,   135,   112,
    980       -1,   349,   111,   134,   117,   135,   112,    -1,   351,    -1,
    981      352,   311,    -1,   353,   311,    -1,   149,    -1,   149,   227,
    982       -1,   149,   350,    -1,   149,   227,   350,    -1,   109,   351,
    983      110,    -1,   354,    -1,   109,   351,   110,   354,    -1,   109,
    984      352,   110,   349,    -1,   109,   352,   110,    -1,   109,   134,
    985      263,   135,   110,    -1,   109,   351,   110,   109,   134,   263,
    986      135,   110,    -1,   109,   353,   110,    -1,   355,    -1,   355,
    987      349,    -1,   349,    -1,   111,   112,    -1,   111,   134,   227,
    988      117,   135,   112,    -1,   111,   134,   227,   135,   112,    -1,
    989      111,   134,   227,   164,   135,   112,    -1,   111,   134,     7,
    990      226,   164,   135,   112,    -1,   111,   134,   227,     7,   164,
    991      135,   112,    -1,   357,    -1,   358,   311,    -1,   359,   311,
    992       -1,   149,    -1,   149,   227,    -1,   149,   356,    -1,   149,
    993      227,   356,    -1,   109,   357,   110,    -1,   348,    -1,   109,
    994      357,   110,   348,    -1,   109,   358,   110,   349,    -1,   109,
    995      358,   110,    -1,   109,   357,   110,   109,   134,   263,   135,
    996      110,    -1,   109,   359,   110,    -1,   361,    -1,   369,    -1,
    997      227,   369,    -1,   362,    -1,   363,    -1,   149,   225,    -1,
    998      227,   149,   225,    -1,   149,   370,    -1,   227,   149,   370,
    999       -1,   149,   360,    -1,   227,   149,   360,    -1,   111,   112,
    1000      225,    -1,   364,   225,    -1,   111,   112,   349,   225,    -1,
    1001      364,   349,   225,    -1,   349,   225,    -1,   111,   112,   362,
    1002       -1,   364,   362,    -1,   111,   112,   349,   362,    -1,   364,
    1003      349,   362,    -1,   349,   362,    -1,   111,   134,   227,   117,
    1004      135,   112,    -1,   111,   134,   227,   164,   135,   112,    -1,
    1005      111,   134,   231,   164,   135,   112,    -1,   111,   134,   231,
    1006      227,   164,   135,   112,    -1,   369,    -1,   227,   369,    -1,
    1007      366,    -1,   367,    -1,   368,    -1,   149,   225,    -1,   227,
    1008      149,   225,    -1,   149,   370,    -1,   227,   149,   370,    -1,
    1009      149,   365,    -1,   227,   149,   365,    -1,   111,   112,   225,
    1010       -1,   111,   112,   349,   225,    -1,   349,   225,    -1,   111,
    1011      112,   367,    -1,   111,   112,   349,   367,    -1,   349,   367,
    1012       -1,   111,   134,   262,   135,   112,    -1,   111,   112,   109,
    1013      259,   110,    -1,   369,   109,   134,   259,   135,   110,    -1,
    1014      218,   109,   134,   259,   135,   110,    -1,    -1,   116,    -1,
    1015       -1,   131,   164,    -1
    1016 };
    1017 
    1018 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
     684  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    1019685static const yytype_uint16 yyrline[] =
    1020686{
     
    1097763#endif
    1098764
    1099 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
     765#if YYDEBUG || YYERROR_VERBOSE || 0
    1100766/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    1101767   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    1205871  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    1206872  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    1207   "comma_opt", "assignment_opt", 0
     873  "comma_opt", "assignment_opt", YY_NULLPTR
    1208874};
    1209875#endif
    1210876
    1211877# ifdef YYPRINT
    1212 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1213    token YYLEX-NUM.  */
     878/* YYTOKNUM[NUM] -- (External) token number corresponding to the
     879   (internal) symbol number NUM (which must be that of a token).  */
    1214880static const yytype_uint16 yytoknum[] =
    1215881{
     
    1231897# endif
    1232898
    1233 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1234 static const yytype_uint16 yyr1[] =
     899#define YYPACT_NINF -1317
     900
     901#define yypact_value_is_default(Yystate) \
     902  (!!((Yystate) == (-1317)))
     903
     904#define YYTABLE_NINF -520
     905
     906#define yytable_value_is_error(Yytable_value) \
     907  0
     908
     909  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     910     STATE-NUM.  */
     911static const yytype_int16 yypact[] =
    1235912{
    1236        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    1237      138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
    1238      142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
    1239      143,   143,   143,   144,   144,   145,   145,   146,   146,   147,
    1240      147,   147,   147,   147,   148,   148,   148,   148,   148,   148,
    1241      148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
    1242      149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
    1243      152,   152,   152,   153,   153,   153,   154,   154,   154,   155,
    1244      155,   155,   155,   155,   156,   156,   156,   157,   157,   158,
    1245      158,   159,   159,   160,   160,   161,   161,   162,   162,   162,
    1246      162,   163,   164,   164,   164,   165,   165,   166,   166,   166,
    1247      166,   166,   166,   166,   166,   166,   166,   166,   167,   167,
    1248      167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
    1249      171,   171,   171,   171,   171,   171,   171,   172,   173,   173,
    1250      174,   174,   175,   175,   175,   175,   176,   176,   177,   178,
    1251      178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
    1252      181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
    1253      186,   187,   187,   187,   187,   188,   188,   189,   189,   190,
    1254      190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
    1255      192,   192,   192,   192,   193,   193,   193,   194,   194,   194,
    1256      194,   194,   195,   195,   195,   195,   196,   197,   197,   197,
    1257      197,   197,   198,   198,   198,   198,   198,   199,   199,   200,
    1258      200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
    1259      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    1260      210,   210,   211,   211,   212,   212,   213,   213,   213,   213,
    1261      213,   214,   214,   214,   215,   215,   215,   216,   216,   216,
    1262      216,   216,   217,   217,   217,   218,   218,   219,   219,   219,
    1263      220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
    1264      222,   223,   223,   224,   224,   224,   224,   225,   225,   225,
    1265      225,   226,   226,   227,   227,   228,   228,   229,   229,   229,
    1266      229,   229,   230,   229,   231,   231,   231,   232,   232,   233,
    1267      233,   233,   233,   233,   233,   233,   233,   234,   234,   234,
    1268      234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
    1269      235,   235,   235,   235,   235,   236,   236,   237,   237,   237,
    1270      237,   238,   238,   238,   238,   239,   239,   239,   239,   240,
    1271      240,   240,   241,   241,   241,   241,   242,   242,   242,   243,
    1272      243,   244,   244,   245,   244,   244,   244,   246,   246,   247,
    1273      247,   248,   248,   248,   248,   249,   249,   249,   249,   250,
    1274      250,   251,   251,   251,   251,   251,   252,   252,   253,   254,
    1275      255,   255,   256,   255,   257,   257,   258,   258,   259,   259,
    1276      260,   260,   260,   260,   260,   261,   261,   261,   261,   262,
    1277      262,   263,   263,   264,   264,   265,   265,   265,   265,   266,
    1278      266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
    1279      268,   269,   269,   270,   270,   271,   271,   271,   272,   272,
    1280      272,   273,   273,   273,   274,   274,   274,   275,   275,   275,
    1281      275,   276,   276,   276,   277,   277,   278,   278,   278,   278,
    1282      278,   279,   279,   280,   280,   281,   281,   281,   281,   281,
    1283      282,   282,   282,   282,   283,   283,   283,   284,   285,   285,
    1284      287,   286,   286,   288,   288,   288,   289,   289,   290,   290,
    1285      290,   291,   291,   291,   291,   292,   292,   292,   293,   293,
    1286      294,   294,   295,   296,   295,   297,   297,   298,   298,   299,
    1287      299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
    1288      304,   304,   304,   305,   304,   304,   306,   306,   306,   307,
    1289      307,   307,   307,   307,   307,   307,   307,   307,   308,   308,
    1290      308,   309,   310,   310,   311,   311,   312,   312,   313,   314,
    1291      314,   315,   315,   315,   316,   316,   316,   316,   317,   317,
    1292      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    1293      320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    1294      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    1295      327,   328,   328,   328,   329,   329,   329,   330,   330,   330,
    1296      330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
    1297      334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
    1298      337,   337,   337,   337,   338,   338,   338,   339,   339,   339,
    1299      339,   340,   340,   341,   341,   341,   342,   342,   343,   343,
    1300      344,   344,   344,   345,   345,   345,   345,   345,   346,   346,
    1301      346,   346,   347,   347,   347,   348,   348,   348,   349,   349,
    1302      349,   349,   350,   350,   350,   351,   351,   351,   351,   351,
    1303      352,   352,   352,   352,   353,   353,   353,   354,   354,   354,
    1304      355,   355,   355,   355,   355,   355,   356,   356,   356,   357,
    1305      357,   357,   357,   357,   358,   358,   358,   358,   359,   359,
    1306      360,   360,   360,   361,   361,   362,   362,   362,   362,   362,
    1307      362,   363,   363,   363,   363,   363,   363,   363,   363,   363,
    1308      363,   364,   364,   364,   364,   365,   365,   365,   366,   366,
    1309      367,   367,   367,   367,   367,   367,   368,   368,   368,   368,
    1310      368,   368,   369,   370,   370,   370,   371,   371,   372,   372
     913    7252,  8635, -1317,    -3, -1317, -1317, -1317, -1317, -1317, -1317,
     914   -1317,    23, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     915   -1317, -1317, -1317, -1317, -1317, -1317,    81,    81,    81,  1277,
     916     970,   104,  7368,   277, -1317, -1317, -1317, -1317, -1317,   201,
     917   -1317, -1317, -1317,  1047,   187, -1317, -1317, -1317, -1317,  5370,
     918   -1317, -1317, -1317, -1317,    35,    48, -1317,  1328, -1317, -1317,
     919   -1317, -1317,   235,  1663,   343,    98,  7484, -1317, -1317,  6174,
     920    1066, -1317, -1317,   536,   376,  5540,   978,  1631,   536,  1775,
     921   -1317, -1317,   477,   683, -1317,   536,  1892, -1317,   295, -1317,
     922     422,   489, -1317, -1317, -1317, -1317,   346,    48,    81, -1317,
     923      81, -1317, -1317, -1317, -1317,  9392,  1328, -1317, -1317,  1328,
     924   -1317,   321, -1317,  9431, -1317, -1317,  2250,  9501, -1317,   668,
     925     668,   668, -1317, -1317, -1317,    81, -1317, -1317, -1317,   373,
     926     399,   410, -1317, -1317, -1317,   420, -1317, -1317, -1317, -1317,
     927   -1317,   428,   450, -1317, -1317,    59,  8604,  2904,   144,   440,
     928     493,   498,   531,   544,   560,  8522,  6772,   510,   580, -1317,
     929    9114, -1317, -1317, -1317, -1317,   584, -1317,   153,  4280,  4280,
     930   -1317,   570,   283, -1317, -1317, -1317, -1317,   596,   288,   303,
     931     332,    81,   583, -1317, -1317,  1663,  2232,   648, -1317,    73,
     932   -1317,    81,    81,    48, -1317, -1317,    80, -1317,    81,    81,
     933   -1317,  3694,   599,   613,   668,  6565, -1317, -1317,   661,  5370,
     934   -1317, -1317,   536, -1317, -1317, -1317,    48, -1317,  1328,    35,
     935   -1317,  7675, -1317,   668,   668,   668,    48, -1317,  1277, -1317,
     936    5446, -1317, -1317,   620,   668, -1317,   668, -1317,   201,  8604,
     937   -1317,   673, -1317,   970,   692,   668, -1317,  1277,   697,   707,
     938   -1317,  7368,   576, -1317, -1317, -1317,  4822, -1317, -1317,  9720,
     939   -1317,   648,   165, 10347,  9501,  2250,  3694, -1317,   109, -1317,
     940   -1317,  9431,  1328,   743,  7515, -1317, -1317,   306, -1317, 10675,
     941     770,   800,  2676,   801, 10480, 10499, -1317,   813, -1317, -1317,
     942   -1317, -1317, 10556, 10556,  8378,   795, -1317, -1317, -1317, -1317,
     943   -1317, -1317,   842, -1317,   685,  1919,  8717, 10480, -1317,   652,
     944     325,   507,   317,   581,   826,   820,   823,   861,   111, -1317,
     945   -1317,   827,   703, -1317,   452, -1317, -1317,  2904, -1317, -1317,
     946     278,   856, -1317,   636,   856,   866,   201, -1317, -1317,   872,
     947    9392, -1317,   876,   887,  8830, -1317, -1317,  1020,  2049,  8093,
     948    6565,   536, -1317,   536,   668,   668, -1317, -1317, -1317, -1317,
     949   -1317, -1317,   668,  9392,  1328, -1317, -1317,  9540,  1233, -1317,
     950    7824, -1317, -1317, -1317, -1317, -1317, -1317, -1317,   891,  4627,
     951   10480, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     952   -1317, -1317, -1317, -1317, -1317,  2250, -1317,   552,   901,   904,
     953     912,   862,   920,   922,   924,  2232, -1317, -1317,   932,    35,
     954     936, -1317, -1317,   939, -1317, -1317, -1317,  4822, -1317, -1317,
     955   -1317, -1317, -1317,  3694, -1317,  8604,  8604, -1317,   668,  2250,
     956    6684,  1328,  8166, -1317, -1317, -1317, -1317,  4822,   165, -1317,
     957   -1317,   536,    48, -1317, -1317,  4822, -1317,  6449, -1317, -1317,
     958     668,   668,   484,  8011,   938,   941,   931,   952,   668, -1317,
     959   -1317, -1317, -1317,  9797, -1317,   578,  6327, -1317,    48,   955,
     960   -1317,  2250, 10757, 10404, -1317, -1317, -1317, -1317,   881,  3694,
     961   -1317,  8239,   648,  3545, -1317, -1317, -1317,  1641,   586,   827,
     962     970,  7515,   592,  9431, -1317,  7515, -1317, -1317, -1317, -1317,
     963     603, -1317,   967,   800,   215,  8378, -1317,  9570, -1317, -1317,
     964    8378, -1317,  8491,  8378, -1317, -1317,   966, -1317,   617,   973,
     965     839,   983, -1317, -1317,  9253,  6415, -1317,   247, -1317, -1317,
     966   10347, -1317,   330, 10347, -1317, -1317, -1317, -1317, -1317, -1317,
     967   -1317, -1317, -1317, -1317, -1317, 10347, -1317, -1317, 10480, 10480,
     968   10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480,
     969   10480, 10480, 10480, 10480, 10480, 10480,  4526, 10347, -1317,   703,
     970     751, -1317, -1317,    81,    81, -1317, -1317,  8604, -1317, -1317,
     971     939,   576, -1317,   939, 10423, -1317, -1317, -1317,  8975,  6415,
     972     968,   976, -1317,  9501, -1317, -1317,   584, -1317,   990,   769,
     973     999,  3014,   124,   827, -1317,    81,    81,   827,   125, -1317,
     974      81,    81,   939, -1317, -1317,    81,    81, -1317,   856,  9652,
     975    1328, 10902,   151,   358,  9652, -1317,  9720, -1317,   827, -1317,
     976    9392, -1317,   147,  7790,  7790,  7790,  1328, -1317,  5708,   982,
     977     891,  1167,   995,   996, -1317,  1011,  4280,   230, -1317,  1103,
     978    1328,  7790,   576,  2250,   576,   648,   671,   856, -1317, -1317,
     979     694,   856, -1317, -1317, -1317,   800, -1317,   856,    48,  9797,
     980   -1317,   621,  1024,   640,  1026, -1317,  1030,    48, -1317, -1317,
     981    4822,    48,  1032,  9570,  1037, -1317,  1585, -1317,   335,   390,
     982     970, -1317,   970,  1023, 10480, -1317,   970, 10902, -1317, -1317,
     983    1034, -1317, -1317, -1317,   576, -1317, 10830,   887, -1317,  7790,
     984     859,  8093, -1317, -1317,   584,  1025,  1036,  1641,  3247, -1317,
     985   -1317,  7515, -1317, -1317,  1039, -1317, -1317,  1043, -1317,  1039,
     986    1048, 10675, 10347,    67,  1027,   133,  1053,  1061,  1068,  1069,
     987   -1317,  1072,  1074,  9362,  6534, -1317, 10347, -1317,   839,  2140,
     988   -1317, -1317, -1317,    81,    81, 10290, 10347,  1070, -1317, -1317,
     989     675, -1317, 10347, -1317, -1317,   644, -1317, -1317, -1317, -1317,
     990     652,   652,   325,   325,   507,   507,   507,   507,   317,   317,
     991     581,   826,   820,   823,   861, 10480,   333, -1317,  9797,  1079,
     992    1080,  1081,   751, -1317, -1317, -1317, -1317, -1317,  9797,   700,
     993    7790, -1317,  9392, -1317,  6891,  8943, -1317,  7824,  6772, -1317,
     994   -1317,   769,  9797,   917,  1082,  1083,  1084,  1087,  1088,  1089,
     995    1091, -1317,  4955,  3014, -1317, -1317, -1317, -1317, -1317, -1317,
     996   -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     997   -1317,   939, -1317, -1317, -1317,   827, -1317, -1317, -1317, -1317,
     998   -1317, -1317, -1317, -1317,  1098, -1317,  1099,  1101, -1317, -1317,
     999      35,  1070,  5708, -1317, -1317, -1317,  4627,  1102, -1317, -1317,
     1000   -1317, -1317,   970,  5944,  1191, -1317, -1317, -1317, -1317,  1094,
     1001      35, -1317, -1317,   939, -1317, -1317,   939,    24,   939, -1317,
     1002   -1317, -1317, -1317, -1317, -1317,  9223, -1317,    48, -1317, -1317,
     1003     432,   441,  9540,  7010,  2348, 10480,  3377, -1317, -1317,  1092,
     1004      94,  1092, -1317,   970, -1317,    81, -1317, -1317,  8748,   931,
     1005   -1317, -1317, -1317,   941,  1116,  1111, -1317, -1317,  1118,  1119,
     1006   -1317,   859,  2430, -1317,   455, -1317,  3247,   827, -1317,  1122,
     1007    7515,  9682,  8604,  1125, -1317, -1317,  1130,  1135,  1124, -1317,
     1008   10480,   166,   222,  1132, -1317,  1138,   576,  1138, -1317, -1317,
     1009    1138,  1137, -1317,  1145,  1147,  1148,  2140, -1317, -1317, -1317,
     1010    4627, -1317, -1317, -1317, -1317,  1143, 10347,  1149,   576, -1317,
     1011   10347, -1317,   576, -1317, -1317, 10347, -1317,   721,   856, -1317,
     1012   -1317, -1317, -1317, -1317, -1317, -1317,   891,   887,  8830, -1317,
     1013   -1317,  7129,  1152, -1317,   731,   856, -1317,   745,   763,   856,
     1014   -1317,   668,  5561, -1317, -1317, -1317,  9797,  9797, -1317,  8166,
     1015    8166, -1317,  1154,  1156,  1153,  1155, -1317,  1168,   460,   196,
     1016    1070, -1317,   576, -1317,  4280, -1317, 10347,   474, -1317,  6296,
     1017    1159,  1170, 10233,  1172,  1175,   -14,     3,    11, 10347,  1179,
     1018      48, 10347, 10347,  1160,  1177,   282,  1161, -1317, -1317, -1317,
     1019    1180, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     1020     970,  1184, 10347, -1317,  9797,  9797,    81,  1188, -1317,  8861,
     1021   -1317, -1317,   809, -1317,  3377, -1317, -1317, -1317, -1317,  1585,
     1022   -1317, -1317,  1185, -1317, -1317, -1317, -1317,  1193,  2430, -1317,
     1023   -1317,  1176, -1317,  1039, -1317, -1317,  2250,  1196, -1317, -1317,
     1024   -1317,   709,  1198, -1317,   133,  1202, 10480,  1186,   133,   133,
     1025    1211,  9253,   789,   856, -1317, -1317,  1011, 10347,  1214,  1143,
     1026     505,   224,  1217, -1317, -1317,  1218,  1217, -1317, -1317,  1226,
     1027   -1317, -1317,   939,  1228,  1230,  6653,  1231,  1232,  1243, -1317,
     1028   -1317,  1246, -1317, -1317,   939, -1317, -1317, -1317, -1317,   939,
     1029   10347, 10347,   887,  1245, -1317, -1317, -1317, -1317, -1317, -1317,
     1030   -1317, -1317, -1317, -1317, -1317, -1317, 10480, 10480,  1247,  1251,
     1031    1217, -1317, -1317,   970, -1317, -1317, -1317,  4468,  9682, 10347,
     1032   10347,  1311, 10347, -1317,  1234, -1317,  1237, -1317,  1239, 10347,
     1033    1241, 10347,  1049,  1244,    26,    81,  9084,   750, -1317, -1317,
     1034    5944,  1267,   481, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     1035   -1317, -1317, 10053, -1317,  8239,  1274, -1317, -1317,  9682,   482,
     1036     512, -1317,  1272,  1259,   800,  1280, -1317,   245, -1317, -1317,
     1037   -1317, -1317,   939,  1279, -1317, -1317,  1287,   385,   444,   576,
     1038    1293, -1317,  1294, -1317,  9797, -1317, -1317, -1317, -1317, -1317,
     1039    1295, -1317,  9797,  9797,  9797, -1317, -1317,  1297, -1317,  1298,
     1040    1282,  1305,   511,  7863,  7978, -1317, -1317,   348, -1317,  1304,
     1041    1310, -1317,  8312,   712,   734,  1308,   739,  6143, -1317, -1317,
     1042   -1317,   515, -1317,   765,  1318,  1320,    48,  1371,   879, -1317,
     1043   -1317, 10347, -1317, 10233, 10347, -1317, -1317, -1317,  1322,  1329,
     1044   -1317, -1317, -1317,  1324, -1317, -1317, -1317, -1317, -1317, -1317,
     1045    9682,   800,   265, -1317,  1309,   800,  9797, -1317, -1317, -1317,
     1046   -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     1047   -1317,  1330,  1331, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
     1048    1334, -1317,  1333, -1317, -1317, 10233,   143, 10347, 10233, -1317,
     1049    1338, 10347, -1317,   259,  1354,  1356, -1317, -1317,  1346,  1347,
     1050    1326, -1317,   880, -1317, -1317, -1317,  1328,  2250,  1345,   842,
     1051     364, 10480, -1317,   774, -1317,   576,   576,  1352,  1355,  1357,
     1052    1360, -1317, -1317,  8166,  1358, -1317,  1436, 10480,  1349, -1317,
     1053   -1317, 10145, -1317,   783, -1317,  1350, 10233,  1359, -1317, -1317,
     1054    1378, -1317,  1379, -1317,  1394,  1396, -1317,  1361,  9682, -1317,
     1055   -1317, -1317,   800,   576,  1386,  1367,  1392,  1217,  1217, -1317,
     1056   -1317, -1317, -1317, -1317, 10233,   275, -1317,   384, -1317, -1317,
     1057    7600, -1317, -1317,  1375, 10347, -1317, 10347,  7600,    48,  9570,
     1058      48,  9570,  1393, -1317,  1398, -1317, -1317,  1395,   842, -1317,
     1059     798, -1317, -1317, -1317,  1399,  1401, -1317, 10480, 10480, -1317,
     1060   -1317,   964,   167, -1317, -1317,  1388, -1317,   964, -1317, -1317,
     1061    2461,   576, -1317, -1317,    48,  9570,    48,  9570,  1409,  1390,
     1062     576, -1317, -1317, -1317, -1317, 10145,  1410,   964,  5861, 10347,
     1063   10057,  1412,   964,  1414,  2461,  3613, -1317, -1317, -1317,  1420,
     1064   -1317, -1317, -1317, -1317,  8604, -1317, -1317, -1317,  9924, -1317,
     1065   10145, -1317, -1317,  1402,  9836, -1317, -1317, 10057,    48,  3613,
     1066      48,  1421,  1429,   817, -1317,  9924, -1317, -1317, -1317,  9836,
     1067   -1317, -1317, -1317,    48,    48, -1317, -1317, -1317, -1317, -1317,
     1068   -1317, -1317, -1317
    13111069};
    13121070
    1313 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1314 static const yytype_uint8 yyr2[] =
    1315 {
    1316        0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1317        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
    1318        3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
    1319        2,     7,     4,     1,     3,     0,     1,     1,     3,     1,
    1320        3,     7,     3,     7,     1,     1,     1,     2,     2,     2,
    1321        2,     2,     2,     4,     2,     4,     6,     1,     4,     4,
    1322        1,     1,     1,     1,     1,     1,     1,     4,     4,     1,
    1323        3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
    1324        3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
    1325        3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
    1326        5,     1,     1,     3,     2,     0,     1,     1,     1,     1,
    1327        1,     1,     1,     1,     1,     1,     1,     1,     2,     5,
    1328        6,     7,     1,     3,     1,     3,     0,     1,     1,     1,
    1329        1,     1,     1,     1,     1,     1,     6,     4,     2,     7,
    1330        1,     3,     1,     2,     1,     2,     1,     2,     2,     5,
    1331        7,     5,     9,     5,     9,     1,     3,     1,     1,     3,
    1332        3,     2,     1,     2,     2,     0,     1,     2,     3,     0,
    1333        1,     2,     3,     3,     4,     0,     1,     1,     2,     5,
    1334        7,     6,     6,     4,     3,     4,     2,     3,     2,     3,
    1335        3,     3,     3,     5,     3,     3,     4,     1,     5,     6,
    1336        5,     6,     9,    10,     9,    10,     2,     1,     2,     2,
    1337        2,     1,     6,     8,    10,    12,    14,     0,     1,     0,
    1338        1,     1,     3,     4,     7,     0,     1,     3,     1,     3,
    1339        1,     1,     1,     3,     1,     1,     1,     3,     0,     1,
    1340        3,     4,     1,     3,     1,     1,     3,     3,     3,     3,
    1341        3,     2,     3,     6,     3,     3,     4,     1,     2,     2,
    1342        3,     5,     8,     7,     7,     5,     9,     2,     2,     5,
    1343        3,     5,     4,     3,     4,     4,     7,     3,     3,     3,
    1344        3,     4,     6,     1,     1,     1,     1,     1,     1,     1,
    1345        1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
    1346        1,     1,     0,     5,     1,     2,     3,     1,     2,     1,
    1347        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1348        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1349        1,     2,     2,     3,     3,     1,     3,     1,     2,     2,
    1350        2,     4,     4,     4,     4,     1,     2,     2,     3,     1,
    1351        2,     2,     1,     2,     2,     3,     1,     2,     2,     1,
    1352        1,     4,     2,     0,     6,     7,     2,     2,     2,     0,
    1353        2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
    1354        4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
    1355        5,     2,     0,     7,     2,     4,     0,     2,     0,     1,
    1356        1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
    1357        5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
    1358        3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
    1359        3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
    1360        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    1361        2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
    1362        4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
    1363        1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
    1364        0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
    1365       13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
    1366        1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
    1367        1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
    1368        1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
    1369        3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
    1370        1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
    1371        3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
    1372        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1373        3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
    1374        3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
    1375        3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
    1376        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    1377        6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
    1378        2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
    1379        2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
    1380        1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
    1381        4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
    1382        6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
    1383        1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
    1384        2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
    1385        2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
    1386        1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
    1387        3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
    1388        2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
    1389        2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
    1390        4,     2,     5,     5,     6,     6,     0,     1,     0,     2
    1391 };
    1392 
    1393 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
    1394    Performed when YYTABLE doesn't specify something else to do.  Zero
    1395    means the default is an error.  */
     1071  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
     1072     Performed when YYTABLE does not specify something else to do.  Zero
     1073     means the default is an error.  */
    13961074static const yytype_uint16 yydefact[] =
    13971075{
     
    15541232};
    15551233
    1556 /* YYDEFGOTO[NTERM-NUM].  */
     1234  /* YYPGOTO[NTERM-NUM].  */
     1235static const yytype_int16 yypgoto[] =
     1236{
     1237   -1317,  4344,  3244, -1317,   633, -1317,   172,   896,  -203, -1317,
     1238     487,  -518,  -482,  -910,  -211,  1511,     0, -1317,  1129,   534,
     1239     537,   615,   556,   984,   981,   988,   980,   989, -1317,     4,
     1240    -451,  4784,  -913, -1317,  -702,   571,    13,  -706,   419, -1317,
     1241     190, -1317,   345,  -964, -1317, -1317,    85, -1317, -1099, -1138,
     1242     197, -1317, -1317, -1317, -1317,    20, -1281, -1317, -1317, -1317,
     1243   -1317, -1317, -1317,   266, -1095,    50, -1317,  -472, -1317,   443,
     1244     239, -1317,   118, -1317,  -294, -1317, -1317, -1317,   496,  -829,
     1245   -1317, -1317,     8,  -952,    28,  2894, -1317, -1317, -1317,  -214,
     1246   -1317,   121,  1028,  -198,  1848,  3592, -1317, -1317,   127,   296,
     1247    1545,  1505, -1317,  1929, -1317, -1317,   137,  2139, -1317,  2574,
     1248     804, -1317, -1317, -1317,  -637, -1317,   886,   889,   490,   670,
     1249      52, -1317, -1317, -1317,   893,   666,  -510, -1317,  -116,    40,
     1250    1073, -1317, -1317,  -889,  -983,   933,  1377,  1006,   -11, -1317,
     1251    1351,   508,  -322,  -183,  -145,   623,   724, -1317,   944, -1317,
     1252    2701,   574,  -443,   875, -1317, -1317,   659, -1317,  -228, -1317,
     1253     -45, -1317, -1317, -1317, -1253,   370, -1317, -1317, -1317,  1120,
     1254   -1317,    33, -1317, -1317,  -828,  -100, -1316,  -170,  2264, -1317,
     1255    1914, -1317,   868, -1317,  -155,   129,  -181,  -180,  -175,     7,
     1256     -41,   -40,   -35,  1507,    37,    53,    57,   -29,  -172,  -163,
     1257    -158,  -150,  -293,  -500,  -490,  -485,  -542,  -284,  -525, -1317,
     1258   -1317,  -499,  1035,  1038,  1040,  1486,  4616,  -563,  -531,  -513,
     1259    -491,  -561, -1317,  -506,  -730,  -727,  -723,  -562,  -311,  -227,
     1260   -1317, -1317,   378,    19,   -93, -1317,  3633,   159,  -611,  -428
     1261};
     1262
     1263  /* YYDEFGOTO[NTERM-NUM].  */
    15571264static const yytype_int16 yydefgoto[] =
    15581265{
     
    15831290};
    15841291
    1585 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1586    STATE-NUM.  */
    1587 #define YYPACT_NINF -1317
    1588 static const yytype_int16 yypact[] =
    1589 {
    1590     7252,  8635, -1317,    -3, -1317, -1317, -1317, -1317, -1317, -1317,
    1591    -1317,    23, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1592    -1317, -1317, -1317, -1317, -1317, -1317,    81,    81,    81,  1277,
    1593      970,   104,  7368,   277, -1317, -1317, -1317, -1317, -1317,   201,
    1594    -1317, -1317, -1317,  1047,   187, -1317, -1317, -1317, -1317,  5370,
    1595    -1317, -1317, -1317, -1317,    35,    48, -1317,  1328, -1317, -1317,
    1596    -1317, -1317,   235,  1663,   343,    98,  7484, -1317, -1317,  6174,
    1597     1066, -1317, -1317,   536,   376,  5540,   978,  1631,   536,  1775,
    1598    -1317, -1317,   477,   683, -1317,   536,  1892, -1317,   295, -1317,
    1599      422,   489, -1317, -1317, -1317, -1317,   346,    48,    81, -1317,
    1600       81, -1317, -1317, -1317, -1317,  9392,  1328, -1317, -1317,  1328,
    1601    -1317,   321, -1317,  9431, -1317, -1317,  2250,  9501, -1317,   668,
    1602      668,   668, -1317, -1317, -1317,    81, -1317, -1317, -1317,   373,
    1603      399,   410, -1317, -1317, -1317,   420, -1317, -1317, -1317, -1317,
    1604    -1317,   428,   450, -1317, -1317,    59,  8604,  2904,   144,   440,
    1605      493,   498,   531,   544,   560,  8522,  6772,   510,   580, -1317,
    1606     9114, -1317, -1317, -1317, -1317,   584, -1317,   153,  4280,  4280,
    1607    -1317,   570,   283, -1317, -1317, -1317, -1317,   596,   288,   303,
    1608      332,    81,   583, -1317, -1317,  1663,  2232,   648, -1317,    73,
    1609    -1317,    81,    81,    48, -1317, -1317,    80, -1317,    81,    81,
    1610    -1317,  3694,   599,   613,   668,  6565, -1317, -1317,   661,  5370,
    1611    -1317, -1317,   536, -1317, -1317, -1317,    48, -1317,  1328,    35,
    1612    -1317,  7675, -1317,   668,   668,   668,    48, -1317,  1277, -1317,
    1613     5446, -1317, -1317,   620,   668, -1317,   668, -1317,   201,  8604,
    1614    -1317,   673, -1317,   970,   692,   668, -1317,  1277,   697,   707,
    1615    -1317,  7368,   576, -1317, -1317, -1317,  4822, -1317, -1317,  9720,
    1616    -1317,   648,   165, 10347,  9501,  2250,  3694, -1317,   109, -1317,
    1617    -1317,  9431,  1328,   743,  7515, -1317, -1317,   306, -1317, 10675,
    1618      770,   800,  2676,   801, 10480, 10499, -1317,   813, -1317, -1317,
    1619    -1317, -1317, 10556, 10556,  8378,   795, -1317, -1317, -1317, -1317,
    1620    -1317, -1317,   842, -1317,   685,  1919,  8717, 10480, -1317,   652,
    1621      325,   507,   317,   581,   826,   820,   823,   861,   111, -1317,
    1622    -1317,   827,   703, -1317,   452, -1317, -1317,  2904, -1317, -1317,
    1623      278,   856, -1317,   636,   856,   866,   201, -1317, -1317,   872,
    1624     9392, -1317,   876,   887,  8830, -1317, -1317,  1020,  2049,  8093,
    1625     6565,   536, -1317,   536,   668,   668, -1317, -1317, -1317, -1317,
    1626    -1317, -1317,   668,  9392,  1328, -1317, -1317,  9540,  1233, -1317,
    1627     7824, -1317, -1317, -1317, -1317, -1317, -1317, -1317,   891,  4627,
    1628    10480, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1629    -1317, -1317, -1317, -1317, -1317,  2250, -1317,   552,   901,   904,
    1630      912,   862,   920,   922,   924,  2232, -1317, -1317,   932,    35,
    1631      936, -1317, -1317,   939, -1317, -1317, -1317,  4822, -1317, -1317,
    1632    -1317, -1317, -1317,  3694, -1317,  8604,  8604, -1317,   668,  2250,
    1633     6684,  1328,  8166, -1317, -1317, -1317, -1317,  4822,   165, -1317,
    1634    -1317,   536,    48, -1317, -1317,  4822, -1317,  6449, -1317, -1317,
    1635      668,   668,   484,  8011,   938,   941,   931,   952,   668, -1317,
    1636    -1317, -1317, -1317,  9797, -1317,   578,  6327, -1317,    48,   955,
    1637    -1317,  2250, 10757, 10404, -1317, -1317, -1317, -1317,   881,  3694,
    1638    -1317,  8239,   648,  3545, -1317, -1317, -1317,  1641,   586,   827,
    1639      970,  7515,   592,  9431, -1317,  7515, -1317, -1317, -1317, -1317,
    1640      603, -1317,   967,   800,   215,  8378, -1317,  9570, -1317, -1317,
    1641     8378, -1317,  8491,  8378, -1317, -1317,   966, -1317,   617,   973,
    1642      839,   983, -1317, -1317,  9253,  6415, -1317,   247, -1317, -1317,
    1643    10347, -1317,   330, 10347, -1317, -1317, -1317, -1317, -1317, -1317,
    1644    -1317, -1317, -1317, -1317, -1317, 10347, -1317, -1317, 10480, 10480,
    1645    10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480,
    1646    10480, 10480, 10480, 10480, 10480, 10480,  4526, 10347, -1317,   703,
    1647      751, -1317, -1317,    81,    81, -1317, -1317,  8604, -1317, -1317,
    1648      939,   576, -1317,   939, 10423, -1317, -1317, -1317,  8975,  6415,
    1649      968,   976, -1317,  9501, -1317, -1317,   584, -1317,   990,   769,
    1650      999,  3014,   124,   827, -1317,    81,    81,   827,   125, -1317,
    1651       81,    81,   939, -1317, -1317,    81,    81, -1317,   856,  9652,
    1652     1328, 10902,   151,   358,  9652, -1317,  9720, -1317,   827, -1317,
    1653     9392, -1317,   147,  7790,  7790,  7790,  1328, -1317,  5708,   982,
    1654      891,  1167,   995,   996, -1317,  1011,  4280,   230, -1317,  1103,
    1655     1328,  7790,   576,  2250,   576,   648,   671,   856, -1317, -1317,
    1656      694,   856, -1317, -1317, -1317,   800, -1317,   856,    48,  9797,
    1657    -1317,   621,  1024,   640,  1026, -1317,  1030,    48, -1317, -1317,
    1658     4822,    48,  1032,  9570,  1037, -1317,  1585, -1317,   335,   390,
    1659      970, -1317,   970,  1023, 10480, -1317,   970, 10902, -1317, -1317,
    1660     1034, -1317, -1317, -1317,   576, -1317, 10830,   887, -1317,  7790,
    1661      859,  8093, -1317, -1317,   584,  1025,  1036,  1641,  3247, -1317,
    1662    -1317,  7515, -1317, -1317,  1039, -1317, -1317,  1043, -1317,  1039,
    1663     1048, 10675, 10347,    67,  1027,   133,  1053,  1061,  1068,  1069,
    1664    -1317,  1072,  1074,  9362,  6534, -1317, 10347, -1317,   839,  2140,
    1665    -1317, -1317, -1317,    81,    81, 10290, 10347,  1070, -1317, -1317,
    1666      675, -1317, 10347, -1317, -1317,   644, -1317, -1317, -1317, -1317,
    1667      652,   652,   325,   325,   507,   507,   507,   507,   317,   317,
    1668      581,   826,   820,   823,   861, 10480,   333, -1317,  9797,  1079,
    1669     1080,  1081,   751, -1317, -1317, -1317, -1317, -1317,  9797,   700,
    1670     7790, -1317,  9392, -1317,  6891,  8943, -1317,  7824,  6772, -1317,
    1671    -1317,   769,  9797,   917,  1082,  1083,  1084,  1087,  1088,  1089,
    1672     1091, -1317,  4955,  3014, -1317, -1317, -1317, -1317, -1317, -1317,
    1673    -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1674    -1317,   939, -1317, -1317, -1317,   827, -1317, -1317, -1317, -1317,
    1675    -1317, -1317, -1317, -1317,  1098, -1317,  1099,  1101, -1317, -1317,
    1676       35,  1070,  5708, -1317, -1317, -1317,  4627,  1102, -1317, -1317,
    1677    -1317, -1317,   970,  5944,  1191, -1317, -1317, -1317, -1317,  1094,
    1678       35, -1317, -1317,   939, -1317, -1317,   939,    24,   939, -1317,
    1679    -1317, -1317, -1317, -1317, -1317,  9223, -1317,    48, -1317, -1317,
    1680      432,   441,  9540,  7010,  2348, 10480,  3377, -1317, -1317,  1092,
    1681       94,  1092, -1317,   970, -1317,    81, -1317, -1317,  8748,   931,
    1682    -1317, -1317, -1317,   941,  1116,  1111, -1317, -1317,  1118,  1119,
    1683    -1317,   859,  2430, -1317,   455, -1317,  3247,   827, -1317,  1122,
    1684     7515,  9682,  8604,  1125, -1317, -1317,  1130,  1135,  1124, -1317,
    1685    10480,   166,   222,  1132, -1317,  1138,   576,  1138, -1317, -1317,
    1686     1138,  1137, -1317,  1145,  1147,  1148,  2140, -1317, -1317, -1317,
    1687     4627, -1317, -1317, -1317, -1317,  1143, 10347,  1149,   576, -1317,
    1688    10347, -1317,   576, -1317, -1317, 10347, -1317,   721,   856, -1317,
    1689    -1317, -1317, -1317, -1317, -1317, -1317,   891,   887,  8830, -1317,
    1690    -1317,  7129,  1152, -1317,   731,   856, -1317,   745,   763,   856,
    1691    -1317,   668,  5561, -1317, -1317, -1317,  9797,  9797, -1317,  8166,
    1692     8166, -1317,  1154,  1156,  1153,  1155, -1317,  1168,   460,   196,
    1693     1070, -1317,   576, -1317,  4280, -1317, 10347,   474, -1317,  6296,
    1694     1159,  1170, 10233,  1172,  1175,   -14,     3,    11, 10347,  1179,
    1695       48, 10347, 10347,  1160,  1177,   282,  1161, -1317, -1317, -1317,
    1696     1180, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1697      970,  1184, 10347, -1317,  9797,  9797,    81,  1188, -1317,  8861,
    1698    -1317, -1317,   809, -1317,  3377, -1317, -1317, -1317, -1317,  1585,
    1699    -1317, -1317,  1185, -1317, -1317, -1317, -1317,  1193,  2430, -1317,
    1700    -1317,  1176, -1317,  1039, -1317, -1317,  2250,  1196, -1317, -1317,
    1701    -1317,   709,  1198, -1317,   133,  1202, 10480,  1186,   133,   133,
    1702     1211,  9253,   789,   856, -1317, -1317,  1011, 10347,  1214,  1143,
    1703      505,   224,  1217, -1317, -1317,  1218,  1217, -1317, -1317,  1226,
    1704    -1317, -1317,   939,  1228,  1230,  6653,  1231,  1232,  1243, -1317,
    1705    -1317,  1246, -1317, -1317,   939, -1317, -1317, -1317, -1317,   939,
    1706    10347, 10347,   887,  1245, -1317, -1317, -1317, -1317, -1317, -1317,
    1707    -1317, -1317, -1317, -1317, -1317, -1317, 10480, 10480,  1247,  1251,
    1708     1217, -1317, -1317,   970, -1317, -1317, -1317,  4468,  9682, 10347,
    1709    10347,  1311, 10347, -1317,  1234, -1317,  1237, -1317,  1239, 10347,
    1710     1241, 10347,  1049,  1244,    26,    81,  9084,   750, -1317, -1317,
    1711     5944,  1267,   481, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1712    -1317, -1317, 10053, -1317,  8239,  1274, -1317, -1317,  9682,   482,
    1713      512, -1317,  1272,  1259,   800,  1280, -1317,   245, -1317, -1317,
    1714    -1317, -1317,   939,  1279, -1317, -1317,  1287,   385,   444,   576,
    1715     1293, -1317,  1294, -1317,  9797, -1317, -1317, -1317, -1317, -1317,
    1716     1295, -1317,  9797,  9797,  9797, -1317, -1317,  1297, -1317,  1298,
    1717     1282,  1305,   511,  7863,  7978, -1317, -1317,   348, -1317,  1304,
    1718     1310, -1317,  8312,   712,   734,  1308,   739,  6143, -1317, -1317,
    1719    -1317,   515, -1317,   765,  1318,  1320,    48,  1371,   879, -1317,
    1720    -1317, 10347, -1317, 10233, 10347, -1317, -1317, -1317,  1322,  1329,
    1721    -1317, -1317, -1317,  1324, -1317, -1317, -1317, -1317, -1317, -1317,
    1722     9682,   800,   265, -1317,  1309,   800,  9797, -1317, -1317, -1317,
    1723    -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1724    -1317,  1330,  1331, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1725     1334, -1317,  1333, -1317, -1317, 10233,   143, 10347, 10233, -1317,
    1726     1338, 10347, -1317,   259,  1354,  1356, -1317, -1317,  1346,  1347,
    1727     1326, -1317,   880, -1317, -1317, -1317,  1328,  2250,  1345,   842,
    1728      364, 10480, -1317,   774, -1317,   576,   576,  1352,  1355,  1357,
    1729     1360, -1317, -1317,  8166,  1358, -1317,  1436, 10480,  1349, -1317,
    1730    -1317, 10145, -1317,   783, -1317,  1350, 10233,  1359, -1317, -1317,
    1731     1378, -1317,  1379, -1317,  1394,  1396, -1317,  1361,  9682, -1317,
    1732    -1317, -1317,   800,   576,  1386,  1367,  1392,  1217,  1217, -1317,
    1733    -1317, -1317, -1317, -1317, 10233,   275, -1317,   384, -1317, -1317,
    1734     7600, -1317, -1317,  1375, 10347, -1317, 10347,  7600,    48,  9570,
    1735       48,  9570,  1393, -1317,  1398, -1317, -1317,  1395,   842, -1317,
    1736      798, -1317, -1317, -1317,  1399,  1401, -1317, 10480, 10480, -1317,
    1737    -1317,   964,   167, -1317, -1317,  1388, -1317,   964, -1317, -1317,
    1738     2461,   576, -1317, -1317,    48,  9570,    48,  9570,  1409,  1390,
    1739      576, -1317, -1317, -1317, -1317, 10145,  1410,   964,  5861, 10347,
    1740    10057,  1412,   964,  1414,  2461,  3613, -1317, -1317, -1317,  1420,
    1741    -1317, -1317, -1317, -1317,  8604, -1317, -1317, -1317,  9924, -1317,
    1742    10145, -1317, -1317,  1402,  9836, -1317, -1317, 10057,    48,  3613,
    1743       48,  1421,  1429,   817, -1317,  9924, -1317, -1317, -1317,  9836,
    1744    -1317, -1317, -1317,    48,    48, -1317, -1317, -1317, -1317, -1317,
    1745    -1317, -1317, -1317
    1746 };
    1747 
    1748 /* YYPGOTO[NTERM-NUM].  */
    1749 static const yytype_int16 yypgoto[] =
    1750 {
    1751    -1317,  4344,  3244, -1317,   633, -1317,   172,   896,  -203, -1317,
    1752      487,  -518,  -482,  -910,  -211,  1511,     0, -1317,  1129,   534,
    1753      537,   615,   556,   984,   981,   988,   980,   989, -1317,     4,
    1754     -451,  4784,  -913, -1317,  -702,   571,    13,  -706,   419, -1317,
    1755      190, -1317,   345,  -964, -1317, -1317,    85, -1317, -1099, -1138,
    1756      197, -1317, -1317, -1317, -1317,    20, -1281, -1317, -1317, -1317,
    1757    -1317, -1317, -1317,   266, -1095,    50, -1317,  -472, -1317,   443,
    1758      239, -1317,   118, -1317,  -294, -1317, -1317, -1317,   496,  -829,
    1759    -1317, -1317,     8,  -952,    28,  2894, -1317, -1317, -1317,  -214,
    1760    -1317,   121,  1028,  -198,  1848,  3592, -1317, -1317,   127,   296,
    1761     1545,  1505, -1317,  1929, -1317, -1317,   137,  2139, -1317,  2574,
    1762      804, -1317, -1317, -1317,  -637, -1317,   886,   889,   490,   670,
    1763       52, -1317, -1317, -1317,   893,   666,  -510, -1317,  -116,    40,
    1764     1073, -1317, -1317,  -889,  -983,   933,  1377,  1006,   -11, -1317,
    1765     1351,   508,  -322,  -183,  -145,   623,   724, -1317,   944, -1317,
    1766     2701,   574,  -443,   875, -1317, -1317,   659, -1317,  -228, -1317,
    1767      -45, -1317, -1317, -1317, -1253,   370, -1317, -1317, -1317,  1120,
    1768    -1317,    33, -1317, -1317,  -828,  -100, -1316,  -170,  2264, -1317,
    1769     1914, -1317,   868, -1317,  -155,   129,  -181,  -180,  -175,     7,
    1770      -41,   -40,   -35,  1507,    37,    53,    57,   -29,  -172,  -163,
    1771     -158,  -150,  -293,  -500,  -490,  -485,  -542,  -284,  -525, -1317,
    1772    -1317,  -499,  1035,  1038,  1040,  1486,  4616,  -563,  -531,  -513,
    1773     -491,  -561, -1317,  -506,  -730,  -727,  -723,  -562,  -311,  -227,
    1774    -1317, -1317,   378,    19,   -93, -1317,  3633,   159,  -611,  -428
    1775 };
    1776 
    1777 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    1778    positive, shift that token.  If negative, reduce the rule which
    1779    number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1780 #define YYTABLE_NINF -520
     1292  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
     1293     positive, shift that token.  If negative, reduce the rule whose
     1294     number is the opposite.  If YYTABLE_NINF, syntax error.  */
    17811295static const yytype_int16 yytable[] =
    17821296{
     
    28812395};
    28822396
    2883 #define yypact_value_is_default(yystate) \
    2884   ((yystate) == (-1317))
    2885 
    2886 #define yytable_value_is_error(yytable_value) \
    2887   YYID (0)
    2888 
    28892397static const yytype_int16 yycheck[] =
    28902398{
     
    39893497};
    39903498
    3991 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3992    symbol of state STATE-NUM.  */
     3499  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3500     symbol of state STATE-NUM.  */
    39933501static const yytype_uint16 yystos[] =
    39943502{
     
    41513659};
    41523660
    4153 #define yyerrok         (yyerrstatus = 0)
    4154 #define yyclearin       (yychar = YYEMPTY)
    4155 #define YYEMPTY         (-2)
    4156 #define YYEOF           0
    4157 
    4158 #define YYACCEPT        goto yyacceptlab
    4159 #define YYABORT         goto yyabortlab
    4160 #define YYERROR         goto yyerrorlab
    4161 
    4162 
    4163 /* Like YYERROR except do call yyerror.  This remains here temporarily
    4164    to ease the transition to the new meaning of YYERROR, for GCC.
    4165    Once GCC version 2 has supplanted version 1, this can go.  However,
    4166    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
    4167    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
    4168    discussed.  */
    4169 
    4170 #define YYFAIL          goto yyerrlab
    4171 #if defined YYFAIL
    4172   /* This is here to suppress warnings from the GCC cpp's
    4173      -Wunused-macros.  Normally we don't worry about that warning, but
    4174      some users do, and we want to make it easy for users to remove
    4175      YYFAIL uses, which will produce warnings from Bison 2.5.  */
    4176 #endif
     3661  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     3662static const yytype_uint16 yyr1[] =
     3663{
     3664       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     3665     138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
     3666     142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
     3667     143,   143,   143,   144,   144,   145,   145,   146,   146,   147,
     3668     147,   147,   147,   147,   148,   148,   148,   148,   148,   148,
     3669     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
     3670     149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
     3671     152,   152,   152,   153,   153,   153,   154,   154,   154,   155,
     3672     155,   155,   155,   155,   156,   156,   156,   157,   157,   158,
     3673     158,   159,   159,   160,   160,   161,   161,   162,   162,   162,
     3674     162,   163,   164,   164,   164,   165,   165,   166,   166,   166,
     3675     166,   166,   166,   166,   166,   166,   166,   166,   167,   167,
     3676     167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
     3677     171,   171,   171,   171,   171,   171,   171,   172,   173,   173,
     3678     174,   174,   175,   175,   175,   175,   176,   176,   177,   178,
     3679     178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
     3680     181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
     3681     186,   187,   187,   187,   187,   188,   188,   189,   189,   190,
     3682     190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
     3683     192,   192,   192,   192,   193,   193,   193,   194,   194,   194,
     3684     194,   194,   195,   195,   195,   195,   196,   197,   197,   197,
     3685     197,   197,   198,   198,   198,   198,   198,   199,   199,   200,
     3686     200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
     3687     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     3688     210,   210,   211,   211,   212,   212,   213,   213,   213,   213,
     3689     213,   214,   214,   214,   215,   215,   215,   216,   216,   216,
     3690     216,   216,   217,   217,   217,   218,   218,   219,   219,   219,
     3691     220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
     3692     222,   223,   223,   224,   224,   224,   224,   225,   225,   225,
     3693     225,   226,   226,   227,   227,   228,   228,   229,   229,   229,
     3694     229,   229,   230,   229,   231,   231,   231,   232,   232,   233,
     3695     233,   233,   233,   233,   233,   233,   233,   234,   234,   234,
     3696     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
     3697     235,   235,   235,   235,   235,   236,   236,   237,   237,   237,
     3698     237,   238,   238,   238,   238,   239,   239,   239,   239,   240,
     3699     240,   240,   241,   241,   241,   241,   242,   242,   242,   243,
     3700     243,   244,   244,   245,   244,   244,   244,   246,   246,   247,
     3701     247,   248,   248,   248,   248,   249,   249,   249,   249,   250,
     3702     250,   251,   251,   251,   251,   251,   252,   252,   253,   254,
     3703     255,   255,   256,   255,   257,   257,   258,   258,   259,   259,
     3704     260,   260,   260,   260,   260,   261,   261,   261,   261,   262,
     3705     262,   263,   263,   264,   264,   265,   265,   265,   265,   266,
     3706     266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
     3707     268,   269,   269,   270,   270,   271,   271,   271,   272,   272,
     3708     272,   273,   273,   273,   274,   274,   274,   275,   275,   275,
     3709     275,   276,   276,   276,   277,   277,   278,   278,   278,   278,
     3710     278,   279,   279,   280,   280,   281,   281,   281,   281,   281,
     3711     282,   282,   282,   282,   283,   283,   283,   284,   285,   285,
     3712     287,   286,   286,   288,   288,   288,   289,   289,   290,   290,
     3713     290,   291,   291,   291,   291,   292,   292,   292,   293,   293,
     3714     294,   294,   295,   296,   295,   297,   297,   298,   298,   299,
     3715     299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
     3716     304,   304,   304,   305,   304,   304,   306,   306,   306,   307,
     3717     307,   307,   307,   307,   307,   307,   307,   307,   308,   308,
     3718     308,   309,   310,   310,   311,   311,   312,   312,   313,   314,
     3719     314,   315,   315,   315,   316,   316,   316,   316,   317,   317,
     3720     317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
     3721     320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
     3722     324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
     3723     327,   328,   328,   328,   329,   329,   329,   330,   330,   330,
     3724     330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
     3725     334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
     3726     337,   337,   337,   337,   338,   338,   338,   339,   339,   339,
     3727     339,   340,   340,   341,   341,   341,   342,   342,   343,   343,
     3728     344,   344,   344,   345,   345,   345,   345,   345,   346,   346,
     3729     346,   346,   347,   347,   347,   348,   348,   348,   349,   349,
     3730     349,   349,   350,   350,   350,   351,   351,   351,   351,   351,
     3731     352,   352,   352,   352,   353,   353,   353,   354,   354,   354,
     3732     355,   355,   355,   355,   355,   355,   356,   356,   356,   357,
     3733     357,   357,   357,   357,   358,   358,   358,   358,   359,   359,
     3734     360,   360,   360,   361,   361,   362,   362,   362,   362,   362,
     3735     362,   363,   363,   363,   363,   363,   363,   363,   363,   363,
     3736     363,   364,   364,   364,   364,   365,   365,   365,   366,   366,
     3737     367,   367,   367,   367,   367,   367,   368,   368,   368,   368,
     3738     368,   368,   369,   370,   370,   370,   371,   371,   372,   372
     3739};
     3740
     3741  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
     3742static const yytype_uint8 yyr2[] =
     3743{
     3744       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     3745       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     3746       3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
     3747       2,     7,     4,     1,     3,     0,     1,     1,     3,     1,
     3748       3,     7,     3,     7,     1,     1,     1,     2,     2,     2,
     3749       2,     2,     2,     4,     2,     4,     6,     1,     4,     4,
     3750       1,     1,     1,     1,     1,     1,     1,     4,     4,     1,
     3751       3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
     3752       3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
     3753       3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
     3754       5,     1,     1,     3,     2,     0,     1,     1,     1,     1,
     3755       1,     1,     1,     1,     1,     1,     1,     1,     2,     5,
     3756       6,     7,     1,     3,     1,     3,     0,     1,     1,     1,
     3757       1,     1,     1,     1,     1,     1,     6,     4,     2,     7,
     3758       1,     3,     1,     2,     1,     2,     1,     2,     2,     5,
     3759       7,     5,     9,     5,     9,     1,     3,     1,     1,     3,
     3760       3,     2,     1,     2,     2,     0,     1,     2,     3,     0,
     3761       1,     2,     3,     3,     4,     0,     1,     1,     2,     5,
     3762       7,     6,     6,     4,     3,     4,     2,     3,     2,     3,
     3763       3,     3,     3,     5,     3,     3,     4,     1,     5,     6,
     3764       5,     6,     9,    10,     9,    10,     2,     1,     2,     2,
     3765       2,     1,     6,     8,    10,    12,    14,     0,     1,     0,
     3766       1,     1,     3,     4,     7,     0,     1,     3,     1,     3,
     3767       1,     1,     1,     3,     1,     1,     1,     3,     0,     1,
     3768       3,     4,     1,     3,     1,     1,     3,     3,     3,     3,
     3769       3,     2,     3,     6,     3,     3,     4,     1,     2,     2,
     3770       3,     5,     8,     7,     7,     5,     9,     2,     2,     5,
     3771       3,     5,     4,     3,     4,     4,     7,     3,     3,     3,
     3772       3,     4,     6,     1,     1,     1,     1,     1,     1,     1,
     3773       1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
     3774       1,     1,     0,     5,     1,     2,     3,     1,     2,     1,
     3775       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3776       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3777       1,     2,     2,     3,     3,     1,     3,     1,     2,     2,
     3778       2,     4,     4,     4,     4,     1,     2,     2,     3,     1,
     3779       2,     2,     1,     2,     2,     3,     1,     2,     2,     1,
     3780       1,     4,     2,     0,     6,     7,     2,     2,     2,     0,
     3781       2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
     3782       4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
     3783       5,     2,     0,     7,     2,     4,     0,     2,     0,     1,
     3784       1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
     3785       5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
     3786       3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
     3787       3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
     3788       1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
     3789       2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
     3790       4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
     3791       1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
     3792       0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
     3793      13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
     3794       1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
     3795       1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
     3796       1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
     3797       3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
     3798       1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
     3799       3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
     3800       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
     3801       3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
     3802       3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
     3803       3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
     3804       2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
     3805       6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
     3806       2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
     3807       2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
     3808       1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
     3809       4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
     3810       6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
     3811       1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
     3812       2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
     3813       2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
     3814       1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
     3815       3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
     3816       2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
     3817       2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
     3818       4,     2,     5,     5,     6,     6,     0,     1,     0,     2
     3819};
     3820
     3821
     3822#define yyerrok         (yyerrstatus = 0)
     3823#define yyclearin       (yychar = YYEMPTY)
     3824#define YYEMPTY         (-2)
     3825#define YYEOF           0
     3826
     3827#define YYACCEPT        goto yyacceptlab
     3828#define YYABORT         goto yyabortlab
     3829#define YYERROR         goto yyerrorlab
     3830
    41773831
    41783832#define YYRECOVERING()  (!!yyerrstatus)
    41793833
    4180 #define YYBACKUP(Token, Value)                                  \
    4181 do                                                              \
    4182   if (yychar == YYEMPTY && yylen == 1)                          \
    4183     {                                                           \
    4184       yychar = (Token);                                         \
    4185       yylval = (Value);                                         \
    4186       YYPOPSTACK (1);                                           \
    4187       goto yybackup;                                            \
    4188     }                                                           \
    4189   else                                                          \
    4190     {                                                           \
     3834#define YYBACKUP(Token, Value)                                  \
     3835do                                                              \
     3836  if (yychar == YYEMPTY)                                        \
     3837    {                                                           \
     3838      yychar = (Token);                                         \
     3839      yylval = (Value);                                         \
     3840      YYPOPSTACK (yylen);                                       \
     3841      yystate = *yyssp;                                         \
     3842      goto yybackup;                                            \
     3843    }                                                           \
     3844  else                                                          \
     3845    {                                                           \
    41913846      yyerror (YY_("syntax error: cannot back up")); \
    4192       YYERROR;                                                  \
    4193     }                                                           \
    4194 while (YYID (0))
    4195 
    4196 
    4197 #define YYTERROR        1
    4198 #define YYERRCODE       256
    4199 
    4200 
    4201 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    4202    If N is 0, then set CURRENT to the empty location which ends
    4203    the previous symbol: RHS[0] (always defined).  */
    4204 
    4205 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    4206 #ifndef YYLLOC_DEFAULT
    4207 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    4208     do                                                                  \
    4209       if (YYID (N))                                                    \
    4210         {                                                               \
    4211           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    4212           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    4213           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    4214           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    4215         }                                                               \
    4216       else                                                              \
    4217         {                                                               \
    4218           (Current).first_line   = (Current).last_line   =              \
    4219             YYRHSLOC (Rhs, 0).last_line;                                \
    4220           (Current).first_column = (Current).last_column =              \
    4221             YYRHSLOC (Rhs, 0).last_column;                              \
    4222         }                                                               \
    4223     while (YYID (0))
    4224 #endif
    4225 
    4226 
    4227 /* This macro is provided for backward compatibility. */
    4228 
    4229 #ifndef YY_LOCATION_PRINT
    4230 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    4231 #endif
    4232 
    4233 
    4234 /* YYLEX -- calling `yylex' with the right arguments.  */
    4235 
    4236 #ifdef YYLEX_PARAM
    4237 # define YYLEX yylex (YYLEX_PARAM)
    4238 #else
    4239 # define YYLEX yylex ()
    4240 #endif
     3847      YYERROR;                                                  \
     3848    }                                                           \
     3849while (0)
     3850
     3851/* Error token number */
     3852#define YYTERROR        1
     3853#define YYERRCODE       256
     3854
     3855
    42413856
    42423857/* Enable debugging if requested.  */
     
    42483863# endif
    42493864
    4250 # define YYDPRINTF(Args)                        \
    4251 do {                                            \
    4252   if (yydebug)                                  \
    4253     YYFPRINTF Args;                             \
    4254 } while (YYID (0))
    4255 
    4256 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    4257 do {                                                                      \
    4258   if (yydebug)                                                            \
    4259     {                                                                     \
    4260       YYFPRINTF (stderr, "%s ", Title);                                   \
    4261       yy_symbol_print (stderr,                                            \
    4262                   Type, Value); \
    4263       YYFPRINTF (stderr, "\n");                                           \
    4264     }                                                                     \
    4265 } while (YYID (0))
    4266 
    4267 
    4268 /*--------------------------------.
    4269 | Print this symbol on YYOUTPUT.  |
    4270 `--------------------------------*/
    4271 
    4272 /*ARGSUSED*/
    4273 #if (defined __STDC__ || defined __C99__FUNC__ \
    4274      || defined __cplusplus || defined _MSC_VER)
     3865# define YYDPRINTF(Args)                        \
     3866do {                                            \
     3867  if (yydebug)                                  \
     3868    YYFPRINTF Args;                             \
     3869} while (0)
     3870
     3871/* This macro is provided for backward compatibility. */
     3872#ifndef YY_LOCATION_PRINT
     3873# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     3874#endif
     3875
     3876
     3877# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     3878do {                                                                      \
     3879  if (yydebug)                                                            \
     3880    {                                                                     \
     3881      YYFPRINTF (stderr, "%s ", Title);                                   \
     3882      yy_symbol_print (stderr,                                            \
     3883                  Type, Value); \
     3884      YYFPRINTF (stderr, "\n");                                           \
     3885    }                                                                     \
     3886} while (0)
     3887
     3888
     3889/*----------------------------------------.
     3890| Print this symbol's value on YYOUTPUT.  |
     3891`----------------------------------------*/
     3892
    42753893static void
    42763894yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4277 #else
    4278 static void
    4279 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    4280     FILE *yyoutput;
    4281     int yytype;
    4282     YYSTYPE const * const yyvaluep;
    4283 #endif
    42843895{
     3896  FILE *yyo = yyoutput;
     3897  YYUSE (yyo);
    42853898  if (!yyvaluep)
    42863899    return;
     
    42883901  if (yytype < YYNTOKENS)
    42893902    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    4290 # else
    4291   YYUSE (yyoutput);
    42923903# endif
    4293   switch (yytype)
    4294     {
    4295       default:
    4296         break;
    4297     }
     3904  YYUSE (yytype);
    42983905}
    42993906
     
    43033910`--------------------------------*/
    43043911
    4305 #if (defined __STDC__ || defined __C99__FUNC__ \
    4306      || defined __cplusplus || defined _MSC_VER)
    43073912static void
    43083913yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4309 #else
    4310 static void
    4311 yy_symbol_print (yyoutput, yytype, yyvaluep)
    4312     FILE *yyoutput;
    4313     int yytype;
    4314     YYSTYPE const * const yyvaluep;
    4315 #endif
    43163914{
    4317   if (yytype < YYNTOKENS)
    4318     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    4319   else
    4320     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
     3915  YYFPRINTF (yyoutput, "%s %s (",
     3916             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
    43213917
    43223918  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    43293925`------------------------------------------------------------------*/
    43303926
    4331 #if (defined __STDC__ || defined __C99__FUNC__ \
    4332      || defined __cplusplus || defined _MSC_VER)
    43333927static void
    43343928yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    4335 #else
    4336 static void
    4337 yy_stack_print (yybottom, yytop)
    4338     yytype_int16 *yybottom;
    4339     yytype_int16 *yytop;
    4340 #endif
    43413929{
    43423930  YYFPRINTF (stderr, "Stack now");
     
    43493937}
    43503938
    4351 # define YY_STACK_PRINT(Bottom, Top)                            \
    4352 do {                                                            \
    4353   if (yydebug)                                                  \
    4354     yy_stack_print ((Bottom), (Top));                           \
    4355 } while (YYID (0))
     3939# define YY_STACK_PRINT(Bottom, Top)                            \
     3940do {                                                            \
     3941  if (yydebug)                                                  \
     3942    yy_stack_print ((Bottom), (Top));                           \
     3943} while (0)
    43563944
    43573945
     
    43603948`------------------------------------------------*/
    43613949
    4362 #if (defined __STDC__ || defined __C99__FUNC__ \
    4363      || defined __cplusplus || defined _MSC_VER)
    43643950static void
    4365 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    4366 #else
    4367 static void
    4368 yy_reduce_print (yyvsp, yyrule)
    4369     YYSTYPE *yyvsp;
    4370     int yyrule;
    4371 #endif
     3951yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
    43723952{
     3953  unsigned long int yylno = yyrline[yyrule];
    43733954  int yynrhs = yyr2[yyrule];
    43743955  int yyi;
    4375   unsigned long int yylno = yyrline[yyrule];
    43763956  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    4377              yyrule - 1, yylno);
     3957             yyrule - 1, yylno);
    43783958  /* The symbols being reduced.  */
    43793959  for (yyi = 0; yyi < yynrhs; yyi++)
    43803960    {
    43813961      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    4382       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    4383                        &(yyvsp[(yyi + 1) - (yynrhs)])
    4384                                        );
     3962      yy_symbol_print (stderr,
     3963                       yystos[yyssp[yyi + 1 - yynrhs]],
     3964                       &(yyvsp[(yyi + 1) - (yynrhs)])
     3965                                              );
    43853966      YYFPRINTF (stderr, "\n");
    43863967    }
    43873968}
    43883969
    4389 # define YY_REDUCE_PRINT(Rule)          \
    4390 do {                                    \
    4391   if (yydebug)                          \
    4392     yy_reduce_print (yyvsp, Rule); \
    4393 } while (YYID (0))
     3970# define YY_REDUCE_PRINT(Rule)          \
     3971do {                                    \
     3972  if (yydebug)                          \
     3973    yy_reduce_print (yyssp, yyvsp, Rule); \
     3974} while (0)
    43943975
    43953976/* Nonzero means print parse trace.  It is left uninitialized so that
     
    44053986
    44063987/* YYINITDEPTH -- initial size of the parser's stacks.  */
    4407 #ifndef YYINITDEPTH
     3988#ifndef YYINITDEPTH
    44083989# define YYINITDEPTH 200
    44093990#endif
     
    44284009#  else
    44294010/* Return the length of YYSTR.  */
    4430 #if (defined __STDC__ || defined __C99__FUNC__ \
    4431      || defined __cplusplus || defined _MSC_VER)
    44324011static YYSIZE_T
    44334012yystrlen (const char *yystr)
    4434 #else
    4435 static YYSIZE_T
    4436 yystrlen (yystr)
    4437     const char *yystr;
    4438 #endif
    44394013{
    44404014  YYSIZE_T yylen;
     
    44524026/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    44534027   YYDEST.  */
    4454 #if (defined __STDC__ || defined __C99__FUNC__ \
    4455      || defined __cplusplus || defined _MSC_VER)
    44564028static char *
    44574029yystpcpy (char *yydest, const char *yysrc)
    4458 #else
    4459 static char *
    4460 yystpcpy (yydest, yysrc)
    4461     char *yydest;
    4462     const char *yysrc;
    4463 #endif
    44644030{
    44654031  char *yyd = yydest;
     
    44914057
    44924058      for (;;)
    4493         switch (*++yyp)
    4494           {
    4495           case '\'':
    4496           case ',':
    4497             goto do_not_strip_quotes;
    4498 
    4499           case '\\':
    4500             if (*++yyp != '\\')
    4501               goto do_not_strip_quotes;
    4502             /* Fall through.  */
    4503           default:
    4504             if (yyres)
    4505               yyres[yyn] = *yyp;
    4506             yyn++;
    4507             break;
    4508 
    4509           case '"':
    4510             if (yyres)
    4511               yyres[yyn] = '\0';
    4512             return yyn;
    4513           }
     4059        switch (*++yyp)
     4060          {
     4061          case '\'':
     4062          case ',':
     4063            goto do_not_strip_quotes;
     4064
     4065          case '\\':
     4066            if (*++yyp != '\\')
     4067              goto do_not_strip_quotes;
     4068            /* Fall through.  */
     4069          default:
     4070            if (yyres)
     4071              yyres[yyn] = *yyp;
     4072            yyn++;
     4073            break;
     4074
     4075          case '"':
     4076            if (yyres)
     4077              yyres[yyn] = '\0';
     4078            return yyn;
     4079          }
    45144080    do_not_strip_quotes: ;
    45154081    }
     
    45344100                yytype_int16 *yyssp, int yytoken)
    45354101{
    4536   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
     4102  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    45374103  YYSIZE_T yysize = yysize0;
    4538   YYSIZE_T yysize1;
    45394104  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    45404105  /* Internationalized format string. */
    4541   const char *yyformat = 0;
     4106  const char *yyformat = YY_NULLPTR;
    45424107  /* Arguments of yyformat. */
    45434108  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    45474112
    45484113  /* There are many possibilities here to consider:
    4549      - Assume YYFAIL is not used.  It's too flawed to consider.  See
    4550        <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
    4551        for details.  YYERROR is fine as it does not invoke this
    4552        function.
    45534114     - If this state is a consistent state with a default action, then
    45544115       the only way this function was invoked is if the default action
     
    45994160                  }
    46004161                yyarg[yycount++] = yytname[yyx];
    4601                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    4602                 if (! (yysize <= yysize1
    4603                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4604                   return 2;
    4605                 yysize = yysize1;
     4162                {
     4163                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
     4164                  if (! (yysize <= yysize1
     4165                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4166                    return 2;
     4167                  yysize = yysize1;
     4168                }
    46064169              }
    46074170        }
     
    46234186    }
    46244187
    4625   yysize1 = yysize + yystrlen (yyformat);
    4626   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4627     return 2;
    4628   yysize = yysize1;
     4188  {
     4189    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
     4190    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4191      return 2;
     4192    yysize = yysize1;
     4193  }
    46294194
    46304195  if (*yymsg_alloc < yysize)
     
    46634228`-----------------------------------------------*/
    46644229
    4665 /*ARGSUSED*/
    4666 #if (defined __STDC__ || defined __C99__FUNC__ \
    4667      || defined __cplusplus || defined _MSC_VER)
    46684230static void
    46694231yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    4670 #else
    4671 static void
    4672 yydestruct (yymsg, yytype, yyvaluep)
    4673     const char *yymsg;
    4674     int yytype;
    4675     YYSTYPE *yyvaluep;
    4676 #endif
    46774232{
    46784233  YYUSE (yyvaluep);
    4679 
    46804234  if (!yymsg)
    46814235    yymsg = "Deleting";
    46824236  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    46834237
    4684   switch (yytype)
    4685     {
    4686 
    4687       default:
    4688         break;
    4689     }
     4238  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     4239  YYUSE (yytype);
     4240  YY_IGNORE_MAYBE_UNINITIALIZED_END
    46904241}
    46914242
    46924243
    4693 /* Prevent warnings from -Wmissing-prototypes.  */
    4694 #ifdef YYPARSE_PARAM
    4695 #if defined __STDC__ || defined __cplusplus
    4696 int yyparse (void *YYPARSE_PARAM);
    4697 #else
    4698 int yyparse ();
    4699 #endif
    4700 #else /* ! YYPARSE_PARAM */
    4701 #if defined __STDC__ || defined __cplusplus
    4702 int yyparse (void);
    4703 #else
    4704 int yyparse ();
    4705 #endif
    4706 #endif /* ! YYPARSE_PARAM */
    47074244
    47084245
     
    47124249/* The semantic value of the lookahead symbol.  */
    47134250YYSTYPE yylval;
    4714 
    47154251/* Number of syntax errors so far.  */
    47164252int yynerrs;
     
    47214257`----------*/
    47224258
    4723 #ifdef YYPARSE_PARAM
    4724 #if (defined __STDC__ || defined __C99__FUNC__ \
    4725      || defined __cplusplus || defined _MSC_VER)
    4726 int
    4727 yyparse (void *YYPARSE_PARAM)
    4728 #else
    4729 int
    4730 yyparse (YYPARSE_PARAM)
    4731     void *YYPARSE_PARAM;
    4732 #endif
    4733 #else /* ! YYPARSE_PARAM */
    4734 #if (defined __STDC__ || defined __C99__FUNC__ \
    4735      || defined __cplusplus || defined _MSC_VER)
    47364259int
    47374260yyparse (void)
    4738 #else
    4739 int
    4740 yyparse ()
    4741 
    4742 #endif
    4743 #endif
    47444261{
    47454262    int yystate;
     
    47484265
    47494266    /* The stacks and their tools:
    4750        `yyss': related to states.
    4751        `yyvs': related to semantic values.
    4752 
    4753        Refer to the stacks thru separate pointers, to allow yyoverflow
     4267       'yyss': related to states.
     4268       'yyvs': related to semantic values.
     4269
     4270       Refer to the stacks through separate pointers, to allow yyoverflow
    47544271       to reallocate them elsewhere.  */
    47554272
     
    47694286  int yyresult;
    47704287  /* Lookahead token as an internal (translated) token number.  */
    4771   int yytoken;
     4288  int yytoken = 0;
    47724289  /* The variables used to return semantic value and location from the
    47734290     action routines.  */
     
    47874304  int yylen = 0;
    47884305
    4789   yytoken = 0;
    4790   yyss = yyssa;
    4791   yyvs = yyvsa;
     4306  yyssp = yyss = yyssa;
     4307  yyvsp = yyvs = yyvsa;
    47924308  yystacksize = YYINITDEPTH;
    47934309
     
    47984314  yynerrs = 0;
    47994315  yychar = YYEMPTY; /* Cause a token to be read.  */
    4800 
    4801   /* Initialize stack pointers.
    4802      Waste one element of value and location stack
    4803      so that they stay on the same level as the state stack.
    4804      The wasted elements are never initialized.  */
    4805   yyssp = yyss;
    4806   yyvsp = yyvs;
    4807 
    48084316  goto yysetstate;
    48094317
     
    48264334#ifdef yyoverflow
    48274335      {
    4828         /* Give user a chance to reallocate the stack.  Use copies of
    4829            these so that the &'s don't force the real ones into
    4830            memory.  */
    4831         YYSTYPE *yyvs1 = yyvs;
    4832         yytype_int16 *yyss1 = yyss;
    4833 
    4834         /* Each stack pointer address is followed by the size of the
    4835            data in use in that stack, in bytes.  This used to be a
    4836            conditional around just the two extra args, but that might
    4837            be undefined if yyoverflow is a macro.  */
    4838         yyoverflow (YY_("memory exhausted"),
    4839                     &yyss1, yysize * sizeof (*yyssp),
    4840                     &yyvs1, yysize * sizeof (*yyvsp),
    4841                     &yystacksize);
    4842 
    4843         yyss = yyss1;
    4844         yyvs = yyvs1;
     4336        /* Give user a chance to reallocate the stack.  Use copies of
     4337           these so that the &'s don't force the real ones into
     4338           memory.  */
     4339        YYSTYPE *yyvs1 = yyvs;
     4340        yytype_int16 *yyss1 = yyss;
     4341
     4342        /* Each stack pointer address is followed by the size of the
     4343           data in use in that stack, in bytes.  This used to be a
     4344           conditional around just the two extra args, but that might
     4345           be undefined if yyoverflow is a macro.  */
     4346        yyoverflow (YY_("memory exhausted"),
     4347                    &yyss1, yysize * sizeof (*yyssp),
     4348                    &yyvs1, yysize * sizeof (*yyvsp),
     4349                    &yystacksize);
     4350
     4351        yyss = yyss1;
     4352        yyvs = yyvs1;
    48454353      }
    48464354#else /* no yyoverflow */
     
    48504358      /* Extend the stack our own way.  */
    48514359      if (YYMAXDEPTH <= yystacksize)
    4852         goto yyexhaustedlab;
     4360        goto yyexhaustedlab;
    48534361      yystacksize *= 2;
    48544362      if (YYMAXDEPTH < yystacksize)
    4855         yystacksize = YYMAXDEPTH;
     4363        yystacksize = YYMAXDEPTH;
    48564364
    48574365      {
    4858         yytype_int16 *yyss1 = yyss;
    4859         union yyalloc *yyptr =
    4860           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4861         if (! yyptr)
    4862           goto yyexhaustedlab;
    4863         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4864         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
     4366        yytype_int16 *yyss1 = yyss;
     4367        union yyalloc *yyptr =
     4368          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
     4369        if (! yyptr)
     4370          goto yyexhaustedlab;
     4371        YYSTACK_RELOCATE (yyss_alloc, yyss);
     4372        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    48654373#  undef YYSTACK_RELOCATE
    4866         if (yyss1 != yyssa)
    4867           YYSTACK_FREE (yyss1);
     4374        if (yyss1 != yyssa)
     4375          YYSTACK_FREE (yyss1);
    48684376      }
    48694377# endif
     
    48744382
    48754383      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4876                   (unsigned long int) yystacksize));
     4384                  (unsigned long int) yystacksize));
    48774385
    48784386      if (yyss + yystacksize - 1 <= yyssp)
    4879         YYABORT;
     4387        YYABORT;
    48804388    }
    48814389
     
    49064414    {
    49074415      YYDPRINTF ((stderr, "Reading a token: "));
    4908       yychar = YYLEX;
     4416      yychar = yylex ();
    49094417    }
    49104418
     
    49464454
    49474455  yystate = yyn;
     4456  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    49484457  *++yyvsp = yylval;
     4458  YY_IGNORE_MAYBE_UNINITIALIZED_END
    49494459
    49504460  goto yynewstate;
     
    49694479
    49704480  /* If YYLEN is nonzero, implement the default value of the action:
    4971      `$$ = $1'.
     4481     '$$ = $1'.
    49724482
    49734483     Otherwise, the following line sets YYVAL to garbage.
     
    49834493    {
    49844494        case 2:
    4985 
    4986 /* Line 1806 of yacc.c  */
    4987 #line 298 "parser.yy"
     4495#line 298 "parser.yy" /* yacc.c:1646  */
    49884496    {
    49894497                        typedefTable.enterScope();
    49904498                }
     4499#line 4500 "Parser/parser.cc" /* yacc.c:1646  */
    49914500    break;
    49924501
    49934502  case 3:
    4994 
    4995 /* Line 1806 of yacc.c  */
    4996 #line 304 "parser.yy"
     4503#line 304 "parser.yy" /* yacc.c:1646  */
    49974504    {
    49984505                        typedefTable.leaveScope();
    49994506                }
     4507#line 4508 "Parser/parser.cc" /* yacc.c:1646  */
    50004508    break;
    50014509
    50024510  case 4:
    5003 
    5004 /* Line 1806 of yacc.c  */
    5005 #line 313 "parser.yy"
    5006     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4511#line 313 "parser.yy" /* yacc.c:1646  */
     4512    { (yyval.en) = new ExpressionNode( build_constantInteger( assign_strptr((yyvsp[0].tok)) ) ); }
     4513#line 4514 "Parser/parser.cc" /* yacc.c:1646  */
    50074514    break;
    50084515
    50094516  case 5:
    5010 
    5011 /* Line 1806 of yacc.c  */
    5012 #line 314 "parser.yy"
    5013     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4517#line 314 "parser.yy" /* yacc.c:1646  */
     4518    { (yyval.en) = new ExpressionNode( build_constantFloat( assign_strptr((yyvsp[0].tok)) ) ); }
     4519#line 4520 "Parser/parser.cc" /* yacc.c:1646  */
    50144520    break;
    50154521
    50164522  case 6:
    5017 
    5018 /* Line 1806 of yacc.c  */
    5019 #line 315 "parser.yy"
    5020     { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
     4523#line 315 "parser.yy" /* yacc.c:1646  */
     4524    { (yyval.en) = new ExpressionNode( build_constantChar( assign_strptr((yyvsp[0].tok)) ) ); }
     4525#line 4526 "Parser/parser.cc" /* yacc.c:1646  */
    50214526    break;
    50224527
    50234528  case 16:
    5024 
    5025 /* Line 1806 of yacc.c  */
    5026 #line 340 "parser.yy"
    5027     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); }
     4529#line 340 "parser.yy" /* yacc.c:1646  */
     4530    { (yyval.constant) = build_constantStr( assign_strptr((yyvsp[0].tok)) ); }
     4531#line 4532 "Parser/parser.cc" /* yacc.c:1646  */
    50284532    break;
    50294533
    50304534  case 17:
    5031 
    5032 /* Line 1806 of yacc.c  */
    5033 #line 342 "parser.yy"
    5034     {
    5035                         appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) );
    5036                         delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
    5037                         (yyval.constant) = (yyvsp[(1) - (2)].constant);
     4535#line 342 "parser.yy" /* yacc.c:1646  */
     4536    {
     4537                        appendStr( (yyvsp[-1].constant)->get_constant()->get_value(), (yyvsp[0].tok) );
     4538                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
     4539                        (yyval.constant) = (yyvsp[-1].constant);
    50384540                }
     4541#line 4542 "Parser/parser.cc" /* yacc.c:1646  */
    50394542    break;
    50404543
    50414544  case 18:
    5042 
    5043 /* Line 1806 of yacc.c  */
    5044 #line 353 "parser.yy"
    5045     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4545#line 353 "parser.yy" /* yacc.c:1646  */
     4546    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4547#line 4548 "Parser/parser.cc" /* yacc.c:1646  */
    50464548    break;
    50474549
    50484550  case 19:
    5049 
    5050 /* Line 1806 of yacc.c  */
    5051 #line 355 "parser.yy"
    5052     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4551#line 355 "parser.yy" /* yacc.c:1646  */
     4552    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4553#line 4554 "Parser/parser.cc" /* yacc.c:1646  */
    50534554    break;
    50544555
    50554556  case 20:
    5056 
    5057 /* Line 1806 of yacc.c  */
    5058 #line 357 "parser.yy"
    5059     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     4557#line 357 "parser.yy" /* yacc.c:1646  */
     4558    { (yyval.en) = (yyvsp[-1].en); }
     4559#line 4560 "Parser/parser.cc" /* yacc.c:1646  */
    50604560    break;
    50614561
    50624562  case 21:
    5063 
    5064 /* Line 1806 of yacc.c  */
    5065 #line 359 "parser.yy"
    5066     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
     4563#line 359 "parser.yy" /* yacc.c:1646  */
     4564    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
     4565#line 4566 "Parser/parser.cc" /* yacc.c:1646  */
    50674566    break;
    50684567
    50694568  case 23:
    5070 
    5071 /* Line 1806 of yacc.c  */
    5072 #line 369 "parser.yy"
    5073     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
     4569#line 369 "parser.yy" /* yacc.c:1646  */
     4570    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); }
     4571#line 4572 "Parser/parser.cc" /* yacc.c:1646  */
    50744572    break;
    50754573
    50764574  case 24:
    5077 
    5078 /* Line 1806 of yacc.c  */
    5079 #line 371 "parser.yy"
    5080     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     4575#line 371 "parser.yy" /* yacc.c:1646  */
     4576    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); }
     4577#line 4578 "Parser/parser.cc" /* yacc.c:1646  */
    50814578    break;
    50824579
    50834580  case 25:
    5084 
    5085 /* Line 1806 of yacc.c  */
    5086 #line 375 "parser.yy"
    5087     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     4581#line 375 "parser.yy" /* yacc.c:1646  */
     4582    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
     4583#line 4584 "Parser/parser.cc" /* yacc.c:1646  */
    50884584    break;
    50894585
    50904586  case 27:
    5091 
    5092 /* Line 1806 of yacc.c  */
    5093 #line 378 "parser.yy"
    5094     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     4587#line 378 "parser.yy" /* yacc.c:1646  */
     4588    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
     4589#line 4590 "Parser/parser.cc" /* yacc.c:1646  */
    50954590    break;
    50964591
    50974592  case 29:
    5098 
    5099 /* Line 1806 of yacc.c  */
    5100 #line 381 "parser.yy"
    5101     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     4593#line 381 "parser.yy" /* yacc.c:1646  */
     4594    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); }
     4595#line 4596 "Parser/parser.cc" /* yacc.c:1646  */
    51024596    break;
    51034597
    51044598  case 30:
    5105 
    5106 /* Line 1806 of yacc.c  */
    5107 #line 383 "parser.yy"
    5108     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     4599#line 383 "parser.yy" /* yacc.c:1646  */
     4600    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); }
     4601#line 4602 "Parser/parser.cc" /* yacc.c:1646  */
    51094602    break;
    51104603
    51114604  case 31:
    5112 
    5113 /* Line 1806 of yacc.c  */
    5114 #line 385 "parser.yy"
    5115     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
     4605#line 385 "parser.yy" /* yacc.c:1646  */
     4606    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); }
     4607#line 4608 "Parser/parser.cc" /* yacc.c:1646  */
    51164608    break;
    51174609
    51184610  case 32:
    5119 
    5120 /* Line 1806 of yacc.c  */
    5121 #line 387 "parser.yy"
     4611#line 387 "parser.yy" /* yacc.c:1646  */
    51224612    {
    51234613                        Token fn;
    51244614                        fn.str = new std::string( "?{}" ); // location undefined
    5125                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
     4615                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );
    51264616                }
     4617#line 4618 "Parser/parser.cc" /* yacc.c:1646  */
    51274618    break;
    51284619
    51294620  case 34:
    5130 
    5131 /* Line 1806 of yacc.c  */
    5132 #line 397 "parser.yy"
    5133     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     4621#line 397 "parser.yy" /* yacc.c:1646  */
     4622    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
     4623#line 4624 "Parser/parser.cc" /* yacc.c:1646  */
    51344624    break;
    51354625
    51364626  case 35:
    5137 
    5138 /* Line 1806 of yacc.c  */
    5139 #line 402 "parser.yy"
     4627#line 402 "parser.yy" /* yacc.c:1646  */
    51404628    { (yyval.en) = 0; }
     4629#line 4630 "Parser/parser.cc" /* yacc.c:1646  */
    51414630    break;
    51424631
    51434632  case 38:
    5144 
    5145 /* Line 1806 of yacc.c  */
    5146 #line 408 "parser.yy"
    5147     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     4633#line 408 "parser.yy" /* yacc.c:1646  */
     4634    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     4635#line 4636 "Parser/parser.cc" /* yacc.c:1646  */
    51484636    break;
    51494637
    51504638  case 39:
    5151 
    5152 /* Line 1806 of yacc.c  */
    5153 #line 413 "parser.yy"
    5154     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4639#line 413 "parser.yy" /* yacc.c:1646  */
     4640    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4641#line 4642 "Parser/parser.cc" /* yacc.c:1646  */
    51554642    break;
    51564643
    51574644  case 40:
    5158 
    5159 /* Line 1806 of yacc.c  */
    5160 #line 417 "parser.yy"
    5161     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     4645#line 417 "parser.yy" /* yacc.c:1646  */
     4646    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
     4647#line 4648 "Parser/parser.cc" /* yacc.c:1646  */
    51624648    break;
    51634649
    51644650  case 41:
    5165 
    5166 /* Line 1806 of yacc.c  */
    5167 #line 419 "parser.yy"
    5168     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     4651#line 419 "parser.yy" /* yacc.c:1646  */
     4652    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
     4653#line 4654 "Parser/parser.cc" /* yacc.c:1646  */
    51694654    break;
    51704655
    51714656  case 42:
    5172 
    5173 /* Line 1806 of yacc.c  */
    5174 #line 421 "parser.yy"
    5175     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     4657#line 421 "parser.yy" /* yacc.c:1646  */
     4658    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
     4659#line 4660 "Parser/parser.cc" /* yacc.c:1646  */
    51764660    break;
    51774661
    51784662  case 43:
    5179 
    5180 /* Line 1806 of yacc.c  */
    5181 #line 423 "parser.yy"
    5182     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     4663#line 423 "parser.yy" /* yacc.c:1646  */
     4664    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
     4665#line 4666 "Parser/parser.cc" /* yacc.c:1646  */
    51834666    break;
    51844667
    51854668  case 45:
    5186 
    5187 /* Line 1806 of yacc.c  */
    5188 #line 431 "parser.yy"
    5189     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     4669#line 431 "parser.yy" /* yacc.c:1646  */
     4670    { (yyval.en) = (yyvsp[0].en); }
     4671#line 4672 "Parser/parser.cc" /* yacc.c:1646  */
    51904672    break;
    51914673
    51924674  case 46:
    5193 
    5194 /* Line 1806 of yacc.c  */
    5195 #line 433 "parser.yy"
    5196     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     4675#line 433 "parser.yy" /* yacc.c:1646  */
     4676    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     4677#line 4678 "Parser/parser.cc" /* yacc.c:1646  */
    51974678    break;
    51984679
    51994680  case 47:
    5200 
    5201 /* Line 1806 of yacc.c  */
    5202 #line 435 "parser.yy"
    5203     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     4681#line 435 "parser.yy" /* yacc.c:1646  */
     4682    { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
     4683#line 4684 "Parser/parser.cc" /* yacc.c:1646  */
    52044684    break;
    52054685
    52064686  case 48:
    5207 
    5208 /* Line 1806 of yacc.c  */
    5209 #line 440 "parser.yy"
    5210     {
    5211                         switch ( (yyvsp[(1) - (2)].op) ) {
     4687#line 440 "parser.yy" /* yacc.c:1646  */
     4688    {
     4689                        switch ( (yyvsp[-1].op) ) {
    52124690                          case OperKinds::AddressOf:
    5213                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     4691                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
    52144692                                break;
    52154693                          case OperKinds::PointTo:
    5216                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     4694                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
    52174695                                break;
    52184696                          default:
     
    52204698                        }
    52214699                }
     4700#line 4701 "Parser/parser.cc" /* yacc.c:1646  */
    52224701    break;
    52234702
    52244703  case 49:
    5225 
    5226 /* Line 1806 of yacc.c  */
    5227 #line 453 "parser.yy"
    5228     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     4704#line 453 "parser.yy" /* yacc.c:1646  */
     4705    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
     4706#line 4707 "Parser/parser.cc" /* yacc.c:1646  */
    52294707    break;
    52304708
    52314709  case 50:
    5232 
    5233 /* Line 1806 of yacc.c  */
    5234 #line 455 "parser.yy"
    5235     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     4710#line 455 "parser.yy" /* yacc.c:1646  */
     4711    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
     4712#line 4713 "Parser/parser.cc" /* yacc.c:1646  */
    52364713    break;
    52374714
    52384715  case 51:
    5239 
    5240 /* Line 1806 of yacc.c  */
    5241 #line 457 "parser.yy"
    5242     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     4716#line 457 "parser.yy" /* yacc.c:1646  */
     4717    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
     4718#line 4719 "Parser/parser.cc" /* yacc.c:1646  */
    52434719    break;
    52444720
    52454721  case 52:
    5246 
    5247 /* Line 1806 of yacc.c  */
    5248 #line 459 "parser.yy"
    5249     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4722#line 459 "parser.yy" /* yacc.c:1646  */
     4723    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
     4724#line 4725 "Parser/parser.cc" /* yacc.c:1646  */
    52504725    break;
    52514726
    52524727  case 53:
    5253 
    5254 /* Line 1806 of yacc.c  */
    5255 #line 461 "parser.yy"
    5256     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4728#line 461 "parser.yy" /* yacc.c:1646  */
     4729    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
     4730#line 4731 "Parser/parser.cc" /* yacc.c:1646  */
    52574731    break;
    52584732
    52594733  case 54:
    5260 
    5261 /* Line 1806 of yacc.c  */
    5262 #line 463 "parser.yy"
    5263     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4734#line 463 "parser.yy" /* yacc.c:1646  */
     4735    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
     4736#line 4737 "Parser/parser.cc" /* yacc.c:1646  */
    52644737    break;
    52654738
    52664739  case 55:
    5267 
    5268 /* Line 1806 of yacc.c  */
    5269 #line 465 "parser.yy"
    5270     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4740#line 465 "parser.yy" /* yacc.c:1646  */
     4741    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
     4742#line 4743 "Parser/parser.cc" /* yacc.c:1646  */
    52714743    break;
    52724744
    52734745  case 56:
    5274 
    5275 /* Line 1806 of yacc.c  */
    5276 #line 467 "parser.yy"
    5277     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     4746#line 467 "parser.yy" /* yacc.c:1646  */
     4747    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
     4748#line 4749 "Parser/parser.cc" /* yacc.c:1646  */
    52784749    break;
    52794750
    52804751  case 57:
    5281 
    5282 /* Line 1806 of yacc.c  */
    5283 #line 469 "parser.yy"
    5284     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     4752#line 469 "parser.yy" /* yacc.c:1646  */
     4753    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
     4754#line 4755 "Parser/parser.cc" /* yacc.c:1646  */
    52854755    break;
    52864756
    52874757  case 58:
    5288 
    5289 /* Line 1806 of yacc.c  */
    5290 #line 471 "parser.yy"
    5291     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     4758#line 471 "parser.yy" /* yacc.c:1646  */
     4759    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
     4760#line 4761 "Parser/parser.cc" /* yacc.c:1646  */
    52924761    break;
    52934762
    52944763  case 59:
    5295 
    5296 /* Line 1806 of yacc.c  */
    5297 #line 473 "parser.yy"
    5298     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     4764#line 473 "parser.yy" /* yacc.c:1646  */
     4765    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
     4766#line 4767 "Parser/parser.cc" /* yacc.c:1646  */
    52994767    break;
    53004768
    53014769  case 60:
    5302 
    5303 /* Line 1806 of yacc.c  */
    5304 #line 479 "parser.yy"
     4770#line 479 "parser.yy" /* yacc.c:1646  */
    53054771    { (yyval.op) = OperKinds::PointTo; }
     4772#line 4773 "Parser/parser.cc" /* yacc.c:1646  */
    53064773    break;
    53074774
    53084775  case 61:
    5309 
    5310 /* Line 1806 of yacc.c  */
    5311 #line 480 "parser.yy"
     4776#line 480 "parser.yy" /* yacc.c:1646  */
    53124777    { (yyval.op) = OperKinds::AddressOf; }
     4778#line 4779 "Parser/parser.cc" /* yacc.c:1646  */
    53134779    break;
    53144780
    53154781  case 62:
    5316 
    5317 /* Line 1806 of yacc.c  */
    5318 #line 486 "parser.yy"
     4782#line 486 "parser.yy" /* yacc.c:1646  */
    53194783    { (yyval.op) = OperKinds::UnPlus; }
     4784#line 4785 "Parser/parser.cc" /* yacc.c:1646  */
    53204785    break;
    53214786
    53224787  case 63:
    5323 
    5324 /* Line 1806 of yacc.c  */
    5325 #line 487 "parser.yy"
     4788#line 487 "parser.yy" /* yacc.c:1646  */
    53264789    { (yyval.op) = OperKinds::UnMinus; }
     4790#line 4791 "Parser/parser.cc" /* yacc.c:1646  */
    53274791    break;
    53284792
    53294793  case 64:
    5330 
    5331 /* Line 1806 of yacc.c  */
    5332 #line 488 "parser.yy"
     4794#line 488 "parser.yy" /* yacc.c:1646  */
    53334795    { (yyval.op) = OperKinds::Neg; }
     4796#line 4797 "Parser/parser.cc" /* yacc.c:1646  */
    53344797    break;
    53354798
    53364799  case 65:
    5337 
    5338 /* Line 1806 of yacc.c  */
    5339 #line 489 "parser.yy"
     4800#line 489 "parser.yy" /* yacc.c:1646  */
    53404801    { (yyval.op) = OperKinds::BitNeg; }
     4802#line 4803 "Parser/parser.cc" /* yacc.c:1646  */
    53414803    break;
    53424804
    53434805  case 67:
    5344 
    5345 /* Line 1806 of yacc.c  */
    5346 #line 495 "parser.yy"
    5347     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     4806#line 495 "parser.yy" /* yacc.c:1646  */
     4807    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
     4808#line 4809 "Parser/parser.cc" /* yacc.c:1646  */
    53484809    break;
    53494810
    53504811  case 68:
    5351 
    5352 /* Line 1806 of yacc.c  */
    5353 #line 497 "parser.yy"
    5354     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     4812#line 497 "parser.yy" /* yacc.c:1646  */
     4813    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
     4814#line 4815 "Parser/parser.cc" /* yacc.c:1646  */
    53554815    break;
    53564816
    53574817  case 70:
    5358 
    5359 /* Line 1806 of yacc.c  */
    5360 #line 503 "parser.yy"
    5361     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4818#line 503 "parser.yy" /* yacc.c:1646  */
     4819    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4820#line 4821 "Parser/parser.cc" /* yacc.c:1646  */
    53624821    break;
    53634822
    53644823  case 71:
    5365 
    5366 /* Line 1806 of yacc.c  */
    5367 #line 505 "parser.yy"
    5368     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4824#line 505 "parser.yy" /* yacc.c:1646  */
     4825    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4826#line 4827 "Parser/parser.cc" /* yacc.c:1646  */
    53694827    break;
    53704828
    53714829  case 72:
    5372 
    5373 /* Line 1806 of yacc.c  */
    5374 #line 507 "parser.yy"
    5375     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4830#line 507 "parser.yy" /* yacc.c:1646  */
     4831    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4832#line 4833 "Parser/parser.cc" /* yacc.c:1646  */
    53764833    break;
    53774834
    53784835  case 74:
    5379 
    5380 /* Line 1806 of yacc.c  */
    5381 #line 513 "parser.yy"
    5382     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4836#line 513 "parser.yy" /* yacc.c:1646  */
     4837    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4838#line 4839 "Parser/parser.cc" /* yacc.c:1646  */
    53834839    break;
    53844840
    53854841  case 75:
    5386 
    5387 /* Line 1806 of yacc.c  */
    5388 #line 515 "parser.yy"
    5389     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4842#line 515 "parser.yy" /* yacc.c:1646  */
     4843    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4844#line 4845 "Parser/parser.cc" /* yacc.c:1646  */
    53904845    break;
    53914846
    53924847  case 77:
    5393 
    5394 /* Line 1806 of yacc.c  */
    5395 #line 521 "parser.yy"
    5396     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4848#line 521 "parser.yy" /* yacc.c:1646  */
     4849    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4850#line 4851 "Parser/parser.cc" /* yacc.c:1646  */
    53974851    break;
    53984852
    53994853  case 78:
    5400 
    5401 /* Line 1806 of yacc.c  */
    5402 #line 523 "parser.yy"
    5403     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4854#line 523 "parser.yy" /* yacc.c:1646  */
     4855    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4856#line 4857 "Parser/parser.cc" /* yacc.c:1646  */
    54044857    break;
    54054858
    54064859  case 80:
    5407 
    5408 /* Line 1806 of yacc.c  */
    5409 #line 529 "parser.yy"
    5410     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4860#line 529 "parser.yy" /* yacc.c:1646  */
     4861    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4862#line 4863 "Parser/parser.cc" /* yacc.c:1646  */
    54114863    break;
    54124864
    54134865  case 81:
    5414 
    5415 /* Line 1806 of yacc.c  */
    5416 #line 531 "parser.yy"
    5417     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4866#line 531 "parser.yy" /* yacc.c:1646  */
     4867    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4868#line 4869 "Parser/parser.cc" /* yacc.c:1646  */
    54184869    break;
    54194870
    54204871  case 82:
    5421 
    5422 /* Line 1806 of yacc.c  */
    5423 #line 533 "parser.yy"
    5424     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4872#line 533 "parser.yy" /* yacc.c:1646  */
     4873    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4874#line 4875 "Parser/parser.cc" /* yacc.c:1646  */
    54254875    break;
    54264876
    54274877  case 83:
    5428 
    5429 /* Line 1806 of yacc.c  */
    5430 #line 535 "parser.yy"
    5431     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4878#line 535 "parser.yy" /* yacc.c:1646  */
     4879    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4880#line 4881 "Parser/parser.cc" /* yacc.c:1646  */
    54324881    break;
    54334882
    54344883  case 85:
    5435 
    5436 /* Line 1806 of yacc.c  */
    5437 #line 541 "parser.yy"
    5438     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4884#line 541 "parser.yy" /* yacc.c:1646  */
     4885    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4886#line 4887 "Parser/parser.cc" /* yacc.c:1646  */
    54394887    break;
    54404888
    54414889  case 86:
    5442 
    5443 /* Line 1806 of yacc.c  */
    5444 #line 543 "parser.yy"
    5445     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4890#line 543 "parser.yy" /* yacc.c:1646  */
     4891    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4892#line 4893 "Parser/parser.cc" /* yacc.c:1646  */
    54464893    break;
    54474894
    54484895  case 88:
    5449 
    5450 /* Line 1806 of yacc.c  */
    5451 #line 549 "parser.yy"
    5452     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4896#line 549 "parser.yy" /* yacc.c:1646  */
     4897    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4898#line 4899 "Parser/parser.cc" /* yacc.c:1646  */
    54534899    break;
    54544900
    54554901  case 90:
    5456 
    5457 /* Line 1806 of yacc.c  */
    5458 #line 555 "parser.yy"
    5459     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4902#line 555 "parser.yy" /* yacc.c:1646  */
     4903    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4904#line 4905 "Parser/parser.cc" /* yacc.c:1646  */
    54604905    break;
    54614906
    54624907  case 92:
    5463 
    5464 /* Line 1806 of yacc.c  */
    5465 #line 561 "parser.yy"
    5466     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4908#line 561 "parser.yy" /* yacc.c:1646  */
     4909    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4910#line 4911 "Parser/parser.cc" /* yacc.c:1646  */
    54674911    break;
    54684912
    54694913  case 94:
    5470 
    5471 /* Line 1806 of yacc.c  */
    5472 #line 567 "parser.yy"
    5473     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     4914#line 567 "parser.yy" /* yacc.c:1646  */
     4915    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
     4916#line 4917 "Parser/parser.cc" /* yacc.c:1646  */
    54744917    break;
    54754918
    54764919  case 96:
    5477 
    5478 /* Line 1806 of yacc.c  */
    5479 #line 573 "parser.yy"
    5480     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     4920#line 573 "parser.yy" /* yacc.c:1646  */
     4921    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
     4922#line 4923 "Parser/parser.cc" /* yacc.c:1646  */
    54814923    break;
    54824924
    54834925  case 98:
    5484 
    5485 /* Line 1806 of yacc.c  */
    5486 #line 579 "parser.yy"
    5487     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     4926#line 579 "parser.yy" /* yacc.c:1646  */
     4927    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4928#line 4929 "Parser/parser.cc" /* yacc.c:1646  */
    54884929    break;
    54894930
    54904931  case 99:
    5491 
    5492 /* Line 1806 of yacc.c  */
    5493 #line 582 "parser.yy"
    5494     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     4932#line 582 "parser.yy" /* yacc.c:1646  */
     4933    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
     4934#line 4935 "Parser/parser.cc" /* yacc.c:1646  */
    54954935    break;
    54964936
    54974937  case 100:
    5498 
    5499 /* Line 1806 of yacc.c  */
    5500 #line 584 "parser.yy"
    5501     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     4938#line 584 "parser.yy" /* yacc.c:1646  */
     4939    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4940#line 4941 "Parser/parser.cc" /* yacc.c:1646  */
    55024941    break;
    55034942
    55044943  case 103:
    5505 
    5506 /* Line 1806 of yacc.c  */
    5507 #line 595 "parser.yy"
    5508     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4944#line 595 "parser.yy" /* yacc.c:1646  */
     4945    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4946#line 4947 "Parser/parser.cc" /* yacc.c:1646  */
    55094947    break;
    55104948
    55114949  case 104:
    5512 
    5513 /* Line 1806 of yacc.c  */
    5514 #line 597 "parser.yy"
    5515     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     4950#line 597 "parser.yy" /* yacc.c:1646  */
     4951    { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); }
     4952#line 4953 "Parser/parser.cc" /* yacc.c:1646  */
    55164953    break;
    55174954
    55184955  case 105:
    5519 
    5520 /* Line 1806 of yacc.c  */
    5521 #line 602 "parser.yy"
     4956#line 602 "parser.yy" /* yacc.c:1646  */
    55224957    { (yyval.en) = nullptr; }
     4958#line 4959 "Parser/parser.cc" /* yacc.c:1646  */
    55234959    break;
    55244960
    55254961  case 107:
    5526 
    5527 /* Line 1806 of yacc.c  */
    5528 #line 607 "parser.yy"
     4962#line 607 "parser.yy" /* yacc.c:1646  */
    55294963    { (yyval.op) = OperKinds::Assign; }
     4964#line 4965 "Parser/parser.cc" /* yacc.c:1646  */
    55304965    break;
    55314966
    55324967  case 108:
    5533 
    5534 /* Line 1806 of yacc.c  */
    5535 #line 608 "parser.yy"
     4968#line 608 "parser.yy" /* yacc.c:1646  */
    55364969    { (yyval.op) = OperKinds::MulAssn; }
     4970#line 4971 "Parser/parser.cc" /* yacc.c:1646  */
    55374971    break;
    55384972
    55394973  case 109:
    5540 
    5541 /* Line 1806 of yacc.c  */
    5542 #line 609 "parser.yy"
     4974#line 609 "parser.yy" /* yacc.c:1646  */
    55434975    { (yyval.op) = OperKinds::DivAssn; }
     4976#line 4977 "Parser/parser.cc" /* yacc.c:1646  */
    55444977    break;
    55454978
    55464979  case 110:
    5547 
    5548 /* Line 1806 of yacc.c  */
    5549 #line 610 "parser.yy"
     4980#line 610 "parser.yy" /* yacc.c:1646  */
    55504981    { (yyval.op) = OperKinds::ModAssn; }
     4982#line 4983 "Parser/parser.cc" /* yacc.c:1646  */
    55514983    break;
    55524984
    55534985  case 111:
    5554 
    5555 /* Line 1806 of yacc.c  */
    5556 #line 611 "parser.yy"
     4986#line 611 "parser.yy" /* yacc.c:1646  */
    55574987    { (yyval.op) = OperKinds::PlusAssn; }
     4988#line 4989 "Parser/parser.cc" /* yacc.c:1646  */
    55584989    break;
    55594990
    55604991  case 112:
    5561 
    5562 /* Line 1806 of yacc.c  */
    5563 #line 612 "parser.yy"
     4992#line 612 "parser.yy" /* yacc.c:1646  */
    55644993    { (yyval.op) = OperKinds::MinusAssn; }
     4994#line 4995 "Parser/parser.cc" /* yacc.c:1646  */
    55654995    break;
    55664996
    55674997  case 113:
    5568 
    5569 /* Line 1806 of yacc.c  */
    5570 #line 613 "parser.yy"
     4998#line 613 "parser.yy" /* yacc.c:1646  */
    55714999    { (yyval.op) = OperKinds::LSAssn; }
     5000#line 5001 "Parser/parser.cc" /* yacc.c:1646  */
    55725001    break;
    55735002
    55745003  case 114:
    5575 
    5576 /* Line 1806 of yacc.c  */
    5577 #line 614 "parser.yy"
     5004#line 614 "parser.yy" /* yacc.c:1646  */
    55785005    { (yyval.op) = OperKinds::RSAssn; }
     5006#line 5007 "Parser/parser.cc" /* yacc.c:1646  */
    55795007    break;
    55805008
    55815009  case 115:
    5582 
    5583 /* Line 1806 of yacc.c  */
    5584 #line 615 "parser.yy"
     5010#line 615 "parser.yy" /* yacc.c:1646  */
    55855011    { (yyval.op) = OperKinds::AndAssn; }
     5012#line 5013 "Parser/parser.cc" /* yacc.c:1646  */
    55865013    break;
    55875014
    55885015  case 116:
    5589 
    5590 /* Line 1806 of yacc.c  */
    5591 #line 616 "parser.yy"
     5016#line 616 "parser.yy" /* yacc.c:1646  */
    55925017    { (yyval.op) = OperKinds::ERAssn; }
     5018#line 5019 "Parser/parser.cc" /* yacc.c:1646  */
    55935019    break;
    55945020
    55955021  case 117:
    5596 
    5597 /* Line 1806 of yacc.c  */
    5598 #line 617 "parser.yy"
     5022#line 617 "parser.yy" /* yacc.c:1646  */
    55995023    { (yyval.op) = OperKinds::OrAssn; }
     5024#line 5025 "Parser/parser.cc" /* yacc.c:1646  */
    56005025    break;
    56015026
    56025027  case 118:
    5603 
    5604 /* Line 1806 of yacc.c  */
    5605 #line 624 "parser.yy"
     5028#line 624 "parser.yy" /* yacc.c:1646  */
    56065029    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5030#line 5031 "Parser/parser.cc" /* yacc.c:1646  */
    56075031    break;
    56085032
    56095033  case 119:
    5610 
    5611 /* Line 1806 of yacc.c  */
    5612 #line 626 "parser.yy"
    5613     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5034#line 626 "parser.yy" /* yacc.c:1646  */
     5035    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); }
     5036#line 5037 "Parser/parser.cc" /* yacc.c:1646  */
    56145037    break;
    56155038
    56165039  case 120:
    5617 
    5618 /* Line 1806 of yacc.c  */
    5619 #line 628 "parser.yy"
    5620     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5040#line 628 "parser.yy" /* yacc.c:1646  */
     5041    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
     5042#line 5043 "Parser/parser.cc" /* yacc.c:1646  */
    56215043    break;
    56225044
    56235045  case 121:
    5624 
    5625 /* Line 1806 of yacc.c  */
    5626 #line 630 "parser.yy"
    5627     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5046#line 630 "parser.yy" /* yacc.c:1646  */
     5047    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
     5048#line 5049 "Parser/parser.cc" /* yacc.c:1646  */
    56285049    break;
    56295050
    56305051  case 123:
    5631 
    5632 /* Line 1806 of yacc.c  */
    5633 #line 636 "parser.yy"
    5634     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5052#line 636 "parser.yy" /* yacc.c:1646  */
     5053    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5054#line 5055 "Parser/parser.cc" /* yacc.c:1646  */
    56355055    break;
    56365056
    56375057  case 125:
    5638 
    5639 /* Line 1806 of yacc.c  */
    5640 #line 642 "parser.yy"
    5641     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5058#line 642 "parser.yy" /* yacc.c:1646  */
     5059    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5060#line 5061 "Parser/parser.cc" /* yacc.c:1646  */
    56425061    break;
    56435062
    56445063  case 126:
    5645 
    5646 /* Line 1806 of yacc.c  */
    5647 #line 647 "parser.yy"
     5064#line 647 "parser.yy" /* yacc.c:1646  */
    56485065    { (yyval.en) = 0; }
     5066#line 5067 "Parser/parser.cc" /* yacc.c:1646  */
    56495067    break;
    56505068
    56515069  case 130:
    5652 
    5653 /* Line 1806 of yacc.c  */
    5654 #line 656 "parser.yy"
    5655     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5070#line 656 "parser.yy" /* yacc.c:1646  */
     5071    { (yyval.sn) = (yyvsp[0].sn); }
     5072#line 5073 "Parser/parser.cc" /* yacc.c:1646  */
    56565073    break;
    56575074
    56585075  case 136:
    5659 
    5660 /* Line 1806 of yacc.c  */
    5661 #line 663 "parser.yy"
     5076#line 663 "parser.yy" /* yacc.c:1646  */
    56625077    {
    56635078                        Token fn;
    56645079                        fn.str = new std::string( "^?{}" ); // location undefined
    5665                         (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );
     5080                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
    56665081                }
     5082#line 5083 "Parser/parser.cc" /* yacc.c:1646  */
    56675083    break;
    56685084
    56695085  case 137:
    5670 
    5671 /* Line 1806 of yacc.c  */
    5672 #line 673 "parser.yy"
    5673     {
    5674                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5086#line 673 "parser.yy" /* yacc.c:1646  */
     5087    {
     5088                        (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
    56755089                }
     5090#line 5091 "Parser/parser.cc" /* yacc.c:1646  */
    56765091    break;
    56775092
    56785093  case 138:
    5679 
    5680 /* Line 1806 of yacc.c  */
    5681 #line 680 "parser.yy"
     5094#line 680 "parser.yy" /* yacc.c:1646  */
    56825095    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5096#line 5097 "Parser/parser.cc" /* yacc.c:1646  */
    56835097    break;
    56845098
    56855099  case 139:
    5686 
    5687 /* Line 1806 of yacc.c  */
    5688 #line 687 "parser.yy"
    5689     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5100#line 687 "parser.yy" /* yacc.c:1646  */
     5101    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
     5102#line 5103 "Parser/parser.cc" /* yacc.c:1646  */
    56905103    break;
    56915104
    56925105  case 141:
    5693 
    5694 /* Line 1806 of yacc.c  */
    5695 #line 693 "parser.yy"
    5696     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5106#line 693 "parser.yy" /* yacc.c:1646  */
     5107    { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
     5108#line 5109 "Parser/parser.cc" /* yacc.c:1646  */
    56975109    break;
    56985110
    56995111  case 142:
    5700 
    5701 /* Line 1806 of yacc.c  */
    5702 #line 698 "parser.yy"
    5703     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5112#line 698 "parser.yy" /* yacc.c:1646  */
     5113    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5114#line 5115 "Parser/parser.cc" /* yacc.c:1646  */
    57045115    break;
    57055116
    57065117  case 143:
    5707 
    5708 /* Line 1806 of yacc.c  */
    5709 #line 700 "parser.yy"
     5118#line 700 "parser.yy" /* yacc.c:1646  */
    57105119    {   // mark all fields in list
    5711                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5120                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    57125121                                iter->set_extension( true );
    5713                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
     5122                        (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
    57145123                }
     5124#line 5125 "Parser/parser.cc" /* yacc.c:1646  */
    57155125    break;
    57165126
    57175127  case 144:
    5718 
    5719 /* Line 1806 of yacc.c  */
    5720 #line 706 "parser.yy"
    5721     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5128#line 706 "parser.yy" /* yacc.c:1646  */
     5129    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5130#line 5131 "Parser/parser.cc" /* yacc.c:1646  */
    57225131    break;
    57235132
    57245133  case 147:
    5725 
    5726 /* Line 1806 of yacc.c  */
    5727 #line 713 "parser.yy"
    5728     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5134#line 713 "parser.yy" /* yacc.c:1646  */
     5135    { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
     5136#line 5137 "Parser/parser.cc" /* yacc.c:1646  */
    57295137    break;
    57305138
    57315139  case 148:
    5732 
    5733 /* Line 1806 of yacc.c  */
    5734 #line 718 "parser.yy"
    5735     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5140#line 718 "parser.yy" /* yacc.c:1646  */
     5141    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
     5142#line 5143 "Parser/parser.cc" /* yacc.c:1646  */
    57365143    break;
    57375144
    57385145  case 149:
    5739 
    5740 /* Line 1806 of yacc.c  */
    5741 #line 724 "parser.yy"
    5742     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5146#line 724 "parser.yy" /* yacc.c:1646  */
     5147    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
     5148#line 5149 "Parser/parser.cc" /* yacc.c:1646  */
    57435149    break;
    57445150
    57455151  case 150:
    5746 
    5747 /* Line 1806 of yacc.c  */
    5748 #line 726 "parser.yy"
    5749     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5152#line 726 "parser.yy" /* yacc.c:1646  */
     5153    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
     5154#line 5155 "Parser/parser.cc" /* yacc.c:1646  */
    57505155    break;
    57515156
    57525157  case 151:
    5753 
    5754 /* Line 1806 of yacc.c  */
    5755 #line 728 "parser.yy"
    5756     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5158#line 728 "parser.yy" /* yacc.c:1646  */
     5159    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5160#line 5161 "Parser/parser.cc" /* yacc.c:1646  */
    57575161    break;
    57585162
    57595163  case 152:
    5760 
    5761 /* Line 1806 of yacc.c  */
    5762 #line 730 "parser.yy"
    5763     {
    5764                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5164#line 730 "parser.yy" /* yacc.c:1646  */
     5165    {
     5166                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    57655167                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    57665168                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    57685170                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57695171                        // statement.
    5770                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5172                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57715173                }
     5174#line 5175 "Parser/parser.cc" /* yacc.c:1646  */
    57725175    break;
    57735176
    57745177  case 153:
    5775 
    5776 /* Line 1806 of yacc.c  */
    5777 #line 740 "parser.yy"
    5778     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5178#line 740 "parser.yy" /* yacc.c:1646  */
     5179    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5180#line 5181 "Parser/parser.cc" /* yacc.c:1646  */
    57795181    break;
    57805182
    57815183  case 154:
    5782 
    5783 /* Line 1806 of yacc.c  */
    5784 #line 742 "parser.yy"
    5785     {
    5786                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    5787                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5184#line 742 "parser.yy" /* yacc.c:1646  */
     5185    {
     5186                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5187                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57885188                }
     5189#line 5190 "Parser/parser.cc" /* yacc.c:1646  */
    57895190    break;
    57905191
    57915192  case 155:
    5792 
    5793 /* Line 1806 of yacc.c  */
    5794 #line 752 "parser.yy"
    5795     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5193#line 752 "parser.yy" /* yacc.c:1646  */
     5194    { (yyval.en) = (yyvsp[0].en); }
     5195#line 5196 "Parser/parser.cc" /* yacc.c:1646  */
    57965196    break;
    57975197
    57985198  case 156:
    5799 
    5800 /* Line 1806 of yacc.c  */
    5801 #line 754 "parser.yy"
    5802     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5199#line 754 "parser.yy" /* yacc.c:1646  */
     5200    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5201#line 5202 "Parser/parser.cc" /* yacc.c:1646  */
    58035202    break;
    58045203
    58055204  case 158:
    5806 
    5807 /* Line 1806 of yacc.c  */
    5808 #line 759 "parser.yy"
    5809     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5205#line 759 "parser.yy" /* yacc.c:1646  */
     5206    { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
     5207#line 5208 "Parser/parser.cc" /* yacc.c:1646  */
    58105208    break;
    58115209
    58125210  case 159:
    5813 
    5814 /* Line 1806 of yacc.c  */
    5815 #line 761 "parser.yy"
    5816     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5211#line 761 "parser.yy" /* yacc.c:1646  */
     5212    { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
     5213#line 5214 "Parser/parser.cc" /* yacc.c:1646  */
    58175214    break;
    58185215
    58195216  case 160:
    5820 
    5821 /* Line 1806 of yacc.c  */
    5822 #line 765 "parser.yy"
    5823     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5217#line 765 "parser.yy" /* yacc.c:1646  */
     5218    { (yyval.sn) = (yyvsp[-1].sn); }
     5219#line 5220 "Parser/parser.cc" /* yacc.c:1646  */
    58245220    break;
    58255221
    58265222  case 161:
    5827 
    5828 /* Line 1806 of yacc.c  */
    5829 #line 766 "parser.yy"
     5223#line 766 "parser.yy" /* yacc.c:1646  */
    58305224    { (yyval.sn) = new StatementNode( build_default() ); }
     5225#line 5226 "Parser/parser.cc" /* yacc.c:1646  */
    58315226    break;
    58325227
    58335228  case 163:
    5834 
    5835 /* Line 1806 of yacc.c  */
    5836 #line 772 "parser.yy"
    5837     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5229#line 772 "parser.yy" /* yacc.c:1646  */
     5230    { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
     5231#line 5232 "Parser/parser.cc" /* yacc.c:1646  */
    58385232    break;
    58395233
    58405234  case 164:
    5841 
    5842 /* Line 1806 of yacc.c  */
    5843 #line 776 "parser.yy"
    5844     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5235#line 776 "parser.yy" /* yacc.c:1646  */
     5236    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5237#line 5238 "Parser/parser.cc" /* yacc.c:1646  */
    58455238    break;
    58465239
    58475240  case 165:
    5848 
    5849 /* Line 1806 of yacc.c  */
    5850 #line 781 "parser.yy"
     5241#line 781 "parser.yy" /* yacc.c:1646  */
    58515242    { (yyval.sn) = 0; }
     5243#line 5244 "Parser/parser.cc" /* yacc.c:1646  */
    58525244    break;
    58535245
    58545246  case 167:
    5855 
    5856 /* Line 1806 of yacc.c  */
    5857 #line 787 "parser.yy"
    5858     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5247#line 787 "parser.yy" /* yacc.c:1646  */
     5248    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5249#line 5250 "Parser/parser.cc" /* yacc.c:1646  */
    58595250    break;
    58605251
    58615252  case 168:
    5862 
    5863 /* Line 1806 of yacc.c  */
    5864 #line 789 "parser.yy"
    5865     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5253#line 789 "parser.yy" /* yacc.c:1646  */
     5254    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
     5255#line 5256 "Parser/parser.cc" /* yacc.c:1646  */
    58665256    break;
    58675257
    58685258  case 169:
    5869 
    5870 /* Line 1806 of yacc.c  */
    5871 #line 794 "parser.yy"
     5259#line 794 "parser.yy" /* yacc.c:1646  */
    58725260    { (yyval.sn) = 0; }
     5261#line 5262 "Parser/parser.cc" /* yacc.c:1646  */
    58735262    break;
    58745263
    58755264  case 171:
    5876 
    5877 /* Line 1806 of yacc.c  */
    5878 #line 800 "parser.yy"
    5879     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5265#line 800 "parser.yy" /* yacc.c:1646  */
     5266    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
     5267#line 5268 "Parser/parser.cc" /* yacc.c:1646  */
    58805268    break;
    58815269
    58825270  case 172:
    5883 
    5884 /* Line 1806 of yacc.c  */
    5885 #line 802 "parser.yy"
    5886     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5271#line 802 "parser.yy" /* yacc.c:1646  */
     5272    { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
     5273#line 5274 "Parser/parser.cc" /* yacc.c:1646  */
    58875274    break;
    58885275
    58895276  case 173:
    5890 
    5891 /* Line 1806 of yacc.c  */
    5892 #line 804 "parser.yy"
    5893     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5277#line 804 "parser.yy" /* yacc.c:1646  */
     5278    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
     5279#line 5280 "Parser/parser.cc" /* yacc.c:1646  */
    58945280    break;
    58955281
    58965282  case 174:
    5897 
    5898 /* Line 1806 of yacc.c  */
    5899 #line 806 "parser.yy"
    5900     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5283#line 806 "parser.yy" /* yacc.c:1646  */
     5284    { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); }
     5285#line 5286 "Parser/parser.cc" /* yacc.c:1646  */
    59015286    break;
    59025287
    59035288  case 175:
    5904 
    5905 /* Line 1806 of yacc.c  */
    5906 #line 811 "parser.yy"
     5289#line 811 "parser.yy" /* yacc.c:1646  */
    59075290    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
     5291#line 5292 "Parser/parser.cc" /* yacc.c:1646  */
    59085292    break;
    59095293
    59105294  case 177:
    5911 
    5912 /* Line 1806 of yacc.c  */
    5913 #line 817 "parser.yy"
     5295#line 817 "parser.yy" /* yacc.c:1646  */
    59145296    { (yyval.sn) = 0; }
     5297#line 5298 "Parser/parser.cc" /* yacc.c:1646  */
    59155298    break;
    59165299
    59175300  case 178:
    5918 
    5919 /* Line 1806 of yacc.c  */
    5920 #line 819 "parser.yy"
     5301#line 819 "parser.yy" /* yacc.c:1646  */
    59215302    { (yyval.sn) = 0; }
     5303#line 5304 "Parser/parser.cc" /* yacc.c:1646  */
    59225304    break;
    59235305
    59245306  case 179:
    5925 
    5926 /* Line 1806 of yacc.c  */
    5927 #line 824 "parser.yy"
    5928     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5307#line 824 "parser.yy" /* yacc.c:1646  */
     5308    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5309#line 5310 "Parser/parser.cc" /* yacc.c:1646  */
    59295310    break;
    59305311
    59315312  case 180:
    5932 
    5933 /* Line 1806 of yacc.c  */
    5934 #line 826 "parser.yy"
    5935     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
     5313#line 826 "parser.yy" /* yacc.c:1646  */
     5314    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn) ) ); }
     5315#line 5316 "Parser/parser.cc" /* yacc.c:1646  */
    59365316    break;
    59375317
    59385318  case 181:
    5939 
    5940 /* Line 1806 of yacc.c  */
    5941 #line 828 "parser.yy"
    5942     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5319#line 828 "parser.yy" /* yacc.c:1646  */
     5320    { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
     5321#line 5322 "Parser/parser.cc" /* yacc.c:1646  */
    59435322    break;
    59445323
    59455324  case 182:
    5946 
    5947 /* Line 1806 of yacc.c  */
    5948 #line 833 "parser.yy"
    5949     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5325#line 833 "parser.yy" /* yacc.c:1646  */
     5326    { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5327#line 5328 "Parser/parser.cc" /* yacc.c:1646  */
    59505328    break;
    59515329
    59525330  case 183:
    5953 
    5954 /* Line 1806 of yacc.c  */
    5955 #line 835 "parser.yy"
    5956     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5331#line 835 "parser.yy" /* yacc.c:1646  */
     5332    { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5333#line 5334 "Parser/parser.cc" /* yacc.c:1646  */
    59575334    break;
    59585335
    59595336  case 184:
    5960 
    5961 /* Line 1806 of yacc.c  */
    5962 #line 840 "parser.yy"
    5963     { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5337#line 840 "parser.yy" /* yacc.c:1646  */
     5338    { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Goto ) ); }
     5339#line 5340 "Parser/parser.cc" /* yacc.c:1646  */
    59645340    break;
    59655341
    59665342  case 185:
    5967 
    5968 /* Line 1806 of yacc.c  */
    5969 #line 844 "parser.yy"
    5970     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5343#line 844 "parser.yy" /* yacc.c:1646  */
     5344    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
     5345#line 5346 "Parser/parser.cc" /* yacc.c:1646  */
    59715346    break;
    59725347
    59735348  case 186:
    5974 
    5975 /* Line 1806 of yacc.c  */
    5976 #line 847 "parser.yy"
     5349#line 847 "parser.yy" /* yacc.c:1646  */
    59775350    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); }
     5351#line 5352 "Parser/parser.cc" /* yacc.c:1646  */
    59785352    break;
    59795353
    59805354  case 187:
    5981 
    5982 /* Line 1806 of yacc.c  */
    5983 #line 851 "parser.yy"
    5984     { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); }
     5355#line 851 "parser.yy" /* yacc.c:1646  */
     5356    { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Continue ) ); }
     5357#line 5358 "Parser/parser.cc" /* yacc.c:1646  */
    59855358    break;
    59865359
    59875360  case 188:
    5988 
    5989 /* Line 1806 of yacc.c  */
    5990 #line 854 "parser.yy"
     5361#line 854 "parser.yy" /* yacc.c:1646  */
    59915362    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
     5363#line 5364 "Parser/parser.cc" /* yacc.c:1646  */
    59925364    break;
    59935365
    59945366  case 189:
    5995 
    5996 /* Line 1806 of yacc.c  */
    5997 #line 858 "parser.yy"
    5998     { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); }
     5367#line 858 "parser.yy" /* yacc.c:1646  */
     5368    { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Break ) ); }
     5369#line 5370 "Parser/parser.cc" /* yacc.c:1646  */
    59995370    break;
    60005371
    60015372  case 190:
    6002 
    6003 /* Line 1806 of yacc.c  */
    6004 #line 860 "parser.yy"
    6005     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5373#line 860 "parser.yy" /* yacc.c:1646  */
     5374    { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
     5375#line 5376 "Parser/parser.cc" /* yacc.c:1646  */
    60065376    break;
    60075377
    60085378  case 191:
    6009 
    6010 /* Line 1806 of yacc.c  */
    6011 #line 862 "parser.yy"
    6012     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5379#line 862 "parser.yy" /* yacc.c:1646  */
     5380    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5381#line 5382 "Parser/parser.cc" /* yacc.c:1646  */
    60135382    break;
    60145383
    60155384  case 192:
    6016 
    6017 /* Line 1806 of yacc.c  */
    6018 #line 864 "parser.yy"
    6019     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5385#line 864 "parser.yy" /* yacc.c:1646  */
     5386    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5387#line 5388 "Parser/parser.cc" /* yacc.c:1646  */
    60205388    break;
    60215389
    60225390  case 193:
    6023 
    6024 /* Line 1806 of yacc.c  */
    6025 #line 866 "parser.yy"
    6026     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     5391#line 866 "parser.yy" /* yacc.c:1646  */
     5392    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
     5393#line 5394 "Parser/parser.cc" /* yacc.c:1646  */
    60275394    break;
    60285395
    60295396  case 194:
    6030 
    6031 /* Line 1806 of yacc.c  */
    6032 #line 871 "parser.yy"
    6033     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     5397#line 871 "parser.yy" /* yacc.c:1646  */
     5398    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
     5399#line 5400 "Parser/parser.cc" /* yacc.c:1646  */
    60345400    break;
    60355401
    60365402  case 195:
    6037 
    6038 /* Line 1806 of yacc.c  */
    6039 #line 873 "parser.yy"
    6040     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     5403#line 873 "parser.yy" /* yacc.c:1646  */
     5404    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
     5405#line 5406 "Parser/parser.cc" /* yacc.c:1646  */
    60415406    break;
    60425407
    60435408  case 196:
    6044 
    6045 /* Line 1806 of yacc.c  */
    6046 #line 875 "parser.yy"
    6047     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     5409#line 875 "parser.yy" /* yacc.c:1646  */
     5410    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
     5411#line 5412 "Parser/parser.cc" /* yacc.c:1646  */
    60485412    break;
    60495413
    60505414  case 198:
    6051 
    6052 /* Line 1806 of yacc.c  */
    6053 #line 882 "parser.yy"
    6054     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5415#line 882 "parser.yy" /* yacc.c:1646  */
     5416    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5417#line 5418 "Parser/parser.cc" /* yacc.c:1646  */
    60555418    break;
    60565419
    60575420  case 199:
    6058 
    6059 /* Line 1806 of yacc.c  */
    6060 #line 884 "parser.yy"
    6061     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5421#line 884 "parser.yy" /* yacc.c:1646  */
     5422    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5423#line 5424 "Parser/parser.cc" /* yacc.c:1646  */
    60625424    break;
    60635425
    60645426  case 200:
    6065 
    6066 /* Line 1806 of yacc.c  */
    6067 #line 886 "parser.yy"
    6068     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5427#line 886 "parser.yy" /* yacc.c:1646  */
     5428    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5429#line 5430 "Parser/parser.cc" /* yacc.c:1646  */
    60695430    break;
    60705431
    60715432  case 201:
    6072 
    6073 /* Line 1806 of yacc.c  */
    6074 #line 888 "parser.yy"
    6075     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5433#line 888 "parser.yy" /* yacc.c:1646  */
     5434    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5435#line 5436 "Parser/parser.cc" /* yacc.c:1646  */
    60765436    break;
    60775437
    60785438  case 202:
    6079 
    6080 /* Line 1806 of yacc.c  */
    6081 #line 893 "parser.yy"
    6082     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5439#line 893 "parser.yy" /* yacc.c:1646  */
     5440    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5441#line 5442 "Parser/parser.cc" /* yacc.c:1646  */
    60835442    break;
    60845443
    60855444  case 203:
    6086 
    6087 /* Line 1806 of yacc.c  */
    6088 #line 895 "parser.yy"
    6089     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5445#line 895 "parser.yy" /* yacc.c:1646  */
     5446    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5447#line 5448 "Parser/parser.cc" /* yacc.c:1646  */
    60905448    break;
    60915449
    60925450  case 204:
    6093 
    6094 /* Line 1806 of yacc.c  */
    6095 #line 897 "parser.yy"
    6096     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5451#line 897 "parser.yy" /* yacc.c:1646  */
     5452    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5453#line 5454 "Parser/parser.cc" /* yacc.c:1646  */
    60975454    break;
    60985455
    60995456  case 205:
    6100 
    6101 /* Line 1806 of yacc.c  */
    6102 #line 899 "parser.yy"
    6103     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5457#line 899 "parser.yy" /* yacc.c:1646  */
     5458    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5459#line 5460 "Parser/parser.cc" /* yacc.c:1646  */
    61045460    break;
    61055461
    61065462  case 206:
    6107 
    6108 /* Line 1806 of yacc.c  */
    6109 #line 904 "parser.yy"
    6110     {
    6111                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     5463#line 904 "parser.yy" /* yacc.c:1646  */
     5464    {
     5465                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
    61125466                }
     5467#line 5468 "Parser/parser.cc" /* yacc.c:1646  */
    61135468    break;
    61145469
    61155470  case 208:
    6116 
    6117 /* Line 1806 of yacc.c  */
    6118 #line 917 "parser.yy"
     5471#line 917 "parser.yy" /* yacc.c:1646  */
    61195472    {
    61205473                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6121                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     5474                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    61225475                }
     5476#line 5477 "Parser/parser.cc" /* yacc.c:1646  */
    61235477    break;
    61245478
    61255479  case 209:
    6126 
    6127 /* Line 1806 of yacc.c  */
    6128 #line 922 "parser.yy"
    6129     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     5480#line 922 "parser.yy" /* yacc.c:1646  */
     5481    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     5482#line 5483 "Parser/parser.cc" /* yacc.c:1646  */
    61305483    break;
    61315484
    61325485  case 210:
    6133 
    6134 /* Line 1806 of yacc.c  */
    6135 #line 924 "parser.yy"
     5486#line 924 "parser.yy" /* yacc.c:1646  */
    61365487    {
    61375488                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6138                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
     5489                        (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
    61395490                }
     5491#line 5492 "Parser/parser.cc" /* yacc.c:1646  */
    61405492    break;
    61415493
    61425494  case 212:
    6143 
    6144 /* Line 1806 of yacc.c  */
    6145 #line 933 "parser.yy"
    6146     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     5495#line 933 "parser.yy" /* yacc.c:1646  */
     5496    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
     5497#line 5498 "Parser/parser.cc" /* yacc.c:1646  */
    61475498    break;
    61485499
    61495500  case 213:
    6150 
    6151 /* Line 1806 of yacc.c  */
    6152 #line 935 "parser.yy"
    6153     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     5501#line 935 "parser.yy" /* yacc.c:1646  */
     5502    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
     5503#line 5504 "Parser/parser.cc" /* yacc.c:1646  */
    61545504    break;
    61555505
    61565506  case 214:
    6157 
    6158 /* Line 1806 of yacc.c  */
    6159 #line 937 "parser.yy"
    6160     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     5507#line 937 "parser.yy" /* yacc.c:1646  */
     5508    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5509#line 5510 "Parser/parser.cc" /* yacc.c:1646  */
    61615510    break;
    61625511
    61635512  case 215:
    6164 
    6165 /* Line 1806 of yacc.c  */
    6166 #line 939 "parser.yy"
    6167     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     5513#line 939 "parser.yy" /* yacc.c:1646  */
     5514    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5515#line 5516 "Parser/parser.cc" /* yacc.c:1646  */
    61685516    break;
    61695517
    61705518  case 216:
    6171 
    6172 /* Line 1806 of yacc.c  */
    6173 #line 941 "parser.yy"
    6174     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
     5519#line 941 "parser.yy" /* yacc.c:1646  */
     5520    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
     5521#line 5522 "Parser/parser.cc" /* yacc.c:1646  */
    61755522    break;
    61765523
    61775524  case 217:
    6178 
    6179 /* Line 1806 of yacc.c  */
    6180 #line 946 "parser.yy"
     5525#line 946 "parser.yy" /* yacc.c:1646  */
    61815526    { (yyval.flag) = false; }
     5527#line 5528 "Parser/parser.cc" /* yacc.c:1646  */
    61825528    break;
    61835529
    61845530  case 218:
    6185 
    6186 /* Line 1806 of yacc.c  */
    6187 #line 948 "parser.yy"
     5531#line 948 "parser.yy" /* yacc.c:1646  */
    61885532    { (yyval.flag) = true; }
     5533#line 5534 "Parser/parser.cc" /* yacc.c:1646  */
    61895534    break;
    61905535
    61915536  case 219:
    6192 
    6193 /* Line 1806 of yacc.c  */
    6194 #line 953 "parser.yy"
     5537#line 953 "parser.yy" /* yacc.c:1646  */
    61955538    { (yyval.en) = 0; }
     5539#line 5540 "Parser/parser.cc" /* yacc.c:1646  */
    61965540    break;
    61975541
    61985542  case 222:
    6199 
    6200 /* Line 1806 of yacc.c  */
    6201 #line 960 "parser.yy"
    6202     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5543#line 960 "parser.yy" /* yacc.c:1646  */
     5544    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5545#line 5546 "Parser/parser.cc" /* yacc.c:1646  */
    62035546    break;
    62045547
    62055548  case 223:
    6206 
    6207 /* Line 1806 of yacc.c  */
    6208 #line 965 "parser.yy"
    6209     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     5549#line 965 "parser.yy" /* yacc.c:1646  */
     5550    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5551#line 5552 "Parser/parser.cc" /* yacc.c:1646  */
    62105552    break;
    62115553
    62125554  case 224:
    6213 
    6214 /* Line 1806 of yacc.c  */
    6215 #line 967 "parser.yy"
    6216     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     5555#line 967 "parser.yy" /* yacc.c:1646  */
     5556    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5557#line 5558 "Parser/parser.cc" /* yacc.c:1646  */
    62175558    break;
    62185559
    62195560  case 225:
    6220 
    6221 /* Line 1806 of yacc.c  */
    6222 #line 972 "parser.yy"
     5561#line 972 "parser.yy" /* yacc.c:1646  */
    62235562    { (yyval.en) = 0; }
     5563#line 5564 "Parser/parser.cc" /* yacc.c:1646  */
    62245564    break;
    62255565
    62265566  case 226:
    6227 
    6228 /* Line 1806 of yacc.c  */
    6229 #line 974 "parser.yy"
    6230     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5567#line 974 "parser.yy" /* yacc.c:1646  */
     5568    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     5569#line 5570 "Parser/parser.cc" /* yacc.c:1646  */
    62315570    break;
    62325571
    62335572  case 227:
    6234 
    6235 /* Line 1806 of yacc.c  */
    6236 #line 976 "parser.yy"
    6237     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     5573#line 976 "parser.yy" /* yacc.c:1646  */
     5574    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
     5575#line 5576 "Parser/parser.cc" /* yacc.c:1646  */
    62385576    break;
    62395577
    62405578  case 228:
    6241 
    6242 /* Line 1806 of yacc.c  */
    6243 #line 981 "parser.yy"
    6244     { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); }
     5579#line 981 "parser.yy" /* yacc.c:1646  */
     5580    { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); }
     5581#line 5582 "Parser/parser.cc" /* yacc.c:1646  */
    62455582    break;
    62465583
    62475584  case 229:
    6248 
    6249 /* Line 1806 of yacc.c  */
    6250 #line 983 "parser.yy"
    6251     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); }
     5585#line 983 "parser.yy" /* yacc.c:1646  */
     5586    { (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); }
     5587#line 5588 "Parser/parser.cc" /* yacc.c:1646  */
    62525588    break;
    62535589
    62545590  case 230:
    6255 
    6256 /* Line 1806 of yacc.c  */
    6257 #line 990 "parser.yy"
     5591#line 990 "parser.yy" /* yacc.c:1646  */
    62585592    { (yyval.decl) = 0; }
     5593#line 5594 "Parser/parser.cc" /* yacc.c:1646  */
    62595594    break;
    62605595
    62615596  case 233:
    6262 
    6263 /* Line 1806 of yacc.c  */
    6264 #line 997 "parser.yy"
    6265     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5597#line 997 "parser.yy" /* yacc.c:1646  */
     5598    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5599#line 5600 "Parser/parser.cc" /* yacc.c:1646  */
    62665600    break;
    62675601
    62685602  case 234:
    6269 
    6270 /* Line 1806 of yacc.c  */
    6271 #line 1002 "parser.yy"
     5603#line 1002 "parser.yy" /* yacc.c:1646  */
    62725604    { (yyval.decl) = 0; }
     5605#line 5606 "Parser/parser.cc" /* yacc.c:1646  */
    62735606    break;
    62745607
    62755608  case 237:
    6276 
    6277 /* Line 1806 of yacc.c  */
    6278 #line 1009 "parser.yy"
    6279     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5609#line 1009 "parser.yy" /* yacc.c:1646  */
     5610    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5611#line 5612 "Parser/parser.cc" /* yacc.c:1646  */
    62805612    break;
    62815613
    62825614  case 242:
    6283 
    6284 /* Line 1806 of yacc.c  */
    6285 #line 1023 "parser.yy"
     5615#line 1023 "parser.yy" /* yacc.c:1646  */
    62865616    {}
     5617#line 5618 "Parser/parser.cc" /* yacc.c:1646  */
    62875618    break;
    62885619
    62895620  case 243:
    6290 
    6291 /* Line 1806 of yacc.c  */
    6292 #line 1024 "parser.yy"
     5621#line 1024 "parser.yy" /* yacc.c:1646  */
    62935622    {}
     5623#line 5624 "Parser/parser.cc" /* yacc.c:1646  */
    62945624    break;
    62955625
    62965626  case 251:
    6297 
    6298 /* Line 1806 of yacc.c  */
    6299 #line 1053 "parser.yy"
     5627#line 1053 "parser.yy" /* yacc.c:1646  */
    63005628    {
    63015629                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6302                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     5630                        (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
    63035631                }
     5632#line 5633 "Parser/parser.cc" /* yacc.c:1646  */
    63045633    break;
    63055634
    63065635  case 252:
    6307 
    6308 /* Line 1806 of yacc.c  */
    6309 #line 1060 "parser.yy"
     5636#line 1060 "parser.yy" /* yacc.c:1646  */
    63105637    {
    63115638                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6312                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     5639                        (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
    63135640                }
     5641#line 5642 "Parser/parser.cc" /* yacc.c:1646  */
    63145642    break;
    63155643
    63165644  case 253:
    6317 
    6318 /* Line 1806 of yacc.c  */
    6319 #line 1065 "parser.yy"
    6320     {
    6321                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6322                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
     5645#line 1065 "parser.yy" /* yacc.c:1646  */
     5646    {
     5647                        typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
     5648                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
    63235649                }
     5650#line 5651 "Parser/parser.cc" /* yacc.c:1646  */
    63245651    break;
    63255652
    63265653  case 254:
    6327 
    6328 /* Line 1806 of yacc.c  */
    6329 #line 1075 "parser.yy"
    6330     {
    6331                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6332                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5654#line 1075 "parser.yy" /* yacc.c:1646  */
     5655    {
     5656                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5657                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63335658                }
     5659#line 5660 "Parser/parser.cc" /* yacc.c:1646  */
    63345660    break;
    63355661
    63365662  case 255:
    6337 
    6338 /* Line 1806 of yacc.c  */
    6339 #line 1080 "parser.yy"
    6340     {
    6341                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6342                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5663#line 1080 "parser.yy" /* yacc.c:1646  */
     5664    {
     5665                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5666                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63435667                }
     5668#line 5669 "Parser/parser.cc" /* yacc.c:1646  */
    63445669    break;
    63455670
    63465671  case 256:
    6347 
    6348 /* Line 1806 of yacc.c  */
    6349 #line 1085 "parser.yy"
    6350     {
    6351                         typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
    6352                         (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
     5672#line 1085 "parser.yy" /* yacc.c:1646  */
     5673    {
     5674                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5675                        (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
    63535676                }
     5677#line 5678 "Parser/parser.cc" /* yacc.c:1646  */
    63545678    break;
    63555679
    63565680  case 257:
    6357 
    6358 /* Line 1806 of yacc.c  */
    6359 #line 1093 "parser.yy"
     5681#line 1093 "parser.yy" /* yacc.c:1646  */
    63605682    {
    63615683                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6362                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     5684                        (yyval.decl) = (yyvsp[0].decl);
    63635685                }
     5686#line 5687 "Parser/parser.cc" /* yacc.c:1646  */
    63645687    break;
    63655688
    63665689  case 258:
    6367 
    6368 /* Line 1806 of yacc.c  */
    6369 #line 1098 "parser.yy"
     5690#line 1098 "parser.yy" /* yacc.c:1646  */
    63705691    {
    63715692                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6372                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5693                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63735694                }
     5695#line 5696 "Parser/parser.cc" /* yacc.c:1646  */
    63745696    break;
    63755697
    63765698  case 259:
    6377 
    6378 /* Line 1806 of yacc.c  */
    6379 #line 1103 "parser.yy"
     5699#line 1103 "parser.yy" /* yacc.c:1646  */
    63805700    {
    63815701                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6382                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5702                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63835703                }
     5704#line 5705 "Parser/parser.cc" /* yacc.c:1646  */
    63845705    break;
    63855706
    63865707  case 260:
    6387 
    6388 /* Line 1806 of yacc.c  */
    6389 #line 1108 "parser.yy"
     5708#line 1108 "parser.yy" /* yacc.c:1646  */
    63905709    {
    63915710                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6392                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
     5711                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
    63935712                }
     5713#line 5714 "Parser/parser.cc" /* yacc.c:1646  */
    63945714    break;
    63955715
    63965716  case 261:
    6397 
    6398 /* Line 1806 of yacc.c  */
    6399 #line 1113 "parser.yy"
    6400     {
    6401                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    6402                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5717#line 1113 "parser.yy" /* yacc.c:1646  */
     5718    {
     5719                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
     5720                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64035721                }
     5722#line 5723 "Parser/parser.cc" /* yacc.c:1646  */
    64045723    break;
    64055724
    64065725  case 262:
    6407 
    6408 /* Line 1806 of yacc.c  */
    6409 #line 1121 "parser.yy"
    6410     {
    6411                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     5726#line 1121 "parser.yy" /* yacc.c:1646  */
     5727    {
     5728                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
    64125729                }
     5730#line 5731 "Parser/parser.cc" /* yacc.c:1646  */
    64135731    break;
    64145732
    64155733  case 263:
    6416 
    6417 /* Line 1806 of yacc.c  */
    6418 #line 1144 "parser.yy"
    6419     {
    6420                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5734#line 1144 "parser.yy" /* yacc.c:1646  */
     5735    {
     5736                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64215737                }
     5738#line 5739 "Parser/parser.cc" /* yacc.c:1646  */
    64225739    break;
    64235740
    64245741  case 264:
    6425 
    6426 /* Line 1806 of yacc.c  */
    6427 #line 1148 "parser.yy"
    6428     {
    6429                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5742#line 1148 "parser.yy" /* yacc.c:1646  */
     5743    {
     5744                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64305745                }
     5746#line 5747 "Parser/parser.cc" /* yacc.c:1646  */
    64315747    break;
    64325748
    64335749  case 265:
    6434 
    6435 /* Line 1806 of yacc.c  */
    6436 #line 1155 "parser.yy"
    6437     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     5750#line 1155 "parser.yy" /* yacc.c:1646  */
     5751    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     5752#line 5753 "Parser/parser.cc" /* yacc.c:1646  */
    64385753    break;
    64395754
    64405755  case 266:
    6441 
    6442 /* Line 1806 of yacc.c  */
    6443 #line 1159 "parser.yy"
    6444     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     5756#line 1159 "parser.yy" /* yacc.c:1646  */
     5757    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
     5758#line 5759 "Parser/parser.cc" /* yacc.c:1646  */
    64455759    break;
    64465760
    64475761  case 267:
    6448 
    6449 /* Line 1806 of yacc.c  */
    6450 #line 1164 "parser.yy"
     5762#line 1164 "parser.yy" /* yacc.c:1646  */
    64515763    {
    64525764                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6453                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5765                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64545766                }
     5767#line 5768 "Parser/parser.cc" /* yacc.c:1646  */
    64555768    break;
    64565769
    64575770  case 268:
    6458 
    6459 /* Line 1806 of yacc.c  */
    6460 #line 1169 "parser.yy"
     5771#line 1169 "parser.yy" /* yacc.c:1646  */
    64615772    {
    64625773                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6463                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5774                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64645775                }
     5776#line 5777 "Parser/parser.cc" /* yacc.c:1646  */
    64655777    break;
    64665778
    64675779  case 269:
    6468 
    6469 /* Line 1806 of yacc.c  */
    6470 #line 1174 "parser.yy"
    6471     {
    6472                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
    6473                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5780#line 1174 "parser.yy" /* yacc.c:1646  */
     5781    {
     5782                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     5783                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64745784                }
     5785#line 5786 "Parser/parser.cc" /* yacc.c:1646  */
    64755786    break;
    64765787
    64775788  case 270:
    6478 
    6479 /* Line 1806 of yacc.c  */
    6480 #line 1185 "parser.yy"
     5789#line 1185 "parser.yy" /* yacc.c:1646  */
    64815790    {
    64825791                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6483                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
     5792                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
    64845793                }
     5794#line 5795 "Parser/parser.cc" /* yacc.c:1646  */
    64855795    break;
    64865796
    64875797  case 271:
    6488 
    6489 /* Line 1806 of yacc.c  */
    6490 #line 1190 "parser.yy"
     5798#line 1190 "parser.yy" /* yacc.c:1646  */
    64915799    {
    64925800                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6493                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
     5801                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
    64945802                }
     5803#line 5804 "Parser/parser.cc" /* yacc.c:1646  */
    64955804    break;
    64965805
    64975806  case 272:
    6498 
    6499 /* Line 1806 of yacc.c  */
    6500 #line 1195 "parser.yy"
     5807#line 1195 "parser.yy" /* yacc.c:1646  */
    65015808    {
    65025809                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6503                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
     5810                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
    65045811                }
     5812#line 5813 "Parser/parser.cc" /* yacc.c:1646  */
    65055813    break;
    65065814
    65075815  case 273:
    6508 
    6509 /* Line 1806 of yacc.c  */
    6510 #line 1200 "parser.yy"
     5816#line 1200 "parser.yy" /* yacc.c:1646  */
    65115817    {
    65125818                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6513                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
     5819                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
    65145820                }
     5821#line 5822 "Parser/parser.cc" /* yacc.c:1646  */
    65155822    break;
    65165823
    65175824  case 274:
    6518 
    6519 /* Line 1806 of yacc.c  */
    6520 #line 1205 "parser.yy"
     5825#line 1205 "parser.yy" /* yacc.c:1646  */
    65215826    {
    65225827                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6523                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
     5828                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
    65245829                }
     5830#line 5831 "Parser/parser.cc" /* yacc.c:1646  */
    65255831    break;
    65265832
    65275833  case 275:
    6528 
    6529 /* Line 1806 of yacc.c  */
    6530 #line 1214 "parser.yy"
    6531     {
    6532                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     5834#line 1214 "parser.yy" /* yacc.c:1646  */
     5835    {
     5836                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65335837                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65345838                }
     5839#line 5840 "Parser/parser.cc" /* yacc.c:1646  */
    65355840    break;
    65365841
    65375842  case 276:
    6538 
    6539 /* Line 1806 of yacc.c  */
    6540 #line 1219 "parser.yy"
    6541     {
    6542                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     5843#line 1219 "parser.yy" /* yacc.c:1646  */
     5844    {
     5845                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65435846                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65445847                }
     5848#line 5849 "Parser/parser.cc" /* yacc.c:1646  */
    65455849    break;
    65465850
    65475851  case 281:
    6548 
    6549 /* Line 1806 of yacc.c  */
    6550 #line 1236 "parser.yy"
     5852#line 1236 "parser.yy" /* yacc.c:1646  */
    65515853    {
    65525854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6553                         (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
     5855                        (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
    65545856                }
     5857#line 5858 "Parser/parser.cc" /* yacc.c:1646  */
    65555858    break;
    65565859
    65575860  case 282:
    6558 
    6559 /* Line 1806 of yacc.c  */
    6560 #line 1241 "parser.yy"
     5861#line 1241 "parser.yy" /* yacc.c:1646  */
    65615862    {
    65625863                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6563                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
     5864                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
    65645865                }
     5866#line 5867 "Parser/parser.cc" /* yacc.c:1646  */
    65655867    break;
    65665868
    65675869  case 291:
    6568 
    6569 /* Line 1806 of yacc.c  */
    6570 #line 1263 "parser.yy"
     5870#line 1263 "parser.yy" /* yacc.c:1646  */
    65715871    { (yyval.decl) = 0; }
     5872#line 5873 "Parser/parser.cc" /* yacc.c:1646  */
    65725873    break;
    65735874
    65745875  case 294:
    6575 
    6576 /* Line 1806 of yacc.c  */
    6577 #line 1275 "parser.yy"
    6578     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5876#line 1275 "parser.yy" /* yacc.c:1646  */
     5877    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5878#line 5879 "Parser/parser.cc" /* yacc.c:1646  */
    65795879    break;
    65805880
    65815881  case 297:
    6582 
    6583 /* Line 1806 of yacc.c  */
    6584 #line 1286 "parser.yy"
     5882#line 1286 "parser.yy" /* yacc.c:1646  */
    65855883    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5884#line 5885 "Parser/parser.cc" /* yacc.c:1646  */
    65865885    break;
    65875886
    65885887  case 298:
    6589 
    6590 /* Line 1806 of yacc.c  */
    6591 #line 1288 "parser.yy"
     5888#line 1288 "parser.yy" /* yacc.c:1646  */
    65925889    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5890#line 5891 "Parser/parser.cc" /* yacc.c:1646  */
    65935891    break;
    65945892
    65955893  case 299:
    6596 
    6597 /* Line 1806 of yacc.c  */
    6598 #line 1290 "parser.yy"
     5894#line 1290 "parser.yy" /* yacc.c:1646  */
    65995895    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5896#line 5897 "Parser/parser.cc" /* yacc.c:1646  */
    66005897    break;
    66015898
    66025899  case 300:
    6603 
    6604 /* Line 1806 of yacc.c  */
    6605 #line 1292 "parser.yy"
     5900#line 1292 "parser.yy" /* yacc.c:1646  */
    66065901    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5902#line 5903 "Parser/parser.cc" /* yacc.c:1646  */
    66075903    break;
    66085904
    66095905  case 301:
    6610 
    6611 /* Line 1806 of yacc.c  */
    6612 #line 1294 "parser.yy"
     5906#line 1294 "parser.yy" /* yacc.c:1646  */
    66135907    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     5908#line 5909 "Parser/parser.cc" /* yacc.c:1646  */
    66145909    break;
    66155910
    66165911  case 302:
    6617 
    6618 /* Line 1806 of yacc.c  */
    6619 #line 1296 "parser.yy"
     5912#line 1296 "parser.yy" /* yacc.c:1646  */
    66205913    {
    66215914                        typedefTable.enterScope();
    66225915                }
     5916#line 5917 "Parser/parser.cc" /* yacc.c:1646  */
    66235917    break;
    66245918
    66255919  case 303:
    6626 
    6627 /* Line 1806 of yacc.c  */
    6628 #line 1300 "parser.yy"
     5920#line 1300 "parser.yy" /* yacc.c:1646  */
    66295921    {
    66305922                        typedefTable.leaveScope();
    6631                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
     5923                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
    66325924                }
     5925#line 5926 "Parser/parser.cc" /* yacc.c:1646  */
    66335926    break;
    66345927
    66355928  case 305:
    6636 
    6637 /* Line 1806 of yacc.c  */
    6638 #line 1309 "parser.yy"
    6639     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5929#line 1309 "parser.yy" /* yacc.c:1646  */
     5930    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5931#line 5932 "Parser/parser.cc" /* yacc.c:1646  */
    66405932    break;
    66415933
    66425934  case 306:
    6643 
    6644 /* Line 1806 of yacc.c  */
    6645 #line 1311 "parser.yy"
    6646     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     5935#line 1311 "parser.yy" /* yacc.c:1646  */
     5936    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     5937#line 5938 "Parser/parser.cc" /* yacc.c:1646  */
    66475938    break;
    66485939
    66495940  case 308:
    6650 
    6651 /* Line 1806 of yacc.c  */
    6652 #line 1322 "parser.yy"
    6653     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5941#line 1322 "parser.yy" /* yacc.c:1646  */
     5942    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5943#line 5944 "Parser/parser.cc" /* yacc.c:1646  */
    66545944    break;
    66555945
    66565946  case 309:
    6657 
    6658 /* Line 1806 of yacc.c  */
    6659 #line 1327 "parser.yy"
     5947#line 1327 "parser.yy" /* yacc.c:1646  */
    66605948    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5949#line 5950 "Parser/parser.cc" /* yacc.c:1646  */
    66615950    break;
    66625951
    66635952  case 310:
    6664 
    6665 /* Line 1806 of yacc.c  */
    6666 #line 1329 "parser.yy"
     5953#line 1329 "parser.yy" /* yacc.c:1646  */
    66675954    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5955#line 5956 "Parser/parser.cc" /* yacc.c:1646  */
    66685956    break;
    66695957
    66705958  case 311:
    6671 
    6672 /* Line 1806 of yacc.c  */
    6673 #line 1331 "parser.yy"
     5959#line 1331 "parser.yy" /* yacc.c:1646  */
    66745960    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5961#line 5962 "Parser/parser.cc" /* yacc.c:1646  */
    66755962    break;
    66765963
    66775964  case 312:
    6678 
    6679 /* Line 1806 of yacc.c  */
    6680 #line 1333 "parser.yy"
     5965#line 1333 "parser.yy" /* yacc.c:1646  */
    66815966    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5967#line 5968 "Parser/parser.cc" /* yacc.c:1646  */
    66825968    break;
    66835969
    66845970  case 313:
    6685 
    6686 /* Line 1806 of yacc.c  */
    6687 #line 1335 "parser.yy"
     5971#line 1335 "parser.yy" /* yacc.c:1646  */
    66885972    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     5973#line 5974 "Parser/parser.cc" /* yacc.c:1646  */
    66895974    break;
    66905975
    66915976  case 314:
    6692 
    6693 /* Line 1806 of yacc.c  */
    6694 #line 1337 "parser.yy"
     5977#line 1337 "parser.yy" /* yacc.c:1646  */
    66955978    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5979#line 5980 "Parser/parser.cc" /* yacc.c:1646  */
    66965980    break;
    66975981
    66985982  case 315:
    6699 
    6700 /* Line 1806 of yacc.c  */
    6701 #line 1339 "parser.yy"
     5983#line 1339 "parser.yy" /* yacc.c:1646  */
    67025984    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     5985#line 5986 "Parser/parser.cc" /* yacc.c:1646  */
    67035986    break;
    67045987
    67055988  case 316:
    6706 
    6707 /* Line 1806 of yacc.c  */
    6708 #line 1341 "parser.yy"
     5989#line 1341 "parser.yy" /* yacc.c:1646  */
    67095990    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5991#line 5992 "Parser/parser.cc" /* yacc.c:1646  */
    67105992    break;
    67115993
    67125994  case 317:
    6713 
    6714 /* Line 1806 of yacc.c  */
    6715 #line 1346 "parser.yy"
     5995#line 1346 "parser.yy" /* yacc.c:1646  */
    67165996    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     5997#line 5998 "Parser/parser.cc" /* yacc.c:1646  */
    67175998    break;
    67185999
    67196000  case 318:
    6720 
    6721 /* Line 1806 of yacc.c  */
    6722 #line 1348 "parser.yy"
     6001#line 1348 "parser.yy" /* yacc.c:1646  */
    67236002    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6003#line 6004 "Parser/parser.cc" /* yacc.c:1646  */
    67246004    break;
    67256005
    67266006  case 319:
    6727 
    6728 /* Line 1806 of yacc.c  */
    6729 #line 1350 "parser.yy"
     6007#line 1350 "parser.yy" /* yacc.c:1646  */
    67306008    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6009#line 6010 "Parser/parser.cc" /* yacc.c:1646  */
    67316010    break;
    67326011
    67336012  case 320:
    6734 
    6735 /* Line 1806 of yacc.c  */
    6736 #line 1352 "parser.yy"
     6013#line 1352 "parser.yy" /* yacc.c:1646  */
    67376014    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6015#line 6016 "Parser/parser.cc" /* yacc.c:1646  */
    67386016    break;
    67396017
    67406018  case 321:
    6741 
    6742 /* Line 1806 of yacc.c  */
    6743 #line 1354 "parser.yy"
     6019#line 1354 "parser.yy" /* yacc.c:1646  */
    67446020    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6021#line 6022 "Parser/parser.cc" /* yacc.c:1646  */
    67456022    break;
    67466023
    67476024  case 322:
    6748 
    6749 /* Line 1806 of yacc.c  */
    6750 #line 1356 "parser.yy"
     6025#line 1356 "parser.yy" /* yacc.c:1646  */
    67516026    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6027#line 6028 "Parser/parser.cc" /* yacc.c:1646  */
    67526028    break;
    67536029
    67546030  case 323:
    6755 
    6756 /* Line 1806 of yacc.c  */
    6757 #line 1358 "parser.yy"
     6031#line 1358 "parser.yy" /* yacc.c:1646  */
    67586032    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6033#line 6034 "Parser/parser.cc" /* yacc.c:1646  */
    67596034    break;
    67606035
    67616036  case 324:
    6762 
    6763 /* Line 1806 of yacc.c  */
    6764 #line 1360 "parser.yy"
     6037#line 1360 "parser.yy" /* yacc.c:1646  */
    67656038    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6039#line 6040 "Parser/parser.cc" /* yacc.c:1646  */
    67666040    break;
    67676041
    67686042  case 325:
    6769 
    6770 /* Line 1806 of yacc.c  */
    6771 #line 1362 "parser.yy"
     6043#line 1362 "parser.yy" /* yacc.c:1646  */
    67726044    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6045#line 6046 "Parser/parser.cc" /* yacc.c:1646  */
    67736046    break;
    67746047
    67756048  case 326:
    6776 
    6777 /* Line 1806 of yacc.c  */
    6778 #line 1364 "parser.yy"
     6049#line 1364 "parser.yy" /* yacc.c:1646  */
    67796050    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6051#line 6052 "Parser/parser.cc" /* yacc.c:1646  */
    67806052    break;
    67816053
    67826054  case 327:
    6783 
    6784 /* Line 1806 of yacc.c  */
    6785 #line 1366 "parser.yy"
     6055#line 1366 "parser.yy" /* yacc.c:1646  */
    67866056    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6057#line 6058 "Parser/parser.cc" /* yacc.c:1646  */
    67876058    break;
    67886059
    67896060  case 328:
    6790 
    6791 /* Line 1806 of yacc.c  */
    6792 #line 1368 "parser.yy"
     6061#line 1368 "parser.yy" /* yacc.c:1646  */
    67936062    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6063#line 6064 "Parser/parser.cc" /* yacc.c:1646  */
    67946064    break;
    67956065
    67966066  case 329:
    6797 
    6798 /* Line 1806 of yacc.c  */
    6799 #line 1370 "parser.yy"
     6067#line 1370 "parser.yy" /* yacc.c:1646  */
    68006068    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6069#line 6070 "Parser/parser.cc" /* yacc.c:1646  */
    68016070    break;
    68026071
    68036072  case 331:
    6804 
    6805 /* Line 1806 of yacc.c  */
    6806 #line 1377 "parser.yy"
    6807     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6073#line 1377 "parser.yy" /* yacc.c:1646  */
     6074    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6075#line 6076 "Parser/parser.cc" /* yacc.c:1646  */
    68086076    break;
    68096077
    68106078  case 332:
    6811 
    6812 /* Line 1806 of yacc.c  */
    6813 #line 1379 "parser.yy"
    6814     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6079#line 1379 "parser.yy" /* yacc.c:1646  */
     6080    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6081#line 6082 "Parser/parser.cc" /* yacc.c:1646  */
    68156082    break;
    68166083
    68176084  case 333:
    6818 
    6819 /* Line 1806 of yacc.c  */
    6820 #line 1381 "parser.yy"
    6821     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6085#line 1381 "parser.yy" /* yacc.c:1646  */
     6086    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6087#line 6088 "Parser/parser.cc" /* yacc.c:1646  */
    68226088    break;
    68236089
    68246090  case 334: