Changes in / [04c8bba:0edebf8]


Ignore:
Location:
src
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    r04c8bba r0edebf8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:51:27 2016
    13 // Update Count     : 362
     12// Last Modified On : Thu Aug  4 13:35:30 2016
     13// Update Count     : 352
    1414//
    1515
     
    5757                if ( decl->get_extension() ) {
    5858                        output << "__extension__ ";
    59                 } // if
    60         } // extension
    61 
    62         void CodeGenerator::asmName( DeclarationWithType * decl ) {
    63                 if ( ConstantExpr * asmName = decl->get_asmName() ) {
    64                         output << " asm ( " << asmName->get_constant()->get_value() << " )";
    6559                } // if
    6660        } // extension
     
    147141                } // if
    148142
    149                 asmName( functionDecl );
    150 
    151143                // acceptAll( functionDecl->get_oldDecls(), *this );
    152144                if ( functionDecl->get_statements() ) {
     
    161153                handleStorageClass( objectDecl );
    162154                output << genType( objectDecl->get_type(), mangleName( objectDecl ) );
    163 
    164                 asmName( objectDecl );
    165155
    166156                if ( objectDecl->get_init() ) {
  • src/CodeGen/CodeGenerator.h

    r04c8bba r0edebf8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:51:53 2016
    13 // Update Count     : 39
     12// Last Modified On : Thu Aug  4 13:37:07 2016
     13// Update Count     : 38
    1414//
    1515
     
    107107                };
    108108
    109                 void asmName( DeclarationWithType *decl );
    110 
    111109                void extension( Expression *expr );
    112110                void extension( Declaration *decl );
  • src/CodeGen/OperatorTable.cc

    r04c8bba r0edebf8  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:33:05 2016
    13 // Update Count     : 10
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Thu Apr 14 16:48:27 2016
     13// Update Count     : 9
    1414//
    1515
     
    2121                const OperatorInfo tableValues[] = {
    2222                        {       "?[?]",         "",             "_operator_index",                              OT_INDEX                        },
    23                         {       "?{}",          "=",    "_constructor",                                 OT_CTOR                         },
     23                        {       "?{}",          "=",            "_constructor",                                 OT_CTOR                         },
    2424                        {       "^?{}",         "",             "_destructor",                                  OT_DTOR                         },
    2525                        {       "?()",          "",             "_operator_call",                               OT_CALL                         },
  • src/Parser/DeclarationNode.cc

    r04c8bba r0edebf8  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:43:38 2016
    13 // Update Count     : 660
     12// Last Modified On : Mon Oct  3 18:03:08 2016
     13// Update Count     : 651
    1414//
    1515
     
    4848                type( nullptr ),
    4949                storageClass( NoStorageClass ),
    50                 bitfieldWidth( nullptr ),
    5150                isInline( false ),
    5251                isNoreturn( false ),
     52                bitfieldWidth( nullptr ),
     53                initializer( nullptr ),
    5354                hasEllipsis( false ),
    5455                linkage( ::linkage ),
    55                 asmName( nullptr ),
    56                 initializer( nullptr ),
    5756                extension( false ) {
    5857
     
    7675        delete type;
    7776        delete bitfieldWidth;
    78         // asmName, no delete, passed to next stage
    7977        delete initializer;
    8078}
     
    9290        newnode->set_next( maybeClone( get_next() ) );
    9391        newnode->linkage = linkage;
    94         newnode->asmName = maybeClone( asmName );
    9592
    9693//      newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
     
    644641}
    645642
    646 DeclarationNode * DeclarationNode::addAsmName( ConstantExpr * newname ) {
    647         assert( ! asmName );
    648         asmName = newname;
    649         return this;
    650 }
    651 
    652643DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) {
    653644        bitfieldWidth = size;
     
    956947
    957948        if ( type ) {
    958                 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer) )->set_extension( extension );
     949                return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );
    959950        } // if
    960951
    961952        if ( ! isInline && ! isNoreturn ) {
    962953                assertf( name, "ObjectDecl are assumed to have names\n" );
    963                 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_asmName( asmName )->set_extension( extension );
     954                return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_extension( extension );
    964955        } // if
    965956
  • src/Parser/ParseNode.h

    r04c8bba r0edebf8  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:26:56 2016
    13 // Update Count     : 642
     12// Last Modified On : Mon Oct  3 18:03:08 2016
     13// Update Count     : 636
    1414//
    1515
     
    7373        InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr );
    7474        ~InitializerNode();
    75         virtual InitializerNode * clone() const { return nullptr; }
     75        virtual InitializerNode * clone() const { assert( false ); return nullptr; }
    7676
    7777        ExpressionNode * get_expression() const { return expr; }
     
    257257        DeclarationNode * addAssertions( DeclarationNode * );
    258258        DeclarationNode * addName( std::string * );
    259         DeclarationNode * addAsmName( ConstantExpr * );
    260259        DeclarationNode * addBitfield( ExpressionNode * size );
    261260        DeclarationNode * addVarArgs();
     
    310309        TypeData * type;
    311310        StorageClass storageClass;
     311        bool isInline, isNoreturn;
     312        std::list< std::string > attributes;
    312313        ExpressionNode * bitfieldWidth;
    313         bool isInline, isNoreturn;
    314314        std::unique_ptr<ExpressionNode> enumeratorValue;
     315        InitializerNode * initializer;
    315316        bool hasEllipsis;
    316317        LinkageSpec::Spec linkage;
    317         ConstantExpr *asmName;
    318         std::list< std::string > attributes;
    319         InitializerNode * initializer;
    320318        bool extension = false;
    321319        std::string error;
  • src/Parser/TypeData.cc

    r04c8bba r0edebf8  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:40:33 2016
    13 // Update Count     : 420
     12// Last Modified On : Sat Sep 24 11:14:26 2016
     13// Update Count     : 415
    1414//
    1515
     
    721721} // buildTypeof
    722722
    723 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init ) {
     723Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) {
    724724        if ( td->kind == TypeData::Function ) {
    725725                FunctionDecl * decl;
     
    743743                } // for
    744744                buildList( td->function.oldDeclList, decl->get_oldDecls() );
    745                 return decl->set_asmName( asmName );
     745                return decl;
    746746        } else if ( td->kind == TypeData::Aggregate ) {
    747747                return buildAggregate( td );
     
    751751                return buildSymbolic( td, name, sc );
    752752        } else {
    753                 return (new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn ))->set_asmName( asmName );
     753                return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn );
    754754        } // if
    755755        return nullptr;
     
    769769                        break;
    770770                  default:
    771                         ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base,  "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall, nullptr ) ) );
     771                        ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base,  "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall ) ) );
    772772                } // switch
    773773        } else {
  • src/Parser/TypeData.h

    r04c8bba r0edebf8  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:39:39 2016
    13 // Update Count     : 143
     12// Last Modified On : Mon Oct  3 12:34:08 2016
     13// Update Count     : 142
    1414//
    1515
     
    111111TupleType * buildTuple( const TypeData * );
    112112TypeofType * buildTypeof( const TypeData * );
    113 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr );
     113Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = nullptr );
    114114FunctionType * buildFunction( const TypeData * );
    115115
  • src/Parser/parser.cc

    r04c8bba r0edebf8  
    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
     
    9591} // appendStr
    9692
    97 
    98 /* Line 268 of yacc.c  */
    99 #line 100 "Parser/parser.cc"
    100 
    101 /* Enabling traces.  */
    102 #ifndef YYDEBUG
    103 # define YYDEBUG 1
    104 #endif
     93#line 94 "Parser/parser.cc" /* yacc.c:339  */
     94
     95# ifndef YY_NULLPTR
     96#  if defined __cplusplus && 201103L <= __cplusplus
     97#   define YY_NULLPTR nullptr
     98#  else
     99#   define YY_NULLPTR 0
     100#  endif
     101# endif
    105102
    106103/* Enabling verbose error messages.  */
     
    112109#endif
    113110
    114 /* Enabling the token table.  */
    115 #ifndef YYTOKEN_TABLE
    116 # define YYTOKEN_TABLE 0
     111/* In a future release of Bison, this section will be replaced
     112   by #include "y.tab.h".  */
     113#ifndef YY_YY_Y_TAB_H_INCLUDED
     114# define YY_YY_Y_TAB_H_INCLUDED
     115/* Debug traces.  */
     116#ifndef YYDEBUG
     117# define YYDEBUG 1
    117118#endif
    118 
    119 
    120 /* Tokens.  */
     119#if YYDEBUG
     120extern int yydebug;
     121#endif
     122
     123/* Token type.  */
    121124#ifndef YYTOKENTYPE
    122125# define YYTOKENTYPE
    123    /* Put the tokens into the symbol table, so that GDB and other debuggers
    124       know about them.  */
    125    enum yytokentype {
    126      TYPEDEF = 258,
    127      AUTO = 259,
    128      EXTERN = 260,
    129      REGISTER = 261,
    130      STATIC = 262,
    131      INLINE = 263,
    132      FORTRAN = 264,
    133      CONST = 265,
    134      VOLATILE = 266,
    135      RESTRICT = 267,
    136      FORALL = 268,
    137      LVALUE = 269,
    138      VOID = 270,
    139      CHAR = 271,
    140      SHORT = 272,
    141      INT = 273,
    142      LONG = 274,
    143      FLOAT = 275,
    144      DOUBLE = 276,
    145      SIGNED = 277,
    146      UNSIGNED = 278,
    147      ZERO_T = 279,
    148      ONE_T = 280,
    149      VALIST = 281,
    150      BOOL = 282,
    151      COMPLEX = 283,
    152      IMAGINARY = 284,
    153      TYPEOF = 285,
    154      LABEL = 286,
    155      ENUM = 287,
    156      STRUCT = 288,
    157      UNION = 289,
    158      OTYPE = 290,
    159      FTYPE = 291,
    160      DTYPE = 292,
    161      TRAIT = 293,
    162      SIZEOF = 294,
    163      OFFSETOF = 295,
    164      ATTRIBUTE = 296,
    165      EXTENSION = 297,
    166      IF = 298,
    167      ELSE = 299,
    168      SWITCH = 300,
    169      CASE = 301,
    170      DEFAULT = 302,
    171      DO = 303,
    172      WHILE = 304,
    173      FOR = 305,
    174      BREAK = 306,
    175      CONTINUE = 307,
    176      GOTO = 308,
    177      RETURN = 309,
    178      CHOOSE = 310,
    179      DISABLE = 311,
    180      ENABLE = 312,
    181      FALLTHRU = 313,
    182      TRY = 314,
    183      CATCH = 315,
    184      CATCHRESUME = 316,
    185      FINALLY = 317,
    186      THROW = 318,
    187      THROWRESUME = 319,
    188      AT = 320,
    189      ASM = 321,
    190      ALIGNAS = 322,
    191      ALIGNOF = 323,
    192      ATOMIC = 324,
    193      GENERIC = 325,
    194      NORETURN = 326,
    195      STATICASSERT = 327,
    196      THREADLOCAL = 328,
    197      IDENTIFIER = 329,
    198      QUOTED_IDENTIFIER = 330,
    199      TYPEDEFname = 331,
    200      TYPEGENname = 332,
    201      ATTR_IDENTIFIER = 333,
    202      ATTR_TYPEDEFname = 334,
    203      ATTR_TYPEGENname = 335,
    204      INTEGERconstant = 336,
    205      CHARACTERconstant = 337,
    206      STRINGliteral = 338,
    207      REALDECIMALconstant = 339,
    208      REALFRACTIONconstant = 340,
    209      FLOATINGconstant = 341,
    210      ZERO = 342,
    211      ONE = 343,
    212      ARROW = 344,
    213      ICR = 345,
    214      DECR = 346,
    215      LS = 347,
    216      RS = 348,
    217      LE = 349,
    218      GE = 350,
    219      EQ = 351,
    220      NE = 352,
    221      ANDAND = 353,
    222      OROR = 354,
    223      ELLIPSIS = 355,
    224      MULTassign = 356,
    225      DIVassign = 357,
    226      MODassign = 358,
    227      PLUSassign = 359,
    228      MINUSassign = 360,
    229      LSassign = 361,
    230      RSassign = 362,
    231      ANDassign = 363,
    232      ERassign = 364,
    233      ORassign = 365,
    234      ATassign = 366,
    235      THEN = 367
    236    };
     126  enum yytokentype
     127  {
     128    TYPEDEF = 258,
     129    AUTO = 259,
     130    EXTERN = 260,
     131    REGISTER = 261,
     132    STATIC = 262,
     133    INLINE = 263,
     134    FORTRAN = 264,
     135    CONST = 265,
     136    VOLATILE = 266,
     137    RESTRICT = 267,
     138    FORALL = 268,
     139    LVALUE = 269,
     140    VOID = 270,
     141    CHAR = 271,
     142    SHORT = 272,
     143    INT = 273,
     144    LONG = 274,
     145    FLOAT = 275,
     146    DOUBLE = 276,
     147    SIGNED = 277,
     148    UNSIGNED = 278,
     149    ZERO_T = 279,
     150    ONE_T = 280,
     151    VALIST = 281,
     152    BOOL = 282,
     153    COMPLEX = 283,
     154    IMAGINARY = 284,
     155    TYPEOF = 285,
     156    LABEL = 286,
     157    ENUM = 287,
     158    STRUCT = 288,
     159    UNION = 289,
     160    OTYPE = 290,
     161    FTYPE = 291,
     162    DTYPE = 292,
     163    TRAIT = 293,
     164    SIZEOF = 294,
     165    OFFSETOF = 295,
     166    ATTRIBUTE = 296,
     167    EXTENSION = 297,
     168    IF = 298,
     169    ELSE = 299,
     170    SWITCH = 300,
     171    CASE = 301,
     172    DEFAULT = 302,
     173    DO = 303,
     174    WHILE = 304,
     175    FOR = 305,
     176    BREAK = 306,
     177    CONTINUE = 307,
     178    GOTO = 308,
     179    RETURN = 309,
     180    CHOOSE = 310,
     181    DISABLE = 311,
     182    ENABLE = 312,
     183    FALLTHRU = 313,
     184    TRY = 314,
     185    CATCH = 315,
     186    CATCHRESUME = 316,
     187    FINALLY = 317,
     188    THROW = 318,
     189    THROWRESUME = 319,
     190    AT = 320,
     191    ASM = 321,
     192    ALIGNAS = 322,
     193    ALIGNOF = 323,
     194    ATOMIC = 324,
     195    GENERIC = 325,
     196    NORETURN = 326,
     197    STATICASSERT = 327,
     198    THREADLOCAL = 328,
     199    IDENTIFIER = 329,
     200    QUOTED_IDENTIFIER = 330,
     201    TYPEDEFname = 331,
     202    TYPEGENname = 332,
     203    ATTR_IDENTIFIER = 333,
     204    ATTR_TYPEDEFname = 334,
     205    ATTR_TYPEGENname = 335,
     206    INTEGERconstant = 336,
     207    CHARACTERconstant = 337,
     208    STRINGliteral = 338,
     209    REALDECIMALconstant = 339,
     210    REALFRACTIONconstant = 340,
     211    FLOATINGconstant = 341,
     212    ZERO = 342,
     213    ONE = 343,
     214    ARROW = 344,
     215    ICR = 345,
     216    DECR = 346,
     217    LS = 347,
     218    RS = 348,
     219    LE = 349,
     220    GE = 350,
     221    EQ = 351,
     222    NE = 352,
     223    ANDAND = 353,
     224    OROR = 354,
     225    ELLIPSIS = 355,
     226    MULTassign = 356,
     227    DIVassign = 357,
     228    MODassign = 358,
     229    PLUSassign = 359,
     230    MINUSassign = 360,
     231    LSassign = 361,
     232    RSassign = 362,
     233    ANDassign = 363,
     234    ERassign = 364,
     235    ORassign = 365,
     236    ATassign = 366,
     237    THEN = 367
     238  };
    237239#endif
    238240/* Tokens.  */
     
    348350#define THEN 367
    349351
    350 
    351 
    352 
     352/* Value type.  */
    353353#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    354 typedef union YYSTYPE
     354typedef union YYSTYPE YYSTYPE;
     355union YYSTYPE
    355356{
    356 
    357 /* Line 293 of yacc.c  */
    358 #line 120 "parser.yy"
     357#line 120 "parser.yy" /* yacc.c:355  */
    359358
    360359        Token tok;
     
    373372        bool flag;
    374373
    375 
    376 
    377 /* Line 293 of yacc.c  */
    378 #line 379 "Parser/parser.cc"
    379 } YYSTYPE;
     374#line 375 "Parser/parser.cc" /* yacc.c:355  */
     375};
    380376# define YYSTYPE_IS_TRIVIAL 1
    381 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    382377# define YYSTYPE_IS_DECLARED 1
    383378#endif
    384379
    385380
     381extern YYSTYPE yylval;
     382
     383int yyparse (void);
     384
     385#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
     386
    386387/* Copy the second part of user declarations.  */
    387388
    388 
    389 /* Line 343 of yacc.c  */
    390 #line 391 "Parser/parser.cc"
     389#line 390 "Parser/parser.cc" /* yacc.c:358  */
    391390
    392391#ifdef short
     
    402401#ifdef YYTYPE_INT8
    403402typedef YYTYPE_INT8 yytype_int8;
    404 #elif (defined __STDC__ || defined __C99__FUNC__ \
    405      || defined __cplusplus || defined _MSC_VER)
     403#else
    406404typedef signed char yytype_int8;
    407 #else
    408 typedef short int yytype_int8;
    409405#endif
    410406
     
    426422# elif defined size_t
    427423#  define YYSIZE_T size_t
    428 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    429      || defined __cplusplus || defined _MSC_VER)
     424# elif ! defined YYSIZE_T
    430425#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    431426#  define YYSIZE_T size_t
     
    441436#  if ENABLE_NLS
    442437#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    443 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     438#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    444439#  endif
    445440# endif
    446441# ifndef YY_
    447 #  define YY_(msgid) msgid
     442#  define YY_(Msgid) Msgid
    448443# endif
    449444#endif
    450445
     446#ifndef YY_ATTRIBUTE
     447# if (defined __GNUC__                                               \
     448      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
     449     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
     450#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
     451# else
     452#  define YY_ATTRIBUTE(Spec) /* empty */
     453# endif
     454#endif
     455
     456#ifndef YY_ATTRIBUTE_PURE
     457# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
     458#endif
     459
     460#ifndef YY_ATTRIBUTE_UNUSED
     461# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
     462#endif
     463
     464#if !defined _Noreturn \
     465     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
     466# if defined _MSC_VER && 1200 <= _MSC_VER
     467#  define _Noreturn __declspec (noreturn)
     468# else
     469#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
     470# endif
     471#endif
     472
    451473/* Suppress unused-variable warnings by "using" E.  */
    452474#if ! defined lint || defined __GNUC__
    453 # define YYUSE(e) ((void) (e))
     475# define YYUSE(E) ((void) (E))
    454476#else
    455 # define YYUSE(e) /* empty */
     477# define YYUSE(E) /* empty */
    456478#endif
    457479
    458 /* Identity function, used to suppress warnings about constant conditions.  */
    459 #ifndef lint
    460 # define YYID(n) (n)
     480#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
     481/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
     482# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
     483    _Pragma ("GCC diagnostic push") \
     484    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
     485    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
     486# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
     487    _Pragma ("GCC diagnostic pop")
    461488#else
    462 #if (defined __STDC__ || defined __C99__FUNC__ \
    463      || defined __cplusplus || defined _MSC_VER)
    464 static int
    465 YYID (int yyi)
    466 #else
    467 static int
    468 YYID (yyi)
    469     int yyi;
     489# define YY_INITIAL_VALUE(Value) Value
    470490#endif
    471 {
    472   return yyi;
    473 }
     491#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     492# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     493# define YY_IGNORE_MAYBE_UNINITIALIZED_END
    474494#endif
     495#ifndef YY_INITIAL_VALUE
     496# define YY_INITIAL_VALUE(Value) /* Nothing. */
     497#endif
     498
    475499
    476500#if ! defined yyoverflow || YYERROR_VERBOSE
     
    491515#   else
    492516#    define YYSTACK_ALLOC alloca
    493 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    494      || defined __cplusplus || defined _MSC_VER)
     517#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    495518#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     519      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    496520#     ifndef EXIT_SUCCESS
    497521#      define EXIT_SUCCESS 0
     
    503527
    504528# ifdef YYSTACK_ALLOC
    505    /* Pacify GCC's `empty if-body' warning.  */
    506 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     529   /* Pacify GCC's 'empty if-body' warning.  */
     530#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    507531#  ifndef YYSTACK_ALLOC_MAXIMUM
    508532    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    520544#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    521545       && ! ((defined YYMALLOC || defined malloc) \
    522              && (defined YYFREE || defined free)))
     546             && (defined YYFREE || defined free)))
    523547#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    524548#   ifndef EXIT_SUCCESS
     
    528552#  ifndef YYMALLOC
    529553#   define YYMALLOC malloc
    530 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    531      || defined __cplusplus || defined _MSC_VER)
     554#   if ! defined malloc && ! defined EXIT_SUCCESS
    532555void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    533556#   endif
     
    535558#  ifndef YYFREE
    536559#   define YYFREE free
    537 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    538      || defined __cplusplus || defined _MSC_VER)
     560#   if ! defined free && ! defined EXIT_SUCCESS
    539561void free (void *); /* INFRINGES ON USER NAME SPACE */
    540562#   endif
     
    546568#if (! defined yyoverflow \
    547569     && (! defined __cplusplus \
    548         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     570        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    549571
    550572/* A type that is properly aligned for any stack member.  */
     
    571593   stack.  Advance YYPTR to a properly aligned location for the next
    572594   stack.  */
    573 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    574     do                                                                  \
    575       {                                                                 \
    576         YYSIZE_T yynewbytes;                                            \
    577         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    578         Stack = &yyptr->Stack_alloc;                                    \
    579         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    580         yyptr += yynewbytes / sizeof (*yyptr);                          \
    581       }                                                                 \
    582     while (YYID (0))
     595# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     596    do                                                                  \
     597      {                                                                 \
     598        YYSIZE_T yynewbytes;                                            \
     599        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     600        Stack = &yyptr->Stack_alloc;                                    \
     601        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     602        yyptr += yynewbytes / sizeof (*yyptr);                          \
     603      }                                                                 \
     604    while (0)
    583605
    584606#endif
    585607
    586608#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    587 /* Copy COUNT objects from FROM to TO.  The source and destination do
     609/* Copy COUNT objects from SRC to DST.  The source and destination do
    588610   not overlap.  */
    589611# ifndef YYCOPY
    590612#  if defined __GNUC__ && 1 < __GNUC__
    591 #   define YYCOPY(To, From, Count) \
    592       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     613#   define YYCOPY(Dst, Src, Count) \
     614      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    593615#  else
    594 #   define YYCOPY(To, From, Count)              \
    595       do                                        \
    596         {                                       \
    597           YYSIZE_T yyi;                         \
    598           for (yyi = 0; yyi < (Count); yyi++)   \
    599             (To)[yyi] = (From)[yyi];            \
    600         }                                       \
    601       while (YYID (0))
     616#   define YYCOPY(Dst, Src, Count)              \
     617      do                                        \
     618        {                                       \
     619          YYSIZE_T yyi;                         \
     620          for (yyi = 0; yyi < (Count); yyi++)   \
     621            (Dst)[yyi] = (Src)[yyi];            \
     622        }                                       \
     623      while (0)
    602624#  endif
    603625# endif
     
    615637/* YYNRULES -- Number of rules.  */
    616638#define YYNRULES  757
    617 /* YYNRULES -- Number of states.  */
     639/* YYNSTATES -- Number of states.  */
    618640#define YYNSTATES  1540
    619641
    620 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     642/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
     643   by yylex, with out-of-bounds checking.  */
    621644#define YYUNDEFTOK  2
    622645#define YYMAXUTOK   367
    623646
    624 #define YYTRANSLATE(YYX)                                                \
     647#define YYTRANSLATE(YYX)                                                \
    625648  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    626649
    627 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     650/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
     651   as returned by yylex, without out-of-bounds checking.  */
    628652static const yytype_uint8 yytranslate[] =
    629653{
     
    668692
    669693#if YYDEBUG
    670 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    671    YYRHS.  */
    672 static const yytype_uint16 yyprhs[] =
    673 {
    674        0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    675       17,    19,    21,    23,    25,    27,    29,    31,    33,    35,
    676       37,    40,    42,    44,    46,    50,    54,    56,    63,    68,
    677       72,    80,    83,    87,    95,    98,   101,   109,   114,   116,
    678      120,   121,   123,   125,   129,   131,   134,   141,   145,   153,
    679      157,   165,   168,   171,   174,   175,   178,   180,   182,   184,
    680      187,   190,   193,   196,   199,   202,   207,   210,   215,   222,
    681      224,   229,   234,   236,   238,   240,   242,   244,   246,   248,
    682      253,   255,   259,   263,   267,   269,   273,   277,   279,   283,
    683      287,   289,   293,   297,   301,   305,   307,   311,   315,   317,
    684      321,   323,   327,   329,   333,   335,   339,   341,   345,   347,
    685      353,   358,   360,   362,   366,   367,   369,   371,   373,   375,
    686      377,   379,   381,   383,   385,   387,   389,   391,   393,   400,
    687      408,   410,   414,   416,   420,   421,   423,   425,   427,   429,
    688      431,   433,   435,   437,   439,   446,   451,   454,   462,   464,
    689      468,   470,   473,   475,   478,   480,   483,   486,   492,   500,
    690      506,   516,   522,   532,   534,   538,   540,   542,   546,   550,
    691      553,   555,   558,   561,   562,   564,   567,   571,   572,   574,
    692      577,   581,   585,   590,   591,   593,   595,   598,   604,   612,
    693      619,   626,   631,   635,   640,   643,   647,   650,   654,   658,
    694      662,   666,   672,   676,   680,   685,   687,   693,   700,   706,
    695      713,   723,   734,   744,   755,   758,   760,   763,   766,   769,
    696      771,   778,   787,   798,   811,   826,   827,   829,   830,   832,
    697      834,   838,   843,   851,   852,   854,   858,   860,   864,   866,
    698      868,   870,   874,   876,   878,   880,   884,   885,   887,   891,
    699      896,   898,   902,   904,   906,   910,   914,   918,   922,   926,
    700      929,   933,   940,   944,   948,   953,   955,   958,   961,   965,
    701      971,   979,   987,   993,  1003,  1006,  1009,  1015,  1019,  1025,
    702     1030,  1034,  1039,  1044,  1052,  1056,  1060,  1064,  1068,  1073,
    703     1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1096,  1097,
    704     1099,  1101,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,
    705     1119,  1125,  1127,  1130,  1134,  1136,  1139,  1141,  1143,  1145,
    706     1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,  1165,
    707     1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,  1185,
    708     1187,  1190,  1193,  1197,  1201,  1203,  1207,  1209,  1212,  1215,
    709     1218,  1223,  1228,  1233,  1238,  1240,  1243,  1246,  1250,  1252,
    710     1255,  1258,  1260,  1263,  1266,  1270,  1272,  1275,  1278,  1280,
    711     1282,  1287,  1290,  1291,  1298,  1306,  1309,  1312,  1315,  1316,
    712     1319,  1322,  1326,  1329,  1333,  1335,  1338,  1342,  1345,  1348,
    713     1353,  1354,  1356,  1359,  1362,  1364,  1365,  1367,  1370,  1373,
    714     1379,  1382,  1383,  1391,  1394,  1399,  1400,  1403,  1404,  1406,
    715     1408,  1410,  1416,  1422,  1428,  1430,  1436,  1442,  1452,  1454,
    716     1460,  1461,  1463,  1465,  1471,  1473,  1475,  1481,  1487,  1489,
    717     1493,  1497,  1502,  1504,  1506,  1508,  1510,  1513,  1515,  1519,
    718     1523,  1525,  1528,  1530,  1534,  1536,  1538,  1540,  1542,  1544,
    719     1546,  1548,  1550,  1552,  1554,  1556,  1559,  1561,  1563,  1565,
    720     1568,  1569,  1572,  1575,  1577,  1582,  1583,  1585,  1588,  1592,
    721     1597,  1600,  1603,  1605,  1608,  1611,  1617,  1623,  1631,  1638,
    722     1640,  1643,  1646,  1650,  1652,  1655,  1658,  1663,  1666,  1671,
    723     1672,  1677,  1680,  1682,  1684,  1686,  1687,  1690,  1696,  1702,
    724     1716,  1718,  1720,  1724,  1728,  1731,  1735,  1739,  1742,  1747,
    725     1749,  1756,  1766,  1767,  1779,  1781,  1785,  1789,  1793,  1795,
    726     1797,  1803,  1806,  1812,  1813,  1815,  1817,  1821,  1822,  1824,
    727     1826,  1828,  1830,  1831,  1838,  1841,  1843,  1846,  1851,  1854,
    728     1858,  1862,  1866,  1871,  1877,  1883,  1889,  1896,  1898,  1900,
    729     1902,  1906,  1907,  1913,  1914,  1916,  1918,  1921,  1928,  1930,
    730     1934,  1935,  1937,  1942,  1944,  1946,  1948,  1950,  1953,  1955,
    731     1958,  1961,  1963,  1967,  1970,  1974,  1978,  1981,  1986,  1991,
    732     1995,  2004,  2008,  2011,  2013,  2016,  2023,  2032,  2036,  2039,
    733     2043,  2047,  2052,  2057,  2061,  2063,  2065,  2067,  2072,  2079,
    734     2083,  2086,  2090,  2094,  2099,  2104,  2108,  2111,  2113,  2116,
    735     2119,  2121,  2125,  2128,  2132,  2136,  2139,  2144,  2149,  2153,
    736     2160,  2169,  2173,  2176,  2178,  2181,  2184,  2187,  2191,  2195,
    737     2198,  2203,  2208,  2212,  2219,  2228,  2232,  2235,  2237,  2240,
    738     2243,  2245,  2247,  2250,  2254,  2258,  2261,  2266,  2273,  2282,
    739     2284,  2287,  2290,  2292,  2295,  2298,  2302,  2306,  2308,  2313,
    740     2318,  2322,  2328,  2337,  2341,  2344,  2348,  2350,  2356,  2362,
    741     2369,  2376,  2378,  2381,  2384,  2386,  2389,  2392,  2396,  2400,
    742     2402,  2407,  2412,  2416,  2422,  2431,  2435,  2437,  2440,  2442,
    743     2445,  2452,  2458,  2465,  2473,  2481,  2483,  2486,  2489,  2491,
    744     2494,  2497,  2501,  2505,  2507,  2512,  2517,  2521,  2530,  2534,
    745     2536,  2538,  2541,  2543,  2545,  2548,  2552,  2555,  2559,  2562,
    746     2566,  2570,  2573,  2578,  2582,  2585,  2589,  2592,  2597,  2601,
    747     2604,  2611,  2618,  2625,  2633,  2635,  2638,  2640,  2642,  2644,
    748     2647,  2651,  2654,  2658,  2661,  2665,  2669,  2674,  2677,  2681,
    749     2686,  2689,  2695,  2702,  2709,  2710,  2712,  2713
    750 };
    751 
    752 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    753 static const yytype_int16 yyrhs[] =
    754 {
    755      308,     0,    -1,    -1,    -1,    81,    -1,    84,    -1,    85,
    756       -1,    86,    -1,    82,    -1,    74,    -1,    78,    -1,   144,
    757       -1,    74,    -1,    78,    -1,    74,    -1,   144,    -1,    87,
    758       -1,    88,    -1,   146,    -1,    83,    -1,   146,    83,    -1,
    759       74,    -1,   144,    -1,   174,    -1,   113,   176,   114,    -1,
    760      113,   180,   114,    -1,   147,    -1,   148,   115,   138,   171,
    761      139,   116,    -1,   148,   113,   149,   114,    -1,   148,   117,
    762      143,    -1,   148,   117,   115,   138,   151,   139,   116,    -1,
    763      148,    85,    -1,   148,    89,   143,    -1,   148,    89,   115,
    764      138,   151,   139,   116,    -1,   148,    90,    -1,   148,    91,
    765       -1,   113,   281,   114,   118,   285,   378,   119,    -1,   148,
    766      118,   149,   119,    -1,   150,    -1,   149,   120,   150,    -1,
    767       -1,   171,    -1,   152,    -1,   151,   120,   152,    -1,   153,
    768       -1,    84,   152,    -1,    84,   115,   138,   151,   139,   116,
    769       -1,   153,   117,   152,    -1,   153,   117,   115,   138,   151,
    770      139,   116,    -1,   153,    89,   152,    -1,   153,    89,   115,
    771      138,   151,   139,   116,    -1,    81,   154,    -1,    86,   154,
    772       -1,   143,   154,    -1,    -1,   154,    85,    -1,   148,    -1,
    773      140,    -1,   145,    -1,    42,   158,    -1,   156,   158,    -1,
    774      157,   158,    -1,    90,   155,    -1,    91,   155,    -1,    39,
    775      155,    -1,    39,   113,   281,   114,    -1,    68,   155,    -1,
    776       68,   113,   281,   114,    -1,    40,   113,   281,   120,   143,
    777      114,    -1,    78,    -1,    78,   113,   150,   114,    -1,    78,
    778      113,   282,   114,    -1,   121,    -1,   122,    -1,   123,    -1,
    779      124,    -1,   125,    -1,   126,    -1,   155,    -1,   113,   281,
    780      114,   158,    -1,   158,    -1,   159,   121,   158,    -1,   159,
    781      127,   158,    -1,   159,   128,   158,    -1,   159,    -1,   160,
    782      123,   159,    -1,   160,   124,   159,    -1,   160,    -1,   161,
    783       92,   160,    -1,   161,    93,   160,    -1,   161,    -1,   162,
    784      129,   161,    -1,   162,   130,   161,    -1,   162,    94,   161,
    785       -1,   162,    95,   161,    -1,   162,    -1,   163,    96,   162,
    786       -1,   163,    97,   162,    -1,   163,    -1,   164,   122,   163,
    787       -1,   164,    -1,   165,   131,   164,    -1,   165,    -1,   166,
    788      132,   165,    -1,   166,    -1,   167,    98,   166,    -1,   167,
    789       -1,   168,    99,   167,    -1,   168,    -1,   168,   133,   176,
    790      134,   169,    -1,   168,   133,   134,   169,    -1,   169,    -1,
    791      169,    -1,   155,   173,   171,    -1,    -1,   171,    -1,   135,
    792       -1,   111,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
    793       -1,   105,    -1,   106,    -1,   107,    -1,   108,    -1,   109,
    794       -1,   110,    -1,   115,   138,   120,   175,   139,   116,    -1,
    795      115,   138,   171,   120,   175,   139,   116,    -1,   172,    -1,
    796      175,   120,   172,    -1,   171,    -1,   176,   120,   171,    -1,
    797       -1,   176,    -1,   179,    -1,   180,    -1,   184,    -1,   185,
    798       -1,   197,    -1,   199,    -1,   200,    -1,   205,    -1,   131,
    799      148,   118,   149,   119,   136,    -1,    74,   134,   318,   178,
    800       -1,   118,   119,    -1,   118,   138,   138,   216,   181,   139,
    801      119,    -1,   182,    -1,   181,   138,   182,    -1,   219,    -1,
    802       42,   219,    -1,   314,    -1,   178,   139,    -1,   178,    -1,
    803      183,   178,    -1,   177,   136,    -1,    43,   113,   176,   114,
    804      178,    -1,    43,   113,   176,   114,   178,    44,   178,    -1,
    805       45,   113,   176,   114,   190,    -1,    45,   113,   176,   114,
    806      118,   138,   212,   191,   119,    -1,    55,   113,   176,   114,
    807      190,    -1,    55,   113,   176,   114,   118,   138,   212,   193,
    808      119,    -1,   170,    -1,   170,   100,   170,    -1,   316,    -1,
    809      186,    -1,   187,   120,   186,    -1,    46,   187,   134,    -1,
    810       47,   134,    -1,   188,    -1,   189,   188,    -1,   189,   178,
    811       -1,    -1,   192,    -1,   189,   183,    -1,   192,   189,   183,
    812       -1,    -1,   194,    -1,   189,   196,    -1,   189,   183,   195,
    813       -1,   194,   189,   196,    -1,   194,   189,   183,   195,    -1,
    814       -1,   196,    -1,    58,    -1,    58,   136,    -1,    49,   113,
    815      176,   114,   178,    -1,    48,   178,    49,   113,   176,   114,
    816      136,    -1,    50,   113,   138,   198,   114,   178,    -1,   177,
    817      139,   136,   177,   136,   177,    -1,   219,   177,   136,   177,
    818       -1,    53,    74,   136,    -1,    53,   121,   176,   136,    -1,
    819       52,   136,    -1,    52,    74,   136,    -1,    51,   136,    -1,
    820       51,    74,   136,    -1,    54,   177,   136,    -1,    63,   172,
    821      136,    -1,    64,   172,   136,    -1,    64,   172,    65,   171,
    822      136,    -1,    59,   180,   201,    -1,    59,   180,   203,    -1,
    823       59,   180,   201,   203,    -1,   202,    -1,    60,   113,   100,
    824      114,   180,    -1,   202,    60,   113,   100,   114,   180,    -1,
    825       61,   113,   100,   114,   180,    -1,   202,    61,   113,   100,
    826      114,   180,    -1,    60,   113,   138,   138,   204,   139,   114,
    827      180,   139,    -1,   202,    60,   113,   138,   138,   204,   139,
    828      114,   180,   139,    -1,    61,   113,   138,   138,   204,   139,
    829      114,   180,   139,    -1,   202,    61,   113,   138,   138,   204,
    830      139,   114,   180,   139,    -1,    62,   180,    -1,   232,    -1,
    831      232,   315,    -1,   232,   363,    -1,   372,   143,    -1,   372,
    832       -1,    66,   206,   113,   145,   114,   136,    -1,    66,   206,
    833      113,   145,   134,   207,   114,   136,    -1,    66,   206,   113,
    834      145,   134,   207,   134,   207,   114,   136,    -1,    66,   206,
    835      113,   145,   134,   207,   134,   207,   134,   210,   114,   136,
    836       -1,    66,   206,    53,   113,   145,   134,   134,   207,   134,
    837      210,   134,   211,   114,   136,    -1,    -1,    11,    -1,    -1,
    838      208,    -1,   209,    -1,   208,   120,   209,    -1,   145,   113,
    839      170,   114,    -1,   115,   170,   116,   145,   113,   170,   114,
    840       -1,    -1,   145,    -1,   210,   120,   145,    -1,   143,    -1,
    841      211,   120,   143,    -1,   139,    -1,   213,    -1,   219,    -1,
    842      213,   138,   219,    -1,   139,    -1,   215,    -1,   229,    -1,
    843      215,   138,   229,    -1,    -1,   217,    -1,    31,   218,   136,
    844       -1,   217,    31,   218,   136,    -1,   280,    -1,   218,   120,
    845      280,    -1,   220,    -1,   229,    -1,   221,   139,   136,    -1,
    846      226,   139,   136,    -1,   223,   139,   136,    -1,   299,   139,
    847      136,    -1,   302,   139,   136,    -1,   222,   283,    -1,   238,
    848      222,   283,    -1,   221,   139,   120,   138,   278,   283,    -1,
    849      373,   278,   317,    -1,   376,   278,   317,    -1,   234,   376,
    850      278,   317,    -1,   224,    -1,   234,   224,    -1,   238,   224,
    851       -1,   238,   234,   224,    -1,   223,   139,   120,   138,   278,
    852       -1,   376,   278,   113,   138,   266,   139,   114,    -1,   225,
    853      278,   113,   138,   266,   139,   114,    -1,   115,   138,   268,
    854      139,   116,    -1,   115,   138,   268,   139,   120,   138,   269,
    855      139,   116,    -1,     3,   222,    -1,     3,   224,    -1,   226,
    856      139,   120,   138,   143,    -1,     3,   232,   315,    -1,   227,
    857      139,   120,   138,   315,    -1,   234,     3,   232,   315,    -1,
    858      232,     3,   315,    -1,   232,     3,   234,   315,    -1,     3,
    859      143,   135,   171,    -1,   228,   139,   120,   138,   143,   135,
    860      171,    -1,   230,   139,   136,    -1,   227,   139,   136,    -1,
    861      228,   139,   136,    -1,   246,   139,   136,    -1,   231,   315,
    862      317,   283,    -1,   230,   120,   318,   315,   317,   283,    -1,
    863      242,    -1,   246,    -1,   248,    -1,   289,    -1,   243,    -1,
    864      247,    -1,   249,    -1,   290,    -1,    -1,   234,    -1,   235,
    865       -1,   234,   235,    -1,   236,    -1,   320,    -1,    10,    -1,
    866       12,    -1,    11,    -1,    14,    -1,    69,    -1,    -1,    13,
    867      113,   237,   292,   114,    -1,   239,    -1,   234,   239,    -1,
    868      238,   234,   239,    -1,   240,    -1,   239,   240,    -1,     5,
    869       -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
    870       -1,    71,    -1,    73,    -1,    16,    -1,    21,    -1,    20,
    871       -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
    872       -1,    15,    -1,    27,    -1,    28,    -1,    29,    -1,    26,
    873       -1,    24,    -1,    25,    -1,   243,    -1,   238,   243,    -1,
    874      242,   240,    -1,   242,   240,   234,    -1,   242,   240,   243,
    875       -1,   244,    -1,   233,   245,   233,    -1,   241,    -1,   234,
    876      241,    -1,   244,   235,    -1,   244,   241,    -1,    30,   113,
    877      282,   114,    -1,    30,   113,   176,   114,    -1,    80,   113,
    878      282,   114,    -1,    80,   113,   176,   114,    -1,   247,    -1,
    879      238,   247,    -1,   246,   240,    -1,   246,   240,   234,    -1,
    880      250,    -1,   234,   250,    -1,   247,   235,    -1,   249,    -1,
    881      238,   249,    -1,   248,   240,    -1,   248,   240,   234,    -1,
    882       76,    -1,   234,    76,    -1,   249,   235,    -1,   251,    -1,
    883      262,    -1,   253,   118,   254,   119,    -1,   253,   280,    -1,
    884       -1,   253,   280,   252,   118,   254,   119,    -1,   253,   113,
    885      298,   114,   118,   254,   119,    -1,   253,   291,    -1,    33,
    886      318,    -1,    34,   318,    -1,    -1,   254,   255,    -1,   256,
    887      136,    -1,    42,   256,   136,    -1,   257,   136,    -1,    42,
    888      257,   136,    -1,   372,    -1,   372,   280,    -1,   256,   120,
    889      280,    -1,   256,   120,    -1,   232,   258,    -1,   257,   120,
    890      318,   258,    -1,    -1,   260,    -1,   324,   259,    -1,   337,
    891      259,    -1,   363,    -1,    -1,   260,    -1,   134,   170,    -1,
    892       32,   318,    -1,   261,   118,   264,   378,   119,    -1,   261,
    893      280,    -1,    -1,   261,   280,   263,   118,   264,   378,   119,
    894       -1,   280,   265,    -1,   264,   120,   280,   265,    -1,    -1,
    895      135,   170,    -1,    -1,   267,    -1,   269,    -1,   268,    -1,
    896      268,   139,   120,   138,   269,    -1,   269,   139,   120,   138,
    897      100,    -1,   268,   139,   120,   138,   100,    -1,   273,    -1,
    898      269,   139,   120,   138,   273,    -1,   268,   139,   120,   138,
    899      273,    -1,   268,   139,   120,   138,   269,   139,   120,   138,
    900      273,    -1,   274,    -1,   269,   139,   120,   138,   274,    -1,
    901       -1,   271,    -1,   272,    -1,   272,   139,   120,   138,   100,
    902       -1,   276,    -1,   275,    -1,   272,   139,   120,   138,   276,
    903       -1,   272,   139,   120,   138,   275,    -1,   275,    -1,   368,
    904      278,   379,    -1,   376,   278,   379,    -1,   234,   376,   278,
    905      379,    -1,   224,    -1,   276,    -1,   368,    -1,   376,    -1,
    906      234,   376,    -1,   377,    -1,   231,   342,   379,    -1,   231,
    907      346,   379,    -1,   231,    -1,   231,   357,    -1,   143,    -1,
    908      277,   120,   143,    -1,   141,    -1,    76,    -1,    77,    -1,
    909      142,    -1,    76,    -1,    77,    -1,   143,    -1,    76,    -1,
    910       77,    -1,   372,    -1,   232,    -1,   232,   363,    -1,   372,
    911       -1,   377,    -1,   232,    -1,   232,   351,    -1,    -1,   135,
    912      284,    -1,   111,   284,    -1,   171,    -1,   118,   285,   378,
    913      119,    -1,    -1,   284,    -1,   286,   284,    -1,   285,   120,
    914      284,    -1,   285,   120,   286,   284,    -1,   287,   134,    -1,
    915      280,   134,    -1,   288,    -1,   287,   288,    -1,   117,   280,
    916       -1,   115,   138,   171,   139,   116,    -1,   115,   138,   316,
    917      139,   116,    -1,   115,   138,   170,   100,   170,   139,   116,
    918       -1,   117,   115,   138,   151,   139,   116,    -1,   290,    -1,
    919      238,   290,    -1,   289,   240,    -1,   289,   240,   234,    -1,
    920      291,    -1,   234,   291,    -1,   290,   235,    -1,    77,   113,
    921      298,   114,    -1,   293,   379,    -1,   292,   120,   293,   379,
    922       -1,    -1,   295,   280,   294,   296,    -1,   232,   342,    -1,
    923       35,    -1,    37,    -1,    36,    -1,    -1,   296,   297,    -1,
    924      132,   280,   113,   298,   114,    -1,   132,   118,   138,   304,
    925      119,    -1,   132,   113,   138,   292,   139,   114,   118,   138,
    926      304,   119,   113,   298,   114,    -1,   282,    -1,   171,    -1,
    927      298,   120,   282,    -1,   298,   120,   171,    -1,    35,   300,
    928       -1,   239,    35,   300,    -1,   299,   120,   300,    -1,   301,
    929      296,    -1,   301,   296,   135,   282,    -1,   280,    -1,   279,
    930      113,   138,   292,   139,   114,    -1,    38,   280,   113,   138,
    931      292,   139,   114,   118,   119,    -1,    -1,    38,   280,   113,
    932      138,   292,   139,   114,   118,   303,   304,   119,    -1,   305,
    933       -1,   304,   138,   305,    -1,   306,   139,   136,    -1,   307,
    934      139,   136,    -1,   222,    -1,   224,    -1,   306,   139,   120,
    935      138,   278,    -1,   232,   315,    -1,   307,   139,   120,   138,
    936      315,    -1,    -1,   309,    -1,   311,    -1,   309,   138,   311,
    937       -1,    -1,   309,    -1,   219,    -1,   313,    -1,   205,    -1,
    938       -1,     5,    83,   312,   118,   310,   119,    -1,    42,   311,
    939       -1,   314,    -1,   329,   180,    -1,   333,   138,   214,   180,
    940       -1,   223,   180,    -1,   231,   329,   180,    -1,   234,   329,
    941      180,    -1,   238,   329,   180,    -1,   238,   234,   329,   180,
    942       -1,   231,   333,   138,   214,   180,    -1,   234,   333,   138,
    943      214,   180,    -1,   238,   333,   138,   214,   180,    -1,   238,
    944      234,   333,   138,   214,   180,    -1,   324,    -1,   337,    -1,
    945      329,    -1,   170,   126,   170,    -1,    -1,    66,   113,   145,
    946      114,   318,    -1,    -1,   319,    -1,   320,    -1,   319,   320,
    947       -1,    41,   113,   113,   321,   114,   114,    -1,   322,    -1,
    948      321,   120,   322,    -1,    -1,   323,    -1,   323,   113,   177,
    949      114,    -1,   278,    -1,   240,    -1,   241,    -1,   235,    -1,
    950      325,   318,    -1,   326,    -1,   327,   318,    -1,   328,   318,
    951       -1,   141,    -1,   113,   325,   114,    -1,   156,   324,    -1,
    952      156,   234,   324,    -1,   113,   326,   114,    -1,   325,   355,
    953       -1,   113,   326,   114,   355,    -1,   113,   327,   114,   356,
    954       -1,   113,   327,   114,    -1,   113,   326,   114,   113,   138,
    955      270,   139,   114,    -1,   113,   328,   114,    -1,   330,   318,
    956       -1,   331,    -1,   332,   318,    -1,   325,   113,   138,   270,
    957      139,   114,    -1,   113,   331,   114,   113,   138,   270,   139,
    958      114,    -1,   113,   330,   114,    -1,   156,   329,    -1,   156,
    959      234,   329,    -1,   113,   331,   114,    -1,   113,   331,   114,
    960      355,    -1,   113,   332,   114,   356,    -1,   113,   332,   114,
    961       -1,   334,    -1,   335,    -1,   336,    -1,   325,   113,   277,
    962      114,    -1,   113,   335,   114,   113,   277,   114,    -1,   113,
    963      334,   114,    -1,   156,   333,    -1,   156,   234,   333,    -1,
    964      113,   335,   114,    -1,   113,   335,   114,   355,    -1,   113,
    965      336,   114,   356,    -1,   113,   336,   114,    -1,   338,   318,
    966       -1,   339,    -1,   340,   318,    -1,   341,   318,    -1,   347,
    967       -1,   113,   338,   114,    -1,   156,   337,    -1,   156,   234,
    968      337,    -1,   113,   339,   114,    -1,   338,   355,    -1,   113,
    969      339,   114,   355,    -1,   113,   340,   114,   356,    -1,   113,
    970      340,   114,    -1,   338,   113,   138,   270,   139,   114,    -1,
    971      113,   339,   114,   113,   138,   270,   139,   114,    -1,   113,
    972      341,   114,    -1,   325,   318,    -1,   343,    -1,   344,   318,
    973       -1,   345,   318,    -1,   156,   342,    -1,   156,   234,   342,
    974       -1,   113,   343,   114,    -1,   325,   361,    -1,   113,   343,
    975      114,   355,    -1,   113,   344,   114,   356,    -1,   113,   344,
    976      114,    -1,   325,   113,   138,   270,   139,   114,    -1,   113,
    977      343,   114,   113,   138,   270,   139,   114,    -1,   113,   345,
    978      114,    -1,   347,   318,    -1,   348,    -1,   349,   318,    -1,
    979      350,   318,    -1,    76,    -1,    77,    -1,   156,   346,    -1,
    980      156,   234,   346,    -1,   113,   348,   114,    -1,   347,   361,
    981       -1,   113,   348,   114,   361,    -1,   347,   113,   138,   270,
    982      139,   114,    -1,   113,   348,   114,   113,   138,   270,   139,
    983      114,    -1,   352,    -1,   353,   318,    -1,   354,   318,    -1,
    984      156,    -1,   156,   234,    -1,   156,   351,    -1,   156,   234,
    985      351,    -1,   113,   352,   114,    -1,   355,    -1,   113,   352,
    986      114,   355,    -1,   113,   353,   114,   356,    -1,   113,   353,
    987      114,    -1,   113,   138,   270,   139,   114,    -1,   113,   352,
    988      114,   113,   138,   270,   139,   114,    -1,   113,   354,   114,
    989       -1,   115,   116,    -1,   115,   116,   356,    -1,   356,    -1,
    990      115,   138,   171,   139,   116,    -1,   115,   138,   121,   139,
    991      116,    -1,   356,   115,   138,   171,   139,   116,    -1,   356,
    992      115,   138,   121,   139,   116,    -1,   358,    -1,   359,   318,
    993       -1,   360,   318,    -1,   156,    -1,   156,   234,    -1,   156,
    994      357,    -1,   156,   234,   357,    -1,   113,   358,   114,    -1,
    995      361,    -1,   113,   358,   114,   361,    -1,   113,   359,   114,
    996      356,    -1,   113,   359,   114,    -1,   113,   138,   270,   139,
    997      114,    -1,   113,   358,   114,   113,   138,   270,   139,   114,
    998       -1,   113,   360,   114,    -1,   362,    -1,   362,   356,    -1,
    999      356,    -1,   115,   116,    -1,   115,   138,   234,   121,   139,
    1000      116,    -1,   115,   138,   234,   139,   116,    -1,   115,   138,
    1001      234,   171,   139,   116,    -1,   115,   138,     7,   233,   171,
    1002      139,   116,    -1,   115,   138,   234,     7,   171,   139,   116,
    1003       -1,   364,    -1,   365,   318,    -1,   366,   318,    -1,   156,
    1004       -1,   156,   234,    -1,   156,   363,    -1,   156,   234,   363,
    1005       -1,   113,   364,   114,    -1,   355,    -1,   113,   364,   114,
    1006      355,    -1,   113,   365,   114,   356,    -1,   113,   365,   114,
    1007       -1,   113,   364,   114,   113,   138,   270,   139,   114,    -1,
    1008      113,   366,   114,    -1,   368,    -1,   376,    -1,   234,   376,
    1009       -1,   369,    -1,   370,    -1,   156,   232,    -1,   234,   156,
    1010      232,    -1,   156,   377,    -1,   234,   156,   377,    -1,   156,
    1011      367,    -1,   234,   156,   367,    -1,   115,   116,   232,    -1,
    1012      371,   232,    -1,   115,   116,   356,   232,    -1,   371,   356,
    1013      232,    -1,   356,   232,    -1,   115,   116,   369,    -1,   371,
    1014      369,    -1,   115,   116,   356,   369,    -1,   371,   356,   369,
    1015       -1,   356,   369,    -1,   115,   138,   234,   121,   139,   116,
    1016       -1,   115,   138,   234,   171,   139,   116,    -1,   115,   138,
    1017      238,   171,   139,   116,    -1,   115,   138,   238,   234,   171,
    1018      139,   116,    -1,   376,    -1,   234,   376,    -1,   373,    -1,
    1019      374,    -1,   375,    -1,   156,   232,    -1,   234,   156,   232,
    1020       -1,   156,   377,    -1,   234,   156,   377,    -1,   156,   372,
    1021       -1,   234,   156,   372,    -1,   115,   116,   232,    -1,   115,
    1022      116,   356,   232,    -1,   356,   232,    -1,   115,   116,   374,
    1023       -1,   115,   116,   356,   374,    -1,   356,   374,    -1,   115,
    1024      138,   269,   139,   116,    -1,   376,   113,   138,   266,   139,
    1025      114,    -1,   225,   113,   138,   266,   139,   114,    -1,    -1,
    1026      120,    -1,    -1,   135,   171,    -1
    1027 };
    1028 
    1029 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
     694  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    1030695static const yytype_uint16 yyrline[] =
    1031696{
    1032        0,   306,   306,   310,   317,   318,   319,   320,   321,   325,
    1033      326,   327,   331,   332,   336,   337,   341,   342,   346,   350,
    1034      351,   362,   364,   366,   367,   369,   374,   375,   381,   383,
    1035      385,   387,   389,   391,   393,   395,   397,   399,   408,   409,
    1036      415,   416,   420,   421,   425,   426,   428,   430,   432,   434,
    1037      436,   441,   443,   445,   457,   458,   466,   469,   471,   473,
    1038      478,   491,   493,   495,   497,   499,   501,   503,   505,   507,
    1039      509,   511,   518,   519,   525,   526,   527,   528,   532,   533,
    1040      540,   541,   543,   545,   550,   551,   553,   558,   559,   561,
    1041      566,   567,   569,   571,   573,   578,   579,   581,   586,   587,
    1042      592,   593,   598,   599,   604,   605,   610,   611,   616,   617,
    1043      620,   627,   632,   633,   641,   642,   646,   647,   648,   649,
    1044      650,   651,   652,   653,   654,   655,   656,   657,   667,   669,
    1045      674,   675,   680,   681,   687,   688,   694,   695,   696,   697,
    1046      698,   699,   700,   701,   702,   712,   719,   721,   731,   732,
    1047      737,   739,   745,   747,   751,   752,   757,   762,   765,   767,
    1048      769,   779,   781,   792,   793,   795,   799,   801,   805,   806,
    1049      811,   812,   816,   821,   822,   826,   828,   834,   835,   839,
    1050      841,   843,   845,   851,   852,   856,   858,   863,   865,   867,
    1051      872,   874,   879,   881,   885,   888,   892,   895,   899,   901,
    1052      903,   905,   910,   912,   914,   919,   921,   923,   925,   927,
    1053      932,   934,   936,   938,   943,   955,   956,   961,   963,   968,
    1054      972,   974,   976,   978,   980,   986,   987,   993,   994,   998,
    1055      999,  1004,  1006,  1012,  1013,  1015,  1020,  1025,  1035,  1037,
    1056     1041,  1042,  1047,  1049,  1053,  1054,  1058,  1060,  1064,  1065,
    1057     1069,  1070,  1074,  1075,  1090,  1091,  1092,  1093,  1094,  1098,
    1058     1103,  1110,  1120,  1125,  1130,  1138,  1143,  1148,  1153,  1158,
    1059     1188,  1193,  1200,  1202,  1209,  1214,  1219,  1230,  1235,  1240,
    1060     1245,  1250,  1259,  1264,  1272,  1273,  1274,  1275,  1281,  1286,
    1061     1294,  1295,  1296,  1297,  1301,  1302,  1303,  1304,  1309,  1310,
    1062     1319,  1320,  1325,  1326,  1331,  1333,  1335,  1337,  1339,  1342,
    1063     1341,  1353,  1354,  1356,  1366,  1367,  1372,  1374,  1376,  1378,
    1064     1380,  1383,  1385,  1388,  1393,  1395,  1397,  1399,  1401,  1403,
    1065     1405,  1407,  1409,  1411,  1413,  1415,  1417,  1419,  1421,  1427,
    1066     1428,  1430,  1432,  1434,  1439,  1440,  1446,  1447,  1449,  1451,
    1067     1456,  1458,  1460,  1462,  1467,  1468,  1470,  1472,  1477,  1478,
    1068     1480,  1485,  1486,  1488,  1490,  1495,  1497,  1499,  1504,  1505,
    1069     1509,  1511,  1517,  1516,  1520,  1522,  1527,  1529,  1535,  1536,
    1070     1541,  1542,  1544,  1545,  1554,  1555,  1557,  1559,  1564,  1566,
    1071     1572,  1573,  1575,  1578,  1581,  1586,  1587,  1592,  1597,  1601,
    1072     1603,  1609,  1608,  1615,  1617,  1623,  1624,  1632,  1633,  1637,
    1073     1638,  1639,  1641,  1643,  1650,  1651,  1653,  1655,  1660,  1661,
    1074     1667,  1668,  1672,  1673,  1678,  1679,  1680,  1682,  1690,  1691,
    1075     1693,  1696,  1698,  1702,  1703,  1704,  1706,  1708,  1712,  1717,
    1076     1725,  1726,  1735,  1737,  1742,  1743,  1744,  1748,  1749,  1750,
    1077     1754,  1755,  1756,  1760,  1761,  1762,  1767,  1768,  1769,  1770,
    1078     1776,  1777,  1779,  1784,  1785,  1790,  1791,  1792,  1793,  1794,
    1079     1809,  1810,  1815,  1816,  1822,  1824,  1827,  1829,  1831,  1854,
    1080     1855,  1857,  1859,  1864,  1865,  1867,  1872,  1877,  1878,  1884,
    1081     1883,  1887,  1891,  1893,  1895,  1901,  1902,  1907,  1912,  1914,
    1082     1919,  1921,  1922,  1924,  1929,  1931,  1933,  1938,  1940,  1945,
    1083     1950,  1958,  1964,  1963,  1977,  1978,  1983,  1984,  1988,  1993,
    1084     1998,  2006,  2011,  2022,  2023,  2028,  2029,  2035,  2036,  2040,
    1085     2041,  2042,  2045,  2044,  2055,  2064,  2070,  2076,  2085,  2091,
    1086     2097,  2103,  2109,  2117,  2123,  2131,  2137,  2146,  2147,  2148,
    1087     2152,  2158,  2159,  2165,  2166,  2170,  2171,  2176,  2182,  2183,
    1088     2186,  2188,  2189,  2193,  2194,  2195,  2196,  2230,  2232,  2233,
    1089     2235,  2240,  2245,  2250,  2252,  2254,  2259,  2261,  2263,  2265,
    1090     2270,  2272,  2281,  2283,  2284,  2289,  2291,  2293,  2298,  2300,
    1091     2302,  2307,  2309,  2311,  2320,  2321,  2322,  2326,  2328,  2330,
    1092     2335,  2337,  2339,  2344,  2346,  2348,  2363,  2365,  2366,  2368,
    1093     2373,  2374,  2379,  2381,  2383,  2388,  2390,  2392,  2394,  2399,
    1094     2401,  2403,  2413,  2415,  2416,  2418,  2423,  2425,  2427,  2432,
    1095     2434,  2436,  2438,  2443,  2445,  2447,  2478,  2480,  2481,  2483,
    1096     2488,  2493,  2501,  2503,  2505,  2510,  2512,  2517,  2519,  2533,
    1097     2534,  2536,  2541,  2543,  2545,  2547,  2549,  2554,  2555,  2557,
    1098     2559,  2564,  2566,  2568,  2574,  2576,  2578,  2582,  2584,  2586,
    1099     2588,  2602,  2603,  2605,  2610,  2612,  2614,  2616,  2618,  2623,
    1100     2624,  2626,  2628,  2633,  2635,  2637,  2643,  2644,  2646,  2655,
    1101     2658,  2660,  2663,  2665,  2667,  2680,  2681,  2683,  2688,  2690,
    1102     2692,  2694,  2696,  2701,  2702,  2704,  2706,  2711,  2713,  2721,
    1103     2722,  2723,  2728,  2729,  2733,  2735,  2737,  2739,  2741,  2743,
    1104     2750,  2752,  2754,  2756,  2758,  2761,  2763,  2765,  2767,  2769,
    1105     2774,  2776,  2778,  2783,  2809,  2810,  2812,  2816,  2817,  2821,
    1106     2823,  2825,  2827,  2829,  2831,  2838,  2840,  2842,  2844,  2846,
    1107     2848,  2853,  2860,  2862,  2880,  2882,  2887,  2888
     697       0,   305,   305,   309,   316,   317,   318,   319,   320,   324,
     698     325,   326,   330,   331,   335,   336,   340,   341,   345,   349,
     699     350,   361,   363,   365,   366,   368,   373,   374,   380,   382,
     700     384,   386,   388,   390,   392,   394,   396,   398,   407,   408,
     701     414,   415,   419,   420,   424,   425,   427,   429,   431,   433,
     702     435,   440,   442,   444,   456,   457,   465,   468,   470,   472,
     703     477,   490,   492,   494,   496,   498,   500,   502,   504,   506,
     704     508,   510,   517,   518,   524,   525,   526,   527,   531,   532,
     705     539,   540,   542,   544,   549,   550,   552,   557,   558,   560,
     706     565,   566,   568,   570,   572,   577,   578,   580,   585,   586,
     707     591,   592,   597,   598,   603,   604,   609,   610,   615,   616,
     708     619,   626,   631,   632,   640,   641,   645,   646,   647,   648,
     709     649,   650,   651,   652,   653,   654,   655,   656,   666,   668,
     710     673,   674,   679,   680,   686,   687,   693,   694,   695,   696,
     711     697,   698,   699,   700,   701,   711,   718,   720,   730,   731,
     712     736,   738,   744,   746,   750,   751,   756,   761,   764,   766,
     713     768,   778,   780,   791,   792,   794,   798,   800,   804,   805,
     714     810,   811,   815,   820,   821,   825,   827,   833,   834,   838,
     715     840,   842,   844,   850,   851,   855,   857,   862,   864,   866,
     716     871,   873,   878,   880,   884,   887,   891,   894,   898,   900,
     717     902,   904,   909,   911,   913,   918,   920,   922,   924,   926,
     718     931,   933,   935,   937,   942,   954,   955,   960,   962,   967,
     719     971,   973,   975,   977,   979,   985,   986,   992,   993,   997,
     720     998,  1003,  1005,  1011,  1012,  1014,  1019,  1024,  1034,  1036,
     721    1040,  1041,  1046,  1048,  1052,  1053,  1057,  1059,  1063,  1064,
     722    1068,  1069,  1073,  1074,  1089,  1090,  1091,  1092,  1093,  1097,
     723    1102,  1109,  1119,  1124,  1129,  1137,  1142,  1147,  1152,  1157,
     724    1187,  1192,  1199,  1201,  1208,  1213,  1218,  1229,  1234,  1239,
     725    1244,  1249,  1258,  1263,  1271,  1272,  1273,  1274,  1280,  1285,
     726    1293,  1294,  1295,  1296,  1300,  1301,  1302,  1303,  1308,  1309,
     727    1318,  1319,  1324,  1325,  1330,  1332,  1334,  1336,  1338,  1341,
     728    1340,  1352,  1353,  1355,  1365,  1366,  1371,  1373,  1375,  1377,
     729    1379,  1382,  1384,  1387,  1392,  1394,  1396,  1398,  1400,  1402,
     730    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1426,
     731    1427,  1429,  1431,  1433,  1438,  1439,  1445,  1446,  1448,  1450,
     732    1455,  1457,  1459,  1461,  1466,  1467,  1469,  1471,  1476,  1477,
     733    1479,  1484,  1485,  1487,  1489,  1494,  1496,  1498,  1503,  1504,
     734    1508,  1510,  1516,  1515,  1519,  1521,  1526,  1528,  1534,  1535,
     735    1540,  1541,  1543,  1544,  1553,  1554,  1556,  1558,  1563,  1565,
     736    1571,  1572,  1574,  1577,  1580,  1585,  1586,  1591,  1596,  1600,
     737    1602,  1608,  1607,  1614,  1616,  1622,  1623,  1631,  1632,  1636,
     738    1637,  1638,  1640,  1642,  1649,  1650,  1652,  1654,  1659,  1660,
     739    1666,  1667,  1671,  1672,  1677,  1678,  1679,  1681,  1689,  1690,
     740    1692,  1695,  1697,  1701,  1702,  1703,  1705,  1707,  1711,  1716,
     741    1724,  1725,  1734,  1736,  1741,  1742,  1743,  1747,  1748,  1749,
     742    1753,  1754,  1755,  1759,  1760,  1761,  1766,  1767,  1768,  1769,
     743    1775,  1776,  1778,  1783,  1784,  1789,  1790,  1791,  1792,  1793,
     744    1808,  1809,  1814,  1815,  1821,  1823,  1826,  1828,  1830,  1853,
     745    1854,  1856,  1858,  1863,  1864,  1866,  1871,  1876,  1877,  1883,
     746    1882,  1886,  1890,  1892,  1894,  1900,  1901,  1906,  1911,  1913,
     747    1918,  1920,  1921,  1923,  1928,  1930,  1932,  1937,  1939,  1944,
     748    1949,  1957,  1963,  1962,  1976,  1977,  1982,  1983,  1987,  1992,
     749    1997,  2005,  2010,  2021,  2022,  2027,  2028,  2034,  2035,  2039,
     750    2040,  2041,  2044,  2043,  2054,  2063,  2069,  2075,  2084,  2090,
     751    2096,  2102,  2108,  2116,  2122,  2130,  2136,  2145,  2146,  2147,
     752    2151,  2155,  2157,  2162,  2163,  2167,  2168,  2173,  2179,  2180,
     753    2183,  2185,  2186,  2190,  2191,  2192,  2193,  2227,  2229,  2230,
     754    2232,  2237,  2242,  2247,  2249,  2251,  2256,  2258,  2260,  2262,
     755    2267,  2269,  2278,  2280,  2281,  2286,  2288,  2290,  2295,  2297,
     756    2299,  2304,  2306,  2308,  2317,  2318,  2319,  2323,  2325,  2327,
     757    2332,  2334,  2336,  2341,  2343,  2345,  2360,  2362,  2363,  2365,
     758    2370,  2371,  2376,  2378,  2380,  2385,  2387,  2389,  2391,  2396,
     759    2398,  2400,  2410,  2412,  2413,  2415,  2420,  2422,  2424,  2429,
     760    2431,  2433,  2435,  2440,  2442,  2444,  2475,  2477,  2478,  2480,
     761    2485,  2490,  2498,  2500,  2502,  2507,  2509,  2514,  2516,  2530,
     762    2531,  2533,  2538,  2540,  2542,  2544,  2546,  2551,  2552,  2554,
     763    2556,  2561,  2563,  2565,  2571,  2573,  2575,  2579,  2581,  2583,
     764    2585,  2599,  2600,  2602,  2607,  2609,  2611,  2613,  2615,  2620,
     765    2621,  2623,  2625,  2630,  2632,  2634,  2640,  2641,  2643,  2652,
     766    2655,  2657,  2660,  2662,  2664,  2677,  2678,  2680,  2685,  2687,
     767    2689,  2691,  2693,  2698,  2699,  2701,  2703,  2708,  2710,  2718,
     768    2719,  2720,  2725,  2726,  2730,  2732,  2734,  2736,  2738,  2740,
     769    2747,  2749,  2751,  2753,  2755,  2758,  2760,  2762,  2764,  2766,
     770    2771,  2773,  2775,  2780,  2806,  2807,  2809,  2813,  2814,  2818,
     771    2820,  2822,  2824,  2826,  2828,  2835,  2837,  2839,  2841,  2843,
     772    2845,  2850,  2857,  2859,  2877,  2879,  2884,  2885
    1108773};
    1109774#endif
    1110775
    1111 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
     776#if YYDEBUG || YYERROR_VERBOSE || 0
    1112777/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    1113778   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    1220885  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    1221886  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    1222   "comma_opt", "assignment_opt", 0
     887  "comma_opt", "assignment_opt", YY_NULLPTR
    1223888};
    1224889#endif
    1225890
    1226891# ifdef YYPRINT
    1227 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1228    token YYLEX-NUM.  */
     892/* YYTOKNUM[NUM] -- (External) token number corresponding to the
     893   (internal) symbol number NUM (which must be that of a token).  */
    1229894static const yytype_uint16 yytoknum[] =
    1230895{
     
    1246911# endif
    1247912
    1248 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1249 static const yytype_uint16 yyr1[] =
     913#define YYPACT_NINF -1267
     914
     915#define yypact_value_is_default(Yystate) \
     916  (!!((Yystate) == (-1267)))
     917
     918#define YYTABLE_NINF -529
     919
     920#define yytable_value_is_error(Yytable_value) \
     921  0
     922
     923  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     924     STATE-NUM.  */
     925static const yytype_int16 yypact[] =
    1250926{
    1251        0,   137,   138,   139,   140,   140,   140,   140,   140,   141,
    1252      141,   141,   142,   142,   143,   143,   144,   144,   145,   146,
    1253      146,   147,   147,   147,   147,   147,   148,   148,   148,   148,
    1254      148,   148,   148,   148,   148,   148,   148,   148,   149,   149,
    1255      150,   150,   151,   151,   152,   152,   152,   152,   152,   152,
    1256      152,   153,   153,   153,   154,   154,   155,   155,   155,   155,
    1257      155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
    1258      155,   155,   156,   156,   157,   157,   157,   157,   158,   158,
    1259      159,   159,   159,   159,   160,   160,   160,   161,   161,   161,
    1260      162,   162,   162,   162,   162,   163,   163,   163,   164,   164,
    1261      165,   165,   166,   166,   167,   167,   168,   168,   169,   169,
    1262      169,   170,   171,   171,   172,   172,   173,   173,   173,   173,
    1263      173,   173,   173,   173,   173,   173,   173,   173,   174,   174,
    1264      175,   175,   176,   176,   177,   177,   178,   178,   178,   178,
    1265      178,   178,   178,   178,   178,   179,   180,   180,   181,   181,
    1266      182,   182,   182,   182,   183,   183,   184,   185,   185,   185,
    1267      185,   185,   185,   186,   186,   186,   187,   187,   188,   188,
    1268      189,   189,   190,   191,   191,   192,   192,   193,   193,   194,
    1269      194,   194,   194,   195,   195,   196,   196,   197,   197,   197,
    1270      198,   198,   199,   199,   199,   199,   199,   199,   199,   199,
    1271      199,   199,   200,   200,   200,   201,   201,   201,   201,   201,
    1272      202,   202,   202,   202,   203,   204,   204,   204,   204,   204,
    1273      205,   205,   205,   205,   205,   206,   206,   207,   207,   208,
    1274      208,   209,   209,   210,   210,   210,   211,   211,   212,   212,
    1275      213,   213,   214,   214,   215,   215,   216,   216,   217,   217,
    1276      218,   218,   219,   219,   220,   220,   220,   220,   220,   221,
    1277      221,   221,   222,   222,   222,   223,   223,   223,   223,   223,
    1278      224,   224,   225,   225,   226,   226,   226,   227,   227,   227,
    1279      227,   227,   228,   228,   229,   229,   229,   229,   230,   230,
    1280      231,   231,   231,   231,   232,   232,   232,   232,   233,   233,
    1281      234,   234,   235,   235,   236,   236,   236,   236,   236,   237,
    1282      236,   238,   238,   238,   239,   239,   240,   240,   240,   240,
    1283      240,   240,   240,   240,   241,   241,   241,   241,   241,   241,
    1284      241,   241,   241,   241,   241,   241,   241,   241,   241,   242,
    1285      242,   242,   242,   242,   243,   243,   244,   244,   244,   244,
    1286      245,   245,   245,   245,   246,   246,   246,   246,   247,   247,
    1287      247,   248,   248,   248,   248,   249,   249,   249,   250,   250,
    1288      251,   251,   252,   251,   251,   251,   253,   253,   254,   254,
    1289      255,   255,   255,   255,   256,   256,   256,   256,   257,   257,
    1290      258,   258,   258,   258,   258,   259,   259,   260,   261,   262,
    1291      262,   263,   262,   264,   264,   265,   265,   266,   266,   267,
    1292      267,   267,   267,   267,   268,   268,   268,   268,   269,   269,
    1293      270,   270,   271,   271,   272,   272,   272,   272,   273,   273,
    1294      273,   273,   273,   274,   274,   274,   274,   274,   275,   275,
    1295      276,   276,   277,   277,   278,   278,   278,   279,   279,   279,
    1296      280,   280,   280,   281,   281,   281,   282,   282,   282,   282,
    1297      283,   283,   283,   284,   284,   285,   285,   285,   285,   285,
    1298      286,   286,   287,   287,   288,   288,   288,   288,   288,   289,
    1299      289,   289,   289,   290,   290,   290,   291,   292,   292,   294,
    1300      293,   293,   295,   295,   295,   296,   296,   297,   297,   297,
    1301      298,   298,   298,   298,   299,   299,   299,   300,   300,   301,
    1302      301,   302,   303,   302,   304,   304,   305,   305,   306,   306,
    1303      306,   307,   307,   308,   308,   309,   309,   310,   310,   311,
    1304      311,   311,   312,   311,   311,   313,   313,   313,   314,   314,
    1305      314,   314,   314,   314,   314,   314,   314,   315,   315,   315,
    1306      316,   317,   317,   318,   318,   319,   319,   320,   321,   321,
    1307      322,   322,   322,   323,   323,   323,   323,   324,   324,   324,
    1308      324,   325,   325,   326,   326,   326,   327,   327,   327,   327,
    1309      328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
    1310      331,   332,   332,   332,   333,   333,   333,   334,   334,   334,
    1311      335,   335,   335,   336,   336,   336,   337,   337,   337,   337,
    1312      338,   338,   339,   339,   339,   340,   340,   340,   340,   341,
    1313      341,   341,   342,   342,   342,   342,   343,   343,   343,   344,
    1314      344,   344,   344,   345,   345,   345,   346,   346,   346,   346,
    1315      347,   347,   348,   348,   348,   349,   349,   350,   350,   351,
    1316      351,   351,   352,   352,   352,   352,   352,   353,   353,   353,
    1317      353,   354,   354,   354,   355,   355,   355,   356,   356,   356,
    1318      356,   357,   357,   357,   358,   358,   358,   358,   358,   359,
    1319      359,   359,   359,   360,   360,   360,   361,   361,   361,   362,
    1320      362,   362,   362,   362,   362,   363,   363,   363,   364,   364,
    1321      364,   364,   364,   365,   365,   365,   365,   366,   366,   367,
    1322      367,   367,   368,   368,   369,   369,   369,   369,   369,   369,
    1323      370,   370,   370,   370,   370,   370,   370,   370,   370,   370,
    1324      371,   371,   371,   371,   372,   372,   372,   373,   373,   374,
    1325      374,   374,   374,   374,   374,   375,   375,   375,   375,   375,
    1326      375,   376,   377,   377,   378,   378,   379,   379
     927    5235,  8510, -1267,   -14, -1267, -1267, -1267, -1267, -1267, -1267,
     928   -1267,   -27, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
     929   -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,    84,    84,
     930      84,  1541,   905,   123,  6677,   163, -1267, -1267, -1267, -1267,
     931   -1267,   157, -1267, -1267, -1267,  1043,   172, -1267, -1267, -1267,
     932   -1267,  4048, -1267, -1267, -1267, -1267,   225,   198, -1267,  1956,
     933   -1267, -1267, -1267, -1267,   217,  1716,   380,    37,  6797, -1267,
     934   -1267,  4048,   829, -1267, -1267,  1101,   436,  3172,   661,   839,
     935    1101,   977, -1267, -1267,  1289,   340, -1267,  1101,  1140, -1267,
     936     327, -1267,   450,   467, -1267, -1267, -1267, -1267,   378,   198,
     937      84, -1267,    84, -1267, -1267, -1267, -1267,  7269,  1956, -1267,
     938   -1267,  1956, -1267,   386, -1267,  7582, -1267, -1267,  2178,  8744,
     939   -1267,   675,   675,   675, -1267, -1267, -1267,    84, -1267, -1267,
     940   -1267,   400,   425,   466, -1267, -1267, -1267,   503, -1267, -1267,
     941   -1267, -1267, -1267,   515,   527, -1267, -1267,   272,  8119,  1675,
     942     732,   435,   568,   593,   612,   625,   639,  8828,  6307,   586,
     943   -1267,  4677, -1267, -1267, -1267, -1267,   652, -1267,   339,  9583,
     944    9583, -1267,   651,   348, -1267, -1267, -1267, -1267,   665,   379,
     945     421,   471,    84,   654, -1267, -1267,  1716,  2591,   717, -1267,
     946      90, -1267,    84,    84,   198, -1267, -1267,    91, -1267,    84,
     947      84, -1267,  2973,   690,   712,   675,  6831, -1267, -1267, -1267,
     948    4048, -1267, -1267,  1101, -1267, -1267, -1267,   198, -1267,  1956,
     949     225, -1267,  7235, -1267,   675,   675,   675,   198, -1267,  1541,
     950   -1267,  3826, -1267, -1267,   722,   675, -1267,   675, -1267,   157,
     951    8119, -1267,   748, -1267,   905,   763,   675, -1267,  1541,   768,
     952     779, -1267,  6677,   605, -1267, -1267, -1267,  8477, -1267, -1267,
     953    4354, -1267,   717,     8,  9760,  8744,  2178,  2973, -1267,   101,
     954   -1267, -1267,  7582,  1956,   807, 10515, -1267, -1267,   473, -1267,
     955   10178,   816,   862,  9819,   849,  9760,  9878, -1267,   860, -1267,
     956   -1267, -1267, -1267, -1267, -1267,  9937,  9937,  7885,   172, -1267,
     957   -1267, -1267, -1267, -1267, -1267, -1267,   866, -1267,  1184,  2546,
     958    8119,  9760, -1267,   525,   813,   848,   509,   861,   847,   853,
     959     879,   915,    56, -1267, -1267, -1267,   658, -1267,   474, -1267,
     960   -1267,  1675, -1267, -1267,   456,   900, -1267,   518,   900, -1267,
     961   -1267,  7269, -1267,   917,   933,  8236, -1267, -1267,   536,  1525,
     962    7667,  6831,  1101, -1267,  1101,   675,   675, -1267, -1267, -1267,
     963   -1267, -1267, -1267,   675,  7269,  1956, -1267, -1267,  8828,  1786,
     964   -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,  9524,
     965    9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
     966   -1267, -1267, -1267, -1267, -1267,  2178, -1267,   446,   942,   951,
     967     953,   885,   956,   968,   973,  2591, -1267, -1267,   985,   225,
     968     974, -1267, -1267,   987, -1267, -1267, -1267,  8477, -1267, -1267,
     969   -1267, -1267, -1267,  2973, -1267,  8119,  8119, -1267,   675,  2178,
     970   10547,  7742, -1267, -1267, -1267, -1267,  8477,     8, -1267, -1267,
     971    1101,   198, -1267, -1267,  8477, -1267,  5404, -1267, -1267,   675,
     972     675,   528,  8594,   998,  1002,   983,  1007,   675, -1267, -1267,
     973   -1267, -1267,  9019, -1267,   627, 10212, -1267,   198,  1008, -1267,
     974    2178, 10298,  9996, -1267, -1267, -1267, -1267,   922,  2973, -1267,
     975    7742,   717,  5806, -1267, -1267, -1267,  1900,   640,   994,   905,
     976   10515,  1647,  7582, -1267, 10515, -1267, -1267, -1267, -1267,   643,
     977   -1267,  1026,   862,   190,  7885, -1267,  8860, -1267, -1267,  7885,
     978   -1267,  8002,  7885, -1267, -1267,   172, -1267,   647,  1027,   694,
     979    1028, -1267, -1267,  6061, -1267, -1267,   315, -1267, -1267,  9760,
     980   -1267,   368,  9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
     981   -1267, -1267, -1267, -1267, -1267,  9760, -1267, -1267,  9760,  9760,
     982    9760,  9760,  9760,  9760,  9760,  9760,  9760,  9760,  9760,  9760,
     983    9760,  9760,  9760,  9760,  9760,  9760,  3432,   658,  1212, -1267,
     984   -1267,    84,    84, -1267, -1267,  8119, -1267, -1267,   987,   605,
     985   -1267,   987, 10055, -1267, -1267,  8828,  6061,  1029, -1267,  8744,
     986   -1267, -1267,   652, -1267,  1030,  1793,  1039,  1950,   136,   994,
     987   -1267,    84,    84,   994,   407, -1267,    84,    84,   987, -1267,
     988   -1267,    84,    84, -1267,   900,  8944,  1956, 10447,   258,   304,
     989    8944, -1267,  4354, -1267,   994, -1267,  7269, -1267,   126,  7354,
     990    7354,  1956,  9642,  1010, -1267,   345,  1025,  1032, -1267,  1040,
     991    9583,   449, -1267,  1130,  1956,  7354,   605,  2178,   605,   717,
     992     581,   900, -1267, -1267,   616,   900, -1267, -1267, -1267,   862,
     993   -1267,   900,   198,  9019, -1267,   679,  1056,   691,  1057, -1267,
     994     917,   198, -1267, -1267,  8477,   198,  1058,  8860,   172, -1267,
     995    1307, -1267,   481,   505,   905, -1267,   905,  1060,  9760, -1267,
     996     905, 10447, -1267, -1267,  1061, -1267, -1267, -1267,   605, -1267,
     997   10373,   933, -1267,  7354,   792,  7667, -1267, -1267,   652,  1063,
     998    1065,  1900,  2267, -1267, -1267, 10515,  9760, -1267, -1267,  1067,
     999   -1267, -1267,  1064, -1267,  1067,  1066, 10178,  9760,  1054,  1059,
     1000     117,  1082,  1077,  1085,  1086, -1267,  1087,  1089,  6061, -1267,
     1001    9760, -1267,   694,  1520, -1267, -1267, -1267,    84,    84,  9701,
     1002    9760,  1090, -1267, -1267,   704, -1267,  9760, -1267, -1267,   876,
     1003   -1267, -1267, -1267, -1267,   525,   525,   813,   813,   848,   848,
     1004     848,   848,   509,   509,   861,   847,   853,   879,   915,  9760,
     1005      77,  9019,  1091,  1092,  1093,  1212, -1267, -1267, -1267, -1267,
     1006   -1267,  9019,   709, -1267,  7269, -1267,  6430,  8353, -1267, -1267,
     1007   -1267,  1793,  9019,   980,  1098,  1104,  1105,  1106,  1113,  1114,
     1008    1116, -1267,  3291,  1950, -1267, -1267, -1267, -1267, -1267, -1267,
     1009   -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
     1010   -1267,   987, -1267, -1267, -1267,   994, -1267, -1267, -1267, -1267,
     1011   -1267, -1267, -1267, -1267, -1267, -1267,  1117,  1119, -1267,   225,
     1012    1090,  9642, -1267, -1267, -1267,  9524,  1115, -1267, -1267, -1267,
     1013   -1267,   905,  5524,  1204, -1267, -1267, -1267, -1267,  1103,   225,
     1014   -1267, -1267,   987, -1267, -1267,   987,   154,   987, -1267, -1267,
     1015   -1267, -1267, -1267, -1267,  6307, -1267,   198, -1267, -1267,   507,
     1016     540,  6307,  1549,  9760,  2098, -1267, -1267,  1109,    38,  1109,
     1017   -1267,   905, -1267,    84, -1267, -1267,  8627,   983, -1267, -1267,
     1018   -1267,  1002,  1125,  1120, -1267, -1267,  1129,  1133, -1267,   792,
     1019    1698, -1267,   356, -1267,  2267,   994, -1267, -1267,  1138, 10515,
     1020    7582,  8119,  1142, -1267, -1267,  1134,  1146,  1127, -1267,  9760,
     1021    1153,   256,  1148, -1267,  1159,   605,  1159, -1267, -1267,  1159,
     1022   -1267,  1164,  1165,  1166,  1520, -1267, -1267, -1267,  9524, -1267,
     1023   -1267, -1267,  1163,  9760,   791, -1267,  9760, -1267,   791, -1267,
     1024   -1267,  9760, -1267,   673,   900, -1267, -1267, -1267, -1267, -1267,
     1025   -1267, -1267,   933,  8236, -1267, -1267,  6553,  1171, -1267,   707,
     1026     900, -1267,   728,   773,   900, -1267,   675,  7112, -1267, -1267,
     1027   -1267,  9019,  9019, -1267,  7742,  7742,  1172,  1167,  1168,  1175,
     1028   -1267,   419,   240,  1090, -1267,   791, -1267,  9583, -1267,  9760,
     1029     554, -1267,  5932,  1180,  1181,  9465,  1182,  1185,    -8,    40,
     1030      86,  9760,  1191,   198,  9760,  9760,  1177,   585,  1169, -1267,
     1031   -1267, -1267,  1187, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
     1032   -1267, -1267,   905,  1195,  9760, -1267,  9019,  9019,    84,  1201,
     1033   -1267,  8711, -1267, -1267,   906, -1267,  2098, -1267, -1267, -1267,
     1034   -1267,  1307, -1267, -1267,  1197, -1267, -1267, -1267, -1267,  1203,
     1035    1698, -1267, -1267,  1196, -1267,  1067, -1267, -1267,  2178,  1210,
     1036   -1267, -1267, -1267,   749,  1217, -1267,   117,  1214,  9760,  1200,
     1037     117,   117,  1224,   894,   900, -1267, -1267,  1040,  9760,  1230,
     1038    1163, -1267,   943, -1267, -1267,  1220, -1267,    78, -1267,  1231,
     1039    1220, -1267,  1234, -1267, -1267,   987,  1236,  6184,  1235,  1239,
     1040    1241, -1267, -1267,  1238, -1267, -1267,   987, -1267, -1267, -1267,
     1041   -1267,   987,  9760,  9760,   933,  1243, -1267, -1267, -1267, -1267,
     1042   -1267, -1267, -1267, -1267, -1267, -1267, -1267,  9760,  9760,  1244,
     1043    1248,  1220, -1267, -1267,   905, -1267, -1267, -1267,  7070,  7582,
     1044    9760,  9760,  1318,  9760, -1267,  1233, -1267,  1246, -1267,  1250,
     1045    9760,  1254,  9760,  1075,  1255,    47,    84,  1805, -1267, -1267,
     1046    5524,  1256,   555, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
     1047   -1267, -1267,  9281, -1267,  7742,  1260, -1267, -1267,  7582,   561,
     1048     582, -1267,  1273,  1262,   862,  1283, -1267,   273, -1267, -1267,
     1049   -1267, -1267,   987,  1282, -1267, -1267,  1288,  1321, -1267, -1267,
     1050    1321,  1321,   791,  1292,  1699,  1866, -1267,  1295, -1267,  9019,
     1051   -1267, -1267, -1267, -1267,  1298, -1267,  9019,  9019,  9019, -1267,
     1052   -1267,  1300, -1267,  1301,  1310,  1311,   541,  7429,  7548, -1267,
     1053   -1267, -1267, -1267,  1305, -1267,  7817,   762,   783,  1317,   797,
     1054    5667, -1267, -1267, -1267,   610, -1267,   802,  1319,  1323,   198,
     1055    1369,   965, -1267, -1267,  9760, -1267,  9465,  9760, -1267, -1267,
     1056   -1267,  1320,  1326, -1267, -1267, -1267,  1324, -1267, -1267, -1267,
     1057   -1267, -1267, -1267,  7582,   862,  1330, -1267,  1313,   862,  9019,
     1058   -1267, -1267, -1267,   791, -1267, -1267, -1267, -1267, -1267, -1267,
     1059   -1267, -1267, -1267, -1267, -1267, -1267,  1337,  1340, -1267, -1267,
     1060   -1267, -1267, -1267, -1267, -1267,  1343, -1267,  1342, -1267,  9465,
     1061     276,  9760,  9465, -1267,  1346,  9760, -1267,   281,  1361,  1363,
     1062   -1267, -1267,  1355,  1356,  1339, -1267,   921, -1267, -1267, -1267,
     1063    1956,  2178,  1347, -1267,   259,  9760, -1267,   814, -1267,  1220,
     1064     791,   791,  1362,  1364,  1365,  1367, -1267, -1267,  7742,  1357,
     1065   -1267,  1438,  9760,  1352, -1267, -1267,  9375, -1267,   836, -1267,
     1066    1360,  9465,  1368, -1267, -1267,  1386, -1267,  1389, -1267,  1407,
     1067    1409, -1267,  1376,  7582, -1267, -1267, -1267,   862,   605,  1403,
     1068    1382,  1405,  1404,  1220,  1220, -1267, -1267, -1267, -1267, -1267,
     1069    9465,   265, -1267,   397, -1267, -1267,  6917, -1267, -1267,  1385,
     1070    9760, -1267,  9760,  6917,   198,  8860,   198,  8860,  1410, -1267,
     1071    1411, -1267, -1267,  1408, -1267, -1267,   856, -1267, -1267, -1267,
     1072   -1267,  1422,  1423, -1267,  9760,  9760, -1267, -1267,  1005,    59,
     1073   -1267, -1267,  1390, -1267,  1005, -1267, -1267,  2042,   605, -1267,
     1074   -1267,   198,  8860,   198,  8860,  1427,  1412,   605, -1267, -1267,
     1075   -1267, -1267,  9375,  1425,  1005,  6995,  9760,  9285,  1426,  1005,
     1076    1435,  2042,  2360, -1267, -1267, -1267,  1436, -1267, -1267, -1267,
     1077   -1267,  8119, -1267, -1267, -1267,  9148, -1267,  9375, -1267, -1267,
     1078    1416,  9058, -1267, -1267,  9285,   198,  2360,   198,  1441,  1445,
     1079     857, -1267,  9148, -1267, -1267, -1267,  9058, -1267, -1267, -1267,
     1080     198,   198, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267
    13271081};
    13281082
    1329 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1330 static const yytype_uint8 yyr2[] =
    1331 {
    1332        0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1333        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1334        2,     1,     1,     1,     3,     3,     1,     6,     4,     3,
    1335        7,     2,     3,     7,     2,     2,     7,     4,     1,     3,
    1336        0,     1,     1,     3,     1,     2,     6,     3,     7,     3,
    1337        7,     2,     2,     2,     0,     2,     1,     1,     1,     2,
    1338        2,     2,     2,     2,     2,     4,     2,     4,     6,     1,
    1339        4,     4,     1,     1,     1,     1,     1,     1,     1,     4,
    1340        1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    1341        1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    1342        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    1343        4,     1,     1,     3,     0,     1,     1,     1,     1,     1,
    1344        1,     1,     1,     1,     1,     1,     1,     1,     6,     7,
    1345        1,     3,     1,     3,     0,     1,     1,     1,     1,     1,
    1346        1,     1,     1,     1,     6,     4,     2,     7,     1,     3,
    1347        1,     2,     1,     2,     1,     2,     2,     5,     7,     5,
    1348        9,     5,     9,     1,     3,     1,     1,     3,     3,     2,
    1349        1,     2,     2,     0,     1,     2,     3,     0,     1,     2,
    1350        3,     3,     4,     0,     1,     1,     2,     5,     7,     6,
    1351        6,     4,     3,     4,     2,     3,     2,     3,     3,     3,
    1352        3,     5,     3,     3,     4,     1,     5,     6,     5,     6,
    1353        9,    10,     9,    10,     2,     1,     2,     2,     2,     1,
    1354        6,     8,    10,    12,    14,     0,     1,     0,     1,     1,
    1355        3,     4,     7,     0,     1,     3,     1,     3,     1,     1,
    1356        1,     3,     1,     1,     1,     3,     0,     1,     3,     4,
    1357        1,     3,     1,     1,     3,     3,     3,     3,     3,     2,
    1358        3,     6,     3,     3,     4,     1,     2,     2,     3,     5,
    1359        7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
    1360        3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
    1361        1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
    1362        1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
    1363        5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
    1364        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1365        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1366        2,     2,     3,     3,     1,     3,     1,     2,     2,     2,
    1367        4,     4,     4,     4,     1,     2,     2,     3,     1,     2,
    1368        2,     1,     2,     2,     3,     1,     2,     2,     1,     1,
    1369        4,     2,     0,     6,     7,     2,     2,     2,     0,     2,
    1370        2,     3,     2,     3,     1,     2,     3,     2,     2,     4,
    1371        0,     1,     2,     2,     1,     0,     1,     2,     2,     5,
    1372        2,     0,     7,     2,     4,     0,     2,     0,     1,     1,
    1373        1,     5,     5,     5,     1,     5,     5,     9,     1,     5,
    1374        0,     1,     1,     5,     1,     1,     5,     5,     1,     3,
    1375        3,     4,     1,     1,     1,     1,     2,     1,     3,     3,
    1376        1,     2,     1,     3,     1,     1,     1,     1,     1,     1,
    1377        1,     1,     1,     1,     1,     2,     1,     1,     1,     2,
    1378        0,     2,     2,     1,     4,     0,     1,     2,     3,     4,
    1379        2,     2,     1,     2,     2,     5,     5,     7,     6,     1,
    1380        2,     2,     3,     1,     2,     2,     4,     2,     4,     0,
    1381        4,     2,     1,     1,     1,     0,     2,     5,     5,    13,
    1382        1,     1,     3,     3,     2,     3,     3,     2,     4,     1,
    1383        6,     9,     0,    11,     1,     3,     3,     3,     1,     1,
    1384        5,     2,     5,     0,     1,     1,     3,     0,     1,     1,
    1385        1,     1,     0,     6,     2,     1,     2,     4,     2,     3,
    1386        3,     3,     4,     5,     5,     5,     6,     1,     1,     1,
    1387        3,     0,     5,     0,     1,     1,     2,     6,     1,     3,
    1388        0,     1,     4,     1,     1,     1,     1,     2,     1,     2,
    1389        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    1390        8,     3,     2,     1,     2,     6,     8,     3,     2,     3,
    1391        3,     4,     4,     3,     1,     1,     1,     4,     6,     3,
    1392        2,     3,     3,     4,     4,     3,     2,     1,     2,     2,
    1393        1,     3,     2,     3,     3,     2,     4,     4,     3,     6,
    1394        8,     3,     2,     1,     2,     2,     2,     3,     3,     2,
    1395        4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
    1396        1,     1,     2,     3,     3,     2,     4,     6,     8,     1,
    1397        2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
    1398        3,     5,     8,     3,     2,     3,     1,     5,     5,     6,
    1399        6,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1400        4,     4,     3,     5,     8,     3,     1,     2,     1,     2,
    1401        6,     5,     6,     7,     7,     1,     2,     2,     1,     2,
    1402        2,     3,     3,     1,     4,     4,     3,     8,     3,     1,
    1403        1,     2,     1,     1,     2,     3,     2,     3,     2,     3,
    1404        3,     2,     4,     3,     2,     3,     2,     4,     3,     2,
    1405        6,     6,     6,     7,     1,     2,     1,     1,     1,     2,
    1406        3,     2,     3,     2,     3,     3,     4,     2,     3,     4,
    1407        2,     5,     6,     6,     0,     1,     0,     2
    1408 };
    1409 
    1410 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
    1411    Performed when YYTABLE doesn't specify something else to do.  Zero
    1412    means the default is an error.  */
     1083  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
     1084     Performed when YYTABLE does not specify something else to do.  Zero
     1085     means the default is an error.  */
    14131086static const yytype_uint16 yydefact[] =
    14141087{
     
    15691242};
    15701243
    1571 /* YYDEFGOTO[NTERM-NUM].  */
     1244  /* YYPGOTO[NTERM-NUM].  */
     1245static const yytype_int16 yypgoto[] =
     1246{
     1247   -1267,  4051,  2784, -1267,   133, -1267,  1353,   867,  -240,   882,
     1248   -1267,   523,  -528,  -489,  -834, -1001, -1267,   -51,  4776,     0,
     1249   -1267,   793,   508,   531,   517,   553,  1006,  1001,  1009,  1004,
     1250    1015, -1267,   711,  -584,  4023,  -739, -1267, -1267,   606,  -227,
     1251    -674,  -263, -1267,   335, -1267,   384,  -963, -1267, -1267,   116,
     1252   -1267,  -732, -1049,   228, -1267, -1267, -1267, -1267,    57, -1266,
     1253   -1267, -1267, -1267, -1267, -1267, -1267,   302,  -964,    23, -1267,
     1254    -360, -1267,   484,   278, -1267,   155, -1267,  -355, -1267, -1267,
     1255   -1267,   538,  -612, -1267, -1267,     9,  -990,   219,  2319, -1267,
     1256   -1267, -1267,  -124, -1267,   110,    36,  -188,  1213,  3869, -1267,
     1257   -1267,    12,    61,   970,  1623, -1267,  1495, -1267, -1267,    21,
     1258    1827, -1267,  2153,  1937, -1267, -1267, -1267,  -641, -1267,   914,
     1259     919,   521,   695,   -93, -1267, -1267, -1267,   907,   693,  -521,
     1260   -1267,  -507,  -417,  -420, -1267, -1267,  -914,  -941,  -147,   -54,
     1261    1019,    19, -1267,  2311,   381,  -366,  -185,  -122,   649,   750,
     1262   -1267,   969, -1267,  2435,  1823,  -463,   901, -1267, -1267,   697,
     1263   -1267,  -225, -1267,   103, -1267, -1267, -1267, -1263,   412, -1267,
     1264   -1267, -1267,  1139, -1267,    42, -1267, -1267,  -832,   -94, -1230,
     1265    -162,  2364, -1267,  3117, -1267,   908, -1267,  -103,   120,  -184,
     1266    -183,  -178,     7,   -40,   -39,   -36,  1505,     4,    32,    71,
     1267      92,  -173,  -172,  -170,  -168,  -306,  -510,  -503,  -496,  -559,
     1268    -313,  -498, -1267, -1267,  -514,  1072,  1076,  1081,  1925,  4399,
     1269    -524,  -566,  -556,  -543,  -548, -1267,  -508,  -723,  -722,  -717,
     1270    -582,  -166,  -229, -1267, -1267,   283,   102,     6, -1267,  3380,
     1271     108,  -611,  -462
     1272};
     1273
     1274  /* YYDEFGOTO[NTERM-NUM].  */
    15721275static const yytype_int16 yydefgoto[] =
    15731276{
     
    15991302};
    16001303
    1601 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1602    STATE-NUM.  */
    1603 #define YYPACT_NINF -1267
    1604 static const yytype_int16 yypact[] =
    1605 {
    1606     5235,  8510, -1267,   -14, -1267, -1267, -1267, -1267, -1267, -1267,
    1607    -1267,   -27, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
    1608    -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,    84,    84,
    1609       84,  1541,   905,   123,  6677,   163, -1267, -1267, -1267, -1267,
    1610    -1267,   157, -1267, -1267, -1267,  1043,    81, -1267, -1267, -1267,
    1611    -1267,  4048, -1267, -1267, -1267, -1267,   225,   198, -1267,  1956,
    1612    -1267, -1267, -1267, -1267,   217,  1716,   371,    37,  6797, -1267,
    1613    -1267,  4048,   829, -1267, -1267,  1101,   380,  3172,   661,   839,
    1614     1101,   977, -1267, -1267,  1289,   340, -1267,  1101,  1140, -1267,
    1615      273, -1267,   439,   447, -1267, -1267, -1267, -1267,   337,   198,
    1616       84, -1267,    84, -1267, -1267, -1267, -1267,  7269,  1956, -1267,
    1617    -1267,  1956, -1267,   325, -1267,  7582, -1267, -1267,  2178,  8744,
    1618    -1267,   675,   675,   675, -1267, -1267, -1267,    84, -1267, -1267,
    1619    -1267,   360,   395,   436, -1267, -1267, -1267,   466, -1267, -1267,
    1620    -1267, -1267, -1267,   503,   515, -1267, -1267,   272,  8119,  1675,
    1621      307,   370,   377,   524,   565,   568,   580,  8828,  6307,   594,
    1622    -1267,  4677, -1267, -1267, -1267, -1267,   613, -1267,   271,  9583,
    1623     9583, -1267,   610,   339, -1267, -1267, -1267, -1267,   618,   379,
    1624      421,   468,    84,   603, -1267, -1267,  1716,  2591,   687, -1267,
    1625       90, -1267,    84,    84,   198, -1267, -1267,    91, -1267,    84,
    1626       84, -1267,  2973,   652,   657,   675,  6831, -1267, -1267, -1267,
    1627     4048, -1267, -1267,  1101, -1267, -1267, -1267,   198, -1267,  1956,
    1628      225, -1267,  7235, -1267,   675,   675,   675,   198, -1267,  1541,
    1629    -1267,  3826, -1267, -1267,   642,   675, -1267,   675, -1267,   157,
    1630     8119, -1267,   665, -1267,   905,   685,   675, -1267,  1541,   689,
    1631      710, -1267,  6677,   291, -1267, -1267, -1267,  8477, -1267, -1267,
    1632     4354, -1267,   687,     8,  9760,  8744,  2178,  2973, -1267,   101,
    1633    -1267, -1267,  7582,  1956,   740, 10515, -1267, -1267,   378, -1267,
    1634    10178,   730,   705,  9819,   773,  9760,  9878, -1267,   794, -1267,
    1635    -1267, -1267, -1267, -1267, -1267,  9937,  9937,  7885,    81, -1267,
    1636    -1267, -1267, -1267, -1267, -1267, -1267,   834, -1267,  1184,  2546,
    1637     8119,  9760, -1267,   525,   415,   844,   338,   853,   823,   831,
    1638      841,   886,    56, -1267, -1267, -1267,   518, -1267,   528, -1267,
    1639    -1267,  1675, -1267, -1267,   456,   900, -1267,   490,   900, -1267,
    1640    -1267,  7269, -1267,   940,   946,  8236, -1267, -1267,   536,  1525,
    1641     7667,  6831,  1101, -1267,  1101,   675,   675, -1267, -1267, -1267,
    1642    -1267, -1267, -1267,   675,  7269,  1956, -1267, -1267,  8828,  1786,
    1643    -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,  9524,
    1644     9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
    1645    -1267, -1267, -1267, -1267, -1267,  2178, -1267,   446,   945,   961,
    1646      968,   800,   973,   976,   981,  2591, -1267, -1267,   939,   225,
    1647      982, -1267, -1267,   987, -1267, -1267, -1267,  8477, -1267, -1267,
    1648    -1267, -1267, -1267,  2973, -1267,  8119,  8119, -1267,   675,  2178,
    1649    10547,  7742, -1267, -1267, -1267, -1267,  8477,     8, -1267, -1267,
    1650     1101,   198, -1267, -1267,  8477, -1267,  5404, -1267, -1267,   675,
    1651      675,   579,  8594,   994,   993,   983,   998,   675, -1267, -1267,
    1652    -1267, -1267,  9019, -1267,   616, 10212, -1267,   198,  1004, -1267,
    1653     2178, 10298,  9996, -1267, -1267, -1267, -1267,   843,  2973, -1267,
    1654     7742,   687,  5806, -1267, -1267, -1267,  1900,   626,   990,   905,
    1655    10515,  1647,  7582, -1267, 10515, -1267, -1267, -1267, -1267,   627,
    1656    -1267,  1013,   705,   154,  7885, -1267,  8860, -1267, -1267,  7885,
    1657    -1267,  8002,  7885, -1267, -1267,    81, -1267,   640,  1015,   658,
    1658     1021, -1267, -1267,  6061, -1267, -1267,   315, -1267, -1267,  9760,
    1659    -1267,   368,  9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
    1660    -1267, -1267, -1267, -1267, -1267,  9760, -1267, -1267,  9760,  9760,
    1661     9760,  9760,  9760,  9760,  9760,  9760,  9760,  9760,  9760,  9760,
    1662     9760,  9760,  9760,  9760,  9760,  9760,  3432,   518,  1212, -1267,
    1663    -1267,    84,    84, -1267, -1267,  8119, -1267, -1267,   987,   291,
    1664    -1267,   987, 10055, -1267, -1267,  8828,  6061,  1020, -1267,  8744,
    1665    -1267, -1267,   613, -1267,  1023,  1793,  1025,  1950,   136,   990,
    1666    -1267,    84,    84,   990,   407, -1267,    84,    84,   987, -1267,
    1667    -1267,    84,    84, -1267,   900,  8944,  1956, 10447,   356,   541,
    1668     8944, -1267,  4354, -1267,   990, -1267,  7269, -1267,   126,  7354,
    1669     7354,  1956,  9642,  1003, -1267,   789,  1008,  1010, -1267,  1026,
    1670     9583,   449, -1267,  1114,  1956,  7354,   291,  2178,   291,   687,
    1671      707,   900, -1267, -1267,   766,   900, -1267, -1267, -1267,   705,
    1672    -1267,   900,   198,  9019, -1267,   643,  1041,   647,  1045, -1267,
    1673      940,   198, -1267, -1267,  8477,   198,  1042,  8860,    81, -1267,
    1674     1307, -1267,   471,   481,   905, -1267,   905,  1047,  9760, -1267,
    1675      905, 10447, -1267, -1267,  1056, -1267, -1267, -1267,   291, -1267,
    1676    10373,   946, -1267,  7354,   694,  7667, -1267, -1267,   613,  1052,
    1677     1057,  1900,  2267, -1267, -1267, 10515,  9760, -1267, -1267,  1055,
    1678    -1267, -1267,  1048, -1267,  1055,  1063, 10178,  9760,  1046,  1051,
    1679      117,  1065,  1062,  1070,  1074, -1267,  1081,  1082,  6061, -1267,
    1680     9760, -1267,   658,  1520, -1267, -1267, -1267,    84,    84,  9701,
    1681     9760,  1077, -1267, -1267,   679, -1267,  9760, -1267, -1267,   821,
    1682    -1267, -1267, -1267, -1267,   525,   525,   415,   415,   844,   844,
    1683      844,   844,   338,   338,   853,   823,   831,   841,   886,  9760,
    1684      397,  9019,  1085,  1086,  1087,  1212, -1267, -1267, -1267, -1267,
    1685    -1267,  9019,   691, -1267,  7269, -1267,  6430,  8353, -1267, -1267,
    1686    -1267,  1793,  9019,   856,  1089,  1091,  1092,  1093,  1096,  1098,
    1687     1104, -1267,  3291,  1950, -1267, -1267, -1267, -1267, -1267, -1267,
    1688    -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
    1689    -1267,   987, -1267, -1267, -1267,   990, -1267, -1267, -1267, -1267,
    1690    -1267, -1267, -1267, -1267, -1267, -1267,  1105,  1106, -1267,   225,
    1691     1077,  9642, -1267, -1267, -1267,  9524,  1108, -1267, -1267, -1267,
    1692    -1267,   905,  5524,  1197, -1267, -1267, -1267, -1267,  1095,   225,
    1693    -1267, -1267,   987, -1267, -1267,   987,  1117,   987, -1267, -1267,
    1694    -1267, -1267, -1267, -1267,  6307, -1267,   198, -1267, -1267,   505,
    1695      507,  6307,  1549,  9760,  2098, -1267, -1267,  1099,    38,  1099,
    1696    -1267,   905, -1267,    84, -1267, -1267,  8627,   983, -1267, -1267,
    1697    -1267,   993,  1120,  1115, -1267, -1267,  1122,  1123, -1267,   694,
    1698     1698, -1267,   576, -1267,  2267,   990, -1267, -1267,  1126, 10515,
    1699     7582,  8119,  1129, -1267, -1267,  1125,  1135,  1118, -1267,  9760,
    1700     1141,   190,  1136, -1267,  1142,   291,  1142, -1267, -1267,  1142,
    1701    -1267,  1147,  1152,  1154,  1520, -1267, -1267, -1267,  9524, -1267,
    1702    -1267, -1267,  1163,  9760,   986, -1267,  9760, -1267,   986, -1267,
    1703    -1267,  9760, -1267,   894,   900, -1267, -1267, -1267, -1267, -1267,
    1704    -1267, -1267,   946,  8236, -1267, -1267,  6553,  1171, -1267,   898,
    1705      900, -1267,   920,   936,   900, -1267,   675,  7112, -1267, -1267,
    1706    -1267,  9019,  9019, -1267,  7742,  7742,  1172,  1167,  1168,  1175,
    1707    -1267,   670,   111,  1077, -1267,   986, -1267,  9583, -1267,  9760,
    1708      540, -1267,  5932,  1180,  1181,  9465,  1182,  1185,    -8,    40,
    1709       86,  9760,  1191,   198,  9760,  9760,  1177,   585,  1169, -1267,
    1710    -1267, -1267,  1187, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
    1711    -1267, -1267,   905,  1195,  9760, -1267,  9019,  9019,    84,  1201,
    1712    -1267,  8711, -1267, -1267,   862, -1267,  2098, -1267, -1267, -1267,
    1713    -1267,  1307, -1267, -1267,  1198, -1267, -1267, -1267, -1267,  1202,
    1714     1698, -1267, -1267,  1196, -1267,  1055, -1267, -1267,  2178,  1210,
    1715    -1267, -1267, -1267,   704,  1217, -1267,   117,  1214,  9760,  1200,
    1716      117,   117,  1224,   950,   900, -1267, -1267,  1026,  9760,  1230,
    1717     1163, -1267,   943, -1267, -1267,  1220, -1267,    78, -1267,  1231,
    1718     1220, -1267,  1234, -1267, -1267,   987,  1236,  6184,  1235,  1239,
    1719     1241, -1267, -1267,  1238, -1267, -1267,   987, -1267, -1267, -1267,
    1720    -1267,   987,  9760,  9760,   946,  1243, -1267, -1267, -1267, -1267,
    1721    -1267, -1267, -1267, -1267, -1267, -1267, -1267,  9760,  9760,  1244,
    1722     1248,  1220, -1267, -1267,   905, -1267, -1267, -1267,  7070,  7582,
    1723     9760,  9760,  1318,  9760, -1267,  1233, -1267,  1246, -1267,  1250,
    1724     9760,  1254,  9760,   938,  1255,    47,    84,  1805, -1267, -1267,
    1725     5524,  1256,   554, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
    1726    -1267, -1267,  9281, -1267,  7742,  1260, -1267, -1267,  7582,   555,
    1727      561, -1267,  1273,  1262,   705,  1283, -1267,   256, -1267, -1267,
    1728    -1267, -1267,   987,  1282, -1267, -1267,  1288,  1321, -1267, -1267,
    1729     1321,  1321,   986,  1292,  1699,  1866, -1267,  1295, -1267,  9019,
    1730    -1267, -1267, -1267, -1267,  1298, -1267,  9019,  9019,  9019, -1267,
    1731    -1267,  1300, -1267,  1301,  1310,  1311,   725,  7429,  7548, -1267,
    1732    -1267, -1267, -1267,  1305, -1267,  7817,   709,   755,  1317,   758,
    1733     5667, -1267, -1267, -1267,   582, -1267,   768,  1319,  1323,   198,
    1734     1369,   935, -1267, -1267,  9760, -1267,  9465,  9760, -1267, -1267,
    1735    -1267,  1320,  1326, -1267, -1267, -1267,  1324, -1267, -1267, -1267,
    1736    -1267, -1267, -1267,  7582,   705,  1330, -1267,  1313,   705,  9019,
    1737    -1267, -1267, -1267,   986, -1267, -1267, -1267, -1267, -1267, -1267,
    1738    -1267, -1267, -1267, -1267, -1267, -1267,  1337,  1340, -1267, -1267,
    1739    -1267, -1267, -1267, -1267, -1267,  1343, -1267,  1342, -1267,  9465,
    1740      276,  9760,  9465, -1267,  1346,  9760, -1267,   281,  1361,  1363,
    1741    -1267, -1267,  1355,  1356,  1339, -1267,   901, -1267, -1267, -1267,
    1742     1956,  2178,  1347, -1267,   401,  9760, -1267,   783, -1267,  1220,
    1743      986,   986,  1362,  1364,  1365,  1367, -1267, -1267,  7742,  1357,
    1744    -1267,  1438,  9760,  1352, -1267, -1267,  9375, -1267,   791, -1267,
    1745     1360,  9465,  1368, -1267, -1267,  1386, -1267,  1389, -1267,  1407,
    1746     1409, -1267,  1376,  7582, -1267, -1267, -1267,   705,   291,  1403,
    1747     1382,  1405,  1404,  1220,  1220, -1267, -1267, -1267, -1267, -1267,
    1748     9465,   240, -1267,   474, -1267, -1267,  6917, -1267, -1267,  1385,
    1749     9760, -1267,  9760,  6917,   198,  8860,   198,  8860,  1410, -1267,
    1750     1411, -1267, -1267,  1408, -1267, -1267,   802, -1267, -1267, -1267,
    1751    -1267,  1422,  1423, -1267,  9760,  9760, -1267, -1267,   979,    59,
    1752    -1267, -1267,  1390, -1267,   979, -1267, -1267,  2042,   291, -1267,
    1753    -1267,   198,  8860,   198,  8860,  1427,  1412,   291, -1267, -1267,
    1754    -1267, -1267,  9375,  1425,   979,  6995,  9760,  9285,  1426,   979,
    1755     1435,  2042,  2360, -1267, -1267, -1267,  1436, -1267, -1267, -1267,
    1756    -1267,  8119, -1267, -1267, -1267,  9148, -1267,  9375, -1267, -1267,
    1757     1416,  9058, -1267, -1267,  9285,   198,  2360,   198,  1441,  1445,
    1758      814, -1267,  9148, -1267, -1267, -1267,  9058, -1267, -1267, -1267,
    1759      198,   198, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267
    1760 };
    1761 
    1762 /* YYPGOTO[NTERM-NUM].  */
    1763 static const yytype_int16 yypgoto[] =
    1764 {
    1765    -1267,  4051,  2784, -1267,   133, -1267,  1353,   867,  -240, -1267,
    1766    -1267,   504,  -528,  -489,  -834, -1001, -1267,   -77,  4776,     0,
    1767    -1267,   793,   489,   531,   722,   534,   999,  1001,  1005,  1007,
    1768     1002, -1267,   711,  -584,  4023,  -739, -1267, -1267,   606,  -227,
    1769     -674,  -263, -1267,   335, -1267,   382,  -963, -1267, -1267,   119,
    1770    -1267,  -732, -1049,   228, -1267, -1267, -1267, -1267,    54, -1266,
    1771    -1267, -1267, -1267, -1267, -1267, -1267,   302, -1050,    23, -1267,
    1772     -171, -1267,   482,   277, -1267,   153, -1267,  -355, -1267, -1267,
    1773    -1267,   538,  -612, -1267, -1267,     9,  -990,   219,  2319, -1267,
    1774    -1267, -1267,  -124, -1267,   110,    36,  -188,  1213,  3869, -1267,
    1775    -1267,    12,    61,   970,  1623, -1267,  1495, -1267, -1267,    21,
    1776     1827, -1267,  2153,  1937, -1267, -1267, -1267,  -641, -1267,   911,
    1777      914,   521,   695,   -93, -1267, -1267, -1267,   906,   690,  -521,
    1778    -1267,  -507,  -417,  -420, -1267, -1267,  -914,  -941,  -147,   -54,
    1779     1019,    19, -1267,  2311,   381,  -366,  -185,  -122,   649,   745,
    1780    -1267,   964, -1267,  2435,  1823,  -463,   895, -1267, -1267,   693,
    1781    -1267,  -225, -1267,   103, -1267, -1267, -1267, -1263,   408, -1267,
    1782    -1267, -1267,  1139, -1267,    42, -1267, -1267,  -832,   -94, -1230,
    1783     -162,  2364, -1267,  3117, -1267,   908, -1267,  -103,   120,  -184,
    1784     -183,  -178,     7,   -40,   -39,   -36,  1505,     4,    32,    71,
    1785       92,  -173,  -172,  -170,  -168,  -306,  -510,  -503,  -496,  -559,
    1786     -313,  -498, -1267, -1267,  -514,  1064,  1072,  1076,  1925,  4399,
    1787     -524,  -566,  -556,  -543,  -548, -1267,  -508,  -723,  -722,  -717,
    1788     -582,  -166,  -229, -1267, -1267,   283,   102,     6, -1267,  3380,
    1789      108,  -611,  -462
    1790 };
    1791 
    1792 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    1793    positive, shift that token.  If negative, reduce the rule which
    1794    number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1795 #define YYTABLE_NINF -529
     1304  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
     1305     positive, shift that token.  If negative, reduce the rule whose
     1306     number is the opposite.  If YYTABLE_NINF, syntax error.  */
    17961307static const yytype_int16 yytable[] =
    17971308{
     
    18151326     952,    98,   900,   108,   146,   953,  1178,    33,  -239,   591,
    18161327     713,  1161,   918,  1285,   326,   190,   187,   187,    98,   566,
    1817      154,    98,   177,   340,   162,  1235,   846,   157,   665,   667,
     1328     154,    98,   177,   340,   162,  1235,   846,   740,   665,   667,
    18181329     291,   804,   267,   253,   418,   410,   410,  1180,   805,   790,
    1819       51,  1157,   847,   847,   479,   806,   410,   162,   155,    58,
     1330      51,   971,   847,   847,   479,   806,   410,   162,   155,    58,
    18201331     117,  1512,   210,   167,   660,  1424,   151,   152,   847,   441,
    1821      153,  1314,   939,  1317,  1319,   808,   144,  1158,   437,   474,
     1332     153,  1314,   939,  1317,  1319,   808,   144,   524,   437,   474,
    18221333     310,   177,   429,   879,   177,   809,   432,  1061,  1527,   817,
    18231334    1050,   596,    51,    58,   999,   819,   330,   156,   810,    99,
    1824      272,   716,   728,  1152,    71,   272,   267,   267,   729,    98,
     1335     272,   716,   728,  1152,    71,   272,   267,   267,  1058,    98,
    18251336     148,   976,   115,    78,   162,    52,   326,   517,    78,   407,
    1826     1167,    98,   517,   440,   604,   517,   847,   211,   730,  1000,
     1337    1167,    98,   517,   440,   604,   517,   847,   211,   157,  1000,
    18271338     221,   804,   481,   469,   461,  1184,  1185,   310,   805,   498,
    1828     1074,   649,   657,   987,  1099,   806,   397,   190,   432,  1065,
     1339    1074,   649,   657,   987,   729,   806,   397,   190,   432,  1065,
    18291340     310,   486,   469,    72,   707,   695,   172,  1152,   434,   886,
    1830      469,   706,  1382,  1383,  1100,   281,   568,  1382,  1383,   664,
     1341     469,   706,  1382,  1383,   730,   281,   568,  1382,  1383,   664,
    18311342      98,   149,   445,   519,   164,   669,   169,   182,   372,   780,
    1832     1454,   115,    98,  1150,  1151,   345,   160,   584,   330,   597,
     1343    1157,   115,    98,  1150,  1151,   345,   160,   584,   330,   597,
    18331344     615,   458,   177,   808,   108,  1097,   795,  1181,  1051,   407,
    1834      170,   972,    65,   809,   620,   112,  1158,   470,   620,  1224,
    1835     1307,   977,    98,  1003,   202,   657,   810,   583,    43,    44,
    1836      434,   588,   988,  -294,   624,   282,   477,  1470,   628,   112,
    1837     1308,   376,   174,   248,  1384,   267,   816,   842,   164,  1393,
    1838      621,   833,    43,    44,   625,   187,   177,   377,   696,  1482,
    1839     1166,   213,   372,   177,   112,  1487,   141,   142,   167,   876,
    1840      253,   332,  1498,   267,  1500,   310,   310,    43,    44,   267,
    1841      752,   620,   555,   556,   254,  1507,  1167,  1152,    78,   251,
    1842     1514,   439,   112,  1167,  1138,  1140,  1106,  -524,    33,   591,
    1843      253,    98,   115,   593,   591,    43,    44,    78,   244,   386,
    1844      264,   326,   326,  1082,  1419,    78,  1085,   557,   558,   598,
    1845      267,    58,   836,   -12,   706,   387,   837,  1118,   267,  1369,
    1846      620,   177,    51,   757,   333,   372,   712,   869,   680,    99,
    1847      940,   334,   115,   433,    71,  1167,  1223,   658,   177,   389,
    1848      604,   118,   177,    78,   310,    52,   115,   998,  -448,   310,
    1849      491,   310,   310,   492,  1215,   390,   695,   740,   857,   743,
    1850      824,  1407,   596,   345,  1511,   190,   486,   470,   326,   416,
    1851      486,   971,   213,   330,   330,  1408,  1413,  1414,   551,   552,
    1852      519,   391,   519,    72,  1522,   519,   470,   326,   519,  -449,
     1345     170,   972,    65,   809,   620,  1454,  1158,   470,   620,  1224,
     1346    1099,   977,    98,  1003,   836,   657,   810,   583,   837,  1407,
     1347     434,   588,   988,   202,   624,   282,   477,  1307,   628,   112,
     1348    1100,  1158,   174,  1408,  1384,   267,   816,   842,   164,  1393,
     1349     621,   833,    43,    44,   625,   187,   177,  1308,   696,  1482,
     1350    1166,   213,   372,   177,   112,  1487,   141,   142,   167,   112,
     1351     838,   141,   142,   267,   839,   310,   310,    43,    44,   267,
     1352     752,   620,    43,    44,   254,  1507,  1167,  1152,    78,  -294,
     1353    1514,   439,   112,  1167,  1138,  1140,  1106,   248,    33,   591,
     1354     251,    98,   115,   593,   591,    43,    44,    78,   244,   376,
     1355     852,   326,   326,  1082,  1419,    78,  1085,  -524,   386,   598,
     1356     267,    58,   838,  1470,   706,   377,  1081,  1118,   267,  1369,
     1357     620,   177,    51,   757,   387,   372,   712,   869,   680,    99,
     1358     940,   253,   115,   433,    71,  1167,  1223,   658,   177,   389,
     1359     604,   118,   177,    78,   310,    52,   115,   998,  1498,   310,
     1360    1500,   310,   310,   -12,  1215,   390,   695,  1455,   857,   743,
     1361     824,   264,   596,   345,  1511,   190,   486,   470,   326,   416,
     1362     486,  1456,   213,   330,   330,  -112,  1413,  1414,  -448,  -112,
     1363     519,   391,   519,    72,  1522,   519,   470,   326,   519,   333,
    18531364     469,  1526,   435,   867,   470,   433,  1000,   392,  1106,   253,
    18541365     332,   410,   443,   900,   858,   980,   635,   568,   568,   576,
    1855      658,   410,   707,  1259,  1260,   310,   915,   897,  1050,   277,
    1856      521,  1147,  1148,   859,   108,   620,   345,  1149,   393,   615,
    1857      704,   901,    65,   164,  1455,   597,  1343,   597,   797,  1039,
    1858      330,   903,    98,   579,   394,   410,   598,   902,  1456,   696,
    1859       39,   326,   175,   176,    42,   620,   279,   904,   998,   330,
    1860      620,   793,   615,    43,    44,   901,   620,   903,   280,   620,
    1861      620,   567,   518,   410,   695,   835,  1195,  1196,   335,    47,
    1862       48,  1062,   574,  1063,   695,   620,   548,   267,   575,   371,
    1863      849,   832,   549,   550,  1428,   695,   588,   838,  1345,   287,
    1864     1164,   839,   841,   864,  1010,     2,   207,     4,     5,     6,
    1865        7,  1392,    43,    44,  1164,  1298,  1165,   115,   440,   336,
    1866      894,  1300,   337,   330,  1055,     8,     9,    10,    11,    12,
    1867     1290,  1299,   838,   676,   338,    78,  1081,  1301,   512,   575,
    1868      378,    58,   740,   620,   920,   615,  1093,   371,   398,   399,
    1869      706,   712,   712,   680,   400,   803,    33,   598,  1346,   401,
    1870      402,    78,   403,   834,   404,   707,   375,   696,   593,   384,
    1871      697,   388,    37,  1016,    38,   684,   698,   696,   345,   396,
    1872      714,   725,   743,   743,    36,   498,   715,   726,   696,   177,
    1873     1428,   486,   213,   408,   739,  1428,  1462,   880,  1463,  1356,
    1874      740,   882,  1172,   740,   177,   425,   213,   740,   951,   952,
    1875      426,   742,   899,   410,   953,  1428,   673,   177,   448,    47,
    1876       48,  1409,  1428,  -372,   470,   568,  -112,   521,   291,   521,
    1877     -112,   406,   521,   965,   620,   521,   983,    -3,  1421,   966,
    1878      898,   597,   699,  -401,  1068,   978,  1068,   919,  1142,   596,
    1879      470,   698,  1509,   597,  1460,    47,    48,   591,  1211,  1321,
    1880      870,  1460,   410,  1339,   575,   459,  1323,  1324,  1325,   740,
     1366     658,   410,   707,  1259,  1260,   310,   915,   897,  1050,  -449,
     1367     521,  1147,  1148,   859,   108,   620,   345,  1149,   574,   615,
     1368     704,   393,    65,   164,   575,   597,  1343,   597,   797,  1039,
     1369     330,   901,    98,   555,   556,   491,   598,   394,   492,   696,
     1370      39,   326,   175,   176,    42,   620,   277,   902,   998,   330,
     1371     620,   793,   615,    43,    44,   903,   620,   901,   279,   620,
     1372     620,   579,   518,   410,   695,   835,  1195,  1196,   557,   558,
     1373     280,   904,   676,  1062,   695,   620,   548,   267,   575,   371,
     1374     849,   832,   549,   550,  1428,   695,   588,  1332,  1345,   287,
     1375     903,  1333,   841,   864,  1010,     2,   207,     4,     5,     6,
     1376       7,  1392,    43,    44,  1164,  1164,  1063,   115,   440,   112,
     1377     894,  1298,   334,   330,  1055,     8,     9,    10,    11,    12,
     1378    1165,  1290,    43,    44,   870,    78,   410,  1299,   512,   371,
     1379     378,    58,  1300,   620,   920,   615,  1093,   335,   398,   399,
     1380     706,   712,   712,   680,   400,   803,    33,   598,  1301,   401,
     1381     402,    78,   403,   834,   404,   707,   336,   696,   593,   873,
     1382     740,   410,    37,  1016,    38,   684,  1213,   696,   345,   337,
     1383    1217,   697,   743,   743,    36,   498,  1346,   698,   696,   177,
     1384    1428,   486,   213,   338,   714,  1428,  1462,   725,  1463,  1356,
     1385     715,   739,  1172,   726,   177,   375,   213,   740,   951,   952,
     1386     384,   567,   899,   410,   953,  1428,   673,   177,   388,    47,
     1387      48,  1409,  1428,   408,   470,   568,  1123,   521,   410,   521,
     1388     396,   406,   521,   880,   620,   521,   983,    -3,  1421,   740,
     1389     898,   597,   699,   425,  1068,   882,  1068,   742,  1142,   410,
     1390     470,   740,  1509,   597,  1460,    47,    48,   591,   965,  1321,
     1391    1134,  1460,   410,   978,   966,   426,  1323,  1324,  1325,   698,
    18811392     979,   803,   598,     2,   207,     4,     5,     6,     7,   518,
    1882     1335,  1332,  -295,   502,   518,  1333,   460,   518,   704,     8,
    1883        9,    10,    11,    12,   695,   695,   940,   213,   482,   177,
    1884      940,   940,   310,   112,   229,   141,   142,    50,   114,  1340,
    1885     1480,  1421,  1342,  1508,    71,   740,    43,    44,   740,   873,
    1886       33,   410,  1347,    78,   345,   731,   506,   732,   740,  1368,
    1887      733,   345,   894,   737,   894,  1162,   797,  1410,   114,   114,
    1888       37,    50,    38,  1407,   852,  1429,   115,   511,    36,   695,
    1889      695,   740,    50,   418,   653,   410,  1476,   524,    50,   920,
    1890      920,   803,  1477,    72,   712,  1213,    50,  1039,  1532,  1217,
    1891      115,   310,    50,   598,   575,    50,   553,   554,    50,  1086,
    1892      969,   966,   680,  1266,  1267,   561,  1269,   696,   696,   559,
    1893      560,   114,   114,  1274,   743,  1276,   479,   332,   410,  1494,
    1894      684,   707,   562,   657,   108,   486,  1088,   326,   897,   817,
    1895      332,   596,    65,   563,  1305,    50,   332,   410,    50,   112,
    1896     -296,   141,   142,   345,   564,    50,   407,     8,     9,    10,
    1897       11,    12,    43,    44,  1206,  1352,  1353,   878,  1277,  1278,
    1898     1279,   704,   696,   696,   620,   620,   885,  1123,  1106,   410,
    1899      887,  1134,  1064,   410,   898,   339,    50,   112,    33,   832,
    1900     1402,   966,   310,  1355,  1111,  1382,  1383,  1112,    50,  1113,
    1901       43,    44,   108,  1137,  1169,   596,  1230,  1231,   707,   330,
    1902      764,   765,   230,    78,   598,   231,    36,   440,   235,  1139,
    1903      237,   596,   659,    50,    50,  1294,   585,   246,  1228,   650,
    1904      112,   115,    -3,  1220,  1363,   410,   894,  1111,  1363,    50,
    1905     1112,   894,  1113,    43,    44,   651,  1381,    50,   508,  1389,
    1906      920,    58,   652,    72,   766,   767,    50,   654,   267,    50,
    1907      655,   834,   695,   772,   773,   656,   114,   680,   661,   695,
     1393    1335,  1137,  -295,   596,   518,   253,   332,   518,   704,     8,
     1394       9,    10,    11,    12,   695,   695,   940,   213,   448,   177,
     1395     940,   940,   310,  1211,   229,   112,  -372,    50,   114,   575,
     1396    1480,  1421,  1111,  1508,    71,  1112,  1339,  1113,    43,    44,
     1397      33,  -401,   740,    78,   345,   731,  1139,   732,   596,  1368,
     1398     733,   345,   894,   737,   894,  1162,   797,  1340,   114,   114,
     1399      37,    50,    38,   740,   459,   919,   115,   596,    36,   695,
     1400     695,  1342,    50,    47,    48,   460,  1347,   740,    50,   920,
     1401     920,   803,   740,    72,   712,   482,    50,  1039,  1410,   502,
     1402     115,   310,    50,   598,  1407,    50,   551,   552,    50,  1086,
     1403     553,   554,   680,  1266,  1267,   291,  1269,   696,   696,   524,
     1404    1429,   114,   114,  1274,   743,  1276,   740,   559,   560,  1494,
     1405     684,   707,   506,   657,   108,   486,  1088,   326,   897,   561,
     1406    1476,  1532,    65,   511,  1305,    50,  1477,   575,    50,   112,
     1407    -296,   141,   142,   345,   562,    50,   407,     8,     9,    10,
     1408      11,    12,    43,    44,  1206,   969,   966,   878,   418,   653,
     1409     410,   704,   696,   696,   620,   620,   885,  1220,  1106,   410,
     1410     887,   563,  1064,   564,   898,   339,    50,   112,    33,   832,
     1411     332,   410,   310,  1355,  1111,  1352,  1353,  1112,    50,  1113,
     1412      43,    44,   108,   585,  1169,   479,   332,   410,   707,   330,
     1413    1402,   966,   230,    78,   598,   231,    36,   440,   235,    -3,
     1414     237,  1382,  1383,    50,    50,  1294,   650,   246,  1228,   764,
     1415     765,   115,  1230,  1231,  1363,   651,   894,   652,  1363,    50,
     1416     654,   894,   768,   769,   770,   771,  1381,    50,   508,  1389,
     1417     920,    58,   655,    72,   766,   767,    50,   656,   267,    50,
     1418     661,   834,   695,   817,   332,   596,   114,   680,   659,   695,
    19081419     695,   695,   258,   546,   547,     2,   207,     4,     5,     6,
    1909        7,   114,   685,   686,  1388,   114,   690,    39,   688,    50,
    1910      114,    42,  -243,  1427,   108,   716,   727,   345,  1431,   741,
    1911       43,    44,   470,    50,    50,   749,   798,   -14,   546,   800,
    1912       50,   811,   -15,  -297,   854,   861,   855,    50,  1295,  1087,
    1913        8,     9,    10,    11,    12,   881,    45,  1453,   658,   883,
    1914      888,   931,   695,   899,    47,    48,   908,  1444,   272,   115,
    1915     -422,  -528,    37,   546,    38,   715,   923,   933,   220,   944,
    1916      937,    33,   945,   230,   946,   696,   898,   938,   947,   684,
    1917      310,   898,   696,   696,   696,   948,   949,   963,    50,   973,
    1918      974,   975,    71,   989,   620,   990,   991,   992,   115,    36,
    1919      993,    78,   994,    68,   119,    50,    50,  1086,   995,  -410,
    1920     -409,  1060,     8,     9,    10,    11,    12,  1018,  1052,   213,
    1921     1054,  1058,    50,   893,  1075,  1076,    50,   704,  1077,  1078,
    1922     1084,    58,  1521,  1094,  1088,   740,   636,    68,  1521,  1095,
    1923      496,    72,  1096,    33,  1098,   696,  1101,   620,   620,  1521,
    1924      958,  1103,    50,  1521,   161,   272,  1104,  1405,  1105,   525,
    1925      310,   108,    50,   526,   527,   528,  1520,   768,   769,   770,
    1926      771,    36,  1169,  1108,   222,  1132,  1153,  1154,  1155,  1156,
     1420       7,   114,   772,   773,  1388,   114,   685,    39,   688,    50,
     1421     114,    42,   686,  1427,   108,   690,  -243,   345,  1431,   716,
     1422      43,    44,   470,    50,    50,  1277,  1278,  1279,   546,   727,
     1423      50,   741,   749,  -297,   -14,   798,   800,    50,  1295,  1087,
     1424       8,     9,    10,    11,    12,   811,    45,  1453,   658,   -15,
     1425     855,   861,   695,   899,    47,    48,   854,  1444,   272,   115,
     1426     881,   883,    37,   546,    38,  -422,   888,   931,   220,   908,
     1427     933,    33,  -528,   230,   923,   696,   898,   715,   937,   684,
     1428     310,   898,   696,   696,   696,   938,   944,   945,    50,   946,
     1429     947,   948,    71,   949,   620,   973,   974,   975,   115,    36,
     1430     963,    78,   989,    68,   119,    50,    50,  1086,   990,   991,
     1431     992,  1060,     8,     9,    10,    11,    12,   993,   994,   213,
     1432     995,  -410,    50,  -409,  1018,  1052,    50,   704,  1054,  1075,
     1433    1076,    58,  1521,   893,  1088,  1077,   636,    68,  1521,  1078,
     1434     496,    72,  1084,    33,   740,   696,  1094,   620,   620,  1521,
     1435    1095,  1096,    50,  1521,   161,   272,  1098,  1405,  1101,   525,
     1436     310,   108,    50,   526,   527,   528,  1520,   958,  1103,  1104,
     1437    1105,    36,  1169,  1108,   222,  1132,  1153,  1154,  1155,  1156,
    19271438      50,    78,   108,  1170,  1171,  1173,    50,   529,  1174,   530,
    19281439      65,   531,   532,   115,  1182,  1188,    -3,   398,   399,  1193,
    1929      108,  1186,  1086,   400,   704,  1198,  1203,  1201,   401,   402,
     1440     108,  1186,  1086,   400,   704,  1198,  1201,  1203,   401,   402,
    19301441     260,   403,   230,   404,   235,   567,   440,   410,   491,  1207,
    19311442    1214,    72,   114,    47,    48,  1212,  1216,    50,  1219,  1088,
     
    19501461    1450,  1461,  1087,   372,  1471,  1473,  1486,  1475,   108,    76,
    19511462       8,     9,    10,    11,    12,   108,   470,   326,  1478,  1479,
    1952     1501,  1187,   959,   470,  1506,  1513,    72,    50,  1502,  1515,
     1463    1501,   876,   959,   470,  1506,  1513,    72,    50,  1502,  1515,
    19531464    1517,   114,  1523,   114,   260,  1530,   163,   114,   589,  1531,
    1954      774,    33,  1011,   775,   617,   114,   223,   778,   776,  1110,
    1955      195,   777,  1288,   218,  1481,  1394,   228,   622,    50,    50,
    1956     1533,   622,  1351,  1218,   407,  1367,  1464,   108,   889,    36,
    1957     1192,   890,  1200,    50,  1069,   470,   911,  1073,   792,    39,
    1958     1017,   184,   185,    42,   909,   860,   463,  1107,   658,   330,
    1959      925,   477,    43,    44,  1350,   131,  1297,   132,   133,   134,
    1960     1083,   709,  1087,    39,     0,   184,   185,    42,    43,    44,
    1961      471,   782,     0,   742,   934,   410,    43,    44,   595,   783,
    1962      596,    47,    48,   784,   350,    58,    47,    48,     0,   471,
     1465    1187,    33,  1011,   775,   617,   114,   223,   774,   777,  1110,
     1466     195,  1481,   776,   218,  1288,  1394,   228,   622,    50,    50,
     1467     778,   622,  1351,  1533,   407,  1218,  1367,   108,  1464,    36,
     1468    1192,   889,  1200,    50,  1069,   470,   890,   911,   792,    39,
     1469    1073,   184,   185,    42,   909,  1017,   463,  1107,   658,   330,
     1470     860,   477,    43,    44,  1350,   131,   925,   132,   133,   134,
     1471    1297,   709,  1087,    39,  1083,   184,   185,    42,    43,    44,
     1472     471,     0,     0,   742,   934,   410,    43,    44,   595,   782,
     1473     596,    47,    48,   783,   350,    58,    47,    48,   784,   471,
    19631474     909,     0,    58,   353,   163,     0,     0,   471,     0,     0,
    19641475       0,     0,   892,     0,   410,     0,   373,     0,    50,     0,
     
    28612372};
    28622373
    2863 #define yypact_value_is_default(yystate) \
    2864   ((yystate) == (-1267))
    2865 
    2866 #define yytable_value_is_error(yytable_value) \
    2867   YYID (0)
    2868 
    28692374static const yytype_int16 yycheck[] =
    28702375{
     
    28882393     892,    51,   680,    71,    11,   892,   136,    41,   119,   345,
    28892394     486,  1015,   703,   136,   148,    65,   186,   187,    68,   133,
    2890      186,    71,    59,   157,   187,   117,   703,   116,   425,   426,
     2395     186,    71,    59,   157,   187,   117,   703,   120,   425,   426,
    28912396      83,   711,   202,   113,   113,   115,   115,   121,   711,   575,
    2892      210,   100,   629,   630,   113,   711,   115,   210,   186,     0,
     2397     210,   134,   629,   630,   113,   711,   115,   210,   186,     0,
    28932398       1,  1487,   222,   115,   409,  1455,   266,   266,   645,   222,
    2894      266,  1232,   115,  1234,  1235,   801,   113,   126,   219,   113,
     2399     266,  1232,   115,  1234,  1235,   801,   113,    83,   219,   113,
    28952400     240,   108,   206,   663,   111,   801,   210,   888,  1514,   113,
    28962401     862,   115,   252,    34,   813,   803,   148,   186,   801,   252,
    28972402     260,   135,   502,  1204,   252,   265,   266,   267,   114,   149,
    28982403     113,   785,   272,   252,   267,   252,   240,   504,   257,   187,
    2899     1270,   161,   509,   222,   597,   512,   703,    68,   134,   813,
     2404    1270,   161,   509,   222,   597,   512,   703,    68,   116,   813,
    29002405      71,   801,   273,   417,   252,  1034,  1035,   297,   801,   280,
    29012406     911,   395,   405,   801,   114,   801,   186,   187,   272,   893,
     
    29052410     100,   341,   222,  1257,  1258,   345,   310,   341,   240,   349,
    29062411     350,   248,   219,   919,   252,   939,   585,  1031,  1190,   267,
    2907      135,   781,   252,   919,   364,    74,   126,   257,   368,  1108,
    2908      114,   791,   252,   835,     3,   478,   919,   341,    87,    88,
    2909      272,   345,   802,     3,   365,   113,   266,  1437,   369,    74,
    2910      134,   120,    57,   120,   118,   395,   920,   626,   115,   118,
    2911      364,   983,    87,    88,   368,   405,   273,   136,   462,  1458,
    2912     1022,   350,   405,   280,    74,  1464,    76,    77,   310,   659,
    2913      113,   114,  1472,   423,  1474,   425,   426,    87,    88,   429,
    2914      115,   431,    94,    95,    99,  1484,  1426,  1378,   417,     0,
    2915     1489,   222,    74,  1433,   992,   993,   954,     0,    41,   615,
    2916      113,   331,   452,   345,   620,    87,    88,   436,   118,   120,
    2917      135,   425,   426,   925,  1378,   444,   929,   129,   130,   349,
    2918      470,   252,   116,   113,   891,   136,   120,   966,   478,  1313,
    2919      480,   348,   482,   115,   114,   478,   486,   649,   452,   482,
    2920      730,   114,   492,   210,   482,  1485,  1107,   405,   365,   120,
    2921      813,   465,   369,   482,   504,   482,   506,   813,   113,   509,
    2922      132,   511,   512,   135,  1098,   136,   663,   120,   640,   519,
    2923      113,   120,   115,   523,  1487,   405,   490,   417,   492,   194,
    2924      494,   134,   471,   425,   426,   134,  1370,  1371,   123,   124,
    2925      504,   120,   506,   482,  1507,   509,   436,   511,   512,   113,
     2412     135,   781,   252,   919,   364,   100,   126,   257,   368,  1108,
     2413     114,   791,   252,   835,   116,   478,   919,   341,   120,   120,
     2414     272,   345,   802,     3,   365,   113,   266,   114,   369,    74,
     2415     134,   126,    57,   134,   118,   395,   920,   626,   115,   118,
     2416     364,   983,    87,    88,   368,   405,   273,   134,   462,  1458,
     2417    1022,   350,   405,   280,    74,  1464,    76,    77,   310,    74,
     2418     116,    76,    77,   423,   120,   425,   426,    87,    88,   429,
     2419     115,   431,    87,    88,    99,  1484,  1426,  1378,   417,     3,
     2420    1489,   222,    74,  1433,   992,   993,   954,   120,    41,   615,
     2421       0,   331,   452,   345,   620,    87,    88,   436,   118,   120,
     2422     115,   425,   426,   925,  1378,   444,   929,     0,   120,   349,
     2423     470,   252,   116,  1437,   891,   136,   120,   966,   478,  1313,
     2424     480,   348,   482,   115,   136,   478,   486,   649,   452,   482,
     2425     730,   113,   492,   210,   482,  1485,  1107,   405,   365,   120,
     2426     813,   465,   369,   482,   504,   482,   506,   813,  1472,   509,
     2427    1474,   511,   512,   113,  1098,   136,   663,   120,   640,   519,
     2428     113,   135,   115,   523,  1487,   405,   490,   417,   492,   194,
     2429     494,   134,   471,   425,   426,   116,  1370,  1371,   113,   120,
     2430     504,   120,   506,   482,  1507,   509,   436,   511,   512,   114,
    29262431     674,  1514,   217,   647,   444,   272,  1080,   136,  1066,   113,
    29272432     114,   115,   227,  1071,   115,   794,   117,   567,   568,   113,
    29282433     478,   115,   738,  1157,  1158,   575,   700,   680,  1190,   113,
    2929      297,  1001,  1002,   134,   482,   585,   586,  1004,   120,   589,
     2434     297,  1001,  1002,   134,   482,   585,   586,  1004,   114,   589,
    29302435     480,   120,   482,   310,   120,   595,  1270,   597,   586,   862,
    2931      492,   120,   482,   113,   136,   115,   486,   136,   134,   663,
     2436     492,   120,   482,    94,    95,   132,   486,   136,   135,   663,
    29322437      74,   575,    76,    77,    78,   615,   113,   136,   924,   511,
    29332438     620,   585,   622,    87,    88,   120,   626,   120,   113,   629,
    2934      630,   113,   297,   115,   781,   616,  1056,  1057,   114,   121,
    2935      122,   136,   114,   136,   791,   645,   121,   647,   120,   113,
     2439     630,   113,   297,   115,   781,   616,  1056,  1057,   129,   130,
     2440     113,   136,   114,   136,   791,   645,   121,   647,   120,   113,
    29362441     631,   615,   127,   128,  1386,   802,   620,   116,  1270,    74,
    29372442     120,   120,   626,   644,   849,     4,     5,     6,     7,     8,
    2938        9,  1345,    87,    88,   120,   120,   136,   677,   617,   114,
     2443       9,  1345,    87,    88,   120,   120,   136,   677,   617,    74,
    29392444     680,   120,   114,   575,   869,    10,    11,    12,    13,    14,
    2940      136,   136,   116,   114,   114,   674,   120,   136,   113,   120,
    2941      115,   482,   120,   703,   704,   705,   931,   113,   892,   892,
     2445     136,   136,    87,    88,   113,   674,   115,   136,   113,   113,
     2446     115,   482,   120,   703,   704,   705,   931,   114,   892,   892,
    29422447    1127,   711,   712,   677,   892,   595,    41,   597,   136,   892,
    2943      892,   700,   892,   615,   892,   891,   113,   781,   620,   119,
    2944      114,   113,    71,   855,    73,   452,   120,   791,   738,   136,
    2945      114,   114,   742,   743,    69,   726,   120,   120,   802,   616,
    2946     1482,   715,   691,    66,   114,  1487,  1430,   114,  1432,  1287,
     2448     892,   700,   892,   615,   892,   891,   114,   781,   620,   113,
     2449     120,   115,    71,   855,    73,   452,  1096,   791,   738,   114,
     2450    1100,   114,   742,   743,    69,   726,   136,   120,   802,   616,
     2451    1482,   715,   691,   114,   114,  1487,  1430,   114,  1432,  1287,
    29472452     120,   114,  1025,   120,   631,   113,   705,   120,  1491,  1491,
    2948      113,   113,   680,   115,  1491,  1507,   441,   644,   136,   121,
    2949      122,  1365,  1514,   118,   674,   785,   116,   504,    83,   506,
    2950      120,   894,   509,   114,   794,   512,   796,   136,  1382,   120,
    2951      680,   801,   467,   118,   897,   114,   899,   113,   996,   115,
     2453     119,   113,   680,   115,  1491,  1507,   441,   644,   113,   121,
     2454     122,  1365,  1514,    66,   674,   785,   113,   504,   115,   506,
     2455     136,   894,   509,   114,   794,   512,   796,   136,  1382,   120,
     2456     680,   801,   467,   113,   897,   114,   899,   113,   996,   115,
    29522457     700,   120,  1486,   813,  1426,   121,   122,   983,   114,  1239,
    2953      113,  1433,   115,   114,   120,   136,  1246,  1247,  1248,   120,
     2458     113,  1433,   115,   114,   120,   113,  1246,  1247,  1248,   120,
    29542459     794,   711,   712,     4,     5,     6,     7,     8,     9,   504,
    2955     1257,   116,     3,   113,   509,   120,   136,   512,   738,    10,
    2956       11,    12,    13,    14,  1001,  1002,  1096,   796,   118,   726,
    2957     1100,  1101,   862,    74,    35,    76,    77,     0,     1,   114,
    2958     1454,  1455,   114,  1485,   862,   120,    87,    88,   120,   113,
    2959       41,   115,   114,   862,   884,   504,   113,   506,   120,  1309,
     2460    1257,   113,     3,   115,   509,   113,   114,   512,   738,    10,
     2461      11,    12,    13,    14,  1001,  1002,  1096,   796,   136,   726,
     2462    1100,  1101,   862,   114,    35,    74,   118,     0,     1,   120,
     2463    1454,  1455,    81,  1485,   862,    84,   114,    86,    87,    88,
     2464      41,   118,   120,   862,   884,   504,   113,   506,   115,  1309,
    29602465     509,   891,   892,   512,   894,  1017,   884,   114,    31,    32,
    2961       71,    34,    73,   120,   115,   114,   906,   113,    69,  1056,
    2962     1057,   120,    45,   113,   114,   115,   114,    83,    51,   919,
    2963      920,   801,   120,   862,   924,  1096,    59,  1190,   114,  1100,
    2964      930,   931,    65,   813,   120,    68,    92,    93,    71,   930,
    2965      119,   120,   906,  1170,  1171,   122,  1173,  1001,  1002,    96,
    2966       97,    84,    85,  1180,   954,  1182,   113,   114,   115,  1467,
    2967      677,  1127,   131,  1066,   862,   929,   930,   931,  1071,   113,
    2968      114,   115,   862,   132,  1214,   108,   114,   115,   111,    74,
    2969        3,    76,    77,   983,    98,   118,   894,    10,    11,    12,
    2970       13,    14,    87,    88,  1088,    60,    61,   662,    60,    61,
    2971       62,   891,  1056,  1057,  1004,  1005,   671,   113,  1516,   115,
    2972      675,   113,   892,   115,   894,   115,   149,    74,    41,   983,
    2973      119,   120,  1022,  1286,    81,    46,    47,    84,   161,    86,
    2974       87,    88,   930,   113,  1022,   115,  1113,  1114,  1204,   931,
    2975      551,   552,    72,  1022,   924,    75,    69,   986,    78,   113,
    2976       80,   115,   113,   186,   187,  1202,   116,    87,   115,   114,
    2977       74,  1061,   116,   113,  1304,   115,  1066,    81,  1308,   202,
    2978       84,  1071,    86,    87,    88,   114,  1339,   210,   285,  1342,
     2466      71,    34,    73,   120,   136,   113,   906,   115,    69,  1056,
     2467    1057,   114,    45,   121,   122,   136,   114,   120,    51,   919,
     2468     920,   801,   120,   862,   924,   118,    59,  1190,   114,   113,
     2469     930,   931,    65,   813,   120,    68,   123,   124,    71,   930,
     2470      92,    93,   906,  1170,  1171,    83,  1173,  1001,  1002,    83,
     2471     114,    84,    85,  1180,   954,  1182,   120,    96,    97,  1467,
     2472     677,  1127,   113,  1066,   862,   929,   930,   931,  1071,   122,
     2473     114,   114,   862,   113,  1214,   108,   120,   120,   111,    74,
     2474       3,    76,    77,   983,   131,   118,   894,    10,    11,    12,
     2475      13,    14,    87,    88,  1088,   119,   120,   662,   113,   114,
     2476     115,   891,  1056,  1057,  1004,  1005,   671,   113,  1516,   115,
     2477     675,   132,   892,    98,   894,   115,   149,    74,    41,   983,
     2478     114,   115,  1022,  1286,    81,    60,    61,    84,   161,    86,
     2479      87,    88,   930,   116,  1022,   113,   114,   115,  1204,   931,
     2480     119,   120,    72,  1022,   924,    75,    69,   986,    78,   116,
     2481      80,    46,    47,   186,   187,  1202,   114,    87,   115,   551,
     2482     552,  1061,  1113,  1114,  1304,   114,  1066,   114,  1308,   202,
     2483     114,  1071,   555,   556,   557,   558,  1339,   210,   285,  1342,
    29792484    1080,   862,   114,  1022,   553,   554,   219,   114,  1088,   222,
    2980      114,   983,  1239,   559,   560,   114,   229,  1061,   116,  1246,
     2485     116,   983,  1239,   113,   114,   115,   229,  1061,   113,  1246,
    29812486    1247,  1248,   115,   310,   311,     4,     5,     6,     7,     8,
    2982        9,   244,   118,   120,  1341,   248,   118,    74,   135,   252,
    2983      253,    78,   118,  1386,  1022,   135,   113,  1127,  1391,   114,
    2984       87,    88,  1022,   266,   267,   114,   116,   134,   345,   116,
    2985      273,   116,   134,     3,   134,    31,   120,   280,  1202,   930,
    2986       10,    11,    12,    13,    14,   114,   113,  1420,  1066,   114,
    2987      118,   113,  1309,  1071,   121,   122,   119,  1407,  1168,  1169,
    2988      114,   119,    71,   380,    73,   120,   119,   114,  1169,   114,
    2989      134,    41,   120,   213,   114,  1239,  1066,   136,   114,   906,
    2990     1190,  1071,  1246,  1247,  1248,   114,   114,   120,   331,   114,
     2487       9,   244,   559,   560,  1341,   248,   118,    74,   135,   252,
     2488     253,    78,   120,  1386,  1022,   118,   118,  1127,  1391,   135,
     2489      87,    88,  1022,   266,   267,    60,    61,    62,   345,   113,
     2490     273,   114,   114,     3,   134,   116,   116,   280,  1202,   930,
     2491      10,    11,    12,    13,    14,   116,   113,  1420,  1066,   134,
     2492     120,    31,  1309,  1071,   121,   122,   134,  1407,  1168,  1169,
     2493     114,   114,    71,   380,    73,   114,   118,   113,  1169,   119,
     2494     114,    41,   119,   213,   119,  1239,  1066,   120,   134,   906,
     2495    1190,  1071,  1246,  1247,  1248,   136,   114,   120,   331,   114,
    29912496     114,   114,  1190,   114,  1204,   114,   114,   114,  1208,    69,
    2992      114,  1190,   114,     0,     1,   348,   349,  1208,   114,   114,
    2993      114,   886,    10,    11,    12,    13,    14,   119,    31,  1168,
    2994      135,   114,   365,   134,   114,   120,   369,  1127,   116,   116,
    2995      114,  1022,  1505,   114,  1208,   120,   379,    34,  1511,   114,
    2996      280,  1190,   134,    41,   113,  1309,   120,  1257,  1258,  1522,
    2997      118,   114,   395,  1526,    51,  1265,   114,  1361,   114,    85,
    2998     1270,  1169,   405,    89,    90,    91,  1501,   555,   556,   557,
    2999      558,    69,  1270,   120,    71,   114,   114,   120,   120,   114,
     2497     120,  1190,   114,     0,     1,   348,   349,  1208,   114,   114,
     2498     114,   886,    10,    11,    12,    13,    14,   114,   114,  1168,
     2499     114,   114,   365,   114,   119,    31,   369,  1127,   135,   114,
     2500     120,  1022,  1505,   134,  1208,   116,   379,    34,  1511,   116,
     2501     280,  1190,   114,    41,   120,  1309,   114,  1257,  1258,  1522,
     2502     114,   134,   395,  1526,    51,  1265,   113,  1361,   120,    85,
     2503    1270,  1169,   405,    89,    90,    91,  1501,   118,   114,   114,
     2504     114,    69,  1270,   120,    71,   114,   114,   120,   120,   114,
    30002505     423,  1270,  1190,   113,   113,   113,   429,   113,   113,   115,
    30012506    1190,   117,   118,  1303,   113,   136,   119,  1491,  1491,   114,
    3002     1208,   134,  1303,  1491,  1204,   114,   114,   119,  1491,  1491,
     2507    1208,   134,  1303,  1491,  1204,   114,   119,   114,  1491,  1491,
    30032508     107,  1491,   352,  1491,   354,   113,  1265,   115,   132,   119,
    30042509     116,  1270,   465,   121,   122,   118,   136,   470,   114,  1303,
     
    30232528     116,   136,  1303,  1516,   114,   114,   136,   119,  1426,    34,
    30242529      10,    11,    12,    13,    14,  1433,  1426,  1501,   116,   116,
    3025      113,  1037,   749,  1433,   119,   119,  1485,   680,   136,   114,
     2530     113,   659,   749,  1433,   119,   119,  1485,   680,   136,   114,
    30262531     114,   684,   136,   686,   341,   114,    51,   690,   345,   114,
    3027      561,    41,   851,   562,   351,   698,    71,   565,   563,   963,
    3028       65,   564,  1190,    68,  1455,  1347,    71,   364,   711,   712,
    3029     1526,   368,  1280,  1101,  1492,  1308,  1433,  1485,   677,    69,
    3030     1052,   677,  1071,   726,   899,  1485,   690,   907,   579,    74,
    3031      855,    76,    77,    78,   893,   641,   253,   958,  1516,  1501,
    3032      715,  1491,    87,    88,  1279,    74,  1208,    76,    77,    78,
    3033      927,   482,  1403,    74,    -1,    76,    77,    78,    87,    88,
    3034      417,   567,    -1,   113,   726,   115,    87,    88,   113,   567,
    3035      115,   121,   122,   567,   431,  1426,   121,   122,    -1,   436,
     2532    1037,    41,   851,   562,   351,   698,    71,   561,   564,   963,
     2533      65,  1455,   563,    68,  1190,  1347,    71,   364,   711,   712,
     2534     565,   368,  1280,  1526,  1492,  1101,  1308,  1485,  1433,    69,
     2535    1052,   677,  1071,   726,   899,  1485,   677,   690,   579,    74,
     2536     907,    76,    77,    78,   893,   855,   253,   958,  1516,  1501,
     2537     641,  1491,    87,    88,  1279,    74,   715,    76,    77,    78,
     2538    1208,   482,  1403,    74,   927,    76,    77,    78,    87,    88,
     2539     417,    -1,    -1,   113,   726,   115,    87,    88,   113,   567,
     2540     115,   121,   122,   567,   431,  1426,   121,   122,   567,   436,
    30362541     939,    -1,  1433,   158,   149,    -1,    -1,   444,    -1,    -1,
    30372542      -1,    -1,   113,    -1,   115,    -1,   161,    -1,   801,    -1,
     
    39343439};
    39353440
    3936 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3937    symbol of state STATE-NUM.  */
     3441  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3442     symbol of state STATE-NUM.  */
    39383443static const yytype_uint16 yystos[] =
    39393444{
     
    40253530     171,   138,   115,   280,   134,   120,   378,   284,   115,   134,
    40263531     288,    31,   216,   217,   278,   266,   143,   315,   143,   317,
    4027      113,   355,   356,   113,   355,   356,   145,   356,   180,   270,
     3532     113,   355,   356,   113,   355,   356,   146,   356,   180,   270,
    40283533     114,   114,   114,   114,   138,   180,   214,   180,   118,   256,
    40293534     257,   138,   113,   134,   156,   258,   260,   324,   325,   337,
     
    40943599};
    40953600
    4096 #define yyerrok         (yyerrstatus = 0)
    4097 #define yyclearin       (yychar = YYEMPTY)
    4098 #define YYEMPTY         (-2)
    4099 #define YYEOF           0
    4100 
    4101 #define YYACCEPT        goto yyacceptlab
    4102 #define YYABORT         goto yyabortlab
    4103 #define YYERROR         goto yyerrorlab
    4104 
    4105 
    4106 /* Like YYERROR except do call yyerror.  This remains here temporarily
    4107    to ease the transition to the new meaning of YYERROR, for GCC.
    4108    Once GCC version 2 has supplanted version 1, this can go.  However,
    4109    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
    4110    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
    4111    discussed.  */
    4112 
    4113 #define YYFAIL          goto yyerrlab
    4114 #if defined YYFAIL
    4115   /* This is here to suppress warnings from the GCC cpp's
    4116      -Wunused-macros.  Normally we don't worry about that warning, but
    4117      some users do, and we want to make it easy for users to remove
    4118      YYFAIL uses, which will produce warnings from Bison 2.5.  */
    4119 #endif
     3601  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     3602static const yytype_uint16 yyr1[] =
     3603{
     3604       0,   137,   138,   139,   140,   140,   140,   140,   140,   141,
     3605     141,   141,   142,   142,   143,   143,   144,   144,   145,   146,
     3606     146,   147,   147,   147,   147,   147,   148,   148,   148,   148,
     3607     148,   148,   148,   148,   148,   148,   148,   148,   149,   149,
     3608     150,   150,   151,   151,   152,   152,   152,   152,   152,   152,
     3609     152,   153,   153,   153,   154,   154,   155,   155,   155,   155,
     3610     155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
     3611     155,   155,   156,   156,   157,   157,   157,   157,   158,   158,
     3612     159,   159,   159,   159,   160,   160,   160,   161,   161,   161,
     3613     162,   162,   162,   162,   162,   163,   163,   163,   164,   164,
     3614     165,   165,   166,   166,   167,   167,   168,   168,   169,   169,
     3615     169,   170,   171,   171,   172,   172,   173,   173,   173,   173,
     3616     173,   173,   173,   173,   173,   173,   173,   173,   174,   174,
     3617     175,   175,   176,   176,   177,   177,   178,   178,   178,   178,
     3618     178,   178,   178,   178,   178,   179,   180,   180,   181,   181,
     3619     182,   182,   182,   182,   183,   183,   184,   185,   185,   185,
     3620     185,   185,   185,   186,   186,   186,   187,   187,   188,   188,
     3621     189,   189,   190,   191,   191,   192,   192,   193,   193,   194,
     3622     194,   194,   194,   195,   195,   196,   196,   197,   197,   197,
     3623     198,   198,   199,   199,   199,   199,   199,   199,   199,   199,
     3624     199,   199,   200,   200,   200,   201,   201,   201,   201,   201,
     3625     202,   202,   202,   202,   203,   204,   204,   204,   204,   204,
     3626     205,   205,   205,   205,   205,   206,   206,   207,   207,   208,
     3627     208,   209,   209,   210,   210,   210,   211,   211,   212,   212,
     3628     213,   213,   214,   214,   215,   215,   216,   216,   217,   217,
     3629     218,   218,   219,   219,   220,   220,   220,   220,   220,   221,
     3630     221,   221,   222,   222,   222,   223,   223,   223,   223,   223,
     3631     224,   224,   225,   225,   226,   226,   226,   227,   227,   227,
     3632     227,   227,   228,   228,   229,   229,   229,   229,   230,   230,
     3633     231,   231,   231,   231,   232,   232,   232,   232,   233,   233,
     3634     234,   234,   235,   235,   236,   236,   236,   236,   236,   237,
     3635     236,   238,   238,   238,   239,   239,   240,   240,   240,   240,
     3636     240,   240,   240,   240,   241,   241,   241,   241,   241,   241,
     3637     241,   241,   241,   241,   241,   241,   241,   241,   241,   242,
     3638     242,   242,   242,   242,   243,   243,   244,   244,   244,   244,
     3639     245,   245,   245,   245,   246,   246,   246,   246,   247,   247,
     3640     247,   248,   248,   248,   248,   249,   249,   249,   250,   250,
     3641     251,   251,   252,   251,   251,   251,   253,   253,   254,   254,
     3642     255,   255,   255,   255,   256,   256,   256,   256,   257,   257,
     3643     258,   258,   258,   258,   258,   259,   259,   260,   261,   262,
     3644     262,   263,   262,   264,   264,   265,   265,   266,   266,   267,
     3645     267,   267,   267,   267,   268,   268,   268,   268,   269,   269,
     3646     270,   270,   271,   271,   272,   272,   272,   272,   273,   273,
     3647     273,   273,   273,   274,   274,   274,   274,   274,   275,   275,
     3648     276,   276,   277,   277,   278,   278,   278,   279,   279,   279,
     3649     280,   280,   280,   281,   281,   281,   282,   282,   282,   282,
     3650     283,   283,   283,   284,   284,   285,   285,   285,   285,   285,
     3651     286,   286,   287,   287,   288,   288,   288,   288,   288,   289,
     3652     289,   289,   289,   290,   290,   290,   291,   292,   292,   294,
     3653     293,   293,   295,   295,   295,   296,   296,   297,   297,   297,
     3654     298,   298,   298,   298,   299,   299,   299,   300,   300,   301,
     3655     301,   302,   303,   302,   304,   304,   305,   305,   306,   306,
     3656     306,   307,   307,   308,   308,   309,   309,   310,   310,   311,
     3657     311,   311,   312,   311,   311,   313,   313,   313,   314,   314,
     3658     314,   314,   314,   314,   314,   314,   314,   315,   315,   315,
     3659     316,   317,   317,   318,   318,   319,   319,   320,   321,   321,
     3660     322,   322,   322,   323,   323,   323,   323,   324,   324,   324,
     3661     324,   325,   325,   326,   326,   326,   327,   327,   327,   327,
     3662     328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
     3663     331,   332,   332,   332,   333,   333,   333,   334,   334,   334,
     3664     335,   335,   335,   336,   336,   336,   337,   337,   337,   337,
     3665     338,   338,   339,   339,   339,   340,   340,   340,   340,   341,
     3666     341,   341,   342,   342,   342,   342,   343,   343,   343,   344,
     3667     344,   344,   344,   345,   345,   345,   346,   346,   346,   346,
     3668     347,   347,   348,   348,   348,   349,   349,   350,   350,   351,
     3669     351,   351,   352,   352,   352,   352,   352,   353,   353,   353,
     3670     353,   354,   354,   354,   355,   355,   355,   356,   356,   356,
     3671     356,   357,   357,   357,   358,   358,   358,   358,   358,   359,
     3672     359,   359,   359,   360,   360,   360,   361,   361,   361,   362,
     3673     362,   362,   362,   362,   362,   363,   363,   363,   364,   364,
     3674     364,   364,   364,   365,   365,   365,   365,   366,   366,   367,
     3675     367,   367,   368,   368,   369,   369,   369,   369,   369,   369,
     3676     370,   370,   370,   370,   370,   370,   370,   370,   370,   370,
     3677     371,   371,   371,   371,   372,   372,   372,   373,   373,   374,
     3678     374,   374,   374,   374,   374,   375,   375,   375,   375,   375,
     3679     375,   376,   377,   377,   378,   378,   379,   379
     3680};
     3681
     3682  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
     3683static const yytype_uint8 yyr2[] =
     3684{
     3685       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     3686       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3687       2,     1,     1,     1,     3,     3,     1,     6,     4,     3,
     3688       7,     2,     3,     7,     2,     2,     7,     4,     1,     3,
     3689       0,     1,     1,     3,     1,     2,     6,     3,     7,     3,
     3690       7,     2,     2,     2,     0,     2,     1,     1,     1,     2,
     3691       2,     2,     2,     2,     2,     4,     2,     4,     6,     1,
     3692       4,     4,     1,     1,     1,     1,     1,     1,     1,     4,
     3693       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     3694       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     3695       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     3696       4,     1,     1,     3,     0,     1,     1,     1,     1,     1,
     3697       1,     1,     1,     1,     1,     1,     1,     1,     6,     7,
     3698       1,     3,     1,     3,     0,     1,     1,     1,     1,     1,
     3699       1,     1,     1,     1,     6,     4,     2,     7,     1,     3,
     3700       1,     2,     1,     2,     1,     2,     2,     5,     7,     5,
     3701       9,     5,     9,     1,     3,     1,     1,     3,     3,     2,
     3702       1,     2,     2,     0,     1,     2,     3,     0,     1,     2,
     3703       3,     3,     4,     0,     1,     1,     2,     5,     7,     6,
     3704       6,     4,     3,     4,     2,     3,     2,     3,     3,     3,
     3705       3,     5,     3,     3,     4,     1,     5,     6,     5,     6,
     3706       9,    10,     9,    10,     2,     1,     2,     2,     2,     1,
     3707       6,     8,    10,    12,    14,     0,     1,     0,     1,     1,
     3708       3,     4,     7,     0,     1,     3,     1,     3,     1,     1,
     3709       1,     3,     1,     1,     1,     3,     0,     1,     3,     4,
     3710       1,     3,     1,     1,     3,     3,     3,     3,     3,     2,
     3711       3,     6,     3,     3,     4,     1,     2,     2,     3,     5,
     3712       7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
     3713       3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
     3714       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
     3715       1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
     3716       5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
     3717       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3718       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3719       2,     2,     3,     3,     1,     3,     1,     2,     2,     2,
     3720       4,     4,     4,     4,     1,     2,     2,     3,     1,     2,
     3721       2,     1,     2,     2,     3,     1,     2,     2,     1,     1,
     3722       4,     2,     0,     6,     7,     2,     2,     2,     0,     2,
     3723       2,     3,     2,     3,     1,     2,     3,     2,     2,     4,
     3724       0,     1,     2,     2,     1,     0,     1,     2,     2,     5,
     3725       2,     0,     7,     2,     4,     0,     2,     0,     1,     1,
     3726       1,     5,     5,     5,     1,     5,     5,     9,     1,     5,
     3727       0,     1,     1,     5,     1,     1,     5,     5,     1,     3,
     3728       3,     4,     1,     1,     1,     1,     2,     1,     3,     3,
     3729       1,     2,     1,     3,     1,     1,     1,     1,     1,     1,
     3730       1,     1,     1,     1,     1,     2,     1,     1,     1,     2,
     3731       0,     2,     2,     1,     4,     0,     1,     2,     3,     4,
     3732       2,     2,     1,     2,     2,     5,     5,     7,     6,     1,
     3733       2,     2,     3,     1,     2,     2,     4,     2,     4,     0,
     3734       4,     2,     1,     1,     1,     0,     2,     5,     5,    13,
     3735       1,     1,     3,     3,     2,     3,     3,     2,     4,     1,
     3736       6,     9,     0,    11,     1,     3,     3,     3,     1,     1,
     3737       5,     2,     5,     0,     1,     1,     3,     0,     1,     1,
     3738       1,     1,     0,     6,     2,     1,     2,     4,     2,     3,
     3739       3,     3,     4,     5,     5,     5,     6,     1,     1,     1,
     3740       3,     0,     5,     0,     1,     1,     2,     6,     1,     3,
     3741       0,     1,     4,     1,     1,     1,     1,     2,     1,     2,
     3742       2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
     3743       8,     3,     2,     1,     2,     6,     8,     3,     2,     3,
     3744       3,     4,     4,     3,     1,     1,     1,     4,     6,     3,
     3745       2,     3,     3,     4,     4,     3,     2,     1,     2,     2,
     3746       1,     3,     2,     3,     3,     2,     4,     4,     3,     6,
     3747       8,     3,     2,     1,     2,     2,     2,     3,     3,     2,
     3748       4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
     3749       1,     1,     2,     3,     3,     2,     4,     6,     8,     1,
     3750       2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
     3751       3,     5,     8,     3,     2,     3,     1,     5,     5,     6,
     3752       6,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     3753       4,     4,     3,     5,     8,     3,     1,     2,     1,     2,
     3754       6,     5,     6,     7,     7,     1,     2,     2,     1,     2,
     3755       2,     3,     3,     1,     4,     4,     3,     8,     3,     1,
     3756       1,     2,     1,     1,     2,     3,     2,     3,     2,     3,
     3757       3,     2,     4,     3,     2,     3,     2,     4,     3,     2,
     3758       6,     6,     6,     7,     1,     2,     1,     1,     1,     2,
     3759       3,     2,     3,     2,     3,     3,     4,     2,     3,     4,
     3760       2,     5,     6,     6,     0,     1,     0,     2
     3761};
     3762
     3763
     3764#define yyerrok         (yyerrstatus = 0)
     3765#define yyclearin       (yychar = YYEMPTY)
     3766#define YYEMPTY         (-2)
     3767#define YYEOF           0
     3768
     3769#define YYACCEPT        goto yyacceptlab
     3770#define YYABORT         goto yyabortlab
     3771#define YYERROR         goto yyerrorlab
     3772
    41203773
    41213774#define YYRECOVERING()  (!!yyerrstatus)
    41223775
    4123 #define YYBACKUP(Token, Value)                                  \
    4124 do                                                              \
    4125   if (yychar == YYEMPTY && yylen == 1)                          \
    4126     {                                                           \
    4127       yychar = (Token);                                         \
    4128       yylval = (Value);                                         \
    4129       YYPOPSTACK (1);                                           \
    4130       goto yybackup;                                            \
    4131     }                                                           \
    4132   else                                                          \
    4133     {                                                           \
     3776#define YYBACKUP(Token, Value)                                  \
     3777do                                                              \
     3778  if (yychar == YYEMPTY)                                        \
     3779    {                                                           \
     3780      yychar = (Token);                                         \
     3781      yylval = (Value);                                         \
     3782      YYPOPSTACK (yylen);                                       \
     3783      yystate = *yyssp;                                         \
     3784      goto yybackup;                                            \
     3785    }                                                           \
     3786  else                                                          \
     3787    {                                                           \
    41343788      yyerror (YY_("syntax error: cannot back up")); \
    4135       YYERROR;                                                  \
    4136     }                                                           \
    4137 while (YYID (0))
    4138 
    4139 
    4140 #define YYTERROR        1
    4141 #define YYERRCODE       256
    4142 
    4143 
    4144 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    4145    If N is 0, then set CURRENT to the empty location which ends
    4146    the previous symbol: RHS[0] (always defined).  */
    4147 
    4148 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    4149 #ifndef YYLLOC_DEFAULT
    4150 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    4151     do                                                                  \
    4152       if (YYID (N))                                                    \
    4153         {                                                               \
    4154           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    4155           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    4156           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    4157           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    4158         }                                                               \
    4159       else                                                              \
    4160         {                                                               \
    4161           (Current).first_line   = (Current).last_line   =              \
    4162             YYRHSLOC (Rhs, 0).last_line;                                \
    4163           (Current).first_column = (Current).last_column =              \
    4164             YYRHSLOC (Rhs, 0).last_column;                              \
    4165         }                                                               \
    4166     while (YYID (0))
    4167 #endif
    4168 
    4169 
    4170 /* This macro is provided for backward compatibility. */
    4171 
    4172 #ifndef YY_LOCATION_PRINT
    4173 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    4174 #endif
    4175 
    4176 
    4177 /* YYLEX -- calling `yylex' with the right arguments.  */
    4178 
    4179 #ifdef YYLEX_PARAM
    4180 # define YYLEX yylex (YYLEX_PARAM)
    4181 #else
    4182 # define YYLEX yylex ()
    4183 #endif
     3789      YYERROR;                                                  \
     3790    }                                                           \
     3791while (0)
     3792
     3793/* Error token number */
     3794#define YYTERROR        1
     3795#define YYERRCODE       256
     3796
     3797
    41843798
    41853799/* Enable debugging if requested.  */
     
    41913805# endif
    41923806
    4193 # define YYDPRINTF(Args)                        \
    4194 do {                                            \
    4195   if (yydebug)                                  \
    4196     YYFPRINTF Args;                             \
    4197 } while (YYID (0))
    4198 
    4199 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    4200 do {                                                                      \
    4201   if (yydebug)                                                            \
    4202     {                                                                     \
    4203       YYFPRINTF (stderr, "%s ", Title);                                   \
    4204       yy_symbol_print (stderr,                                            \
    4205                   Type, Value); \
    4206       YYFPRINTF (stderr, "\n");                                           \
    4207     }                                                                     \
    4208 } while (YYID (0))
    4209 
    4210 
    4211 /*--------------------------------.
    4212 | Print this symbol on YYOUTPUT.  |
    4213 `--------------------------------*/
    4214 
    4215 /*ARGSUSED*/
    4216 #if (defined __STDC__ || defined __C99__FUNC__ \
    4217      || defined __cplusplus || defined _MSC_VER)
     3807# define YYDPRINTF(Args)                        \
     3808do {                                            \
     3809  if (yydebug)                                  \
     3810    YYFPRINTF Args;                             \
     3811} while (0)
     3812
     3813/* This macro is provided for backward compatibility. */
     3814#ifndef YY_LOCATION_PRINT
     3815# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     3816#endif
     3817
     3818
     3819# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     3820do {                                                                      \
     3821  if (yydebug)                                                            \
     3822    {                                                                     \
     3823      YYFPRINTF (stderr, "%s ", Title);                                   \
     3824      yy_symbol_print (stderr,                                            \
     3825                  Type, Value); \
     3826      YYFPRINTF (stderr, "\n");                                           \
     3827    }                                                                     \
     3828} while (0)
     3829
     3830
     3831/*----------------------------------------.
     3832| Print this symbol's value on YYOUTPUT.  |
     3833`----------------------------------------*/
     3834
    42183835static void
    42193836yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4220 #else
    4221 static void
    4222 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    4223     FILE *yyoutput;
    4224     int yytype;
    4225     YYSTYPE const * const yyvaluep;
    4226 #endif
    42273837{
     3838  FILE *yyo = yyoutput;
     3839  YYUSE (yyo);
    42283840  if (!yyvaluep)
    42293841    return;
     
    42313843  if (yytype < YYNTOKENS)
    42323844    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    4233 # else
    4234   YYUSE (yyoutput);
    42353845# endif
    4236   switch (yytype)
    4237     {
    4238       default:
    4239         break;
    4240     }
     3846  YYUSE (yytype);
    42413847}
    42423848
     
    42463852`--------------------------------*/
    42473853
    4248 #if (defined __STDC__ || defined __C99__FUNC__ \
    4249      || defined __cplusplus || defined _MSC_VER)
    42503854static void
    42513855yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4252 #else
    4253 static void
    4254 yy_symbol_print (yyoutput, yytype, yyvaluep)
    4255     FILE *yyoutput;
    4256     int yytype;
    4257     YYSTYPE const * const yyvaluep;
    4258 #endif
    42593856{
    4260   if (yytype < YYNTOKENS)
    4261     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    4262   else
    4263     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
     3857  YYFPRINTF (yyoutput, "%s %s (",
     3858             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
    42643859
    42653860  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    42723867`------------------------------------------------------------------*/
    42733868
    4274 #if (defined __STDC__ || defined __C99__FUNC__ \
    4275      || defined __cplusplus || defined _MSC_VER)
    42763869static void
    42773870yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    4278 #else
    4279 static void
    4280 yy_stack_print (yybottom, yytop)
    4281     yytype_int16 *yybottom;
    4282     yytype_int16 *yytop;
    4283 #endif
    42843871{
    42853872  YYFPRINTF (stderr, "Stack now");
     
    42923879}
    42933880
    4294 # define YY_STACK_PRINT(Bottom, Top)                            \
    4295 do {                                                            \
    4296   if (yydebug)                                                  \
    4297     yy_stack_print ((Bottom), (Top));                           \
    4298 } while (YYID (0))
     3881# define YY_STACK_PRINT(Bottom, Top)                            \
     3882do {                                                            \
     3883  if (yydebug)                                                  \
     3884    yy_stack_print ((Bottom), (Top));                           \
     3885} while (0)
    42993886
    43003887
     
    43033890`------------------------------------------------*/
    43043891
    4305 #if (defined __STDC__ || defined __C99__FUNC__ \
    4306      || defined __cplusplus || defined _MSC_VER)
    43073892static void
    4308 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    4309 #else
    4310 static void
    4311 yy_reduce_print (yyvsp, yyrule)
    4312     YYSTYPE *yyvsp;
    4313     int yyrule;
    4314 #endif
     3893yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
    43153894{
     3895  unsigned long int yylno = yyrline[yyrule];
    43163896  int yynrhs = yyr2[yyrule];
    43173897  int yyi;
    4318   unsigned long int yylno = yyrline[yyrule];
    43193898  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    4320              yyrule - 1, yylno);
     3899             yyrule - 1, yylno);
    43213900  /* The symbols being reduced.  */
    43223901  for (yyi = 0; yyi < yynrhs; yyi++)
    43233902    {
    43243903      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    4325       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    4326                        &(yyvsp[(yyi + 1) - (yynrhs)])
    4327                                        );
     3904      yy_symbol_print (stderr,
     3905                       yystos[yyssp[yyi + 1 - yynrhs]],
     3906                       &(yyvsp[(yyi + 1) - (yynrhs)])
     3907                                              );
    43283908      YYFPRINTF (stderr, "\n");
    43293909    }
    43303910}
    43313911
    4332 # define YY_REDUCE_PRINT(Rule)          \
    4333 do {                                    \
    4334   if (yydebug)                          \
    4335     yy_reduce_print (yyvsp, Rule); \
    4336 } while (YYID (0))
     3912# define YY_REDUCE_PRINT(Rule)          \
     3913do {                                    \
     3914  if (yydebug)                          \
     3915    yy_reduce_print (yyssp, yyvsp, Rule); \
     3916} while (0)
    43373917
    43383918/* Nonzero means print parse trace.  It is left uninitialized so that
     
    43483928
    43493929/* YYINITDEPTH -- initial size of the parser's stacks.  */
    4350 #ifndef YYINITDEPTH
     3930#ifndef YYINITDEPTH
    43513931# define YYINITDEPTH 200
    43523932#endif
     
    43713951#  else
    43723952/* Return the length of YYSTR.  */
    4373 #if (defined __STDC__ || defined __C99__FUNC__ \
    4374      || defined __cplusplus || defined _MSC_VER)
    43753953static YYSIZE_T
    43763954yystrlen (const char *yystr)
    4377 #else
    4378 static YYSIZE_T
    4379 yystrlen (yystr)
    4380     const char *yystr;
    4381 #endif
    43823955{
    43833956  YYSIZE_T yylen;
     
    43953968/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    43963969   YYDEST.  */
    4397 #if (defined __STDC__ || defined __C99__FUNC__ \
    4398      || defined __cplusplus || defined _MSC_VER)
    43993970static char *
    44003971yystpcpy (char *yydest, const char *yysrc)
    4401 #else
    4402 static char *
    4403 yystpcpy (yydest, yysrc)
    4404     char *yydest;
    4405     const char *yysrc;
    4406 #endif
    44073972{
    44083973  char *yyd = yydest;
     
    44343999
    44354000      for (;;)
    4436         switch (*++yyp)
    4437           {
    4438           case '\'':
    4439           case ',':
    4440             goto do_not_strip_quotes;
    4441 
    4442           case '\\':
    4443             if (*++yyp != '\\')
    4444               goto do_not_strip_quotes;
    4445             /* Fall through.  */
    4446           default:
    4447             if (yyres)
    4448               yyres[yyn] = *yyp;
    4449             yyn++;
    4450             break;
    4451 
    4452           case '"':
    4453             if (yyres)
    4454               yyres[yyn] = '\0';
    4455             return yyn;
    4456           }
     4001        switch (*++yyp)
     4002          {
     4003          case '\'':
     4004          case ',':
     4005            goto do_not_strip_quotes;
     4006
     4007          case '\\':
     4008            if (*++yyp != '\\')
     4009              goto do_not_strip_quotes;
     4010            /* Fall through.  */
     4011          default:
     4012            if (yyres)
     4013              yyres[yyn] = *yyp;
     4014            yyn++;
     4015            break;
     4016
     4017          case '"':
     4018            if (yyres)
     4019              yyres[yyn] = '\0';
     4020            return yyn;
     4021          }
    44574022    do_not_strip_quotes: ;
    44584023    }
     
    44774042                yytype_int16 *yyssp, int yytoken)
    44784043{
    4479   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
     4044  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    44804045  YYSIZE_T yysize = yysize0;
    4481   YYSIZE_T yysize1;
    44824046  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    44834047  /* Internationalized format string. */
    4484   const char *yyformat = 0;
     4048  const char *yyformat = YY_NULLPTR;
    44854049  /* Arguments of yyformat. */
    44864050  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    44904054
    44914055  /* There are many possibilities here to consider:
    4492      - Assume YYFAIL is not used.  It's too flawed to consider.  See
    4493        <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
    4494        for details.  YYERROR is fine as it does not invoke this
    4495        function.
    44964056     - If this state is a consistent state with a default action, then
    44974057       the only way this function was invoked is if the default action
     
    45424102                  }
    45434103                yyarg[yycount++] = yytname[yyx];
    4544                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    4545                 if (! (yysize <= yysize1
    4546                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4547                   return 2;
    4548                 yysize = yysize1;
     4104                {
     4105                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
     4106                  if (! (yysize <= yysize1
     4107                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4108                    return 2;
     4109                  yysize = yysize1;
     4110                }
    45494111              }
    45504112        }
     
    45664128    }
    45674129
    4568   yysize1 = yysize + yystrlen (yyformat);
    4569   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4570     return 2;
    4571   yysize = yysize1;
     4130  {
     4131    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
     4132    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4133      return 2;
     4134    yysize = yysize1;
     4135  }
    45724136
    45734137  if (*yymsg_alloc < yysize)
     
    46064170`-----------------------------------------------*/
    46074171
    4608 /*ARGSUSED*/
    4609 #if (defined __STDC__ || defined __C99__FUNC__ \
    4610      || defined __cplusplus || defined _MSC_VER)
    46114172static void
    46124173yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    4613 #else
    4614 static void
    4615 yydestruct (yymsg, yytype, yyvaluep)
    4616     const char *yymsg;
    4617     int yytype;
    4618     YYSTYPE *yyvaluep;
    4619 #endif
    46204174{
    46214175  YYUSE (yyvaluep);
    4622 
    46234176  if (!yymsg)
    46244177    yymsg = "Deleting";
    46254178  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    46264179
    4627   switch (yytype)
    4628     {
    4629 
    4630       default:
    4631         break;
    4632     }
     4180  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     4181  YYUSE (yytype);
     4182  YY_IGNORE_MAYBE_UNINITIALIZED_END
    46334183}
    46344184
    46354185
    4636 /* Prevent warnings from -Wmissing-prototypes.  */
    4637 #ifdef YYPARSE_PARAM
    4638 #if defined __STDC__ || defined __cplusplus
    4639 int yyparse (void *YYPARSE_PARAM);
    4640 #else
    4641 int yyparse ();
    4642 #endif
    4643 #else /* ! YYPARSE_PARAM */
    4644 #if defined __STDC__ || defined __cplusplus
    4645 int yyparse (void);
    4646 #else
    4647 int yyparse ();
    4648 #endif
    4649 #endif /* ! YYPARSE_PARAM */
    46504186
    46514187
     
    46554191/* The semantic value of the lookahead symbol.  */
    46564192YYSTYPE yylval;
    4657 
    46584193/* Number of syntax errors so far.  */
    46594194int yynerrs;
     
    46644199`----------*/
    46654200
    4666 #ifdef YYPARSE_PARAM
    4667 #if (defined __STDC__ || defined __C99__FUNC__ \
    4668      || defined __cplusplus || defined _MSC_VER)
    4669 int
    4670 yyparse (void *YYPARSE_PARAM)
    4671 #else
    4672 int
    4673 yyparse (YYPARSE_PARAM)
    4674     void *YYPARSE_PARAM;
    4675 #endif
    4676 #else /* ! YYPARSE_PARAM */
    4677 #if (defined __STDC__ || defined __C99__FUNC__ \
    4678      || defined __cplusplus || defined _MSC_VER)
    46794201int
    46804202yyparse (void)
    4681 #else
    4682 int
    4683 yyparse ()
    4684 
    4685 #endif
    4686 #endif
    46874203{
    46884204    int yystate;
     
    46914207
    46924208    /* The stacks and their tools:
    4693        `yyss': related to states.
    4694        `yyvs': related to semantic values.
    4695 
    4696        Refer to the stacks thru separate pointers, to allow yyoverflow
     4209       'yyss': related to states.
     4210       'yyvs': related to semantic values.
     4211
     4212       Refer to the stacks through separate pointers, to allow yyoverflow
    46974213       to reallocate them elsewhere.  */
    46984214
     
    47124228  int yyresult;
    47134229  /* Lookahead token as an internal (translated) token number.  */
    4714   int yytoken;
     4230  int yytoken = 0;
    47154231  /* The variables used to return semantic value and location from the
    47164232     action routines.  */
     
    47304246  int yylen = 0;
    47314247
    4732   yytoken = 0;
    4733   yyss = yyssa;
    4734   yyvs = yyvsa;
     4248  yyssp = yyss = yyssa;
     4249  yyvsp = yyvs = yyvsa;
    47354250  yystacksize = YYINITDEPTH;
    47364251
     
    47414256  yynerrs = 0;
    47424257  yychar = YYEMPTY; /* Cause a token to be read.  */
    4743 
    4744   /* Initialize stack pointers.
    4745      Waste one element of value and location stack
    4746      so that they stay on the same level as the state stack.
    4747      The wasted elements are never initialized.  */
    4748   yyssp = yyss;
    4749   yyvsp = yyvs;
    4750 
    47514258  goto yysetstate;
    47524259
     
    47694276#ifdef yyoverflow
    47704277      {
    4771         /* Give user a chance to reallocate the stack.  Use copies of
    4772            these so that the &'s don't force the real ones into
    4773            memory.  */
    4774         YYSTYPE *yyvs1 = yyvs;
    4775         yytype_int16 *yyss1 = yyss;
    4776 
    4777         /* Each stack pointer address is followed by the size of the
    4778            data in use in that stack, in bytes.  This used to be a
    4779            conditional around just the two extra args, but that might
    4780            be undefined if yyoverflow is a macro.  */
    4781         yyoverflow (YY_("memory exhausted"),
    4782                     &yyss1, yysize * sizeof (*yyssp),
    4783                     &yyvs1, yysize * sizeof (*yyvsp),
    4784                     &yystacksize);
    4785 
    4786         yyss = yyss1;
    4787         yyvs = yyvs1;
     4278        /* Give user a chance to reallocate the stack.  Use copies of
     4279           these so that the &'s don't force the real ones into
     4280           memory.  */
     4281        YYSTYPE *yyvs1 = yyvs;
     4282        yytype_int16 *yyss1 = yyss;
     4283
     4284        /* Each stack pointer address is followed by the size of the
     4285           data in use in that stack, in bytes.  This used to be a
     4286           conditional around just the two extra args, but that might
     4287           be undefined if yyoverflow is a macro.  */
     4288        yyoverflow (YY_("memory exhausted"),
     4289                    &yyss1, yysize * sizeof (*yyssp),
     4290                    &yyvs1, yysize * sizeof (*yyvsp),
     4291                    &yystacksize);
     4292
     4293        yyss = yyss1;
     4294        yyvs = yyvs1;
    47884295      }
    47894296#else /* no yyoverflow */
     
    47934300      /* Extend the stack our own way.  */
    47944301      if (YYMAXDEPTH <= yystacksize)
    4795         goto yyexhaustedlab;
     4302        goto yyexhaustedlab;
    47964303      yystacksize *= 2;
    47974304      if (YYMAXDEPTH < yystacksize)
    4798         yystacksize = YYMAXDEPTH;
     4305        yystacksize = YYMAXDEPTH;
    47994306
    48004307      {
    4801         yytype_int16 *yyss1 = yyss;
    4802         union yyalloc *yyptr =
    4803           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4804         if (! yyptr)
    4805           goto yyexhaustedlab;
    4806         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4807         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
     4308        yytype_int16 *yyss1 = yyss;
     4309        union yyalloc *yyptr =
     4310          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
     4311        if (! yyptr)
     4312          goto yyexhaustedlab;
     4313        YYSTACK_RELOCATE (yyss_alloc, yyss);
     4314        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    48084315#  undef YYSTACK_RELOCATE
    4809         if (yyss1 != yyssa)
    4810           YYSTACK_FREE (yyss1);
     4316        if (yyss1 != yyssa)
     4317          YYSTACK_FREE (yyss1);
    48114318      }
    48124319# endif
     
    48174324
    48184325      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4819                   (unsigned long int) yystacksize));
     4326                  (unsigned long int) yystacksize));
    48204327
    48214328      if (yyss + yystacksize - 1 <= yyssp)
    4822         YYABORT;
     4329        YYABORT;
    48234330    }
    48244331
     
    48494356    {
    48504357      YYDPRINTF ((stderr, "Reading a token: "));
    4851       yychar = YYLEX;
     4358      yychar = yylex ();
    48524359    }
    48534360
     
    48894396
    48904397  yystate = yyn;
     4398  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    48914399  *++yyvsp = yylval;
     4400  YY_IGNORE_MAYBE_UNINITIALIZED_END
    48924401
    48934402  goto yynewstate;
     
    49124421
    49134422  /* If YYLEN is nonzero, implement the default value of the action:
    4914      `$$ = $1'.
     4423     '$$ = $1'.
    49154424
    49164425     Otherwise, the following line sets YYVAL to garbage.
     
    49264435    {
    49274436        case 2:
    4928 
    4929 /* Line 1806 of yacc.c  */
    4930 #line 306 "parser.yy"
     4437#line 305 "parser.yy" /* yacc.c:1646  */
    49314438    { typedefTable.enterScope(); }
     4439#line 4440 "Parser/parser.cc" /* yacc.c:1646  */
    49324440    break;
    49334441
    49344442  case 3:
    4935 
    4936 /* Line 1806 of yacc.c  */
    4937 #line 310 "parser.yy"
     4443#line 309 "parser.yy" /* yacc.c:1646  */
    49384444    { typedefTable.leaveScope(); }
     4445#line 4446 "Parser/parser.cc" /* yacc.c:1646  */
    49394446    break;
    49404447
    49414448  case 4:
    4942 
    4943 /* Line 1806 of yacc.c  */
    4944 #line 317 "parser.yy"
    4945     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4449#line 316 "parser.yy" /* yacc.c:1646  */
     4450    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); }
     4451#line 4452 "Parser/parser.cc" /* yacc.c:1646  */
    49464452    break;
    49474453
    49484454  case 5:
    4949 
    4950 /* Line 1806 of yacc.c  */
    4951 #line 318 "parser.yy"
    4952     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4455#line 317 "parser.yy" /* yacc.c:1646  */
     4456    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); }
     4457#line 4458 "Parser/parser.cc" /* yacc.c:1646  */
    49534458    break;
    49544459
    49554460  case 6:
    4956 
    4957 /* Line 1806 of yacc.c  */
    4958 #line 319 "parser.yy"
    4959     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4461#line 318 "parser.yy" /* yacc.c:1646  */
     4462    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); }
     4463#line 4464 "Parser/parser.cc" /* yacc.c:1646  */
    49604464    break;
    49614465
    49624466  case 7:
    4963 
    4964 /* Line 1806 of yacc.c  */
    4965 #line 320 "parser.yy"
    4966     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4467#line 319 "parser.yy" /* yacc.c:1646  */
     4468    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); }
     4469#line 4470 "Parser/parser.cc" /* yacc.c:1646  */
    49674470    break;
    49684471
    49694472  case 8:
    4970 
    4971 /* Line 1806 of yacc.c  */
    4972 #line 321 "parser.yy"
    4973     { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
     4473#line 320 "parser.yy" /* yacc.c:1646  */
     4474    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); }
     4475#line 4476 "Parser/parser.cc" /* yacc.c:1646  */
    49744476    break;
    49754477
    49764478  case 18:
    4977 
    4978 /* Line 1806 of yacc.c  */
    4979 #line 346 "parser.yy"
    4980     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     4479#line 345 "parser.yy" /* yacc.c:1646  */
     4480    { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); }
     4481#line 4482 "Parser/parser.cc" /* yacc.c:1646  */
    49814482    break;
    49824483
    49834484  case 19:
    4984 
    4985 /* Line 1806 of yacc.c  */
    4986 #line 350 "parser.yy"
    4987     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     4485#line 349 "parser.yy" /* yacc.c:1646  */
     4486    { (yyval.str) = (yyvsp[0].tok); }
     4487#line 4488 "Parser/parser.cc" /* yacc.c:1646  */
    49884488    break;
    49894489
    49904490  case 20:
    4991 
    4992 /* Line 1806 of yacc.c  */
    4993 #line 352 "parser.yy"
    4994     {
    4995                         appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
    4996                         delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
    4997                         (yyval.str) = (yyvsp[(1) - (2)].str);                                                                   // conversion from tok to str
     4491#line 351 "parser.yy" /* yacc.c:1646  */
     4492    {
     4493                        appendStr( (yyvsp[-1].str), (yyvsp[0].tok) );                                           // append 2nd juxtaposed string to 1st
     4494                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
     4495                        (yyval.str) = (yyvsp[-1].str);                                                                  // conversion from tok to str
    49984496                }
     4497#line 4498 "Parser/parser.cc" /* yacc.c:1646  */
    49994498    break;
    50004499
    50014500  case 21:
    5002 
    5003 /* Line 1806 of yacc.c  */
    5004 #line 363 "parser.yy"
    5005     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4501#line 362 "parser.yy" /* yacc.c:1646  */
     4502    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4503#line 4504 "Parser/parser.cc" /* yacc.c:1646  */
    50064504    break;
    50074505
    50084506  case 22:
    5009 
    5010 /* Line 1806 of yacc.c  */
    5011 #line 365 "parser.yy"
    5012     { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); }
     4507#line 364 "parser.yy" /* yacc.c:1646  */
     4508    { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[0].tok) ) ); }
     4509#line 4510 "Parser/parser.cc" /* yacc.c:1646  */
    50134510    break;
    50144511
    50154512  case 24:
    5016 
    5017 /* Line 1806 of yacc.c  */
    5018 #line 368 "parser.yy"
    5019     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     4513#line 367 "parser.yy" /* yacc.c:1646  */
     4514    { (yyval.en) = (yyvsp[-1].en); }
     4515#line 4516 "Parser/parser.cc" /* yacc.c:1646  */
    50204516    break;
    50214517
    50224518  case 25:
    5023 
    5024 /* Line 1806 of yacc.c  */
    5025 #line 370 "parser.yy"
    5026     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
     4519#line 369 "parser.yy" /* yacc.c:1646  */
     4520    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
     4521#line 4522 "Parser/parser.cc" /* yacc.c:1646  */
    50274522    break;
    50284523
    50294524  case 27:
    5030 
    5031 /* Line 1806 of yacc.c  */
    5032 #line 380 "parser.yy"
    5033     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
     4525#line 379 "parser.yy" /* yacc.c:1646  */
     4526    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); }
     4527#line 4528 "Parser/parser.cc" /* yacc.c:1646  */
    50344528    break;
    50354529
    50364530  case 28:
    5037 
    5038 /* Line 1806 of yacc.c  */
    5039 #line 382 "parser.yy"
    5040     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     4531#line 381 "parser.yy" /* yacc.c:1646  */
     4532    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); }
     4533#line 4534 "Parser/parser.cc" /* yacc.c:1646  */
    50414534    break;
    50424535
    50434536  case 29:
    5044 
    5045 /* Line 1806 of yacc.c  */
    5046 #line 384 "parser.yy"
    5047     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     4537#line 383 "parser.yy" /* yacc.c:1646  */
     4538    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
     4539#line 4540 "Parser/parser.cc" /* yacc.c:1646  */
    50484540    break;
    50494541
    50504542  case 30:
    5051 
    5052 /* Line 1806 of yacc.c  */
    5053 #line 386 "parser.yy"
    5054     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     4543#line 385 "parser.yy" /* yacc.c:1646  */
     4544    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); }
     4545#line 4546 "Parser/parser.cc" /* yacc.c:1646  */
    50554546    break;
    50564547
    50574548  case 31:
    5058 
    5059 /* Line 1806 of yacc.c  */
    5060 #line 388 "parser.yy"
    5061     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); }
     4549#line 387 "parser.yy" /* yacc.c:1646  */
     4550    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-1].en), build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) ) ) ); }
     4551#line 4552 "Parser/parser.cc" /* yacc.c:1646  */
    50624552    break;
    50634553
    50644554  case 32:
    5065 
    5066 /* Line 1806 of yacc.c  */
    5067 #line 390 "parser.yy"
    5068     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     4555#line 389 "parser.yy" /* yacc.c:1646  */
     4556    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
     4557#line 4558 "Parser/parser.cc" /* yacc.c:1646  */
    50694558    break;
    50704559
    50714560  case 33:
    5072 
    5073 /* Line 1806 of yacc.c  */
    5074 #line 392 "parser.yy"
    5075     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     4561#line 391 "parser.yy" /* yacc.c:1646  */
     4562    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); }
     4563#line 4564 "Parser/parser.cc" /* yacc.c:1646  */
    50764564    break;
    50774565
    50784566  case 34:
    5079 
    5080 /* Line 1806 of yacc.c  */
    5081 #line 394 "parser.yy"
    5082     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     4567#line 393 "parser.yy" /* yacc.c:1646  */
     4568    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); }
     4569#line 4570 "Parser/parser.cc" /* yacc.c:1646  */
    50834570    break;
    50844571
    50854572  case 35:
    5086 
    5087 /* Line 1806 of yacc.c  */
    5088 #line 396 "parser.yy"
    5089     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     4573#line 395 "parser.yy" /* yacc.c:1646  */
     4574    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); }
     4575#line 4576 "Parser/parser.cc" /* yacc.c:1646  */
    50904576    break;
    50914577
    50924578  case 36:
    5093 
    5094 /* Line 1806 of yacc.c  */
    5095 #line 398 "parser.yy"
    5096     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
     4579#line 397 "parser.yy" /* yacc.c:1646  */
     4580    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); }
     4581#line 4582 "Parser/parser.cc" /* yacc.c:1646  */
    50974582    break;
    50984583
    50994584  case 37:
    5100 
    5101 /* Line 1806 of yacc.c  */
    5102 #line 400 "parser.yy"
     4585#line 399 "parser.yy" /* yacc.c:1646  */
    51034586    {
    51044587                        Token fn;
    51054588                        fn.str = new std::string( "?{}" );                      // location undefined - use location of '{'?
    5106                         (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) );
     4589                        (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) ) );
    51074590                }
     4591#line 4592 "Parser/parser.cc" /* yacc.c:1646  */
    51084592    break;
    51094593
    51104594  case 39:
    5111 
    5112 /* Line 1806 of yacc.c  */
    5113 #line 410 "parser.yy"
    5114     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     4595#line 409 "parser.yy" /* yacc.c:1646  */
     4596    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
     4597#line 4598 "Parser/parser.cc" /* yacc.c:1646  */
    51154598    break;
    51164599
    51174600  case 40:
    5118 
    5119 /* Line 1806 of yacc.c  */
    5120 #line 415 "parser.yy"
    5121     { (yyval.en) = nullptr; }
     4601#line 414 "parser.yy" /* yacc.c:1646  */
     4602    { (yyval.en) = 0; }
     4603#line 4604 "Parser/parser.cc" /* yacc.c:1646  */
    51224604    break;
    51234605
    51244606  case 43:
    5125 
    5126 /* Line 1806 of yacc.c  */
    5127 #line 421 "parser.yy"
    5128     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     4607#line 420 "parser.yy" /* yacc.c:1646  */
     4608    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     4609#line 4610 "Parser/parser.cc" /* yacc.c:1646  */
    51294610    break;
    51304611
    51314612  case 45:
    5132 
    5133 /* Line 1806 of yacc.c  */
    5134 #line 427 "parser.yy"
    5135     { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); }
     4613#line 426 "parser.yy" /* yacc.c:1646  */
     4614    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[-1].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); }
     4615#line 4616 "Parser/parser.cc" /* yacc.c:1646  */
    51364616    break;
    51374617
    51384618  case 46:
    5139 
    5140 /* Line 1806 of yacc.c  */
    5141 #line 429 "parser.yy"
    5142     { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); }
     4619#line 428 "parser.yy" /* yacc.c:1646  */
     4620    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[-5].tok) ) ), build_tuple( (yyvsp[-2].en) ) ) ); }
     4621#line 4622 "Parser/parser.cc" /* yacc.c:1646  */
    51434622    break;
    51444623
    51454624  case 47:
    5146 
    5147 /* Line 1806 of yacc.c  */
    5148 #line 431 "parser.yy"
    5149     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
     4625#line 430 "parser.yy" /* yacc.c:1646  */
     4626    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); }
     4627#line 4628 "Parser/parser.cc" /* yacc.c:1646  */
    51504628    break;
    51514629
    51524630  case 48:
    5153 
    5154 /* Line 1806 of yacc.c  */
    5155 #line 433 "parser.yy"
    5156     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     4631#line 432 "parser.yy" /* yacc.c:1646  */
     4632    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); }
     4633#line 4634 "Parser/parser.cc" /* yacc.c:1646  */
    51574634    break;
    51584635
    51594636  case 49:
    5160 
    5161 /* Line 1806 of yacc.c  */
    5162 #line 435 "parser.yy"
    5163     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
     4637#line 434 "parser.yy" /* yacc.c:1646  */
     4638    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); }
     4639#line 4640 "Parser/parser.cc" /* yacc.c:1646  */
    51644640    break;
    51654641
    51664642  case 50:
    5167 
    5168 /* Line 1806 of yacc.c  */
    5169 #line 437 "parser.yy"
    5170     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     4643#line 436 "parser.yy" /* yacc.c:1646  */
     4644    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); }
     4645#line 4646 "Parser/parser.cc" /* yacc.c:1646  */
    51714646    break;
    51724647
    51734648  case 51:
    5174 
    5175 /* Line 1806 of yacc.c  */
    5176 #line 442 "parser.yy"
    5177     { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
     4649#line 441 "parser.yy" /* yacc.c:1646  */
     4650    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); }
     4651#line 4652 "Parser/parser.cc" /* yacc.c:1646  */
    51784652    break;
    51794653
    51804654  case 52:
    5181 
    5182 /* Line 1806 of yacc.c  */
    5183 #line 444 "parser.yy"
    5184     { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
     4655#line 443 "parser.yy" /* yacc.c:1646  */
     4656    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); }
     4657#line 4658 "Parser/parser.cc" /* yacc.c:1646  */
    51854658    break;
    51864659
    51874660  case 53:
    5188 
    5189 /* Line 1806 of yacc.c  */
    5190 #line 446 "parser.yy"
    5191     {
    5192                         if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) {
    5193                                 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) );
     4661#line 445 "parser.yy" /* yacc.c:1646  */
     4662    {
     4663                        if( (*(yyvsp[-1].tok)) == "0" || (*(yyvsp[-1].tok)) == "1" ) {
     4664                                (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) );
    51944665                        } else {
    5195                                 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) );
     4666                                (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) );
    51964667                        }
    51974668                }
     4669#line 4670 "Parser/parser.cc" /* yacc.c:1646  */
    51984670    break;
    51994671
    52004672  case 54:
    5201 
    5202 /* Line 1806 of yacc.c  */
    5203 #line 457 "parser.yy"
     4673#line 456 "parser.yy" /* yacc.c:1646  */
    52044674    { (yyval.en) = nullptr; }
     4675#line 4676 "Parser/parser.cc" /* yacc.c:1646  */
    52054676    break;
    52064677
    52074678  case 55:
    5208 
    5209 /* Line 1806 of yacc.c  */
    5210 #line 459 "parser.yy"
    5211     {
    5212                         Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) );
    5213                         (yyval.en) = (yyvsp[(1) - (2)].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en),  constant ) ) : new ExpressionNode( constant );
     4679#line 458 "parser.yy" /* yacc.c:1646  */
     4680    {
     4681                        Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) );
     4682                        (yyval.en) = (yyvsp[-1].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[-1].en),  constant ) ) : new ExpressionNode( constant );
    52144683                }
     4684#line 4685 "Parser/parser.cc" /* yacc.c:1646  */
    52154685    break;
    52164686
    52174687  case 57:
    5218 
    5219 /* Line 1806 of yacc.c  */
    5220 #line 470 "parser.yy"
    5221     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     4688#line 469 "parser.yy" /* yacc.c:1646  */
     4689    { (yyval.en) = (yyvsp[0].en); }
     4690#line 4691 "Parser/parser.cc" /* yacc.c:1646  */
    52224691    break;
    52234692
    52244693  case 58:
    5225 
    5226 /* Line 1806 of yacc.c  */
    5227 #line 472 "parser.yy"
    5228     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     4694#line 471 "parser.yy" /* yacc.c:1646  */
     4695    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     4696#line 4697 "Parser/parser.cc" /* yacc.c:1646  */
    52294697    break;
    52304698
    52314699  case 59:
    5232 
    5233 /* Line 1806 of yacc.c  */
    5234 #line 474 "parser.yy"
    5235     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     4700#line 473 "parser.yy" /* yacc.c:1646  */
     4701    { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
     4702#line 4703 "Parser/parser.cc" /* yacc.c:1646  */
    52364703    break;
    52374704
    52384705  case 60:
    5239 
    5240 /* Line 1806 of yacc.c  */
    5241 #line 479 "parser.yy"
    5242     {
    5243                         switch ( (yyvsp[(1) - (2)].op) ) {
     4706#line 478 "parser.yy" /* yacc.c:1646  */
     4707    {
     4708                        switch ( (yyvsp[-1].op) ) {
    52444709                          case OperKinds::AddressOf:
    5245                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     4710                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
    52464711                                break;
    52474712                          case OperKinds::PointTo:
    5248                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     4713                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
    52494714                                break;
    52504715                          default:
     
    52524717                        }
    52534718                }
     4719#line 4720 "Parser/parser.cc" /* yacc.c:1646  */
    52544720    break;
    52554721
    52564722  case 61:
    5257 
    5258 /* Line 1806 of yacc.c  */
    5259 #line 492 "parser.yy"
    5260     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     4723#line 491 "parser.yy" /* yacc.c:1646  */
     4724    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
     4725#line 4726 "Parser/parser.cc" /* yacc.c:1646  */
    52614726    break;
    52624727
    52634728  case 62:
    5264 
    5265 /* Line 1806 of yacc.c  */
    5266 #line 494 "parser.yy"
    5267     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     4729#line 493 "parser.yy" /* yacc.c:1646  */
     4730    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
     4731#line 4732 "Parser/parser.cc" /* yacc.c:1646  */
    52684732    break;
    52694733
    52704734  case 63:
    5271 
    5272 /* Line 1806 of yacc.c  */
    5273 #line 496 "parser.yy"
    5274     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     4735#line 495 "parser.yy" /* yacc.c:1646  */
     4736    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
     4737#line 4738 "Parser/parser.cc" /* yacc.c:1646  */
    52754738    break;
    52764739
    52774740  case 64:
    5278 
    5279 /* Line 1806 of yacc.c  */
    5280 #line 498 "parser.yy"
    5281     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4741#line 497 "parser.yy" /* yacc.c:1646  */
     4742    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
     4743#line 4744 "Parser/parser.cc" /* yacc.c:1646  */
    52824744    break;
    52834745
    52844746  case 65:
    5285 
    5286 /* Line 1806 of yacc.c  */
    5287 #line 500 "parser.yy"
    5288     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4747#line 499 "parser.yy" /* yacc.c:1646  */
     4748    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
     4749#line 4750 "Parser/parser.cc" /* yacc.c:1646  */
    52894750    break;
    52904751
    52914752  case 66:
    5292 
    5293 /* Line 1806 of yacc.c  */
    5294 #line 502 "parser.yy"
    5295     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4753#line 501 "parser.yy" /* yacc.c:1646  */
     4754    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
     4755#line 4756 "Parser/parser.cc" /* yacc.c:1646  */
    52964756    break;
    52974757
    52984758  case 67:
    5299 
    5300 /* Line 1806 of yacc.c  */
    5301 #line 504 "parser.yy"
    5302     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4759#line 503 "parser.yy" /* yacc.c:1646  */
     4760    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
     4761#line 4762 "Parser/parser.cc" /* yacc.c:1646  */
    53034762    break;
    53044763
    53054764  case 68:
    5306 
    5307 /* Line 1806 of yacc.c  */
    5308 #line 506 "parser.yy"
    5309     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     4765#line 505 "parser.yy" /* yacc.c:1646  */
     4766    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
     4767#line 4768 "Parser/parser.cc" /* yacc.c:1646  */
    53104768    break;
    53114769
    53124770  case 69:
    5313 
    5314 /* Line 1806 of yacc.c  */
    5315 #line 508 "parser.yy"
    5316     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     4771#line 507 "parser.yy" /* yacc.c:1646  */
     4772    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
     4773#line 4774 "Parser/parser.cc" /* yacc.c:1646  */
    53174774    break;
    53184775
    53194776  case 70:
    5320 
    5321 /* Line 1806 of yacc.c  */
    5322 #line 510 "parser.yy"
    5323     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     4777#line 509 "parser.yy" /* yacc.c:1646  */
     4778    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
     4779#line 4780 "Parser/parser.cc" /* yacc.c:1646  */
    53244780    break;
    53254781
    53264782  case 71:
    5327 
    5328 /* Line 1806 of yacc.c  */
    5329 #line 512 "parser.yy"
    5330     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     4783#line 511 "parser.yy" /* yacc.c:1646  */
     4784    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
     4785#line 4786 "Parser/parser.cc" /* yacc.c:1646  */
    53314786    break;
    53324787
    53334788  case 72:
    5334 
    5335 /* Line 1806 of yacc.c  */
    5336 #line 518 "parser.yy"
     4789#line 517 "parser.yy" /* yacc.c:1646  */
    53374790    { (yyval.op) = OperKinds::PointTo; }
     4791#line 4792 "Parser/parser.cc" /* yacc.c:1646  */
    53384792    break;
    53394793
    53404794  case 73:
    5341 
    5342 /* Line 1806 of yacc.c  */
    5343 #line 519 "parser.yy"
     4795#line 518 "parser.yy" /* yacc.c:1646  */
    53444796    { (yyval.op) = OperKinds::AddressOf; }
     4797#line 4798 "Parser/parser.cc" /* yacc.c:1646  */
    53454798    break;
    53464799
    53474800  case 74:
    5348 
    5349 /* Line 1806 of yacc.c  */
    5350 #line 525 "parser.yy"
     4801#line 524 "parser.yy" /* yacc.c:1646  */
    53514802    { (yyval.op) = OperKinds::UnPlus; }
     4803#line 4804 "Parser/parser.cc" /* yacc.c:1646  */
    53524804    break;
    53534805
    53544806  case 75:
    5355 
    5356 /* Line 1806 of yacc.c  */
    5357 #line 526 "parser.yy"
     4807#line 525 "parser.yy" /* yacc.c:1646  */
    53584808    { (yyval.op) = OperKinds::UnMinus; }
     4809#line 4810 "Parser/parser.cc" /* yacc.c:1646  */
    53594810    break;
    53604811
    53614812  case 76:
    5362 
    5363 /* Line 1806 of yacc.c  */
    5364 #line 527 "parser.yy"
     4813#line 526 "parser.yy" /* yacc.c:1646  */
    53654814    { (yyval.op) = OperKinds::Neg; }
     4815#line 4816 "Parser/parser.cc" /* yacc.c:1646  */
    53664816    break;
    53674817
    53684818  case 77:
    5369 
    5370 /* Line 1806 of yacc.c  */
    5371 #line 528 "parser.yy"
     4819#line 527 "parser.yy" /* yacc.c:1646  */
    53724820    { (yyval.op) = OperKinds::BitNeg; }
     4821#line 4822 "Parser/parser.cc" /* yacc.c:1646  */
    53734822    break;
    53744823
    53754824  case 79:
    5376 
    5377 /* Line 1806 of yacc.c  */
    5378 #line 534 "parser.yy"
    5379     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     4825#line 533 "parser.yy" /* yacc.c:1646  */
     4826    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
     4827#line 4828 "Parser/parser.cc" /* yacc.c:1646  */
    53804828    break;
    53814829
    53824830  case 81:
    5383 
    5384 /* Line 1806 of yacc.c  */
    5385 #line 542 "parser.yy"
    5386     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4831#line 541 "parser.yy" /* yacc.c:1646  */
     4832    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4833#line 4834 "Parser/parser.cc" /* yacc.c:1646  */
    53874834    break;
    53884835
    53894836  case 82:
    5390 
    5391 /* Line 1806 of yacc.c  */
    5392 #line 544 "parser.yy"
    5393     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4837#line 543 "parser.yy" /* yacc.c:1646  */
     4838    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4839#line 4840 "Parser/parser.cc" /* yacc.c:1646  */
    53944840    break;
    53954841
    53964842  case 83:
    5397 
    5398 /* Line 1806 of yacc.c  */
    5399 #line 546 "parser.yy"
    5400     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4843#line 545 "parser.yy" /* yacc.c:1646  */
     4844    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4845#line 4846 "Parser/parser.cc" /* yacc.c:1646  */
    54014846    break;
    54024847
    54034848  case 85:
    5404 
    5405 /* Line 1806 of yacc.c  */
    5406 #line 552 "parser.yy"
    5407     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4849#line 551 "parser.yy" /* yacc.c:1646  */
     4850    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4851#line 4852 "Parser/parser.cc" /* yacc.c:1646  */
    54084852    break;
    54094853
    54104854  case 86:
    5411 
    5412 /* Line 1806 of yacc.c  */
    5413 #line 554 "parser.yy"
    5414     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4855#line 553 "parser.yy" /* yacc.c:1646  */
     4856    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4857#line 4858 "Parser/parser.cc" /* yacc.c:1646  */
    54154858    break;
    54164859
    54174860  case 88:
    5418 
    5419 /* Line 1806 of yacc.c  */
    5420 #line 560 "parser.yy"
    5421     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4861#line 559 "parser.yy" /* yacc.c:1646  */
     4862    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4863#line 4864 "Parser/parser.cc" /* yacc.c:1646  */
    54224864    break;
    54234865
    54244866  case 89:
    5425 
    5426 /* Line 1806 of yacc.c  */
    5427 #line 562 "parser.yy"
    5428     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4867#line 561 "parser.yy" /* yacc.c:1646  */
     4868    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4869#line 4870 "Parser/parser.cc" /* yacc.c:1646  */
    54294870    break;
    54304871
    54314872  case 91:
    5432 
    5433 /* Line 1806 of yacc.c  */
    5434 #line 568 "parser.yy"
    5435     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4873#line 567 "parser.yy" /* yacc.c:1646  */
     4874    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4875#line 4876 "Parser/parser.cc" /* yacc.c:1646  */
    54364876    break;
    54374877
    54384878  case 92:
    5439 
    5440 /* Line 1806 of yacc.c  */
    5441 #line 570 "parser.yy"
    5442     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4879#line 569 "parser.yy" /* yacc.c:1646  */
     4880    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4881#line 4882 "Parser/parser.cc" /* yacc.c:1646  */
    54434882    break;
    54444883
    54454884  case 93:
    5446 
    5447 /* Line 1806 of yacc.c  */
    5448 #line 572 "parser.yy"
    5449     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4885#line 571 "parser.yy" /* yacc.c:1646  */
     4886    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4887#line 4888 "Parser/parser.cc" /* yacc.c:1646  */
    54504888    break;
    54514889
    54524890  case 94:
    5453 
    5454 /* Line 1806 of yacc.c  */
    5455 #line 574 "parser.yy"
    5456     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4891#line 573 "parser.yy" /* yacc.c:1646  */
     4892    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4893#line 4894 "Parser/parser.cc" /* yacc.c:1646  */
    54574894    break;
    54584895
    54594896  case 96:
    5460 
    5461 /* Line 1806 of yacc.c  */
    5462 #line 580 "parser.yy"
    5463     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4897#line 579 "parser.yy" /* yacc.c:1646  */
     4898    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4899#line 4900 "Parser/parser.cc" /* yacc.c:1646  */
    54644900    break;
    54654901
    54664902  case 97:
    5467 
    5468 /* Line 1806 of yacc.c  */
    5469 #line 582 "parser.yy"
    5470     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4903#line 581 "parser.yy" /* yacc.c:1646  */
     4904    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4905#line 4906 "Parser/parser.cc" /* yacc.c:1646  */
    54714906    break;
    54724907
    54734908  case 99:
    5474 
    5475 /* Line 1806 of yacc.c  */
    5476 #line 588 "parser.yy"
    5477     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4909#line 587 "parser.yy" /* yacc.c:1646  */
     4910    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4911#line 4912 "Parser/parser.cc" /* yacc.c:1646  */
    54784912    break;
    54794913
    54804914  case 101:
    5481 
    5482 /* Line 1806 of yacc.c  */
    5483 #line 594 "parser.yy"
    5484     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4915#line 593 "parser.yy" /* yacc.c:1646  */
     4916    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4917#line 4918 "Parser/parser.cc" /* yacc.c:1646  */
    54854918    break;
    54864919
    54874920  case 103:
    5488 
    5489 /* Line 1806 of yacc.c  */
    5490 #line 600 "parser.yy"
    5491     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4921#line 599 "parser.yy" /* yacc.c:1646  */
     4922    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4923#line 4924 "Parser/parser.cc" /* yacc.c:1646  */
    54924924    break;
    54934925
    54944926  case 105:
    5495 
    5496 /* Line 1806 of yacc.c  */
    5497 #line 606 "parser.yy"
    5498     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     4927#line 605 "parser.yy" /* yacc.c:1646  */
     4928    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
     4929#line 4930 "Parser/parser.cc" /* yacc.c:1646  */
    54994930    break;
    55004931
    55014932  case 107:
    5502 
    5503 /* Line 1806 of yacc.c  */
    5504 #line 612 "parser.yy"
    5505     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     4933#line 611 "parser.yy" /* yacc.c:1646  */
     4934    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
     4935#line 4936 "Parser/parser.cc" /* yacc.c:1646  */
    55064936    break;
    55074937
    55084938  case 109:
    5509 
    5510 /* Line 1806 of yacc.c  */
    5511 #line 618 "parser.yy"
    5512     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     4939#line 617 "parser.yy" /* yacc.c:1646  */
     4940    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4941#line 4942 "Parser/parser.cc" /* yacc.c:1646  */
    55134942    break;
    55144943
    55154944  case 110:
    5516 
    5517 /* Line 1806 of yacc.c  */
    5518 #line 621 "parser.yy"
    5519     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     4945#line 620 "parser.yy" /* yacc.c:1646  */
     4946    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
     4947#line 4948 "Parser/parser.cc" /* yacc.c:1646  */
    55204948    break;
    55214949
    55224950  case 113:
    5523 
    5524 /* Line 1806 of yacc.c  */
    5525 #line 634 "parser.yy"
    5526     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4951#line 633 "parser.yy" /* yacc.c:1646  */
     4952    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4953#line 4954 "Parser/parser.cc" /* yacc.c:1646  */
    55274954    break;
    55284955
    55294956  case 114:
    5530 
    5531 /* Line 1806 of yacc.c  */
    5532 #line 641 "parser.yy"
     4957#line 640 "parser.yy" /* yacc.c:1646  */
    55334958    { (yyval.en) = nullptr; }
     4959#line 4960 "Parser/parser.cc" /* yacc.c:1646  */
    55344960    break;
    55354961
    55364962  case 116:
    5537 
    5538 /* Line 1806 of yacc.c  */
    5539 #line 646 "parser.yy"
     4963#line 645 "parser.yy" /* yacc.c:1646  */
    55404964    { (yyval.op) = OperKinds::Assign; }
     4965#line 4966 "Parser/parser.cc" /* yacc.c:1646  */
    55414966    break;
    55424967
    55434968  case 117:
    5544 
    5545 /* Line 1806 of yacc.c  */
    5546 #line 647 "parser.yy"
     4969#line 646 "parser.yy" /* yacc.c:1646  */
    55474970    { (yyval.op) = OperKinds::AtAssn; }
     4971#line 4972 "Parser/parser.cc" /* yacc.c:1646  */
    55484972    break;
    55494973
    55504974  case 118:
    5551 
    5552 /* Line 1806 of yacc.c  */
    5553 #line 648 "parser.yy"
     4975#line 647 "parser.yy" /* yacc.c:1646  */
    55544976    { (yyval.op) = OperKinds::MulAssn; }
     4977#line 4978 "Parser/parser.cc" /* yacc.c:1646  */
    55554978    break;
    55564979
    55574980  case 119:
    5558 
    5559 /* Line 1806 of yacc.c  */
    5560 #line 649 "parser.yy"
     4981#line 648 "parser.yy" /* yacc.c:1646  */
    55614982    { (yyval.op) = OperKinds::DivAssn; }
     4983#line 4984 "Parser/parser.cc" /* yacc.c:1646  */
    55624984    break;
    55634985
    55644986  case 120:
    5565 
    5566 /* Line 1806 of yacc.c  */
    5567 #line 650 "parser.yy"
     4987#line 649 "parser.yy" /* yacc.c:1646  */
    55684988    { (yyval.op) = OperKinds::ModAssn; }
     4989#line 4990 "Parser/parser.cc" /* yacc.c:1646  */
    55694990    break;
    55704991
    55714992  case 121:
    5572 
    5573 /* Line 1806 of yacc.c  */
    5574 #line 651 "parser.yy"
     4993#line 650 "parser.yy" /* yacc.c:1646  */
    55754994    { (yyval.op) = OperKinds::PlusAssn; }
     4995#line 4996 "Parser/parser.cc" /* yacc.c:1646  */
    55764996    break;
    55774997
    55784998  case 122:
    5579 
    5580 /* Line 1806 of yacc.c  */
    5581 #line 652 "parser.yy"
     4999#line 651 "parser.yy" /* yacc.c:1646  */
    55825000    { (yyval.op) = OperKinds::MinusAssn; }
     5001#line 5002 "Parser/parser.cc" /* yacc.c:1646  */
    55835002    break;
    55845003
    55855004  case 123:
    5586 
    5587 /* Line 1806 of yacc.c  */
    5588 #line 653 "parser.yy"
     5005#line 652 "parser.yy" /* yacc.c:1646  */
    55895006    { (yyval.op) = OperKinds::LSAssn; }
     5007#line 5008 "Parser/parser.cc" /* yacc.c:1646  */
    55905008    break;
    55915009
    55925010  case 124:
    5593 
    5594 /* Line 1806 of yacc.c  */
    5595 #line 654 "parser.yy"
     5011#line 653 "parser.yy" /* yacc.c:1646  */
    55965012    { (yyval.op) = OperKinds::RSAssn; }
     5013#line 5014 "Parser/parser.cc" /* yacc.c:1646  */
    55975014    break;
    55985015
    55995016  case 125:
    5600 
    5601 /* Line 1806 of yacc.c  */
    5602 #line 655 "parser.yy"
     5017#line 654 "parser.yy" /* yacc.c:1646  */
    56035018    { (yyval.op) = OperKinds::AndAssn; }
     5019#line 5020 "Parser/parser.cc" /* yacc.c:1646  */
    56045020    break;
    56055021
    56065022  case 126:
    5607 
    5608 /* Line 1806 of yacc.c  */
    5609 #line 656 "parser.yy"
     5023#line 655 "parser.yy" /* yacc.c:1646  */
    56105024    { (yyval.op) = OperKinds::ERAssn; }
     5025#line 5026 "Parser/parser.cc" /* yacc.c:1646  */
    56115026    break;
    56125027
    56135028  case 127:
    5614 
    5615 /* Line 1806 of yacc.c  */
    5616 #line 657 "parser.yy"
     5029#line 656 "parser.yy" /* yacc.c:1646  */
    56175030    { (yyval.op) = OperKinds::OrAssn; }
     5031#line 5032 "Parser/parser.cc" /* yacc.c:1646  */
    56185032    break;
    56195033
    56205034  case 128:
    5621 
    5622 /* Line 1806 of yacc.c  */
    5623 #line 668 "parser.yy"
    5624     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5035#line 667 "parser.yy" /* yacc.c:1646  */
     5036    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
     5037#line 5038 "Parser/parser.cc" /* yacc.c:1646  */
    56255038    break;
    56265039
    56275040  case 129:
    5628 
    5629 /* Line 1806 of yacc.c  */
    5630 #line 670 "parser.yy"
    5631     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5041#line 669 "parser.yy" /* yacc.c:1646  */
     5042    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
     5043#line 5044 "Parser/parser.cc" /* yacc.c:1646  */
    56325044    break;
    56335045
    56345046  case 131:
    5635 
    5636 /* Line 1806 of yacc.c  */
    5637 #line 676 "parser.yy"
    5638     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5047#line 675 "parser.yy" /* yacc.c:1646  */
     5048    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5049#line 5050 "Parser/parser.cc" /* yacc.c:1646  */
    56395050    break;
    56405051
    56415052  case 133:
    5642 
    5643 /* Line 1806 of yacc.c  */
    5644 #line 682 "parser.yy"
    5645     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5053#line 681 "parser.yy" /* yacc.c:1646  */
     5054    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5055#line 5056 "Parser/parser.cc" /* yacc.c:1646  */
    56465056    break;
    56475057
    56485058  case 134:
    5649 
    5650 /* Line 1806 of yacc.c  */
    5651 #line 687 "parser.yy"
    5652     { (yyval.en) = nullptr; }
     5059#line 686 "parser.yy" /* yacc.c:1646  */
     5060    { (yyval.en) = 0; }
     5061#line 5062 "Parser/parser.cc" /* yacc.c:1646  */
    56535062    break;
    56545063
    56555064  case 138:
    5656 
    5657 /* Line 1806 of yacc.c  */
    5658 #line 696 "parser.yy"
    5659     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5065#line 695 "parser.yy" /* yacc.c:1646  */
     5066    { (yyval.sn) = (yyvsp[0].sn); }
     5067#line 5068 "Parser/parser.cc" /* yacc.c:1646  */
    56605068    break;
    56615069
    56625070  case 144:
    5663 
    5664 /* Line 1806 of yacc.c  */
    5665 #line 703 "parser.yy"
     5071#line 702 "parser.yy" /* yacc.c:1646  */
    56665072    {
    56675073                        Token fn;
    56685074                        fn.str = new string( "^?{}" );                          // location undefined
    5669                         (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) ) ) ) ) );
     5075                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
    56705076                }
     5077#line 5078 "Parser/parser.cc" /* yacc.c:1646  */
    56715078    break;
    56725079
    56735080  case 145:
    5674 
    5675 /* Line 1806 of yacc.c  */
    5676 #line 713 "parser.yy"
    5677     {
    5678                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5081#line 712 "parser.yy" /* yacc.c:1646  */
     5082    {
     5083                        (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
    56795084                }
     5085#line 5086 "Parser/parser.cc" /* yacc.c:1646  */
    56805086    break;
    56815087
    56825088  case 146:
    5683 
    5684 /* Line 1806 of yacc.c  */
    5685 #line 720 "parser.yy"
     5089#line 719 "parser.yy" /* yacc.c:1646  */
    56865090    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5091#line 5092 "Parser/parser.cc" /* yacc.c:1646  */
    56875092    break;
    56885093
    56895094  case 147:
    5690 
    5691 /* Line 1806 of yacc.c  */
    5692 #line 727 "parser.yy"
    5693     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5095#line 726 "parser.yy" /* yacc.c:1646  */
     5096    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
     5097#line 5098 "Parser/parser.cc" /* yacc.c:1646  */
    56945098    break;
    56955099
    56965100  case 149:
    5697 
    5698 /* Line 1806 of yacc.c  */
    5699 #line 733 "parser.yy"
    5700     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5101#line 732 "parser.yy" /* yacc.c:1646  */
     5102    { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
     5103#line 5104 "Parser/parser.cc" /* yacc.c:1646  */
    57015104    break;
    57025105
    57035106  case 150:
    5704 
    5705 /* Line 1806 of yacc.c  */
    5706 #line 738 "parser.yy"
    5707     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5107#line 737 "parser.yy" /* yacc.c:1646  */
     5108    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5109#line 5110 "Parser/parser.cc" /* yacc.c:1646  */
    57085110    break;
    57095111
    57105112  case 151:
    5711 
    5712 /* Line 1806 of yacc.c  */
    5713 #line 740 "parser.yy"
     5113#line 739 "parser.yy" /* yacc.c:1646  */
    57145114    {   // mark all fields in list
    5715                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5115                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    57165116                                iter->set_extension( true );
    5717                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
     5117                        (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
    57185118                }
     5119#line 5120 "Parser/parser.cc" /* yacc.c:1646  */
    57195120    break;
    57205121
    57215122  case 152:
    5722 
    5723 /* Line 1806 of yacc.c  */
    5724 #line 746 "parser.yy"
    5725     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5123#line 745 "parser.yy" /* yacc.c:1646  */
     5124    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5125#line 5126 "Parser/parser.cc" /* yacc.c:1646  */
    57265126    break;
    57275127
    57285128  case 155:
    5729 
    5730 /* Line 1806 of yacc.c  */
    5731 #line 753 "parser.yy"
    5732     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5129#line 752 "parser.yy" /* yacc.c:1646  */
     5130    { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
     5131#line 5132 "Parser/parser.cc" /* yacc.c:1646  */
    57335132    break;
    57345133
    57355134  case 156:
    5736 
    5737 /* Line 1806 of yacc.c  */
    5738 #line 758 "parser.yy"
    5739     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5135#line 757 "parser.yy" /* yacc.c:1646  */
     5136    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
     5137#line 5138 "Parser/parser.cc" /* yacc.c:1646  */
    57405138    break;
    57415139
    57425140  case 157:
    5743 
    5744 /* Line 1806 of yacc.c  */
    5745 #line 764 "parser.yy"
    5746     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5141#line 763 "parser.yy" /* yacc.c:1646  */
     5142    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
     5143#line 5144 "Parser/parser.cc" /* yacc.c:1646  */
    57475144    break;
    57485145
    57495146  case 158:
    5750 
    5751 /* Line 1806 of yacc.c  */
    5752 #line 766 "parser.yy"
    5753     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5147#line 765 "parser.yy" /* yacc.c:1646  */
     5148    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
     5149#line 5150 "Parser/parser.cc" /* yacc.c:1646  */
    57545150    break;
    57555151
    57565152  case 159:
    5757 
    5758 /* Line 1806 of yacc.c  */
    5759 #line 768 "parser.yy"
    5760     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5153#line 767 "parser.yy" /* yacc.c:1646  */
     5154    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5155#line 5156 "Parser/parser.cc" /* yacc.c:1646  */
    57615156    break;
    57625157
    57635158  case 160:
    5764 
    5765 /* Line 1806 of yacc.c  */
    5766 #line 770 "parser.yy"
    5767     {
    5768                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5159#line 769 "parser.yy" /* yacc.c:1646  */
     5160    {
     5161                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    57695162                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    57705163                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    57725165                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57735166                        // statement.
    5774                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5167                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57755168                }
     5169#line 5170 "Parser/parser.cc" /* yacc.c:1646  */
    57765170    break;
    57775171
    57785172  case 161:
    5779 
    5780 /* Line 1806 of yacc.c  */
    5781 #line 780 "parser.yy"
    5782     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5173#line 779 "parser.yy" /* yacc.c:1646  */
     5174    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5175#line 5176 "Parser/parser.cc" /* yacc.c:1646  */
    57835176    break;
    57845177
    57855178  case 162:
    5786 
    5787 /* Line 1806 of yacc.c  */
    5788 #line 782 "parser.yy"
    5789     {
    5790                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    5791                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5179#line 781 "parser.yy" /* yacc.c:1646  */
     5180    {
     5181                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5182                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57925183                }
     5184#line 5185 "Parser/parser.cc" /* yacc.c:1646  */
    57935185    break;
    57945186
    57955187  case 163:
    5796 
    5797 /* Line 1806 of yacc.c  */
    5798 #line 792 "parser.yy"
    5799     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5188#line 791 "parser.yy" /* yacc.c:1646  */
     5189    { (yyval.en) = (yyvsp[0].en); }
     5190#line 5191 "Parser/parser.cc" /* yacc.c:1646  */
    58005191    break;
    58015192
    58025193  case 164:
    5803 
    5804 /* Line 1806 of yacc.c  */
    5805 #line 794 "parser.yy"
    5806     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5194#line 793 "parser.yy" /* yacc.c:1646  */
     5195    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5196#line 5197 "Parser/parser.cc" /* yacc.c:1646  */
    58075197    break;
    58085198
    58095199  case 166:
    5810 
    5811 /* Line 1806 of yacc.c  */
    5812 #line 799 "parser.yy"
    5813     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5200#line 798 "parser.yy" /* yacc.c:1646  */
     5201    { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
     5202#line 5203 "Parser/parser.cc" /* yacc.c:1646  */
    58145203    break;
    58155204
    58165205  case 167:
    5817 
    5818 /* Line 1806 of yacc.c  */
    5819 #line 801 "parser.yy"
    5820     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5206#line 800 "parser.yy" /* yacc.c:1646  */
     5207    { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
     5208#line 5209 "Parser/parser.cc" /* yacc.c:1646  */
    58215209    break;
    58225210
    58235211  case 168:
    5824 
    5825 /* Line 1806 of yacc.c  */
    5826 #line 805 "parser.yy"
    5827     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5212#line 804 "parser.yy" /* yacc.c:1646  */
     5213    { (yyval.sn) = (yyvsp[-1].sn); }
     5214#line 5215 "Parser/parser.cc" /* yacc.c:1646  */
    58285215    break;
    58295216
    58305217  case 169:
    5831 
    5832 /* Line 1806 of yacc.c  */
    5833 #line 806 "parser.yy"
     5218#line 805 "parser.yy" /* yacc.c:1646  */
    58345219    { (yyval.sn) = new StatementNode( build_default() ); }
     5220#line 5221 "Parser/parser.cc" /* yacc.c:1646  */
    58355221    break;
    58365222
    58375223  case 171:
    5838 
    5839 /* Line 1806 of yacc.c  */
    5840 #line 812 "parser.yy"
    5841     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5224#line 811 "parser.yy" /* yacc.c:1646  */
     5225    { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
     5226#line 5227 "Parser/parser.cc" /* yacc.c:1646  */
    58425227    break;
    58435228
    58445229  case 172:
    5845 
    5846 /* Line 1806 of yacc.c  */
    5847 #line 816 "parser.yy"
    5848     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5230#line 815 "parser.yy" /* yacc.c:1646  */
     5231    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5232#line 5233 "Parser/parser.cc" /* yacc.c:1646  */
    58495233    break;
    58505234
    58515235  case 173:
    5852 
    5853 /* Line 1806 of yacc.c  */
    5854 #line 821 "parser.yy"
    5855     { (yyval.sn) = nullptr; }
     5236#line 820 "parser.yy" /* yacc.c:1646  */
     5237    { (yyval.sn) = 0; }
     5238#line 5239 "Parser/parser.cc" /* yacc.c:1646  */
    58565239    break;
    58575240
    58585241  case 175:
    5859 
    5860 /* Line 1806 of yacc.c  */
    5861 #line 827 "parser.yy"
    5862     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5242#line 826 "parser.yy" /* yacc.c:1646  */
     5243    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5244#line 5245 "Parser/parser.cc" /* yacc.c:1646  */
    58635245    break;
    58645246
    58655247  case 176:
    5866 
    5867 /* Line 1806 of yacc.c  */
    5868 #line 829 "parser.yy"
    5869     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5248#line 828 "parser.yy" /* yacc.c:1646  */
     5249    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
     5250#line 5251 "Parser/parser.cc" /* yacc.c:1646  */
    58705251    break;
    58715252
    58725253  case 177:
    5873 
    5874 /* Line 1806 of yacc.c  */
    5875 #line 834 "parser.yy"
    5876     { (yyval.sn) = nullptr; }
     5254#line 833 "parser.yy" /* yacc.c:1646  */
     5255    { (yyval.sn) = 0; }
     5256#line 5257 "Parser/parser.cc" /* yacc.c:1646  */
    58775257    break;
    58785258
    58795259  case 179:
    5880 
    5881 /* Line 1806 of yacc.c  */
    5882 #line 840 "parser.yy"
    5883     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5260#line 839 "parser.yy" /* yacc.c:1646  */
     5261    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
     5262#line 5263 "Parser/parser.cc" /* yacc.c:1646  */
    58845263    break;
    58855264
    58865265  case 180:
    5887 
    5888 /* Line 1806 of yacc.c  */
    5889 #line 842 "parser.yy"
    5890     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5266#line 841 "parser.yy" /* yacc.c:1646  */
     5267    { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
     5268#line 5269 "Parser/parser.cc" /* yacc.c:1646  */
    58915269    break;
    58925270
    58935271  case 181:
    5894 
    5895 /* Line 1806 of yacc.c  */
    5896 #line 844 "parser.yy"
    5897     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5272#line 843 "parser.yy" /* yacc.c:1646  */
     5273    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
     5274#line 5275 "Parser/parser.cc" /* yacc.c:1646  */
    58985275    break;
    58995276
    59005277  case 182:
    5901 
    5902 /* Line 1806 of yacc.c  */
    5903 #line 846 "parser.yy"
    5904     { (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) ) ) ) ) ) ); }
     5278#line 845 "parser.yy" /* yacc.c:1646  */
     5279    { (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) ) ) ) ) ) ); }
     5280#line 5281 "Parser/parser.cc" /* yacc.c:1646  */
    59055281    break;
    59065282
    59075283  case 183:
    5908 
    5909 /* Line 1806 of yacc.c  */
    5910 #line 851 "parser.yy"
     5284#line 850 "parser.yy" /* yacc.c:1646  */
    59115285    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5286#line 5287 "Parser/parser.cc" /* yacc.c:1646  */
    59125287    break;
    59135288
    59145289  case 185:
    5915 
    5916 /* Line 1806 of yacc.c  */
    5917 #line 857 "parser.yy"
    5918     { (yyval.sn) = nullptr; }
     5290#line 856 "parser.yy" /* yacc.c:1646  */
     5291    { (yyval.sn) = 0; }
     5292#line 5293 "Parser/parser.cc" /* yacc.c:1646  */
    59195293    break;
    59205294
    59215295  case 186:
    5922 
    5923 /* Line 1806 of yacc.c  */
    5924 #line 859 "parser.yy"
    5925     { (yyval.sn) = nullptr; }
     5296#line 858 "parser.yy" /* yacc.c:1646  */
     5297    { (yyval.sn) = 0; }
     5298#line 5299 "Parser/parser.cc" /* yacc.c:1646  */
    59265299    break;
    59275300
    59285301  case 187:
    5929 
    5930 /* Line 1806 of yacc.c  */
    5931 #line 864 "parser.yy"
    5932     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5302#line 863 "parser.yy" /* yacc.c:1646  */
     5303    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5304#line 5305 "Parser/parser.cc" /* yacc.c:1646  */
    59335305    break;
    59345306
    59355307  case 188:
    5936 
    5937 /* Line 1806 of yacc.c  */
    5938 #line 866 "parser.yy"
    5939     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     5308#line 865 "parser.yy" /* yacc.c:1646  */
     5309    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); }
     5310#line 5311 "Parser/parser.cc" /* yacc.c:1646  */
    59405311    break;
    59415312
    59425313  case 189:
    5943 
    5944 /* Line 1806 of yacc.c  */
    5945 #line 868 "parser.yy"
    5946     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5314#line 867 "parser.yy" /* yacc.c:1646  */
     5315    { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
     5316#line 5317 "Parser/parser.cc" /* yacc.c:1646  */
    59475317    break;
    59485318
    59495319  case 190:
    5950 
    5951 /* Line 1806 of yacc.c  */
    5952 #line 873 "parser.yy"
    5953     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5320#line 872 "parser.yy" /* yacc.c:1646  */
     5321    { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5322#line 5323 "Parser/parser.cc" /* yacc.c:1646  */
    59545323    break;
    59555324
    59565325  case 191:
    5957 
    5958 /* Line 1806 of yacc.c  */
    5959 #line 875 "parser.yy"
    5960     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5326#line 874 "parser.yy" /* yacc.c:1646  */
     5327    { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5328#line 5329 "Parser/parser.cc" /* yacc.c:1646  */
    59615329    break;
    59625330
    59635331  case 192:
    5964 
    5965 /* Line 1806 of yacc.c  */
    5966 #line 880 "parser.yy"
    5967     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5332#line 879 "parser.yy" /* yacc.c:1646  */
     5333    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); }
     5334#line 5335 "Parser/parser.cc" /* yacc.c:1646  */
    59685335    break;
    59695336
    59705337  case 193:
    5971 
    5972 /* Line 1806 of yacc.c  */
    5973 #line 884 "parser.yy"
    5974     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5338#line 883 "parser.yy" /* yacc.c:1646  */
     5339    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
     5340#line 5341 "Parser/parser.cc" /* yacc.c:1646  */
    59755341    break;
    59765342
    59775343  case 194:
    5978 
    5979 /* Line 1806 of yacc.c  */
    5980 #line 887 "parser.yy"
     5344#line 886 "parser.yy" /* yacc.c:1646  */
    59815345    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5346#line 5347 "Parser/parser.cc" /* yacc.c:1646  */
    59825347    break;
    59835348
    59845349  case 195:
    5985 
    5986 /* Line 1806 of yacc.c  */
    5987 #line 891 "parser.yy"
    5988     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     5350#line 890 "parser.yy" /* yacc.c:1646  */
     5351    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); }
     5352#line 5353 "Parser/parser.cc" /* yacc.c:1646  */
    59895353    break;
    59905354
    59915355  case 196:
    5992 
    5993 /* Line 1806 of yacc.c  */
    5994 #line 894 "parser.yy"
     5356#line 893 "parser.yy" /* yacc.c:1646  */
    59955357    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5358#line 5359 "Parser/parser.cc" /* yacc.c:1646  */
    59965359    break;
    59975360
    59985361  case 197:
    5999 
    6000 /* Line 1806 of yacc.c  */
    6001 #line 898 "parser.yy"
    6002     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     5362#line 897 "parser.yy" /* yacc.c:1646  */
     5363    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); }
     5364#line 5365 "Parser/parser.cc" /* yacc.c:1646  */
    60035365    break;
    60045366
    60055367  case 198:
    6006 
    6007 /* Line 1806 of yacc.c  */
    6008 #line 900 "parser.yy"
    6009     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5368#line 899 "parser.yy" /* yacc.c:1646  */
     5369    { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
     5370#line 5371 "Parser/parser.cc" /* yacc.c:1646  */
    60105371    break;
    60115372
    60125373  case 199:
    6013 
    6014 /* Line 1806 of yacc.c  */
    6015 #line 902 "parser.yy"
    6016     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5374#line 901 "parser.yy" /* yacc.c:1646  */
     5375    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5376#line 5377 "Parser/parser.cc" /* yacc.c:1646  */
    60175377    break;
    60185378
    60195379  case 200:
    6020 
    6021 /* Line 1806 of yacc.c  */
    6022 #line 904 "parser.yy"
    6023     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5380#line 903 "parser.yy" /* yacc.c:1646  */
     5381    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5382#line 5383 "Parser/parser.cc" /* yacc.c:1646  */
    60245383    break;
    60255384
    60265385  case 201:
    6027 
    6028 /* Line 1806 of yacc.c  */
    6029 #line 906 "parser.yy"
    6030     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     5386#line 905 "parser.yy" /* yacc.c:1646  */
     5387    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
     5388#line 5389 "Parser/parser.cc" /* yacc.c:1646  */
    60315389    break;
    60325390
    60335391  case 202:
    6034 
    6035 /* Line 1806 of yacc.c  */
    6036 #line 911 "parser.yy"
    6037     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     5392#line 910 "parser.yy" /* yacc.c:1646  */
     5393    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
     5394#line 5395 "Parser/parser.cc" /* yacc.c:1646  */
    60385395    break;
    60395396
    60405397  case 203:
    6041 
    6042 /* Line 1806 of yacc.c  */
    6043 #line 913 "parser.yy"
    6044     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     5398#line 912 "parser.yy" /* yacc.c:1646  */
     5399    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
     5400#line 5401 "Parser/parser.cc" /* yacc.c:1646  */
    60455401    break;
    60465402
    60475403  case 204:
    6048 
    6049 /* Line 1806 of yacc.c  */
    6050 #line 915 "parser.yy"
    6051     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     5404#line 914 "parser.yy" /* yacc.c:1646  */
     5405    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
     5406#line 5407 "Parser/parser.cc" /* yacc.c:1646  */
    60525407    break;
    60535408
    60545409  case 206:
    6055 
    6056 /* Line 1806 of yacc.c  */
    6057 #line 922 "parser.yy"
    6058     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5410#line 921 "parser.yy" /* yacc.c:1646  */
     5411    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5412#line 5413 "Parser/parser.cc" /* yacc.c:1646  */
    60595413    break;
    60605414
    60615415  case 207:
    6062 
    6063 /* Line 1806 of yacc.c  */
    6064 #line 924 "parser.yy"
    6065     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5416#line 923 "parser.yy" /* yacc.c:1646  */
     5417    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5418#line 5419 "Parser/parser.cc" /* yacc.c:1646  */
    60665419    break;
    60675420
    60685421  case 208:
    6069 
    6070 /* Line 1806 of yacc.c  */
    6071 #line 926 "parser.yy"
    6072     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5422#line 925 "parser.yy" /* yacc.c:1646  */
     5423    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5424#line 5425 "Parser/parser.cc" /* yacc.c:1646  */
    60735425    break;
    60745426
    60755427  case 209:
    6076 
    6077 /* Line 1806 of yacc.c  */
    6078 #line 928 "parser.yy"
    6079     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5428#line 927 "parser.yy" /* yacc.c:1646  */
     5429    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5430#line 5431 "Parser/parser.cc" /* yacc.c:1646  */
    60805431    break;
    60815432
    60825433  case 210:
    6083 
    6084 /* Line 1806 of yacc.c  */
    6085 #line 933 "parser.yy"
    6086     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5434#line 932 "parser.yy" /* yacc.c:1646  */
     5435    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5436#line 5437 "Parser/parser.cc" /* yacc.c:1646  */
    60875437    break;
    60885438
    60895439  case 211:
    6090 
    6091 /* Line 1806 of yacc.c  */
    6092 #line 935 "parser.yy"
    6093     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5440#line 934 "parser.yy" /* yacc.c:1646  */
     5441    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5442#line 5443 "Parser/parser.cc" /* yacc.c:1646  */
    60945443    break;
    60955444
    60965445  case 212:
    6097 
    6098 /* Line 1806 of yacc.c  */
    6099 #line 937 "parser.yy"
    6100     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5446#line 936 "parser.yy" /* yacc.c:1646  */
     5447    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5448#line 5449 "Parser/parser.cc" /* yacc.c:1646  */
    61015449    break;
    61025450
    61035451  case 213:
    6104 
    6105 /* Line 1806 of yacc.c  */
    6106 #line 939 "parser.yy"
    6107     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5452#line 938 "parser.yy" /* yacc.c:1646  */
     5453    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5454#line 5455 "Parser/parser.cc" /* yacc.c:1646  */
    61085455    break;
    61095456
    61105457  case 214:
    6111 
    6112 /* Line 1806 of yacc.c  */
    6113 #line 944 "parser.yy"
    6114     {
    6115                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     5458#line 943 "parser.yy" /* yacc.c:1646  */
     5459    {
     5460                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
    61165461                }
     5462#line 5463 "Parser/parser.cc" /* yacc.c:1646  */
    61175463    break;
    61185464
    61195465  case 216:
    6120 
    6121 /* Line 1806 of yacc.c  */
    6122 #line 957 "parser.yy"
     5466#line 956 "parser.yy" /* yacc.c:1646  */
    61235467    {
    61245468                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6125                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     5469                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    61265470                }
     5471#line 5472 "Parser/parser.cc" /* yacc.c:1646  */
    61275472    break;
    61285473
    61295474  case 217:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 962 "parser.yy"
    6133     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     5475#line 961 "parser.yy" /* yacc.c:1646  */
     5476    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     5477#line 5478 "Parser/parser.cc" /* yacc.c:1646  */
    61345478    break;
    61355479
    61365480  case 218:
    6137 
    6138 /* Line 1806 of yacc.c  */
    6139 #line 964 "parser.yy"
     5481#line 963 "parser.yy" /* yacc.c:1646  */
    61405482    {
    61415483                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6142                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
     5484                        (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
    61435485                }
     5486#line 5487 "Parser/parser.cc" /* yacc.c:1646  */
    61445487    break;
    61455488
    61465489  case 220:
    6147 
    6148 /* Line 1806 of yacc.c  */
    6149 #line 973 "parser.yy"
    6150     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     5490#line 972 "parser.yy" /* yacc.c:1646  */
     5491    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
     5492#line 5493 "Parser/parser.cc" /* yacc.c:1646  */
    61515493    break;
    61525494
    61535495  case 221:
    6154 
    6155 /* Line 1806 of yacc.c  */
    6156 #line 975 "parser.yy"
    6157     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     5496#line 974 "parser.yy" /* yacc.c:1646  */
     5497    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
     5498#line 5499 "Parser/parser.cc" /* yacc.c:1646  */
    61585499    break;
    61595500
    61605501  case 222:
    6161 
    6162 /* Line 1806 of yacc.c  */
    6163 #line 977 "parser.yy"
    6164     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     5502#line 976 "parser.yy" /* yacc.c:1646  */
     5503    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5504#line 5505 "Parser/parser.cc" /* yacc.c:1646  */
    61655505    break;
    61665506
    61675507  case 223:
    6168 
    6169 /* Line 1806 of yacc.c  */
    6170 #line 979 "parser.yy"
    6171     { (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) ) ); }
     5508#line 978 "parser.yy" /* yacc.c:1646  */
     5509    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5510#line 5511 "Parser/parser.cc" /* yacc.c:1646  */
    61725511    break;
    61735512
    61745513  case 224:
    6175 
    6176 /* Line 1806 of yacc.c  */
    6177 #line 981 "parser.yy"
    6178     { (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) ) ); }
     5514#line 980 "parser.yy" /* yacc.c:1646  */
     5515    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
     5516#line 5517 "Parser/parser.cc" /* yacc.c:1646  */
    61795517    break;
    61805518
    61815519  case 225:
    6182 
    6183 /* Line 1806 of yacc.c  */
    6184 #line 986 "parser.yy"
     5520#line 985 "parser.yy" /* yacc.c:1646  */
    61855521    { (yyval.flag) = false; }
     5522#line 5523 "Parser/parser.cc" /* yacc.c:1646  */
    61865523    break;
    61875524
    61885525  case 226:
    6189 
    6190 /* Line 1806 of yacc.c  */
    6191 #line 988 "parser.yy"
     5526#line 987 "parser.yy" /* yacc.c:1646  */
    61925527    { (yyval.flag) = true; }
     5528#line 5529 "Parser/parser.cc" /* yacc.c:1646  */
    61935529    break;
    61945530
    61955531  case 227:
    6196 
    6197 /* Line 1806 of yacc.c  */
    6198 #line 993 "parser.yy"
    6199     { (yyval.en) = nullptr; }
     5532#line 992 "parser.yy" /* yacc.c:1646  */
     5533    { (yyval.en) = 0; }
     5534#line 5535 "Parser/parser.cc" /* yacc.c:1646  */
    62005535    break;
    62015536
    62025537  case 230:
    6203 
    6204 /* Line 1806 of yacc.c  */
    6205 #line 1000 "parser.yy"
    6206     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5538#line 999 "parser.yy" /* yacc.c:1646  */
     5539    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5540#line 5541 "Parser/parser.cc" /* yacc.c:1646  */
    62075541    break;
    62085542
    62095543  case 231:
    6210 
    6211 /* Line 1806 of yacc.c  */
    6212 #line 1005 "parser.yy"
    6213     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     5544#line 1004 "parser.yy" /* yacc.c:1646  */
     5545    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5546#line 5547 "Parser/parser.cc" /* yacc.c:1646  */
    62145547    break;
    62155548
    62165549  case 232:
    6217 
    6218 /* Line 1806 of yacc.c  */
    6219 #line 1007 "parser.yy"
    6220     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     5550#line 1006 "parser.yy" /* yacc.c:1646  */
     5551    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5552#line 5553 "Parser/parser.cc" /* yacc.c:1646  */
    62215553    break;
    62225554
    62235555  case 233:
    6224 
    6225 /* Line 1806 of yacc.c  */
    6226 #line 1012 "parser.yy"
    6227     { (yyval.en) = nullptr; }
     5556#line 1011 "parser.yy" /* yacc.c:1646  */
     5557    { (yyval.en) = 0; }
     5558#line 5559 "Parser/parser.cc" /* yacc.c:1646  */
    62285559    break;
    62295560
    62305561  case 234:
    6231 
    6232 /* Line 1806 of yacc.c  */
    6233 #line 1014 "parser.yy"
    6234     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5562#line 1013 "parser.yy" /* yacc.c:1646  */
     5563    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     5564#line 5565 "Parser/parser.cc" /* yacc.c:1646  */
    62355565    break;
    62365566
    62375567  case 235:
    6238 
    6239 /* Line 1806 of yacc.c  */
    6240 #line 1016 "parser.yy"
    6241     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     5568#line 1015 "parser.yy" /* yacc.c:1646  */
     5569    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
     5570#line 5571 "Parser/parser.cc" /* yacc.c:1646  */
    62425571    break;
    62435572
    62445573  case 236:
    6245 
    6246 /* Line 1806 of yacc.c  */
    6247 #line 1021 "parser.yy"
    6248     {
    6249                         (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
    6250                         delete (yyvsp[(1) - (1)].tok);                                                                  // allocated by lexer
     5574#line 1020 "parser.yy" /* yacc.c:1646  */
     5575    {
     5576                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) );
     5577                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62515578                }
     5579#line 5580 "Parser/parser.cc" /* yacc.c:1646  */
    62525580    break;
    62535581
    62545582  case 237:
    6255 
    6256 /* Line 1806 of yacc.c  */
    6257 #line 1026 "parser.yy"
    6258     {
    6259                         (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
    6260                         delete (yyvsp[(3) - (3)].tok);                                                                  // allocated by lexer
     5583#line 1025 "parser.yy" /* yacc.c:1646  */
     5584    {
     5585                        (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );
     5586                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62615587                }
     5588#line 5589 "Parser/parser.cc" /* yacc.c:1646  */
    62625589    break;
    62635590
    62645591  case 238:
    6265 
    6266 /* Line 1806 of yacc.c  */
    6267 #line 1036 "parser.yy"
    6268     { (yyval.decl) = nullptr; }
     5592#line 1035 "parser.yy" /* yacc.c:1646  */
     5593    { (yyval.decl) = 0; }
     5594#line 5595 "Parser/parser.cc" /* yacc.c:1646  */
    62695595    break;
    62705596
    62715597  case 241:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 1043 "parser.yy"
    6275     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5598#line 1042 "parser.yy" /* yacc.c:1646  */
     5599    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5600#line 5601 "Parser/parser.cc" /* yacc.c:1646  */
    62765601    break;
    62775602
    62785603  case 242:
    6279 
    6280 /* Line 1806 of yacc.c  */
    6281 #line 1048 "parser.yy"
    6282     { (yyval.decl) = nullptr; }
     5604#line 1047 "parser.yy" /* yacc.c:1646  */
     5605    { (yyval.decl) = 0; }
     5606#line 5607 "Parser/parser.cc" /* yacc.c:1646  */
    62835607    break;
    62845608
    62855609  case 245:
    6286 
    6287 /* Line 1806 of yacc.c  */
    6288 #line 1055 "parser.yy"
    6289     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5610#line 1054 "parser.yy" /* yacc.c:1646  */
     5611    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5612#line 5613 "Parser/parser.cc" /* yacc.c:1646  */
    62905613    break;
    62915614
    62925615  case 250:
    6293 
    6294 /* Line 1806 of yacc.c  */
    6295 #line 1069 "parser.yy"
     5616#line 1068 "parser.yy" /* yacc.c:1646  */
    62965617    {}
     5618#line 5619 "Parser/parser.cc" /* yacc.c:1646  */
    62975619    break;
    62985620
    62995621  case 251:
    6300 
    6301 /* Line 1806 of yacc.c  */
    6302 #line 1070 "parser.yy"
     5622#line 1069 "parser.yy" /* yacc.c:1646  */
    63035623    {}
     5624#line 5625 "Parser/parser.cc" /* yacc.c:1646  */
    63045625    break;
    63055626
    63065627  case 259:
    6307 
    6308 /* Line 1806 of yacc.c  */
    6309 #line 1099 "parser.yy"
     5628#line 1098 "parser.yy" /* yacc.c:1646  */
    63105629    {
    63115630                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6312                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     5631                        (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
    63135632                }
     5633#line 5634 "Parser/parser.cc" /* yacc.c:1646  */
    63145634    break;
    63155635
    63165636  case 260:
    6317 
    6318 /* Line 1806 of yacc.c  */
    6319 #line 1106 "parser.yy"
     5637#line 1105 "parser.yy" /* yacc.c:1646  */
    63205638    {
    63215639                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6322                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     5640                        (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
    63235641                }
     5642#line 5643 "Parser/parser.cc" /* yacc.c:1646  */
    63245643    break;
    63255644
    63265645  case 261:
    6327 
    6328 /* Line 1806 of yacc.c  */
    6329 #line 1111 "parser.yy"
    6330     {
    6331                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6332                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
     5646#line 1110 "parser.yy" /* yacc.c:1646  */
     5647    {
     5648                        typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
     5649                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
    63335650                }
     5651#line 5652 "Parser/parser.cc" /* yacc.c:1646  */
    63345652    break;
    63355653
    63365654  case 262:
    6337 
    6338 /* Line 1806 of yacc.c  */
    6339 #line 1121 "parser.yy"
    6340     {
    6341                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6342                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].constant) );
     5655#line 1120 "parser.yy" /* yacc.c:1646  */
     5656    {
     5657                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5658                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63435659                }
     5660#line 5661 "Parser/parser.cc" /* yacc.c:1646  */
    63445661    break;
    63455662
    63465663  case 263:
    6347 
    6348 /* Line 1806 of yacc.c  */
    6349 #line 1126 "parser.yy"
    6350     {
    6351                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6352                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].constant) );
     5664#line 1125 "parser.yy" /* yacc.c:1646  */
     5665    {
     5666                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5667                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63535668                }
     5669#line 5670 "Parser/parser.cc" /* yacc.c:1646  */
    63545670    break;
    63555671
    63565672  case 264:
    6357 
    6358 /* Line 1806 of yacc.c  */
    6359 #line 1131 "parser.yy"
    6360     {
    6361                         typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
    6362                         (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) )->addAsmName( (yyvsp[(4) - (4)].constant) );
     5673#line 1130 "parser.yy" /* yacc.c:1646  */
     5674    {
     5675                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5676                        (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
    63635677                }
     5678#line 5679 "Parser/parser.cc" /* yacc.c:1646  */
    63645679    break;
    63655680
    63665681  case 265:
    6367 
    6368 /* Line 1806 of yacc.c  */
    6369 #line 1139 "parser.yy"
     5682#line 1138 "parser.yy" /* yacc.c:1646  */
    63705683    {
    63715684                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6372                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     5685                        (yyval.decl) = (yyvsp[0].decl);
    63735686                }
     5687#line 5688 "Parser/parser.cc" /* yacc.c:1646  */
    63745688    break;
    63755689
    63765690  case 266:
    6377 
    6378 /* Line 1806 of yacc.c  */
    6379 #line 1144 "parser.yy"
     5691#line 1143 "parser.yy" /* yacc.c:1646  */
    63805692    {
    63815693                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6382                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5694                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63835695                }
     5696#line 5697 "Parser/parser.cc" /* yacc.c:1646  */
    63845697    break;
    63855698
    63865699  case 267:
    6387 
    6388 /* Line 1806 of yacc.c  */
    6389 #line 1149 "parser.yy"
     5700#line 1148 "parser.yy" /* yacc.c:1646  */
    63905701    {
    63915702                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6392                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5703                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63935704                }
     5705#line 5706 "Parser/parser.cc" /* yacc.c:1646  */
    63945706    break;
    63955707
    63965708  case 268:
    6397 
    6398 /* Line 1806 of yacc.c  */
    6399 #line 1154 "parser.yy"
     5709#line 1153 "parser.yy" /* yacc.c:1646  */
    64005710    {
    64015711                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6402                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
     5712                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
    64035713                }
     5714#line 5715 "Parser/parser.cc" /* yacc.c:1646  */
    64045715    break;
    64055716
    64065717  case 269:
    6407 
    6408 /* Line 1806 of yacc.c  */
    6409 #line 1159 "parser.yy"
    6410     {
    6411                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    6412                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5718#line 1158 "parser.yy" /* yacc.c:1646  */
     5719    {
     5720                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
     5721                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64135722                }
     5723#line 5724 "Parser/parser.cc" /* yacc.c:1646  */
    64145724    break;
    64155725
    64165726  case 270:
    6417 
    6418 /* Line 1806 of yacc.c  */
    6419 #line 1190 "parser.yy"
    6420     {
    6421                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5727#line 1189 "parser.yy" /* yacc.c:1646  */
     5728    {
     5729                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64225730                }
     5731#line 5732 "Parser/parser.cc" /* yacc.c:1646  */
    64235732    break;
    64245733
    64255734  case 271:
    6426 
    6427 /* Line 1806 of yacc.c  */
    6428 #line 1194 "parser.yy"
    6429     {
    6430                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5735#line 1193 "parser.yy" /* yacc.c:1646  */
     5736    {
     5737                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64315738                }
     5739#line 5740 "Parser/parser.cc" /* yacc.c:1646  */
    64325740    break;
    64335741
    64345742  case 272:
    6435 
    6436 /* Line 1806 of yacc.c  */
    6437 #line 1201 "parser.yy"
    6438     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     5743#line 1200 "parser.yy" /* yacc.c:1646  */
     5744    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     5745#line 5746 "Parser/parser.cc" /* yacc.c:1646  */
    64395746    break;
    64405747
    64415748  case 273:
    6442 
    6443 /* Line 1806 of yacc.c  */
    6444 #line 1205 "parser.yy"
    6445     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     5749#line 1204 "parser.yy" /* yacc.c:1646  */
     5750    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
     5751#line 5752 "Parser/parser.cc" /* yacc.c:1646  */
    64465752    break;
    64475753
    64485754  case 274:
    6449 
    6450 /* Line 1806 of yacc.c  */
    6451 #line 1210 "parser.yy"
     5755#line 1209 "parser.yy" /* yacc.c:1646  */
    64525756    {
    64535757                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6454                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5758                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64555759                }
     5760#line 5761 "Parser/parser.cc" /* yacc.c:1646  */
    64565761    break;
    64575762
    64585763  case 275:
    6459 
    6460 /* Line 1806 of yacc.c  */
    6461 #line 1215 "parser.yy"
     5764#line 1214 "parser.yy" /* yacc.c:1646  */
    64625765    {
    64635766                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6464                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5767                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64655768                }
     5769#line 5770 "Parser/parser.cc" /* yacc.c:1646  */
    64665770    break;
    64675771
    64685772  case 276:
    6469 
    6470 /* Line 1806 of yacc.c  */
    6471 #line 1220 "parser.yy"
    6472     {
    6473                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
    6474                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5773#line 1219 "parser.yy" /* yacc.c:1646  */
     5774    {
     5775                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     5776                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64755777                }
     5778#line 5779 "Parser/parser.cc" /* yacc.c:1646  */
    64765779    break;
    64775780
    64785781  case 277:
    6479 
    6480 /* Line 1806 of yacc.c  */
    6481 #line 1231 "parser.yy"
     5782#line 1230 "parser.yy" /* yacc.c:1646  */
    64825783    {
    64835784                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6484                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
     5785                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
    64855786                }
     5787#line 5788 "Parser/parser.cc" /* yacc.c:1646  */
    64865788    break;
    64875789
    64885790  case 278:
    6489 
    6490 /* Line 1806 of yacc.c  */
    6491 #line 1236 "parser.yy"
     5791#line 1235 "parser.yy" /* yacc.c:1646  */
    64925792    {
    64935793                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6494                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
     5794                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
    64955795                }
     5796#line 5797 "Parser/parser.cc" /* yacc.c:1646  */
    64965797    break;
    64975798
    64985799  case 279:
    6499 
    6500 /* Line 1806 of yacc.c  */
    6501 #line 1241 "parser.yy"
     5800#line 1240 "parser.yy" /* yacc.c:1646  */
    65025801    {
    65035802                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6504                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
     5803                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
    65055804                }
     5805#line 5806 "Parser/parser.cc" /* yacc.c:1646  */
    65065806    break;
    65075807
    65085808  case 280:
    6509 
    6510 /* Line 1806 of yacc.c  */
    6511 #line 1246 "parser.yy"
     5809#line 1245 "parser.yy" /* yacc.c:1646  */
    65125810    {
    65135811                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6514                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
     5812                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
    65155813                }
     5814#line 5815 "Parser/parser.cc" /* yacc.c:1646  */
    65165815    break;
    65175816
    65185817  case 281:
    6519 
    6520 /* Line 1806 of yacc.c  */
    6521 #line 1251 "parser.yy"
     5818#line 1250 "parser.yy" /* yacc.c:1646  */
    65225819    {
    65235820                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6524                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
     5821                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
    65255822                }
     5823#line 5824 "Parser/parser.cc" /* yacc.c:1646  */
    65265824    break;
    65275825
    65285826  case 282:
    6529 
    6530 /* Line 1806 of yacc.c  */
    6531 #line 1260 "parser.yy"
    6532     {
    6533                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     5827#line 1259 "parser.yy" /* yacc.c:1646  */
     5828    {
     5829                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65345830                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65355831                }
     5832#line 5833 "Parser/parser.cc" /* yacc.c:1646  */
    65365833    break;
    65375834
    65385835  case 283:
    6539 
    6540 /* Line 1806 of yacc.c  */
    6541 #line 1265 "parser.yy"
    6542     {
    6543                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     5836#line 1264 "parser.yy" /* yacc.c:1646  */
     5837    {
     5838                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65445839                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65455840                }
     5841#line 5842 "Parser/parser.cc" /* yacc.c:1646  */
    65465842    break;
    65475843
    65485844  case 288:
    6549 
    6550 /* Line 1806 of yacc.c  */
    6551 #line 1282 "parser.yy"
     5845#line 1281 "parser.yy" /* yacc.c:1646  */
    65525846    {
    65535847                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6554                         (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addAsmName( (yyvsp[(3) - (4)].constant) )->addInitializer( (yyvsp[(4) - (4)].in) );
     5848                        (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
    65555849                }
     5850#line 5851 "Parser/parser.cc" /* yacc.c:1646  */
    65565851    break;
    65575852
    65585853  case 289:
    6559 
    6560 /* Line 1806 of yacc.c  */
    6561 #line 1287 "parser.yy"
     5854#line 1286 "parser.yy" /* yacc.c:1646  */
    65625855    {
    65635856                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6564                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addAsmName( (yyvsp[(5) - (6)].constant) )->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
     5857                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
    65655858                }
     5859#line 5860 "Parser/parser.cc" /* yacc.c:1646  */
    65665860    break;
    65675861
    65685862  case 298:
    6569 
    6570 /* Line 1806 of yacc.c  */
    6571 #line 1309 "parser.yy"
    6572     { (yyval.decl) = nullptr; }
     5863#line 1308 "parser.yy" /* yacc.c:1646  */
     5864    { (yyval.decl) = 0; }
     5865#line 5866 "Parser/parser.cc" /* yacc.c:1646  */
    65735866    break;
    65745867
    65755868  case 301:
    6576 
    6577 /* Line 1806 of yacc.c  */
    6578 #line 1321 "parser.yy"
    6579     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5869#line 1320 "parser.yy" /* yacc.c:1646  */
     5870    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5871#line 5872 "Parser/parser.cc" /* yacc.c:1646  */
    65805872    break;
    65815873
    65825874  case 304:
    6583 
    6584 /* Line 1806 of yacc.c  */
    6585 #line 1332 "parser.yy"
     5875#line 1331 "parser.yy" /* yacc.c:1646  */
    65865876    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5877#line 5878 "Parser/parser.cc" /* yacc.c:1646  */
    65875878    break;
    65885879
    65895880  case 305:
    6590 
    6591 /* Line 1806 of yacc.c  */
    6592 #line 1334 "parser.yy"
     5881#line 1333 "parser.yy" /* yacc.c:1646  */
    65935882    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5883#line 5884 "Parser/parser.cc" /* yacc.c:1646  */
    65945884    break;
    65955885
    65965886  case 306:
    6597 
    6598 /* Line 1806 of yacc.c  */
    6599 #line 1336 "parser.yy"
     5887#line 1335 "parser.yy" /* yacc.c:1646  */
    66005888    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5889#line 5890 "Parser/parser.cc" /* yacc.c:1646  */
    66015890    break;
    66025891
    66035892  case 307:
    6604 
    6605 /* Line 1806 of yacc.c  */
    6606 #line 1338 "parser.yy"
     5893#line 1337 "parser.yy" /* yacc.c:1646  */
    66075894    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5895#line 5896 "Parser/parser.cc" /* yacc.c:1646  */
    66085896    break;
    66095897
    66105898  case 308:
    6611 
    6612 /* Line 1806 of yacc.c  */
    6613 #line 1340 "parser.yy"
     5899#line 1339 "parser.yy" /* yacc.c:1646  */
    66145900    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     5901#line 5902 "Parser/parser.cc" /* yacc.c:1646  */
    66155902    break;
    66165903
    66175904  case 309:
    6618 
    6619 /* Line 1806 of yacc.c  */
    6620 #line 1342 "parser.yy"
     5905#line 1341 "parser.yy" /* yacc.c:1646  */
    66215906    {
    66225907                        typedefTable.enterScope();
    66235908                }
     5909#line 5910 "Parser/parser.cc" /* yacc.c:1646  */
    66245910    break;
    66255911
    66265912  case 310:
    6627 
    6628 /* Line 1806 of yacc.c  */
    6629 #line 1346 "parser.yy"
     5913#line 1345 "parser.yy" /* yacc.c:1646  */
    66305914    {
    66315915                        typedefTable.leaveScope();
    6632                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
     5916                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
    66335917                }
     5918#line 5919 "Parser/parser.cc" /* yacc.c:1646  */
    66345919    break;
    66355920
    66365921  case 312:
    6637 
    6638 /* Line 1806 of yacc.c  */
    6639 #line 1355 "parser.yy"
    6640     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5922#line 1354 "parser.yy" /* yacc.c:1646  */
     5923    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5924#line 5925 "Parser/parser.cc" /* yacc.c:1646  */
    66415925    break;
    66425926
    66435927  case 313:
    6644 
    6645 /* Line 1806 of yacc.c  */
    6646 #line 1357 "parser.yy"
    6647     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     5928#line 1356 "parser.yy" /* yacc.c:1646  */
     5929    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     5930#line 5931 "Parser/parser.cc" /* yacc.c:1646  */
    66485931    break;
    66495932
    66505933  case 315:
    6651 
    6652 /* Line 1806 of yacc.c  */
    6653 #line 1368 "parser.yy"
    6654     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5934#line 1367 "parser.yy" /* yacc.c:1646  */
     5935    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5936#line 5937 "Parser/parser.cc" /* yacc.c:1646  */
    66555937    break;
    66565938
    66575939  case 316:
    6658 
    6659 /* Line 1806 of yacc.c  */
    6660 #line 1373 "parser.yy"
     5940#line 1372 "parser.yy" /* yacc.c:1646  */
    66615941    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5942#line 5943 "Parser/parser.cc" /* yacc.c:1646  */
    66625943    break;
    66635944
    66645945  case 317:
    6665 
    6666 /* Line 1806 of yacc.c  */
    6667 #line 1375 "parser.yy"
     5946#line 1374 "parser.yy" /* yacc.c:1646  */
    66685947    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5948#line 5949 "Parser/parser.cc" /* yacc.c:1646  */
    66695949    break;
    66705950
    66715951  case 318:
    6672 
    6673 /* Line 1806 of yacc.c  */
    6674 #line 1377 "parser.yy"
     5952#line 1376 "parser.yy" /* yacc.c:1646  */
    66755953    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5954#line 5955 "Parser/parser.cc" /* yacc.c:1646  */
    66765955    break;
    66775956
    66785957  case 319:
    6679 
    6680 /* Line 1806 of yacc.c  */
    6681 #line 1379 "parser.yy"
     5958#line 1378 "parser.yy" /* yacc.c:1646  */
    66825959    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5960#line 5961 "Parser/parser.cc" /* yacc.c:1646  */
    66835961    break;
    66845962
    66855963  case 320:
    6686 
    6687 /* Line 1806 of yacc.c  */
    6688 #line 1382 "parser.yy"
     5964#line 1381 "parser.yy" /* yacc.c:1646  */
    66895965    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     5966#line 5967 "Parser/parser.cc" /* yacc.c:1646  */
    66905967    break;
    66915968
    66925969  case 321:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1384 "parser.yy"
     5970#line 1383 "parser.yy" /* yacc.c:1646  */
    66965971    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5972#line 5973 "Parser/parser.cc" /* yacc.c:1646  */
    66975973    break;
    66985974
    66995975  case 322:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1387 "parser.yy"
     5976#line 1386 "parser.yy" /* yacc.c:1646  */
    67035977    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     5978#line 5979 "Parser/parser.cc" /* yacc.c:1646  */
    67045979    break;
    67055980
    67065981  case 323:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1389 "parser.yy"
     5982#line 1388 "parser.yy" /* yacc.c:1646  */
    67105983    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5984#line 5985 "Parser/parser.cc" /* yacc.c:1646  */
    67115985    break;
    67125986
    67135987  case 324:
    6714 
    6715 /* Line 1806 of yacc.c  */
    6716 #line 1394 "parser.yy"
     5988#line 1393 "parser.yy" /* yacc.c:1646  */
    67175989    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     5990#line 5991 "Parser/parser.cc" /* yacc.c:1646  */
    67185991    break;
    67195992
    67205993  case 325:
    6721 
    6722 /* Line 1806 of yacc.c  */
    6723 #line 1396 "parser.yy"
     5994#line 1395 "parser.yy" /* yacc.c:1646  */
    67245995    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     5996#line 5997 "Parser/parser.cc" /* yacc.c:1646  */
    67255997    break;
    67265998
    67275999  case 326:
    6728 
    6729 /* Line 1806 of yacc.c  */
    6730 #line 1398 "parser.yy"
     6000#line 1397 "parser.yy" /* yacc.c:1646  */
    67316001    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6002#line 6003 "Parser/parser.cc" /* yacc.c:1646  */
    67326003    break;
    67336004
    67346005  case 327:
    6735 
    6736 /* Line 1806 of yacc.c  */
    6737 #line 1400 "parser.yy"
     6006#line 1399 "parser.yy" /* yacc.c:1646  */
    67386007    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6008#line 6009 "Parser/parser.cc" /* yacc.c:1646  */
    67396009    break;
    67406010
    67416011  case 328:
    6742 
    6743 /* Line 1806 of yacc.c  */
    6744 #line 1402 "parser.yy"
     6012#line 1401 "parser.yy" /* yacc.c:1646  */
    67456013    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6014#line 6015 "Parser/parser.cc" /* yacc.c:1646  */
    67466015    break;
    67476016
    67486017  case 329:
    6749 
    6750 /* Line 1806 of yacc.c  */
    6751 #line 1404 "parser.yy"
     6018#line 1403 "parser.yy" /* yacc.c:1646  */
    67526019    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6020#line 6021 "Parser/parser.cc" /* yacc.c:1646  */
    67536021    break;
    67546022
    67556023  case 330:
    6756 
    6757 /* Line 1806 of yacc.c  */
    6758 #line 1406 "parser.yy"
     6024#line 1405 "parser.yy" /* yacc.c:1646  */
    67596025    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6026#line 6027 "Parser/parser.cc" /* yacc.c:1646  */
    67606027    break;
    67616028
    67626029  case 331:
    6763 
    6764 /* Line 1806 of yacc.c  */
    6765 #line 1408 "parser.yy"
     6030#line 1407 "parser.yy" /* yacc.c:1646  */
    67666031    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6032#line 6033 "Parser/parser.cc" /* yacc.c:1646  */
    67676033    break;
    67686034
    67696035  case 332:
    6770 
    6771 /* Line 1806 of yacc.c  */
    6772 #line 1410 "parser.yy"
     6036#line 1409 "parser.yy" /* yacc.c:1646  */
    67736037    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6038#line 6039 "Parser/parser.cc" /* yacc.c:1646  */
    67746039    break;
    67756040
    67766041  case 333:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1412 "parser.yy"
     6042#line 1411 "parser.yy" /* yacc.c:1646  */
    67806043    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6044#line 6045 "Parser/parser.cc" /* yacc.c:1646  */
    67816045    break;
    67826046
    67836047  case 334:
    6784 
    6785 /* Line 1806 of yacc.c  */
    6786 #line 1414 "parser.yy"
     6048#line 1413 "parser.yy" /* yacc.c:1646  */
    67876049    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6050#line 6051 "Parser/parser.cc" /* yacc.c:1646  */
    67886051    break;
    67896052
    67906053  case 335:
    6791 
    6792 /* Line 1806 of yacc.c  */
    6793 #line 1416 "parser.yy"
     6054#line 1415 "parser.yy" /* yacc.c:1646  */
    67946055    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6056#line 6057 "Parser/parser.cc" /* yacc.c:1646  */
    67956057    break;
    67966058
    67976059  case 336:
    6798 
    6799 /* Line 1806 of yacc.c  */
    6800 #line 1418 "parser.yy"
     6060#line 1417 "parser.yy" /* yacc.c:1646  */
    68016061    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6062#line 6063 "Parser/parser.cc" /* yacc.c:1646  */
    68026063    break;
    68036064
    68046065  case 337:
    6805 
    6806 /* Line 1806 of yacc.c  */
    6807 #line 1420 "parser.yy"
     6066#line 1419 "parser.yy" /* yacc.c:1646  */
    68086067    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
     6068#line 6069 "Parser/parser.cc" /* yacc.c:1646  */
    68096069    break;
    68106070
    68116071  case 338:
    6812 
    6813 /* Line 1806 of yacc.c  */
    6814 #line 1422 "parser.yy"
     6072#line 1421 "parser.yy" /* yacc.c:1646  */
    68156073    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
     6074#line 6075 "Parser/parser.cc" /* yacc.c:1646  */
    68166075    break;
    68176076
    68186077  case 340:
    6819 
    6820 /* Line 1806 of yacc.c  */
    6821 #line 1429 "parser.yy"
    6822     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6078#line 1428 "parser.yy" /* yacc.c:1646  */
     6079    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6080#line 6081 "Parser/parser.cc" /* yacc.c:1646  */
    68236081    break;
    68246082
    68256083  case 341:
    6826 
    6827 /* Line 1806 of yacc.c  */
    6828 #line 1431 "parser.yy"
    6829     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6084#line 1430 "parser.yy" /* yacc.c:1646  */
     6085    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6086#line 6087 "Parser/parser.cc" /* yacc.c:1646  */
    68306087    break;
    68316088
    68326089  case 342:
    6833 
    6834 /* Line 1806 of yacc.c  */
    6835 #line 1433 "parser.yy"
    6836     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6090#line 1432 "parser.yy" /* yacc.c:1646  */
     6091    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6092#line 6093 "Parser/parser.cc" /* yacc.c:1646  */
    68376093    break;
    68386094
    68396095  case 343:
    6840 
    6841 /* Line 1806 of yacc.c  */
    6842 #line 1435 "parser.yy"
    6843     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6096#line 1434 "parser.yy" /* yacc.c:1646  */
     6097    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
     6098#line 6099 "Parser/parser.cc" /* yacc.c:1646  */
    68446099    break;
    68456100
    68466101  case 345:
    6847 
    6848 /* Line 1806 of yacc.c  */
    6849 #line 1441 "parser.yy"
    6850     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6102#line 1440 "parser.yy" /* yacc.c:1646  */
     6103    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6104#line 6105 "Parser/parser.cc" /* yacc.c:1646  */
    68516105    break;
    68526106
    68536107  case 347:
    6854 
    6855 /* Line 1806 of yacc.c  */
    6856 #line 1448 "parser.yy"
    6857     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6108#line 1447 "parser.yy" /* yacc.c:1646  */
     6109    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6110#line 6111 "Parser/parser.cc" /* yacc.c:1646  */
    68586111    break;
    68596112
    68606113  case 348:
    6861 
    6862 /* Line 1806 of yacc.c  */
    6863 #line 1450 "parser.yy"
    6864     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6114#line 1449 "parser.yy" /* yacc.c:1646  */
     6115    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6116#line 6117 "Parser/parser.cc" /* yacc.c:1646  */
    68656117    break;
    68666118
    68676119  case 349:
    6868 
    6869 /* Line 1806 of yacc.c  */
    6870 #line 1452 "parser.yy"
    6871     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6120#line 1451 "parser.yy" /* yacc.c:1646  */
     6121    { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
     6122#line 6123 "Parser/parser.cc" /* yacc.c:1646  */
    68726123    break;
    68736124
    68746125  case 350:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1457 "parser.yy"
    6878     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6126#line 1456 "parser.yy" /* yacc.c:1646  */
     6127    { (yyval.decl) = (yyvsp[-1].decl); }
     6128#line 6129 "Parser/parser.cc" /* yacc.c:1646  */
    68796129    break;
    68806130
    68816131  case 351:
    6882 
    6883 /* Line 1806 of yacc.c  */
    6884 #line 1459 "parser.yy"
    6885     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6132#line 1458 "parser.yy" /* yacc.c:1646  */
     6133    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
     6134#line 6135 "Parser/parser.cc" /* yacc.c:1646  */
    68866135    break;
    68876136
    68886137  case 352:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1461 "parser.yy"
    6892     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6138#line 1460 "parser.yy" /* yacc.c:1646  */
     6139    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
     6140#line 6141 "Parser/parser.cc" /* yacc.c:1646  */
    68936141    break;
    68946142
    68956143  case 353:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1463 "parser.yy"
    6899     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6144#line 1462 "parser.yy" /* yacc.c:1646  */
     6145    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6146#line 6147 "Parser/parser.cc" /* yacc.c:1646  */
    69006147    break;
    69016148
    69026149  case 355:
    6903 
    6904 /* Line 1806 of yacc.c  */
    6905 #line 1469 "parser.yy"
    6906     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6150#line 1468 "parser.yy" /* yacc.c:1646  */
     6151    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6152#line 6153 "Parser/parser.cc" /* yacc.c:1646  */
    69076153    break;
    69086154
    69096155  case 356:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1471 "parser.yy"
    6913     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6156#line 1470 "parser.yy" /* yacc.c:1646  */
     6157    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6158#line 6159 "Parser/parser.cc" /* yacc.c:1646  */
    69146159    break;
    69156160
    69166161  case 357:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1473 "parser.yy"
    6920     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6162#line 1472 "parser.yy" /* yacc.c:1646  */
     6163    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6164#line 6165 "Parser/parser.cc" /* yacc.c:1646  */
    69216165    break;
    69226166
    69236167  case 359:
    6924 
    6925 /* Line 1806 of yacc.c  */
    6926 #line 1479 "parser.yy"
    6927     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6168#line 1478 "parser.yy" /* yacc.c:1646  */
     6169    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6170#line 6171 "Parser/parser.cc" /* yacc.c:1646  */
    69286171    break;
    69296172
    69306173  case 360:
    6931 
    6932 /* Line 1806 of yacc.c  */
    6933 #line 1481 "parser.yy"
    6934     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6174#line 1480 "parser.yy" /* yacc.c:1646  */
     6175    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6176#line 6177 "Parser/parser.cc" /* yacc.c:1646  */
    69356177    break;
    69366178
    69376179  case 362:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1487 "parser.yy"
    6941     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6180#line 1486 "parser.yy" /* yacc.c:1646  */
     6181    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6182#line 6183 "Parser/parser.cc" /* yacc.c:1646  */
    69426183    break;
    69436184
    69446185  case 363:
    6945 
    6946 /* Line 1806 of yacc.c  */
    6947 #line 1489 "parser.yy"
    6948     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6186#line 1488 "parser.yy" /* yacc.c:1646  */
     6187    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6188#line 6189 "Parser/parser.cc" /* yacc.c:1646  */
    69496189    break;
    69506190
    69516191  case 364:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1491 "parser.yy"
    6955     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6192#line 1490 "parser.yy" /* yacc.c:1646  */
     6193    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6194#line 6195 "Parser/parser.cc" /* yacc.c:1646  */
    69566195    break;
    69576196
    69586197  case 365:
    6959 
    6960 /* Line 1806 of yacc.c  */
    6961 #line 1496 "parser.yy"
    6962     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6198#line 1495 "parser.yy" /* yacc.c:1646  */
     6199    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
     6200#line 6201 "Parser/parser.cc" /* yacc.c:1646  */
    69636201    break;
    69646202
    69656203  case 366:
    6966 
    6967 /* Line 1806 of yacc.c  */
    6968 #line 1498 "parser.yy"
    6969     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6204#line 1497 "parser.yy" /* yacc.c:1646  */
     6205    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
     6206#line 6207 "Parser/parser.cc" /* yacc.c:1646  */
    69706207    break;
    69716208
    69726209  case 367:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1500 "parser.yy"
    6976     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6210#line 1499 "parser.yy" /* yacc.c:1646  */
     6211    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6212#line 6213 "Parser/parser.cc" /* yacc.c:1646  */
    69776213    break;
    69786214
    69796215  case 370:
    6980 
    6981 /* Line 1806 of yacc.c  */
    6982 #line 1510 "parser.yy"
    6983     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     6216#line 1509 "parser.yy" /* yacc.c:1646  */
     6217    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), nullptr, nullptr, (yyvsp[-1].decl), true ); }
     6218#line 6219 "Parser/parser.cc" /* yacc.c:1646  */
    69846219    break;
    69856220
    69866221  case 371:
    6987 
    6988 /* Line 1806 of yacc.c  */
    6989 #line 1512 "parser.yy"
    6990     {
    6991                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    6992                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false );
     6222#line 1511 "parser.yy" /* yacc.c:1646  */
     6223    {
     6224                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6225                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), nullptr, nullptr, false );
    69936226                }
     6227#line 6228 "Parser/parser.cc" /* yacc.c:1646  */
    69946228    break;
    69956229
    69966230  case 372:
    6997 
    6998 /* Line 1806 of yacc.c  */
    6999 #line 1517 "parser.yy"
    7000     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6231#line 1516 "parser.yy" /* yacc.c:1646  */
     6232    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6233#line 6234 "Parser/parser.cc" /* yacc.c:1646  */
    70016234    break;
    70026235
    70036236  case 373:
    7004 
    7005 /* Line 1806 of yacc.c  */
    7006 #line 1519 "parser.yy"
    7007     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     6237#line 1518 "parser.yy" /* yacc.c:1646  */
     6238    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), nullptr, (yyvsp[-1].decl), true ); }
     6239#line 6240 "Parser/parser.cc" /* yacc.c:1646  */
    70086240    break;
    70096241
    70106242  case 374:
    7011 
    7012 /* Line 1806 of yacc.c  */
    7013 #line 1521 "parser.yy"
    7014     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     6243#line 1520 "parser.yy" /* yacc.c:1646  */
     6244    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), nullptr, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
     6245#line 6246 "Parser/parser.cc" /* yacc.c:1646  */
    70156246    break;
    70166247
    70176248  case 375:
    7018 
    7019 /* Line 1806 of yacc.c  */
    7020 #line 1523 "parser.yy"
    7021     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6249#line 1522 "parser.yy" /* yacc.c:1646  */
     6250    { (yyval.decl) = (yyvsp[0].decl); }
     6251#line 6252 "Parser/parser.cc" /* yacc.c:1646  */
    70226252    break;
    70236253
    70246254  case 376:
    7025 
    7026 /* Line 1806 of yacc.c  */
    7027 #line 1528 "parser.yy"
     6255#line 1527 "parser.yy" /* yacc.c:1646  */
    70286256    { (yyval.aggKey) = DeclarationNode::Struct; }
     6257#line 6258 "Parser/parser.cc" /* yacc.c:1646  */
    70296258    break;
    70306259
    70316260  case 377:
    7032 
    7033 /* Line 1806 of yacc.c  */
    7034 #line 1530 "parser.yy"
     6261#line 1529 "parser.yy" /* yacc.c:1646  */
    70356262    { (yyval.aggKey) = DeclarationNode::Union; }
     6263#line 6264 "Parser/parser.cc" /* yacc.c:1646  */
    70366264    break;
    70376265
    70386266  case 378:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1535 "parser.yy"
    7042     { (yyval.decl) = nullptr; }
     6267#line 1534 "parser.yy" /* yacc.c:1646  */
     6268    { (yyval.decl) = 0; }
     6269#line 6270 "Parser/parser.cc" /* yacc.c:1646  */
    70436270    break;
    70446271
    70456272  case 379:
    7046 
    7047 /* Line 1806 of yacc.c  */
    7048 #line 1537 "parser.yy"
    7049     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     6273#line 1536 "parser.yy" /* yacc.c:1646  */
     6274    { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6275#line 6276 "Parser/parser.cc" /* yacc.c:1646  */
    70506276    break;
    70516277
    70526278  case 381:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1543 "parser.yy"
    7056     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     6279#line 1542 "parser.yy" /* yacc.c:1646  */
     6280    { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
     6281#line 6282 "Parser/parser.cc" /* yacc.c:1646  */
    70576282    break;
    70586283
    70596284  case 383:
    7060 
    7061 /* Line 1806 of yacc.c  */
    7062 #line 1546 "parser.yy"
     6285#line 1545 "parser.yy" /* yacc.c:1646  */
    70636286    {   // mark all fields in list
    7064                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6287                        for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    70656288                                iter->set_extension( true );
    7066                         (yyval.decl) = (yyvsp[(2) - (3)].decl);
     6289                        (yyval.decl) = (yyvsp[-1].decl);
    70676290                }
     6291#line 6292 "Parser/parser.cc" /* yacc.c:1646  */
    70686292    break;
    70696293
    70706294  case 385:
    7071 
    7072 /* Line 1806 of yacc.c  */
    7073 #line 1556 "parser.yy"
    7074     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6295#line 1555 "parser.yy" /* yacc.c:1646  */
     6296    { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
     6297#line 6298 "Parser/parser.cc" /* yacc.c:1646  */
    70756298    break;
    70766299
    70776300  case 386:
    7078 
    7079 /* Line 1806 of yacc.c  */
    7080 #line 1558 "parser.yy"
    7081     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     6301#line 1557 "parser.yy" /* yacc.c:1646  */
     6302    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
     6303#line 6304 "Parser/parser.cc" /* yacc.c:1646  */
    70826304    break;
    70836305
    70846306  case 387:
    7085 
    7086 /* Line 1806 of yacc.c  */
    7087 #line 1560 "parser.yy"
    7088     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     6307#line 1559 "parser.yy" /* yacc.c:1646  */
     6308    { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
     6309#line 6310 "Parser/parser.cc" /* yacc.c:1646  */
    70896310    break;
    70906311
    70916312  case 388:
    7092 
    7093 /* Line 1806 of yacc.c  */
    7094 #line 1565 "parser.yy"
    7095     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6313#line 1564 "parser.yy" /* yacc.c:1646  */
     6314    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6315#line 6316 "Parser/parser.cc" /* yacc.c:1646  */
    70966316    break;
    70976317
    70986318  case 389:
    7099 
    7100 /* Line 1806 of yacc.c  */
    7101 #line 1567 "parser.yy"
    7102     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     6319#line 1566 "parser.yy" /* yacc.c:1646  */
     6320    { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
     6321#line 6322 "Parser/parser.cc" /* yacc.c:1646  */
    71036322    break;
    71046323
    71056324  case 390:
    7106 
    7107 /* Line 1806 of yacc.c  */
    7108 #line 1572 "parser.yy"
     6325#line 1571 "parser.yy" /* yacc.c:1646  */
    71096326    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     6327#line 6328 "Parser/parser.cc" /* yacc.c:1646  */
    71106328    break;
    71116329
    71126330  case 391:
    7113 
    7114 /* Line 1806 of yacc.c  */
    7115 #line 1574 "parser.yy"
    7116     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     6331#line 1573 "parser.yy" /* yacc.c:1646  */
     6332    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
     6333#line 6334 "Parser/parser.cc" /* yacc.c:1646  */
    71176334    break;
    71186335
    71196336  case 392:
    7120 
    7121 /* Line 1806 of yacc.c  */
    7122 #line 1577 "parser.yy"
    7123     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6337#line 1576 "parser.yy" /* yacc.c:1646  */
     6338    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
     6339#line 6340 "Parser/parser.cc" /* yacc.c:1646  */
    71246340    break;
    71256341
    71266342  case 393:
    7127 
    7128 /* Line 1806 of yacc.c  */
    7129 #line 1580 "parser.yy"
    7130     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6343#line 1579 "parser.yy" /* yacc.c:1646  */
     6344    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
     6345#line 6346 "Parser/parser.cc" /* yacc.c:1646  */
    71316346    break;
    71326347
    71336348  case 395:
    7134 
    7135 /* Line 1806 of yacc.c  */
    7136 #line 1586 "parser.yy"
    7137     { (yyval.en) = nullptr; }
     6349#line 1585 "parser.yy" /* yacc.c:1646  */
     6350    { (yyval.en) = 0; }
     6351#line 6352 "Parser/parser.cc" /* yacc.c:1646  */
    71386352    break;
    71396353
    71406354  case 396:
    7141 
    7142 /* Line 1806 of yacc.c  */
    7143 #line 1588 "parser.yy"
    7144     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     6355#line 1587 "parser.yy" /* yacc.c:1646  */
     6356    { (yyval.en) = (yyvsp[0].en); }
     6357#line 6358 "Parser/parser.cc" /* yacc.c:1646  */
    71456358    break;
    71466359
    71476360  case 397:
    7148 
    7149 /* Line 1806 of yacc.c  */
    7150 #line 1593 "parser.yy"
    7151     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6361#line 1592 "parser.yy" /* yacc.c:1646  */
     6362    { (yyval.en) = (yyvsp[0].en); }
     6363#line 6364 "Parser/parser.cc" /* yacc.c:1646  */
    71526364    break;
    71536365
    71546366  case 399:
    7155 
    7156 /* Line 1806 of yacc.c  */
    7157 #line 1602 "parser.yy"
    7158     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     6367#line 1601 "parser.yy" /* yacc.c:1646  */
     6368    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[-2].decl) ); }
     6369#line 6370 "Parser/parser.cc" /* yacc.c:1646  */
    71596370    break;
    71606371
    71616372  case 400:
    7162 
    7163 /* Line 1806 of yacc.c  */
    7164 #line 1604 "parser.yy"
    7165     {
    7166                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    7167                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
     6373#line 1603 "parser.yy" /* yacc.c:1646  */
     6374    {
     6375                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6376                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
    71686377                }
     6378#line 6379 "Parser/parser.cc" /* yacc.c:1646  */
    71696379    break;
    71706380
    71716381  case 401:
    7172 
    7173 /* Line 1806 of yacc.c  */
    7174 #line 1609 "parser.yy"
    7175     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6382#line 1608 "parser.yy" /* yacc.c:1646  */
     6383    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6384#line 6385 "Parser/parser.cc" /* yacc.c:1646  */
    71766385    break;
    71776386
    71786387  case 402:
    7179 
    7180 /* Line 1806 of yacc.c  */
    7181 #line 1611 "parser.yy"
    7182     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     6388#line 1610 "parser.yy" /* yacc.c:1646  */
     6389    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
     6390#line 6391 "Parser/parser.cc" /* yacc.c:1646  */
    71836391    break;
    71846392
    71856393  case 403:
    7186 
    7187 /* Line 1806 of yacc.c  */
    7188 #line 1616 "parser.yy"
    7189     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     6394#line 1615 "parser.yy" /* yacc.c:1646  */
     6395    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
     6396#line 6397 "Parser/parser.cc" /* yacc.c:1646  */
    71906397    break;
    71916398
    71926399  case 404:
    7193 
    7194 /* Line 1806 of yacc.c  */
    7195 #line 1618 "parser.yy"
    7196     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     6400#line 1617 "parser.yy" /* yacc.c:1646  */
     6401    { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
     6402#line 6403 "Parser/parser.cc" /* yacc.c:1646  */
    71976403    break;
    71986404
    71996405  case 405:
    7200 
    7201 /* Line 1806 of yacc.c  */
    7202 #line 1623 "parser.yy"
    7203     { (yyval.en) = nullptr; }
     6406#line 1622 "parser.yy" /* yacc.c:1646  */
     6407    { (yyval.en) = 0; }
     6408#line 6409 "Parser/parser.cc" /* yacc.c:1646  */
    72046409    break;
    72056410
    72066411  case 406:
    7207 
    7208 /* Line 1806 of yacc.c  */
    7209 #line 1625 "parser.yy"
    7210     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6412#line 1624 "parser.yy" /* yacc.c:1646  */
     6413    { (yyval.en) = (yyvsp[0].en); }
     6414#line 6415 "Parser/parser.cc" /* yacc.c:1646  */
    72116415    break;
    72126416
    72136417  case 407:
    7214 
    7215 /* Line 1806 of yacc.c  */
    7216 #line 1632 "parser.yy"
    7217     { (yyval.decl) = nullptr; }
     6418#line 1631 "parser.yy" /* yacc.c:1646  */
     6419    { (yyval.decl) = 0; }
     6420#line 6421 "Parser/parser.cc" /* yacc.c:1646  */
    72186421    break;
    72196422
    72206423  case 411:
    7221 
    7222 /* Line 1806 of yacc.c  */
    7223 #line 1640 "parser.yy"
    7224     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6424#line 1639 "parser.yy" /* yacc.c:1646  */
     6425    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6426#line 6427 "Parser/parser.cc" /* yacc.c:1646  */
    72256427    break;
    72266428
    72276429  case 412:
    7228 
    7229 /* Line 1806 of yacc.c  */
    7230 #line 1642 "parser.yy"
    7231     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6430#line 1641 "parser.yy" /* yacc.c:1646  */
     6431    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6432#line 6433 "Parser/parser.cc" /* yacc.c:1646  */
    72326433    break;
    72336434
    72346435  case 413:
    7235 
    7236 /* Line 1806 of yacc.c  */
    7237 #line 1644 "parser.yy"
    7238     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6436#line 1643 "parser.yy" /* yacc.c:1646  */
     6437    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6438#line 6439 "Parser/parser.cc" /* yacc.c:1646  */
    72396439    break;
    72406440
    72416441  case 415:
    7242 
    7243 /* Line 1806 of yacc.c  */
    7244 #line 1652 "parser.yy"
    7245     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6442#line 1651 "parser.yy" /* yacc.c:1646  */
     6443    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6444#line 6445 "Parser/parser.cc" /* yacc.c:1646  */
    72466445    break;
    72476446
    72486447  case 416:
    7249 
    7250 /* Line 1806 of yacc.c  */
    7251 #line 1654 "parser.yy"
    7252     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6448#line 1653 "parser.yy" /* yacc.c:1646  */
     6449    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6450#line 6451 "Parser/parser.cc" /* yacc.c:1646  */
    72536451    break;
    72546452
    72556453  case 417:
    7256 
    7257 /* Line 1806 of yacc.c  */
    7258 #line 1656 "parser.yy"
    7259     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     6454#line 1655 "parser.yy" /* yacc.c:1646  */
     6455    { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
     6456#line 6457 "Parser/parser.cc" /* yacc.c:1646  */
    72606457    break;
    72616458
    72626459  case 419:
    7263 
    7264 /* Line 1806 of yacc.c  */
    7265 #line 1662 "parser.yy"
    7266     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6460#line 1661 "parser.yy" /* yacc.c:1646  */
     6461    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6462#line 6463 "Parser/parser.cc" /* yacc.c:1646  */
    72676463    break;
    72686464
    72696465  case 420:
    7270 
    7271 /* Line 1806 of yacc.c  */
    7272 #line 1667 "parser.yy"
    7273     { (yyval.decl) = nullptr; }
     6466#line 1666 "parser.yy" /* yacc.c:1646  */
     6467    { (yyval.decl) = 0; }
     6468#line 6469 "Parser/parser.cc" /* yacc.c:1646  */
    72746469    break;
    72756470
    72766471  case 423:
    7277 
    7278 /* Line 1806 of yacc.c  */
    7279 #line 1674 "parser.yy"
    7280     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6472#line 1673 "parser.yy" /* yacc.c:1646  */
     6473    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6474#line 6475 "Parser/parser.cc" /* yacc.c:1646  */
    72816475    break;
    72826476
    72836477  case 426:
    7284 
    7285 /* Line 1806 of yacc.c  */
    7286 #line 1681 "parser.yy"
    7287     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6478#line 1680 "parser.yy" /* yacc.c:1646  */
     6479    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6480#line 6481 "Parser/parser.cc" /* yacc.c:1646  */
    72886481    break;
    72896482
    72906483  case 427:
    7291 
    7292 /* Line 1806 of yacc.c  */
    7293 #line 1683 "parser.yy"
    7294     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6484#line 1682 "parser.yy" /* yacc.c:1646  */
     6485    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6486#line 6487 "Parser/parser.cc" /* yacc.c:1646  */
    72956487    break;
    72966488
    72976489  case 429:
    7298 
    7299 /* Line 1806 of yacc.c  */
    7300 #line 1692 "parser.yy"
    7301     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     6490#line 1691 "parser.yy" /* yacc.c:1646  */
     6491    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
     6492#line 6493 "Parser/parser.cc" /* yacc.c:1646  */
    73026493    break;
    73036494
    73046495  case 430:
    7305 
    7306 /* Line 1806 of yacc.c  */
    7307 #line 1695 "parser.yy"
    7308     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     6496#line 1694 "parser.yy" /* yacc.c:1646  */
     6497    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
     6498#line 6499 "Parser/parser.cc" /* yacc.c:1646  */
    73096499    break;
    73106500
    73116501  case 431:
    7312 
    7313 /* Line 1806 of yacc.c  */
    7314 #line 1697 "parser.yy"
    7315     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     6502#line 1696 "parser.yy" /* yacc.c:1646  */
     6503    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
     6504#line 6505 "Parser/parser.cc" /* yacc.c:1646  */
    73166505    break;
    73176506
    73186507  case 436:
    7319 
    7320 /* Line 1806 of yacc.c  */
    7321 #line 1707 "parser.yy"
    7322     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6508#line 1706 "parser.yy" /* yacc.c:1646  */
     6509    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6510#line 6511 "Parser/parser.cc" /* yacc.c:1646  */
    73236511    break;
    73246512
    73256513  case 438:
    7326 
    7327 /* Line 1806 of yacc.c  */
    7328 #line 1713 "parser.yy"
     6514#line 1712 "parser.yy" /* yacc.c:1646  */
    73296515    {
    73306516                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7331                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6517                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73326518                }
     6519#line 6520 "Parser/parser.cc" /* yacc.c:1646  */
    73336520    break;
    73346521
    73356522  case 439:
    7336 
    7337 /* Line 1806 of yacc.c  */
    7338 #line 1718 "parser.yy"
     6523#line 1717 "parser.yy" /* yacc.c:1646  */
    73396524    {
    73406525                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7341                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6526                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73426527                }
     6528#line 6529 "Parser/parser.cc" /* yacc.c:1646  */
    73436529    break;
    73446530
    73456531  case 441:
    7346 
    7347 /* Line 1806 of yacc.c  */
    7348 #line 1727 "parser.yy"
    7349     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6532#line 1726 "parser.yy" /* yacc.c:1646  */
     6533    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6534#line 6535 "Parser/parser.cc" /* yacc.c:1646  */
    73506535    break;
    73516536
    73526537  case 442:
    7353 
    7354 /* Line 1806 of yacc.c  */
    7355 #line 1736 "parser.yy"
    7356     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     6538#line 1735 "parser.yy" /* yacc.c:1646  */
     6539    { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
     6540#line 6541 "Parser/parser.cc" /* yacc.c:1646  */
    73576541    break;
    73586542
    73596543  case 443:
    7360 
    7361 /* Line 1806 of yacc.c  */
    7362 #line 1738 "parser.yy"
    7363     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     6544#line 1737 "parser.yy" /* yacc.c:1646  */
     6545    { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
     6546#line 6547 "Parser/parser.cc" /* yacc.c:1646  */
    73646547    break;
    73656548
    73666549  case 455:
    7367 
    7368 /* Line 1806 of yacc.c  */
    7369 #line 1763 "parser.yy"
    7370     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6550#line 1762 "parser.yy" /* yacc.c:1646  */
     6551    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6552#line 6553 "Parser/parser.cc" /* yacc.c:1646  */
    73716553    break;
    73726554
    73736555  case 459:
    7374 
    7375 /* Line 1806 of yacc.c  */
    7376 #line 1771 "parser.yy"
    7377     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6556#line 1770 "parser.yy" /* yacc.c:1646  */
     6557    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6558#line 6559 "Parser/parser.cc" /* yacc.c:1646  */
    73786559    break;
    73796560
    73806561  case 460:
    7381 
    7382 /* Line 1806 of yacc.c  */
    7383 #line 1776 "parser.yy"
    7384     { (yyval.in) = nullptr; }
     6562#line 1775 "parser.yy" /* yacc.c:1646  */
     6563    { (yyval.in) = 0; }
     6564#line 6565 "Parser/parser.cc" /* yacc.c:1646  */
    73856565    break;
    73866566
    73876567  case 461:
    7388 
    7389 /* Line 1806 of yacc.c  */
    7390 #line 1778 "parser.yy"
    7391     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     6568#line 1777 "parser.yy" /* yacc.c:1646  */
     6569    { (yyval.in) = (yyvsp[0].in); }
     6570#line 6571 "Parser/parser.cc" /* yacc.c:1646  */
    73926571    break;
    73936572
    73946573  case 462:
    7395 
    7396 /* Line 1806 of yacc.c  */
    7397 #line 1780 "parser.yy"
    7398     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     6574#line 1779 "parser.yy" /* yacc.c:1646  */
     6575    { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
     6576#line 6577 "Parser/parser.cc" /* yacc.c:1646  */
    73996577    break;
    74006578
    74016579  case 463:
    7402 
    7403 /* Line 1806 of yacc.c  */
    7404 #line 1784 "parser.yy"
    7405     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     6580#line 1783 "parser.yy" /* yacc.c:1646  */
     6581    { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
     6582#line 6583 "Parser/parser.cc" /* yacc.c:1646  */
    74066583    break;
    74076584
    74086585  case 464:
    7409 
    7410 /* Line 1806 of yacc.c  */
    7411 #line 1785 "parser.yy"
    7412     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     6586#line 1784 "parser.yy" /* yacc.c:1646  */
     6587    { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
     6588#line 6589 "Parser/parser.cc" /* yacc.c:1646  */
    74136589    break;
    74146590
    74156591  case 465:
    7416 
    7417 /* Line 1806 of yacc.c  */
    7418 #line 1790 "parser.yy"
    7419     { (yyval.in) = nullptr; }
     6592#line 1789 "parser.yy" /* yacc.c:1646  */
     6593    { (yyval.in) = 0; }
     6594#line 6595 "Parser/parser.cc" /* yacc.c:1646  */
    74206595    break;
    74216596
    74226597  case 467:
    7423 
    7424 /* Line 1806 of yacc.c  */
    7425 #line 1792 "parser.yy"
    7426     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     6598#line 1791 "parser.yy" /* yacc.c:1646  */
     6599    { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
     6600#line 6601 "Parser/parser.cc" /* yacc.c:1646  */
    74276601    break;
    74286602
    74296603  case 468:
    7430 
    7431 /* Line 1806 of yacc.c  */
    7432 #line 1793 "parser.yy"
    7433     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     6604#line 1792 "parser.yy" /* yacc.c:1646  */
     6605    { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
     6606#line 6607 "Parser/parser.cc" /* yacc.c:1646  */
    74346607    break;
    74356608
    74366609  case 469:
    7437 
    7438 /* Line 1806 of yacc.c  */
    7439 #line 1795 "parser.yy"
    7440     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     6610#line 1794 "parser.yy" /* yacc.c:1646  */
     6611    { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
     6612#line 6613 "Parser/parser.cc" /* yacc.c:1646  */
    74416613    break;
    74426614
    74436615  case 471:
    7444 
    7445 /* Line 1806 of yacc.c  */
    7446 #line 1811 "parser.yy"
    7447     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     6616#line 1810 "parser.yy" /* yacc.c:1646  */
     6617    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
     6618#line 6619 "Parser/parser.cc" /* yacc.c:1646  */
    74486619    break;
    74496620
    74506621  case 473:
    7451 
    7452 /* Line 1806 of yacc.c  */
    7453 #line 1817 "parser.yy"
    7454     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     6622#line 1816 "parser.yy" /* yacc.c:1646  */
     6623    { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
     6624#line 6625 "Parser/parser.cc" /* yacc.c:1646  */
    74556625    break;
    74566626
    74576627  case 474:
    7458 
    7459 /* Line 1806 of yacc.c  */
    7460 #line 1823 "parser.yy"
    7461     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     6628#line 1822 "parser.yy" /* yacc.c:1646  */
     6629    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     6630#line 6631 "Parser/parser.cc" /* yacc.c:1646  */
    74626631    break;
    74636632
    74646633  case 475:
    7465 
    7466 /* Line 1806 of yacc.c  */
    7467 #line 1826 "parser.yy"
    7468     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6634#line 1825 "parser.yy" /* yacc.c:1646  */
     6635    { (yyval.en) = (yyvsp[-2].en); }
     6636#line 6637 "Parser/parser.cc" /* yacc.c:1646  */
    74696637    break;
    74706638
    74716639  case 476:
    7472 
    7473 /* Line 1806 of yacc.c  */
    7474 #line 1828 "parser.yy"
    7475     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6640#line 1827 "parser.yy" /* yacc.c:1646  */
     6641    { (yyval.en) = (yyvsp[-2].en); }
     6642#line 6643 "Parser/parser.cc" /* yacc.c:1646  */
    74766643    break;
    74776644
    74786645  case 477:
    7479 
    7480 /* Line 1806 of yacc.c  */
    7481 #line 1830 "parser.yy"
    7482     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     6646#line 1829 "parser.yy" /* yacc.c:1646  */
     6647    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     6648#line 6649 "Parser/parser.cc" /* yacc.c:1646  */
    74836649    break;
    74846650
    74856651  case 478:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1832 "parser.yy"
    7489     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     6652#line 1831 "parser.yy" /* yacc.c:1646  */
     6653    { (yyval.en) = (yyvsp[-2].en); }
     6654#line 6655 "Parser/parser.cc" /* yacc.c:1646  */
    74906655    break;
    74916656
    74926657  case 480:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1856 "parser.yy"
    7496     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6658#line 1855 "parser.yy" /* yacc.c:1646  */
     6659    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6660#line 6661 "Parser/parser.cc" /* yacc.c:1646  */
    74976661    break;
    74986662
    74996663  case 481:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1858 "parser.yy"
    7503     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6664#line 1857 "parser.yy" /* yacc.c:1646  */
     6665    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6666#line 6667 "Parser/parser.cc" /* yacc.c:1646  */
    75046667    break;
    75056668
    75066669  case 482:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1860 "parser.yy"
    7510     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6670#line 1859 "parser.yy" /* yacc.c:1646  */
     6671    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6672#line 6673 "Parser/parser.cc" /* yacc.c:1646  */
    75116673    break;
    75126674
    75136675  case 484:
    7514 
    7515 /* Line 1806 of yacc.c  */
    7516 #line 1866 "parser.yy"
    7517     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6676#line 1865 "parser.yy" /* yacc.c:1646  */
     6677    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6678#line 6679 "Parser/parser.cc" /* yacc.c:1646  */
    75186679    break;
    75196680
    75206681  case 485:
    7521 
    7522 /* Line 1806 of yacc.c  */
    7523 #line 1868 "parser.yy"
    7524     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6682#line 1867 "parser.yy" /* yacc.c:1646  */
     6683    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6684#line 6685 "Parser/parser.cc" /* yacc.c:1646  */
    75256685    break;
    75266686
    75276687  case 486:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1873 "parser.yy"
    7531     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6688#line 1872 "parser.yy" /* yacc.c:1646  */
     6689    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6690#line 6691 "Parser/parser.cc" /* yacc.c:1646  */
    75326691    break;
    75336692
    75346693  case 488:
    7535 
    7536 /* Line 1806 of yacc.c  */
    7537 #line 1879 "parser.yy"
    7538     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     6694#line 1878 "parser.yy" /* yacc.c:1646  */
     6695    { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
     6696#line 6697 "Parser/parser.cc" /* yacc.c:1646  */
    75396697    break;
    75406698
    75416699  case 489:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1884 "parser.yy"
    7545     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     6700#line 1883 "parser.yy" /* yacc.c:1646  */
     6701    { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
     6702#line 6703 "Parser/parser.cc" /* yacc.c:1646  */
    75466703    break;
    75476704
    75486705  case 490:
    7549 
    7550 /* Line 1806 of yacc.c  */
    7551 #line 1886 "parser.yy"
    7552     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     6706#line 1885 "parser.yy" /* yacc.c:1646  */
     6707    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
     6708#line 6709 "Parser/parser.cc" /* yacc.c:1646  */
    75536709    break;
    75546710
    75556711  case 492:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1892 "parser.yy"
     6712#line 1891 "parser.yy" /* yacc.c:1646  */
    75596713    { (yyval.tclass) = DeclarationNode::Otype; }
     6714#line 6715 "Parser/parser.cc" /* yacc.c:1646  */
    75606715    break;
    75616716
    75626717  case 493:
    7563 
    7564 /* Line 1806 of yacc.c  */
    7565 #line 1894 "parser.yy"
     6718#line 1893 "parser.yy" /* yacc.c:1646  */
    75666719    { (yyval.tclass) = DeclarationNode::Ftype; }
     6720#line 6721 "Parser/parser.cc" /* yacc.c:1646  */
    75676721    break;
    75686722
    75696723  case 494:
    7570 
    7571 /* Line 1806 of yacc.c  */
    7572 #line 1896 "parser.yy"
     6724#line 1895 "parser.yy" /* yacc.c:1646  */
    75736725    { (yyval.tclass) = DeclarationNode::Dtype; }
     6726#line 6727 "Parser/parser.cc" /* yacc.c:1646  */
    75746727    break;
    75756728
    75766729  case 495:
    7577 
    7578 /* Line 1806 of yacc.c  */
    7579 #line 1901 "parser.yy"
    7580     { (yyval.decl) = nullptr; }
     6730#line 1900 "parser.yy" /* yacc.c:1646  */
     6731    { (yyval.decl) = 0; }
     6732#line 6733 "Parser/parser.cc" /* yacc.c:1646  */
    75816733    break;
    75826734
    75836735  case 496:
    7584 
    7585 /* Line 1806 of yacc.c  */
    7586 #line 1903 "parser.yy"
    7587     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     6736#line 1902 "parser.yy" /* yacc.c:1646  */
     6737    { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6738#line 6739 "Parser/parser.cc" /* yacc.c:1646  */
    75886739    break;
    75896740
    75906741  case 497:
    7591 
    7592 /* Line 1806 of yacc.c  */
    7593 #line 1908 "parser.yy"
    7594     {
    7595                         typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
    7596                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     6742#line 1907 "parser.yy" /* yacc.c:1646  */
     6743    {
     6744                        typedefTable.openTrait( *(yyvsp[-3].tok) );
     6745                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
    75976746                }
     6747#line 6748 "Parser/parser.cc" /* yacc.c:1646  */
    75986748    break;
    75996749
    76006750  case 498:
    7601 
    7602 /* Line 1806 of yacc.c  */
    7603 #line 1913 "parser.yy"
    7604     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     6751#line 1912 "parser.yy" /* yacc.c:1646  */
     6752    { (yyval.decl) = (yyvsp[-1].decl); }
     6753#line 6754 "Parser/parser.cc" /* yacc.c:1646  */
    76056754    break;
    76066755
    76076756  case 499:
    7608 
    7609 /* Line 1806 of yacc.c  */
    7610 #line 1915 "parser.yy"
    7611     { (yyval.decl) = nullptr; }
     6757#line 1914 "parser.yy" /* yacc.c:1646  */
     6758    { (yyval.decl) = 0; }
     6759#line 6760 "Parser/parser.cc" /* yacc.c:1646  */
    76126760    break;
    76136761
    76146762  case 500:
    7615 
    7616 /* Line 1806 of yacc.c  */
    7617 #line 1920 "parser.yy"
    7618     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     6763#line 1919 "parser.yy" /* yacc.c:1646  */
     6764    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
     6765#line 6766 "Parser/parser.cc" /* yacc.c:1646  */
    76196766    break;
    76206767
    76216768  case 502:
    7622 
    7623 /* Line 1806 of yacc.c  */
    7624 #line 1923 "parser.yy"
    7625     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     6769#line 1922 "parser.yy" /* yacc.c:1646  */
     6770    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
     6771#line 6772 "Parser/parser.cc" /* yacc.c:1646  */
    76266772    break;
    76276773
    76286774  case 503:
    7629 
    7630 /* Line 1806 of yacc.c  */
    7631 #line 1925 "parser.yy"
    7632     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     6775#line 1924 "parser.yy" /* yacc.c:1646  */
     6776    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
     6777#line 6778 "Parser/parser.cc" /* yacc.c:1646  */
    76336778    break;
    76346779
    76356780  case 504:
    7636 
    7637 /* Line 1806 of yacc.c  */
    7638 #line 1930 "parser.yy"
    7639     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6781#line 1929 "parser.yy" /* yacc.c:1646  */
     6782    { (yyval.decl) = (yyvsp[0].decl); }
     6783#line 6784 "Parser/parser.cc" /* yacc.c:1646  */
    76406784    break;
    76416785
    76426786  case 505:
    7643 
    7644 /* Line 1806 of yacc.c  */
    7645 #line 1932 "parser.yy"
    7646     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     6787#line 1931 "parser.yy" /* yacc.c:1646  */
     6788    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
     6789#line 6790 "Parser/parser.cc" /* yacc.c:1646  */
    76476790    break;
    76486791
    76496792  case 506:
    7650 
    7651 /* Line 1806 of yacc.c  */
    7652 #line 1934 "parser.yy"
    7653     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     6793#line 1933 "parser.yy" /* yacc.c:1646  */
     6794    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
     6795#line 6796 "Parser/parser.cc" /* yacc.c:1646  */
    76546796    break;
    76556797
    76566798  case 507:
    7657 
    7658 /* Line 1806 of yacc.c  */
    7659 #line 1939 "parser.yy"
    7660     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     6799#line 1938 "parser.yy" /* yacc.c:1646  */
     6800    { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
     6801#line 6802 "Parser/parser.cc" /* yacc.c:1646  */
    76616802    break;
    76626803
    76636804  case 508:
    7664 
    7665 /* Line 1806 of yacc.c  */
    7666 #line 1941 "parser.yy"
    7667     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     6805#line 1940 "parser.yy" /* yacc.c:1646  */
     6806    { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
     6807#line 6808 "Parser/parser.cc" /* yacc.c:1646  */
    76686808    break;
    76696809
    76706810  case 509:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1946 "parser.yy"
    7674     {
    7675                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
    7676                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
     6811#line 1945 "parser.yy" /* yacc.c:1646  */
     6812    {
     6813                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     6814                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
    76776815                }
     6816#line 6817 "Parser/parser.cc" /* yacc.c:1646  */
    76786817    break;
    76796818
    76806819  case 510:
    7681 
    7682 /* Line 1806 of yacc.c  */
    7683 #line 1951 "parser.yy"
    7684     {
    7685                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
    7686                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
     6820#line 1950 "parser.yy" /* yacc.c:1646  */
     6821    {
     6822                        typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
     6823                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
    76876824                }
     6825#line 6826 "Parser/parser.cc" /* yacc.c:1646  */
    76886826    break;
    76896827
    76906828  case 511:
    7691 
    7692 /* Line 1806 of yacc.c  */
    7693 #line 1959 "parser.yy"
    7694     {
    7695                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7696                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
     6829#line 1958 "parser.yy" /* yacc.c:1646  */
     6830    {
     6831                        typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
     6832                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
    76976833                }
     6834#line 6835 "Parser/parser.cc" /* yacc.c:1646  */
    76986835    break;
    76996836
    77006837  case 512:
    7701 
    7702 /* Line 1806 of yacc.c  */
    7703 #line 1964 "parser.yy"
    7704     {
    7705                         typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     6838#line 1963 "parser.yy" /* yacc.c:1646  */
     6839    {
     6840                        typedefTable.enterTrait( *(yyvsp[-6].tok) );
    77066841                        typedefTable.enterScope();
    77076842                }
     6843#line 6844 "Parser/parser.cc" /* yacc.c:1646  */
    77086844    break;
    77096845
    77106846  case 513:
    7711 
    7712 /* Line 1806 of yacc.c  */
    7713 #line 1969 "parser.yy"
     6847#line 1968 "parser.yy" /* yacc.c:1646  */
    77146848    {
    77156849                        typedefTable.leaveTrait();
    7716                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
    7717                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
     6850                        typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
     6851                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
    77186852                }
     6853#line 6854 "Parser/parser.cc" /* yacc.c:1646  */
    77196854    break;
    77206855
    77216856  case 515:
    7722 
    7723 /* Line 1806 of yacc.c  */
    7724 #line 1979 "parser.yy"
    7725     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6857#line 1978 "parser.yy" /* yacc.c:1646  */
     6858    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     6859#line 6860 "Parser/parser.cc" /* yacc.c:1646  */
    77266860    break;
    77276861
    77286862  case 518:
    7729 
    7730 /* Line 1806 of yacc.c  */
    7731 #line 1989 "parser.yy"
     6863#line 1988 "parser.yy" /* yacc.c:1646  */
    77326864    {
    77336865                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7734                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6866                        (yyval.decl) = (yyvsp[0].decl);
    77356867                }
     6868#line 6869 "Parser/parser.cc" /* yacc.c:1646  */
    77366869    break;
    77376870
    77386871  case 519:
    7739 
    7740 /* Line 1806 of yacc.c  */
    7741 #line 1994 "parser.yy"
     6872#line 1993 "parser.yy" /* yacc.c:1646  */
    77426873    {
    77436874                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7744                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6875                        (yyval.decl) = (yyvsp[0].decl);
    77456876                }
     6877#line 6878 "Parser/parser.cc" /* yacc.c:1646  */
    77466878    break;
    77476879
    77486880  case 520:
    7749 
    7750 /* Line 1806 of yacc.c  */
    7751 #line 1999 "parser.yy"
    7752     {
    7753                         typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    7754                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     6881#line 1998 "parser.yy" /* yacc.c:1646  */
     6882    {
     6883                        typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
     6884                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    77556885                }
     6886#line 6887 "Parser/parser.cc" /* yacc.c:1646  */
    77566887    break;
    77576888
    77586889  case 521:
    7759 
    7760 /* Line 1806 of yacc.c  */
    7761 #line 2007 "parser.yy"
     6890#line 2006 "parser.yy" /* yacc.c:1646  */
    77626891    {
    77636892                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7764                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     6893                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    77656894                }
     6895#line 6896 "Parser/parser.cc" /* yacc.c:1646  */
    77666896    break;
    77676897
    77686898  case 522:
    7769 
    7770 /* Line 1806 of yacc.c  */
    7771 #line 2012 "parser.yy"
     6899#line 2011 "parser.yy" /* yacc.c:1646  */
    77726900    {
    77736901                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7774                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
     6902                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
    77756903                }
     6904#line 6905 "Parser/parser.cc" /* yacc.c:1646  */
    77766905    break;
    77776906
    77786907  case 523:
    7779 
    7780 /* Line 1806 of yacc.c  */
    7781 #line 2022 "parser.yy"
     6908#line 2021 "parser.yy" /* yacc.c:1646  */
    77826909    {}
     6910#line 6911 "Parser/parser.cc" /* yacc.c:1646  */
    77836911    break;
    77846912
    77856913  case 524:
    7786 
    7787 /* Line 1806 of yacc.c  */
    7788 #line 2024 "parser.yy"
    7789     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     6914#line 2023 "parser.yy" /* yacc.c:1646  */
     6915    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);    }
     6916#line 6917 "Parser/parser.cc" /* yacc.c:1646  */
    77906917    break;
    77916918
    77926919  case 526:
    7793 
    7794 /* Line 1806 of yacc.c  */
    7795 #line 2030 "parser.yy"
    7796     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     6920#line 2029 "parser.yy" /* yacc.c:1646  */
     6921    { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6922#line 6923 "Parser/parser.cc" /* yacc.c:1646  */
    77976923    break;
    77986924
    77996925  case 527:
    7800 
    7801 /* Line 1806 of yacc.c  */
    7802 #line 2035 "parser.yy"
    7803     { (yyval.decl) = nullptr; }
     6926#line 2034 "parser.yy" /* yacc.c:1646  */
     6927    { (yyval.decl) = 0; }
     6928#line 6929 "Parser/parser.cc" /* yacc.c:1646  */
    78046929    break;
    78056930
    78066931  case 531:
    7807 
    7808 /* Line 1806 of yacc.c  */
    7809 #line 2043 "parser.yy"
     6932#line 2042 "parser.yy" /* yacc.c:1646  */
    78106933    {}
     6934#line 6935 "Parser/parser.cc" /* yacc.c:1646  */
    78116935    break;
    78126936
    78136937  case 532:
    7814 
    7815 /* Line 1806 of yacc.c  */
    7816 #line 2045 "parser.yy"
     6938#line 2044 "parser.yy" /* yacc.c:1646  */
    78176939    {
    78186940                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7819                         linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) );
     6941                        linkage = LinkageSpec::linkageCheck( (yyvsp[0].tok) );
    78206942                }
     6943#line 6944 "Parser/parser.cc" /* yacc.c:1646  */
    78216944    break;
    78226945
    78236946  case 533:
    7824 
    7825 /* Line 1806 of yacc.c  */
    7826 #line 2050 "parser.yy"
     6947#line 2049 "parser.yy" /* yacc.c:1646  */
    78276948    {
    78286949                        linkage = linkageStack.top();
    78296950                        linkageStack.pop();
    7830                         (yyval.decl) = (yyvsp[(5) - (6)].decl);
     6951                        (yyval.decl) = (yyvsp[-1].decl);
    78316952                }
     6953#line 6954 "Parser/parser.cc" /* yacc.c:1646  */
    78326954    break;
    78336955
    78346956  case 534:
    7835 
    7836 /* Line 1806 of yacc.c  */
    7837 #line 2056 "parser.yy"
     6957#line 2055 "parser.yy" /* yacc.c:1646  */
    78386958    {   // mark all fields in list
    7839                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6959                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    78406960                                iter->set_extension( true );
    7841                         (yyval.decl) = (yyvsp[(2) - (2)].decl);
     6961                        (yyval.decl) = (yyvsp[0].decl);
    78426962                }
     6963#line 6964 "Parser/parser.cc" /* yacc.c:1646  */
    78436964    break;
    78446965
    78456966  case 536:
    7846 
    7847 /* Line 1806 of yacc.c  */
    7848 #line 2071 "parser.yy"
     6967#line 2070 "parser.yy" /* yacc.c:1646  */
    78496968    {
    78506969                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78516970                        typedefTable.leaveScope();
    7852                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6971                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78536972                }
     6973#line 6974 "Parser/parser.cc" /* yacc.c:1646  */
    78546974    break;
    78556975
    78566976  case 537:
    7857 
    7858 /* Line 1806 of yacc.c  */
    7859 #line 2077 "parser.yy"
     6977#line 2076 "parser.yy" /* yacc.c:1646  */
    78606978    {
    78616979                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78626980                        typedefTable.leaveScope();
    7863                         (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
     6981                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
    78646982                }
     6983#line 6984 "Parser/parser.cc" /* yacc.c:1646  */
    78656984    break;
    78666985
    78676986  case 538:
    7868 
    7869 /* Line 1806 of yacc.c  */
    7870 #line 2086 "parser.yy"
     6987#line 2085 "parser.yy" /* yacc.c:1646  */
    78716988    {
    78726989                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78736990                        typedefTable.leaveScope();
    7874                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6991                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78756992                }
     6993#line 6994 "Parser/parser.cc" /* yacc.c:1646  */
    78766994    break;
    78776995
    78786996  case 539:
    7879 
    7880 /* Line 1806 of yacc.c  */
    7881 #line 2092 "parser.yy"
     6997#line 2091 "parser.yy" /* yacc.c:1646  */
    78826998    {
    78836999                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78847000                        typedefTable.leaveScope();
    7885                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
     7001                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
    78867002                }
     7003#line 7004 "Parser/parser.cc" /* yacc.c:1646  */
    78877004    break;
    78887005
    78897006  case 540:
    7890 
    7891 /* Line 1806 of yacc.c  */
    7892 #line 2098 "parser.yy"
     7007#line 2097 "parser.yy" /* yacc.c:1646  */
    78937008    {
    78947009                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78957010                        typedefTable.leaveScope();
    7896                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7011                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    78977012                }
     7013#line 7014 "Parser/parser.cc" /* yacc.c:1646  */
    78987014    break;
    78997015
    79007016  case 541:
    7901 
    7902 /* Line 1806 of yacc.c  */
    7903 #line 2104 "parser.yy"
     7017#line 2103 "parser.yy" /* yacc.c:1646  */
    79047018    {
    79057019                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79067020                        typedefTable.leaveScope();
    7907                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7021                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    79087022                }
     7023#line 7024 "Parser/parser.cc" /* yacc.c:1646  */
    79097024    break;
    79107025
    79117026  case 542:
    7912 
    7913 /* Line 1806 of yacc.c  */
    7914 #line 2110 "parser.yy"
     7027#line 2109 "parser.yy" /* yacc.c:1646  */
    79157028    {
    79167029                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79177030                        typedefTable.leaveScope();
    7918                         (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
     7031                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
    79197032                }
     7033#line 7034 "Parser/parser.cc" /* yacc.c:1646  */
    79207034    break;
    79217035
    79227036  case 543:
    7923 
    7924 /* Line 1806 of yacc.c  */
    7925 #line 2118 "parser.yy"
     7037#line 2117 "parser.yy" /* yacc.c:1646  */
    79267038    {
    79277039                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79287040                        typedefTable.leaveScope();
    7929                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
     7041                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
    79307042                }
     7043#line 7044 "Parser/parser.cc" /* yacc.c:1646  */
    79317044    break;
    79327045
    79337046  case 544:
    7934 
    7935 /* Line 1806 of yacc.c  */
    7936 #line 2124 "parser.yy"
     7047#line 2123 "parser.yy" /* yacc.c:1646  */
    79377048    {
    79387049                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79397050                        typedefTable.leaveScope();
    7940                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7051                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79417052                }
     7053#line 7054 "Parser/parser.cc" /* yacc.c:1646  */
    79427054    break;
    79437055
    79447056  case 545:
    7945 
    7946 /* Line 1806 of yacc.c  */
    7947 #line 2132 "parser.yy"
     7057#line 2131 "parser.yy" /* yacc.c:1646  */
    79487058    {
    79497059                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79507060                        typedefTable.leaveScope();
    7951                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7061                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79527062                }
     7063#line 7064 "Parser/parser.cc" /* yacc.c:1646  */
    79537064    break;
    79547065
    79557066  case 546:
    7956 
    7957 /* Line 1806 of yacc.c  */
    7958 #line 2138 "parser.yy"
     7067#line 2137 "parser.yy" /* yacc.c:1646  */
    79597068    {
    79607069                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79617070                        typedefTable.leaveScope();
    7962                         (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) );
     7071                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
    79637072                }
     7073#line 7074 "Parser/parser.cc" /* yacc.c:1646  */
    79647074    break;
    79657075
    79667076  case 550:
    7967 
    7968 /* Line 1806 of yacc.c  */
    7969 #line 2153 "parser.yy"
    7970     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    7971     break;
    7972 
    7973   case 551:
    7974 
    7975 /* Line 1806 of yacc.c  */
    7976 #line 2158 "parser.yy"
    7977     { (yyval.constant) = nullptr; }
     7077#line 2152 "parser.yy" /* yacc.c:1646  */
     7078    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     7079#line 7080 "Parser/parser.cc" /* yacc.c:1646  */
    79787080    break;
    79797081
    79807082  case 552:
    7981 
    7982 /* Line 1806 of yacc.c  */
    7983 #line 2160 "parser.yy"
    7984     { (yyval.constant) = (yyvsp[(3) - (5)].constant); }
     7083#line 2157 "parser.yy" /* yacc.c:1646  */
     7084    { delete (yyvsp[-2].str); }
     7085#line 7086 "Parser/parser.cc" /* yacc.c:1646  */
    79857086    break;
    79867087
    79877088  case 553:
    7988 
    7989 /* Line 1806 of yacc.c  */
    7990 #line 2165 "parser.yy"
    7991     { (yyval.decl) = nullptr; }
     7089#line 2162 "parser.yy" /* yacc.c:1646  */
     7090    { (yyval.decl) = 0; }
     7091#line 7092 "Parser/parser.cc" /* yacc.c:1646  */
    79927092    break;
    79937093
    79947094  case 556:
    7995 
    7996 /* Line 1806 of yacc.c  */
    7997 #line 2172 "parser.yy"
    7998     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7095#line 2169 "parser.yy" /* yacc.c:1646  */
     7096    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7097#line 7098 "Parser/parser.cc" /* yacc.c:1646  */
    79997098    break;
    80007099
    80017100  case 557:
    8002 
    8003 /* Line 1806 of yacc.c  */
    8004 #line 2178 "parser.yy"
    8005     { (yyval.decl) = nullptr; }
     7101#line 2175 "parser.yy" /* yacc.c:1646  */
     7102    { (yyval.decl) = 0; }
     7103#line 7104 "Parser/parser.cc" /* yacc.c:1646  */
    80067104    break;
    80077105
    80087106  case 562:
    8009 
    8010 /* Line 1806 of yacc.c  */
    8011 #line 2189 "parser.yy"
    8012     { delete (yyvsp[(3) - (4)].en); }
     7107#line 2186 "parser.yy" /* yacc.c:1646  */
     7108    { delete (yyvsp[-1].en); }
     7109#line 7110 "Parser/parser.cc" /* yacc.c:1646  */
    80137110    break;
    80147111
    80157112  case 563:
    8016 
    8017 /* Line 1806 of yacc.c  */
    8018 #line 2193 "parser.yy"
    8019     { delete (yyvsp[(1) - (1)].tok); }
     7113#line 2190 "parser.yy" /* yacc.c:1646  */
     7114    { delete (yyvsp[0].tok); }
     7115#line 7116 "Parser/parser.cc" /* yacc.c:1646  */
    80207116    break;
    80217117
    80227118  case 564:
    8023 
    8024 /* Line 1806 of yacc.c  */
    8025 #line 2194 "parser.yy"
    8026     { delete (yyvsp[(1) - (1)].decl); }
     7119#line 2191 "parser.yy" /* yacc.c:1646  */
     7120    { delete (yyvsp[0].decl); }
     7121#line 7122 "Parser/parser.cc" /* yacc.c:1646  */
    80277122    break;
    80287123
    80297124  case 565:
    8030 
    8031 /* Line 1806 of yacc.c  */
    8032 #line 2195 "parser.yy"
    8033     { delete (yyvsp[(1) - (1)].decl); }
     7125#line 2192 "parser.yy" /* yacc.c:1646  */
     7126    { delete (yyvsp[0].decl); }
     7127#line 7128 "Parser/parser.cc" /* yacc.c:1646  */
    80347128    break;
    80357129
    80367130  case 566:
    8037 
    8038 /* Line 1806 of yacc.c  */
    8039 #line 2196 "parser.yy"
    8040     { delete (yyvsp[(1) - (1)].decl); }
     7131#line 2193 "parser.yy" /* yacc.c:1646  */
     7132    { delete (yyvsp[0].decl); }
     7133#line 7134 "Parser/parser.cc" /* yacc.c:1646  */
    80417134    break;
    80427135
    80437136  case 567:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 2231 "parser.yy"
    8047     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7137#line 2228 "parser.yy" /* yacc.c:1646  */
     7138    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7139#line 7140 "Parser/parser.cc" /* yacc.c:1646  */
    80487140    break;
    80497141
    80507142  case 569:
    8051 
    8052 /* Line 1806 of yacc.c  */
    8053 #line 2234 "parser.yy"
    8054     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7143#line 2231 "parser.yy" /* yacc.c:1646  */
     7144    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7145#line 7146 "Parser/parser.cc" /* yacc.c:1646  */
    80557146    break;
    80567147
    80577148  case 570:
    8058 
    8059 /* Line 1806 of yacc.c  */
    8060 #line 2236 "parser.yy"
    8061     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7149#line 2233 "parser.yy" /* yacc.c:1646  */
     7150    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7151#line 7152 "Parser/parser.cc" /* yacc.c:1646  */
    80627152    break;
    80637153
    80647154  case 571:
    8065 
    8066 /* Line 1806 of yacc.c  */
    8067 #line 2241 "parser.yy"
    8068     {
    8069                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8070                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7155#line 2238 "parser.yy" /* yacc.c:1646  */
     7156    {
     7157                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7158                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    80717159                }
     7160#line 7161 "Parser/parser.cc" /* yacc.c:1646  */
    80727161    break;
    80737162
    80747163  case 572:
    8075 
    8076 /* Line 1806 of yacc.c  */
    8077 #line 2246 "parser.yy"
    8078     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7164#line 2243 "parser.yy" /* yacc.c:1646  */
     7165    { (yyval.decl) = (yyvsp[-1].decl); }
     7166#line 7167 "Parser/parser.cc" /* yacc.c:1646  */
    80797167    break;
    80807168
    80817169  case 573:
    8082 
    8083 /* Line 1806 of yacc.c  */
    8084 #line 2251 "parser.yy"
    8085     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7170#line 2248 "parser.yy" /* yacc.c:1646  */
     7171    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7172#line 7173 "Parser/parser.cc" /* yacc.c:1646  */
    80867173    break;
    80877174
    80887175  case 574:
    8089 
    8090 /* Line 1806 of yacc.c  */
    8091 #line 2253 "parser.yy"
    8092     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7176#line 2250 "parser.yy" /* yacc.c:1646  */
     7177    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7178#line 7179 "Parser/parser.cc" /* yacc.c:1646  */
    80937179    break;
    80947180
    80957181  case 575:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2255 "parser.yy"
    8099     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7182#line 2252 "parser.yy" /* yacc.c:1646  */
     7183    { (yyval.decl) = (yyvsp[-1].decl); }
     7184#line 7185 "Parser/parser.cc" /* yacc.c:1646  */
    81007185    break;
    81017186
    81027187  case 576:
    8103 
    8104 /* Line 1806 of yacc.c  */
    8105 #line 2260 "parser.yy"
    8106     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7188#line 2257 "parser.yy" /* yacc.c:1646  */
     7189    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7190#line 7191 "Parser/parser.cc" /* yacc.c:1646  */
    81077191    break;
    81087192
    81097193  case 577:
    8110 
    8111 /* Line 1806 of yacc.c  */
    8112 #line 2262 "parser.yy"
    8113     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7194#line 2259 "parser.yy" /* yacc.c:1646  */
     7195    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7196#line 7197 "Parser/parser.cc" /* yacc.c:1646  */
    81147197    break;
    81157198
    81167199  case 578:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2264 "parser.yy"
    8120     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7200#line 2261 "parser.yy" /* yacc.c:1646  */
     7201    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7202#line 7203 "Parser/parser.cc" /* yacc.c:1646  */
    81217203    break;
    81227204
    81237205  case 579:
    8124 
    8125 /* Line 1806 of yacc.c  */
    8126 #line 2266 "parser.yy"
    8127     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7206#line 2263 "parser.yy" /* yacc.c:1646  */
     7207    { (yyval.decl) = (yyvsp[-1].decl); }
     7208#line 7209 "Parser/parser.cc" /* yacc.c:1646  */
    81287209    break;
    81297210
    81307211  case 580:
    8131 
    8132 /* Line 1806 of yacc.c  */
    8133 #line 2271 "parser.yy"
    8134     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7212#line 2268 "parser.yy" /* yacc.c:1646  */
     7213    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7214#line 7215 "Parser/parser.cc" /* yacc.c:1646  */
    81357215    break;
    81367216
    81377217  case 581:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2273 "parser.yy"
    8141     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7218#line 2270 "parser.yy" /* yacc.c:1646  */
     7219    { (yyval.decl) = (yyvsp[-1].decl); }
     7220#line 7221 "Parser/parser.cc" /* yacc.c:1646  */
    81427221    break;
    81437222
    81447223  case 582:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2282 "parser.yy"
    8148     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7224#line 2279 "parser.yy" /* yacc.c:1646  */
     7225    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7226#line 7227 "Parser/parser.cc" /* yacc.c:1646  */
    81497227    break;
    81507228
    81517229  case 584:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2285 "parser.yy"
    8155     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7230#line 2282 "parser.yy" /* yacc.c:1646  */
     7231    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7232#line 7233 "Parser/parser.cc" /* yacc.c:1646  */
    81567233    break;
    81577234
    81587235  case 585:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2290 "parser.yy"
    8162     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7236#line 2287 "parser.yy" /* yacc.c:1646  */
     7237    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7238#line 7239 "Parser/parser.cc" /* yacc.c:1646  */
    81637239    break;
    81647240
    81657241  case 586:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2292 "parser.yy"
    8169     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7242#line 2289 "parser.yy" /* yacc.c:1646  */
     7243    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7244#line 7245 "Parser/parser.cc" /* yacc.c:1646  */
    81707245    break;
    81717246
    81727247  case 587:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2294 "parser.yy"
    8176     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7248#line 2291 "parser.yy" /* yacc.c:1646  */
     7249    { (yyval.decl) = (yyvsp[-1].decl); }
     7250#line 7251 "Parser/parser.cc" /* yacc.c:1646  */
    81777251    break;
    81787252
    81797253  case 588:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2299 "parser.yy"
    8183     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7254#line 2296 "parser.yy" /* yacc.c:1646  */
     7255    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7256#line 7257 "Parser/parser.cc" /* yacc.c:1646  */
    81847257    break;
    81857258
    81867259  case 589:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2301 "parser.yy"
    8190     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7260#line 2298 "parser.yy" /* yacc.c:1646  */
     7261    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7262#line 7263 "Parser/parser.cc" /* yacc.c:1646  */
    81917263    break;
    81927264
    81937265  case 590:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2303 "parser.yy"
    8197     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7266#line 2300 "parser.yy" /* yacc.c:1646  */
     7267    { (yyval.decl) = (yyvsp[-1].decl); }
     7268#line 7269 "Parser/parser.cc" /* yacc.c:1646  */
    81987269    break;
    81997270
    82007271  case 591:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2308 "parser.yy"
    8204     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7272#line 2305 "parser.yy" /* yacc.c:1646  */
     7273    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7274#line 7275 "Parser/parser.cc" /* yacc.c:1646  */
    82057275    break;
    82067276
    82077277  case 592:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2310 "parser.yy"
    8211     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7278#line 2307 "parser.yy" /* yacc.c:1646  */
     7279    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7280#line 7281 "Parser/parser.cc" /* yacc.c:1646  */
    82127281    break;
    82137282
    82147283  case 593:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2312 "parser.yy"
    8218     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7284#line 2309 "parser.yy" /* yacc.c:1646  */
     7285    { (yyval.decl) = (yyvsp[-1].decl); }
     7286#line 7287 "Parser/parser.cc" /* yacc.c:1646  */
    82197287    break;
    82207288
    82217289  case 597:
    8222 
    8223 /* Line 1806 of yacc.c  */
    8224 #line 2327 "parser.yy"
    8225     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     7290#line 2324 "parser.yy" /* yacc.c:1646  */
     7291    { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
     7292#line 7293 "Parser/parser.cc" /* yacc.c:1646  */
    82267293    break;
    82277294
    82287295  case 598:
    8229 
    8230 /* Line 1806 of yacc.c  */
    8231 #line 2329 "parser.yy"
    8232     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     7296#line 2326 "parser.yy" /* yacc.c:1646  */
     7297    { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
     7298#line 7299 "Parser/parser.cc" /* yacc.c:1646  */
    82337299    break;
    82347300
    82357301  case 599:
    8236 
    8237 /* Line 1806 of yacc.c  */
    8238 #line 2331 "parser.yy"
    8239     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7302#line 2328 "parser.yy" /* yacc.c:1646  */
     7303    { (yyval.decl) = (yyvsp[-1].decl); }
     7304#line 7305 "Parser/parser.cc" /* yacc.c:1646  */
    82407305    break;
    82417306
    82427307  case 600:
    8243 
    8244 /* Line 1806 of yacc.c  */
    8245 #line 2336 "parser.yy"
    8246     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7308#line 2333 "parser.yy" /* yacc.c:1646  */
     7309    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7310#line 7311 "Parser/parser.cc" /* yacc.c:1646  */
    82477311    break;
    82487312
    82497313  case 601:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2338 "parser.yy"
    8253     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7314#line 2335 "parser.yy" /* yacc.c:1646  */
     7315    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7316#line 7317 "Parser/parser.cc" /* yacc.c:1646  */
    82547317    break;
    82557318
    82567319  case 602:
    8257 
    8258 /* Line 1806 of yacc.c  */
    8259 #line 2340 "parser.yy"
    8260     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7320#line 2337 "parser.yy" /* yacc.c:1646  */
     7321    { (yyval.decl) = (yyvsp[-1].decl); }
     7322#line 7323 "Parser/parser.cc" /* yacc.c:1646  */
    82617323    break;
    82627324
    82637325  case 603:
    8264 
    8265 /* Line 1806 of yacc.c  */
    8266 #line 2345 "parser.yy"
    8267     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7326#line 2342 "parser.yy" /* yacc.c:1646  */
     7327    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7328#line 7329 "Parser/parser.cc" /* yacc.c:1646  */
    82687329    break;
    82697330
    82707331  case 604:
    8271 
    8272 /* Line 1806 of yacc.c  */
    8273 #line 2347 "parser.yy"
    8274     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7332#line 2344 "parser.yy" /* yacc.c:1646  */
     7333    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7334#line 7335 "Parser/parser.cc" /* yacc.c:1646  */
    82757335    break;
    82767336
    82777337  case 605:
    8278 
    8279 /* Line 1806 of yacc.c  */
    8280 #line 2349 "parser.yy"
    8281     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7338#line 2346 "parser.yy" /* yacc.c:1646  */
     7339    { (yyval.decl) = (yyvsp[-1].decl); }
     7340#line 7341 "Parser/parser.cc" /* yacc.c:1646  */
    82827341    break;
    82837342
    82847343  case 606:
    8285 
    8286 /* Line 1806 of yacc.c  */
    8287 #line 2364 "parser.yy"
    8288     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7344#line 2361 "parser.yy" /* yacc.c:1646  */
     7345    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7346#line 7347 "Parser/parser.cc" /* yacc.c:1646  */
    82897347    break;
    82907348
    82917349  case 608:
    8292 
    8293 /* Line 1806 of yacc.c  */
    8294 #line 2367 "parser.yy"
    8295     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7350#line 2364 "parser.yy" /* yacc.c:1646  */
     7351    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7352#line 7353 "Parser/parser.cc" /* yacc.c:1646  */
    82967353    break;
    82977354
    82987355  case 609:
    8299 
    8300 /* Line 1806 of yacc.c  */
    8301 #line 2369 "parser.yy"
    8302     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7356#line 2366 "parser.yy" /* yacc.c:1646  */
     7357    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7358#line 7359 "Parser/parser.cc" /* yacc.c:1646  */
    83037359    break;
    83047360
    83057361  case 611:
    8306 
    8307 /* Line 1806 of yacc.c  */
    8308 #line 2375 "parser.yy"
    8309     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7362#line 2372 "parser.yy" /* yacc.c:1646  */
     7363    { (yyval.decl) = (yyvsp[-1].decl); }
     7364#line 7365 "Parser/parser.cc" /* yacc.c:1646  */
    83107365    break;
    83117366
    83127367  case 612:
    8313 
    8314 /* Line 1806 of yacc.c  */
    8315 #line 2380 "parser.yy"
    8316     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7368#line 2377 "parser.yy" /* yacc.c:1646  */
     7369    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7370#line 7371 "Parser/parser.cc" /* yacc.c:1646  */
    83177371    break;
    83187372
    83197373  case 613:
    8320 
    8321 /* Line 1806 of yacc.c  */
    8322 #line 2382 "parser.yy"
    8323     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7374#line 2379 "parser.yy" /* yacc.c:1646  */
     7375    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7376#line 7377 "Parser/parser.cc" /* yacc.c:1646  */
    83247377    break;
    83257378
    83267379  case 614:
    8327 
    8328 /* Line 1806 of yacc.c  */
    8329 #line 2384 "parser.yy"
    8330     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7380#line 2381 "parser.yy" /* yacc.c:1646  */
     7381    { (yyval.decl) = (yyvsp[-1].decl); }
     7382#line 7383 "Parser/parser.cc" /* yacc.c:1646  */
    83317383    break;
    83327384
    83337385  case 615:
    8334 
    8335 /* Line 1806 of yacc.c  */
    8336 #line 2389 "parser.yy"
    8337     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7386#line 2386 "parser.yy" /* yacc.c:1646  */
     7387    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7388#line 7389 "Parser/parser.cc" /* yacc.c:1646  */
    83387389    break;
    83397390
    83407391  case 616:
    8341 
    8342 /* Line 1806 of yacc.c  */
    8343 #line 2391 "parser.yy"
    8344     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7392#line 2388 "parser.yy" /* yacc.c:1646  */
     7393    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7394#line 7395 "Parser/parser.cc" /* yacc.c:1646  */
    83457395    break;
    83467396
    83477397  case 617:
    8348 
    8349 /* Line 1806 of yacc.c  */
    8350 #line 2393 "parser.yy"
    8351     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7398#line 2390 "parser.yy" /* yacc.c:1646  */
     7399    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7400#line 7401 "Parser/parser.cc" /* yacc.c:1646  */
    83527401    break;
    83537402
    83547403  case 618:
    8355 
    8356 /* Line 1806 of yacc.c  */
    8357 #line 2395 "parser.yy"
    8358     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7404#line 2392 "parser.yy" /* yacc.c:1646  */
     7405    { (yyval.decl) = (yyvsp[-1].decl); }
     7406#line 7407 "Parser/parser.cc" /* yacc.c:1646  */
    83597407    break;
    83607408
    83617409  case 619:
    8362 
    8363 /* Line 1806 of yacc.c  */
    8364 #line 2400 "parser.yy"
    8365     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7410#line 2397 "parser.yy" /* yacc.c:1646  */
     7411    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7412#line 7413 "Parser/parser.cc" /* yacc.c:1646  */
    83667413    break;
    83677414
    83687415  case 620:
    8369 
    8370 /* Line 1806 of yacc.c  */
    8371 #line 2402 "parser.yy"
    8372     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7416#line 2399 "parser.yy" /* yacc.c:1646  */
     7417    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7418#line 7419 "Parser/parser.cc" /* yacc.c:1646  */
    83737419    break;
    83747420
    83757421  case 621:
    8376 
    8377 /* Line 1806 of yacc.c  */
    8378 #line 2404 "parser.yy"
    8379     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7422#line 2401 "parser.yy" /* yacc.c:1646  */
     7423    { (yyval.decl) = (yyvsp[-1].decl); }
     7424#line 7425 "Parser/parser.cc" /* yacc.c:1646  */
    83807425    break;
    83817426
    83827427  case 622:
    8383 
    8384 /* Line 1806 of yacc.c  */
    8385 #line 2414 "parser.yy"
    8386     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7428#line 2411 "parser.yy" /* yacc.c:1646  */
     7429    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7430#line 7431 "Parser/parser.cc" /* yacc.c:1646  */
    83877431    break;
    83887432
    83897433  case 624:
    8390 
    8391 /* Line 1806 of yacc.c  */
    8392 #line 2417 "parser.yy"
    8393     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7434#line 2414 "parser.yy" /* yacc.c:1646  */
     7435    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7436#line 7437 "Parser/parser.cc" /* yacc.c:1646  */
    83947437    break;
    83957438
    83967439  case 625:
    8397 
    8398 /* Line 1806 of yacc.c  */
    8399 #line 2419 "parser.yy"
    8400     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7440#line 2416 "parser.yy" /* yacc.c:1646  */
     7441    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7442#line 7443 "Parser/parser.cc" /* yacc.c:1646  */
    84017443    break;
    84027444
    84037445  case 626:
    8404 
    8405 /* Line 1806 of yacc.c  */
    8406 #line 2424 "parser.yy"
    8407     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7446#line 2421 "parser.yy" /* yacc.c:1646  */
     7447    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7448#line 7449 "Parser/parser.cc" /* yacc.c:1646  */
    84087449    break;
    84097450
    84107451  case 627:
    8411 
    8412 /* Line 1806 of yacc.c  */
    8413 #line 2426 "parser.yy"
    8414     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7452#line 2423 "parser.yy" /* yacc.c:1646  */
     7453    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7454#line 7455 "Parser/parser.cc" /* yacc.c:1646  */
    84157455    break;
    84167456
    84177457  case 628:
    8418 
    8419 /* Line 1806 of yacc.c  */
    8420 #line 2428 "parser.yy"
    8421     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7458#line 2425 "parser.yy" /* yacc.c:1646  */
     7459    { (yyval.decl) = (yyvsp[-1].decl); }
     7460#line 7461 "Parser/parser.cc" /* yacc.c:1646  */
    84227461    break;
    84237462
    84247463  case 629:
    8425 
    8426 /* Line 1806 of yacc.c  */
    8427 #line 2433 "parser.yy"
    8428     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7464#line 2430 "parser.yy" /* yacc.c:1646  */
     7465    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7466#line 7467 "Parser/parser.cc" /* yacc.c:1646  */
    84297467    break;
    84307468
    84317469  case 630:
    8432 
    8433 /* Line 1806 of yacc.c  */
    8434 #line 2435 "parser.yy"
    8435     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7470#line 2432 "parser.yy" /* yacc.c:1646  */
     7471    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7472#line 7473 "Parser/parser.cc" /* yacc.c:1646  */
    84367473    break;
    84377474
    84387475  case 631:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2437 "parser.yy"
    8442     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7476#line 2434 "parser.yy" /* yacc.c:1646  */
     7477    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7478#line 7479 "Parser/parser.cc" /* yacc.c:1646  */
    84437479    break;
    84447480
    84457481  case 632:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2439 "parser.yy"
    8449     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7482#line 2436 "parser.yy" /* yacc.c:1646  */
     7483    { (yyval.decl) = (yyvsp[-1].decl); }
     7484#line 7485 "Parser/parser.cc" /* yacc.c:1646  */
    84507485    break;
    84517486
    84527487  case 633:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2444 "parser.yy"
    8456     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7488#line 2441 "parser.yy" /* yacc.c:1646  */
     7489    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7490#line 7491 "Parser/parser.cc" /* yacc.c:1646  */
    84577491    break;
    84587492
    84597493  case 634:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2446 "parser.yy"
    8463     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7494#line 2443 "parser.yy" /* yacc.c:1646  */
     7495    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7496#line 7497 "Parser/parser.cc" /* yacc.c:1646  */
    84647497    break;
    84657498
    84667499  case 635:
    8467 
    8468 /* Line 1806 of yacc.c  */
    8469 #line 2448 "parser.yy"
    8470     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7500#line 2445 "parser.yy" /* yacc.c:1646  */
     7501    { (yyval.decl) = (yyvsp[-1].decl); }
     7502#line 7503 "Parser/parser.cc" /* yacc.c:1646  */
    84717503    break;
    84727504
    84737505  case 636:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2479 "parser.yy"
    8477     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7506#line 2476 "parser.yy" /* yacc.c:1646  */
     7507    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7508#line 7509 "Parser/parser.cc" /* yacc.c:1646  */
    84787509    break;
    84797510
    84807511  case 638:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2482 "parser.yy"
    8484     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7512#line 2479 "parser.yy" /* yacc.c:1646  */
     7513    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7514#line 7515 "Parser/parser.cc" /* yacc.c:1646  */
    84857515    break;
    84867516
    84877517  case 639:
    8488 
    8489 /* Line 1806 of yacc.c  */
    8490 #line 2484 "parser.yy"
    8491     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7518#line 2481 "parser.yy" /* yacc.c:1646  */
     7519    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7520#line 7521 "Parser/parser.cc" /* yacc.c:1646  */
    84927521    break;
    84937522
    84947523  case 640:
    8495 
    8496 /* Line 1806 of yacc.c  */
    8497 #line 2489 "parser.yy"
    8498     {
    8499                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8500                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7524#line 2486 "parser.yy" /* yacc.c:1646  */
     7525    {
     7526                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7527                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    85017528                }
     7529#line 7530 "Parser/parser.cc" /* yacc.c:1646  */
    85027530    break;
    85037531
    85047532  case 641:
    8505 
    8506 /* Line 1806 of yacc.c  */
    8507 #line 2494 "parser.yy"
    8508     {
    8509                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8510                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7533#line 2491 "parser.yy" /* yacc.c:1646  */
     7534    {
     7535                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7536                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    85117537                }
     7538#line 7539 "Parser/parser.cc" /* yacc.c:1646  */
    85127539    break;
    85137540
    85147541  case 642:
    8515 
    8516 /* Line 1806 of yacc.c  */
    8517 #line 2502 "parser.yy"
    8518     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7542#line 2499 "parser.yy" /* yacc.c:1646  */
     7543    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7544#line 7545 "Parser/parser.cc" /* yacc.c:1646  */
    85197545    break;
    85207546
    85217547  case 643:
    8522 
    8523 /* Line 1806 of yacc.c  */
    8524 #line 2504 "parser.yy"
    8525     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7548#line 2501 "parser.yy" /* yacc.c:1646  */
     7549    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7550#line 7551 "Parser/parser.cc" /* yacc.c:1646  */
    85267551    break;
    85277552
    85287553  case 644:
    8529 
    8530 /* Line 1806 of yacc.c  */
    8531 #line 2506 "parser.yy"
    8532     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7554#line 2503 "parser.yy" /* yacc.c:1646  */
     7555    { (yyval.decl) = (yyvsp[-1].decl); }
     7556#line 7557 "Parser/parser.cc" /* yacc.c:1646  */
    85337557    break;
    85347558
    85357559  case 645:
    8536 
    8537 /* Line 1806 of yacc.c  */
    8538 #line 2511 "parser.yy"
    8539     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7560#line 2508 "parser.yy" /* yacc.c:1646  */
     7561    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7562#line 7563 "Parser/parser.cc" /* yacc.c:1646  */
    85407563    break;
    85417564
    85427565  case 646:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2513 "parser.yy"
    8546     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7566#line 2510 "parser.yy" /* yacc.c:1646  */
     7567    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7568#line 7569 "Parser/parser.cc" /* yacc.c:1646  */
    85477569    break;
    85487570
    85497571  case 647:
    8550 
    8551 /* Line 1806 of yacc.c  */
    8552 #line 2518 "parser.yy"
    8553     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7572#line 2515 "parser.yy" /* yacc.c:1646  */
     7573    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7574#line 7575 "Parser/parser.cc" /* yacc.c:1646  */
    85547575    break;
    85557576
    85567577  case 648:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2520 "parser.yy"
    8560     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7578#line 2517 "parser.yy" /* yacc.c:1646  */
     7579    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7580#line 7581 "Parser/parser.cc" /* yacc.c:1646  */
    85617581    break;
    85627582
    85637583  case 650:
    8564 
    8565 /* Line 1806 of yacc.c  */
    8566 #line 2535 "parser.yy"
    8567     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7584#line 2532 "parser.yy" /* yacc.c:1646  */
     7585    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7586#line 7587 "Parser/parser.cc" /* yacc.c:1646  */
    85687587    break;
    85697588
    85707589  case 651:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2537 "parser.yy"
    8574     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7590#line 2534 "parser.yy" /* yacc.c:1646  */
     7591    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7592#line 7593 "Parser/parser.cc" /* yacc.c:1646  */
    85757593    break;
    85767594
    85777595  case 652:
    8578 
    8579 /* Line 1806 of yacc.c  */
    8580 #line 2542 "parser.yy"
     7596#line 2539 "parser.yy" /* yacc.c:1646  */
    85817597    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7598#line 7599 "Parser/parser.cc" /* yacc.c:1646  */
    85827599    break;
    85837600
    85847601  case 653:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2544 "parser.yy"
    8588     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7602#line 2541 "parser.yy" /* yacc.c:1646  */
     7603    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7604#line 7605 "Parser/parser.cc" /* yacc.c:1646  */
    85897605    break;
    85907606
    85917607  case 654:
    8592 
    8593 /* Line 1806 of yacc.c  */
    8594 #line 2546 "parser.yy"
    8595     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7608#line 2543 "parser.yy" /* yacc.c:1646  */
     7609    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7610#line 7611 "Parser/parser.cc" /* yacc.c:1646  */
    85967611    break;
    85977612
    85987613  case 655:
    8599 
    8600 /* Line 1806 of yacc.c  */
    8601 #line 2548 "parser.yy"
    8602     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7614#line 2545 "parser.yy" /* yacc.c:1646  */
     7615    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7616#line 7617 "Parser/parser.cc" /* yacc.c:1646  */
    86037617    break;
    86047618
    86057619  case 656:
    8606 
    8607 /* Line 1806 of yacc.c  */
    8608 #line 2550 "parser.yy"
    8609     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7620#line 2547 "parser.yy" /* yacc.c:1646  */
     7621    { (yyval.decl) = (yyvsp[-1].decl); }
     7622#line 7623 "Parser/parser.cc" /* yacc.c:1646  */
    86107623    break;
    86117624
    86127625  case 658:
    8613 
    8614 /* Line 1806 of yacc.c  */
    8615 #line 2556 "parser.yy"
    8616     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7626#line 2553 "parser.yy" /* yacc.c:1646  */
     7627    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7628#line 7629 "Parser/parser.cc" /* yacc.c:1646  */
    86177629    break;
    86187630
    86197631  case 659:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2558 "parser.yy"
    8623     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7632#line 2555 "parser.yy" /* yacc.c:1646  */
     7633    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7634#line 7635 "Parser/parser.cc" /* yacc.c:1646  */
    86247635    break;
    86257636
    86267637  case 660:
    8627 
    8628 /* Line 1806 of yacc.c  */
    8629 #line 2560 "parser.yy"
    8630     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7638#line 2557 "parser.yy" /* yacc.c:1646  */
     7639    { (yyval.decl) = (yyvsp[-1].decl); }
     7640#line 7641 "Parser/parser.cc" /* yacc.c:1646  */
    86317641    break;
    86327642
    86337643  case 661:
    8634 
    8635 /* Line 1806 of yacc.c  */
    8636 #line 2565 "parser.yy"
    8637     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     7644#line 2562 "parser.yy" /* yacc.c:1646  */
     7645    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); }
     7646#line 7647 "Parser/parser.cc" /* yacc.c:1646  */
    86387647    break;
    86397648
    86407649  case 662:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2567 "parser.yy"
    8644     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7650#line 2564 "parser.yy" /* yacc.c:1646  */
     7651    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7652#line 7653 "Parser/parser.cc" /* yacc.c:1646  */
    86457653    break;
    86467654
    86477655  case 663:
    8648 
    8649 /* Line 1806 of yacc.c  */
    8650 #line 2569 "parser.yy"
    8651     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7656#line 2566 "parser.yy" /* yacc.c:1646  */
     7657    { (yyval.decl) = (yyvsp[-1].decl); }
     7658#line 7659 "Parser/parser.cc" /* yacc.c:1646  */
    86527659    break;
    86537660
    86547661  case 664:
    8655 
    8656 /* Line 1806 of yacc.c  */
    8657 #line 2575 "parser.yy"
     7662#line 2572 "parser.yy" /* yacc.c:1646  */
    86587663    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7664#line 7665 "Parser/parser.cc" /* yacc.c:1646  */
    86597665    break;
    86607666
    86617667  case 665:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2577 "parser.yy"
    8665     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     7668#line 2574 "parser.yy" /* yacc.c:1646  */
     7669    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
     7670#line 7671 "Parser/parser.cc" /* yacc.c:1646  */
    86667671    break;
    86677672
    86687673  case 667:
    8669 
    8670 /* Line 1806 of yacc.c  */
    8671 #line 2583 "parser.yy"
    8672     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     7674#line 2580 "parser.yy" /* yacc.c:1646  */
     7675    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
     7676#line 7677 "Parser/parser.cc" /* yacc.c:1646  */
    86737677    break;
    86747678
    86757679  case 668:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2585 "parser.yy"
     7680#line 2582 "parser.yy" /* yacc.c:1646  */
    86797681    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     7682#line 7683 "Parser/parser.cc" /* yacc.c:1646  */
    86807683    break;
    86817684
    86827685  case 669:
    8683 
    8684 /* Line 1806 of yacc.c  */
    8685 #line 2587 "parser.yy"
    8686     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     7686#line 2584 "parser.yy" /* yacc.c:1646  */
     7687    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
     7688#line 7689 "Parser/parser.cc" /* yacc.c:1646  */
    86877689    break;
    86887690
    86897691  case 670:
    8690 
    8691 /* Line 1806 of yacc.c  */
    8692 #line 2589 "parser.yy"
    8693     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7692#line 2586 "parser.yy" /* yacc.c:1646  */
     7693    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7694#line 7695 "Parser/parser.cc" /* yacc.c:1646  */
    86947695    break;
    86957696
    86967697  case 672:
    8697 
    8698 /* Line 1806 of yacc.c  */
    8699 #line 2604 "parser.yy"
    8700     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7698#line 2601 "parser.yy" /* yacc.c:1646  */
     7699    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7700#line 7701 "Parser/parser.cc" /* yacc.c:1646  */
    87017701    break;
    87027702
    87037703  case 673:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2606 "parser.yy"
    8707     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7704#line 2603 "parser.yy" /* yacc.c:1646  */
     7705    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7706#line 7707 "Parser/parser.cc" /* yacc.c:1646  */
    87087707    break;
    87097708
    87107709  case 674:
    8711 
    8712 /* Line 1806 of yacc.c  */
    8713 #line 2611 "parser.yy"
     7710#line 2608 "parser.yy" /* yacc.c:1646  */
    87147711    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7712#line 7713 "Parser/parser.cc" /* yacc.c:1646  */
    87157713    break;
    87167714
    87177715  case 675:
    8718 
    8719 /* Line 1806 of yacc.c  */
    8720 #line 2613 "parser.yy"
    8721     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7716#line 2610 "parser.yy" /* yacc.c:1646  */
     7717    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7718#line 7719 "Parser/parser.cc" /* yacc.c:1646  */
    87227719    break;
    87237720
    87247721  case 676:
    8725 
    8726 /* Line 1806 of yacc.c  */
    8727 #line 2615 "parser.yy"
    8728     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7722#line 2612 "parser.yy" /* yacc.c:1646  */
     7723    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7724#line 7725 "Parser/parser.cc" /* yacc.c:1646  */
    87297725    break;
    87307726
    87317727  case 677:
    8732 
    8733 /* Line 1806 of yacc.c  */
    8734 #line 2617 "parser.yy"
    8735     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7728#line 2614 "parser.yy" /* yacc.c:1646  */
     7729    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7730#line 7731 "Parser/parser.cc" /* yacc.c:1646  */
    87367731    break;
    87377732
    87387733  case 678:
    8739 
    8740 /* Line 1806 of yacc.c  */
    8741 #line 2619 "parser.yy"
    8742     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7734#line 2616 "parser.yy" /* yacc.c:1646  */
     7735    { (yyval.decl) = (yyvsp[-1].decl); }
     7736#line 7737 "Parser/parser.cc" /* yacc.c:1646  */
    87437737    break;
    87447738
    87457739  case 680:
    8746 
    8747 /* Line 1806 of yacc.c  */
    8748 #line 2625 "parser.yy"
    8749     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7740#line 2622 "parser.yy" /* yacc.c:1646  */
     7741    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7742#line 7743 "Parser/parser.cc" /* yacc.c:1646  */
    87507743    break;
    87517744
    87527745  case 681:
    8753 
    8754 /* Line 1806 of yacc.c  */
    8755 #line 2627 "parser.yy"
    8756     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7746#line 2624 "parser.yy" /* yacc.c:1646  */
     7747    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7748#line 7749 "Parser/parser.cc" /* yacc.c:1646  */
    87577749    break;
    87587750
    87597751  case 682:
    8760 
    8761 /* Line 1806 of yacc.c  */
    8762 #line 2629 "parser.yy"
    8763     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7752#line 2626 "parser.yy" /* yacc.c:1646  */
     7753    { (yyval.decl) = (yyvsp[-1].decl); }
     7754#line 7755 "Parser/parser.cc" /* yacc.c:1646  */
    87647755    break;
    87657756
    87667757  case 683:
    8767 
    8768 /* Line 1806 of yacc.c  */
    8769 #line 2634 "parser.yy"
    8770     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     7758#line 2631 "parser.yy" /* yacc.c:1646  */
     7759    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); }
     7760#line 7761 "Parser/parser.cc" /* yacc.c:1646  */
    87717761    break;
    87727762
    87737763  case 684:
    8774 
    8775 /* Line 1806 of yacc.c  */
    8776 #line 2636 "parser.yy"
    8777     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7764#line 2633 "parser.yy" /* yacc.c:1646  */
     7765    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7766#line 7767 "Parser/parser.cc" /* yacc.c:1646  */
    87787767    break;
    87797768
    87807769  case 685:
    8781 
    8782 /* Line 1806 of yacc.c  */
    8783 #line 2638 "parser.yy"
    8784     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7770#line 2635 "parser.yy" /* yacc.c:1646  */
     7771    { (yyval.decl) = (yyvsp[-1].decl); }
     7772#line 7773 "Parser/parser.cc" /* yacc.c:1646  */
    87857773    break;
    87867774
    87877775  case 687:
    8788 
    8789 /* Line 1806 of yacc.c  */
    8790 #line 2645 "parser.yy"
    8791     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7776#line 2642 "parser.yy" /* yacc.c:1646  */
     7777    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7778#line 7779 "Parser/parser.cc" /* yacc.c:1646  */
    87927779    break;
    87937780
    87947781  case 689:
    8795 
    8796 /* Line 1806 of yacc.c  */
    8797 #line 2656 "parser.yy"
     7782#line 2653 "parser.yy" /* yacc.c:1646  */
    87987783    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7784#line 7785 "Parser/parser.cc" /* yacc.c:1646  */
    87997785    break;
    88007786
    88017787  case 690:
    8802 
    8803 /* Line 1806 of yacc.c  */
    8804 #line 2659 "parser.yy"
    8805     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7788#line 2656 "parser.yy" /* yacc.c:1646  */
     7789    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7790#line 7791 "Parser/parser.cc" /* yacc.c:1646  */
    88067791    break;
    88077792
    88087793  case 691:
    8809 
    8810 /* Line 1806 of yacc.c  */
    8811 #line 2661 "parser.yy"
    8812     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     7794#line 2658 "parser.yy" /* yacc.c:1646  */
     7795    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
     7796#line 7797 "Parser/parser.cc" /* yacc.c:1646  */
    88137797    break;
    88147798
    88157799  case 692:
    8816 
    8817 /* Line 1806 of yacc.c  */
    8818 #line 2664 "parser.yy"
    8819     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7800#line 2661 "parser.yy" /* yacc.c:1646  */
     7801    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7802#line 7803 "Parser/parser.cc" /* yacc.c:1646  */
    88207803    break;
    88217804
    88227805  case 693:
    8823 
    8824 /* Line 1806 of yacc.c  */
    8825 #line 2666 "parser.yy"
    8826     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     7806#line 2663 "parser.yy" /* yacc.c:1646  */
     7807    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     7808#line 7809 "Parser/parser.cc" /* yacc.c:1646  */
    88277809    break;
    88287810
    88297811  case 694:
    8830 
    8831 /* Line 1806 of yacc.c  */
    8832 #line 2668 "parser.yy"
    8833     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     7812#line 2665 "parser.yy" /* yacc.c:1646  */
     7813    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
     7814#line 7815 "Parser/parser.cc" /* yacc.c:1646  */
    88347815    break;
    88357816
    88367817  case 696:
    8837 
    8838 /* Line 1806 of yacc.c  */
    8839 #line 2682 "parser.yy"
    8840     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7818#line 2679 "parser.yy" /* yacc.c:1646  */
     7819    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7820#line 7821 "Parser/parser.cc" /* yacc.c:1646  */
    88417821    break;
    88427822
    88437823  case 697:
    8844 
    8845 /* Line 1806 of yacc.c  */
    8846 #line 2684 "parser.yy"
    8847     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7824#line 2681 "parser.yy" /* yacc.c:1646  */
     7825    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7826#line 7827 "Parser/parser.cc" /* yacc.c:1646  */
    88487827    break;
    88497828
    88507829  case 698:
    8851 
    8852 /* Line 1806 of yacc.c  */
    8853 #line 2689 "parser.yy"
     7830#line 2686 "parser.yy" /* yacc.c:1646  */
    88547831    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7832#line 7833 "Parser/parser.cc" /* yacc.c:1646  */
    88557833    break;
    88567834
    88577835  case 699:
    8858 
    8859 /* Line 1806 of yacc.c  */
    8860 #line 2691 "parser.yy"
    8861     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7836#line 2688 "parser.yy" /* yacc.c:1646  */
     7837    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7838#line 7839 "Parser/parser.cc" /* yacc.c:1646  */
    88627839    break;
    88637840
    88647841  case 700:
    8865 
    8866 /* Line 1806 of yacc.c  */
    8867 #line 2693 "parser.yy"
    8868     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7842#line 2690 "parser.yy" /* yacc.c:1646  */
     7843    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7844#line 7845 "Parser/parser.cc" /* yacc.c:1646  */
    88697845    break;
    88707846
    88717847  case 701:
    8872 
    8873 /* Line 1806 of yacc.c  */
    8874 #line 2695 "parser.yy"
    8875     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7848#line 2692 "parser.yy" /* yacc.c:1646  */
     7849    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7850#line 7851 "Parser/parser.cc" /* yacc.c:1646  */
    88767851    break;
    88777852
    88787853  case 702:
    8879 
    8880 /* Line 1806 of yacc.c  */
    8881 #line 2697 "parser.yy"
    8882     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7854#line 2694 "parser.yy" /* yacc.c:1646  */
     7855    { (yyval.decl) = (yyvsp[-1].decl); }
     7856#line 7857 "Parser/parser.cc" /* yacc.c:1646  */
    88837857    break;
    88847858
    88857859  case 704:
    8886 
    8887 /* Line 1806 of yacc.c  */
    8888 #line 2703 "parser.yy"
    8889     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7860#line 2700 "parser.yy" /* yacc.c:1646  */
     7861    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7862#line 7863 "Parser/parser.cc" /* yacc.c:1646  */
    88907863    break;
    88917864
    88927865  case 705:
    8893 
    8894 /* Line 1806 of yacc.c  */
    8895 #line 2705 "parser.yy"
    8896     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7866#line 2702 "parser.yy" /* yacc.c:1646  */
     7867    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7868#line 7869 "Parser/parser.cc" /* yacc.c:1646  */
    88977869    break;
    88987870
    88997871  case 706:
    8900 
    8901 /* Line 1806 of yacc.c  */
    8902 #line 2707 "parser.yy"
    8903     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7872#line 2704 "parser.yy" /* yacc.c:1646  */
     7873    { (yyval.decl) = (yyvsp[-1].decl); }
     7874#line 7875 "Parser/parser.cc" /* yacc.c:1646  */
    89047875    break;
    89057876
    89067877  case 707:
    8907 
    8908 /* Line 1806 of yacc.c  */
    8909 #line 2712 "parser.yy"
    8910     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7878#line 2709 "parser.yy" /* yacc.c:1646  */
     7879    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7880#line 7881 "Parser/parser.cc" /* yacc.c:1646  */
    89117881    break;
    89127882
    89137883  case 708:
    8914 
    8915 /* Line 1806 of yacc.c  */
    8916 #line 2714 "parser.yy"
    8917     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7884#line 2711 "parser.yy" /* yacc.c:1646  */
     7885    { (yyval.decl) = (yyvsp[-1].decl); }
     7886#line 7887 "Parser/parser.cc" /* yacc.c:1646  */
    89187887    break;
    89197888
    89207889  case 711:
    8921 
    8922 /* Line 1806 of yacc.c  */
    8923 #line 2724 "parser.yy"
    8924     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7890#line 2721 "parser.yy" /* yacc.c:1646  */
     7891    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7892#line 7893 "Parser/parser.cc" /* yacc.c:1646  */
    89257893    break;
    89267894
    89277895  case 714:
    8928 
    8929 /* Line 1806 of yacc.c  */
    8930 #line 2734 "parser.yy"
    8931     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7896#line 2731 "parser.yy" /* yacc.c:1646  */
     7897    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7898#line 7899 "Parser/parser.cc" /* yacc.c:1646  */
    89327899    break;
    89337900
    89347901  case 715:
    8935 
    8936 /* Line 1806 of yacc.c  */
    8937 #line 2736 "parser.yy"
    8938     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7902#line 2733 "parser.yy" /* yacc.c:1646  */
     7903    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7904#line 7905 "Parser/parser.cc" /* yacc.c:1646  */
    89397905    break;
    89407906
    89417907  case 716:
    8942 
    8943 /* Line 1806 of yacc.c  */
    8944 #line 2738 "parser.yy"
    8945     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7908#line 2735 "parser.yy" /* yacc.c:1646  */
     7909    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7910#line 7911 "Parser/parser.cc" /* yacc.c:1646  */
    89467911    break;
    89477912
    89487913  case 717:
    8949 
    8950 /* Line 1806 of yacc.c  */
    8951 #line 2740 "parser.yy"
    8952     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7914#line 2737 "parser.yy" /* yacc.c:1646  */
     7915    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7916#line 7917 "Parser/parser.cc" /* yacc.c:1646  */
    89537917    break;
    89547918
    89557919  case 718:
    8956 
    8957 /* Line 1806 of yacc.c  */
    8958 #line 2742 "parser.yy"
    8959     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7920#line 2739 "parser.yy" /* yacc.c:1646  */
     7921    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7922#line 7923 "Parser/parser.cc" /* yacc.c:1646  */
    89607923    break;
    89617924
    89627925  case 719:
    8963 
    8964 /* Line 1806 of yacc.c  */
    8965 #line 2744 "parser.yy"
    8966     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7926#line 2741 "parser.yy" /* yacc.c:1646  */
     7927    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7928#line 7929 "Parser/parser.cc" /* yacc.c:1646  */
    89677929    break;
    89687930
    89697931  case 720:
    8970 
    8971 /* Line 1806 of yacc.c  */
    8972 #line 2751 "parser.yy"
    8973     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7932#line 2748 "parser.yy" /* yacc.c:1646  */
     7933    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7934#line 7935 "Parser/parser.cc" /* yacc.c:1646  */
    89747935    break;
    89757936
    89767937  case 721:
    8977 
    8978 /* Line 1806 of yacc.c  */
    8979 #line 2753 "parser.yy"
    8980     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7938#line 2750 "parser.yy" /* yacc.c:1646  */
     7939    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7940#line 7941 "Parser/parser.cc" /* yacc.c:1646  */
    89817941    break;
    89827942
    89837943  case 722:
    8984 
    8985 /* Line 1806 of yacc.c  */
    8986 #line 2755 "parser.yy"
    8987     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7944#line 2752 "parser.yy" /* yacc.c:1646  */
     7945    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7946#line 7947 "Parser/parser.cc" /* yacc.c:1646  */
    89887947    break;
    89897948
    89907949  case 723:
    8991 
    8992 /* Line 1806 of yacc.c  */
    8993 #line 2757 "parser.yy"
    8994     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7950#line 2754 "parser.yy" /* yacc.c:1646  */
     7951    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7952#line 7953 "Parser/parser.cc" /* yacc.c:1646  */
    89957953    break;
    89967954
    89977955  case 724:
    8998 
    8999 /* Line 1806 of yacc.c  */
    9000 #line 2759 "parser.yy"
    9001     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7956#line 2756 "parser.yy" /* yacc.c:1646  */
     7957    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7958#line 7959 "Parser/parser.cc" /* yacc.c:1646  */
    90027959    break;
    90037960
    90047961  case 725:
    9005 
    9006 /* Line 1806 of yacc.c  */
    9007 #line 2762 "parser.yy"
    9008     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7962#line 2759 "parser.yy" /* yacc.c:1646  */
     7963    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7964#line 7965 "Parser/parser.cc" /* yacc.c:1646  */
    90097965    break;
    90107966
    90117967  case 726:
    9012 
    9013 /* Line 1806 of yacc.c  */
    9014 #line 2764 "parser.yy"
    9015     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7968#line 2761 "parser.yy" /* yacc.c:1646  */
     7969    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7970#line 7971 "Parser/parser.cc" /* yacc.c:1646  */
    90167971    break;
    90177972
    90187973  case 727:
    9019 
    9020 /* Line 1806 of yacc.c  */
    9021 #line 2766 "parser.yy"
    9022     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7974#line 2763 "parser.yy" /* yacc.c:1646  */
     7975    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7976#line 7977 "Parser/parser.cc" /* yacc.c:1646  */
    90237977    break;
    90247978
    90257979  case 728:
    9026 
    9027 /* Line 1806 of yacc.c  */
    9028 #line 2768 "parser.yy"
    9029     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7980#line 2765 "parser.yy" /* yacc.c:1646  */
     7981    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7982#line 7983 "Parser/parser.cc" /* yacc.c:1646  */
    90307983    break;
    90317984
    90327985  case 729:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2770 "parser.yy"
    9036     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7986#line 2767 "parser.yy" /* yacc.c:1646  */
     7987    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7988#line 7989 "Parser/parser.cc" /* yacc.c:1646  */
    90377989    break;
    90387990
    90397991  case 730:
    9040 
    9041 /* Line 1806 of yacc.c  */
    9042 #line 2775 "parser.yy"
    9043     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7992#line 2772 "parser.yy" /* yacc.c:1646  */
     7993    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7994#line 7995 "Parser/parser.cc" /* yacc.c:1646  */
    90447995    break;
    90457996
    90467997  case 731:
    9047 
    9048 /* Line 1806 of yacc.c  */
    9049 #line 2777 "parser.yy"
    9050     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7998#line 2774 "parser.yy" /* yacc.c:1646  */
     7999    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     8000#line 8001 "Parser/parser.cc" /* yacc.c:1646  */
    90518001    break;
    90528002
    90538003  case 732:
    9054 
    9055 /* Line 1806 of yacc.c  */
    9056 #line 2782 "parser.yy"
    9057     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     8004#line 2779 "parser.yy" /* yacc.c:1646  */
     8005    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     8006#line 8007 "Parser/parser.cc" /* yacc.c:1646  */
    90588007    break;
    90598008
    90608009  case 733:
    9061 
    9062 /* Line 1806 of yacc.c  */
    9063 #line 2784 "parser.yy"
    9064     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     8010#line 2781 "parser.yy" /* yacc.c:1646  */
     8011    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
     8012#line 8013 "Parser/parser.cc" /* yacc.c:1646  */
    90658013    break;
    90668014
    90678015  case 735:
    9068 
    9069 /* Line 1806 of yacc.c  */
    9070 #line 2811 "parser.yy"
    9071     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8016#line 2808 "parser.yy" /* yacc.c:1646  */
     8017    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     8018#line 8019 "Parser/parser.cc" /* yacc.c:1646  */
    90728019    break;
    90738020
    90748021  case 739:
    9075 
    9076 /* Line 1806 of yacc.c  */
    9077 #line 2822 "parser.yy"
    9078     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8022#line 2819 "parser.yy" /* yacc.c:1646  */
     8023    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8024#line 8025 "Parser/parser.cc" /* yacc.c:1646  */
    90798025    break;
    90808026
    90818027  case 740:
    9082 
    9083 /* Line 1806 of yacc.c  */
    9084 #line 2824 "parser.yy"
    9085     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8028#line 2821 "parser.yy" /* yacc.c:1646  */
     8029    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8030#line 8031 "Parser/parser.cc" /* yacc.c:1646  */
    90868031    break;
    90878032
    90888033  case 741:
    9089 
    9090 /* Line 1806 of yacc.c  */
    9091 #line 2826 "parser.yy"
    9092     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8034#line 2823 "parser.yy" /* yacc.c:1646  */
     8035    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8036#line 8037 "Parser/parser.cc" /* yacc.c:1646  */
    90938037    break;
    90948038
    90958039  case 742:
    9096 
    9097 /* Line 1806 of yacc.c  */
    9098 #line 2828 "parser.yy"
    9099     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8040#line 2825 "parser.yy" /* yacc.c:1646  */
     8041    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8042#line 8043 "Parser/parser.cc" /* yacc.c:1646  */
    91008043    break;
    91018044
    91028045  case 743:
    9103 
    9104 /* Line 1806 of yacc.c  */
    9105 #line 2830 "parser.yy"
    9106     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8046#line 2827 "parser.yy" /* yacc.c:1646  */
     8047    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8048#line 8049 "Parser/parser.cc" /* yacc.c:1646  */
    91078049    break;
    91088050
    91098051  case 744:
    9110 
    9111 /* Line 1806 of yacc.c  */
    9112 #line 2832 "parser.yy"
    9113     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8052#line 2829 "parser.yy" /* yacc.c:1646  */
     8053    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8054#line 8055 "Parser/parser.cc" /* yacc.c:1646  */
    91148055    break;
    91158056
    91168057  case 745:
    9117 
    9118 /* Line 1806 of yacc.c  */
    9119 #line 2839 "parser.yy"
    9120     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8058#line 2836 "parser.yy" /* yacc.c:1646  */
     8059    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8060#line 8061 "Parser/parser.cc" /* yacc.c:1646  */
    91218061    break;
    91228062
    91238063  case 746:
    9124 
    9125 /* Line 1806 of yacc.c  */
    9126 #line 2841 "parser.yy"
    9127     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8064#line 2838 "parser.yy" /* yacc.c:1646  */
     8065    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8066#line 8067 "Parser/parser.cc" /* yacc.c:1646  */
    91288067    break;
    91298068
    91308069  case 747:
    9131 
    9132 /* Line 1806 of yacc.c  */
    9133 #line 2843 "parser.yy"
    9134     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8070#line 2840 "parser.yy" /* yacc.c:1646  */
     8071    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8072#line 8073 "Parser/parser.cc" /* yacc.c:1646  */
    91358073    break;
    91368074
    91378075  case 748:
    9138 
    9139 /* Line 1806 of yacc.c  */
    9140 #line 2845 "parser.yy"
    9141     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8076#line 2842 "parser.yy" /* yacc.c:1646  */
     8077    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8078#line 8079 "Parser/parser.cc" /* yacc.c:1646  */
    91428079    break;
    91438080
    91448081  case 749:
    9145 
    9146 /* Line 1806 of yacc.c  */
    9147 #line 2847 "parser.yy"
    9148     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8082#line 2844 "parser.yy" /* yacc.c:1646  */
     8083    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8084#line 8085 "Parser/parser.cc" /* yacc.c:1646  */
    91498085    break;
    91508086
    91518087  case 750:
    9152 
    9153 /* Line 1806 of yacc.c  */
    9154 #line 2849 "parser.yy"
    9155     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8088#line 2846 "parser.yy" /* yacc.c:1646  */
     8089    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8090#line 8091 "Parser/parser.cc" /* yacc.c:1646  */
    91568091    break;
    91578092
    91588093  case 751:
    9159 
    9160 /* Line 1806 of yacc.c  */
    9161 #line 2854 "parser.yy"
    9162     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     8094#line 2851 "parser.yy" /* yacc.c:1646  */
     8095    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     8096#line 8097 "Parser/parser.cc" /* yacc.c:1646  */
    91638097    break;
    91648098
    91658099  case 752:
    9166 
    9167 /* Line 1806 of yacc.c  */
    9168 #line 2861 "parser.yy"
    9169     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     8100#line 2858 "parser.yy" /* yacc.c:1646  */
     8101    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); }
     8102#line 8103 "Parser/parser.cc" /* yacc.c:1646  */
    91708103    break;
    91718104
    91728105  case 753:
    9173 
    9174 /* Line 1806 of yacc.c  */
    9175 #line 2863 "parser.yy"
    9176     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     8106#line 2860 "parser.yy" /* yacc.c:1646  */
     8107    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); }
     8108#line 8109 "Parser/parser.cc" /* yacc.c:1646  */
    91778109    break;
    91788110
    91798111  case 756:
    9180 
    9181 /* Line 1806 of yacc.c  */
    9182 #line 2887 "parser.yy"
    9183     { (yyval.en) = nullptr; }
     8112#line 2884 "parser.yy" /* yacc.c:1646  */
     8113    { (yyval.en) = 0; }
     8114#line 8115 "Parser/parser.cc" /* yacc.c:1646  */
    91848115    break;
    91858116
    91868117  case 757:
    9187 
    9188 /* Line 1806 of yacc.c  */
    9189 #line 2889 "parser.yy"
    9190     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    9191     break;
    9192 
    9193 
    9194 
    9195 /* Line 1806 of yacc.c  */
    9196 #line 9197 "Parser/parser.cc"
     8118#line 2886 "parser.yy" /* yacc.c:1646  */
     8119    { (yyval.en) = (yyvsp[0].en); }
     8120#line 8121 "Parser/parser.cc" /* yacc.c:1646  */
     8121    break;
     8122
     8123
     8124#line 8125 "Parser/parser.cc" /* yacc.c:1646  */
    91978125      default: break;
    91988126    }
     
    92168144  *++yyvsp = yyval;
    92178145
    9218   /* Now `shift' the result of the reduction.  Determine what state
     8146  /* Now 'shift' the result of the reduction.  Determine what state
    92198147     that goes to, based on the state we popped back to and the rule
    92208148     number reduced by.  */
     
    92318159
    92328160
    9233 /*------------------------------------.
    9234 | yyerrlab -- here on detecting error |
    9235 `------------------------------------*/
     8161/*--------------------------------------.
     8162| yyerrlab -- here on detecting error. |
     8163`--------------------------------------*/
    92368164yyerrlab:
    92378165  /* Make sure we have latest lookahead translation.  See comments at
     
    92848212    {
    92858213      /* If just tried and failed to reuse lookahead token after an
    9286         error, discard it.  */
     8214        error, discard it.  */
    92878215
    92888216      if (yychar <= YYEOF)
    9289         {
    9290           /* Return failure if at end of input.  */
    9291           if (yychar == YYEOF)
    9292             YYABORT;
    9293         }
     8217        {
     8218          /* Return failure if at end of input.  */
     8219          if (yychar == YYEOF)
     8220            YYABORT;
     8221        }
    92948222      else
    9295         {
    9296           yydestruct ("Error: discarding",
    9297                       yytoken, &yylval);
    9298           yychar = YYEMPTY;
    9299         }
     8223        {
     8224          yydestruct ("Error: discarding",
     8225                      yytoken, &yylval);
     8226          yychar = YYEMPTY;
     8227        }
    93008228    }
    93018229
     
    93168244     goto yyerrorlab;
    93178245
    9318   /* Do not reclaim the symbols of the rule which action triggered
     8246  /* Do not reclaim the symbols of the rule whose action triggered
    93198247     this YYERROR.  */
    93208248  YYPOPSTACK (yylen);
     
    93298257`-------------------------------------------------------------*/
    93308258yyerrlab1:
    9331   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     8259  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    93328260
    93338261  for (;;)
     
    93358263      yyn = yypact[yystate];
    93368264      if (!yypact_value_is_default (yyn))
    9337         {
    9338           yyn += YYTERROR;
    9339           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    9340             {
    9341               yyn = yytable[yyn];
    9342               if (0 < yyn)
    9343                 break;
    9344             }
    9345         }
     8265        {
     8266          yyn += YYTERROR;
     8267          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     8268            {
     8269              yyn = yytable[yyn];
     8270              if (0 < yyn)
     8271                break;
     8272            }
     8273        }
    93468274
    93478275      /* Pop the current state because it cannot handle the error token.  */
    93488276      if (yyssp == yyss)
    9349         YYABORT;
     8277        YYABORT;
    93508278
    93518279
    93528280      yydestruct ("Error: popping",
    9353                   yystos[yystate], yyvsp);
     8281                  yystos[yystate], yyvsp);
    93548282      YYPOPSTACK (1);
    93558283      yystate = *yyssp;
     
    93578285    }
    93588286
     8287  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    93598288  *++yyvsp = yylval;
     8289  YY_IGNORE_MAYBE_UNINITIALIZED_END
    93608290
    93618291
     
    93818311  goto yyreturn;
    93828312
    9383 #if !defined(yyoverflow) || YYERROR_VERBOSE
     8313#if !defined yyoverflow || YYERROR_VERBOSE
    93848314/*-------------------------------------------------.
    93858315| yyexhaustedlab -- memory exhaustion comes here.  |
     
    94008330                  yytoken, &yylval);
    94018331    }
    9402   /* Do not reclaim the symbols of the rule which action triggered
     8332  /* Do not reclaim the symbols of the rule whose action triggered
    94038333     this YYABORT or YYACCEPT.  */
    94048334  YYPOPSTACK (yylen);
     
    94078337    {
    94088338      yydestruct ("Cleanup: popping",
    9409                   yystos[*yyssp], yyvsp);
     8339                  yystos[*yyssp], yyvsp);
    94108340      YYPOPSTACK (1);
    94118341    }
     
    94188348    YYSTACK_FREE (yymsg);
    94198349#endif
    9420   /* Make sure YYID is used.  */
    9421   return YYID (yyresult);
     8350  return yyresult;
    94228351}
    9423 
    9424 
    9425 
    9426 /* Line 2067 of yacc.c  */
    9427 #line 2892 "parser.yy"
     8352#line 2889 "parser.yy" /* yacc.c:1906  */
    94288353
    94298354// ----end of grammar----
     
    94448369// compile-command: "make install" //
    94458370// End: //
    9446 
  • src/Parser/parser.h

    r04c8bba r0edebf8  
    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      ZERO_T = 279,
    62      ONE_T = 280,
    63      VALIST = 281,
    64      BOOL = 282,
    65      COMPLEX = 283,
    66      IMAGINARY = 284,
    67      TYPEOF = 285,
    68      LABEL = 286,
    69      ENUM = 287,
    70      STRUCT = 288,
    71      UNION = 289,
    72      OTYPE = 290,
    73      FTYPE = 291,
    74      DTYPE = 292,
    75      TRAIT = 293,
    76      SIZEOF = 294,
    77      OFFSETOF = 295,
    78      ATTRIBUTE = 296,
    79      EXTENSION = 297,
    80      IF = 298,
    81      ELSE = 299,
    82      SWITCH = 300,
    83      CASE = 301,
    84      DEFAULT = 302,
    85      DO = 303,
    86      WHILE = 304,
    87      FOR = 305,
    88      BREAK = 306,
    89      CONTINUE = 307,
    90      GOTO = 308,
    91      RETURN = 309,
    92      CHOOSE = 310,
    93      DISABLE = 311,
    94      ENABLE = 312,
    95      FALLTHRU = 313,
    96      TRY = 314,
    97      CATCH = 315,
    98      CATCHRESUME = 316,
    99      FINALLY = 317,
    100      THROW = 318,
    101      THROWRESUME = 319,
    102      AT = 320,
    103      ASM = 321,
    104      ALIGNAS = 322,
    105      ALIGNOF = 323,
    106      ATOMIC = 324,
    107      GENERIC = 325,
    108      NORETURN = 326,
    109      STATICASSERT = 327,
    110      THREADLOCAL = 328,
    111      IDENTIFIER = 329,
    112      QUOTED_IDENTIFIER = 330,
    113      TYPEDEFname = 331,
    114      TYPEGENname = 332,
    115      ATTR_IDENTIFIER = 333,
    116      ATTR_TYPEDEFname = 334,
    117      ATTR_TYPEGENname = 335,
    118      INTEGERconstant = 336,
    119      CHARACTERconstant = 337,
    120      STRINGliteral = 338,
    121      REALDECIMALconstant = 339,
    122      REALFRACTIONconstant = 340,
    123      FLOATINGconstant = 341,
    124      ZERO = 342,
    125      ONE = 343,
    126      ARROW = 344,
    127      ICR = 345,
    128      DECR = 346,
    129      LS = 347,
    130      RS = 348,
    131      LE = 349,
    132      GE = 350,
    133      EQ = 351,
    134      NE = 352,
    135      ANDAND = 353,
    136      OROR = 354,
    137      ELLIPSIS = 355,
    138      MULTassign = 356,
    139      DIVassign = 357,
    140      MODassign = 358,
    141      PLUSassign = 359,
    142      MINUSassign = 360,
    143      LSassign = 361,
    144      RSassign = 362,
    145      ANDassign = 363,
    146      ERassign = 364,
    147      ORassign = 365,
    148      ATassign = 366,
    149      THEN = 367
    150    };
     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    ZERO_T = 279,
     70    ONE_T = 280,
     71    VALIST = 281,
     72    BOOL = 282,
     73    COMPLEX = 283,
     74    IMAGINARY = 284,
     75    TYPEOF = 285,
     76    LABEL = 286,
     77    ENUM = 287,
     78    STRUCT = 288,
     79    UNION = 289,
     80    OTYPE = 290,
     81    FTYPE = 291,
     82    DTYPE = 292,
     83    TRAIT = 293,
     84    SIZEOF = 294,
     85    OFFSETOF = 295,
     86    ATTRIBUTE = 296,
     87    EXTENSION = 297,
     88    IF = 298,
     89    ELSE = 299,
     90    SWITCH = 300,
     91    CASE = 301,
     92    DEFAULT = 302,
     93    DO = 303,
     94    WHILE = 304,
     95    FOR = 305,
     96    BREAK = 306,
     97    CONTINUE = 307,
     98    GOTO = 308,
     99    RETURN = 309,
     100    CHOOSE = 310,
     101    DISABLE = 311,
     102    ENABLE = 312,
     103    FALLTHRU = 313,
     104    TRY = 314,
     105    CATCH = 315,
     106    CATCHRESUME = 316,
     107    FINALLY = 317,
     108    THROW = 318,
     109    THROWRESUME = 319,
     110    AT = 320,
     111    ASM = 321,
     112    ALIGNAS = 322,
     113    ALIGNOF = 323,
     114    ATOMIC = 324,
     115    GENERIC = 325,
     116    NORETURN = 326,
     117    STATICASSERT = 327,
     118    THREADLOCAL = 328,
     119    IDENTIFIER = 329,
     120    QUOTED_IDENTIFIER = 330,
     121    TYPEDEFname = 331,
     122    TYPEGENname = 332,
     123    ATTR_IDENTIFIER = 333,
     124    ATTR_TYPEDEFname = 334,
     125    ATTR_TYPEGENname = 335,
     126    INTEGERconstant = 336,
     127    CHARACTERconstant = 337,
     128    STRINGliteral = 338,
     129    REALDECIMALconstant = 339,
     130    REALFRACTIONconstant = 340,
     131    FLOATINGconstant = 341,
     132    ZERO = 342,
     133    ONE = 343,
     134    ARROW = 344,
     135    ICR = 345,
     136    DECR = 346,
     137    LS = 347,
     138    RS = 348,
     139    LE = 349,
     140    GE = 350,
     141    EQ = 351,
     142    NE = 352,
     143    ANDAND = 353,
     144    OROR = 354,
     145    ELLIPSIS = 355,
     146    MULTassign = 356,
     147    DIVassign = 357,
     148    MODassign = 358,
     149    PLUSassign = 359,
     150    MINUSassign = 360,
     151    LSassign = 361,
     152    RSassign = 362,
     153    ANDassign = 363,
     154    ERassign = 364,
     155    ORassign = 365,
     156    ATassign = 366,
     157    THEN = 367
     158  };
    151159#endif
    152160/* Tokens.  */
     
    262270#define THEN 367
    263271
    264 
    265 
    266 
     272/* Value type.  */
    267273#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    268 typedef union YYSTYPE
     274typedef union YYSTYPE YYSTYPE;
     275union YYSTYPE
    269276{
    270 
    271 /* Line 2068 of yacc.c  */
    272 #line 120 "parser.yy"
     277#line 120 "parser.yy" /* yacc.c:1909  */
    273278
    274279        Token tok;
     
    287292        bool flag;
    288293
    289 
    290 
    291 /* Line 2068 of yacc.c  */
    292 #line 293 "Parser/parser.h"
    293 } YYSTYPE;
     294#line 295 "Parser/parser.h" /* yacc.c:1909  */
     295};
    294296# define YYSTYPE_IS_TRIVIAL 1
    295 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    296297# define YYSTYPE_IS_DECLARED 1
    297298#endif
    298299
     300
    299301extern YYSTYPE yylval;
    300302
    301 
     303int yyparse (void);
     304
     305#endif /* !YY_YY_PARSER_PARSER_H_INCLUDED  */
  • src/Parser/parser.yy

    r04c8bba r0edebf8  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:14:52 2016
    13 // Update Count     : 2081
     12// Last Modified On : Tue Nov 29 11:35:52 2016
     13// Update Count     : 2069
    1414//
    1515
     
    153153%type<fctl> for_control_expression
    154154%type<en> subrange
    155 %type<constant> asm_name_opt
    156155%type<en> asm_operands_opt asm_operands_list asm_operand
    157156%type<label> label_list
     
    413412argument_expression:
    414413        // empty
    415                 { $$ = nullptr; }                                                               // use default argument
     414                { $$ = 0; }                                                                             // use default argument
    416415        | assignment_expression
    417416        ;
     
    685684comma_expression_opt:
    686685        // empty
    687                 { $$ = nullptr; }
     686                { $$ = 0; }
    688687        | comma_expression
    689688        ;
     
    819818switch_clause_list_opt:                                                                 // CFA
    820819        // empty
    821                 { $$ = nullptr; }
     820                { $$ = 0; }
    822821        | switch_clause_list
    823822        ;
     
    832831choose_clause_list_opt:                                                                 // CFA
    833832        // empty
    834                 { $$ = nullptr; }
     833                { $$ = 0; }
    835834        | choose_clause_list
    836835        ;
     
    855854fall_through:                                                                                   // CFA
    856855        FALLTHRU
    857                 { $$ = nullptr; }
     856                { $$ = 0; }
    858857        | FALLTHRU ';'
    859                 { $$ = nullptr; }
     858                { $$ = 0; }
    860859        ;
    861860
     
    991990asm_operands_opt:                                                                               // GCC
    992991        // empty
    993                 { $$ = nullptr; }                                                               // use default argument
     992                { $$ = 0; }                                                                             // use default argument
    994993        | asm_operands_list
    995994        ;
     
    10101009asm_clobbers_list_opt:                                                                  // GCC
    10111010        // empty
    1012                 { $$ = nullptr; }                                                               // use default argument
     1011                { $$ = 0; }                                                                             // use default argument
    10131012        | string_literal
    10141013                { $$ = new ExpressionNode( $1 ); }
     
    10341033declaration_list_opt:                                                                   // used at beginning of switch statement
    10351034        pop
    1036                 { $$ = nullptr; }
     1035                { $$ = 0; }
    10371036        | declaration_list
    10381037        ;
     
    10461045old_declaration_list_opt:                                                               // used to declare parameter types in K&R style functions
    10471046        pop
    1048                 { $$ = nullptr; }
     1047                { $$ = 0; }
    10491048        | old_declaration_list
    10501049        ;
     
    11211120                {
    11221121                        typedefTable.setNextIdentifier( *$2 );
    1123                         $$ = $1->addName( $2 )->addAsmName( $3 );
     1122                        $$ = $1->addName( $2 );
    11241123                }
    11251124        | new_abstract_tuple identifier_or_type_name asm_name_opt
    11261125                {
    11271126                        typedefTable.setNextIdentifier( *$2 );
    1128                         $$ = $1->addName( $2 )->addAsmName( $3 );
     1127                        $$ = $1->addName( $2 );
    11291128                }
    11301129        | type_qualifier_list new_abstract_tuple identifier_or_type_name asm_name_opt
    11311130                {
    11321131                        typedefTable.setNextIdentifier( *$3 );
    1133                         $$ = $2->addQualifiers( $1 )->addName( $3 )->addAsmName( $4 );
     1132                        $$ = $2->addQualifiers( $1 )->addName( $3 );
    11341133                }
    11351134        ;
     
    12821281                {
    12831282                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    1284                         $$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 );
     1283                        $$ = ( $2->addType( $1 ))->addInitializer( $4 );
    12851284                }
    12861285        | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt
    12871286                {
    12881287                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    1289                         $$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) );
     1288                        $$ = $1->appendList( $1->cloneBaseType( $4->addInitializer( $6 ) ) );
    12901289                }
    12911290        ;
     
    13071306type_qualifier_list_opt:                                                                // GCC, used in asm_statement
    13081307        // empty
    1309                 { $$ = nullptr; }
     1308                { $$ = 0; }
    13101309        | type_qualifier_list
    13111310        ;
     
    15331532field_declaration_list:
    15341533        // empty
    1535                 { $$ = nullptr; }
     1534                { $$ = 0; }
    15361535        | field_declaration_list field_declaration
    15371536                { $$ = $1 != 0 ? $1->appendList( $2 ) : $2; }
     
    15841583bit_subrange_size_opt:
    15851584        // empty
    1586                 { $$ = nullptr; }
     1585                { $$ = 0; }
    15871586        | bit_subrange_size
    15881587                { $$ = $1; }
     
    16211620enumerator_value_opt:
    16221621        // empty
    1623                 { $$ = nullptr; }
     1622                { $$ = 0; }
    16241623        | '=' constant_expression
    16251624                { $$ = $2; }
     
    16301629new_parameter_type_list_opt:                                                    // CFA
    16311630        // empty
    1632                 { $$ = nullptr; }
     1631                { $$ = 0; }
    16331632        | new_parameter_type_list
    16341633        ;
     
    16651664parameter_type_list_opt:
    16661665        // empty
    1667                 { $$ = nullptr; }
     1666                { $$ = 0; }
    16681667        | parameter_type_list
    16691668        ;
     
    17741773initializer_opt:
    17751774        // empty
    1776                 { $$ = nullptr; }
     1775                { $$ = 0; }
    17771776        | '=' initializer
    17781777                { $$ = $2; }
     
    17881787initializer_list:
    17891788        // empty
    1790                 { $$ = nullptr; }
     1789                { $$ = 0; }
    17911790        | initializer
    17921791        | designation initializer                                       { $$ = $2->set_designators( $1 ); }
     
    18991898assertion_list_opt:                                                                             // CFA
    19001899        // empty
    1901                 { $$ = nullptr; }
     1900                { $$ = 0; }
    19021901        | assertion_list_opt assertion
    19031902                { $$ = $1 != 0 ? $1->appendList( $2 ) : $2; }
     
    19131912                { $$ = $4; }
    19141913        | '|' '(' push type_parameter_list pop ')' '{' push trait_declaration_list '}' '(' type_name_list ')'
    1915                 { $$ = nullptr; }
     1914                { $$ = 0; }
    19161915        ;
    19171916
     
    20332032external_definition_list_opt:
    20342033        // empty
    2035                 { $$ = nullptr; }
     2034                { $$ = 0; }
    20362035        | external_definition_list
    20372036        ;
     
    21562155asm_name_opt:                                                                                   // GCC
    21572156        // empty
    2158                 { $$ = nullptr; }
    2159         | ASM '(' string_literal ')' attribute_list_opt
    2160                 { $$ = $3; }
     2157        | ASM '(' string_literal_list ')' attribute_list_opt { delete $3; }     // FIX ME: unimplemented
    21612158        ;
    21622159
    21632160attribute_list_opt:                                                                             // GCC
    21642161        // empty
    2165                 { $$ = nullptr; }
     2162                { $$ = 0; }
    21662163        | attribute_list
    21672164        ;
     
    21762173        ATTRIBUTE '(' '(' attribute_parameter_list ')' ')'
    21772174        //              { $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
    2178                 { $$ = nullptr; }
     2175                { $$ = 0; }
    21792176        ;
    21802177
     
    28852882assignment_opt:
    28862883        // empty
    2887                 { $$ = nullptr; }
     2884                { $$ = 0; }
    28882885        | '=' assignment_expression
    28892886                { $$ = $2; }
  • src/SynTree/Declaration.h

    r04c8bba r0edebf8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:37:33 2016
    13 // Update Count     : 49
     12// Last Modified On : Thu Aug 18 23:50:24 2016
     13// Update Count     : 40
    1414//
    1515
     
    6969
    7070        std::string get_mangleName() const { return mangleName; }
    71         DeclarationWithType * set_mangleName( std::string newValue ) { mangleName = newValue; return this; }
     71        void set_mangleName( std::string newValue ) { mangleName = newValue; }
    7272
    7373        std::string get_scopedMangleName() const { return mangleName + "_" + std::to_string(scopeLevel); }
    7474
    7575        int get_scopeLevel() const { return scopeLevel; }
    76         DeclarationWithType * set_scopeLevel( int newValue ) { scopeLevel = newValue; return this; }
    77 
    78         ConstantExpr *get_asmName() const { return asmName; }
    79         DeclarationWithType * set_asmName( ConstantExpr *newValue ) { asmName = newValue; return this; }
     76        void set_scopeLevel( int newValue ) { scopeLevel = newValue; }
    8077
    8178        std::list< Attribute * >& get_attributes() { return attributes; }
     
    9087        // this represents the type with all types and typedefs expanded it is generated by SymTab::Validate::Pass2
    9188        std::string mangleName;
    92         // need to remember the scope level at which the variable was declared, so that shadowed identifiers can be accessed
     89        // need to remember the scope level at which the variable was declared, so that
     90        // shadowed identifiers can be accessed
    9391        int scopeLevel = 0;
    9492
    95         ConstantExpr *asmName;
    9693        std::list< Attribute * > attributes;
    9794};
     
    109106        Initializer *get_init() const { return init; }
    110107        void set_init( Initializer *newValue ) { init = newValue; }
    111 
    112108        Expression *get_bitfieldWidth() const { return bitfieldWidth; }
    113109        void set_bitfieldWidth( Expression *newValue ) { bitfieldWidth = newValue; }
  • src/SynTree/DeclarationWithType.cc

    r04c8bba r0edebf8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:49:43 2016
    13 // Update Count     : 7
     12// Last Modified On : Thu Aug 18 23:50:41 2016
     13// Update Count     : 4
    1414//
    1515
     
    2020
    2121DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes )
    22         : Declaration( name, sc, linkage ), asmName( nullptr ), attributes( attributes ) {
     22                : Declaration( name, sc, linkage ), attributes( attributes ) {
    2323}
    2424
     
    2626                : Declaration( other ), mangleName( other.mangleName ), scopeLevel( other.scopeLevel ) {
    2727        cloneAll( other.attributes, attributes );
    28         asmName = maybeClone( other.asmName );
    2928}
    3029
    3130DeclarationWithType::~DeclarationWithType() {
    3231        deleteAll( attributes );
    33         delete asmName;
    3432}
    3533
  • src/tests/.expect/32/gccExtensions.txt

    r04c8bba r0edebf8  
    55extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
    7 extern int __x__i_1 asm ( "xx" );
     7extern int __x__i_1;
    88int main(int __argc__i_1, const char **__argv__PPCc_1){
    99    asm ( "nop" :  :  :  );
    1010    asm ( "nop" :  :  :  );
    1111    asm ( "nop" :  :  :  );
    12     static int __y__i_2 asm ( "yy" );
    13     static int *__z__Pi_2 asm ( "zz" );
     12    static int __y__i_2;
     13    static int *__z__Pi_2;
    1414    int __src__i_2;
    1515    int __dst__i_2;
  • src/tests/.expect/64/gccExtensions.txt

    r04c8bba r0edebf8  
    55extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
    7 extern int __x__i_1 asm ( "xx" );
     7extern int __x__i_1;
    88int main(int __argc__i_1, const char **__argv__PPCc_1){
    99    asm ( "nop" :  :  :  );
    1010    asm ( "nop" :  :  :  );
    1111    asm ( "nop" :  :  :  );
    12     static int __y__i_2 asm ( "yy" );
    13     static int *__z__Pi_2 asm ( "zz" );
     12    static int __y__i_2;
     13    static int *__z__Pi_2;
    1414    int __src__i_2;
    1515    int __dst__i_2;
Note: See TracChangeset for help on using the changeset viewer.