Changeset 148f7290


Ignore:
Timestamp:
Nov 30, 2016, 10:46:41 AM (8 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
4cb935e
Parents:
8e5724e
Message:

Propagate zero_t one_t from parser to backend

Location:
src
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r8e5724e r148f7290  
    283283        DeclarationNode * newnode = new DeclarationNode;
    284284        newnode->type = nullptr;
    285         assert( ! newnode->name ); 
     285        assert( ! newnode->name );
    286286//      newnode->variable.name = name;
    287287        newnode->name = name;
     
    372372        newnode->type = new TypeData( TypeData::Builtin );
    373373        newnode->builtin = bt;
     374        newnode->type->builtintype = newnode->builtin;
    374375        return newnode;
    375376} // DeclarationNode::newBuiltinType
  • src/Parser/ParseNode.h

    r8e5724e r148f7290  
    204204        enum Aggregate { Struct, Union, Trait, NoAggregate };
    205205        enum TypeClass { Otype, Dtype, Ftype, NoTypeClass };
    206         enum BuiltinType { Valist };
     206        enum BuiltinType { Valist, Zero, One, NoBuiltinType };
    207207
    208208        static const char * storageName[];
  • src/Parser/TypeData.cc

    r8e5724e r148f7290  
    444444                return buildTypeof( td );
    445445          case TypeData::Builtin:
    446                 return new VarArgsType( buildQualifiers( td ) );
     446                if(td->builtintype == DeclarationNode::Zero) {
     447                        return new ZeroType( buildQualifiers( td ) );
     448                }
     449                else if(td->builtintype == DeclarationNode::One) {
     450                        return new OneType( buildQualifiers( td ) );
     451                }
     452                else {
     453                        return new VarArgsType( buildQualifiers( td ) );
     454                }
    447455          case TypeData::Symbolic:
    448456          case TypeData::Enum:
  • src/Parser/TypeData.h

    r8e5724e r148f7290  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // TypeData.h -- 
     7// TypeData.h --
    88//
    99// Author           : Rodolfo G. Esteves
     
    7474        DeclarationNode::Signedness signedness = DeclarationNode::NoSignedness;
    7575        DeclarationNode::Length length = DeclarationNode::NoLength;
     76        DeclarationNode::BuiltinType builtintype = DeclarationNode::NoBuiltinType;
    7677        typedef std::bitset< DeclarationNode::NoQualifier > Qualifiers;
    7778        Qualifiers qualifiers;
  • src/Parser/parser.cc

    r8e5724e r148f7290  
    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,   146,
    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{
     
    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[] =
    1250 {
    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
    1327 };
    1328 
    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.  */
    1413 static const yytype_uint16 yydefact[] =
    1414 {
    1415      298,   298,   318,   316,   319,   317,   320,   321,   304,   306,
    1416      305,     0,   307,   332,   324,   329,   327,   328,   326,   325,
    1417      330,   331,   337,   338,   336,   333,   334,   335,   553,   553,
    1418      553,     0,     0,     0,   298,   225,   308,   322,   323,     9,
    1419      365,     0,    10,    16,    17,     0,     2,    72,    73,   571,
    1420       11,   298,   531,   529,   252,     3,   460,     3,   265,     0,
    1421        3,     3,     3,   253,     3,     0,     0,     0,   299,   300,
    1422      302,   298,   311,   314,   346,   290,   339,   344,   291,   354,
    1423      292,   361,   358,   368,     0,     0,   369,   293,   479,   483,
    1424        3,     3,     0,     2,   525,   530,   535,   303,     0,     0,
    1425      553,   583,   553,     2,   594,   595,   596,   298,     0,   737,
    1426      738,     0,    14,     0,    15,   298,   274,   275,     0,   299,
    1427      294,   295,   296,   297,   532,   309,   398,   554,   555,   376,
    1428      377,    14,   451,   452,    13,   447,   450,     0,   509,   504,
    1429      495,   451,   452,     0,     0,   534,   226,     0,   298,     0,
    1430        0,     0,     0,     0,     0,     0,     0,   298,   298,     0,
    1431      739,   299,   588,   600,   743,   736,   734,   741,     0,     0,
    1432        0,   259,     2,     0,   538,   445,   446,   444,     0,     0,
    1433        0,     0,   553,     0,   640,   641,     0,     0,   551,   547,
    1434      553,   568,   553,   553,   549,     2,   548,   553,   607,   553,
    1435      553,   610,     0,     0,     0,   298,   298,   316,   366,     2,
    1436      298,   266,   301,   312,   347,   359,   484,     0,     2,     0,
    1437      460,   267,   299,   340,   355,   362,   480,     0,     2,     0,
    1438      315,   341,   348,   349,     0,   356,   360,   363,   367,   452,
    1439      298,   378,   371,   375,     0,   400,   481,   485,     0,     0,
    1440        0,     1,   298,     2,   536,   582,   584,   298,     2,   747,
    1441      299,   750,   551,   551,     0,   299,     0,     0,   277,   553,
    1442      549,     2,   298,     0,     0,   298,   556,     2,   507,     2,
    1443      560,     0,     0,     0,     0,     0,     0,    21,    69,     4,
    1444        8,    19,     5,     6,     7,     0,     0,   298,     2,    74,
    1445       75,    76,    77,    57,    22,    58,    18,    26,    56,    78,
    1446      298,     0,    80,    84,    87,    90,    95,    98,   100,   102,
    1447      104,   106,   108,   112,   501,    23,   458,   500,     0,   456,
    1448      457,     0,   572,   587,   590,   593,   599,   602,   605,     2,
    1449      745,   298,   748,     2,    72,   298,     3,   432,     0,   440,
    1450      299,   298,   311,   339,   291,   354,   361,     3,     3,   414,
    1451      418,   428,   433,   479,   298,   434,   712,   713,   298,   435,
    1452      437,     2,   589,   601,   735,     2,     2,   254,     2,   465,
    1453        0,   463,   462,   461,   146,     2,     2,   256,     2,     2,
    1454      255,     2,   285,     2,   286,     0,   284,     0,     0,     0,
    1455        0,     0,     0,     0,     0,     0,   573,   612,     0,   460,
    1456        2,   567,   576,   666,   569,   570,   539,   298,     2,   606,
    1457      615,   608,   609,     0,   280,   298,   298,   345,   299,     0,
    1458      299,   298,   740,   744,   742,   540,   298,   551,   260,   268,
    1459      313,     0,     2,   541,   298,   505,   342,   343,   287,   357,
    1460      364,     0,   298,     0,   754,   405,     0,   482,   506,   257,
    1461      258,   526,   298,   442,     0,   298,   242,     0,     2,   244,
    1462        0,   299,     0,   262,     2,   263,   282,     0,     0,     2,
    1463      298,   551,   298,   492,   494,   493,     0,     0,   756,     0,
    1464      298,     0,   298,   496,   298,   566,   564,   565,   563,     0,
    1465      558,   561,     0,     0,   298,    64,   298,    78,    59,   298,
    1466       66,   298,   298,    62,    63,     2,   132,     0,     0,   454,
    1467        0,   453,   734,   298,    20,    31,     0,    34,    35,    40,
    1468        2,     0,    40,   118,   119,   120,   121,   122,   123,   124,
    1469      125,   126,   127,   117,   116,     0,    60,    61,     0,     0,
    1470        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1471        0,     0,     0,     0,     0,     0,     0,     2,   652,   459,
    1472      649,   553,   553,   657,   486,   298,     2,   591,   592,     0,
    1473      603,   604,     0,   746,   749,   298,   298,     0,   714,   299,
    1474      718,   709,   710,   716,     0,     2,     2,   674,   553,   756,
    1475      623,   553,   553,   756,   553,   637,   553,   553,   688,   441,
    1476      671,   553,   553,   679,   686,   298,   436,   299,     0,     0,
    1477      298,   724,   299,   729,   756,   721,   298,   726,   756,   298,
    1478      298,     0,     0,    21,     2,     0,    22,     0,   466,   754,
    1479        0,     0,   472,   246,     0,   298,     0,     0,     0,   551,
    1480      575,   579,   581,   611,   614,   618,   621,   574,   613,     0,
    1481      288,   664,     0,   298,   281,     0,     0,     0,     0,   279,
    1482        2,     0,   264,   542,   298,     0,     0,   298,     2,   370,
    1483      390,   379,     0,     0,   384,   378,   755,     0,     0,   403,
    1484        0,   299,     3,   421,     3,   425,   424,   597,     0,   537,
    1485      298,    72,     3,   298,   440,   299,     3,   434,   435,     2,
    1486        0,     0,     0,   491,   310,   298,     0,   487,   489,     3,
    1487        2,     2,     0,   508,     3,     0,   560,   134,     0,     0,
    1488      227,     0,     0,     0,     0,    41,     0,     0,   298,    24,
    1489        0,    25,     0,   698,   703,   455,   695,   553,   553,     0,
    1490      114,     3,     2,    32,     0,    38,     0,     2,    29,     0,
    1491      113,    81,    82,    83,    85,    86,    88,    89,    93,    94,
    1492       91,    92,    96,    97,    99,   101,   103,   105,   107,     0,
    1493        0,   298,     0,     0,     0,   653,   654,   650,   651,   503,
    1494      502,   298,     0,   720,   298,   725,   299,   298,   668,   711,
    1495      667,     2,   298,     0,     0,     0,     0,     0,     0,     0,
    1496        0,   689,     0,   675,   626,   642,   676,     2,   622,   629,
    1497      438,   624,   625,   439,     2,   636,   645,   638,   639,   672,
    1498      673,   687,   715,   719,   717,   756,   272,     2,   751,     2,
    1499      429,   723,   728,   430,     3,   408,     3,     3,     3,   460,
    1500        0,     0,     2,   474,   471,   755,     0,   467,     2,   470,
    1501      473,     0,   298,   247,   269,     3,   276,   278,     0,   460,
    1502        2,   577,   578,     2,   616,   617,     0,   665,   543,     3,
    1503      351,   350,   353,   352,   298,   544,     0,   545,   378,     0,
    1504        0,   298,     0,     0,   698,   388,   391,   395,   553,   395,
    1505      394,   387,   380,   553,   382,   385,   298,   405,   399,   111,
    1506      406,   754,     0,     0,   443,   245,     0,     0,     3,     2,
    1507      674,   436,     0,   533,     0,   756,   757,   495,     0,   298,
    1508      298,   298,     0,   557,   559,   135,     0,     0,   220,     0,
    1509        0,     0,   228,   229,    65,     0,    67,    70,    71,     0,
    1510      133,     0,     0,     0,   699,   700,   696,   697,   465,    79,
    1511      115,   130,     3,   114,     0,    28,    40,     3,     0,    37,
    1512      110,     0,     3,   656,   660,   663,   655,     3,   598,   722,
    1513      727,     2,    72,   298,     3,     3,   299,     0,     3,   628,
    1514      632,   635,   644,   678,   682,   685,   298,     3,   627,   643,
    1515      677,   298,   298,   431,   298,   298,     0,     0,     0,     0,
    1516      261,   111,     0,     3,     3,     0,   468,     0,   464,     0,
    1517        0,   250,   298,     0,     0,   134,     0,     0,     0,     0,
    1518        0,   134,     0,     0,   114,   114,    21,     0,     0,     3,
    1519      136,   137,     2,   148,   138,   139,   140,   141,   142,   143,
    1520      150,   152,     0,     0,     0,   289,   298,   298,   553,     0,
    1521      546,   298,   381,   383,     0,   397,   699,   392,   396,   393,
    1522      386,   390,   373,   404,     0,   585,     2,   670,   669,     0,
    1523      675,     2,   488,   490,   510,     3,   518,   519,     0,     2,
    1524      514,     3,     3,     0,     0,   562,   227,     0,     0,     0,
    1525      227,     0,     0,   702,   706,   708,   701,   754,   114,     0,
    1526        3,    54,     0,    54,    54,     3,    42,    44,    39,     0,
    1527        3,   109,     0,     2,   658,   659,     0,   298,     0,     0,
    1528        0,     3,   644,     0,     2,   630,   631,     2,   646,     2,
    1529      680,   681,     0,     0,    72,     0,     3,     3,     3,     3,
    1530      416,   415,   419,   753,     2,     2,   752,     0,     0,     0,
    1531        0,     3,   469,     3,     0,   248,   151,     3,   299,   298,
    1532        0,     0,     0,     0,     2,     0,   196,     0,   194,     0,
    1533        0,     0,     0,     0,     0,     0,   553,     0,   156,   153,
    1534      298,     0,     0,   271,   283,     3,     3,   552,   619,   374,
    1535      389,   402,   298,   270,   298,     0,   521,   498,   298,     0,
    1536        0,   497,   512,     0,     0,     0,   221,     0,   230,    68,
    1537        2,   704,   705,     0,   131,   128,     0,    51,     2,    45,
    1538       52,    53,     0,     0,     0,     0,    27,     0,   661,   298,
    1539      586,   730,   731,   732,     0,   683,   298,   298,   298,     3,
    1540        3,     0,   691,     0,     0,     0,     0,   298,   298,     3,
    1541      550,   475,   476,     0,   251,   299,     0,     0,     0,     0,
    1542      298,   197,   195,   192,     0,   198,     0,     0,     0,     0,
    1543      202,   205,   203,   199,     0,   200,   134,    40,   149,   147,
    1544      249,     0,     0,   423,   427,   426,     0,   515,     2,   516,
    1545        2,   517,   511,   298,   233,     0,   231,     0,   233,   298,
    1546       36,   129,    55,     0,    43,    33,     2,    49,     2,    47,
    1547       30,     3,   733,     3,     3,     3,     0,     0,   690,   692,
    1548      633,   647,   273,     2,   413,     3,   412,     0,   478,   134,
    1549        0,     0,   134,     3,     0,   134,   193,     0,     2,     2,
    1550      214,   204,     0,     0,     0,   145,     0,   580,   620,     2,
    1551        0,     0,     2,   234,     0,     0,   222,     0,     3,     3,
    1552        0,     0,     0,     0,     0,     0,   693,   694,   298,     0,
    1553      477,   157,     0,     0,     2,   170,   134,   159,     0,   187,
    1554        0,   134,     0,     2,   161,     0,     2,     0,     2,     2,
    1555        2,   201,    37,   298,   520,   522,   513,     0,     0,     0,
    1556        0,     0,     0,     3,     3,   662,   634,   648,   684,   417,
    1557      134,   163,   166,     0,   165,   169,     3,   172,   171,     0,
    1558      134,   189,   134,     3,     0,   298,     0,   298,     0,     2,
    1559        0,     2,   144,     2,   235,   236,     0,   232,   223,   707,
    1560       46,     0,     0,   158,     0,     0,   168,   238,   173,     2,
    1561      240,   188,     0,   191,   177,   206,     3,   215,   219,   208,
    1562        3,     0,   298,     0,   298,     0,     0,     0,    50,    48,
    1563      164,   167,   134,     0,   174,   298,   134,   134,     0,   178,
    1564        0,     0,   698,   216,   217,   218,     0,   207,     3,   209,
    1565        3,   298,   224,   237,   154,   175,   160,   134,   241,   190,
    1566      185,   183,   179,   162,   134,     0,   699,     0,     0,     0,
    1567        0,   155,   176,   186,   180,   184,   183,   181,     3,     3,
    1568        0,     0,   499,   182,   210,   212,     3,     3,   211,   213
    1569 };
    1570 
    1571 /* YYDEFGOTO[NTERM-NUM].  */
    1572 static const yytype_int16 yydefgoto[] =
    1573 {
    1574       -1,   802,   466,   303,    49,   135,   136,   304,   305,   306,
    1575      307,   308,   754,   755,  1115,  1116,  1117,  1227,   309,   380,
    1576      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
    1577      321,   322,   323,  1012,   516,   961,   545,   325,   962,   935,
    1578     1038,  1504,  1040,  1041,  1042,  1043,  1505,  1044,  1045,  1422,
    1579     1423,  1385,  1386,  1387,  1483,  1484,  1488,  1489,  1524,  1525,
    1580     1046,  1344,  1047,  1048,  1280,  1281,  1282,  1466,  1049,   147,
    1581      941,   942,   943,  1364,  1446,  1458,  1459,   467,   468,   862,
    1582      863,  1020,    53,    54,    55,    56,    57,   347,   159,    60,
    1583       61,    62,    63,    64,   349,    66,    67,   265,    69,    70,
    1584      275,   351,   352,    73,    74,    75,   120,    77,   205,   354,
    1585      121,    80,   122,    82,    83,   453,    84,   452,   681,   682,
    1586      683,   895,  1067,   896,    85,    86,   456,   454,   689,   844,
    1587      845,   357,   358,   692,   693,   694,   359,   360,   361,   362,
    1588      464,   178,   137,   138,   520,   327,   171,   638,   639,   640,
    1589      641,   642,    87,   123,    89,   487,   488,   927,   489,   278,
    1590      493,   328,    90,   139,   140,    91,  1303,  1089,  1090,  1091,
    1591     1092,    92,    93,   710,    94,   274,    95,    96,   188,  1014,
    1592      672,   411,   127,    97,   499,   500,   501,   189,   269,   191,
    1593      192,   193,   270,   100,   101,   102,   103,   104,   105,   106,
    1594      196,   197,   198,   199,   200,   814,   600,   601,   602,   603,
    1595      201,   605,   606,   607,   569,   570,   571,   572,   744,   107,
    1596      609,   610,   611,   612,   613,   614,   955,   746,   747,   748,
    1597      590,   365,   366,   367,   368,   329,   165,   109,   110,   111,
    1598      370,   687,   717
    1599 };
    1600 
    1601 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1602    STATE-NUM.  */
    1603913#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.  */
    1604925static const yytype_int16 yypact[] =
    1605926{
     
    17601081};
    17611082
    1762 /* YYPGOTO[NTERM-NUM].  */
     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.  */
     1086static const yytype_uint16 yydefact[] =
     1087{
     1088     298,   298,   318,   316,   319,   317,   320,   321,   304,   306,
     1089     305,     0,   307,   332,   324,   329,   327,   328,   326,   325,
     1090     330,   331,   337,   338,   336,   333,   334,   335,   553,   553,
     1091     553,     0,     0,     0,   298,   225,   308,   322,   323,     9,
     1092     365,     0,    10,    16,    17,     0,     2,    72,    73,   571,
     1093      11,   298,   531,   529,   252,     3,   460,     3,   265,     0,
     1094       3,     3,     3,   253,     3,     0,     0,     0,   299,   300,
     1095     302,   298,   311,   314,   346,   290,   339,   344,   291,   354,
     1096     292,   361,   358,   368,     0,     0,   369,   293,   479,   483,
     1097       3,     3,     0,     2,   525,   530,   535,   303,     0,     0,
     1098     553,   583,   553,     2,   594,   595,   596,   298,     0,   737,
     1099     738,     0,    14,     0,    15,   298,   274,   275,     0,   299,
     1100     294,   295,   296,   297,   532,   309,   398,   554,   555,   376,
     1101     377,    14,   451,   452,    13,   447,   450,     0,   509,   504,
     1102     495,   451,   452,     0,     0,   534,   226,     0,   298,     0,
     1103       0,     0,     0,     0,     0,     0,     0,   298,   298,     0,
     1104     739,   299,   588,   600,   743,   736,   734,   741,     0,     0,
     1105       0,   259,     2,     0,   538,   445,   446,   444,     0,     0,
     1106       0,     0,   553,     0,   640,   641,     0,     0,   551,   547,
     1107     553,   568,   553,   553,   549,     2,   548,   553,   607,   553,
     1108     553,   610,     0,     0,     0,   298,   298,   316,   366,     2,
     1109     298,   266,   301,   312,   347,   359,   484,     0,     2,     0,
     1110     460,   267,   299,   340,   355,   362,   480,     0,     2,     0,
     1111     315,   341,   348,   349,     0,   356,   360,   363,   367,   452,
     1112     298,   378,   371,   375,     0,   400,   481,   485,     0,     0,
     1113       0,     1,   298,     2,   536,   582,   584,   298,     2,   747,
     1114     299,   750,   551,   551,     0,   299,     0,     0,   277,   553,
     1115     549,     2,   298,     0,     0,   298,   556,     2,   507,     2,
     1116     560,     0,     0,     0,     0,     0,     0,    21,    69,     4,
     1117       8,    19,     5,     6,     7,     0,     0,   298,     2,    74,
     1118      75,    76,    77,    57,    22,    58,    18,    26,    56,    78,
     1119     298,     0,    80,    84,    87,    90,    95,    98,   100,   102,
     1120     104,   106,   108,   112,   501,    23,   458,   500,     0,   456,
     1121     457,     0,   572,   587,   590,   593,   599,   602,   605,     2,
     1122     745,   298,   748,     2,    72,   298,     3,   432,     0,   440,
     1123     299,   298,   311,   339,   291,   354,   361,     3,     3,   414,
     1124     418,   428,   433,   479,   298,   434,   712,   713,   298,   435,
     1125     437,     2,   589,   601,   735,     2,     2,   254,     2,   465,
     1126       0,   463,   462,   461,   146,     2,     2,   256,     2,     2,
     1127     255,     2,   285,     2,   286,     0,   284,     0,     0,     0,
     1128       0,     0,     0,     0,     0,     0,   573,   612,     0,   460,
     1129       2,   567,   576,   666,   569,   570,   539,   298,     2,   606,
     1130     615,   608,   609,     0,   280,   298,   298,   345,   299,     0,
     1131     299,   298,   740,   744,   742,   540,   298,   551,   260,   268,
     1132     313,     0,     2,   541,   298,   505,   342,   343,   287,   357,
     1133     364,     0,   298,     0,   754,   405,     0,   482,   506,   257,
     1134     258,   526,   298,   442,     0,   298,   242,     0,     2,   244,
     1135       0,   299,     0,   262,     2,   263,   282,     0,     0,     2,
     1136     298,   551,   298,   492,   494,   493,     0,     0,   756,     0,
     1137     298,     0,   298,   496,   298,   566,   564,   565,   563,     0,
     1138     558,   561,     0,     0,   298,    64,   298,    78,    59,   298,
     1139      66,   298,   298,    62,    63,     2,   132,     0,     0,   454,
     1140       0,   453,   734,   298,    20,    31,     0,    34,    35,    40,
     1141       2,     0,    40,   118,   119,   120,   121,   122,   123,   124,
     1142     125,   126,   127,   117,   116,     0,    60,    61,     0,     0,
     1143       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1144       0,     0,     0,     0,     0,     0,     0,     2,   652,   459,
     1145     649,   553,   553,   657,   486,   298,     2,   591,   592,     0,
     1146     603,   604,     0,   746,   749,   298,   298,     0,   714,   299,
     1147     718,   709,   710,   716,     0,     2,     2,   674,   553,   756,
     1148     623,   553,   553,   756,   553,   637,   553,   553,   688,   441,
     1149     671,   553,   553,   679,   686,   298,   436,   299,     0,     0,
     1150     298,   724,   299,   729,   756,   721,   298,   726,   756,   298,
     1151     298,     0,     0,    21,     2,     0,    22,     0,   466,   754,
     1152       0,     0,   472,   246,     0,   298,     0,     0,     0,   551,
     1153     575,   579,   581,   611,   614,   618,   621,   574,   613,     0,
     1154     288,   664,     0,   298,   281,     0,     0,     0,     0,   279,
     1155       2,     0,   264,   542,   298,     0,     0,   298,     2,   370,
     1156     390,   379,     0,     0,   384,   378,   755,     0,     0,   403,
     1157       0,   299,     3,   421,     3,   425,   424,   597,     0,   537,
     1158     298,    72,     3,   298,   440,   299,     3,   434,   435,     2,
     1159       0,     0,     0,   491,   310,   298,     0,   487,   489,     3,
     1160       2,     2,     0,   508,     3,     0,   560,   134,     0,     0,
     1161     227,     0,     0,     0,     0,    41,     0,     0,   298,    24,
     1162       0,    25,     0,   698,   703,   455,   695,   553,   553,     0,
     1163     114,     3,     2,    32,     0,    38,     0,     2,    29,     0,
     1164     113,    81,    82,    83,    85,    86,    88,    89,    93,    94,
     1165      91,    92,    96,    97,    99,   101,   103,   105,   107,     0,
     1166       0,   298,     0,     0,     0,   653,   654,   650,   651,   503,
     1167     502,   298,     0,   720,   298,   725,   299,   298,   668,   711,
     1168     667,     2,   298,     0,     0,     0,     0,     0,     0,     0,
     1169       0,   689,     0,   675,   626,   642,   676,     2,   622,   629,
     1170     438,   624,   625,   439,     2,   636,   645,   638,   639,   672,
     1171     673,   687,   715,   719,   717,   756,   272,     2,   751,     2,
     1172     429,   723,   728,   430,     3,   408,     3,     3,     3,   460,
     1173       0,     0,     2,   474,   471,   755,     0,   467,     2,   470,
     1174     473,     0,   298,   247,   269,     3,   276,   278,     0,   460,
     1175       2,   577,   578,     2,   616,   617,     0,   665,   543,     3,
     1176     351,   350,   353,   352,   298,   544,     0,   545,   378,     0,
     1177       0,   298,     0,     0,   698,   388,   391,   395,   553,   395,
     1178     394,   387,   380,   553,   382,   385,   298,   405,   399,   111,
     1179     406,   754,     0,     0,   443,   245,     0,     0,     3,     2,
     1180     674,   436,     0,   533,     0,   756,   757,   495,     0,   298,
     1181     298,   298,     0,   557,   559,   135,     0,     0,   220,     0,
     1182       0,     0,   228,   229,    65,     0,    67,    70,    71,     0,
     1183     133,     0,     0,     0,   699,   700,   696,   697,   465,    79,
     1184     115,   130,     3,   114,     0,    28,    40,     3,     0,    37,
     1185     110,     0,     3,   656,   660,   663,   655,     3,   598,   722,
     1186     727,     2,    72,   298,     3,     3,   299,     0,     3,   628,
     1187     632,   635,   644,   678,   682,   685,   298,     3,   627,   643,
     1188     677,   298,   298,   431,   298,   298,     0,     0,     0,     0,
     1189     261,   111,     0,     3,     3,     0,   468,     0,   464,     0,
     1190       0,   250,   298,     0,     0,   134,     0,     0,     0,     0,
     1191       0,   134,     0,     0,   114,   114,    21,     0,     0,     3,
     1192     136,   137,     2,   148,   138,   139,   140,   141,   142,   143,
     1193     150,   152,     0,     0,     0,   289,   298,   298,   553,     0,
     1194     546,   298,   381,   383,     0,   397,   699,   392,   396,   393,
     1195     386,   390,   373,   404,     0,   585,     2,   670,   669,     0,
     1196     675,     2,   488,   490,   510,     3,   518,   519,     0,     2,
     1197     514,     3,     3,     0,     0,   562,   227,     0,     0,     0,
     1198     227,     0,     0,   702,   706,   708,   701,   754,   114,     0,
     1199       3,    54,     0,    54,    54,     3,    42,    44,    39,     0,
     1200       3,   109,     0,     2,   658,   659,     0,   298,     0,     0,
     1201       0,     3,   644,     0,     2,   630,   631,     2,   646,     2,
     1202     680,   681,     0,     0,    72,     0,     3,     3,     3,     3,
     1203     416,   415,   419,   753,     2,     2,   752,     0,     0,     0,
     1204       0,     3,   469,     3,     0,   248,   151,     3,   299,   298,
     1205       0,     0,     0,     0,     2,     0,   196,     0,   194,     0,
     1206       0,     0,     0,     0,     0,     0,   553,     0,   156,   153,
     1207     298,     0,     0,   271,   283,     3,     3,   552,   619,   374,
     1208     389,   402,   298,   270,   298,     0,   521,   498,   298,     0,
     1209       0,   497,   512,     0,     0,     0,   221,     0,   230,    68,
     1210       2,   704,   705,     0,   131,   128,     0,    51,     2,    45,
     1211      52,    53,     0,     0,     0,     0,    27,     0,   661,   298,
     1212     586,   730,   731,   732,     0,   683,   298,   298,   298,     3,
     1213       3,     0,   691,     0,     0,     0,     0,   298,   298,     3,
     1214     550,   475,   476,     0,   251,   299,     0,     0,     0,     0,
     1215     298,   197,   195,   192,     0,   198,     0,     0,     0,     0,
     1216     202,   205,   203,   199,     0,   200,   134,    40,   149,   147,
     1217     249,     0,     0,   423,   427,   426,     0,   515,     2,   516,
     1218       2,   517,   511,   298,   233,     0,   231,     0,   233,   298,
     1219      36,   129,    55,     0,    43,    33,     2,    49,     2,    47,
     1220      30,     3,   733,     3,     3,     3,     0,     0,   690,   692,
     1221     633,   647,   273,     2,   413,     3,   412,     0,   478,   134,
     1222       0,     0,   134,     3,     0,   134,   193,     0,     2,     2,
     1223     214,   204,     0,     0,     0,   145,     0,   580,   620,     2,
     1224       0,     0,     2,   234,     0,     0,   222,     0,     3,     3,
     1225       0,     0,     0,     0,     0,     0,   693,   694,   298,     0,
     1226     477,   157,     0,     0,     2,   170,   134,   159,     0,   187,
     1227       0,   134,     0,     2,   161,     0,     2,     0,     2,     2,
     1228       2,   201,    37,   298,   520,   522,   513,     0,     0,     0,
     1229       0,     0,     0,     3,     3,   662,   634,   648,   684,   417,
     1230     134,   163,   166,     0,   165,   169,     3,   172,   171,     0,
     1231     134,   189,   134,     3,     0,   298,     0,   298,     0,     2,
     1232       0,     2,   144,     2,   235,   236,     0,   232,   223,   707,
     1233      46,     0,     0,   158,     0,     0,   168,   238,   173,     2,
     1234     240,   188,     0,   191,   177,   206,     3,   215,   219,   208,
     1235       3,     0,   298,     0,   298,     0,     0,     0,    50,    48,
     1236     164,   167,   134,     0,   174,   298,   134,   134,     0,   178,
     1237       0,     0,   698,   216,   217,   218,     0,   207,     3,   209,
     1238       3,   298,   224,   237,   154,   175,   160,   134,   241,   190,
     1239     185,   183,   179,   162,   134,     0,   699,     0,     0,     0,
     1240       0,   155,   176,   186,   180,   184,   183,   181,     3,     3,
     1241       0,     0,   499,   182,   210,   212,     3,     3,   211,   213
     1242};
     1243
     1244  /* YYPGOTO[NTERM-NUM].  */
    17631245static const yytype_int16 yypgoto[] =
    17641246{
     
    17901272};
    17911273
    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
     1274  /* YYDEFGOTO[NTERM-NUM].  */
     1275static const yytype_int16 yydefgoto[] =
     1276{
     1277      -1,   802,   466,   303,    49,   135,   136,   304,   305,   306,
     1278     307,   308,   754,   755,  1115,  1116,  1117,  1227,   309,   380,
     1279     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     1280     321,   322,   323,  1012,   516,   961,   545,   325,   962,   935,
     1281    1038,  1504,  1040,  1041,  1042,  1043,  1505,  1044,  1045,  1422,
     1282    1423,  1385,  1386,  1387,  1483,  1484,  1488,  1489,  1524,  1525,
     1283    1046,  1344,  1047,  1048,  1280,  1281,  1282,  1466,  1049,   147,
     1284     941,   942,   943,  1364,  1446,  1458,  1459,   467,   468,   862,
     1285     863,  1020,    53,    54,    55,    56,    57,   347,   159,    60,
     1286      61,    62,    63,    64,   349,    66,    67,   265,    69,    70,
     1287     275,   351,   352,    73,    74,    75,   120,    77,   205,   354,
     1288     121,    80,   122,    82,    83,   453,    84,   452,   681,   682,
     1289     683,   895,  1067,   896,    85,    86,   456,   454,   689,   844,
     1290     845,   357,   358,   692,   693,   694,   359,   360,   361,   362,
     1291     464,   178,   137,   138,   520,   327,   171,   638,   639,   640,
     1292     641,   642,    87,   123,    89,   487,   488,   927,   489,   278,
     1293     493,   328,    90,   139,   140,    91,  1303,  1089,  1090,  1091,
     1294    1092,    92,    93,   710,    94,   274,    95,    96,   188,  1014,
     1295     672,   411,   127,    97,   499,   500,   501,   189,   269,   191,
     1296     192,   193,   270,   100,   101,   102,   103,   104,   105,   106,
     1297     196,   197,   198,   199,   200,   814,   600,   601,   602,   603,
     1298     201,   605,   606,   607,   569,   570,   571,   572,   744,   107,
     1299     609,   610,   611,   612,   613,   614,   955,   746,   747,   748,
     1300     590,   365,   366,   367,   368,   329,   165,   109,   110,   111,
     1301     370,   687,   717
     1302};
     1303
     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{
     
    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{
     
    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{
     
    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 305 "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 309 "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 316 "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 317 "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 318 "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 319 "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 320 "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 345 "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 349 "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 351 "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 362 "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 364 "parser.yy"
    5012     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4507#line 364 "parser.yy" /* yacc.c:1646  */
     4508    { (yyval.en) = new ExpressionNode( build_varref( (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 367 "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 369 "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 379 "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 381 "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 383 "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 385 "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 387 "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 389 "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 391 "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 393 "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 395 "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 397 "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 399 "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 409 "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 414 "parser.yy"
     4601#line 414 "parser.yy" /* yacc.c:1646  */
    51214602    { (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 420 "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 426 "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 428 "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 430 "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 432 "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 434 "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 436 "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 441 "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 443 "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 445 "parser.yy"
    5191     { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
     4661#line 445 "parser.yy" /* yacc.c:1646  */
     4662    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) ); }
     4663#line 4664 "Parser/parser.cc" /* yacc.c:1646  */
    51924664    break;
    51934665
    51944666  case 54:
    5195 
    5196 /* Line 1806 of yacc.c  */
    5197 #line 450 "parser.yy"
     4667#line 450 "parser.yy" /* yacc.c:1646  */
    51984668    { (yyval.en) = nullptr; }
     4669#line 4670 "Parser/parser.cc" /* yacc.c:1646  */
    51994670    break;
    52004671
    52014672  case 55:
    5202 
    5203 /* Line 1806 of yacc.c  */
    5204 #line 452 "parser.yy"
    5205     {
    5206                         Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) );
    5207                         (yyval.en) = (yyvsp[(1) - (2)].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en),  constant ) ) : new ExpressionNode( constant );
     4673#line 452 "parser.yy" /* yacc.c:1646  */
     4674    {
     4675                        Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) );
     4676                        (yyval.en) = (yyvsp[-1].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[-1].en),  constant ) ) : new ExpressionNode( constant );
    52084677                }
     4678#line 4679 "Parser/parser.cc" /* yacc.c:1646  */
    52094679    break;
    52104680
    52114681  case 57:
    5212 
    5213 /* Line 1806 of yacc.c  */
    5214 #line 463 "parser.yy"
    5215     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     4682#line 463 "parser.yy" /* yacc.c:1646  */
     4683    { (yyval.en) = (yyvsp[0].en); }
     4684#line 4685 "Parser/parser.cc" /* yacc.c:1646  */
    52164685    break;
    52174686
    52184687  case 58:
    5219 
    5220 /* Line 1806 of yacc.c  */
    5221 #line 465 "parser.yy"
    5222     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     4688#line 465 "parser.yy" /* yacc.c:1646  */
     4689    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     4690#line 4691 "Parser/parser.cc" /* yacc.c:1646  */
    52234691    break;
    52244692
    52254693  case 59:
    5226 
    5227 /* Line 1806 of yacc.c  */
    5228 #line 467 "parser.yy"
    5229     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     4694#line 467 "parser.yy" /* yacc.c:1646  */
     4695    { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
     4696#line 4697 "Parser/parser.cc" /* yacc.c:1646  */
    52304697    break;
    52314698
    52324699  case 60:
    5233 
    5234 /* Line 1806 of yacc.c  */
    5235 #line 472 "parser.yy"
    5236     {
    5237                         switch ( (yyvsp[(1) - (2)].op) ) {
     4700#line 472 "parser.yy" /* yacc.c:1646  */
     4701    {
     4702                        switch ( (yyvsp[-1].op) ) {
    52384703                          case OperKinds::AddressOf:
    5239                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     4704                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
    52404705                                break;
    52414706                          case OperKinds::PointTo:
    5242                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     4707                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
    52434708                                break;
    52444709                          default:
     
    52464711                        }
    52474712                }
     4713#line 4714 "Parser/parser.cc" /* yacc.c:1646  */
    52484714    break;
    52494715
    52504716  case 61:
    5251 
    5252 /* Line 1806 of yacc.c  */
    5253 #line 485 "parser.yy"
    5254     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     4717#line 485 "parser.yy" /* yacc.c:1646  */
     4718    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
     4719#line 4720 "Parser/parser.cc" /* yacc.c:1646  */
    52554720    break;
    52564721
    52574722  case 62:
    5258 
    5259 /* Line 1806 of yacc.c  */
    5260 #line 487 "parser.yy"
    5261     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     4723#line 487 "parser.yy" /* yacc.c:1646  */
     4724    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
     4725#line 4726 "Parser/parser.cc" /* yacc.c:1646  */
    52624726    break;
    52634727
    52644728  case 63:
    5265 
    5266 /* Line 1806 of yacc.c  */
    5267 #line 489 "parser.yy"
    5268     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     4729#line 489 "parser.yy" /* yacc.c:1646  */
     4730    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
     4731#line 4732 "Parser/parser.cc" /* yacc.c:1646  */
    52694732    break;
    52704733
    52714734  case 64:
    5272 
    5273 /* Line 1806 of yacc.c  */
    5274 #line 491 "parser.yy"
    5275     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4735#line 491 "parser.yy" /* yacc.c:1646  */
     4736    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
     4737#line 4738 "Parser/parser.cc" /* yacc.c:1646  */
    52764738    break;
    52774739
    52784740  case 65:
    5279 
    5280 /* Line 1806 of yacc.c  */
    5281 #line 493 "parser.yy"
    5282     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4741#line 493 "parser.yy" /* yacc.c:1646  */
     4742    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
     4743#line 4744 "Parser/parser.cc" /* yacc.c:1646  */
    52834744    break;
    52844745
    52854746  case 66:
    5286 
    5287 /* Line 1806 of yacc.c  */
    5288 #line 495 "parser.yy"
    5289     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4747#line 495 "parser.yy" /* yacc.c:1646  */
     4748    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
     4749#line 4750 "Parser/parser.cc" /* yacc.c:1646  */
    52904750    break;
    52914751
    52924752  case 67:
    5293 
    5294 /* Line 1806 of yacc.c  */
    5295 #line 497 "parser.yy"
    5296     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4753#line 497 "parser.yy" /* yacc.c:1646  */
     4754    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
     4755#line 4756 "Parser/parser.cc" /* yacc.c:1646  */
    52974756    break;
    52984757
    52994758  case 68:
    5300 
    5301 /* Line 1806 of yacc.c  */
    5302 #line 499 "parser.yy"
    5303     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     4759#line 499 "parser.yy" /* yacc.c:1646  */
     4760    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
     4761#line 4762 "Parser/parser.cc" /* yacc.c:1646  */
    53044762    break;
    53054763
    53064764  case 69:
    5307 
    5308 /* Line 1806 of yacc.c  */
    5309 #line 501 "parser.yy"
    5310     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     4765#line 501 "parser.yy" /* yacc.c:1646  */
     4766    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
     4767#line 4768 "Parser/parser.cc" /* yacc.c:1646  */
    53114768    break;
    53124769
    53134770  case 70:
    5314 
    5315 /* Line 1806 of yacc.c  */
    5316 #line 503 "parser.yy"
    5317     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     4771#line 503 "parser.yy" /* yacc.c:1646  */
     4772    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
     4773#line 4774 "Parser/parser.cc" /* yacc.c:1646  */
    53184774    break;
    53194775
    53204776  case 71:
    5321 
    5322 /* Line 1806 of yacc.c  */
    5323 #line 505 "parser.yy"
    5324     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     4777#line 505 "parser.yy" /* yacc.c:1646  */
     4778    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
     4779#line 4780 "Parser/parser.cc" /* yacc.c:1646  */
    53254780    break;
    53264781
    53274782  case 72:
    5328 
    5329 /* Line 1806 of yacc.c  */
    5330 #line 511 "parser.yy"
     4783#line 511 "parser.yy" /* yacc.c:1646  */
    53314784    { (yyval.op) = OperKinds::PointTo; }
     4785#line 4786 "Parser/parser.cc" /* yacc.c:1646  */
    53324786    break;
    53334787
    53344788  case 73:
    5335 
    5336 /* Line 1806 of yacc.c  */
    5337 #line 512 "parser.yy"
     4789#line 512 "parser.yy" /* yacc.c:1646  */
    53384790    { (yyval.op) = OperKinds::AddressOf; }
     4791#line 4792 "Parser/parser.cc" /* yacc.c:1646  */
    53394792    break;
    53404793
    53414794  case 74:
    5342 
    5343 /* Line 1806 of yacc.c  */
    5344 #line 518 "parser.yy"
     4795#line 518 "parser.yy" /* yacc.c:1646  */
    53454796    { (yyval.op) = OperKinds::UnPlus; }
     4797#line 4798 "Parser/parser.cc" /* yacc.c:1646  */
    53464798    break;
    53474799
    53484800  case 75:
    5349 
    5350 /* Line 1806 of yacc.c  */
    5351 #line 519 "parser.yy"
     4801#line 519 "parser.yy" /* yacc.c:1646  */
    53524802    { (yyval.op) = OperKinds::UnMinus; }
     4803#line 4804 "Parser/parser.cc" /* yacc.c:1646  */
    53534804    break;
    53544805
    53554806  case 76:
    5356 
    5357 /* Line 1806 of yacc.c  */
    5358 #line 520 "parser.yy"
     4807#line 520 "parser.yy" /* yacc.c:1646  */
    53594808    { (yyval.op) = OperKinds::Neg; }
     4809#line 4810 "Parser/parser.cc" /* yacc.c:1646  */
    53604810    break;
    53614811
    53624812  case 77:
    5363 
    5364 /* Line 1806 of yacc.c  */
    5365 #line 521 "parser.yy"
     4813#line 521 "parser.yy" /* yacc.c:1646  */
    53664814    { (yyval.op) = OperKinds::BitNeg; }
     4815#line 4816 "Parser/parser.cc" /* yacc.c:1646  */
    53674816    break;
    53684817
    53694818  case 79:
    5370 
    5371 /* Line 1806 of yacc.c  */
    5372 #line 527 "parser.yy"
    5373     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     4819#line 527 "parser.yy" /* yacc.c:1646  */
     4820    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
     4821#line 4822 "Parser/parser.cc" /* yacc.c:1646  */
    53744822    break;
    53754823
    53764824  case 81:
    5377 
    5378 /* Line 1806 of yacc.c  */
    5379 #line 535 "parser.yy"
    5380     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4825#line 535 "parser.yy" /* yacc.c:1646  */
     4826    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4827#line 4828 "Parser/parser.cc" /* yacc.c:1646  */
    53814828    break;
    53824829
    53834830  case 82:
    5384 
    5385 /* Line 1806 of yacc.c  */
    5386 #line 537 "parser.yy"
    5387     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4831#line 537 "parser.yy" /* yacc.c:1646  */
     4832    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4833#line 4834 "Parser/parser.cc" /* yacc.c:1646  */
    53884834    break;
    53894835
    53904836  case 83:
    5391 
    5392 /* Line 1806 of yacc.c  */
    5393 #line 539 "parser.yy"
    5394     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4837#line 539 "parser.yy" /* yacc.c:1646  */
     4838    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4839#line 4840 "Parser/parser.cc" /* yacc.c:1646  */
    53954840    break;
    53964841
    53974842  case 85:
    5398 
    5399 /* Line 1806 of yacc.c  */
    5400 #line 545 "parser.yy"
    5401     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (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::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4845#line 4846 "Parser/parser.cc" /* yacc.c:1646  */
    54024846    break;
    54034847
    54044848  case 86:
    5405 
    5406 /* Line 1806 of yacc.c  */
    5407 #line 547 "parser.yy"
    5408     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4849#line 547 "parser.yy" /* yacc.c:1646  */
     4850    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4851#line 4852 "Parser/parser.cc" /* yacc.c:1646  */
    54094852    break;
    54104853
    54114854  case 88:
    5412 
    5413 /* Line 1806 of yacc.c  */
    5414 #line 553 "parser.yy"
    5415     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (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::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4857#line 4858 "Parser/parser.cc" /* yacc.c:1646  */
    54164858    break;
    54174859
    54184860  case 89:
    5419 
    5420 /* Line 1806 of yacc.c  */
    5421 #line 555 "parser.yy"
    5422     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4861#line 555 "parser.yy" /* yacc.c:1646  */
     4862    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4863#line 4864 "Parser/parser.cc" /* yacc.c:1646  */
    54234864    break;
    54244865
    54254866  case 91:
    5426 
    5427 /* Line 1806 of yacc.c  */
    5428 #line 561 "parser.yy"
    5429     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (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::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4869#line 4870 "Parser/parser.cc" /* yacc.c:1646  */
    54304870    break;
    54314871
    54324872  case 92:
    5433 
    5434 /* Line 1806 of yacc.c  */
    5435 #line 563 "parser.yy"
    5436     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4873#line 563 "parser.yy" /* yacc.c:1646  */
     4874    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4875#line 4876 "Parser/parser.cc" /* yacc.c:1646  */
    54374876    break;
    54384877
    54394878  case 93:
    5440 
    5441 /* Line 1806 of yacc.c  */
    5442 #line 565 "parser.yy"
    5443     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4879#line 565 "parser.yy" /* yacc.c:1646  */
     4880    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4881#line 4882 "Parser/parser.cc" /* yacc.c:1646  */
    54444882    break;
    54454883
    54464884  case 94:
    5447 
    5448 /* Line 1806 of yacc.c  */
    5449 #line 567 "parser.yy"
    5450     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4885#line 567 "parser.yy" /* yacc.c:1646  */
     4886    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4887#line 4888 "Parser/parser.cc" /* yacc.c:1646  */
    54514888    break;
    54524889
    54534890  case 96:
    5454 
    5455 /* Line 1806 of yacc.c  */
    5456 #line 573 "parser.yy"
    5457     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (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::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4893#line 4894 "Parser/parser.cc" /* yacc.c:1646  */
    54584894    break;
    54594895
    54604896  case 97:
    5461 
    5462 /* Line 1806 of yacc.c  */
    5463 #line 575 "parser.yy"
    5464     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4897#line 575 "parser.yy" /* yacc.c:1646  */
     4898    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4899#line 4900 "Parser/parser.cc" /* yacc.c:1646  */
    54654900    break;
    54664901
    54674902  case 99:
    5468 
    5469 /* Line 1806 of yacc.c  */
    5470 #line 581 "parser.yy"
    5471     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (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::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4905#line 4906 "Parser/parser.cc" /* yacc.c:1646  */
    54724906    break;
    54734907
    54744908  case 101:
    5475 
    5476 /* Line 1806 of yacc.c  */
    5477 #line 587 "parser.yy"
    5478     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (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::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4911#line 4912 "Parser/parser.cc" /* yacc.c:1646  */
    54794912    break;
    54804913
    54814914  case 103:
    5482 
    5483 /* Line 1806 of yacc.c  */
    5484 #line 593 "parser.yy"
    5485     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (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::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4917#line 4918 "Parser/parser.cc" /* yacc.c:1646  */
    54864918    break;
    54874919
    54884920  case 105:
    5489 
    5490 /* Line 1806 of yacc.c  */
    5491 #line 599 "parser.yy"
    5492     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     4921#line 599 "parser.yy" /* yacc.c:1646  */
     4922    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
     4923#line 4924 "Parser/parser.cc" /* yacc.c:1646  */
    54934924    break;
    54944925
    54954926  case 107:
    5496 
    5497 /* Line 1806 of yacc.c  */
    5498 #line 605 "parser.yy"
    5499     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     4927#line 605 "parser.yy" /* yacc.c:1646  */
     4928    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
     4929#line 4930 "Parser/parser.cc" /* yacc.c:1646  */
    55004930    break;
    55014931
    55024932  case 109:
    5503 
    5504 /* Line 1806 of yacc.c  */
    5505 #line 611 "parser.yy"
    5506     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     4933#line 611 "parser.yy" /* yacc.c:1646  */
     4934    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4935#line 4936 "Parser/parser.cc" /* yacc.c:1646  */
    55074936    break;
    55084937
    55094938  case 110:
    5510 
    5511 /* Line 1806 of yacc.c  */
    5512 #line 614 "parser.yy"
    5513     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     4939#line 614 "parser.yy" /* yacc.c:1646  */
     4940    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
     4941#line 4942 "Parser/parser.cc" /* yacc.c:1646  */
    55144942    break;
    55154943
    55164944  case 113:
    5517 
    5518 /* Line 1806 of yacc.c  */
    5519 #line 627 "parser.yy"
    5520     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4945#line 627 "parser.yy" /* yacc.c:1646  */
     4946    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4947#line 4948 "Parser/parser.cc" /* yacc.c:1646  */
    55214948    break;
    55224949
    55234950  case 114:
    5524 
    5525 /* Line 1806 of yacc.c  */
    5526 #line 634 "parser.yy"
     4951#line 634 "parser.yy" /* yacc.c:1646  */
    55274952    { (yyval.en) = nullptr; }
     4953#line 4954 "Parser/parser.cc" /* yacc.c:1646  */
    55284954    break;
    55294955
    55304956  case 116:
    5531 
    5532 /* Line 1806 of yacc.c  */
    5533 #line 639 "parser.yy"
     4957#line 639 "parser.yy" /* yacc.c:1646  */
    55344958    { (yyval.op) = OperKinds::Assign; }
     4959#line 4960 "Parser/parser.cc" /* yacc.c:1646  */
    55354960    break;
    55364961
    55374962  case 117:
    5538 
    5539 /* Line 1806 of yacc.c  */
    5540 #line 640 "parser.yy"
     4963#line 640 "parser.yy" /* yacc.c:1646  */
    55414964    { (yyval.op) = OperKinds::AtAssn; }
     4965#line 4966 "Parser/parser.cc" /* yacc.c:1646  */
    55424966    break;
    55434967
    55444968  case 118:
    5545 
    5546 /* Line 1806 of yacc.c  */
    5547 #line 641 "parser.yy"
     4969#line 641 "parser.yy" /* yacc.c:1646  */
    55484970    { (yyval.op) = OperKinds::MulAssn; }
     4971#line 4972 "Parser/parser.cc" /* yacc.c:1646  */
    55494972    break;
    55504973
    55514974  case 119:
    5552 
    5553 /* Line 1806 of yacc.c  */
    5554 #line 642 "parser.yy"
     4975#line 642 "parser.yy" /* yacc.c:1646  */
    55554976    { (yyval.op) = OperKinds::DivAssn; }
     4977#line 4978 "Parser/parser.cc" /* yacc.c:1646  */
    55564978    break;
    55574979
    55584980  case 120:
    5559 
    5560 /* Line 1806 of yacc.c  */
    5561 #line 643 "parser.yy"
     4981#line 643 "parser.yy" /* yacc.c:1646  */
    55624982    { (yyval.op) = OperKinds::ModAssn; }
     4983#line 4984 "Parser/parser.cc" /* yacc.c:1646  */
    55634984    break;
    55644985
    55654986  case 121:
    5566 
    5567 /* Line 1806 of yacc.c  */
    5568 #line 644 "parser.yy"
     4987#line 644 "parser.yy" /* yacc.c:1646  */
    55694988    { (yyval.op) = OperKinds::PlusAssn; }
     4989#line 4990 "Parser/parser.cc" /* yacc.c:1646  */
    55704990    break;
    55714991
    55724992  case 122:
    5573 
    5574 /* Line 1806 of yacc.c  */
    5575 #line 645 "parser.yy"
     4993#line 645 "parser.yy" /* yacc.c:1646  */
    55764994    { (yyval.op) = OperKinds::MinusAssn; }
     4995#line 4996 "Parser/parser.cc" /* yacc.c:1646  */
    55774996    break;
    55784997
    55794998  case 123:
    5580 
    5581 /* Line 1806 of yacc.c  */
    5582 #line 646 "parser.yy"
     4999#line 646 "parser.yy" /* yacc.c:1646  */
    55835000    { (yyval.op) = OperKinds::LSAssn; }
     5001#line 5002 "Parser/parser.cc" /* yacc.c:1646  */
    55845002    break;
    55855003
    55865004  case 124:
    5587 
    5588 /* Line 1806 of yacc.c  */
    5589 #line 647 "parser.yy"
     5005#line 647 "parser.yy" /* yacc.c:1646  */
    55905006    { (yyval.op) = OperKinds::RSAssn; }
     5007#line 5008 "Parser/parser.cc" /* yacc.c:1646  */
    55915008    break;
    55925009
    55935010  case 125:
    5594 
    5595 /* Line 1806 of yacc.c  */
    5596 #line 648 "parser.yy"
     5011#line 648 "parser.yy" /* yacc.c:1646  */
    55975012    { (yyval.op) = OperKinds::AndAssn; }
     5013#line 5014 "Parser/parser.cc" /* yacc.c:1646  */
    55985014    break;
    55995015
    56005016  case 126:
    5601 
    5602 /* Line 1806 of yacc.c  */
    5603 #line 649 "parser.yy"
     5017#line 649 "parser.yy" /* yacc.c:1646  */
    56045018    { (yyval.op) = OperKinds::ERAssn; }
     5019#line 5020 "Parser/parser.cc" /* yacc.c:1646  */
    56055020    break;
    56065021
    56075022  case 127:
    5608 
    5609 /* Line 1806 of yacc.c  */
    5610 #line 650 "parser.yy"
     5023#line 650 "parser.yy" /* yacc.c:1646  */
    56115024    { (yyval.op) = OperKinds::OrAssn; }
     5025#line 5026 "Parser/parser.cc" /* yacc.c:1646  */
    56125026    break;
    56135027
    56145028  case 128:
    5615 
    5616 /* Line 1806 of yacc.c  */
    5617 #line 661 "parser.yy"
    5618     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5029#line 661 "parser.yy" /* yacc.c:1646  */
     5030    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
     5031#line 5032 "Parser/parser.cc" /* yacc.c:1646  */
    56195032    break;
    56205033
    56215034  case 129:
    5622 
    5623 /* Line 1806 of yacc.c  */
    5624 #line 663 "parser.yy"
    5625     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5035#line 663 "parser.yy" /* yacc.c:1646  */
     5036    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
     5037#line 5038 "Parser/parser.cc" /* yacc.c:1646  */
    56265038    break;
    56275039
    56285040  case 131:
    5629 
    5630 /* Line 1806 of yacc.c  */
    5631 #line 669 "parser.yy"
    5632     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5041#line 669 "parser.yy" /* yacc.c:1646  */
     5042    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5043#line 5044 "Parser/parser.cc" /* yacc.c:1646  */
    56335044    break;
    56345045
    56355046  case 133:
    5636 
    5637 /* Line 1806 of yacc.c  */
    5638 #line 675 "parser.yy"
    5639     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5047#line 675 "parser.yy" /* yacc.c:1646  */
     5048    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5049#line 5050 "Parser/parser.cc" /* yacc.c:1646  */
    56405050    break;
    56415051
    56425052  case 134:
    5643 
    5644 /* Line 1806 of yacc.c  */
    5645 #line 680 "parser.yy"
     5053#line 680 "parser.yy" /* yacc.c:1646  */
    56465054    { (yyval.en) = 0; }
     5055#line 5056 "Parser/parser.cc" /* yacc.c:1646  */
    56475056    break;
    56485057
    56495058  case 138:
    5650 
    5651 /* Line 1806 of yacc.c  */
    5652 #line 689 "parser.yy"
    5653     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5059#line 689 "parser.yy" /* yacc.c:1646  */
     5060    { (yyval.sn) = (yyvsp[0].sn); }
     5061#line 5062 "Parser/parser.cc" /* yacc.c:1646  */
    56545062    break;
    56555063
    56565064  case 144:
    5657 
    5658 /* Line 1806 of yacc.c  */
    5659 #line 696 "parser.yy"
     5065#line 696 "parser.yy" /* yacc.c:1646  */
    56605066    {
    56615067                        Token fn;
    56625068                        fn.str = new string( "^?{}" );                          // location undefined
    5663                         (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) ) ) ) ) );
     5069                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
    56645070                }
     5071#line 5072 "Parser/parser.cc" /* yacc.c:1646  */
    56655072    break;
    56665073
    56675074  case 145:
    5668 
    5669 /* Line 1806 of yacc.c  */
    5670 #line 706 "parser.yy"
    5671     {
    5672                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5075#line 706 "parser.yy" /* yacc.c:1646  */
     5076    {
     5077                        (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
    56735078                }
     5079#line 5080 "Parser/parser.cc" /* yacc.c:1646  */
    56745080    break;
    56755081
    56765082  case 146:
    5677 
    5678 /* Line 1806 of yacc.c  */
    5679 #line 713 "parser.yy"
     5083#line 713 "parser.yy" /* yacc.c:1646  */
    56805084    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5085#line 5086 "Parser/parser.cc" /* yacc.c:1646  */
    56815086    break;
    56825087
    56835088  case 147:
    5684 
    5685 /* Line 1806 of yacc.c  */
    5686 #line 720 "parser.yy"
    5687     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5089#line 720 "parser.yy" /* yacc.c:1646  */
     5090    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
     5091#line 5092 "Parser/parser.cc" /* yacc.c:1646  */
    56885092    break;
    56895093
    56905094  case 149:
    5691 
    5692 /* Line 1806 of yacc.c  */
    5693 #line 726 "parser.yy"
    5694     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5095#line 726 "parser.yy" /* yacc.c:1646  */
     5096    { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
     5097#line 5098 "Parser/parser.cc" /* yacc.c:1646  */
    56955098    break;
    56965099
    56975100  case 150:
    5698 
    5699 /* Line 1806 of yacc.c  */
    5700 #line 731 "parser.yy"
    5701     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5101#line 731 "parser.yy" /* yacc.c:1646  */
     5102    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5103#line 5104 "Parser/parser.cc" /* yacc.c:1646  */
    57025104    break;
    57035105
    57045106  case 151:
    5705 
    5706 /* Line 1806 of yacc.c  */
    5707 #line 733 "parser.yy"
     5107#line 733 "parser.yy" /* yacc.c:1646  */
    57085108    {   // mark all fields in list
    5709                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5109                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    57105110                                iter->set_extension( true );
    5711                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
     5111                        (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
    57125112                }
     5113#line 5114 "Parser/parser.cc" /* yacc.c:1646  */
    57135114    break;
    57145115
    57155116  case 152:
    5716 
    5717 /* Line 1806 of yacc.c  */
    5718 #line 739 "parser.yy"
    5719     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5117#line 739 "parser.yy" /* yacc.c:1646  */
     5118    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5119#line 5120 "Parser/parser.cc" /* yacc.c:1646  */
    57205120    break;
    57215121
    57225122  case 155:
    5723 
    5724 /* Line 1806 of yacc.c  */
    5725 #line 746 "parser.yy"
    5726     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5123#line 746 "parser.yy" /* yacc.c:1646  */
     5124    { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
     5125#line 5126 "Parser/parser.cc" /* yacc.c:1646  */
    57275126    break;
    57285127
    57295128  case 156:
    5730 
    5731 /* Line 1806 of yacc.c  */
    5732 #line 751 "parser.yy"
    5733     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5129#line 751 "parser.yy" /* yacc.c:1646  */
     5130    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
     5131#line 5132 "Parser/parser.cc" /* yacc.c:1646  */
    57345132    break;
    57355133
    57365134  case 157:
    5737 
    5738 /* Line 1806 of yacc.c  */
    5739 #line 757 "parser.yy"
    5740     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5135#line 757 "parser.yy" /* yacc.c:1646  */
     5136    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
     5137#line 5138 "Parser/parser.cc" /* yacc.c:1646  */
    57415138    break;
    57425139
    57435140  case 158:
    5744 
    5745 /* Line 1806 of yacc.c  */
    5746 #line 759 "parser.yy"
    5747     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5141#line 759 "parser.yy" /* yacc.c:1646  */
     5142    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
     5143#line 5144 "Parser/parser.cc" /* yacc.c:1646  */
    57485144    break;
    57495145
    57505146  case 159:
    5751 
    5752 /* Line 1806 of yacc.c  */
    5753 #line 761 "parser.yy"
    5754     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5147#line 761 "parser.yy" /* yacc.c:1646  */
     5148    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5149#line 5150 "Parser/parser.cc" /* yacc.c:1646  */
    57555150    break;
    57565151
    57575152  case 160:
    5758 
    5759 /* Line 1806 of yacc.c  */
    5760 #line 763 "parser.yy"
    5761     {
    5762                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5153#line 763 "parser.yy" /* yacc.c:1646  */
     5154    {
     5155                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    57635156                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    57645157                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    57665159                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57675160                        // statement.
    5768                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5161                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57695162                }
     5163#line 5164 "Parser/parser.cc" /* yacc.c:1646  */
    57705164    break;
    57715165
    57725166  case 161:
    5773 
    5774 /* Line 1806 of yacc.c  */
    5775 #line 773 "parser.yy"
    5776     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5167#line 773 "parser.yy" /* yacc.c:1646  */
     5168    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5169#line 5170 "Parser/parser.cc" /* yacc.c:1646  */
    57775170    break;
    57785171
    57795172  case 162:
    5780 
    5781 /* Line 1806 of yacc.c  */
    5782 #line 775 "parser.yy"
    5783     {
    5784                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    5785                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5173#line 775 "parser.yy" /* yacc.c:1646  */
     5174    {
     5175                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5176                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57865177                }
     5178#line 5179 "Parser/parser.cc" /* yacc.c:1646  */
    57875179    break;
    57885180
    57895181  case 163:
    5790 
    5791 /* Line 1806 of yacc.c  */
    5792 #line 785 "parser.yy"
    5793     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5182#line 785 "parser.yy" /* yacc.c:1646  */
     5183    { (yyval.en) = (yyvsp[0].en); }
     5184#line 5185 "Parser/parser.cc" /* yacc.c:1646  */
    57945185    break;
    57955186
    57965187  case 164:
    5797 
    5798 /* Line 1806 of yacc.c  */
    5799 #line 787 "parser.yy"
    5800     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5188#line 787 "parser.yy" /* yacc.c:1646  */
     5189    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5190#line 5191 "Parser/parser.cc" /* yacc.c:1646  */
    58015191    break;
    58025192
    58035193  case 166:
    5804 
    5805 /* Line 1806 of yacc.c  */
    5806 #line 792 "parser.yy"
    5807     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5194#line 792 "parser.yy" /* yacc.c:1646  */
     5195    { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
     5196#line 5197 "Parser/parser.cc" /* yacc.c:1646  */
    58085197    break;
    58095198
    58105199  case 167:
    5811 
    5812 /* Line 1806 of yacc.c  */
    5813 #line 794 "parser.yy"
    5814     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5200#line 794 "parser.yy" /* yacc.c:1646  */
     5201    { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
     5202#line 5203 "Parser/parser.cc" /* yacc.c:1646  */
    58155203    break;
    58165204
    58175205  case 168:
    5818 
    5819 /* Line 1806 of yacc.c  */
    5820 #line 798 "parser.yy"
    5821     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5206#line 798 "parser.yy" /* yacc.c:1646  */
     5207    { (yyval.sn) = (yyvsp[-1].sn); }
     5208#line 5209 "Parser/parser.cc" /* yacc.c:1646  */
    58225209    break;
    58235210
    58245211  case 169:
    5825 
    5826 /* Line 1806 of yacc.c  */
    5827 #line 799 "parser.yy"
     5212#line 799 "parser.yy" /* yacc.c:1646  */
    58285213    { (yyval.sn) = new StatementNode( build_default() ); }
     5214#line 5215 "Parser/parser.cc" /* yacc.c:1646  */
    58295215    break;
    58305216
    58315217  case 171:
    5832 
    5833 /* Line 1806 of yacc.c  */
    5834 #line 805 "parser.yy"
    5835     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5218#line 805 "parser.yy" /* yacc.c:1646  */
     5219    { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
     5220#line 5221 "Parser/parser.cc" /* yacc.c:1646  */
    58365221    break;
    58375222
    58385223  case 172:
    5839 
    5840 /* Line 1806 of yacc.c  */
    5841 #line 809 "parser.yy"
    5842     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5224#line 809 "parser.yy" /* yacc.c:1646  */
     5225    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5226#line 5227 "Parser/parser.cc" /* yacc.c:1646  */
    58435227    break;
    58445228
    58455229  case 173:
    5846 
    5847 /* Line 1806 of yacc.c  */
    5848 #line 814 "parser.yy"
     5230#line 814 "parser.yy" /* yacc.c:1646  */
    58495231    { (yyval.sn) = 0; }
     5232#line 5233 "Parser/parser.cc" /* yacc.c:1646  */
    58505233    break;
    58515234
    58525235  case 175:
    5853 
    5854 /* Line 1806 of yacc.c  */
    5855 #line 820 "parser.yy"
    5856     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5236#line 820 "parser.yy" /* yacc.c:1646  */
     5237    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5238#line 5239 "Parser/parser.cc" /* yacc.c:1646  */
    58575239    break;
    58585240
    58595241  case 176:
    5860 
    5861 /* Line 1806 of yacc.c  */
    5862 #line 822 "parser.yy"
    5863     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5242#line 822 "parser.yy" /* yacc.c:1646  */
     5243    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
     5244#line 5245 "Parser/parser.cc" /* yacc.c:1646  */
    58645245    break;
    58655246
    58665247  case 177:
    5867 
    5868 /* Line 1806 of yacc.c  */
    5869 #line 827 "parser.yy"
     5248#line 827 "parser.yy" /* yacc.c:1646  */
    58705249    { (yyval.sn) = 0; }
     5250#line 5251 "Parser/parser.cc" /* yacc.c:1646  */
    58715251    break;
    58725252
    58735253  case 179:
    5874 
    5875 /* Line 1806 of yacc.c  */
    5876 #line 833 "parser.yy"
    5877     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5254#line 833 "parser.yy" /* yacc.c:1646  */
     5255    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
     5256#line 5257 "Parser/parser.cc" /* yacc.c:1646  */
    58785257    break;
    58795258
    58805259  case 180:
    5881 
    5882 /* Line 1806 of yacc.c  */
    5883 #line 835 "parser.yy"
    5884     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5260#line 835 "parser.yy" /* yacc.c:1646  */
     5261    { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
     5262#line 5263 "Parser/parser.cc" /* yacc.c:1646  */
    58855263    break;
    58865264
    58875265  case 181:
    5888 
    5889 /* Line 1806 of yacc.c  */
    5890 #line 837 "parser.yy"
    5891     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5266#line 837 "parser.yy" /* yacc.c:1646  */
     5267    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
     5268#line 5269 "Parser/parser.cc" /* yacc.c:1646  */
    58925269    break;
    58935270
    58945271  case 182:
    5895 
    5896 /* Line 1806 of yacc.c  */
    5897 #line 839 "parser.yy"
    5898     { (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) ) ) ) ) ) ); }
     5272#line 839 "parser.yy" /* yacc.c:1646  */
     5273    { (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) ) ) ) ) ) ); }
     5274#line 5275 "Parser/parser.cc" /* yacc.c:1646  */
    58995275    break;
    59005276
    59015277  case 183:
    5902 
    5903 /* Line 1806 of yacc.c  */
    5904 #line 844 "parser.yy"
     5278#line 844 "parser.yy" /* yacc.c:1646  */
    59055279    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5280#line 5281 "Parser/parser.cc" /* yacc.c:1646  */
    59065281    break;
    59075282
    59085283  case 185:
    5909 
    5910 /* Line 1806 of yacc.c  */
    5911 #line 850 "parser.yy"
     5284#line 850 "parser.yy" /* yacc.c:1646  */
    59125285    { (yyval.sn) = 0; }
     5286#line 5287 "Parser/parser.cc" /* yacc.c:1646  */
    59135287    break;
    59145288
    59155289  case 186:
    5916 
    5917 /* Line 1806 of yacc.c  */
    5918 #line 852 "parser.yy"
     5290#line 852 "parser.yy" /* yacc.c:1646  */
    59195291    { (yyval.sn) = 0; }
     5292#line 5293 "Parser/parser.cc" /* yacc.c:1646  */
    59205293    break;
    59215294
    59225295  case 187:
    5923 
    5924 /* Line 1806 of yacc.c  */
    5925 #line 857 "parser.yy"
    5926     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5296#line 857 "parser.yy" /* yacc.c:1646  */
     5297    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5298#line 5299 "Parser/parser.cc" /* yacc.c:1646  */
    59275299    break;
    59285300
    59295301  case 188:
    5930 
    5931 /* Line 1806 of yacc.c  */
    5932 #line 859 "parser.yy"
    5933     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     5302#line 859 "parser.yy" /* yacc.c:1646  */
     5303    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); }
     5304#line 5305 "Parser/parser.cc" /* yacc.c:1646  */
    59345305    break;
    59355306
    59365307  case 189:
    5937 
    5938 /* Line 1806 of yacc.c  */
    5939 #line 861 "parser.yy"
    5940     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5308#line 861 "parser.yy" /* yacc.c:1646  */
     5309    { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
     5310#line 5311 "Parser/parser.cc" /* yacc.c:1646  */
    59415311    break;
    59425312
    59435313  case 190:
    5944 
    5945 /* Line 1806 of yacc.c  */
    5946 #line 866 "parser.yy"
    5947     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5314#line 866 "parser.yy" /* yacc.c:1646  */
     5315    { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5316#line 5317 "Parser/parser.cc" /* yacc.c:1646  */
    59485317    break;
    59495318
    59505319  case 191:
    5951 
    5952 /* Line 1806 of yacc.c  */
    5953 #line 868 "parser.yy"
    5954     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5320#line 868 "parser.yy" /* yacc.c:1646  */
     5321    { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5322#line 5323 "Parser/parser.cc" /* yacc.c:1646  */
    59555323    break;
    59565324
    59575325  case 192:
    5958 
    5959 /* Line 1806 of yacc.c  */
    5960 #line 873 "parser.yy"
    5961     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5326#line 873 "parser.yy" /* yacc.c:1646  */
     5327    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); }
     5328#line 5329 "Parser/parser.cc" /* yacc.c:1646  */
    59625329    break;
    59635330
    59645331  case 193:
    5965 
    5966 /* Line 1806 of yacc.c  */
    5967 #line 877 "parser.yy"
    5968     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5332#line 877 "parser.yy" /* yacc.c:1646  */
     5333    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
     5334#line 5335 "Parser/parser.cc" /* yacc.c:1646  */
    59695335    break;
    59705336
    59715337  case 194:
    5972 
    5973 /* Line 1806 of yacc.c  */
    5974 #line 880 "parser.yy"
     5338#line 880 "parser.yy" /* yacc.c:1646  */
    59755339    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5340#line 5341 "Parser/parser.cc" /* yacc.c:1646  */
    59765341    break;
    59775342
    59785343  case 195:
    5979 
    5980 /* Line 1806 of yacc.c  */
    5981 #line 884 "parser.yy"
    5982     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     5344#line 884 "parser.yy" /* yacc.c:1646  */
     5345    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); }
     5346#line 5347 "Parser/parser.cc" /* yacc.c:1646  */
    59835347    break;
    59845348
    59855349  case 196:
    5986 
    5987 /* Line 1806 of yacc.c  */
    5988 #line 887 "parser.yy"
     5350#line 887 "parser.yy" /* yacc.c:1646  */
    59895351    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5352#line 5353 "Parser/parser.cc" /* yacc.c:1646  */
    59905353    break;
    59915354
    59925355  case 197:
    5993 
    5994 /* Line 1806 of yacc.c  */
    5995 #line 891 "parser.yy"
    5996     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     5356#line 891 "parser.yy" /* yacc.c:1646  */
     5357    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); }
     5358#line 5359 "Parser/parser.cc" /* yacc.c:1646  */
    59975359    break;
    59985360
    59995361  case 198:
    6000 
    6001 /* Line 1806 of yacc.c  */
    6002 #line 893 "parser.yy"
    6003     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5362#line 893 "parser.yy" /* yacc.c:1646  */
     5363    { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
     5364#line 5365 "Parser/parser.cc" /* yacc.c:1646  */
    60045365    break;
    60055366
    60065367  case 199:
    6007 
    6008 /* Line 1806 of yacc.c  */
    6009 #line 895 "parser.yy"
    6010     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5368#line 895 "parser.yy" /* yacc.c:1646  */
     5369    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5370#line 5371 "Parser/parser.cc" /* yacc.c:1646  */
    60115371    break;
    60125372
    60135373  case 200:
    6014 
    6015 /* Line 1806 of yacc.c  */
    6016 #line 897 "parser.yy"
    6017     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5374#line 897 "parser.yy" /* yacc.c:1646  */
     5375    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5376#line 5377 "Parser/parser.cc" /* yacc.c:1646  */
    60185377    break;
    60195378
    60205379  case 201:
    6021 
    6022 /* Line 1806 of yacc.c  */
    6023 #line 899 "parser.yy"
    6024     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     5380#line 899 "parser.yy" /* yacc.c:1646  */
     5381    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
     5382#line 5383 "Parser/parser.cc" /* yacc.c:1646  */
    60255383    break;
    60265384
    60275385  case 202:
    6028 
    6029 /* Line 1806 of yacc.c  */
    6030 #line 904 "parser.yy"
    6031     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     5386#line 904 "parser.yy" /* yacc.c:1646  */
     5387    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
     5388#line 5389 "Parser/parser.cc" /* yacc.c:1646  */
    60325389    break;
    60335390
    60345391  case 203:
    6035 
    6036 /* Line 1806 of yacc.c  */
    6037 #line 906 "parser.yy"
    6038     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     5392#line 906 "parser.yy" /* yacc.c:1646  */
     5393    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
     5394#line 5395 "Parser/parser.cc" /* yacc.c:1646  */
    60395395    break;
    60405396
    60415397  case 204:
    6042 
    6043 /* Line 1806 of yacc.c  */
    6044 #line 908 "parser.yy"
    6045     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     5398#line 908 "parser.yy" /* yacc.c:1646  */
     5399    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
     5400#line 5401 "Parser/parser.cc" /* yacc.c:1646  */
    60465401    break;
    60475402
    60485403  case 206:
    6049 
    6050 /* Line 1806 of yacc.c  */
    6051 #line 915 "parser.yy"
    6052     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5404#line 915 "parser.yy" /* yacc.c:1646  */
     5405    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5406#line 5407 "Parser/parser.cc" /* yacc.c:1646  */
    60535407    break;
    60545408
    60555409  case 207:
    6056 
    6057 /* Line 1806 of yacc.c  */
    6058 #line 917 "parser.yy"
    6059     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5410#line 917 "parser.yy" /* yacc.c:1646  */
     5411    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5412#line 5413 "Parser/parser.cc" /* yacc.c:1646  */
    60605413    break;
    60615414
    60625415  case 208:
    6063 
    6064 /* Line 1806 of yacc.c  */
    6065 #line 919 "parser.yy"
    6066     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5416#line 919 "parser.yy" /* yacc.c:1646  */
     5417    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5418#line 5419 "Parser/parser.cc" /* yacc.c:1646  */
    60675419    break;
    60685420
    60695421  case 209:
    6070 
    6071 /* Line 1806 of yacc.c  */
    6072 #line 921 "parser.yy"
    6073     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5422#line 921 "parser.yy" /* yacc.c:1646  */
     5423    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5424#line 5425 "Parser/parser.cc" /* yacc.c:1646  */
    60745425    break;
    60755426
    60765427  case 210:
    6077 
    6078 /* Line 1806 of yacc.c  */
    6079 #line 926 "parser.yy"
    6080     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5428#line 926 "parser.yy" /* yacc.c:1646  */
     5429    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5430#line 5431 "Parser/parser.cc" /* yacc.c:1646  */
    60815431    break;
    60825432
    60835433  case 211:
    6084 
    6085 /* Line 1806 of yacc.c  */
    6086 #line 928 "parser.yy"
    6087     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5434#line 928 "parser.yy" /* yacc.c:1646  */
     5435    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5436#line 5437 "Parser/parser.cc" /* yacc.c:1646  */
    60885437    break;
    60895438
    60905439  case 212:
    6091 
    6092 /* Line 1806 of yacc.c  */
    6093 #line 930 "parser.yy"
    6094     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5440#line 930 "parser.yy" /* yacc.c:1646  */
     5441    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5442#line 5443 "Parser/parser.cc" /* yacc.c:1646  */
    60955443    break;
    60965444
    60975445  case 213:
    6098 
    6099 /* Line 1806 of yacc.c  */
    6100 #line 932 "parser.yy"
    6101     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5446#line 932 "parser.yy" /* yacc.c:1646  */
     5447    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5448#line 5449 "Parser/parser.cc" /* yacc.c:1646  */
    61025449    break;
    61035450
    61045451  case 214:
    6105 
    6106 /* Line 1806 of yacc.c  */
    6107 #line 937 "parser.yy"
    6108     {
    6109                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     5452#line 937 "parser.yy" /* yacc.c:1646  */
     5453    {
     5454                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
    61105455                }
     5456#line 5457 "Parser/parser.cc" /* yacc.c:1646  */
    61115457    break;
    61125458
    61135459  case 216:
    6114 
    6115 /* Line 1806 of yacc.c  */
    6116 #line 950 "parser.yy"
     5460#line 950 "parser.yy" /* yacc.c:1646  */
    61175461    {
    61185462                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6119                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     5463                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    61205464                }
     5465#line 5466 "Parser/parser.cc" /* yacc.c:1646  */
    61215466    break;
    61225467
    61235468  case 217:
    6124 
    6125 /* Line 1806 of yacc.c  */
    6126 #line 955 "parser.yy"
    6127     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     5469#line 955 "parser.yy" /* yacc.c:1646  */
     5470    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     5471#line 5472 "Parser/parser.cc" /* yacc.c:1646  */
    61285472    break;
    61295473
    61305474  case 218:
    6131 
    6132 /* Line 1806 of yacc.c  */
    6133 #line 957 "parser.yy"
     5475#line 957 "parser.yy" /* yacc.c:1646  */
    61345476    {
    61355477                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6136                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
     5478                        (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
    61375479                }
     5480#line 5481 "Parser/parser.cc" /* yacc.c:1646  */
    61385481    break;
    61395482
    61405483  case 220:
    6141 
    6142 /* Line 1806 of yacc.c  */
    6143 #line 966 "parser.yy"
    6144     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     5484#line 966 "parser.yy" /* yacc.c:1646  */
     5485    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
     5486#line 5487 "Parser/parser.cc" /* yacc.c:1646  */
    61455487    break;
    61465488
    61475489  case 221:
    6148 
    6149 /* Line 1806 of yacc.c  */
    6150 #line 968 "parser.yy"
    6151     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     5490#line 968 "parser.yy" /* yacc.c:1646  */
     5491    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
     5492#line 5493 "Parser/parser.cc" /* yacc.c:1646  */
    61525493    break;
    61535494
    61545495  case 222:
    6155 
    6156 /* Line 1806 of yacc.c  */
    6157 #line 970 "parser.yy"
    6158     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     5496#line 970 "parser.yy" /* yacc.c:1646  */
     5497    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5498#line 5499 "Parser/parser.cc" /* yacc.c:1646  */
    61595499    break;
    61605500
    61615501  case 223:
    6162 
    6163 /* Line 1806 of yacc.c  */
    6164 #line 972 "parser.yy"
    6165     { (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) ) ); }
     5502#line 972 "parser.yy" /* yacc.c:1646  */
     5503    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5504#line 5505 "Parser/parser.cc" /* yacc.c:1646  */
    61665505    break;
    61675506
    61685507  case 224:
    6169 
    6170 /* Line 1806 of yacc.c  */
    6171 #line 974 "parser.yy"
    6172     { (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) ) ); }
     5508#line 974 "parser.yy" /* yacc.c:1646  */
     5509    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
     5510#line 5511 "Parser/parser.cc" /* yacc.c:1646  */
    61735511    break;
    61745512
    61755513  case 225:
    6176 
    6177 /* Line 1806 of yacc.c  */
    6178 #line 979 "parser.yy"
     5514#line 979 "parser.yy" /* yacc.c:1646  */
    61795515    { (yyval.flag) = false; }
     5516#line 5517 "Parser/parser.cc" /* yacc.c:1646  */
    61805517    break;
    61815518
    61825519  case 226:
    6183 
    6184 /* Line 1806 of yacc.c  */
    6185 #line 981 "parser.yy"
     5520#line 981 "parser.yy" /* yacc.c:1646  */
    61865521    { (yyval.flag) = true; }
     5522#line 5523 "Parser/parser.cc" /* yacc.c:1646  */
    61875523    break;
    61885524
    61895525  case 227:
    6190 
    6191 /* Line 1806 of yacc.c  */
    6192 #line 986 "parser.yy"
     5526#line 986 "parser.yy" /* yacc.c:1646  */
    61935527    { (yyval.en) = 0; }
     5528#line 5529 "Parser/parser.cc" /* yacc.c:1646  */
    61945529    break;
    61955530
    61965531  case 230:
    6197 
    6198 /* Line 1806 of yacc.c  */
    6199 #line 993 "parser.yy"
    6200     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5532#line 993 "parser.yy" /* yacc.c:1646  */
     5533    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5534#line 5535 "Parser/parser.cc" /* yacc.c:1646  */
    62015535    break;
    62025536
    62035537  case 231:
    6204 
    6205 /* Line 1806 of yacc.c  */
    6206 #line 998 "parser.yy"
    6207     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     5538#line 998 "parser.yy" /* yacc.c:1646  */
     5539    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5540#line 5541 "Parser/parser.cc" /* yacc.c:1646  */
    62085541    break;
    62095542
    62105543  case 232:
    6211 
    6212 /* Line 1806 of yacc.c  */
    6213 #line 1000 "parser.yy"
    6214     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     5544#line 1000 "parser.yy" /* yacc.c:1646  */
     5545    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5546#line 5547 "Parser/parser.cc" /* yacc.c:1646  */
    62155547    break;
    62165548
    62175549  case 233:
    6218 
    6219 /* Line 1806 of yacc.c  */
    6220 #line 1005 "parser.yy"
     5550#line 1005 "parser.yy" /* yacc.c:1646  */
    62215551    { (yyval.en) = 0; }
     5552#line 5553 "Parser/parser.cc" /* yacc.c:1646  */
    62225553    break;
    62235554
    62245555  case 234:
    6225 
    6226 /* Line 1806 of yacc.c  */
    6227 #line 1007 "parser.yy"
    6228     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5556#line 1007 "parser.yy" /* yacc.c:1646  */
     5557    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     5558#line 5559 "Parser/parser.cc" /* yacc.c:1646  */
    62295559    break;
    62305560
    62315561  case 235:
    6232 
    6233 /* Line 1806 of yacc.c  */
    6234 #line 1009 "parser.yy"
    6235     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     5562#line 1009 "parser.yy" /* yacc.c:1646  */
     5563    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
     5564#line 5565 "Parser/parser.cc" /* yacc.c:1646  */
    62365565    break;
    62375566
    62385567  case 236:
    6239 
    6240 /* Line 1806 of yacc.c  */
    6241 #line 1014 "parser.yy"
    6242     {
    6243                         (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
    6244                         delete (yyvsp[(1) - (1)].tok);                                                                  // allocated by lexer
     5568#line 1014 "parser.yy" /* yacc.c:1646  */
     5569    {
     5570                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) );
     5571                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62455572                }
     5573#line 5574 "Parser/parser.cc" /* yacc.c:1646  */
    62465574    break;
    62475575
    62485576  case 237:
    6249 
    6250 /* Line 1806 of yacc.c  */
    6251 #line 1019 "parser.yy"
    6252     {
    6253                         (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
    6254                         delete (yyvsp[(3) - (3)].tok);                                                                  // allocated by lexer
     5577#line 1019 "parser.yy" /* yacc.c:1646  */
     5578    {
     5579                        (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );
     5580                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62555581                }
     5582#line 5583 "Parser/parser.cc" /* yacc.c:1646  */
    62565583    break;
    62575584
    62585585  case 238:
    6259 
    6260 /* Line 1806 of yacc.c  */
    6261 #line 1029 "parser.yy"
     5586#line 1029 "parser.yy" /* yacc.c:1646  */
    62625587    { (yyval.decl) = 0; }
     5588#line 5589 "Parser/parser.cc" /* yacc.c:1646  */
    62635589    break;
    62645590
    62655591  case 241:
    6266 
    6267 /* Line 1806 of yacc.c  */
    6268 #line 1036 "parser.yy"
    6269     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5592#line 1036 "parser.yy" /* yacc.c:1646  */
     5593    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5594#line 5595 "Parser/parser.cc" /* yacc.c:1646  */
    62705595    break;
    62715596
    62725597  case 242:
    6273 
    6274 /* Line 1806 of yacc.c  */
    6275 #line 1041 "parser.yy"
     5598#line 1041 "parser.yy" /* yacc.c:1646  */
    62765599    { (yyval.decl) = 0; }
     5600#line 5601 "Parser/parser.cc" /* yacc.c:1646  */
    62775601    break;
    62785602
    62795603  case 245:
    6280 
    6281 /* Line 1806 of yacc.c  */
    6282 #line 1048 "parser.yy"
    6283     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5604#line 1048 "parser.yy" /* yacc.c:1646  */
     5605    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5606#line 5607 "Parser/parser.cc" /* yacc.c:1646  */
    62845607    break;
    62855608
    62865609  case 250:
    6287 
    6288 /* Line 1806 of yacc.c  */
    6289 #line 1062 "parser.yy"
     5610#line 1062 "parser.yy" /* yacc.c:1646  */
    62905611    {}
     5612#line 5613 "Parser/parser.cc" /* yacc.c:1646  */
    62915613    break;
    62925614
    62935615  case 251:
    6294 
    6295 /* Line 1806 of yacc.c  */
    6296 #line 1063 "parser.yy"
     5616#line 1063 "parser.yy" /* yacc.c:1646  */
    62975617    {}
     5618#line 5619 "Parser/parser.cc" /* yacc.c:1646  */
    62985619    break;
    62995620
    63005621  case 259:
    6301 
    6302 /* Line 1806 of yacc.c  */
    6303 #line 1092 "parser.yy"
     5622#line 1092 "parser.yy" /* yacc.c:1646  */
    63045623    {
    63055624                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6306                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     5625                        (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
    63075626                }
     5627#line 5628 "Parser/parser.cc" /* yacc.c:1646  */
    63085628    break;
    63095629
    63105630  case 260:
    6311 
    6312 /* Line 1806 of yacc.c  */
    6313 #line 1099 "parser.yy"
     5631#line 1099 "parser.yy" /* yacc.c:1646  */
    63145632    {
    63155633                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6316                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     5634                        (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
    63175635                }
     5636#line 5637 "Parser/parser.cc" /* yacc.c:1646  */
    63185637    break;
    63195638
    63205639  case 261:
    6321 
    6322 /* Line 1806 of yacc.c  */
    6323 #line 1104 "parser.yy"
    6324     {
    6325                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6326                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
     5640#line 1104 "parser.yy" /* yacc.c:1646  */
     5641    {
     5642                        typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
     5643                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
    63275644                }
     5645#line 5646 "Parser/parser.cc" /* yacc.c:1646  */
    63285646    break;
    63295647
    63305648  case 262:
    6331 
    6332 /* Line 1806 of yacc.c  */
    6333 #line 1114 "parser.yy"
    6334     {
    6335                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6336                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5649#line 1114 "parser.yy" /* yacc.c:1646  */
     5650    {
     5651                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5652                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63375653                }
     5654#line 5655 "Parser/parser.cc" /* yacc.c:1646  */
    63385655    break;
    63395656
    63405657  case 263:
    6341 
    6342 /* Line 1806 of yacc.c  */
    6343 #line 1119 "parser.yy"
    6344     {
    6345                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6346                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5658#line 1119 "parser.yy" /* yacc.c:1646  */
     5659    {
     5660                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5661                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63475662                }
     5663#line 5664 "Parser/parser.cc" /* yacc.c:1646  */
    63485664    break;
    63495665
    63505666  case 264:
    6351 
    6352 /* Line 1806 of yacc.c  */
    6353 #line 1124 "parser.yy"
    6354     {
    6355                         typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
    6356                         (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
     5667#line 1124 "parser.yy" /* yacc.c:1646  */
     5668    {
     5669                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5670                        (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
    63575671                }
     5672#line 5673 "Parser/parser.cc" /* yacc.c:1646  */
    63585673    break;
    63595674
    63605675  case 265:
    6361 
    6362 /* Line 1806 of yacc.c  */
    6363 #line 1132 "parser.yy"
     5676#line 1132 "parser.yy" /* yacc.c:1646  */
    63645677    {
    63655678                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6366                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     5679                        (yyval.decl) = (yyvsp[0].decl);
    63675680                }
     5681#line 5682 "Parser/parser.cc" /* yacc.c:1646  */
    63685682    break;
    63695683
    63705684  case 266:
    6371 
    6372 /* Line 1806 of yacc.c  */
    6373 #line 1137 "parser.yy"
     5685#line 1137 "parser.yy" /* yacc.c:1646  */
    63745686    {
    63755687                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6376                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5688                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63775689                }
     5690#line 5691 "Parser/parser.cc" /* yacc.c:1646  */
    63785691    break;
    63795692
    63805693  case 267:
    6381 
    6382 /* Line 1806 of yacc.c  */
    6383 #line 1142 "parser.yy"
     5694#line 1142 "parser.yy" /* yacc.c:1646  */
    63845695    {
    63855696                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6386                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5697                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63875698                }
     5699#line 5700 "Parser/parser.cc" /* yacc.c:1646  */
    63885700    break;
    63895701
    63905702  case 268:
    6391 
    6392 /* Line 1806 of yacc.c  */
    6393 #line 1147 "parser.yy"
     5703#line 1147 "parser.yy" /* yacc.c:1646  */
    63945704    {
    63955705                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6396                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
     5706                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
    63975707                }
     5708#line 5709 "Parser/parser.cc" /* yacc.c:1646  */
    63985709    break;
    63995710
    64005711  case 269:
    6401 
    6402 /* Line 1806 of yacc.c  */
    6403 #line 1152 "parser.yy"
    6404     {
    6405                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    6406                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5712#line 1152 "parser.yy" /* yacc.c:1646  */
     5713    {
     5714                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
     5715                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64075716                }
     5717#line 5718 "Parser/parser.cc" /* yacc.c:1646  */
    64085718    break;
    64095719
    64105720  case 270:
    6411 
    6412 /* Line 1806 of yacc.c  */
    6413 #line 1183 "parser.yy"
    6414     {
    6415                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5721#line 1183 "parser.yy" /* yacc.c:1646  */
     5722    {
     5723                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64165724                }
     5725#line 5726 "Parser/parser.cc" /* yacc.c:1646  */
    64175726    break;
    64185727
    64195728  case 271:
    6420 
    6421 /* Line 1806 of yacc.c  */
    6422 #line 1187 "parser.yy"
    6423     {
    6424                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5729#line 1187 "parser.yy" /* yacc.c:1646  */
     5730    {
     5731                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64255732                }
     5733#line 5734 "Parser/parser.cc" /* yacc.c:1646  */
    64265734    break;
    64275735
    64285736  case 272:
    6429 
    6430 /* Line 1806 of yacc.c  */
    6431 #line 1194 "parser.yy"
    6432     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     5737#line 1194 "parser.yy" /* yacc.c:1646  */
     5738    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     5739#line 5740 "Parser/parser.cc" /* yacc.c:1646  */
    64335740    break;
    64345741
    64355742  case 273:
    6436 
    6437 /* Line 1806 of yacc.c  */
    6438 #line 1198 "parser.yy"
    6439     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     5743#line 1198 "parser.yy" /* yacc.c:1646  */
     5744    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
     5745#line 5746 "Parser/parser.cc" /* yacc.c:1646  */
    64405746    break;
    64415747
    64425748  case 274:
    6443 
    6444 /* Line 1806 of yacc.c  */
    6445 #line 1203 "parser.yy"
     5749#line 1203 "parser.yy" /* yacc.c:1646  */
    64465750    {
    64475751                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6448                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5752                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64495753                }
     5754#line 5755 "Parser/parser.cc" /* yacc.c:1646  */
    64505755    break;
    64515756
    64525757  case 275:
    6453 
    6454 /* Line 1806 of yacc.c  */
    6455 #line 1208 "parser.yy"
     5758#line 1208 "parser.yy" /* yacc.c:1646  */
    64565759    {
    64575760                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6458                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5761                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64595762                }
     5763#line 5764 "Parser/parser.cc" /* yacc.c:1646  */
    64605764    break;
    64615765
    64625766  case 276:
    6463 
    6464 /* Line 1806 of yacc.c  */
    6465 #line 1213 "parser.yy"
    6466     {
    6467                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
    6468                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5767#line 1213 "parser.yy" /* yacc.c:1646  */
     5768    {
     5769                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     5770                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64695771                }
     5772#line 5773 "Parser/parser.cc" /* yacc.c:1646  */
    64705773    break;
    64715774
    64725775  case 277:
    6473 
    6474 /* Line 1806 of yacc.c  */
    6475 #line 1224 "parser.yy"
     5776#line 1224 "parser.yy" /* yacc.c:1646  */
    64765777    {
    64775778                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6478                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
     5779                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
    64795780                }
     5781#line 5782 "Parser/parser.cc" /* yacc.c:1646  */
    64805782    break;
    64815783
    64825784  case 278:
    6483 
    6484 /* Line 1806 of yacc.c  */
    6485 #line 1229 "parser.yy"
     5785#line 1229 "parser.yy" /* yacc.c:1646  */
    64865786    {
    64875787                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6488                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
     5788                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
    64895789                }
     5790#line 5791 "Parser/parser.cc" /* yacc.c:1646  */
    64905791    break;
    64915792
    64925793  case 279:
    6493 
    6494 /* Line 1806 of yacc.c  */
    6495 #line 1234 "parser.yy"
     5794#line 1234 "parser.yy" /* yacc.c:1646  */
    64965795    {
    64975796                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6498                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
     5797                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
    64995798                }
     5799#line 5800 "Parser/parser.cc" /* yacc.c:1646  */
    65005800    break;
    65015801
    65025802  case 280:
    6503 
    6504 /* Line 1806 of yacc.c  */
    6505 #line 1239 "parser.yy"
     5803#line 1239 "parser.yy" /* yacc.c:1646  */
    65065804    {
    65075805                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6508                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
     5806                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
    65095807                }
     5808#line 5809 "Parser/parser.cc" /* yacc.c:1646  */
    65105809    break;
    65115810
    65125811  case 281:
    6513 
    6514 /* Line 1806 of yacc.c  */
    6515 #line 1244 "parser.yy"
     5812#line 1244 "parser.yy" /* yacc.c:1646  */
    65165813    {
    65175814                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6518                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
     5815                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
    65195816                }
     5817#line 5818 "Parser/parser.cc" /* yacc.c:1646  */
    65205818    break;
    65215819
    65225820  case 282:
    6523 
    6524 /* Line 1806 of yacc.c  */
    6525 #line 1253 "parser.yy"
    6526     {
    6527                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     5821#line 1253 "parser.yy" /* yacc.c:1646  */
     5822    {
     5823                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65285824                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65295825                }
     5826#line 5827 "Parser/parser.cc" /* yacc.c:1646  */
    65305827    break;
    65315828
    65325829  case 283:
    6533 
    6534 /* Line 1806 of yacc.c  */
    6535 #line 1258 "parser.yy"
    6536     {
    6537                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     5830#line 1258 "parser.yy" /* yacc.c:1646  */
     5831    {
     5832                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65385833                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65395834                }
     5835#line 5836 "Parser/parser.cc" /* yacc.c:1646  */
    65405836    break;
    65415837
    65425838  case 288:
    6543 
    6544 /* Line 1806 of yacc.c  */
    6545 #line 1275 "parser.yy"
     5839#line 1275 "parser.yy" /* yacc.c:1646  */
    65465840    {
    65475841                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6548                         (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
     5842                        (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
    65495843                }
     5844#line 5845 "Parser/parser.cc" /* yacc.c:1646  */
    65505845    break;
    65515846
    65525847  case 289:
    6553 
    6554 /* Line 1806 of yacc.c  */
    6555 #line 1280 "parser.yy"
     5848#line 1280 "parser.yy" /* yacc.c:1646  */
    65565849    {
    65575850                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6558                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
     5851                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
    65595852                }
     5853#line 5854 "Parser/parser.cc" /* yacc.c:1646  */
    65605854    break;
    65615855
    65625856  case 298:
    6563 
    6564 /* Line 1806 of yacc.c  */
    6565 #line 1302 "parser.yy"
     5857#line 1302 "parser.yy" /* yacc.c:1646  */
    65665858    { (yyval.decl) = 0; }
     5859#line 5860 "Parser/parser.cc" /* yacc.c:1646  */
    65675860    break;
    65685861
    65695862  case 301:
    6570 
    6571 /* Line 1806 of yacc.c  */
    6572 #line 1314 "parser.yy"
    6573     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5863#line 1314 "parser.yy" /* yacc.c:1646  */
     5864    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5865#line 5866 "Parser/parser.cc" /* yacc.c:1646  */
    65745866    break;
    65755867
    65765868  case 304:
    6577 
    6578 /* Line 1806 of yacc.c  */
    6579 #line 1325 "parser.yy"
     5869#line 1325 "parser.yy" /* yacc.c:1646  */
    65805870    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5871#line 5872 "Parser/parser.cc" /* yacc.c:1646  */
    65815872    break;
    65825873
    65835874  case 305:
    6584 
    6585 /* Line 1806 of yacc.c  */
    6586 #line 1327 "parser.yy"
     5875#line 1327 "parser.yy" /* yacc.c:1646  */
    65875876    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5877#line 5878 "Parser/parser.cc" /* yacc.c:1646  */
    65885878    break;
    65895879
    65905880  case 306:
    6591 
    6592 /* Line 1806 of yacc.c  */
    6593 #line 1329 "parser.yy"
     5881#line 1329 "parser.yy" /* yacc.c:1646  */
    65945882    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5883#line 5884 "Parser/parser.cc" /* yacc.c:1646  */
    65955884    break;
    65965885
    65975886  case 307:
    6598 
    6599 /* Line 1806 of yacc.c  */
    6600 #line 1331 "parser.yy"
     5887#line 1331 "parser.yy" /* yacc.c:1646  */
    66015888    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5889#line 5890 "Parser/parser.cc" /* yacc.c:1646  */
    66025890    break;
    66035891
    66045892  case 308:
    6605 
    6606 /* Line 1806 of yacc.c  */
    6607 #line 1333 "parser.yy"
     5893#line 1333 "parser.yy" /* yacc.c:1646  */
    66085894    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     5895#line 5896 "Parser/parser.cc" /* yacc.c:1646  */
    66095896    break;
    66105897
    66115898  case 309:
    6612 
    6613 /* Line 1806 of yacc.c  */
    6614 #line 1335 "parser.yy"
     5899#line 1335 "parser.yy" /* yacc.c:1646  */
    66155900    {
    66165901                        typedefTable.enterScope();
    66175902                }
     5903#line 5904 "Parser/parser.cc" /* yacc.c:1646  */
    66185904    break;
    66195905
    66205906  case 310:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1339 "parser.yy"
     5907#line 1339 "parser.yy" /* yacc.c:1646  */
    66245908    {
    66255909                        typedefTable.leaveScope();
    6626                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
     5910                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
    66275911                }
     5912#line 5913 "Parser/parser.cc" /* yacc.c:1646  */
    66285913    break;
    66295914
    66305915  case 312:
    6631 
    6632 /* Line 1806 of yacc.c  */
    6633 #line 1348 "parser.yy"
    6634     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5916#line 1348 "parser.yy" /* yacc.c:1646  */
     5917    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5918#line 5919 "Parser/parser.cc" /* yacc.c:1646  */
    66355919    break;
    66365920
    66375921  case 313:
    6638 
    6639 /* Line 1806 of yacc.c  */
    6640 #line 1350 "parser.yy"
    6641     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     5922#line 1350 "parser.yy" /* yacc.c:1646  */
     5923    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     5924#line 5925 "Parser/parser.cc" /* yacc.c:1646  */
    66425925    break;
    66435926
    66445927  case 315:
    6645 
    6646 /* Line 1806 of yacc.c  */
    6647 #line 1361 "parser.yy"
    6648     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5928#line 1361 "parser.yy" /* yacc.c:1646  */
     5929    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5930#line 5931 "Parser/parser.cc" /* yacc.c:1646  */
    66495931    break;
    66505932
    66515933  case 316:
    6652 
    6653 /* Line 1806 of yacc.c  */
    6654 #line 1366 "parser.yy"
     5934#line 1366 "parser.yy" /* yacc.c:1646  */
    66555935    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5936#line 5937 "Parser/parser.cc" /* yacc.c:1646  */
    66565937    break;
    66575938
    66585939  case 317:
    6659 
    6660 /* Line 1806 of yacc.c  */
    6661 #line 1368 "parser.yy"
     5940#line 1368 "parser.yy" /* yacc.c:1646  */
    66625941    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5942#line 5943 "Parser/parser.cc" /* yacc.c:1646  */
    66635943    break;
    66645944
    66655945  case 318:
    6666 
    6667 /* Line 1806 of yacc.c  */
    6668 #line 1370 "parser.yy"
     5946#line 1370 "parser.yy" /* yacc.c:1646  */
    66695947    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5948#line 5949 "Parser/parser.cc" /* yacc.c:1646  */
    66705949    break;
    66715950
    66725951  case 319:
    6673 
    6674 /* Line 1806 of yacc.c  */
    6675 #line 1372 "parser.yy"
     5952#line 1372 "parser.yy" /* yacc.c:1646  */
    66765953    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5954#line 5955 "Parser/parser.cc" /* yacc.c:1646  */
    66775955    break;
    66785956
    66795957  case 320:
    6680 
    6681 /* Line 1806 of yacc.c  */
    6682 #line 1375 "parser.yy"
     5958#line 1375 "parser.yy" /* yacc.c:1646  */
    66835959    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     5960#line 5961 "Parser/parser.cc" /* yacc.c:1646  */
    66845961    break;
    66855962
    66865963  case 321:
    6687 
    6688 /* Line 1806 of yacc.c  */
    6689 #line 1377 "parser.yy"
     5964#line 1377 "parser.yy" /* yacc.c:1646  */
    66905965    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5966#line 5967 "Parser/parser.cc" /* yacc.c:1646  */
    66915967    break;
    66925968
    66935969  case 322:
    6694 
    6695 /* Line 1806 of yacc.c  */
    6696 #line 1380 "parser.yy"
     5970#line 1380 "parser.yy" /* yacc.c:1646  */
    66975971    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     5972#line 5973 "Parser/parser.cc" /* yacc.c:1646  */
    66985973    break;
    66995974
    67005975  case 323:
    6701 
    6702 /* Line 1806 of yacc.c  */
    6703 #line 1382 "parser.yy"
     5976#line 1382 "parser.yy" /* yacc.c:1646  */
    67045977    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5978#line 5979 "Parser/parser.cc" /* yacc.c:1646  */
    67055979    break;
    67065980
    67075981  case 324:
    6708 
    6709 /* Line 1806 of yacc.c  */
    6710 #line 1387 "parser.yy"
     5982#line 1387 "parser.yy" /* yacc.c:1646  */
    67115983    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     5984#line 5985 "Parser/parser.cc" /* yacc.c:1646  */
    67125985    break;
    67135986
    67145987  case 325:
    6715 
    6716 /* Line 1806 of yacc.c  */
    6717 #line 1389 "parser.yy"
     5988#line 1389 "parser.yy" /* yacc.c:1646  */
    67185989    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     5990#line 5991 "Parser/parser.cc" /* yacc.c:1646  */
    67195991    break;
    67205992
    67215993  case 326:
    6722 
    6723 /* Line 1806 of yacc.c  */
    6724 #line 1391 "parser.yy"
     5994#line 1391 "parser.yy" /* yacc.c:1646  */
    67255995    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     5996#line 5997 "Parser/parser.cc" /* yacc.c:1646  */
    67265997    break;
    67275998
    67285999  case 327:
    6729 
    6730 /* Line 1806 of yacc.c  */
    6731 #line 1393 "parser.yy"
     6000#line 1393 "parser.yy" /* yacc.c:1646  */
    67326001    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6002#line 6003 "Parser/parser.cc" /* yacc.c:1646  */
    67336003    break;
    67346004
    67356005  case 328:
    6736 
    6737 /* Line 1806 of yacc.c  */
    6738 #line 1395 "parser.yy"
     6006#line 1395 "parser.yy" /* yacc.c:1646  */
    67396007    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6008#line 6009 "Parser/parser.cc" /* yacc.c:1646  */
    67406009    break;
    67416010
    67426011  case 329:
    6743 
    6744 /* Line 1806 of yacc.c  */
    6745 #line 1397 "parser.yy"
     6012#line 1397 "parser.yy" /* yacc.c:1646  */
    67466013    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6014#line 6015 "Parser/parser.cc" /* yacc.c:1646  */
    67476015    break;
    67486016
    67496017  case 330:
    6750 
    6751 /* Line 1806 of yacc.c  */
    6752 #line 1399 "parser.yy"
     6018#line 1399 "parser.yy" /* yacc.c:1646  */
    67536019    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6020#line 6021 "Parser/parser.cc" /* yacc.c:1646  */
    67546021    break;
    67556022
    67566023  case 331:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1401 "parser.yy"
     6024#line 1401 "parser.yy" /* yacc.c:1646  */
    67606025    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6026#line 6027 "Parser/parser.cc" /* yacc.c:1646  */
    67616027    break;
    67626028
    67636029  case 332:
    6764 
    6765 /* Line 1806 of yacc.c  */
    6766 #line 1403 "parser.yy"
     6030#line 1403 "parser.yy" /* yacc.c:1646  */
    67676031    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6032#line 6033 "Parser/parser.cc" /* yacc.c:1646  */
    67686033    break;
    67696034
    67706035  case 333:
    6771 
    6772 /* Line 1806 of yacc.c  */
    6773 #line 1405 "parser.yy"
     6036#line 1405 "parser.yy" /* yacc.c:1646  */
    67746037    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6038#line 6039 "Parser/parser.cc" /* yacc.c:1646  */
    67756039    break;
    67766040
    67776041  case 334:
    6778 
    6779 /* Line 1806 of yacc.c  */
    6780 #line 1407 "parser.yy"
     6042#line 1407 "parser.yy" /* yacc.c:1646  */
    67816043    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6044#line 6045 "Parser/parser.cc" /* yacc.c:1646  */
    67826045    break;
    67836046
    67846047  case 335:
    6785 
    6786 /* Line 1806 of yacc.c  */
    6787 #line 1409 "parser.yy"
     6048#line 1409 "parser.yy" /* yacc.c:1646  */
    67886049    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6050#line 6051 "Parser/parser.cc" /* yacc.c:1646  */
    67896051    break;
    67906052
    67916053  case 336:
    6792 
    6793 /* Line 1806 of yacc.c  */
    6794 #line 1411 "parser.yy"
     6054#line 1411 "parser.yy" /* yacc.c:1646  */
    67956055    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6056#line 6057 "Parser/parser.cc" /* yacc.c:1646  */
    67966057    break;
    67976058
    67986059  case 337:
    6799 
    6800 /* Line 1806 of yacc.c  */
    6801 #line 1413 "parser.yy"
    6802     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6060#line 1413 "parser.yy" /* yacc.c:1646  */
     6061    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
     6062#line 6063 "Parser/parser.cc" /* yacc.c:1646  */
    68036063    break;
    68046064
    68056065  case 338:
    6806 
    6807 /* Line 1806 of yacc.c  */
    6808 #line 1415 "parser.yy"
    6809     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6066#line 1415 "parser.yy" /* yacc.c:1646  */
     6067    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
     6068#line 6069 "Parser/parser.cc" /* yacc.c:1646  */
    68106069    break;
    68116070
    68126071  case 340:
    6813 
    6814 /* Line 1806 of yacc.c  */
    6815 #line 1422 "parser.yy"
    6816     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6072#line 1422 "parser.yy" /* yacc.c:1646  */
     6073    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6074#line 6075 "Parser/parser.cc" /* yacc.c:1646  */
    68176075    break;
    68186076
    68196077  case 341:
    6820 
    6821 /* Line 1806 of yacc.c  */
    6822 #line 1424 "parser.yy"
    6823     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6078#line 1424 "parser.yy" /* yacc.c:1646  */
     6079    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6080#line 6081 "Parser/parser.cc" /* yacc.c:1646  */
    68246081    break;
    68256082
    68266083  case 342:
    6827 
    6828 /* Line 1806 of yacc.c  */
    6829 #line 1426 "parser.yy"
    6830     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6084#line 1426 "parser.yy" /* yacc.c:1646  */
     6085    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6086#line 6087 "Parser/parser.cc" /* yacc.c:1646  */
    68316087    break;
    68326088
    68336089  case 343:
    6834 
    6835 /* Line 1806 of yacc.c  */
    6836 #line 1428 "parser.yy"
    6837     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6090#line 1428 "parser.yy" /* yacc.c:1646  */
     6091    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
     6092#line 6093 "Parser/parser.cc" /* yacc.c:1646  */
    68386093    break;
    68396094
    68406095  case 345:
    6841 
    6842 /* Line 1806 of yacc.c  */
    6843 #line 1434 "parser.yy"
    6844     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6096#line 1434 "parser.yy" /* yacc.c:1646  */
     6097    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6098#line 6099 "Parser/parser.cc" /* yacc.c:1646  */
    68456099    break;
    68466100
    68476101  case 347:
    6848 
    6849 /* Line 1806 of yacc.c  */
    6850 #line 1441 "parser.yy"
    6851     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6102#line 1441 "parser.yy" /* yacc.c:1646  */
     6103    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6104#line 6105 "Parser/parser.cc" /* yacc.c:1646  */
    68526105    break;
    68536106
    68546107  case 348:
    6855 
    6856 /* Line 1806 of yacc.c  */
    6857 #line 1443 "parser.yy"
    6858     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6108#line 1443 "parser.yy" /* yacc.c:1646  */
     6109    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6110#line 6111 "Parser/parser.cc" /* yacc.c:1646  */
    68596111    break;
    68606112
    68616113  case 349:
    6862 
    6863 /* Line 1806 of yacc.c  */
    6864 #line 1445 "parser.yy"
    6865     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6114#line 1445 "parser.yy" /* yacc.c:1646  */
     6115    { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
     6116#line 6117 "Parser/parser.cc" /* yacc.c:1646  */
    68666117    break;
    68676118
    68686119  case 350:
    6869 
    6870 /* Line 1806 of yacc.c  */
    6871 #line 1450 "parser.yy"
    6872     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6120#line 1450 "parser.yy" /* yacc.c:1646  */
     6121    { (yyval.decl) = (yyvsp[-1].decl); }
     6122#line 6123 "Parser/parser.cc" /* yacc.c:1646  */
    68736123    break;
    68746124
    68756125  case 351:
    6876 
    6877 /* Line 1806 of yacc.c  */
    6878 #line 1452 "parser.yy"
    6879     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6126#line 1452 "parser.yy" /* yacc.c:1646  */
     6127    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
     6128#line 6129 "Parser/parser.cc" /* yacc.c:1646  */
    68806129    break;
    68816130
    68826131  case 352:
    6883 
    6884 /* Line 1806 of yacc.c  */
    6885 #line 1454 "parser.yy"
    6886     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6132#line 1454 "parser.yy" /* yacc.c:1646  */
     6133    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
     6134#line 6135 "Parser/parser.cc" /* yacc.c:1646  */
    68876135    break;
    68886136
    68896137  case 353:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1456 "parser.yy"
    6893     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6138#line 1456 "parser.yy" /* yacc.c:1646  */
     6139    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6140#line 6141 "Parser/parser.cc" /* yacc.c:1646  */
    68946141    break;
    68956142
    68966143  case 355:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1462 "parser.yy"
    6900     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6144#line 1462 "parser.yy" /* yacc.c:1646  */
     6145    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6146#line 6147 "Parser/parser.cc" /* yacc.c:1646  */
    69016147    break;
    69026148
    69036149  case 356:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1464 "parser.yy"
    6907     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6150#line 1464 "parser.yy" /* yacc.c:1646  */
     6151    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6152#line 6153 "Parser/parser.cc" /* yacc.c:1646  */
    69086153    break;
    69096154
    69106155  case 357:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1466 "parser.yy"
    6914     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6156#line 1466 "parser.yy" /* yacc.c:1646  */
     6157    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6158#line 6159 "Parser/parser.cc" /* yacc.c:1646  */
    69156159    break;
    69166160
    69176161  case 359:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1472 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6162#line 1472 "parser.yy" /* yacc.c:1646  */
     6163    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6164#line 6165 "Parser/parser.cc" /* yacc.c:1646  */
    69226165    break;
    69236166
    69246167  case 360:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1474 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6168#line 1474 "parser.yy" /* yacc.c:1646  */
     6169    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6170#line 6171 "Parser/parser.cc" /* yacc.c:1646  */
    69296171    break;
    69306172
    69316173  case 362:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1480 "parser.yy"
    6935     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6174#line 1480 "parser.yy" /* yacc.c:1646  */
     6175    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6176#line 6177 "Parser/parser.cc" /* yacc.c:1646  */
    69366177    break;
    69376178
    69386179  case 363:
    6939 
    6940 /* Line 1806 of yacc.c  */
    6941 #line 1482 "parser.yy"
    6942     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6180#line 1482 "parser.yy" /* yacc.c:1646  */
     6181    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6182#line 6183 "Parser/parser.cc" /* yacc.c:1646  */
    69436183    break;
    69446184
    69456185  case 364:
    6946 
    6947 /* Line 1806 of yacc.c  */
    6948 #line 1484 "parser.yy"
    6949     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6186#line 1484 "parser.yy" /* yacc.c:1646  */
     6187    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6188#line 6189 "Parser/parser.cc" /* yacc.c:1646  */
    69506189    break;
    69516190
    69526191  case 365:
    6953 
    6954 /* Line 1806 of yacc.c  */
    6955 #line 1489 "parser.yy"
    6956     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6192#line 1489 "parser.yy" /* yacc.c:1646  */
     6193    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
     6194#line 6195 "Parser/parser.cc" /* yacc.c:1646  */
    69576195    break;
    69586196
    69596197  case 366:
    6960 
    6961 /* Line 1806 of yacc.c  */
    6962 #line 1491 "parser.yy"
    6963     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6198#line 1491 "parser.yy" /* yacc.c:1646  */
     6199    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
     6200#line 6201 "Parser/parser.cc" /* yacc.c:1646  */
    69646201    break;
    69656202
    69666203  case 367:
    6967 
    6968 /* Line 1806 of yacc.c  */
    6969 #line 1493 "parser.yy"
    6970     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6204#line 1493 "parser.yy" /* yacc.c:1646  */
     6205    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6206#line 6207 "Parser/parser.cc" /* yacc.c:1646  */
    69716207    break;
    69726208
    69736209  case 370:
    6974 
    6975 /* Line 1806 of yacc.c  */
    6976 #line 1503 "parser.yy"
    6977     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     6210#line 1503 "parser.yy" /* yacc.c:1646  */
     6211    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), nullptr, nullptr, (yyvsp[-1].decl), true ); }
     6212#line 6213 "Parser/parser.cc" /* yacc.c:1646  */
    69786213    break;
    69796214
    69806215  case 371:
    6981 
    6982 /* Line 1806 of yacc.c  */
    6983 #line 1505 "parser.yy"
    6984     {
    6985                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    6986                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false );
     6216#line 1505 "parser.yy" /* yacc.c:1646  */
     6217    {
     6218                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6219                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), nullptr, nullptr, false );
    69876220                }
     6221#line 6222 "Parser/parser.cc" /* yacc.c:1646  */
    69886222    break;
    69896223
    69906224  case 372:
    6991 
    6992 /* Line 1806 of yacc.c  */
    6993 #line 1510 "parser.yy"
    6994     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6225#line 1510 "parser.yy" /* yacc.c:1646  */
     6226    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6227#line 6228 "Parser/parser.cc" /* yacc.c:1646  */
    69956228    break;
    69966229
    69976230  case 373:
    6998 
    6999 /* Line 1806 of yacc.c  */
    7000 #line 1512 "parser.yy"
    7001     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     6231#line 1512 "parser.yy" /* yacc.c:1646  */
     6232    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), nullptr, (yyvsp[-1].decl), true ); }
     6233#line 6234 "Parser/parser.cc" /* yacc.c:1646  */
    70026234    break;
    70036235
    70046236  case 374:
    7005 
    7006 /* Line 1806 of yacc.c  */
    7007 #line 1514 "parser.yy"
    7008     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     6237#line 1514 "parser.yy" /* yacc.c:1646  */
     6238    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), nullptr, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
     6239#line 6240 "Parser/parser.cc" /* yacc.c:1646  */
    70096240    break;
    70106241
    70116242  case 375:
    7012 
    7013 /* Line 1806 of yacc.c  */
    7014 #line 1516 "parser.yy"
    7015     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6243#line 1516 "parser.yy" /* yacc.c:1646  */
     6244    { (yyval.decl) = (yyvsp[0].decl); }
     6245#line 6246 "Parser/parser.cc" /* yacc.c:1646  */
    70166246    break;
    70176247
    70186248  case 376:
    7019 
    7020 /* Line 1806 of yacc.c  */
    7021 #line 1521 "parser.yy"
     6249#line 1521 "parser.yy" /* yacc.c:1646  */
    70226250    { (yyval.aggKey) = DeclarationNode::Struct; }
     6251#line 6252 "Parser/parser.cc" /* yacc.c:1646  */
    70236252    break;
    70246253
    70256254  case 377:
    7026 
    7027 /* Line 1806 of yacc.c  */
    7028 #line 1523 "parser.yy"
     6255#line 1523 "parser.yy" /* yacc.c:1646  */
    70296256    { (yyval.aggKey) = DeclarationNode::Union; }
     6257#line 6258 "Parser/parser.cc" /* yacc.c:1646  */
    70306258    break;
    70316259
    70326260  case 378:
    7033 
    7034 /* Line 1806 of yacc.c  */
    7035 #line 1528 "parser.yy"
     6261#line 1528 "parser.yy" /* yacc.c:1646  */
    70366262    { (yyval.decl) = 0; }
     6263#line 6264 "Parser/parser.cc" /* yacc.c:1646  */
    70376264    break;
    70386265
    70396266  case 379:
    7040 
    7041 /* Line 1806 of yacc.c  */
    7042 #line 1530 "parser.yy"
    7043     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     6267#line 1530 "parser.yy" /* yacc.c:1646  */
     6268    { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6269#line 6270 "Parser/parser.cc" /* yacc.c:1646  */
    70446270    break;
    70456271
    70466272  case 381:
    7047 
    7048 /* Line 1806 of yacc.c  */
    7049 #line 1536 "parser.yy"
    7050     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     6273#line 1536 "parser.yy" /* yacc.c:1646  */
     6274    { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
     6275#line 6276 "Parser/parser.cc" /* yacc.c:1646  */
    70516276    break;
    70526277
    70536278  case 383:
    7054 
    7055 /* Line 1806 of yacc.c  */
    7056 #line 1539 "parser.yy"
     6279#line 1539 "parser.yy" /* yacc.c:1646  */
    70576280    {   // mark all fields in list
    7058                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6281                        for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    70596282                                iter->set_extension( true );
    7060                         (yyval.decl) = (yyvsp[(2) - (3)].decl);
     6283                        (yyval.decl) = (yyvsp[-1].decl);
    70616284                }
     6285#line 6286 "Parser/parser.cc" /* yacc.c:1646  */
    70626286    break;
    70636287
    70646288  case 385:
    7065 
    7066 /* Line 1806 of yacc.c  */
    7067 #line 1549 "parser.yy"
    7068     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6289#line 1549 "parser.yy" /* yacc.c:1646  */
     6290    { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
     6291#line 6292 "Parser/parser.cc" /* yacc.c:1646  */
    70696292    break;
    70706293
    70716294  case 386:
    7072 
    7073 /* Line 1806 of yacc.c  */
    7074 #line 1551 "parser.yy"
    7075     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     6295#line 1551 "parser.yy" /* yacc.c:1646  */
     6296    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
     6297#line 6298 "Parser/parser.cc" /* yacc.c:1646  */
    70766298    break;
    70776299
    70786300  case 387:
    7079 
    7080 /* Line 1806 of yacc.c  */
    7081 #line 1553 "parser.yy"
    7082     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     6301#line 1553 "parser.yy" /* yacc.c:1646  */
     6302    { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
     6303#line 6304 "Parser/parser.cc" /* yacc.c:1646  */
    70836304    break;
    70846305
    70856306  case 388:
    7086 
    7087 /* Line 1806 of yacc.c  */
    7088 #line 1558 "parser.yy"
    7089     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6307#line 1558 "parser.yy" /* yacc.c:1646  */
     6308    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6309#line 6310 "Parser/parser.cc" /* yacc.c:1646  */
    70906310    break;
    70916311
    70926312  case 389:
    7093 
    7094 /* Line 1806 of yacc.c  */
    7095 #line 1560 "parser.yy"
    7096     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     6313#line 1560 "parser.yy" /* yacc.c:1646  */
     6314    { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
     6315#line 6316 "Parser/parser.cc" /* yacc.c:1646  */
    70976316    break;
    70986317
    70996318  case 390:
    7100 
    7101 /* Line 1806 of yacc.c  */
    7102 #line 1565 "parser.yy"
     6319#line 1565 "parser.yy" /* yacc.c:1646  */
    71036320    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     6321#line 6322 "Parser/parser.cc" /* yacc.c:1646  */
    71046322    break;
    71056323
    71066324  case 391:
    7107 
    7108 /* Line 1806 of yacc.c  */
    7109 #line 1567 "parser.yy"
    7110     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     6325#line 1567 "parser.yy" /* yacc.c:1646  */
     6326    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
     6327#line 6328 "Parser/parser.cc" /* yacc.c:1646  */
    71116328    break;
    71126329
    71136330  case 392:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1570 "parser.yy"
    7117     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6331#line 1570 "parser.yy" /* yacc.c:1646  */
     6332    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
     6333#line 6334 "Parser/parser.cc" /* yacc.c:1646  */
    71186334    break;
    71196335
    71206336  case 393:
    7121 
    7122 /* Line 1806 of yacc.c  */
    7123 #line 1573 "parser.yy"
    7124     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6337#line 1573 "parser.yy" /* yacc.c:1646  */
     6338    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
     6339#line 6340 "Parser/parser.cc" /* yacc.c:1646  */
    71256340    break;
    71266341
    71276342  case 395:
    7128 
    7129 /* Line 1806 of yacc.c  */
    7130 #line 1579 "parser.yy"
     6343#line 1579 "parser.yy" /* yacc.c:1646  */
    71316344    { (yyval.en) = 0; }
     6345#line 6346 "Parser/parser.cc" /* yacc.c:1646  */
    71326346    break;
    71336347
    71346348  case 396:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1581 "parser.yy"
    7138     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     6349#line 1581 "parser.yy" /* yacc.c:1646  */
     6350    { (yyval.en) = (yyvsp[0].en); }
     6351#line 6352 "Parser/parser.cc" /* yacc.c:1646  */
    71396352    break;
    71406353
    71416354  case 397:
    7142 
    7143 /* Line 1806 of yacc.c  */
    7144 #line 1586 "parser.yy"
    7145     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6355#line 1586 "parser.yy" /* yacc.c:1646  */
     6356    { (yyval.en) = (yyvsp[0].en); }
     6357#line 6358 "Parser/parser.cc" /* yacc.c:1646  */
    71466358    break;
    71476359
    71486360  case 399:
    7149 
    7150 /* Line 1806 of yacc.c  */
    7151 #line 1595 "parser.yy"
    7152     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     6361#line 1595 "parser.yy" /* yacc.c:1646  */
     6362    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[-2].decl) ); }
     6363#line 6364 "Parser/parser.cc" /* yacc.c:1646  */
    71536364    break;
    71546365
    71556366  case 400:
    7156 
    7157 /* Line 1806 of yacc.c  */
    7158 #line 1597 "parser.yy"
    7159     {
    7160                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    7161                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
     6367#line 1597 "parser.yy" /* yacc.c:1646  */
     6368    {
     6369                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6370                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
    71626371                }
     6372#line 6373 "Parser/parser.cc" /* yacc.c:1646  */
    71636373    break;
    71646374
    71656375  case 401:
    7166 
    7167 /* Line 1806 of yacc.c  */
    7168 #line 1602 "parser.yy"
    7169     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6376#line 1602 "parser.yy" /* yacc.c:1646  */
     6377    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6378#line 6379 "Parser/parser.cc" /* yacc.c:1646  */
    71706379    break;
    71716380
    71726381  case 402:
    7173 
    7174 /* Line 1806 of yacc.c  */
    7175 #line 1604 "parser.yy"
    7176     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     6382#line 1604 "parser.yy" /* yacc.c:1646  */
     6383    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
     6384#line 6385 "Parser/parser.cc" /* yacc.c:1646  */
    71776385    break;
    71786386
    71796387  case 403:
    7180 
    7181 /* Line 1806 of yacc.c  */
    7182 #line 1609 "parser.yy"
    7183     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     6388#line 1609 "parser.yy" /* yacc.c:1646  */
     6389    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
     6390#line 6391 "Parser/parser.cc" /* yacc.c:1646  */
    71846391    break;
    71856392
    71866393  case 404:
    7187 
    7188 /* Line 1806 of yacc.c  */
    7189 #line 1611 "parser.yy"
    7190     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     6394#line 1611 "parser.yy" /* yacc.c:1646  */
     6395    { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
     6396#line 6397 "Parser/parser.cc" /* yacc.c:1646  */
    71916397    break;
    71926398
    71936399  case 405:
    7194 
    7195 /* Line 1806 of yacc.c  */
    7196 #line 1616 "parser.yy"
     6400#line 1616 "parser.yy" /* yacc.c:1646  */
    71976401    { (yyval.en) = 0; }
     6402#line 6403 "Parser/parser.cc" /* yacc.c:1646  */
    71986403    break;
    71996404
    72006405  case 406:
    7201 
    7202 /* Line 1806 of yacc.c  */
    7203 #line 1618 "parser.yy"
    7204     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6406#line 1618 "parser.yy" /* yacc.c:1646  */
     6407    { (yyval.en) = (yyvsp[0].en); }
     6408#line 6409 "Parser/parser.cc" /* yacc.c:1646  */
    72056409    break;
    72066410
    72076411  case 407:
    7208 
    7209 /* Line 1806 of yacc.c  */
    7210 #line 1625 "parser.yy"
     6412#line 1625 "parser.yy" /* yacc.c:1646  */
    72116413    { (yyval.decl) = 0; }
     6414#line 6415 "Parser/parser.cc" /* yacc.c:1646  */
    72126415    break;
    72136416
    72146417  case 411:
    7215 
    7216 /* Line 1806 of yacc.c  */
    7217 #line 1633 "parser.yy"
    7218     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6418#line 1633 "parser.yy" /* yacc.c:1646  */
     6419    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6420#line 6421 "Parser/parser.cc" /* yacc.c:1646  */
    72196421    break;
    72206422
    72216423  case 412:
    7222 
    7223 /* Line 1806 of yacc.c  */
    7224 #line 1635 "parser.yy"
    7225     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6424#line 1635 "parser.yy" /* yacc.c:1646  */
     6425    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6426#line 6427 "Parser/parser.cc" /* yacc.c:1646  */
    72266427    break;
    72276428
    72286429  case 413:
    7229 
    7230 /* Line 1806 of yacc.c  */
    7231 #line 1637 "parser.yy"
    7232     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6430#line 1637 "parser.yy" /* yacc.c:1646  */
     6431    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6432#line 6433 "Parser/parser.cc" /* yacc.c:1646  */
    72336433    break;
    72346434
    72356435  case 415:
    7236 
    7237 /* Line 1806 of yacc.c  */
    7238 #line 1645 "parser.yy"
    7239     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6436#line 1645 "parser.yy" /* yacc.c:1646  */
     6437    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6438#line 6439 "Parser/parser.cc" /* yacc.c:1646  */
    72406439    break;
    72416440
    72426441  case 416:
    7243 
    7244 /* Line 1806 of yacc.c  */
    7245 #line 1647 "parser.yy"
    7246     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6442#line 1647 "parser.yy" /* yacc.c:1646  */
     6443    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6444#line 6445 "Parser/parser.cc" /* yacc.c:1646  */
    72476445    break;
    72486446
    72496447  case 417:
    7250 
    7251 /* Line 1806 of yacc.c  */
    7252 #line 1649 "parser.yy"
    7253     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     6448#line 1649 "parser.yy" /* yacc.c:1646  */
     6449    { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
     6450#line 6451 "Parser/parser.cc" /* yacc.c:1646  */
    72546451    break;
    72556452
    72566453  case 419:
    7257 
    7258 /* Line 1806 of yacc.c  */
    7259 #line 1655 "parser.yy"
    7260     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6454#line 1655 "parser.yy" /* yacc.c:1646  */
     6455    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6456#line 6457 "Parser/parser.cc" /* yacc.c:1646  */
    72616457    break;
    72626458
    72636459  case 420:
    7264 
    7265 /* Line 1806 of yacc.c  */
    7266 #line 1660 "parser.yy"
     6460#line 1660 "parser.yy" /* yacc.c:1646  */
    72676461    { (yyval.decl) = 0; }
     6462#line 6463 "Parser/parser.cc" /* yacc.c:1646  */
    72686463    break;
    72696464
    72706465  case 423:
    7271 
    7272 /* Line 1806 of yacc.c  */
    7273 #line 1667 "parser.yy"
    7274     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6466#line 1667 "parser.yy" /* yacc.c:1646  */
     6467    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6468#line 6469 "Parser/parser.cc" /* yacc.c:1646  */
    72756469    break;
    72766470
    72776471  case 426:
    7278 
    7279 /* Line 1806 of yacc.c  */
    7280 #line 1674 "parser.yy"
    7281     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6472#line 1674 "parser.yy" /* yacc.c:1646  */
     6473    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6474#line 6475 "Parser/parser.cc" /* yacc.c:1646  */
    72826475    break;
    72836476
    72846477  case 427:
    7285 
    7286 /* Line 1806 of yacc.c  */
    7287 #line 1676 "parser.yy"
    7288     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     6478#line 1676 "parser.yy" /* yacc.c:1646  */
     6479    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
     6480#line 6481 "Parser/parser.cc" /* yacc.c:1646  */
    72896481    break;
    72906482
    72916483  case 429:
    7292 
    7293 /* Line 1806 of yacc.c  */
    7294 #line 1685 "parser.yy"
    7295     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     6484#line 1685 "parser.yy" /* yacc.c:1646  */
     6485    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
     6486#line 6487 "Parser/parser.cc" /* yacc.c:1646  */
    72966487    break;
    72976488
    72986489  case 430:
    7299 
    7300 /* Line 1806 of yacc.c  */
    7301 #line 1688 "parser.yy"
    7302     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     6490#line 1688 "parser.yy" /* yacc.c:1646  */
     6491    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
     6492#line 6493 "Parser/parser.cc" /* yacc.c:1646  */
    73036493    break;
    73046494
    73056495  case 431:
    7306 
    7307 /* Line 1806 of yacc.c  */
    7308 #line 1690 "parser.yy"
    7309     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     6496#line 1690 "parser.yy" /* yacc.c:1646  */
     6497    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
     6498#line 6499 "Parser/parser.cc" /* yacc.c:1646  */
    73106499    break;
    73116500
    73126501  case 436:
    7313 
    7314 /* Line 1806 of yacc.c  */
    7315 #line 1700 "parser.yy"
    7316     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6502#line 1700 "parser.yy" /* yacc.c:1646  */
     6503    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6504#line 6505 "Parser/parser.cc" /* yacc.c:1646  */
    73176505    break;
    73186506
    73196507  case 438:
    7320 
    7321 /* Line 1806 of yacc.c  */
    7322 #line 1706 "parser.yy"
     6508#line 1706 "parser.yy" /* yacc.c:1646  */
    73236509    {
    73246510                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7325                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6511                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73266512                }
     6513#line 6514 "Parser/parser.cc" /* yacc.c:1646  */
    73276514    break;
    73286515
    73296516  case 439:
    7330 
    7331 /* Line 1806 of yacc.c  */
    7332 #line 1711 "parser.yy"
     6517#line 1711 "parser.yy" /* yacc.c:1646  */
    73336518    {
    73346519                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7335                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6520                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73366521                }
     6522#line 6523 "Parser/parser.cc" /* yacc.c:1646  */
    73376523    break;
    73386524
    73396525  case 441:
    7340 
    7341 /* Line 1806 of yacc.c  */
    7342 #line 1720 "parser.yy"
    7343     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6526#line 1720 "parser.yy" /* yacc.c:1646  */
     6527    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6528#line 6529 "Parser/parser.cc" /* yacc.c:1646  */
    73446529    break;
    73456530
    73466531  case 442:
    7347 
    7348 /* Line 1806 of yacc.c  */
    7349 #line 1729 "parser.yy"
    7350     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     6532#line 1729 "parser.yy" /* yacc.c:1646  */
     6533    { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
     6534#line 6535 "Parser/parser.cc" /* yacc.c:1646  */
    73516535    break;
    73526536
    73536537  case 443:
    7354 
    7355 /* Line 1806 of yacc.c  */
    7356 #line 1731 "parser.yy"
    7357     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     6538#line 1731 "parser.yy" /* yacc.c:1646  */
     6539    { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
     6540#line 6541 "Parser/parser.cc" /* yacc.c:1646  */
    73586541    break;
    73596542
    73606543  case 455:
    7361 
    7362 /* Line 1806 of yacc.c  */
    7363 #line 1756 "parser.yy"
    7364     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6544#line 1756 "parser.yy" /* yacc.c:1646  */
     6545    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6546#line 6547 "Parser/parser.cc" /* yacc.c:1646  */
    73656547    break;
    73666548
    73676549  case 459:
    7368 
    7369 /* Line 1806 of yacc.c  */
    7370 #line 1764 "parser.yy"
    7371     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6550#line 1764 "parser.yy" /* yacc.c:1646  */
     6551    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     6552#line 6553 "Parser/parser.cc" /* yacc.c:1646  */
    73726553    break;
    73736554
    73746555  case 460:
    7375 
    7376 /* Line 1806 of yacc.c  */
    7377 #line 1769 "parser.yy"
     6556#line 1769 "parser.yy" /* yacc.c:1646  */
    73786557    { (yyval.in) = 0; }
     6558#line 6559 "Parser/parser.cc" /* yacc.c:1646  */
    73796559    break;
    73806560
    73816561  case 461:
    7382 
    7383 /* Line 1806 of yacc.c  */
    7384 #line 1771 "parser.yy"
    7385     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     6562#line 1771 "parser.yy" /* yacc.c:1646  */
     6563    { (yyval.in) = (yyvsp[0].in); }
     6564#line 6565 "Parser/parser.cc" /* yacc.c:1646  */
    73866565    break;
    73876566
    73886567  case 462:
    7389 
    7390 /* Line 1806 of yacc.c  */
    7391 #line 1773 "parser.yy"
    7392     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     6568#line 1773 "parser.yy" /* yacc.c:1646  */
     6569    { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
     6570#line 6571 "Parser/parser.cc" /* yacc.c:1646  */
    73936571    break;
    73946572
    73956573  case 463:
    7396 
    7397 /* Line 1806 of yacc.c  */
    7398 #line 1777 "parser.yy"
    7399     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     6574#line 1777 "parser.yy" /* yacc.c:1646  */
     6575    { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
     6576#line 6577 "Parser/parser.cc" /* yacc.c:1646  */
    74006577    break;
    74016578
    74026579  case 464:
    7403 
    7404 /* Line 1806 of yacc.c  */
    7405 #line 1778 "parser.yy"
    7406     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     6580#line 1778 "parser.yy" /* yacc.c:1646  */
     6581    { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
     6582#line 6583 "Parser/parser.cc" /* yacc.c:1646  */
    74076583    break;
    74086584
    74096585  case 465:
    7410 
    7411 /* Line 1806 of yacc.c  */
    7412 #line 1783 "parser.yy"
     6586#line 1783 "parser.yy" /* yacc.c:1646  */
    74136587    { (yyval.in) = 0; }
     6588#line 6589 "Parser/parser.cc" /* yacc.c:1646  */
    74146589    break;
    74156590
    74166591  case 467:
    7417 
    7418 /* Line 1806 of yacc.c  */
    7419 #line 1785 "parser.yy"
    7420     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     6592#line 1785 "parser.yy" /* yacc.c:1646  */
     6593    { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
     6594#line 6595 "Parser/parser.cc" /* yacc.c:1646  */
    74216595    break;
    74226596
    74236597  case 468:
    7424 
    7425 /* Line 1806 of yacc.c  */
    7426 #line 1786 "parser.yy"
    7427     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     6598#line 1786 "parser.yy" /* yacc.c:1646  */
     6599    { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
     6600#line 6601 "Parser/parser.cc" /* yacc.c:1646  */
    74286601    break;
    74296602
    74306603  case 469:
    7431 
    7432 /* Line 1806 of yacc.c  */
    7433 #line 1788 "parser.yy"
    7434     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     6604#line 1788 "parser.yy" /* yacc.c:1646  */
     6605    { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
     6606#line 6607 "Parser/parser.cc" /* yacc.c:1646  */
    74356607    break;
    74366608
    74376609  case 471:
    7438 
    7439 /* Line 1806 of yacc.c  */
    7440 #line 1804 "parser.yy"
    7441     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     6610#line 1804 "parser.yy" /* yacc.c:1646  */
     6611    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
     6612#line 6613 "Parser/parser.cc" /* yacc.c:1646  */
    74426613    break;
    74436614
    74446615  case 473:
    7445 
    7446 /* Line 1806 of yacc.c  */
    7447 #line 1810 "parser.yy"
    7448     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     6616#line 1810 "parser.yy" /* yacc.c:1646  */
     6617    { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
     6618#line 6619 "Parser/parser.cc" /* yacc.c:1646  */
    74496619    break;
    74506620
    74516621  case 474:
    7452 
    7453 /* Line 1806 of yacc.c  */
    7454 #line 1816 "parser.yy"
    7455     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     6622#line 1816 "parser.yy" /* yacc.c:1646  */
     6623    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     6624#line 6625 "Parser/parser.cc" /* yacc.c:1646  */
    74566625    break;
    74576626
    74586627  case 475:
    7459 
    7460 /* Line 1806 of yacc.c  */
    7461 #line 1819 "parser.yy"
    7462     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6628#line 1819 "parser.yy" /* yacc.c:1646  */
     6629    { (yyval.en) = (yyvsp[-2].en); }
     6630#line 6631 "Parser/parser.cc" /* yacc.c:1646  */
    74636631    break;
    74646632
    74656633  case 476:
    7466 
    7467 /* Line 1806 of yacc.c  */
    7468 #line 1821 "parser.yy"
    7469     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6634#line 1821 "parser.yy" /* yacc.c:1646  */
     6635    { (yyval.en) = (yyvsp[-2].en); }
     6636#line 6637 "Parser/parser.cc" /* yacc.c:1646  */
    74706637    break;
    74716638
    74726639  case 477:
    7473 
    7474 /* Line 1806 of yacc.c  */
    7475 #line 1823 "parser.yy"
    7476     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     6640#line 1823 "parser.yy" /* yacc.c:1646  */
     6641    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     6642#line 6643 "Parser/parser.cc" /* yacc.c:1646  */
    74776643    break;
    74786644
    74796645  case 478:
    7480 
    7481 /* Line 1806 of yacc.c  */
    7482 #line 1825 "parser.yy"
    7483     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     6646#line 1825 "parser.yy" /* yacc.c:1646  */
     6647    { (yyval.en) = (yyvsp[-2].en); }
     6648#line 6649 "Parser/parser.cc" /* yacc.c:1646  */
    74846649    break;
    74856650
    74866651  case 480:
    7487 
    7488 /* Line 1806 of yacc.c  */
    7489 #line 1849 "parser.yy"
    7490     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6652#line 1849 "parser.yy" /* yacc.c:1646  */
     6653    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6654#line 6655 "Parser/parser.cc" /* yacc.c:1646  */
    74916655    break;
    74926656
    74936657  case 481:
    7494 
    7495 /* Line 1806 of yacc.c  */
    7496 #line 1851 "parser.yy"
    7497     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6658#line 1851 "parser.yy" /* yacc.c:1646  */
     6659    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6660#line 6661 "Parser/parser.cc" /* yacc.c:1646  */
    74986661    break;
    74996662
    75006663  case 482:
    7501 
    7502 /* Line 1806 of yacc.c  */
    7503 #line 1853 "parser.yy"
    7504     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6664#line 1853 "parser.yy" /* yacc.c:1646  */
     6665    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6666#line 6667 "Parser/parser.cc" /* yacc.c:1646  */
    75056667    break;
    75066668
    75076669  case 484:
    7508 
    7509 /* Line 1806 of yacc.c  */
    7510 #line 1859 "parser.yy"
    7511     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6670#line 1859 "parser.yy" /* yacc.c:1646  */
     6671    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6672#line 6673 "Parser/parser.cc" /* yacc.c:1646  */
    75126673    break;
    75136674
    75146675  case 485:
    7515 
    7516 /* Line 1806 of yacc.c  */
    7517 #line 1861 "parser.yy"
    7518     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6676#line 1861 "parser.yy" /* yacc.c:1646  */
     6677    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6678#line 6679 "Parser/parser.cc" /* yacc.c:1646  */
    75196679    break;
    75206680
    75216681  case 486:
    7522 
    7523 /* Line 1806 of yacc.c  */
    7524 #line 1866 "parser.yy"
    7525     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6682#line 1866 "parser.yy" /* yacc.c:1646  */
     6683    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6684#line 6685 "Parser/parser.cc" /* yacc.c:1646  */
    75266685    break;
    75276686
    75286687  case 488:
    7529 
    7530 /* Line 1806 of yacc.c  */
    7531 #line 1872 "parser.yy"
    7532     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     6688#line 1872 "parser.yy" /* yacc.c:1646  */
     6689    { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
     6690#line 6691 "Parser/parser.cc" /* yacc.c:1646  */
    75336691    break;
    75346692
    75356693  case 489:
    7536 
    7537 /* Line 1806 of yacc.c  */
    7538 #line 1877 "parser.yy"
    7539     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     6694#line 1877 "parser.yy" /* yacc.c:1646  */
     6695    { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
     6696#line 6697 "Parser/parser.cc" /* yacc.c:1646  */
    75406697    break;
    75416698
    75426699  case 490:
    7543 
    7544 /* Line 1806 of yacc.c  */
    7545 #line 1879 "parser.yy"
    7546     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     6700#line 1879 "parser.yy" /* yacc.c:1646  */
     6701    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
     6702#line 6703 "Parser/parser.cc" /* yacc.c:1646  */
    75476703    break;
    75486704
    75496705  case 492:
    7550 
    7551 /* Line 1806 of yacc.c  */
    7552 #line 1885 "parser.yy"
     6706#line 1885 "parser.yy" /* yacc.c:1646  */
    75536707    { (yyval.tclass) = DeclarationNode::Otype; }
     6708#line 6709 "Parser/parser.cc" /* yacc.c:1646  */
    75546709    break;
    75556710
    75566711  case 493:
    7557 
    7558 /* Line 1806 of yacc.c  */
    7559 #line 1887 "parser.yy"
     6712#line 1887 "parser.yy" /* yacc.c:1646  */
    75606713    { (yyval.tclass) = DeclarationNode::Ftype; }
     6714#line 6715 "Parser/parser.cc" /* yacc.c:1646  */
    75616715    break;
    75626716
    75636717  case 494:
    7564 
    7565 /* Line 1806 of yacc.c  */
    7566 #line 1889 "parser.yy"
     6718#line 1889 "parser.yy" /* yacc.c:1646  */
    75676719    { (yyval.tclass) = DeclarationNode::Dtype; }
     6720#line 6721 "Parser/parser.cc" /* yacc.c:1646  */
    75686721    break;
    75696722
    75706723  case 495:
    7571 
    7572 /* Line 1806 of yacc.c  */
    7573 #line 1894 "parser.yy"
     6724#line 1894 "parser.yy" /* yacc.c:1646  */
    75746725    { (yyval.decl) = 0; }
     6726#line 6727 "Parser/parser.cc" /* yacc.c:1646  */
    75756727    break;
    75766728
    75776729  case 496:
    7578 
    7579 /* Line 1806 of yacc.c  */
    7580 #line 1896 "parser.yy"
    7581     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     6730#line 1896 "parser.yy" /* yacc.c:1646  */
     6731    { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6732#line 6733 "Parser/parser.cc" /* yacc.c:1646  */
    75826733    break;
    75836734
    75846735  case 497:
    7585 
    7586 /* Line 1806 of yacc.c  */
    7587 #line 1901 "parser.yy"
    7588     {
    7589                         typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
    7590                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     6736#line 1901 "parser.yy" /* yacc.c:1646  */
     6737    {
     6738                        typedefTable.openTrait( *(yyvsp[-3].tok) );
     6739                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
    75916740                }
     6741#line 6742 "Parser/parser.cc" /* yacc.c:1646  */
    75926742    break;
    75936743
    75946744  case 498:
    7595 
    7596 /* Line 1806 of yacc.c  */
    7597 #line 1906 "parser.yy"
    7598     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     6745#line 1906 "parser.yy" /* yacc.c:1646  */
     6746    { (yyval.decl) = (yyvsp[-1].decl); }
     6747#line 6748 "Parser/parser.cc" /* yacc.c:1646  */
    75996748    break;
    76006749
    76016750  case 499:
    7602 
    7603 /* Line 1806 of yacc.c  */
    7604 #line 1908 "parser.yy"
     6751#line 1908 "parser.yy" /* yacc.c:1646  */
    76056752    { (yyval.decl) = 0; }
     6753#line 6754 "Parser/parser.cc" /* yacc.c:1646  */
    76066754    break;
    76076755
    76086756  case 500:
    7609 
    7610 /* Line 1806 of yacc.c  */
    7611 #line 1913 "parser.yy"
    7612     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     6757#line 1913 "parser.yy" /* yacc.c:1646  */
     6758    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
     6759#line 6760 "Parser/parser.cc" /* yacc.c:1646  */
    76136760    break;
    76146761
    76156762  case 502:
    7616 
    7617 /* Line 1806 of yacc.c  */
    7618 #line 1916 "parser.yy"
    7619     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     6763#line 1916 "parser.yy" /* yacc.c:1646  */
     6764    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
     6765#line 6766 "Parser/parser.cc" /* yacc.c:1646  */
    76206766    break;
    76216767
    76226768  case 503:
    7623 
    7624 /* Line 1806 of yacc.c  */
    7625 #line 1918 "parser.yy"
    7626     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     6769#line 1918 "parser.yy" /* yacc.c:1646  */
     6770    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
     6771#line 6772 "Parser/parser.cc" /* yacc.c:1646  */
    76276772    break;
    76286773
    76296774  case 504:
    7630 
    7631 /* Line 1806 of yacc.c  */
    7632 #line 1923 "parser.yy"
    7633     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6775#line 1923 "parser.yy" /* yacc.c:1646  */
     6776    { (yyval.decl) = (yyvsp[0].decl); }
     6777#line 6778 "Parser/parser.cc" /* yacc.c:1646  */
    76346778    break;
    76356779
    76366780  case 505:
    7637 
    7638 /* Line 1806 of yacc.c  */
    7639 #line 1925 "parser.yy"
    7640     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     6781#line 1925 "parser.yy" /* yacc.c:1646  */
     6782    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
     6783#line 6784 "Parser/parser.cc" /* yacc.c:1646  */
    76416784    break;
    76426785
    76436786  case 506:
    7644 
    7645 /* Line 1806 of yacc.c  */
    7646 #line 1927 "parser.yy"
    7647     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     6787#line 1927 "parser.yy" /* yacc.c:1646  */
     6788    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
     6789#line 6790 "Parser/parser.cc" /* yacc.c:1646  */
    76486790    break;
    76496791
    76506792  case 507:
    7651 
    7652 /* Line 1806 of yacc.c  */
    7653 #line 1932 "parser.yy"
    7654     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     6793#line 1932 "parser.yy" /* yacc.c:1646  */
     6794    { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
     6795#line 6796 "Parser/parser.cc" /* yacc.c:1646  */
    76556796    break;
    76566797
    76576798  case 508:
    7658 
    7659 /* Line 1806 of yacc.c  */
    7660 #line 1934 "parser.yy"
    7661     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     6799#line 1934 "parser.yy" /* yacc.c:1646  */
     6800    { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
     6801#line 6802 "Parser/parser.cc" /* yacc.c:1646  */
    76626802    break;
    76636803
    76646804  case 509:
    7665 
    7666 /* Line 1806 of yacc.c  */
    7667 #line 1939 "parser.yy"
    7668     {
    7669                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
    7670                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
     6805#line 1939 "parser.yy" /* yacc.c:1646  */
     6806    {
     6807                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     6808                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
    76716809                }
     6810#line 6811 "Parser/parser.cc" /* yacc.c:1646  */
    76726811    break;
    76736812
    76746813  case 510:
    7675 
    7676 /* Line 1806 of yacc.c  */
    7677 #line 1944 "parser.yy"
    7678     {
    7679                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
    7680                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
     6814#line 1944 "parser.yy" /* yacc.c:1646  */
     6815    {
     6816                        typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
     6817                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
    76816818                }
     6819#line 6820 "Parser/parser.cc" /* yacc.c:1646  */
    76826820    break;
    76836821
    76846822  case 511:
    7685 
    7686 /* Line 1806 of yacc.c  */
    7687 #line 1952 "parser.yy"
    7688     {
    7689                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7690                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
     6823#line 1952 "parser.yy" /* yacc.c:1646  */
     6824    {
     6825                        typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
     6826                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
    76916827                }
     6828#line 6829 "Parser/parser.cc" /* yacc.c:1646  */
    76926829    break;
    76936830
    76946831  case 512:
    7695 
    7696 /* Line 1806 of yacc.c  */
    7697 #line 1957 "parser.yy"
    7698     {
    7699                         typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     6832#line 1957 "parser.yy" /* yacc.c:1646  */
     6833    {
     6834                        typedefTable.enterTrait( *(yyvsp[-6].tok) );
    77006835                        typedefTable.enterScope();
    77016836                }
     6837#line 6838 "Parser/parser.cc" /* yacc.c:1646  */
    77026838    break;
    77036839
    77046840  case 513:
    7705 
    7706 /* Line 1806 of yacc.c  */
    7707 #line 1962 "parser.yy"
     6841#line 1962 "parser.yy" /* yacc.c:1646  */
    77086842    {
    77096843                        typedefTable.leaveTrait();
    7710                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
    7711                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
     6844                        typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
     6845                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
    77126846                }
     6847#line 6848 "Parser/parser.cc" /* yacc.c:1646  */
    77136848    break;
    77146849
    77156850  case 515:
    7716 
    7717 /* Line 1806 of yacc.c  */
    7718 #line 1972 "parser.yy"
    7719     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6851#line 1972 "parser.yy" /* yacc.c:1646  */
     6852    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     6853#line 6854 "Parser/parser.cc" /* yacc.c:1646  */
    77206854    break;
    77216855
    77226856  case 518:
    7723 
    7724 /* Line 1806 of yacc.c  */
    7725 #line 1982 "parser.yy"
     6857#line 1982 "parser.yy" /* yacc.c:1646  */
    77266858    {
    77276859                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7728                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6860                        (yyval.decl) = (yyvsp[0].decl);
    77296861                }
     6862#line 6863 "Parser/parser.cc" /* yacc.c:1646  */
    77306863    break;
    77316864
    77326865  case 519:
    7733 
    7734 /* Line 1806 of yacc.c  */
    7735 #line 1987 "parser.yy"
     6866#line 1987 "parser.yy" /* yacc.c:1646  */
    77366867    {
    77376868                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7738                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6869                        (yyval.decl) = (yyvsp[0].decl);
    77396870                }
     6871#line 6872 "Parser/parser.cc" /* yacc.c:1646  */
    77406872    break;
    77416873
    77426874  case 520:
    7743 
    7744 /* Line 1806 of yacc.c  */
    7745 #line 1992 "parser.yy"
    7746     {
    7747                         typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    7748                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     6875#line 1992 "parser.yy" /* yacc.c:1646  */
     6876    {
     6877                        typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
     6878                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    77496879                }
     6880#line 6881 "Parser/parser.cc" /* yacc.c:1646  */
    77506881    break;
    77516882
    77526883  case 521:
    7753 
    7754 /* Line 1806 of yacc.c  */
    7755 #line 2000 "parser.yy"
     6884#line 2000 "parser.yy" /* yacc.c:1646  */
    77566885    {
    77576886                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7758                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     6887                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    77596888                }
     6889#line 6890 "Parser/parser.cc" /* yacc.c:1646  */
    77606890    break;
    77616891
    77626892  case 522:
    7763 
    7764 /* Line 1806 of yacc.c  */
    7765 #line 2005 "parser.yy"
     6893#line 2005 "parser.yy" /* yacc.c:1646  */
    77666894    {
    77676895                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7768                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
     6896                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
    77696897                }
     6898#line 6899 "Parser/parser.cc" /* yacc.c:1646  */
    77706899    break;
    77716900
    77726901  case 523:
    7773 
    7774 /* Line 1806 of yacc.c  */
    7775 #line 2015 "parser.yy"
     6902#line 2015 "parser.yy" /* yacc.c:1646  */
    77766903    {}
     6904#line 6905 "Parser/parser.cc" /* yacc.c:1646  */
    77776905    break;
    77786906
    77796907  case 524:
    7780 
    7781 /* Line 1806 of yacc.c  */
    7782 #line 2017 "parser.yy"
    7783     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     6908#line 2017 "parser.yy" /* yacc.c:1646  */
     6909    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);    }
     6910#line 6911 "Parser/parser.cc" /* yacc.c:1646  */
    77846911    break;
    77856912
    77866913  case 526:
    7787 
    7788 /* Line 1806 of yacc.c  */
    7789 #line 2023 "parser.yy"
    7790     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     6914#line 2023 "parser.yy" /* yacc.c:1646  */
     6915    { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
     6916#line 6917 "Parser/parser.cc" /* yacc.c:1646  */
    77916917    break;
    77926918
    77936919  case 527:
    7794 
    7795 /* Line 1806 of yacc.c  */
    7796 #line 2028 "parser.yy"
     6920#line 2028 "parser.yy" /* yacc.c:1646  */
    77976921    { (yyval.decl) = 0; }
     6922#line 6923 "Parser/parser.cc" /* yacc.c:1646  */
    77986923    break;
    77996924
    78006925  case 531:
    7801 
    7802 /* Line 1806 of yacc.c  */
    7803 #line 2036 "parser.yy"
     6926#line 2036 "parser.yy" /* yacc.c:1646  */
    78046927    {}
     6928#line 6929 "Parser/parser.cc" /* yacc.c:1646  */
    78056929    break;
    78066930
    78076931  case 532:
    7808 
    7809 /* Line 1806 of yacc.c  */
    7810 #line 2038 "parser.yy"
     6932#line 2038 "parser.yy" /* yacc.c:1646  */
    78116933    {
    78126934                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7813                         linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) );
     6935                        linkage = LinkageSpec::linkageCheck( (yyvsp[0].tok) );
    78146936                }
     6937#line 6938 "Parser/parser.cc" /* yacc.c:1646  */
    78156938    break;
    78166939
    78176940  case 533:
    7818 
    7819 /* Line 1806 of yacc.c  */
    7820 #line 2043 "parser.yy"
     6941#line 2043 "parser.yy" /* yacc.c:1646  */
    78216942    {
    78226943                        linkage = linkageStack.top();
    78236944                        linkageStack.pop();
    7824                         (yyval.decl) = (yyvsp[(5) - (6)].decl);
     6945                        (yyval.decl) = (yyvsp[-1].decl);
    78256946                }
     6947#line 6948 "Parser/parser.cc" /* yacc.c:1646  */
    78266948    break;
    78276949
    78286950  case 534:
    7829 
    7830 /* Line 1806 of yacc.c  */
    7831 #line 2049 "parser.yy"
     6951#line 2049 "parser.yy" /* yacc.c:1646  */
    78326952    {   // mark all fields in list
    7833                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6953                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    78346954                                iter->set_extension( true );
    7835                         (yyval.decl) = (yyvsp[(2) - (2)].decl);
     6955                        (yyval.decl) = (yyvsp[0].decl);
    78366956                }
     6957#line 6958 "Parser/parser.cc" /* yacc.c:1646  */
    78376958    break;
    78386959
    78396960  case 536:
    7840 
    7841 /* Line 1806 of yacc.c  */
    7842 #line 2064 "parser.yy"
     6961#line 2064 "parser.yy" /* yacc.c:1646  */
    78436962    {
    78446963                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78456964                        typedefTable.leaveScope();
    7846                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6965                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78476966                }
     6967#line 6968 "Parser/parser.cc" /* yacc.c:1646  */
    78486968    break;
    78496969
    78506970  case 537:
    7851 
    7852 /* Line 1806 of yacc.c  */
    7853 #line 2070 "parser.yy"
     6971#line 2070 "parser.yy" /* yacc.c:1646  */
    78546972    {
    78556973                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78566974                        typedefTable.leaveScope();
    7857                         (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
     6975                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
    78586976                }
     6977#line 6978 "Parser/parser.cc" /* yacc.c:1646  */
    78596978    break;
    78606979
    78616980  case 538:
    7862 
    7863 /* Line 1806 of yacc.c  */
    7864 #line 2079 "parser.yy"
     6981#line 2079 "parser.yy" /* yacc.c:1646  */
    78656982    {
    78666983                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78676984                        typedefTable.leaveScope();
    7868                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6985                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78696986                }
     6987#line 6988 "Parser/parser.cc" /* yacc.c:1646  */
    78706988    break;
    78716989
    78726990  case 539:
    7873 
    7874 /* Line 1806 of yacc.c  */
    7875 #line 2085 "parser.yy"
     6991#line 2085 "parser.yy" /* yacc.c:1646  */
    78766992    {
    78776993                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78786994                        typedefTable.leaveScope();
    7879                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
     6995                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
    78806996                }
     6997#line 6998 "Parser/parser.cc" /* yacc.c:1646  */
    78816998    break;
    78826999
    78837000  case 540:
    7884 
    7885 /* Line 1806 of yacc.c  */
    7886 #line 2091 "parser.yy"
     7001#line 2091 "parser.yy" /* yacc.c:1646  */
    78877002    {
    78887003                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78897004                        typedefTable.leaveScope();
    7890                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7005                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    78917006                }
     7007#line 7008 "Parser/parser.cc" /* yacc.c:1646  */
    78927008    break;
    78937009
    78947010  case 541:
    7895 
    7896 /* Line 1806 of yacc.c  */
    7897 #line 2097 "parser.yy"
     7011#line 2097 "parser.yy" /* yacc.c:1646  */
    78987012    {
    78997013                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79007014                        typedefTable.leaveScope();
    7901                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7015                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    79027016                }
     7017#line 7018 "Parser/parser.cc" /* yacc.c:1646  */
    79037018    break;
    79047019
    79057020  case 542:
    7906 
    7907 /* Line 1806 of yacc.c  */
    7908 #line 2103 "parser.yy"
     7021#line 2103 "parser.yy" /* yacc.c:1646  */
    79097022    {
    79107023                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79117024                        typedefTable.leaveScope();
    7912                         (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
     7025                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
    79137026                }
     7027#line 7028 "Parser/parser.cc" /* yacc.c:1646  */
    79147028    break;
    79157029
    79167030  case 543:
    7917 
    7918 /* Line 1806 of yacc.c  */
    7919 #line 2111 "parser.yy"
     7031#line 2111 "parser.yy" /* yacc.c:1646  */
    79207032    {
    79217033                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79227034                        typedefTable.leaveScope();
    7923                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
     7035                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
    79247036                }
     7037#line 7038 "Parser/parser.cc" /* yacc.c:1646  */
    79257038    break;
    79267039
    79277040  case 544:
    7928 
    7929 /* Line 1806 of yacc.c  */
    7930 #line 2117 "parser.yy"
     7041#line 2117 "parser.yy" /* yacc.c:1646  */
    79317042    {
    79327043                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79337044                        typedefTable.leaveScope();
    7934                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7045                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79357046                }
     7047#line 7048 "Parser/parser.cc" /* yacc.c:1646  */
    79367048    break;
    79377049
    79387050  case 545:
    7939 
    7940 /* Line 1806 of yacc.c  */
    7941 #line 2125 "parser.yy"
     7051#line 2125 "parser.yy" /* yacc.c:1646  */
    79427052    {
    79437053                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79447054                        typedefTable.leaveScope();
    7945                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7055                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79467056                }
     7057#line 7058 "Parser/parser.cc" /* yacc.c:1646  */
    79477058    break;
    79487059
    79497060  case 546:
    7950 
    7951 /* Line 1806 of yacc.c  */
    7952 #line 2131 "parser.yy"
     7061#line 2131 "parser.yy" /* yacc.c:1646  */
    79537062    {
    79547063                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79557064                        typedefTable.leaveScope();
    7956                         (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) );
     7065                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
    79577066                }
     7067#line 7068 "Parser/parser.cc" /* yacc.c:1646  */
    79587068    break;
    79597069
    79607070  case 550:
    7961 
    7962 /* Line 1806 of yacc.c  */
    7963 #line 2146 "parser.yy"
    7964     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7071#line 2146 "parser.yy" /* yacc.c:1646  */
     7072    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     7073#line 7074 "Parser/parser.cc" /* yacc.c:1646  */
    79657074    break;
    79667075
    79677076  case 552:
    7968 
    7969 /* Line 1806 of yacc.c  */
    7970 #line 2151 "parser.yy"
    7971     { delete (yyvsp[(3) - (5)].str); }
     7077#line 2151 "parser.yy" /* yacc.c:1646  */
     7078    { delete (yyvsp[-2].str); }
     7079#line 7080 "Parser/parser.cc" /* yacc.c:1646  */
    79727080    break;
    79737081
    79747082  case 553:
    7975 
    7976 /* Line 1806 of yacc.c  */
    7977 #line 2156 "parser.yy"
     7083#line 2156 "parser.yy" /* yacc.c:1646  */
    79787084    { (yyval.decl) = 0; }
     7085#line 7086 "Parser/parser.cc" /* yacc.c:1646  */
    79797086    break;
    79807087
    79817088  case 556:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2163 "parser.yy"
    7985     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7089#line 2163 "parser.yy" /* yacc.c:1646  */
     7090    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7091#line 7092 "Parser/parser.cc" /* yacc.c:1646  */
    79867092    break;
    79877093
    79887094  case 557:
    7989 
    7990 /* Line 1806 of yacc.c  */
    7991 #line 2169 "parser.yy"
     7095#line 2169 "parser.yy" /* yacc.c:1646  */
    79927096    { (yyval.decl) = 0; }
     7097#line 7098 "Parser/parser.cc" /* yacc.c:1646  */
    79937098    break;
    79947099
    79957100  case 562:
    7996 
    7997 /* Line 1806 of yacc.c  */
    7998 #line 2180 "parser.yy"
    7999     { delete (yyvsp[(3) - (4)].en); }
     7101#line 2180 "parser.yy" /* yacc.c:1646  */
     7102    { delete (yyvsp[-1].en); }
     7103#line 7104 "Parser/parser.cc" /* yacc.c:1646  */
    80007104    break;
    80017105
    80027106  case 563:
    8003 
    8004 /* Line 1806 of yacc.c  */
    8005 #line 2184 "parser.yy"
    8006     { delete (yyvsp[(1) - (1)].tok); }
     7107#line 2184 "parser.yy" /* yacc.c:1646  */
     7108    { delete (yyvsp[0].tok); }
     7109#line 7110 "Parser/parser.cc" /* yacc.c:1646  */
    80077110    break;
    80087111
    80097112  case 564:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 2185 "parser.yy"
    8013     { delete (yyvsp[(1) - (1)].decl); }
     7113#line 2185 "parser.yy" /* yacc.c:1646  */
     7114    { delete (yyvsp[0].decl); }
     7115#line 7116 "Parser/parser.cc" /* yacc.c:1646  */
    80147116    break;
    80157117
    80167118  case 565:
    8017 
    8018 /* Line 1806 of yacc.c  */
    8019 #line 2186 "parser.yy"
    8020     { delete (yyvsp[(1) - (1)].decl); }
     7119#line 2186 "parser.yy" /* yacc.c:1646  */
     7120    { delete (yyvsp[0].decl); }
     7121#line 7122 "Parser/parser.cc" /* yacc.c:1646  */
    80217122    break;
    80227123
    80237124  case 566:
    8024 
    8025 /* Line 1806 of yacc.c  */
    8026 #line 2187 "parser.yy"
    8027     { delete (yyvsp[(1) - (1)].decl); }
     7125#line 2187 "parser.yy" /* yacc.c:1646  */
     7126    { delete (yyvsp[0].decl); }
     7127#line 7128 "Parser/parser.cc" /* yacc.c:1646  */
    80287128    break;
    80297129
    80307130  case 567:
    8031 
    8032 /* Line 1806 of yacc.c  */
    8033 #line 2222 "parser.yy"
    8034     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7131#line 2222 "parser.yy" /* yacc.c:1646  */
     7132    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7133#line 7134 "Parser/parser.cc" /* yacc.c:1646  */
    80357134    break;
    80367135
    80377136  case 569:
    8038 
    8039 /* Line 1806 of yacc.c  */
    8040 #line 2225 "parser.yy"
    8041     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7137#line 2225 "parser.yy" /* yacc.c:1646  */
     7138    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7139#line 7140 "Parser/parser.cc" /* yacc.c:1646  */
    80427140    break;
    80437141
    80447142  case 570:
    8045 
    8046 /* Line 1806 of yacc.c  */
    8047 #line 2227 "parser.yy"
    8048     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7143#line 2227 "parser.yy" /* yacc.c:1646  */
     7144    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7145#line 7146 "Parser/parser.cc" /* yacc.c:1646  */
    80497146    break;
    80507147
    80517148  case 571:
    8052 
    8053 /* Line 1806 of yacc.c  */
    8054 #line 2232 "parser.yy"
    8055     {
    8056                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8057                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7149#line 2232 "parser.yy" /* yacc.c:1646  */
     7150    {
     7151                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7152                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    80587153                }
     7154#line 7155 "Parser/parser.cc" /* yacc.c:1646  */
    80597155    break;
    80607156
    80617157  case 572:
    8062 
    8063 /* Line 1806 of yacc.c  */
    8064 #line 2237 "parser.yy"
    8065     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7158#line 2237 "parser.yy" /* yacc.c:1646  */
     7159    { (yyval.decl) = (yyvsp[-1].decl); }
     7160#line 7161 "Parser/parser.cc" /* yacc.c:1646  */
    80667161    break;
    80677162
    80687163  case 573:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2242 "parser.yy"
    8072     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7164#line 2242 "parser.yy" /* yacc.c:1646  */
     7165    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7166#line 7167 "Parser/parser.cc" /* yacc.c:1646  */
    80737167    break;
    80747168
    80757169  case 574:
    8076 
    8077 /* Line 1806 of yacc.c  */
    8078 #line 2244 "parser.yy"
    8079     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7170#line 2244 "parser.yy" /* yacc.c:1646  */
     7171    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7172#line 7173 "Parser/parser.cc" /* yacc.c:1646  */
    80807173    break;
    80817174
    80827175  case 575:
    8083 
    8084 /* Line 1806 of yacc.c  */
    8085 #line 2246 "parser.yy"
    8086     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7176#line 2246 "parser.yy" /* yacc.c:1646  */
     7177    { (yyval.decl) = (yyvsp[-1].decl); }
     7178#line 7179 "Parser/parser.cc" /* yacc.c:1646  */
    80877179    break;
    80887180
    80897181  case 576:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2251 "parser.yy"
    8093     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7182#line 2251 "parser.yy" /* yacc.c:1646  */
     7183    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7184#line 7185 "Parser/parser.cc" /* yacc.c:1646  */
    80947185    break;
    80957186
    80967187  case 577:
    8097 
    8098 /* Line 1806 of yacc.c  */
    8099 #line 2253 "parser.yy"
    8100     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7188#line 2253 "parser.yy" /* yacc.c:1646  */
     7189    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7190#line 7191 "Parser/parser.cc" /* yacc.c:1646  */
    81017191    break;
    81027192
    81037193  case 578:
    8104 
    8105 /* Line 1806 of yacc.c  */
    8106 #line 2255 "parser.yy"
    8107     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7194#line 2255 "parser.yy" /* yacc.c:1646  */
     7195    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7196#line 7197 "Parser/parser.cc" /* yacc.c:1646  */
    81087197    break;
    81097198
    81107199  case 579:
    8111 
    8112 /* Line 1806 of yacc.c  */
    8113 #line 2257 "parser.yy"
    8114     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7200#line 2257 "parser.yy" /* yacc.c:1646  */
     7201    { (yyval.decl) = (yyvsp[-1].decl); }
     7202#line 7203 "Parser/parser.cc" /* yacc.c:1646  */
    81157203    break;
    81167204
    81177205  case 580:
    8118 
    8119 /* Line 1806 of yacc.c  */
    8120 #line 2262 "parser.yy"
    8121     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7206#line 2262 "parser.yy" /* yacc.c:1646  */
     7207    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7208#line 7209 "Parser/parser.cc" /* yacc.c:1646  */
    81227209    break;
    81237210
    81247211  case 581:
    8125 
    8126 /* Line 1806 of yacc.c  */
    8127 #line 2264 "parser.yy"
    8128     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7212#line 2264 "parser.yy" /* yacc.c:1646  */
     7213    { (yyval.decl) = (yyvsp[-1].decl); }
     7214#line 7215 "Parser/parser.cc" /* yacc.c:1646  */
    81297215    break;
    81307216
    81317217  case 582:
    8132 
    8133 /* Line 1806 of yacc.c  */
    8134 #line 2273 "parser.yy"
    8135     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7218#line 2273 "parser.yy" /* yacc.c:1646  */
     7219    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7220#line 7221 "Parser/parser.cc" /* yacc.c:1646  */
    81367221    break;
    81377222
    81387223  case 584:
    8139 
    8140 /* Line 1806 of yacc.c  */
    8141 #line 2276 "parser.yy"
    8142     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7224#line 2276 "parser.yy" /* yacc.c:1646  */
     7225    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7226#line 7227 "Parser/parser.cc" /* yacc.c:1646  */
    81437227    break;
    81447228
    81457229  case 585:
    8146 
    8147 /* Line 1806 of yacc.c  */
    8148 #line 2281 "parser.yy"
    8149     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7230#line 2281 "parser.yy" /* yacc.c:1646  */
     7231    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7232#line 7233 "Parser/parser.cc" /* yacc.c:1646  */
    81507233    break;
    81517234
    81527235  case 586:
    8153 
    8154 /* Line 1806 of yacc.c  */
    8155 #line 2283 "parser.yy"
    8156     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7236#line 2283 "parser.yy" /* yacc.c:1646  */
     7237    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7238#line 7239 "Parser/parser.cc" /* yacc.c:1646  */
    81577239    break;
    81587240
    81597241  case 587:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2285 "parser.yy"
    8163     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7242#line 2285 "parser.yy" /* yacc.c:1646  */
     7243    { (yyval.decl) = (yyvsp[-1].decl); }
     7244#line 7245 "Parser/parser.cc" /* yacc.c:1646  */
    81647245    break;
    81657246
    81667247  case 588:
    8167 
    8168 /* Line 1806 of yacc.c  */
    8169 #line 2290 "parser.yy"
    8170     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7248#line 2290 "parser.yy" /* yacc.c:1646  */
     7249    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7250#line 7251 "Parser/parser.cc" /* yacc.c:1646  */
    81717251    break;
    81727252
    81737253  case 589:
    8174 
    8175 /* Line 1806 of yacc.c  */
    8176 #line 2292 "parser.yy"
    8177     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7254#line 2292 "parser.yy" /* yacc.c:1646  */
     7255    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7256#line 7257 "Parser/parser.cc" /* yacc.c:1646  */
    81787257    break;
    81797258
    81807259  case 590:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2294 "parser.yy"
    8184     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7260#line 2294 "parser.yy" /* yacc.c:1646  */
     7261    { (yyval.decl) = (yyvsp[-1].decl); }
     7262#line 7263 "Parser/parser.cc" /* yacc.c:1646  */
    81857263    break;
    81867264
    81877265  case 591:
    8188 
    8189 /* Line 1806 of yacc.c  */
    8190 #line 2299 "parser.yy"
    8191     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7266#line 2299 "parser.yy" /* yacc.c:1646  */
     7267    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7268#line 7269 "Parser/parser.cc" /* yacc.c:1646  */
    81927269    break;
    81937270
    81947271  case 592:
    8195 
    8196 /* Line 1806 of yacc.c  */
    8197 #line 2301 "parser.yy"
    8198     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7272#line 2301 "parser.yy" /* yacc.c:1646  */
     7273    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7274#line 7275 "Parser/parser.cc" /* yacc.c:1646  */
    81997275    break;
    82007276
    82017277  case 593:
    8202 
    8203 /* Line 1806 of yacc.c  */
    8204 #line 2303 "parser.yy"
    8205     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7278#line 2303 "parser.yy" /* yacc.c:1646  */
     7279    { (yyval.decl) = (yyvsp[-1].decl); }
     7280#line 7281 "Parser/parser.cc" /* yacc.c:1646  */
    82067281    break;
    82077282
    82087283  case 597:
    8209 
    8210 /* Line 1806 of yacc.c  */
    8211 #line 2318 "parser.yy"
    8212     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     7284#line 2318 "parser.yy" /* yacc.c:1646  */
     7285    { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
     7286#line 7287 "Parser/parser.cc" /* yacc.c:1646  */
    82137287    break;
    82147288
    82157289  case 598:
    8216 
    8217 /* Line 1806 of yacc.c  */
    8218 #line 2320 "parser.yy"
    8219     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     7290#line 2320 "parser.yy" /* yacc.c:1646  */
     7291    { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
     7292#line 7293 "Parser/parser.cc" /* yacc.c:1646  */
    82207293    break;
    82217294
    82227295  case 599:
    8223 
    8224 /* Line 1806 of yacc.c  */
    8225 #line 2322 "parser.yy"
    8226     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7296#line 2322 "parser.yy" /* yacc.c:1646  */
     7297    { (yyval.decl) = (yyvsp[-1].decl); }
     7298#line 7299 "Parser/parser.cc" /* yacc.c:1646  */
    82277299    break;
    82287300
    82297301  case 600:
    8230 
    8231 /* Line 1806 of yacc.c  */
    8232 #line 2327 "parser.yy"
    8233     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7302#line 2327 "parser.yy" /* yacc.c:1646  */
     7303    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7304#line 7305 "Parser/parser.cc" /* yacc.c:1646  */
    82347305    break;
    82357306
    82367307  case 601:
    8237 
    8238 /* Line 1806 of yacc.c  */
    8239 #line 2329 "parser.yy"
    8240     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7308#line 2329 "parser.yy" /* yacc.c:1646  */
     7309    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7310#line 7311 "Parser/parser.cc" /* yacc.c:1646  */
    82417311    break;
    82427312
    82437313  case 602:
    8244 
    8245 /* Line 1806 of yacc.c  */
    8246 #line 2331 "parser.yy"
    8247     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7314#line 2331 "parser.yy" /* yacc.c:1646  */
     7315    { (yyval.decl) = (yyvsp[-1].decl); }
     7316#line 7317 "Parser/parser.cc" /* yacc.c:1646  */
    82487317    break;
    82497318
    82507319  case 603:
    8251 
    8252 /* Line 1806 of yacc.c  */
    8253 #line 2336 "parser.yy"
    8254     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7320#line 2336 "parser.yy" /* yacc.c:1646  */
     7321    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7322#line 7323 "Parser/parser.cc" /* yacc.c:1646  */
    82557323    break;
    82567324
    82577325  case 604:
    8258 
    8259 /* Line 1806 of yacc.c  */
    8260 #line 2338 "parser.yy"
    8261     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7326#line 2338 "parser.yy" /* yacc.c:1646  */
     7327    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7328#line 7329 "Parser/parser.cc" /* yacc.c:1646  */
    82627329    break;
    82637330
    82647331  case 605:
    8265 
    8266 /* Line 1806 of yacc.c  */
    8267 #line 2340 "parser.yy"
    8268     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7332#line 2340 "parser.yy" /* yacc.c:1646  */
     7333    { (yyval.decl) = (yyvsp[-1].decl); }
     7334#line 7335 "Parser/parser.cc" /* yacc.c:1646  */
    82697335    break;
    82707336
    82717337  case 606:
    8272 
    8273 /* Line 1806 of yacc.c  */
    8274 #line 2355 "parser.yy"
    8275     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7338#line 2355 "parser.yy" /* yacc.c:1646  */
     7339    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7340#line 7341 "Parser/parser.cc" /* yacc.c:1646  */
    82767341    break;
    82777342
    82787343  case 608:
    8279 
    8280 /* Line 1806 of yacc.c  */
    8281 #line 2358 "parser.yy"
    8282     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7344#line 2358 "parser.yy" /* yacc.c:1646  */
     7345    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7346#line 7347 "Parser/parser.cc" /* yacc.c:1646  */
    82837347    break;
    82847348
    82857349  case 609:
    8286 
    8287 /* Line 1806 of yacc.c  */
    8288 #line 2360 "parser.yy"
    8289     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7350#line 2360 "parser.yy" /* yacc.c:1646  */
     7351    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7352#line 7353 "Parser/parser.cc" /* yacc.c:1646  */
    82907353    break;
    82917354
    82927355  case 611:
    8293 
    8294 /* Line 1806 of yacc.c  */
    8295 #line 2366 "parser.yy"
    8296     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7356#line 2366 "parser.yy" /* yacc.c:1646  */
     7357    { (yyval.decl) = (yyvsp[-1].decl); }
     7358#line 7359 "Parser/parser.cc" /* yacc.c:1646  */
    82977359    break;
    82987360
    82997361  case 612:
    8300 
    8301 /* Line 1806 of yacc.c  */
    8302 #line 2371 "parser.yy"
    8303     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7362#line 2371 "parser.yy" /* yacc.c:1646  */
     7363    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7364#line 7365 "Parser/parser.cc" /* yacc.c:1646  */
    83047365    break;
    83057366
    83067367  case 613:
    8307 
    8308 /* Line 1806 of yacc.c  */
    8309 #line 2373 "parser.yy"
    8310     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7368#line 2373 "parser.yy" /* yacc.c:1646  */
     7369    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7370#line 7371 "Parser/parser.cc" /* yacc.c:1646  */
    83117371    break;
    83127372
    83137373  case 614:
    8314 
    8315 /* Line 1806 of yacc.c  */
    8316 #line 2375 "parser.yy"
    8317     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7374#line 2375 "parser.yy" /* yacc.c:1646  */
     7375    { (yyval.decl) = (yyvsp[-1].decl); }
     7376#line 7377 "Parser/parser.cc" /* yacc.c:1646  */
    83187377    break;
    83197378
    83207379  case 615:
    8321 
    8322 /* Line 1806 of yacc.c  */
    8323 #line 2380 "parser.yy"
    8324     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7380#line 2380 "parser.yy" /* yacc.c:1646  */
     7381    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7382#line 7383 "Parser/parser.cc" /* yacc.c:1646  */
    83257383    break;
    83267384
    83277385  case 616:
    8328 
    8329 /* Line 1806 of yacc.c  */
    8330 #line 2382 "parser.yy"
    8331     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7386#line 2382 "parser.yy" /* yacc.c:1646  */
     7387    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7388#line 7389 "Parser/parser.cc" /* yacc.c:1646  */
    83327389    break;
    83337390
    83347391  case 617:
    8335 
    8336 /* Line 1806 of yacc.c  */
    8337 #line 2384 "parser.yy"
    8338     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7392#line 2384 "parser.yy" /* yacc.c:1646  */
     7393    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7394#line 7395 "Parser/parser.cc" /* yacc.c:1646  */
    83397395    break;
    83407396
    83417397  case 618:
    8342 
    8343 /* Line 1806 of yacc.c  */
    8344 #line 2386 "parser.yy"
    8345     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7398#line 2386 "parser.yy" /* yacc.c:1646  */
     7399    { (yyval.decl) = (yyvsp[-1].decl); }
     7400#line 7401 "Parser/parser.cc" /* yacc.c:1646  */
    83467401    break;
    83477402
    83487403  case 619:
    8349 
    8350 /* Line 1806 of yacc.c  */
    8351 #line 2391 "parser.yy"
    8352     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7404#line 2391 "parser.yy" /* yacc.c:1646  */
     7405    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7406#line 7407 "Parser/parser.cc" /* yacc.c:1646  */
    83537407    break;
    83547408
    83557409  case 620:
    8356 
    8357 /* Line 1806 of yacc.c  */
    8358 #line 2393 "parser.yy"
    8359     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7410#line 2393 "parser.yy" /* yacc.c:1646  */
     7411    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7412#line 7413 "Parser/parser.cc" /* yacc.c:1646  */
    83607413    break;
    83617414
    83627415  case 621:
    8363 
    8364 /* Line 1806 of yacc.c  */
    8365 #line 2395 "parser.yy"
    8366     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7416#line 2395 "parser.yy" /* yacc.c:1646  */
     7417    { (yyval.decl) = (yyvsp[-1].decl); }
     7418#line 7419 "Parser/parser.cc" /* yacc.c:1646  */
    83677419    break;
    83687420
    83697421  case 622:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2405 "parser.yy"
    8373     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7422#line 2405 "parser.yy" /* yacc.c:1646  */
     7423    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7424#line 7425 "Parser/parser.cc" /* yacc.c:1646  */
    83747425    break;
    83757426
    83767427  case 624:
    8377 
    8378 /* Line 1806 of yacc.c  */
    8379 #line 2408 "parser.yy"
    8380     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7428#line 2408 "parser.yy" /* yacc.c:1646  */
     7429    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7430#line 7431 "Parser/parser.cc" /* yacc.c:1646  */
    83817431    break;
    83827432
    83837433  case 625:
    8384 
    8385 /* Line 1806 of yacc.c  */
    8386 #line 2410 "parser.yy"
    8387     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7434#line 2410 "parser.yy" /* yacc.c:1646  */
     7435    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7436#line 7437 "Parser/parser.cc" /* yacc.c:1646  */
    83887437    break;
    83897438
    83907439  case 626:
    8391 
    8392 /* Line 1806 of yacc.c  */
    8393 #line 2415 "parser.yy"
    8394     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7440#line 2415 "parser.yy" /* yacc.c:1646  */
     7441    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7442#line 7443 "Parser/parser.cc" /* yacc.c:1646  */
    83957443    break;
    83967444
    83977445  case 627:
    8398 
    8399 /* Line 1806 of yacc.c  */
    8400 #line 2417 "parser.yy"
    8401     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7446#line 2417 "parser.yy" /* yacc.c:1646  */
     7447    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7448#line 7449 "Parser/parser.cc" /* yacc.c:1646  */
    84027449    break;
    84037450
    84047451  case 628:
    8405 
    8406 /* Line 1806 of yacc.c  */
    8407 #line 2419 "parser.yy"
    8408     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7452#line 2419 "parser.yy" /* yacc.c:1646  */
     7453    { (yyval.decl) = (yyvsp[-1].decl); }
     7454#line 7455 "Parser/parser.cc" /* yacc.c:1646  */
    84097455    break;
    84107456
    84117457  case 629:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2424 "parser.yy"
    8415     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7458#line 2424 "parser.yy" /* yacc.c:1646  */
     7459    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7460#line 7461 "Parser/parser.cc" /* yacc.c:1646  */
    84167461    break;
    84177462
    84187463  case 630:
    8419 
    8420 /* Line 1806 of yacc.c  */
    8421 #line 2426 "parser.yy"
    8422     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7464#line 2426 "parser.yy" /* yacc.c:1646  */
     7465    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7466#line 7467 "Parser/parser.cc" /* yacc.c:1646  */
    84237467    break;
    84247468
    84257469  case 631:
    8426 
    8427 /* Line 1806 of yacc.c  */
    8428 #line 2428 "parser.yy"
    8429     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7470#line 2428 "parser.yy" /* yacc.c:1646  */
     7471    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7472#line 7473 "Parser/parser.cc" /* yacc.c:1646  */
    84307473    break;
    84317474
    84327475  case 632:
    8433 
    8434 /* Line 1806 of yacc.c  */
    8435 #line 2430 "parser.yy"
    8436     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7476#line 2430 "parser.yy" /* yacc.c:1646  */
     7477    { (yyval.decl) = (yyvsp[-1].decl); }
     7478#line 7479 "Parser/parser.cc" /* yacc.c:1646  */
    84377479    break;
    84387480
    84397481  case 633:
    8440 
    8441 /* Line 1806 of yacc.c  */
    8442 #line 2435 "parser.yy"
    8443     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7482#line 2435 "parser.yy" /* yacc.c:1646  */
     7483    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7484#line 7485 "Parser/parser.cc" /* yacc.c:1646  */
    84447485    break;
    84457486
    84467487  case 634:
    8447 
    8448 /* Line 1806 of yacc.c  */
    8449 #line 2437 "parser.yy"
    8450     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7488#line 2437 "parser.yy" /* yacc.c:1646  */
     7489    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7490#line 7491 "Parser/parser.cc" /* yacc.c:1646  */
    84517491    break;
    84527492
    84537493  case 635:
    8454 
    8455 /* Line 1806 of yacc.c  */
    8456 #line 2439 "parser.yy"
    8457     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7494#line 2439 "parser.yy" /* yacc.c:1646  */
     7495    { (yyval.decl) = (yyvsp[-1].decl); }
     7496#line 7497 "Parser/parser.cc" /* yacc.c:1646  */
    84587497    break;
    84597498
    84607499  case 636:
    8461 
    8462 /* Line 1806 of yacc.c  */
    8463 #line 2470 "parser.yy"
    8464     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7500#line 2470 "parser.yy" /* yacc.c:1646  */
     7501    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7502#line 7503 "Parser/parser.cc" /* yacc.c:1646  */
    84657503    break;
    84667504
    84677505  case 638:
    8468 
    8469 /* Line 1806 of yacc.c  */
    8470 #line 2473 "parser.yy"
    8471     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7506#line 2473 "parser.yy" /* yacc.c:1646  */
     7507    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7508#line 7509 "Parser/parser.cc" /* yacc.c:1646  */
    84727509    break;
    84737510
    84747511  case 639:
    8475 
    8476 /* Line 1806 of yacc.c  */
    8477 #line 2475 "parser.yy"
    8478     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7512#line 2475 "parser.yy" /* yacc.c:1646  */
     7513    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7514#line 7515 "Parser/parser.cc" /* yacc.c:1646  */
    84797515    break;
    84807516
    84817517  case 640:
    8482 
    8483 /* Line 1806 of yacc.c  */
    8484 #line 2480 "parser.yy"
    8485     {
    8486                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8487                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7518#line 2480 "parser.yy" /* yacc.c:1646  */
     7519    {
     7520                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7521                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    84887522                }
     7523#line 7524 "Parser/parser.cc" /* yacc.c:1646  */
    84897524    break;
    84907525
    84917526  case 641:
    8492 
    8493 /* Line 1806 of yacc.c  */
    8494 #line 2485 "parser.yy"
    8495     {
    8496                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8497                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7527#line 2485 "parser.yy" /* yacc.c:1646  */
     7528    {
     7529                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7530                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    84987531                }
     7532#line 7533 "Parser/parser.cc" /* yacc.c:1646  */
    84997533    break;
    85007534
    85017535  case 642:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2493 "parser.yy"
    8505     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7536#line 2493 "parser.yy" /* yacc.c:1646  */
     7537    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7538#line 7539 "Parser/parser.cc" /* yacc.c:1646  */
    85067539    break;
    85077540
    85087541  case 643:
    8509 
    8510 /* Line 1806 of yacc.c  */
    8511 #line 2495 "parser.yy"
    8512     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7542#line 2495 "parser.yy" /* yacc.c:1646  */
     7543    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7544#line 7545 "Parser/parser.cc" /* yacc.c:1646  */
    85137545    break;
    85147546
    85157547  case 644:
    8516 
    8517 /* Line 1806 of yacc.c  */
    8518 #line 2497 "parser.yy"
    8519     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7548#line 2497 "parser.yy" /* yacc.c:1646  */
     7549    { (yyval.decl) = (yyvsp[-1].decl); }
     7550#line 7551 "Parser/parser.cc" /* yacc.c:1646  */
    85207551    break;
    85217552
    85227553  case 645:
    8523 
    8524 /* Line 1806 of yacc.c  */
    8525 #line 2502 "parser.yy"
    8526     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7554#line 2502 "parser.yy" /* yacc.c:1646  */
     7555    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7556#line 7557 "Parser/parser.cc" /* yacc.c:1646  */
    85277557    break;
    85287558
    85297559  case 646:
    8530 
    8531 /* Line 1806 of yacc.c  */
    8532 #line 2504 "parser.yy"
    8533     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7560#line 2504 "parser.yy" /* yacc.c:1646  */
     7561    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7562#line 7563 "Parser/parser.cc" /* yacc.c:1646  */
    85347563    break;
    85357564
    85367565  case 647:
    8537 
    8538 /* Line 1806 of yacc.c  */
    8539 #line 2509 "parser.yy"
    8540     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     7566#line 2509 "parser.yy" /* yacc.c:1646  */
     7567    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7568#line 7569 "Parser/parser.cc" /* yacc.c:1646  */
    85417569    break;
    85427570
    85437571  case 648:
    8544 
    8545 /* Line 1806 of yacc.c  */
    8546 #line 2511 "parser.yy"
    8547     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7572#line 2511 "parser.yy" /* yacc.c:1646  */
     7573    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7574#line 7575 "Parser/parser.cc" /* yacc.c:1646  */
    85487575    break;
    85497576
    85507577  case 650:
    8551 
    8552 /* Line 1806 of yacc.c  */
    8553 #line 2526 "parser.yy"
    8554     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7578#line 2526 "parser.yy" /* yacc.c:1646  */
     7579    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7580#line 7581 "Parser/parser.cc" /* yacc.c:1646  */
    85557581    break;
    85567582
    85577583  case 651:
    8558 
    8559 /* Line 1806 of yacc.c  */
    8560 #line 2528 "parser.yy"
    8561     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7584#line 2528 "parser.yy" /* yacc.c:1646  */
     7585    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7586#line 7587 "Parser/parser.cc" /* yacc.c:1646  */
    85627587    break;
    85637588
    85647589  case 652:
    8565 
    8566 /* Line 1806 of yacc.c  */
    8567 #line 2533 "parser.yy"
     7590#line 2533 "parser.yy" /* yacc.c:1646  */
    85687591    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7592#line 7593 "Parser/parser.cc" /* yacc.c:1646  */
    85697593    break;
    85707594
    85717595  case 653:
    8572 
    8573 /* Line 1806 of yacc.c  */
    8574 #line 2535 "parser.yy"
    8575     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7596#line 2535 "parser.yy" /* yacc.c:1646  */
     7597    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7598#line 7599 "Parser/parser.cc" /* yacc.c:1646  */
    85767599    break;
    85777600
    85787601  case 654:
    8579 
    8580 /* Line 1806 of yacc.c  */
    8581 #line 2537 "parser.yy"
    8582     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7602#line 2537 "parser.yy" /* yacc.c:1646  */
     7603    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7604#line 7605 "Parser/parser.cc" /* yacc.c:1646  */
    85837605    break;
    85847606
    85857607  case 655:
    8586 
    8587 /* Line 1806 of yacc.c  */
    8588 #line 2539 "parser.yy"
    8589     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7608#line 2539 "parser.yy" /* yacc.c:1646  */
     7609    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7610#line 7611 "Parser/parser.cc" /* yacc.c:1646  */
    85907611    break;
    85917612
    85927613  case 656:
    8593 
    8594 /* Line 1806 of yacc.c  */
    8595 #line 2541 "parser.yy"
    8596     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7614#line 2541 "parser.yy" /* yacc.c:1646  */
     7615    { (yyval.decl) = (yyvsp[-1].decl); }
     7616#line 7617 "Parser/parser.cc" /* yacc.c:1646  */
    85977617    break;
    85987618
    85997619  case 658:
    8600 
    8601 /* Line 1806 of yacc.c  */
    8602 #line 2547 "parser.yy"
    8603     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7620#line 2547 "parser.yy" /* yacc.c:1646  */
     7621    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7622#line 7623 "Parser/parser.cc" /* yacc.c:1646  */
    86047623    break;
    86057624
    86067625  case 659:
    8607 
    8608 /* Line 1806 of yacc.c  */
    8609 #line 2549 "parser.yy"
    8610     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7626#line 2549 "parser.yy" /* yacc.c:1646  */
     7627    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7628#line 7629 "Parser/parser.cc" /* yacc.c:1646  */
    86117629    break;
    86127630
    86137631  case 660:
    8614 
    8615 /* Line 1806 of yacc.c  */
    8616 #line 2551 "parser.yy"
    8617     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7632#line 2551 "parser.yy" /* yacc.c:1646  */
     7633    { (yyval.decl) = (yyvsp[-1].decl); }
     7634#line 7635 "Parser/parser.cc" /* yacc.c:1646  */
    86187635    break;
    86197636
    86207637  case 661:
    8621 
    8622 /* Line 1806 of yacc.c  */
    8623 #line 2556 "parser.yy"
    8624     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     7638#line 2556 "parser.yy" /* yacc.c:1646  */
     7639    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); }
     7640#line 7641 "Parser/parser.cc" /* yacc.c:1646  */
    86257641    break;
    86267642
    86277643  case 662:
    8628 
    8629 /* Line 1806 of yacc.c  */
    8630 #line 2558 "parser.yy"
    8631     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7644#line 2558 "parser.yy" /* yacc.c:1646  */
     7645    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7646#line 7647 "Parser/parser.cc" /* yacc.c:1646  */
    86327647    break;
    86337648
    86347649  case 663:
    8635 
    8636 /* Line 1806 of yacc.c  */
    8637 #line 2560 "parser.yy"
    8638     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7650#line 2560 "parser.yy" /* yacc.c:1646  */
     7651    { (yyval.decl) = (yyvsp[-1].decl); }
     7652#line 7653 "Parser/parser.cc" /* yacc.c:1646  */
    86397653    break;
    86407654
    86417655  case 664:
    8642 
    8643 /* Line 1806 of yacc.c  */
    8644 #line 2566 "parser.yy"
     7656#line 2566 "parser.yy" /* yacc.c:1646  */
    86457657    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7658#line 7659 "Parser/parser.cc" /* yacc.c:1646  */
    86467659    break;
    86477660
    86487661  case 665:
    8649 
    8650 /* Line 1806 of yacc.c  */
    8651 #line 2568 "parser.yy"
    8652     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     7662#line 2568 "parser.yy" /* yacc.c:1646  */
     7663    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
     7664#line 7665 "Parser/parser.cc" /* yacc.c:1646  */
    86537665    break;
    86547666
    86557667  case 667:
    8656 
    8657 /* Line 1806 of yacc.c  */
    8658 #line 2574 "parser.yy"
    8659     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     7668#line 2574 "parser.yy" /* yacc.c:1646  */
     7669    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
     7670#line 7671 "Parser/parser.cc" /* yacc.c:1646  */
    86607671    break;
    86617672
    86627673  case 668:
    8663 
    8664 /* Line 1806 of yacc.c  */
    8665 #line 2576 "parser.yy"
     7674#line 2576 "parser.yy" /* yacc.c:1646  */
    86667675    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     7676#line 7677 "Parser/parser.cc" /* yacc.c:1646  */
    86677677    break;
    86687678
    86697679  case 669:
    8670 
    8671 /* Line 1806 of yacc.c  */
    8672 #line 2578 "parser.yy"
    8673     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     7680#line 2578 "parser.yy" /* yacc.c:1646  */
     7681    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
     7682#line 7683 "Parser/parser.cc" /* yacc.c:1646  */
    86747683    break;
    86757684
    86767685  case 670:
    8677 
    8678 /* Line 1806 of yacc.c  */
    8679 #line 2580 "parser.yy"
    8680     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7686#line 2580 "parser.yy" /* yacc.c:1646  */
     7687    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7688#line 7689 "Parser/parser.cc" /* yacc.c:1646  */
    86817689    break;
    86827690
    86837691  case 672:
    8684 
    8685 /* Line 1806 of yacc.c  */
    8686 #line 2595 "parser.yy"
    8687     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7692#line 2595 "parser.yy" /* yacc.c:1646  */
     7693    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7694#line 7695 "Parser/parser.cc" /* yacc.c:1646  */
    86887695    break;
    86897696
    86907697  case 673:
    8691 
    8692 /* Line 1806 of yacc.c  */
    8693 #line 2597 "parser.yy"
    8694     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7698#line 2597 "parser.yy" /* yacc.c:1646  */
     7699    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7700#line 7701 "Parser/parser.cc" /* yacc.c:1646  */
    86957701    break;
    86967702
    86977703  case 674:
    8698 
    8699 /* Line 1806 of yacc.c  */
    8700 #line 2602 "parser.yy"
     7704#line 2602 "parser.yy" /* yacc.c:1646  */
    87017705    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7706#line 7707 "Parser/parser.cc" /* yacc.c:1646  */
    87027707    break;
    87037708
    87047709  case 675:
    8705 
    8706 /* Line 1806 of yacc.c  */
    8707 #line 2604 "parser.yy"
    8708     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7710#line 2604 "parser.yy" /* yacc.c:1646  */
     7711    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7712#line 7713 "Parser/parser.cc" /* yacc.c:1646  */
    87097713    break;
    87107714
    87117715  case 676:
    8712 
    8713 /* Line 1806 of yacc.c  */
    8714 #line 2606 "parser.yy"
    8715     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7716#line 2606 "parser.yy" /* yacc.c:1646  */
     7717    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7718#line 7719 "Parser/parser.cc" /* yacc.c:1646  */
    87167719    break;
    87177720
    87187721  case 677:
    8719 
    8720 /* Line 1806 of yacc.c  */
    8721 #line 2608 "parser.yy"
    8722     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7722#line 2608 "parser.yy" /* yacc.c:1646  */
     7723    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7724#line 7725 "Parser/parser.cc" /* yacc.c:1646  */
    87237725    break;
    87247726
    87257727  case 678:
    8726 
    8727 /* Line 1806 of yacc.c  */
    8728 #line 2610 "parser.yy"
    8729     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7728#line 2610 "parser.yy" /* yacc.c:1646  */
     7729    { (yyval.decl) = (yyvsp[-1].decl); }
     7730#line 7731 "Parser/parser.cc" /* yacc.c:1646  */
    87307731    break;
    87317732
    87327733  case 680:
    8733 
    8734 /* Line 1806 of yacc.c  */
    8735 #line 2616 "parser.yy"
    8736     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7734#line 2616 "parser.yy" /* yacc.c:1646  */
     7735    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7736#line 7737 "Parser/parser.cc" /* yacc.c:1646  */
    87377737    break;
    87387738
    87397739  case 681:
    8740 
    8741 /* Line 1806 of yacc.c  */
    8742 #line 2618 "parser.yy"
    8743     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7740#line 2618 "parser.yy" /* yacc.c:1646  */
     7741    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7742#line 7743 "Parser/parser.cc" /* yacc.c:1646  */
    87447743    break;
    87457744
    87467745  case 682:
    8747 
    8748 /* Line 1806 of yacc.c  */
    8749 #line 2620 "parser.yy"
    8750     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7746#line 2620 "parser.yy" /* yacc.c:1646  */
     7747    { (yyval.decl) = (yyvsp[-1].decl); }
     7748#line 7749 "Parser/parser.cc" /* yacc.c:1646  */
    87517749    break;
    87527750
    87537751  case 683:
    8754 
    8755 /* Line 1806 of yacc.c  */
    8756 #line 2625 "parser.yy"
    8757     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     7752#line 2625 "parser.yy" /* yacc.c:1646  */
     7753    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); }
     7754#line 7755 "Parser/parser.cc" /* yacc.c:1646  */
    87587755    break;
    87597756
    87607757  case 684:
    8761 
    8762 /* Line 1806 of yacc.c  */
    8763 #line 2627 "parser.yy"
    8764     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7758#line 2627 "parser.yy" /* yacc.c:1646  */
     7759    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7760#line 7761 "Parser/parser.cc" /* yacc.c:1646  */
    87657761    break;
    87667762
    87677763  case 685:
    8768 
    8769 /* Line 1806 of yacc.c  */
    8770 #line 2629 "parser.yy"
    8771     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7764#line 2629 "parser.yy" /* yacc.c:1646  */
     7765    { (yyval.decl) = (yyvsp[-1].decl); }
     7766#line 7767 "Parser/parser.cc" /* yacc.c:1646  */
    87727767    break;
    87737768
    87747769  case 687:
    8775 
    8776 /* Line 1806 of yacc.c  */
    8777 #line 2636 "parser.yy"
    8778     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7770#line 2636 "parser.yy" /* yacc.c:1646  */
     7771    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7772#line 7773 "Parser/parser.cc" /* yacc.c:1646  */
    87797773    break;
    87807774
    87817775  case 689:
    8782 
    8783 /* Line 1806 of yacc.c  */
    8784 #line 2647 "parser.yy"
     7776#line 2647 "parser.yy" /* yacc.c:1646  */
    87857777    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7778#line 7779 "Parser/parser.cc" /* yacc.c:1646  */
    87867779    break;
    87877780
    87887781  case 690:
    8789 
    8790 /* Line 1806 of yacc.c  */
    8791 #line 2650 "parser.yy"
    8792     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7782#line 2650 "parser.yy" /* yacc.c:1646  */
     7783    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7784#line 7785 "Parser/parser.cc" /* yacc.c:1646  */
    87937785    break;
    87947786
    87957787  case 691:
    8796 
    8797 /* Line 1806 of yacc.c  */
    8798 #line 2652 "parser.yy"
    8799     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     7788#line 2652 "parser.yy" /* yacc.c:1646  */
     7789    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
     7790#line 7791 "Parser/parser.cc" /* yacc.c:1646  */
    88007791    break;
    88017792
    88027793  case 692:
    8803 
    8804 /* Line 1806 of yacc.c  */
    8805 #line 2655 "parser.yy"
    8806     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7794#line 2655 "parser.yy" /* yacc.c:1646  */
     7795    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7796#line 7797 "Parser/parser.cc" /* yacc.c:1646  */
    88077797    break;
    88087798
    88097799  case 693:
    8810 
    8811 /* Line 1806 of yacc.c  */
    8812 #line 2657 "parser.yy"
    8813     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     7800#line 2657 "parser.yy" /* yacc.c:1646  */
     7801    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     7802#line 7803 "Parser/parser.cc" /* yacc.c:1646  */
    88147803    break;
    88157804
    88167805  case 694:
    8817 
    8818 /* Line 1806 of yacc.c  */
    8819 #line 2659 "parser.yy"
    8820     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     7806#line 2659 "parser.yy" /* yacc.c:1646  */
     7807    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
     7808#line 7809 "Parser/parser.cc" /* yacc.c:1646  */
    88217809    break;
    88227810
    88237811  case 696:
    8824 
    8825 /* Line 1806 of yacc.c  */
    8826 #line 2673 "parser.yy"
    8827     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7812#line 2673 "parser.yy" /* yacc.c:1646  */
     7813    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7814#line 7815 "Parser/parser.cc" /* yacc.c:1646  */
    88287815    break;
    88297816
    88307817  case 697:
    8831 
    8832 /* Line 1806 of yacc.c  */
    8833 #line 2675 "parser.yy"
    8834     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7818#line 2675 "parser.yy" /* yacc.c:1646  */
     7819    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7820#line 7821 "Parser/parser.cc" /* yacc.c:1646  */
    88357821    break;
    88367822
    88377823  case 698:
    8838 
    8839 /* Line 1806 of yacc.c  */
    8840 #line 2680 "parser.yy"
     7824#line 2680 "parser.yy" /* yacc.c:1646  */
    88417825    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7826#line 7827 "Parser/parser.cc" /* yacc.c:1646  */
    88427827    break;
    88437828
    88447829  case 699:
    8845 
    8846 /* Line 1806 of yacc.c  */
    8847 #line 2682 "parser.yy"
    8848     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7830#line 2682 "parser.yy" /* yacc.c:1646  */
     7831    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7832#line 7833 "Parser/parser.cc" /* yacc.c:1646  */
    88497833    break;
    88507834
    88517835  case 700:
    8852 
    8853 /* Line 1806 of yacc.c  */
    8854 #line 2684 "parser.yy"
    8855     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7836#line 2684 "parser.yy" /* yacc.c:1646  */
     7837    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7838#line 7839 "Parser/parser.cc" /* yacc.c:1646  */
    88567839    break;
    88577840
    88587841  case 701:
    8859 
    8860 /* Line 1806 of yacc.c  */
    8861 #line 2686 "parser.yy"
    8862     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7842#line 2686 "parser.yy" /* yacc.c:1646  */
     7843    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7844#line 7845 "Parser/parser.cc" /* yacc.c:1646  */
    88637845    break;
    88647846
    88657847  case 702:
    8866 
    8867 /* Line 1806 of yacc.c  */
    8868 #line 2688 "parser.yy"
    8869     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7848#line 2688 "parser.yy" /* yacc.c:1646  */
     7849    { (yyval.decl) = (yyvsp[-1].decl); }
     7850#line 7851 "Parser/parser.cc" /* yacc.c:1646  */
    88707851    break;
    88717852
    88727853  case 704:
    8873 
    8874 /* Line 1806 of yacc.c  */
    8875 #line 2694 "parser.yy"
    8876     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7854#line 2694 "parser.yy" /* yacc.c:1646  */
     7855    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7856#line 7857 "Parser/parser.cc" /* yacc.c:1646  */
    88777857    break;
    88787858
    88797859  case 705:
    8880 
    8881 /* Line 1806 of yacc.c  */
    8882 #line 2696 "parser.yy"
    8883     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7860#line 2696 "parser.yy" /* yacc.c:1646  */
     7861    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7862#line 7863 "Parser/parser.cc" /* yacc.c:1646  */
    88847863    break;
    88857864
    88867865  case 706:
    8887 
    8888 /* Line 1806 of yacc.c  */
    8889 #line 2698 "parser.yy"
    8890     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7866#line 2698 "parser.yy" /* yacc.c:1646  */
     7867    { (yyval.decl) = (yyvsp[-1].decl); }
     7868#line 7869 "Parser/parser.cc" /* yacc.c:1646  */
    88917869    break;
    88927870
    88937871  case 707:
    8894 
    8895 /* Line 1806 of yacc.c  */
    8896 #line 2703 "parser.yy"
    8897     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7872#line 2703 "parser.yy" /* yacc.c:1646  */
     7873    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7874#line 7875 "Parser/parser.cc" /* yacc.c:1646  */
    88987875    break;
    88997876
    89007877  case 708:
    8901 
    8902 /* Line 1806 of yacc.c  */
    8903 #line 2705 "parser.yy"
    8904     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7878#line 2705 "parser.yy" /* yacc.c:1646  */
     7879    { (yyval.decl) = (yyvsp[-1].decl); }
     7880#line 7881 "Parser/parser.cc" /* yacc.c:1646  */
    89057881    break;
    89067882
    89077883  case 711:
    8908 
    8909 /* Line 1806 of yacc.c  */
    8910 #line 2715 "parser.yy"
    8911     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7884#line 2715 "parser.yy" /* yacc.c:1646  */
     7885    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7886#line 7887 "Parser/parser.cc" /* yacc.c:1646  */
    89127887    break;
    89137888
    89147889  case 714:
    8915 
    8916 /* Line 1806 of yacc.c  */
    8917 #line 2725 "parser.yy"
    8918     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7890#line 2725 "parser.yy" /* yacc.c:1646  */
     7891    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7892#line 7893 "Parser/parser.cc" /* yacc.c:1646  */
    89197893    break;
    89207894
    89217895  case 715:
    8922 
    8923 /* Line 1806 of yacc.c  */
    8924 #line 2727 "parser.yy"
    8925     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7896#line 2727 "parser.yy" /* yacc.c:1646  */
     7897    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7898#line 7899 "Parser/parser.cc" /* yacc.c:1646  */
    89267899    break;
    89277900
    89287901  case 716:
    8929 
    8930 /* Line 1806 of yacc.c  */
    8931 #line 2729 "parser.yy"
    8932     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7902#line 2729 "parser.yy" /* yacc.c:1646  */
     7903    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7904#line 7905 "Parser/parser.cc" /* yacc.c:1646  */
    89337905    break;
    89347906
    89357907  case 717:
    8936 
    8937 /* Line 1806 of yacc.c  */
    8938 #line 2731 "parser.yy"
    8939     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7908#line 2731 "parser.yy" /* yacc.c:1646  */
     7909    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7910#line 7911 "Parser/parser.cc" /* yacc.c:1646  */
    89407911    break;
    89417912
    89427913  case 718:
    8943 
    8944 /* Line 1806 of yacc.c  */
    8945 #line 2733 "parser.yy"
    8946     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7914#line 2733 "parser.yy" /* yacc.c:1646  */
     7915    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7916#line 7917 "Parser/parser.cc" /* yacc.c:1646  */
    89477917    break;
    89487918
    89497919  case 719:
    8950 
    8951 /* Line 1806 of yacc.c  */
    8952 #line 2735 "parser.yy"
    8953     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7920#line 2735 "parser.yy" /* yacc.c:1646  */
     7921    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7922#line 7923 "Parser/parser.cc" /* yacc.c:1646  */
    89547923    break;
    89557924
    89567925  case 720:
    8957 
    8958 /* Line 1806 of yacc.c  */
    8959 #line 2742 "parser.yy"
    8960     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7926#line 2742 "parser.yy" /* yacc.c:1646  */
     7927    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7928#line 7929 "Parser/parser.cc" /* yacc.c:1646  */
    89617929    break;
    89627930
    89637931  case 721:
    8964 
    8965 /* Line 1806 of yacc.c  */
    8966 #line 2744 "parser.yy"
    8967     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7932#line 2744 "parser.yy" /* yacc.c:1646  */
     7933    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7934#line 7935 "Parser/parser.cc" /* yacc.c:1646  */
    89687935    break;
    89697936
    89707937  case 722:
    8971 
    8972 /* Line 1806 of yacc.c  */
    8973 #line 2746 "parser.yy"
    8974     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7938#line 2746 "parser.yy" /* yacc.c:1646  */
     7939    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7940#line 7941 "Parser/parser.cc" /* yacc.c:1646  */
    89757941    break;
    89767942
    89777943  case 723:
    8978 
    8979 /* Line 1806 of yacc.c  */
    8980 #line 2748 "parser.yy"
    8981     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7944#line 2748 "parser.yy" /* yacc.c:1646  */
     7945    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7946#line 7947 "Parser/parser.cc" /* yacc.c:1646  */
    89827947    break;
    89837948
    89847949  case 724:
    8985 
    8986 /* Line 1806 of yacc.c  */
    8987 #line 2750 "parser.yy"
    8988     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7950#line 2750 "parser.yy" /* yacc.c:1646  */
     7951    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7952#line 7953 "Parser/parser.cc" /* yacc.c:1646  */
    89897953    break;
    89907954
    89917955  case 725:
    8992 
    8993 /* Line 1806 of yacc.c  */
    8994 #line 2753 "parser.yy"
    8995     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7956#line 2753 "parser.yy" /* yacc.c:1646  */
     7957    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7958#line 7959 "Parser/parser.cc" /* yacc.c:1646  */
    89967959    break;
    89977960
    89987961  case 726:
    8999 
    9000 /* Line 1806 of yacc.c  */
    9001 #line 2755 "parser.yy"
    9002     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7962#line 2755 "parser.yy" /* yacc.c:1646  */
     7963    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7964#line 7965 "Parser/parser.cc" /* yacc.c:1646  */
    90037965    break;
    90047966
    90057967  case 727:
    9006 
    9007 /* Line 1806 of yacc.c  */
    9008 #line 2757 "parser.yy"
    9009     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7968#line 2757 "parser.yy" /* yacc.c:1646  */
     7969    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7970#line 7971 "Parser/parser.cc" /* yacc.c:1646  */
    90107971    break;
    90117972
    90127973  case 728:
    9013 
    9014 /* Line 1806 of yacc.c  */
    9015 #line 2759 "parser.yy"
    9016     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7974#line 2759 "parser.yy" /* yacc.c:1646  */
     7975    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7976#line 7977 "Parser/parser.cc" /* yacc.c:1646  */
    90177977    break;
    90187978
    90197979  case 729:
    9020 
    9021 /* Line 1806 of yacc.c  */
    9022 #line 2761 "parser.yy"
    9023     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7980#line 2761 "parser.yy" /* yacc.c:1646  */
     7981    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7982#line 7983 "Parser/parser.cc" /* yacc.c:1646  */
    90247983    break;
    90257984
    90267985  case 730:
    9027 
    9028 /* Line 1806 of yacc.c  */
    9029 #line 2766 "parser.yy"
    9030     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7986#line 2766 "parser.yy" /* yacc.c:1646  */
     7987    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7988#line 7989 "Parser/parser.cc" /* yacc.c:1646  */
    90317989    break;
    90327990
    90337991  case 731:
    9034 
    9035 /* Line 1806 of yacc.c  */
    9036 #line 2768 "parser.yy"
    9037     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7992#line 2768 "parser.yy" /* yacc.c:1646  */
     7993    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7994#line 7995 "Parser/parser.cc" /* yacc.c:1646  */
    90387995    break;
    90397996
    90407997  case 732:
    9041 
    9042 /* Line 1806 of yacc.c  */
    9043 #line 2773 "parser.yy"
    9044     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     7998#line 2773 "parser.yy" /* yacc.c:1646  */
     7999    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     8000#line 8001 "Parser/parser.cc" /* yacc.c:1646  */
    90458001    break;
    90468002
    90478003  case 733:
    9048 
    9049 /* Line 1806 of yacc.c  */
    9050 #line 2775 "parser.yy"
    9051     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     8004#line 2775 "parser.yy" /* yacc.c:1646  */
     8005    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
     8006#line 8007 "Parser/parser.cc" /* yacc.c:1646  */
    90528007    break;
    90538008
    90548009  case 735:
    9055 
    9056 /* Line 1806 of yacc.c  */
    9057 #line 2802 "parser.yy"
    9058     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8010#line 2802 "parser.yy" /* yacc.c:1646  */
     8011    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     8012#line 8013 "Parser/parser.cc" /* yacc.c:1646  */
    90598013    break;
    90608014
    90618015  case 739:
    9062 
    9063 /* Line 1806 of yacc.c  */
    9064 #line 2813 "parser.yy"
    9065     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8016#line 2813 "parser.yy" /* yacc.c:1646  */
     8017    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8018#line 8019 "Parser/parser.cc" /* yacc.c:1646  */
    90668019    break;
    90678020
    90688021  case 740:
    9069 
    9070 /* Line 1806 of yacc.c  */
    9071 #line 2815 "parser.yy"
    9072     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8022#line 2815 "parser.yy" /* yacc.c:1646  */
     8023    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8024#line 8025 "Parser/parser.cc" /* yacc.c:1646  */
    90738025    break;
    90748026
    90758027  case 741:
    9076 
    9077 /* Line 1806 of yacc.c  */
    9078 #line 2817 "parser.yy"
    9079     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8028#line 2817 "parser.yy" /* yacc.c:1646  */
     8029    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8030#line 8031 "Parser/parser.cc" /* yacc.c:1646  */
    90808031    break;
    90818032
    90828033  case 742:
    9083 
    9084 /* Line 1806 of yacc.c  */
    9085 #line 2819 "parser.yy"
    9086     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8034#line 2819 "parser.yy" /* yacc.c:1646  */
     8035    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8036#line 8037 "Parser/parser.cc" /* yacc.c:1646  */
    90878037    break;
    90888038
    90898039  case 743:
    9090 
    9091 /* Line 1806 of yacc.c  */
    9092 #line 2821 "parser.yy"
    9093     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8040#line 2821 "parser.yy" /* yacc.c:1646  */
     8041    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8042#line 8043 "Parser/parser.cc" /* yacc.c:1646  */
    90948043    break;
    90958044
    90968045  case 744:
    9097 
    9098 /* Line 1806 of yacc.c  */
    9099 #line 2823 "parser.yy"
    9100     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8046#line 2823 "parser.yy" /* yacc.c:1646  */
     8047    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8048#line 8049 "Parser/parser.cc" /* yacc.c:1646  */
    91018049    break;
    91028050
    91038051  case 745:
    9104 
    9105 /* Line 1806 of yacc.c  */
    9106 #line 2830 "parser.yy"
    9107     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8052#line 2830 "parser.yy" /* yacc.c:1646  */
     8053    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8054#line 8055 "Parser/parser.cc" /* yacc.c:1646  */
    91088055    break;
    91098056
    91108057  case 746:
    9111 
    9112 /* Line 1806 of yacc.c  */
    9113 #line 2832 "parser.yy"
    9114     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8058#line 2832 "parser.yy" /* yacc.c:1646  */
     8059    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8060#line 8061 "Parser/parser.cc" /* yacc.c:1646  */
    91158061    break;
    91168062
    91178063  case 747:
    9118 
    9119 /* Line 1806 of yacc.c  */
    9120 #line 2834 "parser.yy"
    9121     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8064#line 2834 "parser.yy" /* yacc.c:1646  */
     8065    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8066#line 8067 "Parser/parser.cc" /* yacc.c:1646  */
    91228067    break;
    91238068
    91248069  case 748:
    9125 
    9126 /* Line 1806 of yacc.c  */
    9127 #line 2836 "parser.yy"
    9128     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8070#line 2836 "parser.yy" /* yacc.c:1646  */
     8071    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8072#line 8073 "Parser/parser.cc" /* yacc.c:1646  */
    91298073    break;
    91308074
    91318075  case 749:
    9132 
    9133 /* Line 1806 of yacc.c  */
    9134 #line 2838 "parser.yy"
    9135     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8076#line 2838 "parser.yy" /* yacc.c:1646  */
     8077    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     8078#line 8079 "Parser/parser.cc" /* yacc.c:1646  */
    91368079    break;
    91378080
    91388081  case 750:
    9139 
    9140 /* Line 1806 of yacc.c  */
    9141 #line 2840 "parser.yy"
    9142     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8082#line 2840 "parser.yy" /* yacc.c:1646  */
     8083    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8084#line 8085 "Parser/parser.cc" /* yacc.c:1646  */
    91438085    break;
    91448086
    91458087  case 751:
    9146 
    9147 /* Line 1806 of yacc.c  */
    9148 #line 2845 "parser.yy"
    9149     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     8088#line 2845 "parser.yy" /* yacc.c:1646  */
     8089    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     8090#line 8091 "Parser/parser.cc" /* yacc.c:1646  */
    91508091    break;
    91518092
    91528093  case 752:
    9153 
    9154 /* Line 1806 of yacc.c  */
    9155 #line 2852 "parser.yy"
    9156     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     8094#line 2852 "parser.yy" /* yacc.c:1646  */
     8095    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); }
     8096#line 8097 "Parser/parser.cc" /* yacc.c:1646  */
    91578097    break;
    91588098
    91598099  case 753:
    9160 
    9161 /* Line 1806 of yacc.c  */
    9162 #line 2854 "parser.yy"
    9163     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     8100#line 2854 "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  */
    91648103    break;
    91658104
    91668105  case 756:
    9167 
    9168 /* Line 1806 of yacc.c  */
    9169 #line 2878 "parser.yy"
     8106#line 2878 "parser.yy" /* yacc.c:1646  */
    91708107    { (yyval.en) = 0; }
     8108#line 8109 "Parser/parser.cc" /* yacc.c:1646  */
    91718109    break;
    91728110
    91738111  case 757:
    9174 
    9175 /* Line 1806 of yacc.c  */
    9176 #line 2880 "parser.yy"
    9177     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    9178     break;
    9179 
    9180 
    9181 
    9182 /* Line 1806 of yacc.c  */
    9183 #line 9184 "Parser/parser.cc"
     8112#line 2880 "parser.yy" /* yacc.c:1646  */
     8113    { (yyval.en) = (yyvsp[0].en); }
     8114#line 8115 "Parser/parser.cc" /* yacc.c:1646  */
     8115    break;
     8116
     8117
     8118#line 8119 "Parser/parser.cc" /* yacc.c:1646  */
    91848119      default: break;
    91858120    }
     
    92038138  *++yyvsp = yyval;
    92048139
    9205   /* Now `shift' the result of the reduction.  Determine what state
     8140  /* Now 'shift' the result of the reduction.  Determine what state
    92068141     that goes to, based on the state we popped back to and the rule
    92078142     number reduced by.  */
     
    92188153
    92198154
    9220 /*------------------------------------.
    9221 | yyerrlab -- here on detecting error |
    9222 `------------------------------------*/
     8155/*--------------------------------------.
     8156| yyerrlab -- here on detecting error. |
     8157`--------------------------------------*/
    92238158yyerrlab:
    92248159  /* Make sure we have latest lookahead translation.  See comments at
     
    92718206    {
    92728207      /* If just tried and failed to reuse lookahead token after an
    9273         error, discard it.  */
     8208        error, discard it.  */
    92748209
    92758210      if (yychar <= YYEOF)
    9276         {
    9277           /* Return failure if at end of input.  */
    9278           if (yychar == YYEOF)
    9279             YYABORT;
    9280         }
     8211        {
     8212          /* Return failure if at end of input.  */
     8213          if (yychar == YYEOF)
     8214            YYABORT;
     8215        }
    92818216      else
    9282         {
    9283           yydestruct ("Error: discarding",
    9284                       yytoken, &yylval);
    9285           yychar = YYEMPTY;
    9286         }
     8217        {
     8218          yydestruct ("Error: discarding",
     8219                      yytoken, &yylval);
     8220          yychar = YYEMPTY;
     8221        }
    92878222    }
    92888223
     
    93038238     goto yyerrorlab;
    93048239
    9305   /* Do not reclaim the symbols of the rule which action triggered
     8240  /* Do not reclaim the symbols of the rule whose action triggered
    93068241     this YYERROR.  */
    93078242  YYPOPSTACK (yylen);
     
    93168251`-------------------------------------------------------------*/
    93178252yyerrlab1:
    9318   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     8253  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    93198254
    93208255  for (;;)
     
    93228257      yyn = yypact[yystate];
    93238258      if (!yypact_value_is_default (yyn))
    9324         {
    9325           yyn += YYTERROR;
    9326           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    9327             {
    9328               yyn = yytable[yyn];
    9329               if (0 < yyn)
    9330                 break;
    9331             }
    9332         }
     8259        {
     8260          yyn += YYTERROR;
     8261          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     8262            {
     8263              yyn = yytable[yyn];
     8264              if (0 < yyn)
     8265                break;
     8266            }
     8267        }
    93338268
    93348269      /* Pop the current state because it cannot handle the error token.  */
    93358270      if (yyssp == yyss)
    9336         YYABORT;
     8271        YYABORT;
    93378272
    93388273
    93398274      yydestruct ("Error: popping",
    9340                   yystos[yystate], yyvsp);
     8275                  yystos[yystate], yyvsp);
    93418276      YYPOPSTACK (1);
    93428277      yystate = *yyssp;
     
    93448279    }
    93458280
     8281  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    93468282  *++yyvsp = yylval;
     8283  YY_IGNORE_MAYBE_UNINITIALIZED_END
    93478284
    93488285
     
    93688305  goto yyreturn;
    93698306
    9370 #if !defined(yyoverflow) || YYERROR_VERBOSE
     8307#if !defined yyoverflow || YYERROR_VERBOSE
    93718308/*-------------------------------------------------.
    93728309| yyexhaustedlab -- memory exhaustion comes here.  |
     
    93878324                  yytoken, &yylval);
    93888325    }
    9389   /* Do not reclaim the symbols of the rule which action triggered
     8326  /* Do not reclaim the symbols of the rule whose action triggered
    93908327     this YYABORT or YYACCEPT.  */
    93918328  YYPOPSTACK (yylen);
     
    93948331    {
    93958332      yydestruct ("Cleanup: popping",
    9396                   yystos[*yyssp], yyvsp);
     8333                  yystos[*yyssp], yyvsp);
    93978334      YYPOPSTACK (1);
    93988335    }
     
    94058342    YYSTACK_FREE (yymsg);
    94068343#endif
    9407   /* Make sure YYID is used.  */
    9408   return YYID (yyresult);
     8344  return yyresult;
    94098345}
    9410 
    9411 
    9412 
    9413 /* Line 2067 of yacc.c  */
    9414 #line 2883 "parser.yy"
     8346#line 2883 "parser.yy" /* yacc.c:1906  */
    94158347
    94168348// ----end of grammar----
     
    94318363// compile-command: "make install" //
    94328364// End: //
    9433 
  • src/Parser/parser.h

    r8e5724e r148f7290  
    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

    r8e5724e r148f7290  
    14111411                { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    14121412        | ZERO_T
    1413                 { $$ = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     1413                { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
    14141414        | ONE_T
    1415                 { $$ = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     1415                { $$ = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
    14161416        ;
    14171417
Note: See TracChangeset for help on using the changeset viewer.