Changeset 148f729


Ignore:
Timestamp:
Nov 30, 2016, 10:46:41 AM (5 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, 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 r148f729  
    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 r148f729  
    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 r148f729  
    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 r148f729  
    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 r148f729  
    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:164