Changeset ac71a86


Ignore:
Timestamp:
Aug 19, 2016, 12:57:05 PM (9 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, 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:
    6825 
    6826 /* Line 1806 of yacc.c  */
    6827 #line 1383 "parser.yy"
    6828     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6091#line 1383 "parser.yy" /* yacc.c:1646  */
     6092    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
     6093#line 6094 "Parser/parser.cc" /* yacc.c:1646  */
    68296094    break;
    68306095
    68316096  case 336:
    6832 
    6833 /* Line 1806 of yacc.c  */
    6834 #line 1389 "parser.yy"
    6835     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6097#line 1389 "parser.yy" /* yacc.c:1646  */
     6098    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6099#line 6100 "Parser/parser.cc" /* yacc.c:1646  */
    68366100    break;
    68376101
    68386102  case 338:
    6839 
    6840 /* Line 1806 of yacc.c  */
    6841 #line 1396 "parser.yy"
    6842     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6103#line 1396 "parser.yy" /* yacc.c:1646  */
     6104    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6105#line 6106 "Parser/parser.cc" /* yacc.c:1646  */
    68436106    break;
    68446107
    68456108  case 339:
    6846 
    6847 /* Line 1806 of yacc.c  */
    6848 #line 1398 "parser.yy"
    6849     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6109#line 1398 "parser.yy" /* yacc.c:1646  */
     6110    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6111#line 6112 "Parser/parser.cc" /* yacc.c:1646  */
    68506112    break;
    68516113
    68526114  case 340:
    6853 
    6854 /* Line 1806 of yacc.c  */
    6855 #line 1400 "parser.yy"
    6856     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6115#line 1400 "parser.yy" /* yacc.c:1646  */
     6116    { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
     6117#line 6118 "Parser/parser.cc" /* yacc.c:1646  */
    68576118    break;
    68586119
    68596120  case 341:
    6860 
    6861 /* Line 1806 of yacc.c  */
    6862 #line 1405 "parser.yy"
    6863     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6121#line 1405 "parser.yy" /* yacc.c:1646  */
     6122    { (yyval.decl) = (yyvsp[-1].decl); }
     6123#line 6124 "Parser/parser.cc" /* yacc.c:1646  */
    68646124    break;
    68656125
    68666126  case 342:
    6867 
    6868 /* Line 1806 of yacc.c  */
    6869 #line 1407 "parser.yy"
    6870     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6127#line 1407 "parser.yy" /* yacc.c:1646  */
     6128    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
     6129#line 6130 "Parser/parser.cc" /* yacc.c:1646  */
    68716130    break;
    68726131
    68736132  case 343:
    6874 
    6875 /* Line 1806 of yacc.c  */
    6876 #line 1409 "parser.yy"
    6877     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6133#line 1409 "parser.yy" /* yacc.c:1646  */
     6134    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
     6135#line 6136 "Parser/parser.cc" /* yacc.c:1646  */
    68786136    break;
    68796137
    68806138  case 344:
    6881 
    6882 /* Line 1806 of yacc.c  */
    6883 #line 1411 "parser.yy"
    6884     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6139#line 1411 "parser.yy" /* yacc.c:1646  */
     6140    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6141#line 6142 "Parser/parser.cc" /* yacc.c:1646  */
    68856142    break;
    68866143
    68876144  case 346:
    6888 
    6889 /* Line 1806 of yacc.c  */
    6890 #line 1417 "parser.yy"
    6891     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6145#line 1417 "parser.yy" /* yacc.c:1646  */
     6146    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6147#line 6148 "Parser/parser.cc" /* yacc.c:1646  */
    68926148    break;
    68936149
    68946150  case 347:
    6895 
    6896 /* Line 1806 of yacc.c  */
    6897 #line 1419 "parser.yy"
    6898     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6151#line 1419 "parser.yy" /* yacc.c:1646  */
     6152    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6153#line 6154 "Parser/parser.cc" /* yacc.c:1646  */
    68996154    break;
    69006155
    69016156  case 348:
    6902 
    6903 /* Line 1806 of yacc.c  */
    6904 #line 1421 "parser.yy"
    6905     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6157#line 1421 "parser.yy" /* yacc.c:1646  */
     6158    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6159#line 6160 "Parser/parser.cc" /* yacc.c:1646  */
    69066160    break;
    69076161
    69086162  case 350:
    6909 
    6910 /* Line 1806 of yacc.c  */
    6911 #line 1427 "parser.yy"
    6912     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6163#line 1427 "parser.yy" /* yacc.c:1646  */
     6164    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6165#line 6166 "Parser/parser.cc" /* yacc.c:1646  */
    69136166    break;
    69146167
    69156168  case 351:
    6916 
    6917 /* Line 1806 of yacc.c  */
    6918 #line 1429 "parser.yy"
    6919     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6169#line 1429 "parser.yy" /* yacc.c:1646  */
     6170    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6171#line 6172 "Parser/parser.cc" /* yacc.c:1646  */
    69206172    break;
    69216173
    69226174  case 353:
    6923 
    6924 /* Line 1806 of yacc.c  */
    6925 #line 1435 "parser.yy"
    6926     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6175#line 1435 "parser.yy" /* yacc.c:1646  */
     6176    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6177#line 6178 "Parser/parser.cc" /* yacc.c:1646  */
    69276178    break;
    69286179
    69296180  case 354:
    6930 
    6931 /* Line 1806 of yacc.c  */
    6932 #line 1437 "parser.yy"
    6933     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6181#line 1437 "parser.yy" /* yacc.c:1646  */
     6182    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6183#line 6184 "Parser/parser.cc" /* yacc.c:1646  */
    69346184    break;
    69356185
    69366186  case 355:
    6937 
    6938 /* Line 1806 of yacc.c  */
    6939 #line 1439 "parser.yy"
    6940     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6187#line 1439 "parser.yy" /* yacc.c:1646  */
     6188    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6189#line 6190 "Parser/parser.cc" /* yacc.c:1646  */
    69416190    break;
    69426191
    69436192  case 356:
    6944 
    6945 /* Line 1806 of yacc.c  */
    6946 #line 1444 "parser.yy"
    6947     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6193#line 1444 "parser.yy" /* yacc.c:1646  */
     6194    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
     6195#line 6196 "Parser/parser.cc" /* yacc.c:1646  */
    69486196    break;
    69496197
    69506198  case 357:
    6951 
    6952 /* Line 1806 of yacc.c  */
    6953 #line 1446 "parser.yy"
    6954     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6199#line 1446 "parser.yy" /* yacc.c:1646  */
     6200    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
     6201#line 6202 "Parser/parser.cc" /* yacc.c:1646  */
    69556202    break;
    69566203
    69576204  case 358:
    6958 
    6959 /* Line 1806 of yacc.c  */
    6960 #line 1448 "parser.yy"
    6961     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6205#line 1448 "parser.yy" /* yacc.c:1646  */
     6206    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6207#line 6208 "Parser/parser.cc" /* yacc.c:1646  */
    69626208    break;
    69636209
    69646210  case 361:
    6965 
    6966 /* Line 1806 of yacc.c  */
    6967 #line 1458 "parser.yy"
    6968     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
     6211#line 1458 "parser.yy" /* yacc.c:1646  */
     6212    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); }
     6213#line 6214 "Parser/parser.cc" /* yacc.c:1646  */
    69696214    break;
    69706215
    69716216  case 362:
    6972 
    6973 /* Line 1806 of yacc.c  */
    6974 #line 1460 "parser.yy"
    6975     {
    6976                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    6977                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false );
     6217#line 1460 "parser.yy" /* yacc.c:1646  */
     6218    {
     6219                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6220                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false );
    69786221                }
     6222#line 6223 "Parser/parser.cc" /* yacc.c:1646  */
    69796223    break;
    69806224
    69816225  case 363:
    6982 
    6983 /* Line 1806 of yacc.c  */
    6984 #line 1465 "parser.yy"
    6985     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6226#line 1465 "parser.yy" /* yacc.c:1646  */
     6227    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6228#line 6229 "Parser/parser.cc" /* yacc.c:1646  */
    69866229    break;
    69876230
    69886231  case 364:
    6989 
    6990 /* Line 1806 of yacc.c  */
    6991 #line 1467 "parser.yy"
    6992     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
     6232#line 1467 "parser.yy" /* yacc.c:1646  */
     6233    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); }
     6234#line 6235 "Parser/parser.cc" /* yacc.c:1646  */
    69936235    break;
    69946236
    69956237  case 365:
    6996 
    6997 /* Line 1806 of yacc.c  */
    6998 #line 1469 "parser.yy"
    6999     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     6238#line 1469 "parser.yy" /* yacc.c:1646  */
     6239    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
     6240#line 6241 "Parser/parser.cc" /* yacc.c:1646  */
    70006241    break;
    70016242
    70026243  case 366:
    7003 
    7004 /* Line 1806 of yacc.c  */
    7005 #line 1471 "parser.yy"
    7006     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6244#line 1471 "parser.yy" /* yacc.c:1646  */
     6245    { (yyval.decl) = (yyvsp[0].decl); }
     6246#line 6247 "Parser/parser.cc" /* yacc.c:1646  */
    70076247    break;
    70086248
    70096249  case 367:
    7010 
    7011 /* Line 1806 of yacc.c  */
    7012 #line 1476 "parser.yy"
     6250#line 1476 "parser.yy" /* yacc.c:1646  */
    70136251    { (yyval.aggKey) = DeclarationNode::Struct; }
     6252#line 6253 "Parser/parser.cc" /* yacc.c:1646  */
    70146253    break;
    70156254
    70166255  case 368:
    7017 
    7018 /* Line 1806 of yacc.c  */
    7019 #line 1478 "parser.yy"
     6256#line 1478 "parser.yy" /* yacc.c:1646  */
    70206257    { (yyval.aggKey) = DeclarationNode::Union; }
     6258#line 6259 "Parser/parser.cc" /* yacc.c:1646  */
    70216259    break;
    70226260
    70236261  case 369:
    7024 
    7025 /* Line 1806 of yacc.c  */
    7026 #line 1483 "parser.yy"
     6262#line 1483 "parser.yy" /* yacc.c:1646  */
    70276263    { (yyval.decl) = 0; }
     6264#line 6265 "Parser/parser.cc" /* yacc.c:1646  */
    70286265    break;
    70296266
    70306267  case 370:
    7031 
    7032 /* Line 1806 of yacc.c  */
    7033 #line 1485 "parser.yy"
    7034     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     6268#line 1485 "parser.yy" /* yacc.c:1646  */
     6269    { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6270#line 6271 "Parser/parser.cc" /* yacc.c:1646  */
    70356271    break;
    70366272
    70376273  case 372:
    7038 
    7039 /* Line 1806 of yacc.c  */
    7040 #line 1491 "parser.yy"
    7041     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     6274#line 1491 "parser.yy" /* yacc.c:1646  */
     6275    { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
     6276#line 6277 "Parser/parser.cc" /* yacc.c:1646  */
    70426277    break;
    70436278
    70446279  case 374:
    7045 
    7046 /* Line 1806 of yacc.c  */
    7047 #line 1494 "parser.yy"
     6280#line 1494 "parser.yy" /* yacc.c:1646  */
    70486281    {   // mark all fields in list
    7049                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6282                        for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    70506283                                iter->set_extension( true );
    7051                         (yyval.decl) = (yyvsp[(2) - (3)].decl);
     6284                        (yyval.decl) = (yyvsp[-1].decl);
    70526285                }
     6286#line 6287 "Parser/parser.cc" /* yacc.c:1646  */
    70536287    break;
    70546288
    70556289  case 376:
    7056 
    7057 /* Line 1806 of yacc.c  */
    7058 #line 1504 "parser.yy"
    7059     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6290#line 1504 "parser.yy" /* yacc.c:1646  */
     6291    { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
     6292#line 6293 "Parser/parser.cc" /* yacc.c:1646  */
    70606293    break;
    70616294
    70626295  case 377:
    7063 
    7064 /* Line 1806 of yacc.c  */
    7065 #line 1506 "parser.yy"
    7066     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     6296#line 1506 "parser.yy" /* yacc.c:1646  */
     6297    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
     6298#line 6299 "Parser/parser.cc" /* yacc.c:1646  */
    70676299    break;
    70686300
    70696301  case 378:
    7070 
    7071 /* Line 1806 of yacc.c  */
    7072 #line 1508 "parser.yy"
    7073     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     6302#line 1508 "parser.yy" /* yacc.c:1646  */
     6303    { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
     6304#line 6305 "Parser/parser.cc" /* yacc.c:1646  */
    70746305    break;
    70756306
    70766307  case 379:
    7077 
    7078 /* Line 1806 of yacc.c  */
    7079 #line 1513 "parser.yy"
    7080     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6308#line 1513 "parser.yy" /* yacc.c:1646  */
     6309    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6310#line 6311 "Parser/parser.cc" /* yacc.c:1646  */
    70816311    break;
    70826312
    70836313  case 380:
    7084 
    7085 /* Line 1806 of yacc.c  */
    7086 #line 1515 "parser.yy"
    7087     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     6314#line 1515 "parser.yy" /* yacc.c:1646  */
     6315    { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
     6316#line 6317 "Parser/parser.cc" /* yacc.c:1646  */
    70886317    break;
    70896318
    70906319  case 381:
    7091 
    7092 /* Line 1806 of yacc.c  */
    7093 #line 1520 "parser.yy"
     6320#line 1520 "parser.yy" /* yacc.c:1646  */
    70946321    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     6322#line 6323 "Parser/parser.cc" /* yacc.c:1646  */
    70956323    break;
    70966324
    70976325  case 382:
    7098 
    7099 /* Line 1806 of yacc.c  */
    7100 #line 1522 "parser.yy"
    7101     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     6326#line 1522 "parser.yy" /* yacc.c:1646  */
     6327    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
     6328#line 6329 "Parser/parser.cc" /* yacc.c:1646  */
    71026329    break;
    71036330
    71046331  case 383:
    7105 
    7106 /* Line 1806 of yacc.c  */
    7107 #line 1525 "parser.yy"
    7108     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6332#line 1525 "parser.yy" /* yacc.c:1646  */
     6333    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
     6334#line 6335 "Parser/parser.cc" /* yacc.c:1646  */
    71096335    break;
    71106336
    71116337  case 384:
    7112 
    7113 /* Line 1806 of yacc.c  */
    7114 #line 1528 "parser.yy"
    7115     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6338#line 1528 "parser.yy" /* yacc.c:1646  */
     6339    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
     6340#line 6341 "Parser/parser.cc" /* yacc.c:1646  */
    71166341    break;
    71176342
    71186343  case 386:
    7119 
    7120 /* Line 1806 of yacc.c  */
    7121 #line 1534 "parser.yy"
     6344#line 1534 "parser.yy" /* yacc.c:1646  */
    71226345    { (yyval.en) = 0; }
     6346#line 6347 "Parser/parser.cc" /* yacc.c:1646  */
    71236347    break;
    71246348
    71256349  case 387:
    7126 
    7127 /* Line 1806 of yacc.c  */
    7128 #line 1536 "parser.yy"
    7129     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     6350#line 1536 "parser.yy" /* yacc.c:1646  */
     6351    { (yyval.en) = (yyvsp[0].en); }
     6352#line 6353 "Parser/parser.cc" /* yacc.c:1646  */
    71306353    break;
    71316354
    71326355  case 388:
    7133 
    7134 /* Line 1806 of yacc.c  */
    7135 #line 1541 "parser.yy"
    7136     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6356#line 1541 "parser.yy" /* yacc.c:1646  */
     6357    { (yyval.en) = (yyvsp[0].en); }
     6358#line 6359 "Parser/parser.cc" /* yacc.c:1646  */
    71376359    break;
    71386360
    71396361  case 390:
    7140 
    7141 /* Line 1806 of yacc.c  */
    7142 #line 1550 "parser.yy"
    7143     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     6362#line 1550 "parser.yy" /* yacc.c:1646  */
     6363    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); }
     6364#line 6365 "Parser/parser.cc" /* yacc.c:1646  */
    71446365    break;
    71456366
    71466367  case 391:
    7147 
    7148 /* Line 1806 of yacc.c  */
    7149 #line 1552 "parser.yy"
    7150     {
    7151                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    7152                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
     6368#line 1552 "parser.yy" /* yacc.c:1646  */
     6369    {
     6370                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6371                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
    71536372                }
     6373#line 6374 "Parser/parser.cc" /* yacc.c:1646  */
    71546374    break;
    71556375
    71566376  case 392:
    7157 
    7158 /* Line 1806 of yacc.c  */
    7159 #line 1557 "parser.yy"
    7160     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6377#line 1557 "parser.yy" /* yacc.c:1646  */
     6378    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6379#line 6380 "Parser/parser.cc" /* yacc.c:1646  */
    71616380    break;
    71626381
    71636382  case 393:
    7164 
    7165 /* Line 1806 of yacc.c  */
    7166 #line 1559 "parser.yy"
    7167     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     6383#line 1559 "parser.yy" /* yacc.c:1646  */
     6384    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
     6385#line 6386 "Parser/parser.cc" /* yacc.c:1646  */
    71686386    break;
    71696387
    71706388  case 394:
    7171 
    7172 /* Line 1806 of yacc.c  */
    7173 #line 1564 "parser.yy"
    7174     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     6389#line 1564 "parser.yy" /* yacc.c:1646  */
     6390    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
     6391#line 6392 "Parser/parser.cc" /* yacc.c:1646  */
    71756392    break;
    71766393
    71776394  case 395:
    7178 
    7179 /* Line 1806 of yacc.c  */
    7180 #line 1566 "parser.yy"
    7181     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     6395#line 1566 "parser.yy" /* yacc.c:1646  */
     6396    { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
     6397#line 6398 "Parser/parser.cc" /* yacc.c:1646  */
    71826398    break;
    71836399
    71846400  case 396:
    7185 
    7186 /* Line 1806 of yacc.c  */
    7187 #line 1571 "parser.yy"
     6401#line 1571 "parser.yy" /* yacc.c:1646  */
    71886402    { (yyval.en) = 0; }
     6403#line 6404 "Parser/parser.cc" /* yacc.c:1646  */
    71896404    break;
    71906405
    71916406  case 397:
    7192 
    7193 /* Line 1806 of yacc.c  */
    7194 #line 1573 "parser.yy"
    7195     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6407#line 1573 "parser.yy" /* yacc.c:1646  */
     6408    { (yyval.en) = (yyvsp[0].en); }
     6409#line 6410 "Parser/parser.cc" /* yacc.c:1646  */
    71966410    break;
    71976411
    71986412  case 398:
    7199 
    7200 /* Line 1806 of yacc.c  */
    7201 #line 1580 "parser.yy"
     6413#line 1580 "parser.yy" /* yacc.c:1646  */
    72026414    { (yyval.decl) = 0; }
     6415#line 6416 "Parser/parser.cc" /* yacc.c:1646  */
    72036416    break;
    72046417
    72056418  case 402:
    7206 
    7207 /* Line 1806 of yacc.c  */
    7208 #line 1588 "parser.yy"
    7209     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6419#line 1588 "parser.yy" /* yacc.c:1646  */
     6420    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6421#line 6422 "Parser/parser.cc" /* yacc.c:1646  */
    72106422    break;
    72116423
    72126424  case 403:
    7213 
    7214 /* Line 1806 of yacc.c  */
    7215 #line 1590 "parser.yy"
    7216     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6425#line 1590 "parser.yy" /* yacc.c:1646  */
     6426    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6427#line 6428 "Parser/parser.cc" /* yacc.c:1646  */
    72176428    break;
    72186429
    72196430  case 404:
    7220 
    7221 /* Line 1806 of yacc.c  */
    7222 #line 1592 "parser.yy"
    7223     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6431#line 1592 "parser.yy" /* yacc.c:1646  */
     6432    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6433#line 6434 "Parser/parser.cc" /* yacc.c:1646  */
    72246434    break;
    72256435
    72266436  case 406:
    7227 
    7228 /* Line 1806 of yacc.c  */
    7229 #line 1600 "parser.yy"
    7230     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6437#line 1600 "parser.yy" /* yacc.c:1646  */
     6438    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6439#line 6440 "Parser/parser.cc" /* yacc.c:1646  */
    72316440    break;
    72326441
    72336442  case 407:
    7234 
    7235 /* Line 1806 of yacc.c  */
    7236 #line 1602 "parser.yy"
    7237     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6443#line 1602 "parser.yy" /* yacc.c:1646  */
     6444    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6445#line 6446 "Parser/parser.cc" /* yacc.c:1646  */
    72386446    break;
    72396447
    72406448  case 408:
    7241 
    7242 /* Line 1806 of yacc.c  */
    7243 #line 1604 "parser.yy"
    7244     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     6449#line 1604 "parser.yy" /* yacc.c:1646  */
     6450    { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
     6451#line 6452 "Parser/parser.cc" /* yacc.c:1646  */
    72456452    break;
    72466453
    72476454  case 410:
    7248 
    7249 /* Line 1806 of yacc.c  */
    7250 #line 1610 "parser.yy"
    7251     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6455#line 1610 "parser.yy" /* yacc.c:1646  */
     6456    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6457#line 6458 "Parser/parser.cc" /* yacc.c:1646  */
    72526458    break;
    72536459
    72546460  case 411:
    7255 
    7256 /* Line 1806 of yacc.c  */
    7257 #line 1615 "parser.yy"
     6461#line 1615 "parser.yy" /* yacc.c:1646  */
    72586462    { (yyval.decl) = 0; }
     6463#line 6464 "Parser/parser.cc" /* yacc.c:1646  */
    72596464    break;
    72606465
    72616466  case 414:
    7262 
    7263 /* Line 1806 of yacc.c  */
    7264 #line 1622 "parser.yy"
    7265     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6467#line 1622 "parser.yy" /* yacc.c:1646  */
     6468    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6469#line 6470 "Parser/parser.cc" /* yacc.c:1646  */
    72666470    break;
    72676471
    72686472  case 417:
    7269 
    7270 /* Line 1806 of yacc.c  */
    7271 #line 1629 "parser.yy"
    7272     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6473#line 1629 "parser.yy" /* yacc.c:1646  */
     6474    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6475#line 6476 "Parser/parser.cc" /* yacc.c:1646  */
    72736476    break;
    72746477
    72756478  case 418:
    7276 
    7277 /* Line 1806 of yacc.c  */
    7278 #line 1631 "parser.yy"
    7279     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6479#line 1631 "parser.yy" /* yacc.c:1646  */
     6480    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6481#line 6482 "Parser/parser.cc" /* yacc.c:1646  */
    72806482    break;
    72816483
    72826484  case 420:
    7283 
    7284 /* Line 1806 of yacc.c  */
    7285 #line 1640 "parser.yy"
    7286     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     6485#line 1640 "parser.yy" /* yacc.c:1646  */
     6486    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
     6487#line 6488 "Parser/parser.cc" /* yacc.c:1646  */
    72876488    break;
    72886489
    72896490  case 421:
    7290 
    7291 /* Line 1806 of yacc.c  */
    7292 #line 1643 "parser.yy"
    7293     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     6491#line 1643 "parser.yy" /* yacc.c:1646  */
     6492    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
     6493#line 6494 "Parser/parser.cc" /* yacc.c:1646  */
    72946494    break;
    72956495
    72966496  case 422:
    7297 
    7298 /* Line 1806 of yacc.c  */
    7299 #line 1645 "parser.yy"
    7300     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     6497#line 1645 "parser.yy" /* yacc.c:1646  */
     6498    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
     6499#line 6500 "Parser/parser.cc" /* yacc.c:1646  */
    73016500    break;
    73026501
    73036502  case 427:
    7304 
    7305 /* Line 1806 of yacc.c  */
    7306 #line 1655 "parser.yy"
    7307     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6503#line 1655 "parser.yy" /* yacc.c:1646  */
     6504    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6505#line 6506 "Parser/parser.cc" /* yacc.c:1646  */
    73086506    break;
    73096507
    73106508  case 429:
    7311 
    7312 /* Line 1806 of yacc.c  */
    7313 #line 1661 "parser.yy"
     6509#line 1661 "parser.yy" /* yacc.c:1646  */
    73146510    {
    73156511                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7316                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6512                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73176513                }
     6514#line 6515 "Parser/parser.cc" /* yacc.c:1646  */
    73186515    break;
    73196516
    73206517  case 430:
    7321 
    7322 /* Line 1806 of yacc.c  */
    7323 #line 1666 "parser.yy"
     6518#line 1666 "parser.yy" /* yacc.c:1646  */
    73246519    {
    73256520                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7326                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6521                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73276522                }
     6523#line 6524 "Parser/parser.cc" /* yacc.c:1646  */
    73286524    break;
    73296525
    73306526  case 432:
    7331 
    7332 /* Line 1806 of yacc.c  */
    7333 #line 1675 "parser.yy"
    7334     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6527#line 1675 "parser.yy" /* yacc.c:1646  */
     6528    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6529#line 6530 "Parser/parser.cc" /* yacc.c:1646  */
    73356530    break;
    73366531
    73376532  case 433:
    7338 
    7339 /* Line 1806 of yacc.c  */
    7340 #line 1684 "parser.yy"
    7341     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     6533#line 1684 "parser.yy" /* yacc.c:1646  */
     6534    { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
     6535#line 6536 "Parser/parser.cc" /* yacc.c:1646  */
    73426536    break;
    73436537
    73446538  case 434:
    7345 
    7346 /* Line 1806 of yacc.c  */
    7347 #line 1686 "parser.yy"
    7348     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     6539#line 1686 "parser.yy" /* yacc.c:1646  */
     6540    { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
     6541#line 6542 "Parser/parser.cc" /* yacc.c:1646  */
    73496542    break;
    73506543
    73516544  case 446:
    7352 
    7353 /* Line 1806 of yacc.c  */
    7354 #line 1711 "parser.yy"
    7355     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6545#line 1711 "parser.yy" /* yacc.c:1646  */
     6546    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6547#line 6548 "Parser/parser.cc" /* yacc.c:1646  */
    73566548    break;
    73576549
    73586550  case 450:
    7359 
    7360 /* Line 1806 of yacc.c  */
    7361 #line 1719 "parser.yy"
    7362     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6551#line 1719 "parser.yy" /* yacc.c:1646  */
     6552    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6553#line 6554 "Parser/parser.cc" /* yacc.c:1646  */
    73636554    break;
    73646555
    73656556  case 451:
    7366 
    7367 /* Line 1806 of yacc.c  */
    7368 #line 1724 "parser.yy"
     6557#line 1724 "parser.yy" /* yacc.c:1646  */
    73696558    { (yyval.in) = 0; }
     6559#line 6560 "Parser/parser.cc" /* yacc.c:1646  */
    73706560    break;
    73716561
    73726562  case 452:
    7373 
    7374 /* Line 1806 of yacc.c  */
    7375 #line 1726 "parser.yy"
    7376     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     6563#line 1726 "parser.yy" /* yacc.c:1646  */
     6564    { (yyval.in) = (yyvsp[0].in); }
     6565#line 6566 "Parser/parser.cc" /* yacc.c:1646  */
    73776566    break;
    73786567
    73796568  case 453:
    7380 
    7381 /* Line 1806 of yacc.c  */
    7382 #line 1728 "parser.yy"
    7383     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     6569#line 1728 "parser.yy" /* yacc.c:1646  */
     6570    { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
     6571#line 6572 "Parser/parser.cc" /* yacc.c:1646  */
    73846572    break;
    73856573
    73866574  case 454:
    7387 
    7388 /* Line 1806 of yacc.c  */
    7389 #line 1732 "parser.yy"
    7390     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     6575#line 1732 "parser.yy" /* yacc.c:1646  */
     6576    { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
     6577#line 6578 "Parser/parser.cc" /* yacc.c:1646  */
    73916578    break;
    73926579
    73936580  case 455:
    7394 
    7395 /* Line 1806 of yacc.c  */
    7396 #line 1733 "parser.yy"
    7397     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     6581#line 1733 "parser.yy" /* yacc.c:1646  */
     6582    { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
     6583#line 6584 "Parser/parser.cc" /* yacc.c:1646  */
    73986584    break;
    73996585
    74006586  case 456:
    7401 
    7402 /* Line 1806 of yacc.c  */
    7403 #line 1738 "parser.yy"
     6587#line 1738 "parser.yy" /* yacc.c:1646  */
    74046588    { (yyval.in) = 0; }
     6589#line 6590 "Parser/parser.cc" /* yacc.c:1646  */
    74056590    break;
    74066591
    74076592  case 458:
    7408 
    7409 /* Line 1806 of yacc.c  */
    7410 #line 1740 "parser.yy"
    7411     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     6593#line 1740 "parser.yy" /* yacc.c:1646  */
     6594    { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
     6595#line 6596 "Parser/parser.cc" /* yacc.c:1646  */
    74126596    break;
    74136597
    74146598  case 459:
    7415 
    7416 /* Line 1806 of yacc.c  */
    7417 #line 1741 "parser.yy"
    7418     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     6599#line 1741 "parser.yy" /* yacc.c:1646  */
     6600    { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
     6601#line 6602 "Parser/parser.cc" /* yacc.c:1646  */
    74196602    break;
    74206603
    74216604  case 460:
    7422 
    7423 /* Line 1806 of yacc.c  */
    7424 #line 1743 "parser.yy"
    7425     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     6605#line 1743 "parser.yy" /* yacc.c:1646  */
     6606    { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
     6607#line 6608 "Parser/parser.cc" /* yacc.c:1646  */
    74266608    break;
    74276609
    74286610  case 462:
    7429 
    7430 /* Line 1806 of yacc.c  */
    7431 #line 1759 "parser.yy"
    7432     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     6611#line 1759 "parser.yy" /* yacc.c:1646  */
     6612    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
     6613#line 6614 "Parser/parser.cc" /* yacc.c:1646  */
    74336614    break;
    74346615
    74356616  case 464:
    7436 
    7437 /* Line 1806 of yacc.c  */
    7438 #line 1765 "parser.yy"
    7439     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     6617#line 1765 "parser.yy" /* yacc.c:1646  */
     6618    { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
     6619#line 6620 "Parser/parser.cc" /* yacc.c:1646  */
    74406620    break;
    74416621
    74426622  case 465:
    7443 
    7444 /* Line 1806 of yacc.c  */
    7445 #line 1771 "parser.yy"
    7446     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     6623#line 1771 "parser.yy" /* yacc.c:1646  */
     6624    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     6625#line 6626 "Parser/parser.cc" /* yacc.c:1646  */
    74476626    break;
    74486627
    74496628  case 466:
    7450 
    7451 /* Line 1806 of yacc.c  */
    7452 #line 1774 "parser.yy"
    7453     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6629#line 1774 "parser.yy" /* yacc.c:1646  */
     6630    { (yyval.en) = (yyvsp[-2].en); }
     6631#line 6632 "Parser/parser.cc" /* yacc.c:1646  */
    74546632    break;
    74556633
    74566634  case 467:
    7457 
    7458 /* Line 1806 of yacc.c  */
    7459 #line 1776 "parser.yy"
    7460     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6635#line 1776 "parser.yy" /* yacc.c:1646  */
     6636    { (yyval.en) = (yyvsp[-2].en); }
     6637#line 6638 "Parser/parser.cc" /* yacc.c:1646  */
    74616638    break;
    74626639
    74636640  case 468:
    7464 
    7465 /* Line 1806 of yacc.c  */
    7466 #line 1778 "parser.yy"
    7467     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     6641#line 1778 "parser.yy" /* yacc.c:1646  */
     6642    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     6643#line 6644 "Parser/parser.cc" /* yacc.c:1646  */
    74686644    break;
    74696645
    74706646  case 469:
    7471 
    7472 /* Line 1806 of yacc.c  */
    7473 #line 1780 "parser.yy"
    7474     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     6647#line 1780 "parser.yy" /* yacc.c:1646  */
     6648    { (yyval.en) = (yyvsp[-2].en); }
     6649#line 6650 "Parser/parser.cc" /* yacc.c:1646  */
    74756650    break;
    74766651
    74776652  case 471:
    7478 
    7479 /* Line 1806 of yacc.c  */
    7480 #line 1804 "parser.yy"
    7481     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6653#line 1804 "parser.yy" /* yacc.c:1646  */
     6654    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6655#line 6656 "Parser/parser.cc" /* yacc.c:1646  */
    74826656    break;
    74836657
    74846658  case 472:
    7485 
    7486 /* Line 1806 of yacc.c  */
    7487 #line 1806 "parser.yy"
    7488     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6659#line 1806 "parser.yy" /* yacc.c:1646  */
     6660    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6661#line 6662 "Parser/parser.cc" /* yacc.c:1646  */
    74896662    break;
    74906663
    74916664  case 473:
    7492 
    7493 /* Line 1806 of yacc.c  */
    7494 #line 1808 "parser.yy"
    7495     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6665#line 1808 "parser.yy" /* yacc.c:1646  */
     6666    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6667#line 6668 "Parser/parser.cc" /* yacc.c:1646  */
    74966668    break;
    74976669
    74986670  case 475:
    7499 
    7500 /* Line 1806 of yacc.c  */
    7501 #line 1814 "parser.yy"
    7502     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6671#line 1814 "parser.yy" /* yacc.c:1646  */
     6672    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6673#line 6674 "Parser/parser.cc" /* yacc.c:1646  */
    75036674    break;
    75046675
    75056676  case 476:
    7506 
    7507 /* Line 1806 of yacc.c  */
    7508 #line 1816 "parser.yy"
    7509     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6677#line 1816 "parser.yy" /* yacc.c:1646  */
     6678    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6679#line 6680 "Parser/parser.cc" /* yacc.c:1646  */
    75106680    break;
    75116681
    75126682  case 477:
    7513 
    7514 /* Line 1806 of yacc.c  */
    7515 #line 1821 "parser.yy"
    7516     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6683#line 1821 "parser.yy" /* yacc.c:1646  */
     6684    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6685#line 6686 "Parser/parser.cc" /* yacc.c:1646  */
    75176686    break;
    75186687
    75196688  case 479:
    7520 
    7521 /* Line 1806 of yacc.c  */
    7522 #line 1827 "parser.yy"
    7523     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     6689#line 1827 "parser.yy" /* yacc.c:1646  */
     6690    { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
     6691#line 6692 "Parser/parser.cc" /* yacc.c:1646  */
    75246692    break;
    75256693
    75266694  case 480:
    7527 
    7528 /* Line 1806 of yacc.c  */
    7529 #line 1832 "parser.yy"
    7530     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     6695#line 1832 "parser.yy" /* yacc.c:1646  */
     6696    { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
     6697#line 6698 "Parser/parser.cc" /* yacc.c:1646  */
    75316698    break;
    75326699
    75336700  case 481:
    7534 
    7535 /* Line 1806 of yacc.c  */
    7536 #line 1834 "parser.yy"
    7537     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     6701#line 1834 "parser.yy" /* yacc.c:1646  */
     6702    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
     6703#line 6704 "Parser/parser.cc" /* yacc.c:1646  */
    75386704    break;
    75396705
    75406706  case 483:
    7541 
    7542 /* Line 1806 of yacc.c  */
    7543 #line 1840 "parser.yy"
     6707#line 1840 "parser.yy" /* yacc.c:1646  */
    75446708    { (yyval.tclass) = DeclarationNode::Type; }
     6709#line 6710 "Parser/parser.cc" /* yacc.c:1646  */
    75456710    break;
    75466711
    75476712  case 484:
    7548 
    7549 /* Line 1806 of yacc.c  */
    7550 #line 1842 "parser.yy"
     6713#line 1842 "parser.yy" /* yacc.c:1646  */
    75516714    { (yyval.tclass) = DeclarationNode::Ftype; }
     6715#line 6716 "Parser/parser.cc" /* yacc.c:1646  */
    75526716    break;
    75536717
    75546718  case 485:
    7555 
    7556 /* Line 1806 of yacc.c  */
    7557 #line 1844 "parser.yy"
     6719#line 1844 "parser.yy" /* yacc.c:1646  */
    75586720    { (yyval.tclass) = DeclarationNode::Dtype; }
     6721#line 6722 "Parser/parser.cc" /* yacc.c:1646  */
    75596722    break;
    75606723
    75616724  case 486:
    7562 
    7563 /* Line 1806 of yacc.c  */
    7564 #line 1849 "parser.yy"
     6725#line 1849 "parser.yy" /* yacc.c:1646  */
    75656726    { (yyval.decl) = 0; }
     6727#line 6728 "Parser/parser.cc" /* yacc.c:1646  */
    75666728    break;
    75676729
    75686730  case 487:
    7569 
    7570 /* Line 1806 of yacc.c  */
    7571 #line 1851 "parser.yy"
    7572     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     6731#line 1851 "parser.yy" /* yacc.c:1646  */
     6732    { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6733#line 6734 "Parser/parser.cc" /* yacc.c:1646  */
    75736734    break;
    75746735
    75756736  case 488:
    7576 
    7577 /* Line 1806 of yacc.c  */
    7578 #line 1856 "parser.yy"
    7579     {
    7580                         typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
    7581                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     6737#line 1856 "parser.yy" /* yacc.c:1646  */
     6738    {
     6739                        typedefTable.openTrait( *(yyvsp[-3].tok) );
     6740                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
    75826741                }
     6742#line 6743 "Parser/parser.cc" /* yacc.c:1646  */
    75836743    break;
    75846744
    75856745  case 489:
    7586 
    7587 /* Line 1806 of yacc.c  */
    7588 #line 1861 "parser.yy"
    7589     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     6746#line 1861 "parser.yy" /* yacc.c:1646  */
     6747    { (yyval.decl) = (yyvsp[-1].decl); }
     6748#line 6749 "Parser/parser.cc" /* yacc.c:1646  */
    75906749    break;
    75916750
    75926751  case 490:
    7593 
    7594 /* Line 1806 of yacc.c  */
    7595 #line 1863 "parser.yy"
     6752#line 1863 "parser.yy" /* yacc.c:1646  */
    75966753    { (yyval.decl) = 0; }
     6754#line 6755 "Parser/parser.cc" /* yacc.c:1646  */
    75976755    break;
    75986756
    75996757  case 491:
    7600 
    7601 /* Line 1806 of yacc.c  */
    7602 #line 1868 "parser.yy"
    7603     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     6758#line 1868 "parser.yy" /* yacc.c:1646  */
     6759    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
     6760#line 6761 "Parser/parser.cc" /* yacc.c:1646  */
    76046761    break;
    76056762
    76066763  case 493:
    7607 
    7608 /* Line 1806 of yacc.c  */
    7609 #line 1871 "parser.yy"
    7610     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     6764#line 1871 "parser.yy" /* yacc.c:1646  */
     6765    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
     6766#line 6767 "Parser/parser.cc" /* yacc.c:1646  */
    76116767    break;
    76126768
    76136769  case 494:
    7614 
    7615 /* Line 1806 of yacc.c  */
    7616 #line 1873 "parser.yy"
    7617     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     6770#line 1873 "parser.yy" /* yacc.c:1646  */
     6771    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
     6772#line 6773 "Parser/parser.cc" /* yacc.c:1646  */
    76186773    break;
    76196774
    76206775  case 495:
    7621 
    7622 /* Line 1806 of yacc.c  */
    7623 #line 1878 "parser.yy"
    7624     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6776#line 1878 "parser.yy" /* yacc.c:1646  */
     6777    { (yyval.decl) = (yyvsp[0].decl); }
     6778#line 6779 "Parser/parser.cc" /* yacc.c:1646  */
    76256779    break;
    76266780
    76276781  case 496:
    7628 
    7629 /* Line 1806 of yacc.c  */
    7630 #line 1880 "parser.yy"
    7631     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     6782#line 1880 "parser.yy" /* yacc.c:1646  */
     6783    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
     6784#line 6785 "Parser/parser.cc" /* yacc.c:1646  */
    76326785    break;
    76336786
    76346787  case 497:
    7635 
    7636 /* Line 1806 of yacc.c  */
    7637 #line 1882 "parser.yy"
    7638     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     6788#line 1882 "parser.yy" /* yacc.c:1646  */
     6789    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
     6790#line 6791 "Parser/parser.cc" /* yacc.c:1646  */
    76396791    break;
    76406792
    76416793  case 498:
    7642 
    7643 /* Line 1806 of yacc.c  */
    7644 #line 1887 "parser.yy"
    7645     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     6794#line 1887 "parser.yy" /* yacc.c:1646  */
     6795    { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
     6796#line 6797 "Parser/parser.cc" /* yacc.c:1646  */
    76466797    break;
    76476798
    76486799  case 499:
    7649 
    7650 /* Line 1806 of yacc.c  */
    7651 #line 1889 "parser.yy"
    7652     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     6800#line 1889 "parser.yy" /* yacc.c:1646  */
     6801    { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
     6802#line 6803 "Parser/parser.cc" /* yacc.c:1646  */
    76536803    break;
    76546804
    76556805  case 500:
    7656 
    7657 /* Line 1806 of yacc.c  */
    7658 #line 1894 "parser.yy"
    7659     {
    7660                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
    7661                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
     6806#line 1894 "parser.yy" /* yacc.c:1646  */
     6807    {
     6808                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     6809                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
    76626810                }
     6811#line 6812 "Parser/parser.cc" /* yacc.c:1646  */
    76636812    break;
    76646813
    76656814  case 501:
    7666 
    7667 /* Line 1806 of yacc.c  */
    7668 #line 1899 "parser.yy"
    7669     {
    7670                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
    7671                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
     6815#line 1899 "parser.yy" /* yacc.c:1646  */
     6816    {
     6817                        typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
     6818                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
    76726819                }
     6820#line 6821 "Parser/parser.cc" /* yacc.c:1646  */
    76736821    break;
    76746822
    76756823  case 502:
    7676 
    7677 /* Line 1806 of yacc.c  */
    7678 #line 1907 "parser.yy"
    7679     {
    7680                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7681                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
     6824#line 1907 "parser.yy" /* yacc.c:1646  */
     6825    {
     6826                        typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
     6827                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
    76826828                }
     6829#line 6830 "Parser/parser.cc" /* yacc.c:1646  */
    76836830    break;
    76846831
    76856832  case 503:
    7686 
    7687 /* Line 1806 of yacc.c  */
    7688 #line 1912 "parser.yy"
    7689     {
    7690                         typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     6833#line 1912 "parser.yy" /* yacc.c:1646  */
     6834    {
     6835                        typedefTable.enterTrait( *(yyvsp[-6].tok) );
    76916836                        typedefTable.enterScope();
    76926837                }
     6838#line 6839 "Parser/parser.cc" /* yacc.c:1646  */
    76936839    break;
    76946840
    76956841  case 504:
    7696 
    7697 /* Line 1806 of yacc.c  */
    7698 #line 1917 "parser.yy"
     6842#line 1917 "parser.yy" /* yacc.c:1646  */
    76996843    {
    77006844                        typedefTable.leaveTrait();
    7701                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
    7702                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
     6845                        typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
     6846                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
    77036847                }
     6848#line 6849 "Parser/parser.cc" /* yacc.c:1646  */
    77046849    break;
    77056850
    77066851  case 506:
    7707 
    7708 /* Line 1806 of yacc.c  */
    7709 #line 1927 "parser.yy"
    7710     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6852#line 1927 "parser.yy" /* yacc.c:1646  */
     6853    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     6854#line 6855 "Parser/parser.cc" /* yacc.c:1646  */
    77116855    break;
    77126856
    77136857  case 509:
    7714 
    7715 /* Line 1806 of yacc.c  */
    7716 #line 1937 "parser.yy"
     6858#line 1937 "parser.yy" /* yacc.c:1646  */
    77176859    {
    77186860                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7719                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6861                        (yyval.decl) = (yyvsp[0].decl);
    77206862                }
     6863#line 6864 "Parser/parser.cc" /* yacc.c:1646  */
    77216864    break;
    77226865
    77236866  case 510:
    7724 
    7725 /* Line 1806 of yacc.c  */
    7726 #line 1942 "parser.yy"
     6867#line 1942 "parser.yy" /* yacc.c:1646  */
    77276868    {
    77286869                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7729                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6870                        (yyval.decl) = (yyvsp[0].decl);
    77306871                }
     6872#line 6873 "Parser/parser.cc" /* yacc.c:1646  */
    77316873    break;
    77326874
    77336875  case 511:
    7734 
    7735 /* Line 1806 of yacc.c  */
    7736 #line 1947 "parser.yy"
    7737     {
    7738                         typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    7739                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     6876#line 1947 "parser.yy" /* yacc.c:1646  */
     6877    {
     6878                        typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
     6879                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    77406880                }
     6881#line 6882 "Parser/parser.cc" /* yacc.c:1646  */
    77416882    break;
    77426883
    77436884  case 512:
    7744 
    7745 /* Line 1806 of yacc.c  */
    7746 #line 1955 "parser.yy"
     6885#line 1955 "parser.yy" /* yacc.c:1646  */
    77476886    {
    77486887                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7749                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     6888                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    77506889                }
     6890#line 6891 "Parser/parser.cc" /* yacc.c:1646  */
    77516891    break;
    77526892
    77536893  case 513:
    7754 
    7755 /* Line 1806 of yacc.c  */
    7756 #line 1960 "parser.yy"
     6894#line 1960 "parser.yy" /* yacc.c:1646  */
    77576895    {
    77586896                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7759                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
     6897                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
    77606898                }
     6899#line 6900 "Parser/parser.cc" /* yacc.c:1646  */
    77616900    break;
    77626901
    77636902  case 514:
    7764 
    7765 /* Line 1806 of yacc.c  */
    7766 #line 1970 "parser.yy"
     6903#line 1970 "parser.yy" /* yacc.c:1646  */
    77676904    {}
     6905#line 6906 "Parser/parser.cc" /* yacc.c:1646  */
    77686906    break;
    77696907
    77706908  case 515:
    7771 
    7772 /* Line 1806 of yacc.c  */
    7773 #line 1972 "parser.yy"
    7774     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     6909#line 1972 "parser.yy" /* yacc.c:1646  */
     6910    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);    }
     6911#line 6912 "Parser/parser.cc" /* yacc.c:1646  */
    77756912    break;
    77766913
    77776914  case 517:
    7778 
    7779 /* Line 1806 of yacc.c  */
    7780 #line 1978 "parser.yy"
    7781     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     6915#line 1978 "parser.yy" /* yacc.c:1646  */
     6916    { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6917#line 6918 "Parser/parser.cc" /* yacc.c:1646  */
    77826918    break;
    77836919
    77846920  case 518:
    7785 
    7786 /* Line 1806 of yacc.c  */
    7787 #line 1983 "parser.yy"
     6921#line 1983 "parser.yy" /* yacc.c:1646  */
    77886922    { (yyval.decl) = 0; }
     6923#line 6924 "Parser/parser.cc" /* yacc.c:1646  */
    77896924    break;
    77906925
    77916926  case 522:
    7792 
    7793 /* Line 1806 of yacc.c  */
    7794 #line 1991 "parser.yy"
     6927#line 1991 "parser.yy" /* yacc.c:1646  */
    77956928    {}
     6929#line 6930 "Parser/parser.cc" /* yacc.c:1646  */
    77966930    break;
    77976931
    77986932  case 523:
    7799 
    7800 /* Line 1806 of yacc.c  */
    7801 #line 1993 "parser.yy"
     6933#line 1993 "parser.yy" /* yacc.c:1646  */
    78026934    {
    78036935                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7804                         linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
     6936                        linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) );
    78056937                }
     6938#line 6939 "Parser/parser.cc" /* yacc.c:1646  */
    78066939    break;
    78076940
    78086941  case 524:
    7809 
    7810 /* Line 1806 of yacc.c  */
    7811 #line 1998 "parser.yy"
     6942#line 1998 "parser.yy" /* yacc.c:1646  */
    78126943    {
    78136944                        linkage = linkageStack.top();
    78146945                        linkageStack.pop();
    7815                         (yyval.decl) = (yyvsp[(5) - (6)].decl);
     6946                        (yyval.decl) = (yyvsp[-1].decl);
    78166947                }
     6948#line 6949 "Parser/parser.cc" /* yacc.c:1646  */
    78176949    break;
    78186950
    78196951  case 525:
    7820 
    7821 /* Line 1806 of yacc.c  */
    7822 #line 2004 "parser.yy"
     6952#line 2004 "parser.yy" /* yacc.c:1646  */
    78236953    {   // mark all fields in list
    7824                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6954                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    78256955                                iter->set_extension( true );
    7826                         (yyval.decl) = (yyvsp[(2) - (2)].decl);
     6956                        (yyval.decl) = (yyvsp[0].decl);
    78276957                }
     6958#line 6959 "Parser/parser.cc" /* yacc.c:1646  */
    78286959    break;
    78296960
    78306961  case 527:
    7831 
    7832 /* Line 1806 of yacc.c  */
    7833 #line 2019 "parser.yy"
     6962#line 2019 "parser.yy" /* yacc.c:1646  */
    78346963    {
    78356964                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78366965                        typedefTable.leaveScope();
    7837                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6966                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78386967                }
     6968#line 6969 "Parser/parser.cc" /* yacc.c:1646  */
    78396969    break;
    78406970
    78416971  case 528:
    7842 
    7843 /* Line 1806 of yacc.c  */
    7844 #line 2025 "parser.yy"
     6972#line 2025 "parser.yy" /* yacc.c:1646  */
    78456973    {
    78466974                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78476975                        typedefTable.leaveScope();
    7848                         (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
     6976                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
    78496977                }
     6978#line 6979 "Parser/parser.cc" /* yacc.c:1646  */
    78506979    break;
    78516980
    78526981  case 529:
    7853 
    7854 /* Line 1806 of yacc.c  */
    7855 #line 2034 "parser.yy"
     6982#line 2034 "parser.yy" /* yacc.c:1646  */
    78566983    {
    78576984                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78586985                        typedefTable.leaveScope();
    7859                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6986                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78606987                }
     6988#line 6989 "Parser/parser.cc" /* yacc.c:1646  */
    78616989    break;
    78626990
    78636991  case 530:
    7864 
    7865 /* Line 1806 of yacc.c  */
    7866 #line 2040 "parser.yy"
     6992#line 2040 "parser.yy" /* yacc.c:1646  */
    78676993    {
    78686994                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78696995                        typedefTable.leaveScope();
    7870                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
     6996                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
    78716997                }
     6998#line 6999 "Parser/parser.cc" /* yacc.c:1646  */
    78726999    break;
    78737000
    78747001  case 531:
    7875 
    7876 /* Line 1806 of yacc.c  */
    7877 #line 2046 "parser.yy"
     7002#line 2046 "parser.yy" /* yacc.c:1646  */
    78787003    {
    78797004                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78807005                        typedefTable.leaveScope();
    7881                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7006                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    78827007                }
     7008#line 7009 "Parser/parser.cc" /* yacc.c:1646  */
    78837009    break;
    78847010
    78857011  case 532:
    7886 
    7887 /* Line 1806 of yacc.c  */
    7888 #line 2052 "parser.yy"
     7012#line 2052 "parser.yy" /* yacc.c:1646  */
    78897013    {
    78907014                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78917015                        typedefTable.leaveScope();
    7892                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7016                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    78937017                }
     7018#line 7019 "Parser/parser.cc" /* yacc.c:1646  */
    78947019    break;
    78957020
    78967021  case 533:
    7897 
    7898 /* Line 1806 of yacc.c  */
    7899 #line 2058 "parser.yy"
     7022#line 2058 "parser.yy" /* yacc.c:1646  */
    79007023    {
    79017024                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79027025                        typedefTable.leaveScope();
    7903                         (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
     7026                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
    79047027                }
     7028#line 7029 "Parser/parser.cc" /* yacc.c:1646  */
    79057029    break;
    79067030
    79077031  case 534:
    7908 
    7909 /* Line 1806 of yacc.c  */
    7910 #line 2066 "parser.yy"
     7032#line 2066 "parser.yy" /* yacc.c:1646  */
    79117033    {
    79127034                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79137035                        typedefTable.leaveScope();
    7914                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
     7036                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
    79157037                }
     7038#line 7039 "Parser/parser.cc" /* yacc.c:1646  */
    79167039    break;
    79177040
    79187041  case 535:
    7919 
    7920 /* Line 1806 of yacc.c  */
    7921 #line 2072 "parser.yy"
     7042#line 2072 "parser.yy" /* yacc.c:1646  */
    79227043    {
    79237044                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79247045                        typedefTable.leaveScope();
    7925                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7046                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79267047                }
     7048#line 7049 "Parser/parser.cc" /* yacc.c:1646  */
    79277049    break;
    79287050
    79297051  case 536:
    7930 
    7931 /* Line 1806 of yacc.c  */
    7932 #line 2080 "parser.yy"
     7052#line 2080 "parser.yy" /* yacc.c:1646  */
    79337053    {
    79347054                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79357055                        typedefTable.leaveScope();
    7936                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7056                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79377057                }
     7058#line 7059 "Parser/parser.cc" /* yacc.c:1646  */
    79387059    break;
    79397060
    79407061  case 537:
    7941 
    7942 /* Line 1806 of yacc.c  */
    7943 #line 2086 "parser.yy"
     7062#line 2086 "parser.yy" /* yacc.c:1646  */
    79447063    {
    79457064                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79467065                        typedefTable.leaveScope();
    7947                         (yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) );
     7066                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
    79487067                }
     7068#line 7069 "Parser/parser.cc" /* yacc.c:1646  */
    79497069    break;
    79507070
    79517071  case 541:
    7952 
    7953 /* Line 1806 of yacc.c  */
    7954 #line 2101 "parser.yy"
    7955     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7072#line 2101 "parser.yy" /* yacc.c:1646  */
     7073    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     7074#line 7075 "Parser/parser.cc" /* yacc.c:1646  */
    79567075    break;
    79577076
    79587077  case 544:
    7959 
    7960 /* Line 1806 of yacc.c  */
    7961 #line 2111 "parser.yy"
     7078#line 2111 "parser.yy" /* yacc.c:1646  */
    79627079    { (yyval.decl) = 0; }
     7080#line 7081 "Parser/parser.cc" /* yacc.c:1646  */
    79637081    break;
    79647082
    79657083  case 547:
    7966 
    7967 /* Line 1806 of yacc.c  */
    7968 #line 2118 "parser.yy"
    7969     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7084#line 2118 "parser.yy" /* yacc.c:1646  */
     7085    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7086#line 7087 "Parser/parser.cc" /* yacc.c:1646  */
    79707087    break;
    79717088
    79727089  case 548:
    7973 
    7974 /* Line 1806 of yacc.c  */
    7975 #line 2124 "parser.yy"
     7090#line 2124 "parser.yy" /* yacc.c:1646  */
    79767091    { (yyval.decl) = 0; }
     7092#line 7093 "Parser/parser.cc" /* yacc.c:1646  */
    79777093    break;
    79787094
    79797095  case 554:
    7980 
    7981 /* Line 1806 of yacc.c  */
    7982 #line 2139 "parser.yy"
     7096#line 2139 "parser.yy" /* yacc.c:1646  */
    79837097    {}
     7098#line 7099 "Parser/parser.cc" /* yacc.c:1646  */
    79847099    break;
    79857100
    79867101  case 555:
    7987 
    7988 /* Line 1806 of yacc.c  */
    7989 #line 2140 "parser.yy"
     7102#line 2140 "parser.yy" /* yacc.c:1646  */
    79907103    {}
     7104#line 7105 "Parser/parser.cc" /* yacc.c:1646  */
    79917105    break;
    79927106
    79937107  case 556:
    7994 
    7995 /* Line 1806 of yacc.c  */
    7996 #line 2141 "parser.yy"
     7108#line 2141 "parser.yy" /* yacc.c:1646  */
    79977109    {}
     7110#line 7111 "Parser/parser.cc" /* yacc.c:1646  */
    79987111    break;
    79997112
    80007113  case 557:
    8001 
    8002 /* Line 1806 of yacc.c  */
    8003 #line 2142 "parser.yy"
     7114#line 2142 "parser.yy" /* yacc.c:1646  */
    80047115    {}
     7116#line 7117 "Parser/parser.cc" /* yacc.c:1646  */
    80057117    break;
    80067118
    80077119  case 558:
    8008 
    8009 /* Line 1806 of yacc.c  */
    8010 #line 2177 "parser.yy"
    8011     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7120#line 2177 "parser.yy" /* yacc.c:1646  */
     7121    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7122#line 7123 "Parser/parser.cc" /* yacc.c:1646  */
    80127123    break;
    80137124
    80147125  case 560:
    8015 
    8016 /* Line 1806 of yacc.c  */
    8017 #line 2180 "parser.yy"
    8018     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7126#line 2180 "parser.yy" /* yacc.c:1646  */
     7127    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7128#line 7129 "Parser/parser.cc" /* yacc.c:1646  */
    80197129    break;
    80207130
    80217131  case 561:
    8022 
    8023 /* Line 1806 of yacc.c  */
    8024 #line 2182 "parser.yy"
    8025     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7132#line 2182 "parser.yy" /* yacc.c:1646  */
     7133    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7134#line 7135 "Parser/parser.cc" /* yacc.c:1646  */
    80267135    break;
    80277136
    80287137  case 562:
    8029 
    8030 /* Line 1806 of yacc.c  */
    8031 #line 2187 "parser.yy"
    8032     {
    8033                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8034                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7138#line 2187 "parser.yy" /* yacc.c:1646  */
     7139    {
     7140                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7141                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    80357142                }
     7143#line 7144 "Parser/parser.cc" /* yacc.c:1646  */
    80367144    break;
    80377145
    80387146  case 563:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2192 "parser.yy"
    8042     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7147#line 2192 "parser.yy" /* yacc.c:1646  */
     7148    { (yyval.decl) = (yyvsp[-1].decl); }
     7149#line 7150 "Parser/parser.cc" /* yacc.c:1646  */
    80437150    break;
    80447151
    80457152  case 564:
    8046 
    8047 /* Line 1806 of yacc.c  */
    8048 #line 2197 "parser.yy"
    8049     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7153#line 2197 "parser.yy" /* yacc.c:1646  */
     7154    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7155#line 7156 "Parser/parser.cc" /* yacc.c:1646  */
    80507156    break;
    80517157
    80527158  case 565:
    8053 
    8054 /* Line 1806 of yacc.c  */
    8055 #line 2199 "parser.yy"
    8056     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7159#line 2199 "parser.yy" /* yacc.c:1646  */
     7160    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7161#line 7162 "Parser/parser.cc" /* yacc.c:1646  */
    80577162    break;
    80587163
    80597164  case 566:
    8060 
    8061 /* Line 1806 of yacc.c  */
    8062 #line 2201 "parser.yy"
    8063     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7165#line 2201 "parser.yy" /* yacc.c:1646  */
     7166    { (yyval.decl) = (yyvsp[-1].decl); }
     7167#line 7168 "Parser/parser.cc" /* yacc.c:1646  */
    80647168    break;
    80657169
    80667170  case 567:
    8067 
    8068 /* Line 1806 of yacc.c  */
    8069 #line 2206 "parser.yy"
    8070     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7171#line 2206 "parser.yy" /* yacc.c:1646  */
     7172    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7173#line 7174 "Parser/parser.cc" /* yacc.c:1646  */
    80717174    break;
    80727175
    80737176  case 568:
    8074 
    8075 /* Line 1806 of yacc.c  */
    8076 #line 2208 "parser.yy"
    8077     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7177#line 2208 "parser.yy" /* yacc.c:1646  */
     7178    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7179#line 7180 "Parser/parser.cc" /* yacc.c:1646  */
    80787180    break;
    80797181
    80807182  case 569:
    8081 
    8082 /* Line 1806 of yacc.c  */
    8083 #line 2210 "parser.yy"
    8084     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7183#line 2210 "parser.yy" /* yacc.c:1646  */
     7184    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7185#line 7186 "Parser/parser.cc" /* yacc.c:1646  */
    80857186    break;
    80867187
    80877188  case 570:
    8088 
    8089 /* Line 1806 of yacc.c  */
    8090 #line 2212 "parser.yy"
    8091     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7189#line 2212 "parser.yy" /* yacc.c:1646  */
     7190    { (yyval.decl) = (yyvsp[-1].decl); }
     7191#line 7192 "Parser/parser.cc" /* yacc.c:1646  */
    80927192    break;
    80937193
    80947194  case 571:
    8095 
    8096 /* Line 1806 of yacc.c  */
    8097 #line 2217 "parser.yy"
    8098     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7195#line 2217 "parser.yy" /* yacc.c:1646  */
     7196    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7197#line 7198 "Parser/parser.cc" /* yacc.c:1646  */
    80997198    break;
    81007199
    81017200  case 572:
    8102 
    8103 /* Line 1806 of yacc.c  */
    8104 #line 2219 "parser.yy"
    8105     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7201#line 2219 "parser.yy" /* yacc.c:1646  */
     7202    { (yyval.decl) = (yyvsp[-1].decl); }
     7203#line 7204 "Parser/parser.cc" /* yacc.c:1646  */
    81067204    break;
    81077205
    81087206  case 573:
    8109 
    8110 /* Line 1806 of yacc.c  */
    8111 #line 2228 "parser.yy"
    8112     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7207#line 2228 "parser.yy" /* yacc.c:1646  */
     7208    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7209#line 7210 "Parser/parser.cc" /* yacc.c:1646  */
    81137210    break;
    81147211
    81157212  case 575:
    8116 
    8117 /* Line 1806 of yacc.c  */
    8118 #line 2231 "parser.yy"
    8119     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7213#line 2231 "parser.yy" /* yacc.c:1646  */
     7214    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7215#line 7216 "Parser/parser.cc" /* yacc.c:1646  */
    81207216    break;
    81217217
    81227218  case 576:
    8123 
    8124 /* Line 1806 of yacc.c  */
    8125 #line 2236 "parser.yy"
    8126     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7219#line 2236 "parser.yy" /* yacc.c:1646  */
     7220    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7221#line 7222 "Parser/parser.cc" /* yacc.c:1646  */
    81277222    break;
    81287223
    81297224  case 577:
    8130 
    8131 /* Line 1806 of yacc.c  */
    8132 #line 2238 "parser.yy"
    8133     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7225#line 2238 "parser.yy" /* yacc.c:1646  */
     7226    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7227#line 7228 "Parser/parser.cc" /* yacc.c:1646  */
    81347228    break;
    81357229
    81367230  case 578:
    8137 
    8138 /* Line 1806 of yacc.c  */
    8139 #line 2240 "parser.yy"
    8140     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7231#line 2240 "parser.yy" /* yacc.c:1646  */
     7232    { (yyval.decl) = (yyvsp[-1].decl); }
     7233#line 7234 "Parser/parser.cc" /* yacc.c:1646  */
    81417234    break;
    81427235
    81437236  case 579:
    8144 
    8145 /* Line 1806 of yacc.c  */
    8146 #line 2245 "parser.yy"
    8147     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7237#line 2245 "parser.yy" /* yacc.c:1646  */
     7238    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7239#line 7240 "Parser/parser.cc" /* yacc.c:1646  */
    81487240    break;
    81497241
    81507242  case 580:
    8151 
    8152 /* Line 1806 of yacc.c  */
    8153 #line 2247 "parser.yy"
    8154     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7243#line 2247 "parser.yy" /* yacc.c:1646  */
     7244    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7245#line 7246 "Parser/parser.cc" /* yacc.c:1646  */
    81557246    break;
    81567247
    81577248  case 581:
    8158 
    8159 /* Line 1806 of yacc.c  */
    8160 #line 2249 "parser.yy"
    8161     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7249#line 2249 "parser.yy" /* yacc.c:1646  */
     7250    { (yyval.decl) = (yyvsp[-1].decl); }
     7251#line 7252 "Parser/parser.cc" /* yacc.c:1646  */
    81627252    break;
    81637253
    81647254  case 582:
    8165 
    8166 /* Line 1806 of yacc.c  */
    8167 #line 2254 "parser.yy"
    8168     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7255#line 2254 "parser.yy" /* yacc.c:1646  */
     7256    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7257#line 7258 "Parser/parser.cc" /* yacc.c:1646  */
    81697258    break;
    81707259
    81717260  case 583:
    8172 
    8173 /* Line 1806 of yacc.c  */
    8174 #line 2256 "parser.yy"
    8175     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7261#line 2256 "parser.yy" /* yacc.c:1646  */
     7262    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7263#line 7264 "Parser/parser.cc" /* yacc.c:1646  */
    81767264    break;
    81777265
    81787266  case 584:
    8179 
    8180 /* Line 1806 of yacc.c  */
    8181 #line 2258 "parser.yy"
    8182     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7267#line 2258 "parser.yy" /* yacc.c:1646  */
     7268    { (yyval.decl) = (yyvsp[-1].decl); }
     7269#line 7270 "Parser/parser.cc" /* yacc.c:1646  */
    81837270    break;
    81847271
    81857272  case 588:
    8186 
    8187 /* Line 1806 of yacc.c  */
    8188 #line 2273 "parser.yy"
    8189     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     7273#line 2273 "parser.yy" /* yacc.c:1646  */
     7274    { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
     7275#line 7276 "Parser/parser.cc" /* yacc.c:1646  */
    81907276    break;
    81917277
    81927278  case 589:
    8193 
    8194 /* Line 1806 of yacc.c  */
    8195 #line 2275 "parser.yy"
    8196     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     7279#line 2275 "parser.yy" /* yacc.c:1646  */
     7280    { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
     7281#line 7282 "Parser/parser.cc" /* yacc.c:1646  */
    81977282    break;
    81987283
    81997284  case 590:
    8200 
    8201 /* Line 1806 of yacc.c  */
    8202 #line 2277 "parser.yy"
    8203     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7285#line 2277 "parser.yy" /* yacc.c:1646  */
     7286    { (yyval.decl) = (yyvsp[-1].decl); }
     7287#line 7288 "Parser/parser.cc" /* yacc.c:1646  */
    82047288    break;
    82057289
    82067290  case 591:
    8207 
    8208 /* Line 1806 of yacc.c  */
    8209 #line 2282 "parser.yy"
    8210     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7291#line 2282 "parser.yy" /* yacc.c:1646  */
     7292    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7293#line 7294 "Parser/parser.cc" /* yacc.c:1646  */
    82117294    break;
    82127295
    82137296  case 592:
    8214 
    8215 /* Line 1806 of yacc.c  */
    8216 #line 2284 "parser.yy"
    8217     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7297#line 2284 "parser.yy" /* yacc.c:1646  */
     7298    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7299#line 7300 "Parser/parser.cc" /* yacc.c:1646  */
    82187300    break;
    82197301
    82207302  case 593:
    8221 
    8222 /* Line 1806 of yacc.c  */
    8223 #line 2286 "parser.yy"
    8224     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7303#line 2286 "parser.yy" /* yacc.c:1646  */
     7304    { (yyval.decl) = (yyvsp[-1].decl); }
     7305#line 7306 "Parser/parser.cc" /* yacc.c:1646  */
    82257306    break;
    82267307
    82277308  case 594:
    8228 
    8229 /* Line 1806 of yacc.c  */
    8230 #line 2291 "parser.yy"
    8231     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7309#line 2291 "parser.yy" /* yacc.c:1646  */
     7310    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7311#line 7312 "Parser/parser.cc" /* yacc.c:1646  */
    82327312    break;
    82337313
    82347314  case 595:
    8235 
    8236 /* Line 1806 of yacc.c  */
    8237 #line 2293 "parser.yy"
    8238     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7315#line 2293 "parser.yy" /* yacc.c:1646  */
     7316    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7317#line 7318 "Parser/parser.cc" /* yacc.c:1646  */
    82397318    break;
    82407319
    82417320  case 596:
    8242 
    8243 /* Line 1806 of yacc.c  */
    8244 #line 2295 "parser.yy"
    8245     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7321#line 2295 "parser.yy" /* yacc.c:1646  */
     7322    { (yyval.decl) = (yyvsp[-1].decl); }
     7323#line 7324 "Parser/parser.cc" /* yacc.c:1646  */
    82467324    break;
    82477325
    82487326  case 597:
    8249 
    8250 /* Line 1806 of yacc.c  */
    8251 #line 2310 "parser.yy"
    8252     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7327#line 2310 "parser.yy" /* yacc.c:1646  */
     7328    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7329#line 7330 "Parser/parser.cc" /* yacc.c:1646  */
    82537330    break;
    82547331
    82557332  case 599:
    8256 
    8257 /* Line 1806 of yacc.c  */
    8258 #line 2313 "parser.yy"
    8259     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7333#line 2313 "parser.yy" /* yacc.c:1646  */
     7334    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7335#line 7336 "Parser/parser.cc" /* yacc.c:1646  */
    82607336    break;
    82617337
    82627338  case 600:
    8263 
    8264 /* Line 1806 of yacc.c  */
    8265 #line 2315 "parser.yy"
    8266     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7339#line 2315 "parser.yy" /* yacc.c:1646  */
     7340    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7341#line 7342 "Parser/parser.cc" /* yacc.c:1646  */
    82677342    break;
    82687343
    82697344  case 602:
    8270 
    8271 /* Line 1806 of yacc.c  */
    8272 #line 2321 "parser.yy"
    8273     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7345#line 2321 "parser.yy" /* yacc.c:1646  */
     7346    { (yyval.decl) = (yyvsp[-1].decl); }
     7347#line 7348 "Parser/parser.cc" /* yacc.c:1646  */
    82747348    break;
    82757349
    82767350  case 603:
    8277 
    8278 /* Line 1806 of yacc.c  */
    8279 #line 2326 "parser.yy"
    8280     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7351#line 2326 "parser.yy" /* yacc.c:1646  */
     7352    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7353#line 7354 "Parser/parser.cc" /* yacc.c:1646  */
    82817354    break;
    82827355
    82837356  case 604:
    8284 
    8285 /* Line 1806 of yacc.c  */
    8286 #line 2328 "parser.yy"
    8287     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7357#line 2328 "parser.yy" /* yacc.c:1646  */
     7358    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7359#line 7360 "Parser/parser.cc" /* yacc.c:1646  */
    82887360    break;
    82897361
    82907362  case 605:
    8291 
    8292 /* Line 1806 of yacc.c  */
    8293 #line 2330 "parser.yy"
    8294     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7363#line 2330 "parser.yy" /* yacc.c:1646  */
     7364    { (yyval.decl) = (yyvsp[-1].decl); }
     7365#line 7366 "Parser/parser.cc" /* yacc.c:1646  */
    82957366    break;
    82967367
    82977368  case 606:
    8298 
    8299 /* Line 1806 of yacc.c  */
    8300 #line 2335 "parser.yy"
    8301     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7369#line 2335 "parser.yy" /* yacc.c:1646  */
     7370    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7371#line 7372 "Parser/parser.cc" /* yacc.c:1646  */
    83027372    break;
    83037373
    83047374  case 607:
    8305 
    8306 /* Line 1806 of yacc.c  */
    8307 #line 2337 "parser.yy"
    8308     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7375#line 2337 "parser.yy" /* yacc.c:1646  */
     7376    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7377#line 7378 "Parser/parser.cc" /* yacc.c:1646  */
    83097378    break;
    83107379
    83117380  case 608:
    8312 
    8313 /* Line 1806 of yacc.c  */
    8314 #line 2339 "parser.yy"
    8315     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7381#line 2339 "parser.yy" /* yacc.c:1646  */
     7382    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7383#line 7384 "Parser/parser.cc" /* yacc.c:1646  */
    83167384    break;
    83177385
    83187386  case 609:
    8319 
    8320 /* Line 1806 of yacc.c  */
    8321 #line 2341 "parser.yy"
    8322     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7387#line 2341 "parser.yy" /* yacc.c:1646  */
     7388    { (yyval.decl) = (yyvsp[-1].decl); }
     7389#line 7390 "Parser/parser.cc" /* yacc.c:1646  */
    83237390    break;
    83247391
    83257392  case 610:
    8326 
    8327 /* Line 1806 of yacc.c  */
    8328 #line 2346 "parser.yy"
    8329     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7393#line 2346 "parser.yy" /* yacc.c:1646  */
     7394    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7395#line 7396 "Parser/parser.cc" /* yacc.c:1646  */
    83307396    break;
    83317397
    83327398  case 611:
    8333 
    8334 /* Line 1806 of yacc.c  */
    8335 #line 2348 "parser.yy"
    8336     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7399#line 2348 "parser.yy" /* yacc.c:1646  */
     7400    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7401#line 7402 "Parser/parser.cc" /* yacc.c:1646  */
    83377402    break;
    83387403
    83397404  case 612:
    8340 
    8341 /* Line 1806 of yacc.c  */
    8342 #line 2350 "parser.yy"
    8343     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7405#line 2350 "parser.yy" /* yacc.c:1646  */
     7406    { (yyval.decl) = (yyvsp[-1].decl); }
     7407#line 7408 "Parser/parser.cc" /* yacc.c:1646  */
    83447408    break;
    83457409
    83467410  case 613:
    8347 
    8348 /* Line 1806 of yacc.c  */
    8349 #line 2360 "parser.yy"
    8350     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7411#line 2360 "parser.yy" /* yacc.c:1646  */
     7412    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7413#line 7414 "Parser/parser.cc" /* yacc.c:1646  */
    83517414    break;
    83527415
    83537416  case 615:
    8354 
    8355 /* Line 1806 of yacc.c  */
    8356 #line 2363 "parser.yy"
    8357     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7417#line 2363 "parser.yy" /* yacc.c:1646  */
     7418    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7419#line 7420 "Parser/parser.cc" /* yacc.c:1646  */
    83587420    break;
    83597421
    83607422  case 616:
    8361 
    8362 /* Line 1806 of yacc.c  */
    8363 #line 2365 "parser.yy"
    8364     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7423#line 2365 "parser.yy" /* yacc.c:1646  */
     7424    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7425#line 7426 "Parser/parser.cc" /* yacc.c:1646  */
    83657426    break;
    83667427
    83677428  case 617:
    8368 
    8369 /* Line 1806 of yacc.c  */
    8370 #line 2370 "parser.yy"
    8371     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7429#line 2370 "parser.yy" /* yacc.c:1646  */
     7430    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7431#line 7432 "Parser/parser.cc" /* yacc.c:1646  */
    83727432    break;
    83737433
    83747434  case 618:
    8375 
    8376 /* Line 1806 of yacc.c  */
    8377 #line 2372 "parser.yy"
    8378     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7435#line 2372 "parser.yy" /* yacc.c:1646  */
     7436    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7437#line 7438 "Parser/parser.cc" /* yacc.c:1646  */
    83797438    break;
    83807439
    83817440  case 619:
    8382 
    8383 /* Line 1806 of yacc.c  */
    8384 #line 2374 "parser.yy"
    8385     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7441#line 2374 "parser.yy" /* yacc.c:1646  */
     7442    { (yyval.decl) = (yyvsp[-1].decl); }
     7443#line 7444 "Parser/parser.cc" /* yacc.c:1646  */
    83867444    break;
    83877445
    83887446  case 620:
    8389 
    8390 /* Line 1806 of yacc.c  */
    8391 #line 2379 "parser.yy"
    8392     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7447#line 2379 "parser.yy" /* yacc.c:1646  */
     7448    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7449#line 7450 "Parser/parser.cc" /* yacc.c:1646  */
    83937450    break;
    83947451
    83957452  case 621:
    8396 
    8397 /* Line 1806 of yacc.c  */
    8398 #line 2381 "parser.yy"
    8399     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7453#line 2381 "parser.yy" /* yacc.c:1646  */
     7454    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7455#line 7456 "Parser/parser.cc" /* yacc.c:1646  */
    84007456    break;
    84017457
    84027458  case 622:
    8403 
    8404 /* Line 1806 of yacc.c  */
    8405 #line 2383 "parser.yy"
    8406     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7459#line 2383 "parser.yy" /* yacc.c:1646  */
     7460    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7461#line 7462 "Parser/parser.cc" /* yacc.c:1646  */
    84077462    break;
    84087463
    84097464  case 623:
    8410 
    8411 /* Line 1806 of yacc.c  */
    8412 #line 2385 "parser.yy"
    8413     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7465#line 2385 "parser.yy" /* yacc.c:1646  */
     7466    { (yyval.decl) = (yyvsp[-1].decl); }
     7467#line 7468 "Parser/parser.cc" /* yacc.c:1646  */
    84147468    break;
    84157469
    84167470  case 624:
    8417 
    8418 /* Line 1806 of yacc.c  */
    8419 #line 2390 "parser.yy"
    8420     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7471#line 2390 "parser.yy" /* yacc.c:1646  */
     7472    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7473#line 7474 "Parser/parser.cc" /* yacc.c:1646  */
    84217474    break;
    84227475
    84237476  case 625:
    8424 
    8425 /* Line 1806 of yacc.c  */
    8426 #line 2392 "parser.yy"
    8427     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7477#line 2392 "parser.yy" /* yacc.c:1646  */
     7478    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7479#line 7480 "Parser/parser.cc" /* yacc.c:1646  */
    84287480    break;
    84297481
    84307482  case 626:
    8431 
    8432 /* Line 1806 of yacc.c  */
    8433 #line 2394 "parser.yy"
    8434     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7483#line 2394 "parser.yy" /* yacc.c:1646  */
     7484    { (yyval.decl) = (yyvsp[-1].decl); }
     7485#line 7486 "Parser/parser.cc" /* yacc.c:1646  */
    84357486    break;
    84367487
    84377488  case 627:
    8438 
    8439 /* Line 1806 of yacc.c  */
    8440 #line 2425 "parser.yy"
    8441     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7489#line 2425 "parser.yy" /* yacc.c:1646  */
     7490    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7491#line 7492 "Parser/parser.cc" /* yacc.c:1646  */
    84427492    break;
    84437493
    84447494  case 629:
    8445 
    8446 /* Line 1806 of yacc.c  */
    8447 #line 2428 "parser.yy"
    8448     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7495#line 2428 "parser.yy" /* yacc.c:1646  */
     7496    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7497#line 7498 "Parser/parser.cc" /* yacc.c:1646  */
    84497498    break;
    84507499
    84517500  case 630:
    8452 
    8453 /* Line 1806 of yacc.c  */
    8454 #line 2430 "parser.yy"
    8455     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7501#line 2430 "parser.yy" /* yacc.c:1646  */
     7502    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7503#line 7504 "Parser/parser.cc" /* yacc.c:1646  */
    84567504    break;
    84577505
    84587506  case 631:
    8459 
    8460 /* Line 1806 of yacc.c  */
    8461 #line 2435 "parser.yy"
    8462     {
    8463                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8464                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7507#line 2435 "parser.yy" /* yacc.c:1646  */
     7508    {
     7509                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7510                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    84657511                }
     7512#line 7513 "Parser/parser.cc" /* yacc.c:1646  */
    84667513    break;
    84677514
    84687515  case 632:
    8469 
    8470 /* Line 1806 of yacc.c  */
    8471 #line 2440 "parser.yy"
    8472     {
    8473                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8474                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7516#line 2440 "parser.yy" /* yacc.c:1646  */
     7517    {
     7518                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7519                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    84757520                }
     7521#line 7522 "Parser/parser.cc" /* yacc.c:1646  */
    84767522    break;
    84777523
    84787524  case 633:
    8479 
    8480 /* Line 1806 of yacc.c  */
    8481 #line 2448 "parser.yy"
    8482     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7525#line 2448 "parser.yy" /* yacc.c:1646  */
     7526    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7527#line 7528 "Parser/parser.cc" /* yacc.c:1646  */
    84837528    break;
    84847529
    84857530  case 634:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2450 "parser.yy"
    8489     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7531#line 2450 "parser.yy" /* yacc.c:1646  */
     7532    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7533#line 7534 "Parser/parser.cc" /* yacc.c:1646  */
    84907534    break;
    84917535
    84927536  case 635:
    8493 
    8494 /* Line 1806 of yacc.c  */
    8495 #line 2452 "parser.yy"
    8496     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7537#line 2452 "parser.yy" /* yacc.c:1646  */
     7538    { (yyval.decl) = (yyvsp[-1].decl); }
     7539#line 7540 "Parser/parser.cc" /* yacc.c:1646  */
    84977540    break;
    84987541
    84997542  case 636:
    8500 
    8501 /* Line 1806 of yacc.c  */
    8502 #line 2457 "parser.yy"
    8503     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7543#line 2457 "parser.yy" /* yacc.c:1646  */
     7544    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7545#line 7546 "Parser/parser.cc" /* yacc.c:1646  */
    85047546    break;
    85057547
    85067548  case 637:
    8507 
    8508 /* Line 1806 of yacc.c  */
    8509 #line 2459 "parser.yy"
    8510     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7549#line 2459 "parser.yy" /* yacc.c:1646  */
     7550    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7551#line 7552 "Parser/parser.cc" /* yacc.c:1646  */
    85117552    break;
    85127553
    85137554  case 638:
    8514 
    8515 /* Line 1806 of yacc.c  */
    8516 #line 2464 "parser.yy"
    8517     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7555#line 2464 "parser.yy" /* yacc.c:1646  */
     7556    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7557#line 7558 "Parser/parser.cc" /* yacc.c:1646  */
    85187558    break;
    85197559
    85207560  case 639:
    8521 
    8522 /* Line 1806 of yacc.c  */
    8523 #line 2466 "parser.yy"
    8524     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7561#line 2466 "parser.yy" /* yacc.c:1646  */
     7562    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7563#line 7564 "Parser/parser.cc" /* yacc.c:1646  */
    85257564    break;
    85267565
    85277566  case 641:
    8528 
    8529 /* Line 1806 of yacc.c  */
    8530 #line 2481 "parser.yy"
    8531     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7567#line 2481 "parser.yy" /* yacc.c:1646  */
     7568    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7569#line 7570 "Parser/parser.cc" /* yacc.c:1646  */
    85327570    break;
    85337571
    85347572  case 642:
    8535 
    8536 /* Line 1806 of yacc.c  */
    8537 #line 2483 "parser.yy"
    8538     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7573#line 2483 "parser.yy" /* yacc.c:1646  */
     7574    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7575#line 7576 "Parser/parser.cc" /* yacc.c:1646  */
    85397576    break;
    85407577
    85417578  case 643:
    8542 
    8543 /* Line 1806 of yacc.c  */
    8544 #line 2488 "parser.yy"
     7579#line 2488 "parser.yy" /* yacc.c:1646  */
    85457580    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7581#line 7582 "Parser/parser.cc" /* yacc.c:1646  */
    85467582    break;
    85477583
    85487584  case 644:
    8549 
    8550 /* Line 1806 of yacc.c  */
    8551 #line 2490 "parser.yy"
    8552     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7585#line 2490 "parser.yy" /* yacc.c:1646  */
     7586    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7587#line 7588 "Parser/parser.cc" /* yacc.c:1646  */
    85537588    break;
    85547589
    85557590  case 645:
    8556 
    8557 /* Line 1806 of yacc.c  */
    8558 #line 2492 "parser.yy"
    8559     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7591#line 2492 "parser.yy" /* yacc.c:1646  */
     7592    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7593#line 7594 "Parser/parser.cc" /* yacc.c:1646  */
    85607594    break;
    85617595
    85627596  case 646:
    8563 
    8564 /* Line 1806 of yacc.c  */
    8565 #line 2494 "parser.yy"
    8566     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7597#line 2494 "parser.yy" /* yacc.c:1646  */
     7598    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7599#line 7600 "Parser/parser.cc" /* yacc.c:1646  */
    85677600    break;
    85687601
    85697602  case 647:
    8570 
    8571 /* Line 1806 of yacc.c  */
    8572 #line 2496 "parser.yy"
    8573     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7603#line 2496 "parser.yy" /* yacc.c:1646  */
     7604    { (yyval.decl) = (yyvsp[-1].decl); }
     7605#line 7606 "Parser/parser.cc" /* yacc.c:1646  */
    85747606    break;
    85757607
    85767608  case 649:
    8577 
    8578 /* Line 1806 of yacc.c  */
    8579 #line 2502 "parser.yy"
    8580     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7609#line 2502 "parser.yy" /* yacc.c:1646  */
     7610    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7611#line 7612 "Parser/parser.cc" /* yacc.c:1646  */
    85817612    break;
    85827613
    85837614  case 650:
    8584 
    8585 /* Line 1806 of yacc.c  */
    8586 #line 2504 "parser.yy"
    8587     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7615#line 2504 "parser.yy" /* yacc.c:1646  */
     7616    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7617#line 7618 "Parser/parser.cc" /* yacc.c:1646  */
    85887618    break;
    85897619
    85907620  case 651:
    8591 
    8592 /* Line 1806 of yacc.c  */
    8593 #line 2506 "parser.yy"
    8594     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7621#line 2506 "parser.yy" /* yacc.c:1646  */
     7622    { (yyval.decl) = (yyvsp[-1].decl); }
     7623#line 7624 "Parser/parser.cc" /* yacc.c:1646  */
    85957624    break;
    85967625
    85977626  case 652:
    8598 
    8599 /* Line 1806 of yacc.c  */
    8600 #line 2511 "parser.yy"
    8601     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     7627#line 2511 "parser.yy" /* yacc.c:1646  */
     7628    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
     7629#line 7630 "Parser/parser.cc" /* yacc.c:1646  */
    86027630    break;
    86037631
    86047632  case 653:
    8605 
    8606 /* Line 1806 of yacc.c  */
    8607 #line 2513 "parser.yy"
    8608     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7633#line 2513 "parser.yy" /* yacc.c:1646  */
     7634    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7635#line 7636 "Parser/parser.cc" /* yacc.c:1646  */
    86097636    break;
    86107637
    86117638  case 654:
    8612 
    8613 /* Line 1806 of yacc.c  */
    8614 #line 2515 "parser.yy"
    8615     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7639#line 2515 "parser.yy" /* yacc.c:1646  */
     7640    { (yyval.decl) = (yyvsp[-1].decl); }
     7641#line 7642 "Parser/parser.cc" /* yacc.c:1646  */
    86167642    break;
    86177643
    86187644  case 655:
    8619 
    8620 /* Line 1806 of yacc.c  */
    8621 #line 2521 "parser.yy"
     7645#line 2521 "parser.yy" /* yacc.c:1646  */
    86227646    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7647#line 7648 "Parser/parser.cc" /* yacc.c:1646  */
    86237648    break;
    86247649
    86257650  case 656:
    8626 
    8627 /* Line 1806 of yacc.c  */
    8628 #line 2523 "parser.yy"
    8629     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     7651#line 2523 "parser.yy" /* yacc.c:1646  */
     7652    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
     7653#line 7654 "Parser/parser.cc" /* yacc.c:1646  */
    86307654    break;
    86317655
    86327656  case 658:
    8633 
    8634 /* Line 1806 of yacc.c  */
    8635 #line 2529 "parser.yy"
    8636     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     7657#line 2529 "parser.yy" /* yacc.c:1646  */
     7658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
     7659#line 7660 "Parser/parser.cc" /* yacc.c:1646  */
    86377660    break;
    86387661
    86397662  case 659:
    8640 
    8641 /* Line 1806 of yacc.c  */
    8642 #line 2531 "parser.yy"
     7663#line 2531 "parser.yy" /* yacc.c:1646  */
    86437664    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     7665#line 7666 "Parser/parser.cc" /* yacc.c:1646  */
    86447666    break;
    86457667
    86467668  case 660:
    8647 
    8648 /* Line 1806 of yacc.c  */
    8649 #line 2533 "parser.yy"
    8650     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     7669#line 2533 "parser.yy" /* yacc.c:1646  */
     7670    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
     7671#line 7672 "Parser/parser.cc" /* yacc.c:1646  */
    86517672    break;
    86527673
    86537674  case 661:
    8654 
    8655 /* Line 1806 of yacc.c  */
    8656 #line 2535 "parser.yy"
    8657     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7675#line 2535 "parser.yy" /* yacc.c:1646  */
     7676    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7677#line 7678 "Parser/parser.cc" /* yacc.c:1646  */
    86587678    break;
    86597679
    86607680  case 663:
    8661 
    8662 /* Line 1806 of yacc.c  */
    8663 #line 2550 "parser.yy"
    8664     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7681#line 2550 "parser.yy" /* yacc.c:1646  */
     7682    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7683#line 7684 "Parser/parser.cc" /* yacc.c:1646  */
    86657684    break;
    86667685
    86677686  case 664:
    8668 
    8669 /* Line 1806 of yacc.c  */
    8670 #line 2552 "parser.yy"
    8671     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7687#line 2552 "parser.yy" /* yacc.c:1646  */
     7688    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7689#line 7690 "Parser/parser.cc" /* yacc.c:1646  */
    86727690    break;
    86737691
    86747692  case 665:
    8675 
    8676 /* Line 1806 of yacc.c  */
    8677 #line 2557 "parser.yy"
     7693#line 2557 "parser.yy" /* yacc.c:1646  */
    86787694    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7695#line 7696 "Parser/parser.cc" /* yacc.c:1646  */
    86797696    break;
    86807697
    86817698  case 666:
    8682 
    8683 /* Line 1806 of yacc.c  */
    8684 #line 2559 "parser.yy"
    8685     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7699#line 2559 "parser.yy" /* yacc.c:1646  */
     7700    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7701#line 7702 "Parser/parser.cc" /* yacc.c:1646  */
    86867702    break;
    86877703
    86887704  case 667:
    8689 
    8690 /* Line 1806 of yacc.c  */
    8691 #line 2561 "parser.yy"
    8692     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7705#line 2561 "parser.yy" /* yacc.c:1646  */
     7706    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7707#line 7708 "Parser/parser.cc" /* yacc.c:1646  */
    86937708    break;
    86947709
    86957710  case 668:
    8696 
    8697 /* Line 1806 of yacc.c  */
    8698 #line 2563 "parser.yy"
    8699     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7711#line 2563 "parser.yy" /* yacc.c:1646  */
     7712    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7713#line 7714 "Parser/parser.cc" /* yacc.c:1646  */
    87007714    break;
    87017715
    87027716  case 669:
    8703 
    8704 /* Line 1806 of yacc.c  */
    8705 #line 2565 "parser.yy"
    8706     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7717#line 2565 "parser.yy" /* yacc.c:1646  */
     7718    { (yyval.decl) = (yyvsp[-1].decl); }
     7719#line 7720 "Parser/parser.cc" /* yacc.c:1646  */
    87077720    break;
    87087721
    87097722  case 671:
    8710 
    8711 /* Line 1806 of yacc.c  */
    8712 #line 2571 "parser.yy"
    8713     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7723#line 2571 "parser.yy" /* yacc.c:1646  */
     7724    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7725#line 7726 "Parser/parser.cc" /* yacc.c:1646  */
    87147726    break;
    87157727
    87167728  case 672:
    8717 
    8718 /* Line 1806 of yacc.c  */
    8719 #line 2573 "parser.yy"
    8720     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7729#line 2573 "parser.yy" /* yacc.c:1646  */
     7730    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7731#line 7732 "Parser/parser.cc" /* yacc.c:1646  */
    87217732    break;
    87227733
    87237734  case 673:
    8724 
    8725 /* Line 1806 of yacc.c  */
    8726 #line 2575 "parser.yy"
    8727     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7735#line 2575 "parser.yy" /* yacc.c:1646  */
     7736    { (yyval.decl) = (yyvsp[-1].decl); }
     7737#line 7738 "Parser/parser.cc" /* yacc.c:1646  */
    87287738    break;
    87297739
    87307740  case 674:
    8731 
    8732 /* Line 1806 of yacc.c  */
    8733 #line 2580 "parser.yy"
    8734     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     7741#line 2580 "parser.yy" /* yacc.c:1646  */
     7742    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
     7743#line 7744 "Parser/parser.cc" /* yacc.c:1646  */
    87357744    break;
    87367745
    87377746  case 675:
    8738 
    8739 /* Line 1806 of yacc.c  */
    8740 #line 2582 "parser.yy"
    8741     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7747#line 2582 "parser.yy" /* yacc.c:1646  */
     7748    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7749#line 7750 "Parser/parser.cc" /* yacc.c:1646  */
    87427750    break;
    87437751
    87447752  case 676:
    8745 
    8746 /* Line 1806 of yacc.c  */
    8747 #line 2584 "parser.yy"
    8748     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7753#line 2584 "parser.yy" /* yacc.c:1646  */
     7754    { (yyval.decl) = (yyvsp[-1].decl); }
     7755#line 7756 "Parser/parser.cc" /* yacc.c:1646  */
    87497756    break;
    87507757
    87517758  case 678:
    8752 
    8753 /* Line 1806 of yacc.c  */
    8754 #line 2591 "parser.yy"
    8755     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7759#line 2591 "parser.yy" /* yacc.c:1646  */
     7760    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7761#line 7762 "Parser/parser.cc" /* yacc.c:1646  */
    87567762    break;
    87577763
    87587764  case 680:
    8759 
    8760 /* Line 1806 of yacc.c  */
    8761 #line 2602 "parser.yy"
     7765#line 2602 "parser.yy" /* yacc.c:1646  */
    87627766    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7767#line 7768 "Parser/parser.cc" /* yacc.c:1646  */
    87637768    break;
    87647769
    87657770  case 681:
    8766 
    8767 /* Line 1806 of yacc.c  */
    8768 #line 2605 "parser.yy"
    8769     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7771#line 2605 "parser.yy" /* yacc.c:1646  */
     7772    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7773#line 7774 "Parser/parser.cc" /* yacc.c:1646  */
    87707774    break;
    87717775
    87727776  case 682:
    8773 
    8774 /* Line 1806 of yacc.c  */
    8775 #line 2607 "parser.yy"
    8776     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     7777#line 2607 "parser.yy" /* yacc.c:1646  */
     7778    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
     7779#line 7780 "Parser/parser.cc" /* yacc.c:1646  */
    87777780    break;
    87787781
    87797782  case 683:
    8780 
    8781 /* Line 1806 of yacc.c  */
    8782 #line 2610 "parser.yy"
    8783     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7783#line 2610 "parser.yy" /* yacc.c:1646  */
     7784    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7785#line 7786 "Parser/parser.cc" /* yacc.c:1646  */
    87847786    break;
    87857787
    87867788  case 684:
    8787 
    8788 /* Line 1806 of yacc.c  */
    8789 #line 2612 "parser.yy"
    8790     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     7789#line 2612 "parser.yy" /* yacc.c:1646  */
     7790    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     7791#line 7792 "Parser/parser.cc" /* yacc.c:1646  */
    87917792    break;
    87927793
    87937794  case 685:
    8794 
    8795 /* Line 1806 of yacc.c  */
    8796 #line 2614 "parser.yy"
    8797     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     7795#line 2614 "parser.yy" /* yacc.c:1646  */
     7796    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
     7797#line 7798 "Parser/parser.cc" /* yacc.c:1646  */
    87987798    break;
    87997799
    88007800  case 687:
    8801 
    8802 /* Line 1806 of yacc.c  */
    8803 #line 2628 "parser.yy"
    8804     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7801#line 2628 "parser.yy" /* yacc.c:1646  */
     7802    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7803#line 7804 "Parser/parser.cc" /* yacc.c:1646  */
    88057804    break;
    88067805
    88077806  case 688:
    8808 
    8809 /* Line 1806 of yacc.c  */
    8810 #line 2630 "parser.yy"
    8811     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7807#line 2630 "parser.yy" /* yacc.c:1646  */
     7808    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7809#line 7810 "Parser/parser.cc" /* yacc.c:1646  */
    88127810    break;
    88137811
    88147812  case 689:
    8815 
    8816 /* Line 1806 of yacc.c  */
    8817 #line 2635 "parser.yy"
     7813#line 2635 "parser.yy" /* yacc.c:1646  */
    88187814    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7815#line 7816 "Parser/parser.cc" /* yacc.c:1646  */
    88197816    break;
    88207817
    88217818  case 690:
    8822 
    8823 /* Line 1806 of yacc.c  */
    8824 #line 2637 "parser.yy"
    8825     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7819#line 2637 "parser.yy" /* yacc.c:1646  */
     7820    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7821#line 7822 "Parser/parser.cc" /* yacc.c:1646  */
    88267822    break;
    88277823
    88287824  case 691:
    8829 
    8830 /* Line 1806 of yacc.c  */
    8831 #line 2639 "parser.yy"
    8832     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7825#line 2639 "parser.yy" /* yacc.c:1646  */
     7826    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7827#line 7828 "Parser/parser.cc" /* yacc.c:1646  */
    88337828    break;
    88347829
    88357830  case 692:
    8836 
    8837 /* Line 1806 of yacc.c  */
    8838 #line 2641 "parser.yy"
    8839     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7831#line 2641 "parser.yy" /* yacc.c:1646  */
     7832    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7833#line 7834 "Parser/parser.cc" /* yacc.c:1646  */
    88407834    break;
    88417835
    88427836  case 693:
    8843 
    8844 /* Line 1806 of yacc.c  */
    8845 #line 2643 "parser.yy"
    8846     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7837#line 2643 "parser.yy" /* yacc.c:1646  */
     7838    { (yyval.decl) = (yyvsp[-1].decl); }
     7839#line 7840 "Parser/parser.cc" /* yacc.c:1646  */
    88477840    break;
    88487841
    88497842  case 695:
    8850 
    8851 /* Line 1806 of yacc.c  */
    8852 #line 2649 "parser.yy"
    8853     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7843#line 2649 "parser.yy" /* yacc.c:1646  */
     7844    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7845#line 7846 "Parser/parser.cc" /* yacc.c:1646  */
    88547846    break;
    88557847
    88567848  case 696:
    8857 
    8858 /* Line 1806 of yacc.c  */
    8859 #line 2651 "parser.yy"
    8860     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7849#line 2651 "parser.yy" /* yacc.c:1646  */
     7850    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7851#line 7852 "Parser/parser.cc" /* yacc.c:1646  */
    88617852    break;
    88627853
    88637854  case 697:
    8864 
    8865 /* Line 1806 of yacc.c  */
    8866 #line 2653 "parser.yy"
    8867     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7855#line 2653 "parser.yy" /* yacc.c:1646  */
     7856    { (yyval.decl) = (yyvsp[-1].decl); }
     7857#line 7858 "Parser/parser.cc" /* yacc.c:1646  */
    88687858    break;
    88697859
    88707860  case 698:
    8871 
    8872 /* Line 1806 of yacc.c  */
    8873 #line 2658 "parser.yy"
    8874     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7861#line 2658 "parser.yy" /* yacc.c:1646  */
     7862    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7863#line 7864 "Parser/parser.cc" /* yacc.c:1646  */
    88757864    break;
    88767865
    88777866  case 699:
    8878 
    8879 /* Line 1806 of yacc.c  */
    8880 #line 2660 "parser.yy"
    8881     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7867#line 2660 "parser.yy" /* yacc.c:1646  */
     7868    { (yyval.decl) = (yyvsp[-1].decl); }
     7869#line 7870 "Parser/parser.cc" /* yacc.c:1646  */
    88827870    break;
    88837871
    88847872  case 702:
    8885 
    8886 /* Line 1806 of yacc.c  */
    8887 #line 2670 "parser.yy"
    8888     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7873#line 2670 "parser.yy" /* yacc.c:1646  */
     7874    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7875#line 7876 "Parser/parser.cc" /* yacc.c:1646  */
    88897876    break;
    88907877
    88917878  case 705:
    8892 
    8893 /* Line 1806 of yacc.c  */
    8894 #line 2680 "parser.yy"
    8895     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7879#line 2680 "parser.yy" /* yacc.c:1646  */
     7880    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7881#line 7882 "Parser/parser.cc" /* yacc.c:1646  */
    88967882    break;
    88977883
    88987884  case 706:
    8899 
    8900 /* Line 1806 of yacc.c  */
    8901 #line 2682 "parser.yy"
    8902     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7885#line 2682 "parser.yy" /* yacc.c:1646  */
     7886    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7887#line 7888 "Parser/parser.cc" /* yacc.c:1646  */
    89037888    break;
    89047889
    89057890  case 707:
    8906 
    8907 /* Line 1806 of yacc.c  */
    8908 #line 2684 "parser.yy"
    8909     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7891#line 2684 "parser.yy" /* yacc.c:1646  */
     7892    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7893#line 7894 "Parser/parser.cc" /* yacc.c:1646  */
    89107894    break;
    89117895
    89127896  case 708:
    8913 
    8914 /* Line 1806 of yacc.c  */
    8915 #line 2686 "parser.yy"
    8916     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7897#line 2686 "parser.yy" /* yacc.c:1646  */
     7898    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7899#line 7900 "Parser/parser.cc" /* yacc.c:1646  */
    89177900    break;
    89187901
    89197902  case 709:
    8920 
    8921 /* Line 1806 of yacc.c  */
    8922 #line 2688 "parser.yy"
    8923     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7903#line 2688 "parser.yy" /* yacc.c:1646  */
     7904    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7905#line 7906 "Parser/parser.cc" /* yacc.c:1646  */
    89247906    break;
    89257907
    89267908  case 710:
    8927 
    8928 /* Line 1806 of yacc.c  */
    8929 #line 2690 "parser.yy"
    8930     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7909#line 2690 "parser.yy" /* yacc.c:1646  */
     7910    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7911#line 7912 "Parser/parser.cc" /* yacc.c:1646  */
    89317912    break;
    89327913
    89337914  case 711:
    8934 
    8935 /* Line 1806 of yacc.c  */
    8936 #line 2697 "parser.yy"
    8937     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7915#line 2697 "parser.yy" /* yacc.c:1646  */
     7916    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7917#line 7918 "Parser/parser.cc" /* yacc.c:1646  */
    89387918    break;
    89397919
    89407920  case 712:
    8941 
    8942 /* Line 1806 of yacc.c  */
    8943 #line 2699 "parser.yy"
    8944     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7921#line 2699 "parser.yy" /* yacc.c:1646  */
     7922    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7923#line 7924 "Parser/parser.cc" /* yacc.c:1646  */
    89457924    break;
    89467925
    89477926  case 713:
    8948 
    8949 /* Line 1806 of yacc.c  */
    8950 #line 2701 "parser.yy"
    8951     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7927#line 2701 "parser.yy" /* yacc.c:1646  */
     7928    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7929#line 7930 "Parser/parser.cc" /* yacc.c:1646  */
    89527930    break;
    89537931
    89547932  case 714:
    8955 
    8956 /* Line 1806 of yacc.c  */
    8957 #line 2703 "parser.yy"
    8958     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7933#line 2703 "parser.yy" /* yacc.c:1646  */
     7934    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7935#line 7936 "Parser/parser.cc" /* yacc.c:1646  */
    89597936    break;
    89607937
    89617938  case 715:
    8962 
    8963 /* Line 1806 of yacc.c  */
    8964 #line 2705 "parser.yy"
    8965     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7939#line 2705 "parser.yy" /* yacc.c:1646  */
     7940    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7941#line 7942 "Parser/parser.cc" /* yacc.c:1646  */
    89667942    break;
    89677943
    89687944  case 716:
    8969 
    8970 /* Line 1806 of yacc.c  */
    8971 #line 2707 "parser.yy"
    8972     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7945#line 2707 "parser.yy" /* yacc.c:1646  */
     7946    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7947#line 7948 "Parser/parser.cc" /* yacc.c:1646  */
    89737948    break;
    89747949
    89757950  case 717:
    8976 
    8977 /* Line 1806 of yacc.c  */
    8978 #line 2709 "parser.yy"
    8979     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7951#line 2709 "parser.yy" /* yacc.c:1646  */
     7952    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7953#line 7954 "Parser/parser.cc" /* yacc.c:1646  */
    89807954    break;
    89817955
    89827956  case 718:
    8983 
    8984 /* Line 1806 of yacc.c  */
    8985 #line 2711 "parser.yy"
    8986     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7957#line 2711 "parser.yy" /* yacc.c:1646  */
     7958    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7959#line 7960 "Parser/parser.cc" /* yacc.c:1646  */
    89877960    break;
    89887961
    89897962  case 719:
    8990 
    8991 /* Line 1806 of yacc.c  */
    8992 #line 2713 "parser.yy"
    8993     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7963#line 2713 "parser.yy" /* yacc.c:1646  */
     7964    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7965#line 7966 "Parser/parser.cc" /* yacc.c:1646  */
    89947966    break;
    89957967
    89967968  case 720:
    8997 
    8998 /* Line 1806 of yacc.c  */
    8999 #line 2715 "parser.yy"
    9000     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7969#line 2715 "parser.yy" /* yacc.c:1646  */
     7970    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7971#line 7972 "Parser/parser.cc" /* yacc.c:1646  */
    90017972    break;
    90027973
    90037974  case 721:
    9004 
    9005 /* Line 1806 of yacc.c  */
    9006 #line 2720 "parser.yy"
    9007     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7975#line 2720 "parser.yy" /* yacc.c:1646  */
     7976    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7977#line 7978 "Parser/parser.cc" /* yacc.c:1646  */
    90087978    break;
    90097979
    90107980  case 722:
    9011 
    9012 /* Line 1806 of yacc.c  */
    9013 #line 2722 "parser.yy"
    9014     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7981#line 2722 "parser.yy" /* yacc.c:1646  */
     7982    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7983#line 7984 "Parser/parser.cc" /* yacc.c:1646  */
    90157984    break;
    90167985
    90177986  case 723:
    9018 
    9019 /* Line 1806 of yacc.c  */
    9020 #line 2727 "parser.yy"
    9021     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     7987#line 2727 "parser.yy" /* yacc.c:1646  */
     7988    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     7989#line 7990 "Parser/parser.cc" /* yacc.c:1646  */
    90227990    break;
    90237991
    90247992  case 724:
    9025 
    9026 /* Line 1806 of yacc.c  */
    9027 #line 2729 "parser.yy"
    9028     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     7993#line 2729 "parser.yy" /* yacc.c:1646  */
     7994    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
     7995#line 7996 "Parser/parser.cc" /* yacc.c:1646  */
    90297996    break;
    90307997
    90317998  case 726:
    9032 
    9033 /* Line 1806 of yacc.c  */
    9034 #line 2756 "parser.yy"
    9035     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7999#line 2756 "parser.yy" /* yacc.c:1646  */
     8000    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     8001#line 8002 "Parser/parser.cc" /* yacc.c:1646  */
    90368002    break;
    90378003
    90388004  case 730:
    9039 
    9040 /* Line 1806 of yacc.c  */
    9041 #line 2767 "parser.yy"
    9042     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8005#line 2767 "parser.yy" /* yacc.c:1646  */
     8006    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8007#line 8008 "Parser/parser.cc" /* yacc.c:1646  */
    90438008    break;
    90448009
    90458010  case 731:
    9046 
    9047 /* Line 1806 of yacc.c  */
    9048 #line 2769 "parser.yy"
    9049     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8011#line 2769 "parser.yy" /* yacc.c:1646  */
     8012    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8013#line 8014 "Parser/parser.cc" /* yacc.c:1646  */
    90508014    break;
    90518015
    90528016  case 732:
    9053 
    9054 /* Line 1806 of yacc.c  */
    9055 #line 2771 "parser.yy"
    9056     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8017#line 2771 "parser.yy" /* yacc.c:1646  */
     8018    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8019#line 8020 "Parser/parser.cc" /* yacc.c:1646  */
    90578020    break;
    90588021
    90598022  case 733:
    9060 
    9061 /* Line 1806 of yacc.c  */
    9062 #line 2773 "parser.yy"
    9063     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8023#line 2773 "parser.yy" /* yacc.c:1646  */
     8024    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8025#line 8026 "Parser/parser.cc" /* yacc.c:1646  */
    90648026    break;
    90658027
    90668028  case 734:
    9067 
    9068 /* Line 1806 of yacc.c  */
    9069 #line 2775 "parser.yy"
    9070     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8029#line 2775 "parser.yy" /* yacc.c:1646  */
     8030    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8031#line 8032 "Parser/parser.cc" /* yacc.c:1646  */
    90718032    break;
    90728033
    90738034  case 735:
    9074 
    9075 /* Line 1806 of yacc.c  */
    9076 #line 2777 "parser.yy"
    9077     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8035#line 2777 "parser.yy" /* yacc.c:1646  */
     8036    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8037#line 8038 "Parser/parser.cc" /* yacc.c:1646  */
    90788038    break;
    90798039
    90808040  case 736:
    9081 
    9082 /* Line 1806 of yacc.c  */
    9083 #line 2784 "parser.yy"
    9084     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8041#line 2784 "parser.yy" /* yacc.c:1646  */
     8042    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8043#line 8044 "Parser/parser.cc" /* yacc.c:1646  */
    90858044    break;
    90868045
    90878046  case 737:
    9088 
    9089 /* Line 1806 of yacc.c  */
    9090 #line 2786 "parser.yy"
    9091     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8047#line 2786 "parser.yy" /* yacc.c:1646  */
     8048    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8049#line 8050 "Parser/parser.cc" /* yacc.c:1646  */
    90928050    break;
    90938051
    90948052  case 738:
    9095 
    9096 /* Line 1806 of yacc.c  */
    9097 #line 2788 "parser.yy"
    9098     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8053#line 2788 "parser.yy" /* yacc.c:1646  */
     8054    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8055#line 8056 "Parser/parser.cc" /* yacc.c:1646  */
    90998056    break;
    91008057
    91018058  case 739:
    9102 
    9103 /* Line 1806 of yacc.c  */
    9104 #line 2790 "parser.yy"
    9105     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8059#line 2790 "parser.yy" /* yacc.c:1646  */
     8060    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8061#line 8062 "Parser/parser.cc" /* yacc.c:1646  */
    91068062    break;
    91078063
    91088064  case 740:
    9109 
    9110 /* Line 1806 of yacc.c  */
    9111 #line 2792 "parser.yy"
    9112     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8065#line 2792 "parser.yy" /* yacc.c:1646  */
     8066    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8067#line 8068 "Parser/parser.cc" /* yacc.c:1646  */
    91138068    break;
    91148069
    91158070  case 741:
    9116 
    9117 /* Line 1806 of yacc.c  */
    9118 #line 2794 "parser.yy"
    9119     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8071#line 2794 "parser.yy" /* yacc.c:1646  */
     8072    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8073#line 8074 "Parser/parser.cc" /* yacc.c:1646  */
    91208074    break;
    91218075
    91228076  case 742:
    9123 
    9124 /* Line 1806 of yacc.c  */
    9125 #line 2799 "parser.yy"
    9126     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     8077#line 2799 "parser.yy" /* yacc.c:1646  */
     8078    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     8079#line 8080 "Parser/parser.cc" /* yacc.c:1646  */
    91278080    break;
    91288081
    91298082  case 743:
    9130 
    9131 /* Line 1806 of yacc.c  */
    9132 #line 2804 "parser.yy"
    9133     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     8083#line 2804 "parser.yy" /* yacc.c:1646  */
     8084    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); }
     8085#line 8086 "Parser/parser.cc" /* yacc.c:1646  */
    91348086    break;
    91358087
    91368088  case 744:
    9137 
    9138 /* Line 1806 of yacc.c  */
    9139 #line 2806 "parser.yy"
    9140     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     8089#line 2806 "parser.yy" /* yacc.c:1646  */
     8090    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
     8091#line 8092 "Parser/parser.cc" /* yacc.c:1646  */
    91418092    break;
    91428093
    91438094  case 745:
    9144 
    9145 /* Line 1806 of yacc.c  */
    9146 #line 2808 "parser.yy"
    9147     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     8095#line 2808 "parser.yy" /* yacc.c:1646  */
     8096    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
     8097#line 8098 "Parser/parser.cc" /* yacc.c:1646  */
    91488098    break;
    91498099
    91508100  case 748:
    9151 
    9152 /* Line 1806 of yacc.c  */
    9153 #line 2832 "parser.yy"
     8101#line 2832 "parser.yy" /* yacc.c:1646  */
    91548102    { (yyval.en) = 0; }
     8103#line 8104 "Parser/parser.cc" /* yacc.c:1646  */
    91558104    break;
    91568105
    91578106  case 749:
    9158 
    9159 /* Line 1806 of yacc.c  */
    9160 #line 2834 "parser.yy"
    9161     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    9162     break;
    9163 
    9164 
    9165 
    9166 /* Line 1806 of yacc.c  */
    9167 #line 9168 "Parser/parser.cc"
     8107#line 2834 "parser.yy" /* yacc.c:1646  */
     8108    { (yyval.en) = (yyvsp[0].en); }
     8109#line 8110 "Parser/parser.cc" /* yacc.c:1646  */
     8110    break;
     8111
     8112
     8113#line 8114 "Parser/parser.cc" /* yacc.c:1646  */
    91688114      default: break;
    91698115    }
     
    91878133  *++yyvsp = yyval;
    91888134
    9189   /* Now `shift' the result of the reduction.  Determine what state
     8135  /* Now 'shift' the result of the reduction.  Determine what state
    91908136     that goes to, based on the state we popped back to and the rule
    91918137     number reduced by.  */
     
    92028148
    92038149
    9204 /*------------------------------------.
    9205 | yyerrlab -- here on detecting error |
    9206 `------------------------------------*/
     8150/*--------------------------------------.
     8151| yyerrlab -- here on detecting error. |
     8152`--------------------------------------*/
    92078153yyerrlab:
    92088154  /* Make sure we have latest lookahead translation.  See comments at
     
    92558201    {
    92568202      /* If just tried and failed to reuse lookahead token after an
    9257         error, discard it.  */
     8203        error, discard it.  */
    92588204
    92598205      if (yychar <= YYEOF)
    9260         {
    9261           /* Return failure if at end of input.  */
    9262           if (yychar == YYEOF)
    9263             YYABORT;
    9264         }
     8206        {
     8207          /* Return failure if at end of input.  */
     8208          if (yychar == YYEOF)
     8209            YYABORT;
     8210        }
    92658211      else
    9266         {
    9267           yydestruct ("Error: discarding",
    9268                       yytoken, &yylval);
    9269           yychar = YYEMPTY;
    9270         }
     8212        {
     8213          yydestruct ("Error: discarding",
     8214                      yytoken, &yylval);
     8215          yychar = YYEMPTY;
     8216        }
    92718217    }
    92728218
     
    92878233     goto yyerrorlab;
    92888234
    9289   /* Do not reclaim the symbols of the rule which action triggered
     8235  /* Do not reclaim the symbols of the rule whose action triggered
    92908236     this YYERROR.  */
    92918237  YYPOPSTACK (yylen);
     
    93008246`-------------------------------------------------------------*/
    93018247yyerrlab1:
    9302   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     8248  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    93038249
    93048250  for (;;)
     
    93068252      yyn = yypact[yystate];
    93078253      if (!yypact_value_is_default (yyn))
    9308         {
    9309           yyn += YYTERROR;
    9310           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    9311             {
    9312               yyn = yytable[yyn];
    9313               if (0 < yyn)
    9314                 break;
    9315             }
    9316         }
     8254        {
     8255          yyn += YYTERROR;
     8256          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     8257            {
     8258              yyn = yytable[yyn];
     8259              if (0 < yyn)
     8260                break;
     8261            }
     8262        }
    93178263
    93188264      /* Pop the current state because it cannot handle the error token.  */
    93198265      if (yyssp == yyss)
    9320         YYABORT;
     8266        YYABORT;
    93218267
    93228268
    93238269      yydestruct ("Error: popping",
    9324                   yystos[yystate], yyvsp);
     8270                  yystos[yystate], yyvsp);
    93258271      YYPOPSTACK (1);
    93268272      yystate = *yyssp;
     
    93288274    }
    93298275
     8276  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    93308277  *++yyvsp = yylval;
     8278  YY_IGNORE_MAYBE_UNINITIALIZED_END
    93318279
    93328280
     
    93528300  goto yyreturn;
    93538301
    9354 #if !defined(yyoverflow) || YYERROR_VERBOSE
     8302#if !defined yyoverflow || YYERROR_VERBOSE
    93558303/*-------------------------------------------------.
    93568304| yyexhaustedlab -- memory exhaustion comes here.  |
     
    93718319                  yytoken, &yylval);
    93728320    }
    9373   /* Do not reclaim the symbols of the rule which action triggered
     8321  /* Do not reclaim the symbols of the rule whose action triggered
    93748322     this YYABORT or YYACCEPT.  */
    93758323  YYPOPSTACK (yylen);
     
    93788326    {
    93798327      yydestruct ("Cleanup: popping",
    9380                   yystos[*yyssp], yyvsp);
     8328                  yystos[*yyssp], yyvsp);
    93818329      YYPOPSTACK (1);
    93828330    }
     
    93898337    YYSTACK_FREE (yymsg);
    93908338#endif
    9391   /* Make sure YYID is used.  */
    9392   return YYID (yyresult);
     8339  return yyresult;
    93938340}
    9394 
    9395 
    9396 
    9397 /* Line 2067 of yacc.c  */
    9398 #line 2837 "parser.yy"
     8341#line 2837 "parser.yy" /* yacc.c:1906  */
    93998342
    94008343// ----end of grammar----
     
    94158358// compile-command: "make install" //
    94168359// End: //
    9417 
  • src/Parser/parser.h

    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 interface 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.  */
    3232
    33 
    34 /* Tokens.  */
     33#ifndef YY_YY_PARSER_PARSER_H_INCLUDED
     34# define YY_YY_PARSER_PARSER_H_INCLUDED
     35/* Debug traces.  */
     36#ifndef YYDEBUG
     37# define YYDEBUG 1
     38#endif
     39#if YYDEBUG
     40extern int yydebug;
     41#endif
     42
     43/* Token type.  */
    3544#ifndef YYTOKENTYPE
    3645# define YYTOKENTYPE
    37    /* Put the tokens into the symbol table, so that GDB and other debuggers
    38       know about them.  */
    39    enum yytokentype {
    40      TYPEDEF = 258,
    41      AUTO = 259,
    42      EXTERN = 260,
    43      REGISTER = 261,
    44      STATIC = 262,
    45      INLINE = 263,
    46      FORTRAN = 264,
    47      CONST = 265,
    48      VOLATILE = 266,
    49      RESTRICT = 267,
    50      FORALL = 268,
    51      LVALUE = 269,
    52      VOID = 270,
    53      CHAR = 271,
    54      SHORT = 272,
    55      INT = 273,
    56      LONG = 274,
    57      FLOAT = 275,
    58      DOUBLE = 276,
    59      SIGNED = 277,
    60      UNSIGNED = 278,
    61      VALIST = 279,
    62      BOOL = 280,
    63      COMPLEX = 281,
    64      IMAGINARY = 282,
    65      TYPEOF = 283,
    66      LABEL = 284,
    67      ENUM = 285,
    68      STRUCT = 286,
    69      UNION = 287,
    70      OTYPE = 288,
    71      FTYPE = 289,
    72      DTYPE = 290,
    73      TRAIT = 291,
    74      SIZEOF = 292,
    75      OFFSETOF = 293,
    76      ATTRIBUTE = 294,
    77      EXTENSION = 295,
    78      IF = 296,
    79      ELSE = 297,
    80      SWITCH = 298,
    81      CASE = 299,
    82      DEFAULT = 300,
    83      DO = 301,
    84      WHILE = 302,
    85      FOR = 303,
    86      BREAK = 304,
    87      CONTINUE = 305,
    88      GOTO = 306,
    89      RETURN = 307,
    90      CHOOSE = 308,
    91      DISABLE = 309,
    92      ENABLE = 310,
    93      FALLTHRU = 311,
    94      TRY = 312,
    95      CATCH = 313,
    96      CATCHRESUME = 314,
    97      FINALLY = 315,
    98      THROW = 316,
    99      THROWRESUME = 317,
    100      AT = 318,
    101      ASM = 319,
    102      ALIGNAS = 320,
    103      ALIGNOF = 321,
    104      ATOMIC = 322,
    105      GENERIC = 323,
    106      NORETURN = 324,
    107      STATICASSERT = 325,
    108      THREADLOCAL = 326,
    109      IDENTIFIER = 327,
    110      QUOTED_IDENTIFIER = 328,
    111      TYPEDEFname = 329,
    112      TYPEGENname = 330,
    113      ATTR_IDENTIFIER = 331,
    114      ATTR_TYPEDEFname = 332,
    115      ATTR_TYPEGENname = 333,
    116      INTEGERconstant = 334,
    117      FLOATINGconstant = 335,
    118      CHARACTERconstant = 336,
    119      STRINGliteral = 337,
    120      ZERO = 338,
    121      ONE = 339,
    122      ARROW = 340,
    123      ICR = 341,
    124      DECR = 342,
    125      LS = 343,
    126      RS = 344,
    127      LE = 345,
    128      GE = 346,
    129      EQ = 347,
    130      NE = 348,
    131      ANDAND = 349,
    132      OROR = 350,
    133      ELLIPSIS = 351,
    134      MULTassign = 352,
    135      DIVassign = 353,
    136      MODassign = 354,
    137      PLUSassign = 355,
    138      MINUSassign = 356,
    139      LSassign = 357,
    140      RSassign = 358,
    141      ANDassign = 359,
    142      ERassign = 360,
    143      ORassign = 361,
    144      ATassign = 362,
    145      THEN = 363
    146    };
     46  enum yytokentype
     47  {
     48    TYPEDEF = 258,
     49    AUTO = 259,
     50    EXTERN = 260,
     51    REGISTER = 261,
     52    STATIC = 262,
     53    INLINE = 263,
     54    FORTRAN = 264,
     55    CONST = 265,
     56    VOLATILE = 266,
     57    RESTRICT = 267,
     58    FORALL = 268,
     59    LVALUE = 269,
     60    VOID = 270,
     61    CHAR = 271,
     62    SHORT = 272,
     63    INT = 273,
     64    LONG = 274,
     65    FLOAT = 275,
     66    DOUBLE = 276,
     67    SIGNED = 277,
     68    UNSIGNED = 278,
     69    VALIST = 279,
     70    BOOL = 280,
     71    COMPLEX = 281,
     72    IMAGINARY = 282,
     73    TYPEOF = 283,
     74    LABEL = 284,
     75    ENUM = 285,
     76    STRUCT = 286,
     77    UNION = 287,
     78    OTYPE = 288,
     79    FTYPE = 289,
     80    DTYPE = 290,
     81    TRAIT = 291,
     82    SIZEOF = 292,
     83    OFFSETOF = 293,
     84    ATTRIBUTE = 294,
     85    EXTENSION = 295,
     86    IF = 296,
     87    ELSE = 297,
     88    SWITCH = 298,
     89    CASE = 299,
     90    DEFAULT = 300,
     91    DO = 301,
     92    WHILE = 302,
     93    FOR = 303,
     94    BREAK = 304,
     95    CONTINUE = 305,
     96    GOTO = 306,
     97    RETURN = 307,
     98    CHOOSE = 308,
     99    DISABLE = 309,
     100    ENABLE = 310,
     101    FALLTHRU = 311,
     102    TRY = 312,
     103    CATCH = 313,
     104    CATCHRESUME = 314,
     105    FINALLY = 315,
     106    THROW = 316,
     107    THROWRESUME = 317,
     108    AT = 318,
     109    ASM = 319,
     110    ALIGNAS = 320,
     111    ALIGNOF = 321,
     112    ATOMIC = 322,
     113    GENERIC = 323,
     114    NORETURN = 324,
     115    STATICASSERT = 325,
     116    THREADLOCAL = 326,
     117    IDENTIFIER = 327,
     118    QUOTED_IDENTIFIER = 328,
     119    TYPEDEFname = 329,
     120    TYPEGENname = 330,
     121    ATTR_IDENTIFIER = 331,
     122    ATTR_TYPEDEFname = 332,
     123    ATTR_TYPEGENname = 333,
     124    INTEGERconstant = 334,
     125    FLOATINGconstant = 335,
     126    CHARACTERconstant = 336,
     127    STRINGliteral = 337,
     128    ZERO = 338,
     129    ONE = 339,
     130    ARROW = 340,
     131    ICR = 341,
     132    DECR = 342,
     133    LS = 343,
     134    RS = 344,
     135    LE = 345,
     136    GE = 346,
     137    EQ = 347,
     138    NE = 348,
     139    ANDAND = 349,
     140    OROR = 350,
     141    ELLIPSIS = 351,
     142    MULTassign = 352,
     143    DIVassign = 353,
     144    MODassign = 354,
     145    PLUSassign = 355,
     146    MINUSassign = 356,
     147    LSassign = 357,
     148    RSassign = 358,
     149    ANDassign = 359,
     150    ERassign = 360,
     151    ORassign = 361,
     152    ATassign = 362,
     153    THEN = 363
     154  };
    147155#endif
    148156/* Tokens.  */
     
    254262#define THEN 363
    255263
    256 
    257 
    258 
     264/* Value type.  */
    259265#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    260 typedef union YYSTYPE
     266typedef union YYSTYPE YYSTYPE;
     267union YYSTYPE
    261268{
    262 
    263 /* Line 2068 of yacc.c  */
    264 #line 115 "parser.yy"
     269#line 115 "parser.yy" /* yacc.c:1909  */
    265270
    266271        Token tok;
     
    278283        bool flag;
    279284
    280 
    281 
    282 /* Line 2068 of yacc.c  */
    283 #line 284 "Parser/parser.h"
    284 } YYSTYPE;
     285#line 286 "Parser/parser.h" /* yacc.c:1909  */
     286};
    285287# define YYSTYPE_IS_TRIVIAL 1
    286 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    287288# define YYSTYPE_IS_DECLARED 1
    288289#endif
    289290
     291
    290292extern YYSTYPE yylval;
    291293
    292 
     294int yyparse (void);
     295
     296#endif /* !YY_YY_PARSER_PARSER_H_INCLUDED  */
  • src/Parser/parser.yy

    r8b7ee09 rac71a86  
    311311constant:
    312312                // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant".
    313 INTEGERconstant                                                                 { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
    314         | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    315         | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( *$1 ) ); }
     313        INTEGERconstant                                                                 { $$ = new ExpressionNode( build_constantInteger( assign_strptr($1) ) ); }
     314        | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( assign_strptr($1) ) ); }
     315        | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( assign_strptr($1) ) ); }
    316316        ;
    317317
     
    338338
    339339string_literal_list:                                                                    // juxtaposed strings are concatenated
    340         STRINGliteral                                                           { $$ = build_constantStr( *$1 ); }
     340        STRINGliteral                                                           { $$ = build_constantStr( assign_strptr($1) ); }
    341341        | string_literal_list STRINGliteral
    342342                {
     
    838838jump_statement:
    839839        GOTO IDENTIFIER ';'
    840                 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Goto ) ); }
     840                { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Goto ) ); }
    841841        | GOTO '*' comma_expression ';'                                         // GCC, computed goto
    842842                // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3);
     
    849849                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    850850                // the target of the transfer appears only at the start of an iteration statement.
    851                 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Continue ) ); delete $2; }
     851                { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Continue ) ); }
    852852        | BREAK ';'
    853853                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
     
    856856                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    857857                // the target of the transfer appears only at the start of an iteration statement.
    858                 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Break ) ); delete $2; }
     858                { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Break ) ); }
    859859        | RETURN comma_expression_opt ';'
    860860                { $$ = new StatementNode( build_return( $2 ) ); }
     
    979979label_list:
    980980        no_attr_identifier
    981                 { $$ = new LabelNode(); $$->labels.push_back( *$1 ); }
     981                { $$ = new LabelNode(); $$->labels.push_back( assign_strptr($1) ); }
    982982        | label_list ',' no_attr_identifier
    983                 { $$ = $1; $1->labels.push_back( *$3 ); }
     983                { $$ = $1; $1->labels.push_back( assign_strptr($3) ); }
    984984        ;
    985985
     
    19931993                {
    19941994                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    1995                         linkage = LinkageSpec::fromString( *$2 );
     1995                        linkage = LinkageSpec::fromString( assign_strptr($2) );
    19961996                }
    19971997          '{' external_definition_list_opt '}'                          // C++-style linkage specifier
  • src/SynTree/Expression.cc

    r8b7ee09 rac71a86  
    383383                Expression( _aname ), function(_function), args(_args) {}
    384384
    385 UntypedExpr::~UntypedExpr() {}
     385UntypedExpr::~UntypedExpr() {
     386        delete function;
     387}
    386388
    387389void UntypedExpr::print( std::ostream &os, int indent ) const {
  • src/SynTree/Statement.cc

    r8b7ee09 rac71a86  
    124124        Statement( other ), condition( maybeClone( other.condition ) ), thenPart( maybeClone( other.thenPart ) ), elsePart( maybeClone( other.elsePart ) ) {}
    125125
    126 IfStmt::~IfStmt() {}
     126IfStmt::~IfStmt() {
     127        delete condition;
     128        delete thenPart;
     129        delete elsePart;
     130}
    127131
    128132void IfStmt::print( std::ostream &os, int indent ) const {
Note: See TracChangeset for help on using the changeset viewer.