Changeset 50c5cf3


Ignore:
Timestamp:
Sep 14, 2016, 2:14:43 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
101e0bd, 1eba452
Parents:
cb2b15c (diff), 4c1403c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src
Files:
1 added
19 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    rcb2b15c r50c5cf3  
    1 /* A Bison parser, made by GNU Bison 2.5.  */
     1/* A Bison parser, made by GNU Bison 3.0.2.  */
    22
    33/* Bison implementation for Yacc-like parsers in C
    4    
    5       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    6    
     4
     5   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
     6
    77   This program is free software: you can redistribute it and/or modify
    88   it under the terms of the GNU General Public License as published by
    99   the Free Software Foundation, either version 3 of the License, or
    1010   (at your option) any later version.
    11    
     11
    1212   This program is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1515   GNU General Public License for more details.
    16    
     16
    1717   You should have received a copy of the GNU General Public License
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     
    2727   Bison output files to be licensed under the GNU General Public
    2828   License without this special exception.
    29    
     29
    3030   This special exception was added by the Free Software Foundation in
    3131   version 2.2 of Bison.  */
     
    4545
    4646/* Bison version.  */
    47 #define YYBISON_VERSION "2.5"
     47#define YYBISON_VERSION "3.0.2"
    4848
    4949/* Skeleton name.  */
     
    5959#define YYPULL 1
    6060
    61 /* Using locations.  */
    62 #define YYLSP_NEEDED 0
    6361
    6462
    6563
    6664/* Copy the first part of user declarations.  */
    67 
    68 /* Line 268 of yacc.c  */
    69 #line 42 "parser.yy"
     65#line 42 "parser.yy" /* yacc.c:339  */
    7066
    7167#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    9490} // appendStr
    9591
    96 
    97 /* Line 268 of yacc.c  */
    98 #line 99 "Parser/parser.cc"
    99 
    100 /* Enabling traces.  */
    101 #ifndef YYDEBUG
    102 # define YYDEBUG 1
    103 #endif
     92#line 93 "Parser/parser.cc" /* yacc.c:339  */
     93
     94# ifndef YY_NULLPTR
     95#  if defined __cplusplus && 201103L <= __cplusplus
     96#   define YY_NULLPTR nullptr
     97#  else
     98#   define YY_NULLPTR 0
     99#  endif
     100# endif
    104101
    105102/* Enabling verbose error messages.  */
     
    111108#endif
    112109
    113 /* Enabling the token table.  */
    114 #ifndef YYTOKEN_TABLE
    115 # define YYTOKEN_TABLE 0
     110/* In a future release of Bison, this section will be replaced
     111   by #include "y.tab.h".  */
     112#ifndef YY_YY_Y_TAB_H_INCLUDED
     113# define YY_YY_Y_TAB_H_INCLUDED
     114/* Debug traces.  */
     115#ifndef YYDEBUG
     116# define YYDEBUG 1
    116117#endif
    117 
    118 
    119 /* Tokens.  */
     118#if YYDEBUG
     119extern int yydebug;
     120#endif
     121
     122/* Token type.  */
    120123#ifndef YYTOKENTYPE
    121124# define YYTOKENTYPE
    122    /* Put the tokens into the symbol table, so that GDB and other debuggers
    123       know about them.  */
    124    enum yytokentype {
    125      TYPEDEF = 258,
    126      AUTO = 259,
    127      EXTERN = 260,
    128      REGISTER = 261,
    129      STATIC = 262,
    130      INLINE = 263,
    131      FORTRAN = 264,
    132      CONST = 265,
    133      VOLATILE = 266,
    134      RESTRICT = 267,
    135      FORALL = 268,
    136      LVALUE = 269,
    137      VOID = 270,
    138      CHAR = 271,
    139      SHORT = 272,
    140      INT = 273,
    141      LONG = 274,
    142      FLOAT = 275,
    143      DOUBLE = 276,
    144      SIGNED = 277,
    145      UNSIGNED = 278,
    146      VALIST = 279,
    147      BOOL = 280,
    148      COMPLEX = 281,
    149      IMAGINARY = 282,
    150      TYPEOF = 283,
    151      LABEL = 284,
    152      ENUM = 285,
    153      STRUCT = 286,
    154      UNION = 287,
    155      OTYPE = 288,
    156      FTYPE = 289,
    157      DTYPE = 290,
    158      TRAIT = 291,
    159      SIZEOF = 292,
    160      OFFSETOF = 293,
    161      ATTRIBUTE = 294,
    162      EXTENSION = 295,
    163      IF = 296,
    164      ELSE = 297,
    165      SWITCH = 298,
    166      CASE = 299,
    167      DEFAULT = 300,
    168      DO = 301,
    169      WHILE = 302,
    170      FOR = 303,
    171      BREAK = 304,
    172      CONTINUE = 305,
    173      GOTO = 306,
    174      RETURN = 307,
    175      CHOOSE = 308,
    176      DISABLE = 309,
    177      ENABLE = 310,
    178      FALLTHRU = 311,
    179      TRY = 312,
    180      CATCH = 313,
    181      CATCHRESUME = 314,
    182      FINALLY = 315,
    183      THROW = 316,
    184      THROWRESUME = 317,
    185      AT = 318,
    186      ASM = 319,
    187      ALIGNAS = 320,
    188      ALIGNOF = 321,
    189      ATOMIC = 322,
    190      GENERIC = 323,
    191      NORETURN = 324,
    192      STATICASSERT = 325,
    193      THREADLOCAL = 326,
    194      IDENTIFIER = 327,
    195      QUOTED_IDENTIFIER = 328,
    196      TYPEDEFname = 329,
    197      TYPEGENname = 330,
    198      ATTR_IDENTIFIER = 331,
    199      ATTR_TYPEDEFname = 332,
    200      ATTR_TYPEGENname = 333,
    201      INTEGERconstant = 334,
    202      FLOATINGconstant = 335,
    203      CHARACTERconstant = 336,
    204      STRINGliteral = 337,
    205      ZERO = 338,
    206      ONE = 339,
    207      ARROW = 340,
    208      ICR = 341,
    209      DECR = 342,
    210      LS = 343,
    211      RS = 344,
    212      LE = 345,
    213      GE = 346,
    214      EQ = 347,
    215      NE = 348,
    216      ANDAND = 349,
    217      OROR = 350,
    218      ELLIPSIS = 351,
    219      MULTassign = 352,
    220      DIVassign = 353,
    221      MODassign = 354,
    222      PLUSassign = 355,
    223      MINUSassign = 356,
    224      LSassign = 357,
    225      RSassign = 358,
    226      ANDassign = 359,
    227      ERassign = 360,
    228      ORassign = 361,
    229      ATassign = 362,
    230      THEN = 363
    231    };
     125  enum yytokentype
     126  {
     127    TYPEDEF = 258,
     128    AUTO = 259,
     129    EXTERN = 260,
     130    REGISTER = 261,
     131    STATIC = 262,
     132    INLINE = 263,
     133    FORTRAN = 264,
     134    CONST = 265,
     135    VOLATILE = 266,
     136    RESTRICT = 267,
     137    FORALL = 268,
     138    LVALUE = 269,
     139    VOID = 270,
     140    CHAR = 271,
     141    SHORT = 272,
     142    INT = 273,
     143    LONG = 274,
     144    FLOAT = 275,
     145    DOUBLE = 276,
     146    SIGNED = 277,
     147    UNSIGNED = 278,
     148    VALIST = 279,
     149    BOOL = 280,
     150    COMPLEX = 281,
     151    IMAGINARY = 282,
     152    TYPEOF = 283,
     153    LABEL = 284,
     154    ENUM = 285,
     155    STRUCT = 286,
     156    UNION = 287,
     157    OTYPE = 288,
     158    FTYPE = 289,
     159    DTYPE = 290,
     160    TRAIT = 291,
     161    SIZEOF = 292,
     162    OFFSETOF = 293,
     163    ATTRIBUTE = 294,
     164    EXTENSION = 295,
     165    IF = 296,
     166    ELSE = 297,
     167    SWITCH = 298,
     168    CASE = 299,
     169    DEFAULT = 300,
     170    DO = 301,
     171    WHILE = 302,
     172    FOR = 303,
     173    BREAK = 304,
     174    CONTINUE = 305,
     175    GOTO = 306,
     176    RETURN = 307,
     177    CHOOSE = 308,
     178    DISABLE = 309,
     179    ENABLE = 310,
     180    FALLTHRU = 311,
     181    TRY = 312,
     182    CATCH = 313,
     183    CATCHRESUME = 314,
     184    FINALLY = 315,
     185    THROW = 316,
     186    THROWRESUME = 317,
     187    AT = 318,
     188    ASM = 319,
     189    ALIGNAS = 320,
     190    ALIGNOF = 321,
     191    ATOMIC = 322,
     192    GENERIC = 323,
     193    NORETURN = 324,
     194    STATICASSERT = 325,
     195    THREADLOCAL = 326,
     196    IDENTIFIER = 327,
     197    QUOTED_IDENTIFIER = 328,
     198    TYPEDEFname = 329,
     199    TYPEGENname = 330,
     200    ATTR_IDENTIFIER = 331,
     201    ATTR_TYPEDEFname = 332,
     202    ATTR_TYPEGENname = 333,
     203    INTEGERconstant = 334,
     204    FLOATINGconstant = 335,
     205    CHARACTERconstant = 336,
     206    STRINGliteral = 337,
     207    ZERO = 338,
     208    ONE = 339,
     209    ARROW = 340,
     210    ICR = 341,
     211    DECR = 342,
     212    LS = 343,
     213    RS = 344,
     214    LE = 345,
     215    GE = 346,
     216    EQ = 347,
     217    NE = 348,
     218    ANDAND = 349,
     219    OROR = 350,
     220    ELLIPSIS = 351,
     221    MULTassign = 352,
     222    DIVassign = 353,
     223    MODassign = 354,
     224    PLUSassign = 355,
     225    MINUSassign = 356,
     226    LSassign = 357,
     227    RSassign = 358,
     228    ANDassign = 359,
     229    ERassign = 360,
     230    ORassign = 361,
     231    ATassign = 362,
     232    THEN = 363
     233  };
    232234#endif
    233235/* Tokens.  */
     
    339341#define THEN 363
    340342
    341 
    342 
    343 
     343/* Value type.  */
    344344#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    345 typedef union YYSTYPE
     345typedef union YYSTYPE YYSTYPE;
     346union YYSTYPE
    346347{
    347 
    348 /* Line 293 of yacc.c  */
    349 #line 115 "parser.yy"
     348#line 115 "parser.yy" /* yacc.c:355  */
    350349
    351350        Token tok;
     
    364363        bool flag;
    365364
    366 
    367 
    368 /* Line 293 of yacc.c  */
    369 #line 370 "Parser/parser.cc"
    370 } YYSTYPE;
     365#line 366 "Parser/parser.cc" /* yacc.c:355  */
     366};
    371367# define YYSTYPE_IS_TRIVIAL 1
    372 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    373368# define YYSTYPE_IS_DECLARED 1
    374369#endif
    375370
    376371
     372extern YYSTYPE yylval;
     373
     374int yyparse (void);
     375
     376#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
     377
    377378/* Copy the second part of user declarations.  */
    378379
    379 
    380 /* Line 343 of yacc.c  */
    381 #line 382 "Parser/parser.cc"
     380#line 381 "Parser/parser.cc" /* yacc.c:358  */
    382381
    383382#ifdef short
     
    393392#ifdef YYTYPE_INT8
    394393typedef YYTYPE_INT8 yytype_int8;
    395 #elif (defined __STDC__ || defined __C99__FUNC__ \
    396      || defined __cplusplus || defined _MSC_VER)
     394#else
    397395typedef signed char yytype_int8;
    398 #else
    399 typedef short int yytype_int8;
    400396#endif
    401397
     
    417413# elif defined size_t
    418414#  define YYSIZE_T size_t
    419 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    420      || defined __cplusplus || defined _MSC_VER)
     415# elif ! defined YYSIZE_T
    421416#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    422417#  define YYSIZE_T size_t
     
    432427#  if ENABLE_NLS
    433428#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    434 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     429#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    435430#  endif
    436431# endif
    437432# ifndef YY_
    438 #  define YY_(msgid) msgid
     433#  define YY_(Msgid) Msgid
    439434# endif
    440435#endif
    441436
     437#ifndef YY_ATTRIBUTE
     438# if (defined __GNUC__                                               \
     439      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
     440     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
     441#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
     442# else
     443#  define YY_ATTRIBUTE(Spec) /* empty */
     444# endif
     445#endif
     446
     447#ifndef YY_ATTRIBUTE_PURE
     448# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
     449#endif
     450
     451#ifndef YY_ATTRIBUTE_UNUSED
     452# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
     453#endif
     454
     455#if !defined _Noreturn \
     456     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
     457# if defined _MSC_VER && 1200 <= _MSC_VER
     458#  define _Noreturn __declspec (noreturn)
     459# else
     460#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
     461# endif
     462#endif
     463
    442464/* Suppress unused-variable warnings by "using" E.  */
    443465#if ! defined lint || defined __GNUC__
    444 # define YYUSE(e) ((void) (e))
     466# define YYUSE(E) ((void) (E))
    445467#else
    446 # define YYUSE(e) /* empty */
     468# define YYUSE(E) /* empty */
    447469#endif
    448470
    449 /* Identity function, used to suppress warnings about constant conditions.  */
    450 #ifndef lint
    451 # define YYID(n) (n)
     471#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
     472/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
     473# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
     474    _Pragma ("GCC diagnostic push") \
     475    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
     476    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
     477# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
     478    _Pragma ("GCC diagnostic pop")
    452479#else
    453 #if (defined __STDC__ || defined __C99__FUNC__ \
    454      || defined __cplusplus || defined _MSC_VER)
    455 static int
    456 YYID (int yyi)
    457 #else
    458 static int
    459 YYID (yyi)
    460     int yyi;
     480# define YY_INITIAL_VALUE(Value) Value
    461481#endif
    462 {
    463   return yyi;
    464 }
     482#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     483# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     484# define YY_IGNORE_MAYBE_UNINITIALIZED_END
    465485#endif
     486#ifndef YY_INITIAL_VALUE
     487# define YY_INITIAL_VALUE(Value) /* Nothing. */
     488#endif
     489
    466490
    467491#if ! defined yyoverflow || YYERROR_VERBOSE
     
    482506#   else
    483507#    define YYSTACK_ALLOC alloca
    484 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    485      || defined __cplusplus || defined _MSC_VER)
     508#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    486509#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     510      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    487511#     ifndef EXIT_SUCCESS
    488512#      define EXIT_SUCCESS 0
     
    494518
    495519# ifdef YYSTACK_ALLOC
    496    /* Pacify GCC's `empty if-body' warning.  */
    497 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     520   /* Pacify GCC's 'empty if-body' warning.  */
     521#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    498522#  ifndef YYSTACK_ALLOC_MAXIMUM
    499523    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    511535#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    512536       && ! ((defined YYMALLOC || defined malloc) \
    513              && (defined YYFREE || defined free)))
     537             && (defined YYFREE || defined free)))
    514538#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    515539#   ifndef EXIT_SUCCESS
     
    519543#  ifndef YYMALLOC
    520544#   define YYMALLOC malloc
    521 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    522      || defined __cplusplus || defined _MSC_VER)
     545#   if ! defined malloc && ! defined EXIT_SUCCESS
    523546void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    524547#   endif
     
    526549#  ifndef YYFREE
    527550#   define YYFREE free
    528 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    529      || defined __cplusplus || defined _MSC_VER)
     551#   if ! defined free && ! defined EXIT_SUCCESS
    530552void free (void *); /* INFRINGES ON USER NAME SPACE */
    531553#   endif
     
    537559#if (! defined yyoverflow \
    538560     && (! defined __cplusplus \
    539         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     561        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    540562
    541563/* A type that is properly aligned for any stack member.  */
     
    562584   stack.  Advance YYPTR to a properly aligned location for the next
    563585   stack.  */
    564 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    565     do                                                                  \
    566       {                                                                 \
    567         YYSIZE_T yynewbytes;                                            \
    568         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    569         Stack = &yyptr->Stack_alloc;                                    \
    570         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    571         yyptr += yynewbytes / sizeof (*yyptr);                          \
    572       }                                                                 \
    573     while (YYID (0))
     586# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     587    do                                                                  \
     588      {                                                                 \
     589        YYSIZE_T yynewbytes;                                            \
     590        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     591        Stack = &yyptr->Stack_alloc;                                    \
     592        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     593        yyptr += yynewbytes / sizeof (*yyptr);                          \
     594      }                                                                 \
     595    while (0)
    574596
    575597#endif
    576598
    577599#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    578 /* Copy COUNT objects from FROM to TO.  The source and destination do
     600/* Copy COUNT objects from SRC to DST.  The source and destination do
    579601   not overlap.  */
    580602# ifndef YYCOPY
    581603#  if defined __GNUC__ && 1 < __GNUC__
    582 #   define YYCOPY(To, From, Count) \
    583       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     604#   define YYCOPY(Dst, Src, Count) \
     605      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    584606#  else
    585 #   define YYCOPY(To, From, Count)              \
    586       do                                        \
    587         {                                       \
    588           YYSIZE_T yyi;                         \
    589           for (yyi = 0; yyi < (Count); yyi++)   \
    590             (To)[yyi] = (From)[yyi];            \
    591         }                                       \
    592       while (YYID (0))
     607#   define YYCOPY(Dst, Src, Count)              \
     608      do                                        \
     609        {                                       \
     610          YYSIZE_T yyi;                         \
     611          for (yyi = 0; yyi < (Count); yyi++)   \
     612            (Dst)[yyi] = (Src)[yyi];            \
     613        }                                       \
     614      while (0)
    593615#  endif
    594616# endif
     
    606628/* YYNRULES -- Number of rules.  */
    607629#define YYNRULES  751
    608 /* YYNRULES -- Number of states.  */
     630/* YYNSTATES -- Number of states.  */
    609631#define YYNSTATES  1555
    610632
    611 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     633/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
     634   by yylex, with out-of-bounds checking.  */
    612635#define YYUNDEFTOK  2
    613636#define YYMAXUTOK   363
    614637
    615 #define YYTRANSLATE(YYX)                                                \
     638#define YYTRANSLATE(YYX)                                                \
    616639  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    617640
    618 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     641/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
     642   as returned by yylex, without out-of-bounds checking.  */
    619643static const yytype_uint8 yytranslate[] =
    620644{
     
    659683
    660684#if YYDEBUG
    661 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    662    YYRHS.  */
    663 static const yytype_uint16 yyprhs[] =
    664 {
    665        0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    666       17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    667       38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    668       86,    89,    92,   100,   105,   107,   111,   112,   114,   116,
    669      120,   122,   126,   134,   138,   146,   148,   150,   152,   155,
    670      158,   161,   164,   167,   170,   175,   178,   183,   190,   192,
    671      197,   202,   204,   206,   208,   210,   212,   214,   216,   221,
    672      226,   228,   232,   236,   240,   242,   246,   250,   252,   256,
    673      260,   262,   266,   270,   274,   278,   280,   284,   288,   290,
    674      294,   296,   300,   302,   306,   308,   312,   314,   318,   320,
    675      326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
    676      355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
    677      375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
    678      414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
    679      442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
    680      474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
    681      531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
    682      558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
    683      586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
    684      638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
    685      678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
    686      751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
    687      818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
    688      849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
    689      875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
    690      905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
    691      946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
    692     1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
    693     1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
    694     1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
    695     1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
    696     1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
    697     1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    698     1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
    699     1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
    700     1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
    701     1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
    702     1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
    703     1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
    704     1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
    705     1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
    706     1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
    707     1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
    708     1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
    709     1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
    710     1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
    711     1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
    712     1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
    713     1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
    714     1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
    715     1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
    716     1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
    717     1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
    718     1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
    719     1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
    720     1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
    721     1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
    722     1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
    723     2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
    724     2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
    725     2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
    726     2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
    727     2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
    728     2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
    729     2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
    730     2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
    731     2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
    732     2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
    733     2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
    734     2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
    735     2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
    736     2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
    737     2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
    738     2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
    739     2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
    740     2714,  2715
    741 };
    742 
    743 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    744 static const yytype_int16 yyrhs[] =
    745 {
    746      302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    747       -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    748       -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
    749       -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
    750      109,   170,   110,    -1,   109,   174,   110,    -1,   143,    -1,
    751      144,   111,   134,   165,   135,   112,    -1,   144,   109,   145,
    752      110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
    753      147,   135,   112,    -1,   144,    85,   139,    -1,   144,    85,
    754      111,   134,   147,   135,   112,    -1,   144,    86,    -1,   144,
    755       87,    -1,   109,   275,   110,   114,   279,   372,   115,    -1,
    756      144,   114,   145,   115,    -1,   146,    -1,   145,   116,   146,
    757       -1,    -1,   165,    -1,   148,    -1,   147,   116,   148,    -1,
    758      139,    -1,   139,   113,   148,    -1,   139,   113,   111,   134,
    759      147,   135,   112,    -1,   139,    85,   148,    -1,   139,    85,
    760      111,   134,   147,   135,   112,    -1,   144,    -1,   136,    -1,
    761      141,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
    762       -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
    763       37,   109,   275,   110,    -1,    66,   149,    -1,    66,   109,
    764      275,   110,    -1,    38,   109,   275,   116,   139,   110,    -1,
    765       76,    -1,    76,   109,   146,   110,    -1,    76,   109,   276,
    766      110,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
    767      121,    -1,   122,    -1,   149,    -1,   109,   275,   110,   152,
    768       -1,   109,   275,   110,   168,    -1,   152,    -1,   153,   117,
    769      152,    -1,   153,   123,   152,    -1,   153,   124,   152,    -1,
    770      153,    -1,   154,   119,   153,    -1,   154,   120,   153,    -1,
    771      154,    -1,   155,    88,   154,    -1,   155,    89,   154,    -1,
    772      155,    -1,   156,   125,   155,    -1,   156,   126,   155,    -1,
    773      156,    90,   155,    -1,   156,    91,   155,    -1,   156,    -1,
    774      157,    92,   156,    -1,   157,    93,   156,    -1,   157,    -1,
    775      158,   118,   157,    -1,   158,    -1,   159,   127,   158,    -1,
    776      159,    -1,   160,   128,   159,    -1,   160,    -1,   161,    94,
    777      160,    -1,   161,    -1,   162,    95,   161,    -1,   162,    -1,
    778      162,   129,   170,   130,   163,    -1,   162,   129,   130,   163,
    779       -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
    780       -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
    781       -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
    782       -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
    783       -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
    784      165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
    785       -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
    786       -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
    787       -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
    788      179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
    789      127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
    790      172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
    791      135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
    792       -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
    793       -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
    794      110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
    795       -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
    796      110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
    797      110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
    798      187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
    799       -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
    800       -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
    801      172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
    802      177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
    803      189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
    804       -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
    805      109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
    806      110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
    807      171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
    808      171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
    809       -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
    810       -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
    811      166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
    812      165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
    813       -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
    814       96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
    815       -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
    816       96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
    817      110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
    818      135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
    819      135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
    820      198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
    821       -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
    822      366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
    823      200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
    824      109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
    825      200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
    826      132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
    827      130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
    828       -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
    829      109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
    830      110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
    831       -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
    832       -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
    833       -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
    834      132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
    835      116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
    836       -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
    837      135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
    838      232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
    839       -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
    840      370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
    841      218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
    842      272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
    843       -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
    844      272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
    845      135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
    846      135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
    847      135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
    848      135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
    849      226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
    850      139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
    851      165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
    852      222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
    853      311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
    854      236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
    855      241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
    856       -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
    857       12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
    858      109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
    859      232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
    860       -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
    861       -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
    862       -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
    863       -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
    864       -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
    865      234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
    866      239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
    867       -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
    868      109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
    869      109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
    870      234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
    871       -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
    872      234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
    873       -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
    874      248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
    875      114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
    876      115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
    877       -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
    878      132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
    879       -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
    880       -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
    881      254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
    882       -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
    883      114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
    884      274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
    885      258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
    886      261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
    887      263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
    888      116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
    889      267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
    890      116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
    891      263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
    892       -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
    893       -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
    894      134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
    895      272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
    896      270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
    897       -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
    898       -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
    899      137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
    900       75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
    901      226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
    902       -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
    903       -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
    904       -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
    905      280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
    906       -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
    907      135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
    908      134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
    909      147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
    910      234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
    911       -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
    912      373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
    913      288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
    914       34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
    915      110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
    916      134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
    917      110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
    918      292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
    919       -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
    920      131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
    921      110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
    922      115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
    923      114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
    924       -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
    925       -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
    926      309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
    927       -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
    928      213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
    929      114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
    930      174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
    931      225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
    932      174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
    933      208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
    934      327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
    935      174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
    936      164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
    937      313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
    938      315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
    939       -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
    940      234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
    941       -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
    942      319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
    943      109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
    944      349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
    945       -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
    946      109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
    947      312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
    948      325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
    949      110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
    950      325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
    951      110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
    952       -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
    953      110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
    954      327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
    955      109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
    956      109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
    957      312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
    958       -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
    959      110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
    960      109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
    961      109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
    962      134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
    963      312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
    964      150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
    965       -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
    966      338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
    967      134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
    968      264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
    969       -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
    970       -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
    971      109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
    972      355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
    973      342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
    974      347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
    975       -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
    976      110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
    977      347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
    978      264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
    979      135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
    980      111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
    981      112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
    982      134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
    983      112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
    984      150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
    985      351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
    986      110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
    987      110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
    988      110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
    989       -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
    990       -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
    991      228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
    992       -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
    993      134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
    994      312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
    995      150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
    996       -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
    997      110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
    998      109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
    999      362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
    1000       -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
    1001       -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
    1002      361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
    1003      112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
    1004       -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
    1005      350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
    1006      111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
    1007      165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
    1008       -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
    1009       -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
    1010      150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
    1011      228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
    1012       -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
    1013      350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
    1014      368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
    1015       -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
    1016      260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
    1017       -1,    -1,   116,    -1,    -1,   131,   165,    -1
    1018 };
    1019 
    1020 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
     685  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    1021686static const yytype_uint16 yyrline[] =
    1022687{
     
    1100765#endif
    1101766
    1102 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
     767#if YYDEBUG || YYERROR_VERBOSE || 0
    1103768/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    1104769   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    1209874  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    1210875  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    1211   "comma_opt", "assignment_opt", 0
     876  "comma_opt", "assignment_opt", YY_NULLPTR
    1212877};
    1213878#endif
    1214879
    1215880# ifdef YYPRINT
    1216 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1217    token YYLEX-NUM.  */
     881/* YYTOKNUM[NUM] -- (External) token number corresponding to the
     882   (internal) symbol number NUM (which must be that of a token).  */
    1218883static const yytype_uint16 yytoknum[] =
    1219884{
     
    1235900# endif
    1236901
    1237 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1238 static const yytype_uint16 yyr1[] =
     902#define YYPACT_NINF -1323
     903
     904#define yypact_value_is_default(Yystate) \
     905  (!!((Yystate) == (-1323)))
     906
     907#define YYTABLE_NINF -522
     908
     909#define yytable_value_is_error(Yytable_value) \
     910  0
     911
     912  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     913     STATE-NUM.  */
     914static const yytype_int16 yypact[] =
    1239915{
    1240        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    1241      138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
    1242      143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
    1243      144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
    1244      148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
    1245      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
    1246      149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
    1247      153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
    1248      156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
    1249      159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
    1250      163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
    1251      167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
    1252      168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
    1253      172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
    1254      174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
    1255      178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
    1256      181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
    1257      186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
    1258      190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
    1259      193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
    1260      195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
    1261      198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
    1262      200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
    1263      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    1264      210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
    1265      214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
    1266      217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
    1267      220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
    1268      223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
    1269      226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
    1270      230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
    1271      233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
    1272      235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
    1273      235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
    1274      238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
    1275      240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
    1276      243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
    1277      247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
    1278      250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
    1279      254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
    1280      260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
    1281      262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
    1282      266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
    1283      268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
    1284      273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    1285      276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
    1286      279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
    1287      282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
    1288      286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
    1289      291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
    1290      294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
    1291      299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
    1292      304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
    1293      307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
    1294      309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
    1295      314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
    1296      318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
    1297      321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
    1298      324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    1299      328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    1300      331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
    1301      334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
    1302      337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
    1303      340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
    1304      344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
    1305      347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
    1306      350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
    1307      352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
    1308      355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
    1309      357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
    1310      360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
    1311      363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
    1312      364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
    1313      367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
    1314      369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
    1315      373,   373
     916    7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
     917   -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     918   -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
     919     733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
     920   -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
     921   -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
     922   -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
     923    1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
     924   -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
     925     616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
     926      85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
     927   -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
     928     844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
     929     608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
     930   -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
     931     717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
     932    5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
     933   -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
     934     534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
     935   -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
     936   -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
     937   -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
     938   -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
     939    5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
     940   -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
     941   -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
     942   -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
     943   -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
     944     922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
     945   -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
     946   -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
     947     756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
     948   -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
     949   -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
     950     990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
     951    8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
     952   -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
     953   -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
     954    5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     955   -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
     956     992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
     957     229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
     958   -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
     959    1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
     960   -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
     961   -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
     962   -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
     963    1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
     964    4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
     965     962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
     966   -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
     967   -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
     968    1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
     969   -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
     970   -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
     971   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
     972   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
     973   -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
     974   -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
     975    5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
     976    1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
     977     132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
     978     985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
     979     962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
     980    5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
     981   -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
     982   -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
     983     285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
     984   -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
     985     538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
     986   -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
     987   -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
     988    5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
     989   -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
     990    1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
     991     682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
     992   -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
     993   -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
     994     411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
     995    9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
     996    9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
     997    6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
     998    1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
     999   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1000   -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
     1001   -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
     1002   -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
     1003   -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
     1004   -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
     1005    1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
     1006   -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
     1007   -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
     1008    8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
     1009    1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
     1010   -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
     1011    1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
     1012   -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
     1013   -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
     1014     631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
     1015     985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
     1016    9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
     1017     861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
     1018   -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
     1019     685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
     1020   -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
     1021   10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
     1022   -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1023   -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
     1024   -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
     1025   -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
     1026    1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
     1027   -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
     1028      94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
     1029    1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
     1030   -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
     1031    1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
     1032   -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
     1033   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
     1034    1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
     1035    9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
     1036    1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
     1037   -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
     1038   -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
     1039    9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
     1040   -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
     1041     509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
     1042   -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
     1043   -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
     1044   -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
     1045   -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
     1046     834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
     1047    1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
     1048   -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
     1049   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1050   -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
     1051   -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
     1052   10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
     1053    1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
     1054    1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
     1055    1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
     1056    1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
     1057   -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
     1058    9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
     1059    1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
     1060   -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
     1061     285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
     1062   -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
     1063   10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
     1064   -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
     1065    1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
     1066    6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
     1067   -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
     1068    9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
     1069     285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
     1070   -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
     1071   -1323, -1323, -1323, -1323, -1323
    13161072};
    13171073
    1318 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1319 static const yytype_uint8 yyr2[] =
    1320 {
    1321        0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1322        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1323        1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
    1324        2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
    1325        1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
    1326        2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
    1327        4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
    1328        1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    1329        1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    1330        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    1331        4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
    1332        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1333        2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
    1334        1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
    1335        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1336        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1337        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1338        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1339        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1340        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1341        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1342        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1343        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1344        1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
    1345        0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
    1346        3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
    1347        2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
    1348        2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
    1349        3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
    1350        1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
    1351        1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
    1352        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1353        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1354        1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
    1355        2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
    1356        3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
    1357        2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
    1358        2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
    1359        2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
    1360        2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
    1361        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    1362        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    1363        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    1364        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    1365        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1366        1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
    1367        2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
    1368        7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
    1369        2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
    1370        5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
    1371        2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
    1372        3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
    1373        0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
    1374        4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
    1375        1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
    1376        6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
    1377        2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    1378        4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
    1379        3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
    1380        4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    1381        1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1382        4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
    1383        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    1384        1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
    1385        6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
    1386        1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
    1387        5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
    1388        3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
    1389        2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
    1390        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1391        8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
    1392        3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
    1393        4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
    1394        1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
    1395        2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
    1396        0,     2
    1397 };
    1398 
    1399 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
    1400    Performed when YYTABLE doesn't specify something else to do.  Zero
    1401    means the default is an error.  */
     1074  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
     1075     Performed when YYTABLE does not specify something else to do.  Zero
     1076     means the default is an error.  */
    14021077static const yytype_uint16 yydefact[] =
    14031078{
     
    15601235};
    15611236
    1562 /* YYDEFGOTO[NTERM-NUM].  */
     1237  /* YYPGOTO[NTERM-NUM].  */
     1238static const yytype_int16 yypgoto[] =
     1239{
     1240   -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
     1241   -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
     1242     423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
     1243    -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
     1244   -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
     1245   -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
     1246   -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
     1247     482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
     1248    -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
     1249     -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
     1250      54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
     1251    2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
     1252     699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
     1253      34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
     1254   -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
     1255   -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
     1256   -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
     1257    1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
     1258   -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
     1259       7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
     1260    -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
     1261   -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
     1262    -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
     1263    -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
     1264    -397
     1265};
     1266
     1267  /* YYDEFGOTO[NTERM-NUM].  */
    15631268static const yytype_int16 yydefgoto[] =
    15641269{
     
    15901295};
    15911296
    1592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1593    STATE-NUM.  */
    1594 #define YYPACT_NINF -1323
    1595 static const yytype_int16 yypact[] =
    1596 {
    1597     7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
    1598    -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1599    -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
    1600      733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
    1601    -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
    1602    -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
    1603    -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
    1604     1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
    1605    -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
    1606      616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
    1607       85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
    1608    -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
    1609      844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
    1610      608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
    1611    -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
    1612      717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
    1613     5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
    1614    -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
    1615      534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
    1616    -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
    1617    -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
    1618    -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
    1619    -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
    1620     5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
    1621    -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
    1622    -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
    1623    -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
    1624    -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
    1625      922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
    1626    -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
    1627    -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
    1628      756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
    1629    -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
    1630    -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
    1631      990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
    1632     8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
    1633    -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
    1634    -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
    1635     5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1636    -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
    1637      992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
    1638      229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
    1639    -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
    1640     1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
    1641    -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
    1642    -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
    1643    -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
    1644     1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
    1645     4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
    1646      962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
    1647    -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
    1648    -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
    1649     1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
    1650    -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
    1651    -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
    1652    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
    1653    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
    1654    -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
    1655    -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
    1656     5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
    1657     1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
    1658      132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
    1659      985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
    1660      962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
    1661     5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
    1662    -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
    1663    -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
    1664      285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
    1665    -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
    1666      538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
    1667    -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
    1668    -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
    1669     5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
    1670    -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
    1671     1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
    1672      682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
    1673    -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
    1674    -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
    1675      411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
    1676     9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
    1677     9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
    1678     6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
    1679     1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
    1680    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1681    -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
    1682    -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
    1683    -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
    1684    -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
    1685    -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
    1686     1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
    1687    -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
    1688    -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
    1689     8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
    1690     1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
    1691    -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
    1692     1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
    1693    -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
    1694    -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
    1695      631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
    1696      985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
    1697     9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
    1698      861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
    1699    -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
    1700      685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
    1701    -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
    1702    10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
    1703    -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1704    -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
    1705    -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
    1706    -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
    1707     1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
    1708    -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
    1709       94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
    1710     1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
    1711    -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
    1712     1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
    1713    -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
    1714    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
    1715     1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
    1716     9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
    1717     1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
    1718    -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
    1719    -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
    1720     9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
    1721    -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
    1722      509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
    1723    -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
    1724    -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
    1725    -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
    1726    -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
    1727      834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
    1728     1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
    1729    -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
    1730    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1731    -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
    1732    -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
    1733    10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
    1734     1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
    1735     1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
    1736     1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
    1737     1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
    1738    -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
    1739     9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
    1740     1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
    1741    -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
    1742      285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
    1743    -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
    1744    10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
    1745    -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
    1746     1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
    1747     6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
    1748    -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
    1749     9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
    1750      285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
    1751    -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
    1752    -1323, -1323, -1323, -1323, -1323
    1753 };
    1754 
    1755 /* YYPGOTO[NTERM-NUM].  */
    1756 static const yytype_int16 yypgoto[] =
    1757 {
    1758    -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
    1759    -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
    1760      423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
    1761     -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
    1762    -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
    1763    -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
    1764    -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
    1765      482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
    1766     -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
    1767      -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
    1768       54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
    1769     2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
    1770      699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
    1771       34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
    1772    -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
    1773    -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
    1774    -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
    1775     1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
    1776    -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
    1777        7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
    1778     -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
    1779    -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
    1780     -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
    1781     -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
    1782     -397
    1783 };
    1784 
    1785 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    1786    positive, shift that token.  If negative, reduce the rule which
    1787    number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1788 #define YYTABLE_NINF -522
     1297  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
     1298     positive, shift that token.  If negative, reduce the rule whose
     1299     number is the opposite.  If YYTABLE_NINF, syntax error.  */
    17891300static const yytype_int16 yytable[] =
    17901301{
     
    28782389};
    28792390
    2880 #define yypact_value_is_default(yystate) \
    2881   ((yystate) == (-1323))
    2882 
    2883 #define yytable_value_is_error(yytable_value) \
    2884   YYID (0)
    2885 
    28862391static const yytype_int16 yycheck[] =
    28872392{
     
    39753480};
    39763481
    3977 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3978    symbol of state STATE-NUM.  */
     3482  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3483     symbol of state STATE-NUM.  */
    39793484static const yytype_uint16 yystos[] =
    39803485{
     
    41373642};
    41383643
    4139 #define yyerrok         (yyerrstatus = 0)
    4140 #define yyclearin       (yychar = YYEMPTY)
    4141 #define YYEMPTY         (-2)
    4142 #define YYEOF           0
    4143 
    4144 #define YYACCEPT        goto yyacceptlab
    4145 #define YYABORT         goto yyabortlab
    4146 #define YYERROR         goto yyerrorlab
    4147 
    4148 
    4149 /* Like YYERROR except do call yyerror.  This remains here temporarily
    4150    to ease the transition to the new meaning of YYERROR, for GCC.
    4151    Once GCC version 2 has supplanted version 1, this can go.  However,
    4152    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
    4153    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
    4154    discussed.  */
    4155 
    4156 #define YYFAIL          goto yyerrlab
    4157 #if defined YYFAIL
    4158   /* This is here to suppress warnings from the GCC cpp's
    4159      -Wunused-macros.  Normally we don't worry about that warning, but
    4160      some users do, and we want to make it easy for users to remove
    4161      YYFAIL uses, which will produce warnings from Bison 2.5.  */
    4162 #endif
     3644  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     3645static const yytype_uint16 yyr1[] =
     3646{
     3647       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     3648     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
     3649     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
     3650     144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
     3651     148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
     3652     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     3653     149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
     3654     153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
     3655     156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
     3656     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
     3657     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
     3658     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
     3659     168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
     3660     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
     3661     174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
     3662     178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
     3663     181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
     3664     186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
     3665     190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
     3666     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
     3667     195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
     3668     198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
     3669     200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
     3670     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     3671     210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
     3672     214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
     3673     217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
     3674     220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
     3675     223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
     3676     226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
     3677     230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
     3678     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
     3679     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     3680     235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
     3681     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     3682     240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
     3683     243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
     3684     247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
     3685     250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
     3686     254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
     3687     260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
     3688     262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
     3689     266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
     3690     268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
     3691     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
     3692     276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
     3693     279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
     3694     282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
     3695     286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
     3696     291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
     3697     294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
     3698     299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
     3699     304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
     3700     307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
     3701     309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
     3702     314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
     3703     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     3704     321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
     3705     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
     3706     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
     3707     331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
     3708     334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
     3709     337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
     3710     340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
     3711     344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
     3712     347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
     3713     350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
     3714     352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
     3715     355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
     3716     357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
     3717     360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
     3718     363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
     3719     364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
     3720     367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
     3721     369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
     3722     373,   373
     3723};
     3724
     3725  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
     3726static const yytype_uint8 yyr2[] =
     3727{
     3728       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     3729       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     3730       1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
     3731       2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
     3732       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     3733       2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
     3734       4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
     3735       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     3736       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     3737       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     3738       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
     3739       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3740       2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
     3741       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     3742       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     3743       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     3744       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     3745       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     3746       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     3747       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     3748       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     3749       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     3750       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     3751       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     3752       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     3753       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     3754       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     3755       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     3756       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     3757       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     3758       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     3759       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3760       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3761       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     3762       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     3763       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     3764       2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
     3765       2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
     3766       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     3767       2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
     3768       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     3769       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     3770       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     3771       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     3772       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     3773       1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
     3774       2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
     3775       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     3776       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     3777       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     3778       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     3779       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     3780       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     3781       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     3782       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     3783       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     3784       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     3785       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     3786       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     3787       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     3788       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     3789       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     3790       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     3791       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     3792       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     3793       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     3794       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     3795       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     3796       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     3797       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     3798       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     3799       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     3800       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     3801       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     3802       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     3803       0,     2
     3804};
     3805
     3806
     3807#define yyerrok         (yyerrstatus = 0)
     3808#define yyclearin       (yychar = YYEMPTY)
     3809#define YYEMPTY         (-2)
     3810#define YYEOF           0
     3811
     3812#define YYACCEPT        goto yyacceptlab
     3813#define YYABORT         goto yyabortlab
     3814#define YYERROR         goto yyerrorlab
     3815
    41633816
    41643817#define YYRECOVERING()  (!!yyerrstatus)
    41653818
    4166 #define YYBACKUP(Token, Value)                                  \
    4167 do                                                              \
    4168   if (yychar == YYEMPTY && yylen == 1)                          \
    4169     {                                                           \
    4170       yychar = (Token);                                         \
    4171       yylval = (Value);                                         \
    4172       YYPOPSTACK (1);                                           \
    4173       goto yybackup;                                            \
    4174     }                                                           \
    4175   else                                                          \
    4176     {                                                           \
     3819#define YYBACKUP(Token, Value)                                  \
     3820do                                                              \
     3821  if (yychar == YYEMPTY)                                        \
     3822    {                                                           \
     3823      yychar = (Token);                                         \
     3824      yylval = (Value);                                         \
     3825      YYPOPSTACK (yylen);                                       \
     3826      yystate = *yyssp;                                         \
     3827      goto yybackup;                                            \
     3828    }                                                           \
     3829  else                                                          \
     3830    {                                                           \
    41773831      yyerror (YY_("syntax error: cannot back up")); \
    4178       YYERROR;                                                  \
    4179     }                                                           \
    4180 while (YYID (0))
    4181 
    4182 
    4183 #define YYTERROR        1
    4184 #define YYERRCODE       256
    4185 
    4186 
    4187 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    4188    If N is 0, then set CURRENT to the empty location which ends
    4189    the previous symbol: RHS[0] (always defined).  */
    4190 
    4191 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    4192 #ifndef YYLLOC_DEFAULT
    4193 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    4194     do                                                                  \
    4195       if (YYID (N))                                                    \
    4196         {                                                               \
    4197           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    4198           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    4199           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    4200           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    4201         }                                                               \
    4202       else                                                              \
    4203         {                                                               \
    4204           (Current).first_line   = (Current).last_line   =              \
    4205             YYRHSLOC (Rhs, 0).last_line;                                \
    4206           (Current).first_column = (Current).last_column =              \
    4207             YYRHSLOC (Rhs, 0).last_column;                              \
    4208         }                                                               \
    4209     while (YYID (0))
    4210 #endif
    4211 
    4212 
    4213 /* This macro is provided for backward compatibility. */
    4214 
    4215 #ifndef YY_LOCATION_PRINT
    4216 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    4217 #endif
    4218 
    4219 
    4220 /* YYLEX -- calling `yylex' with the right arguments.  */
    4221 
    4222 #ifdef YYLEX_PARAM
    4223 # define YYLEX yylex (YYLEX_PARAM)
    4224 #else
    4225 # define YYLEX yylex ()
    4226 #endif
     3832      YYERROR;                                                  \
     3833    }                                                           \
     3834while (0)
     3835
     3836/* Error token number */
     3837#define YYTERROR        1
     3838#define YYERRCODE       256
     3839
     3840
    42273841
    42283842/* Enable debugging if requested.  */
     
    42343848# endif
    42353849
    4236 # define YYDPRINTF(Args)                        \
    4237 do {                                            \
    4238   if (yydebug)                                  \
    4239     YYFPRINTF Args;                             \
    4240 } while (YYID (0))
    4241 
    4242 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    4243 do {                                                                      \
    4244   if (yydebug)                                                            \
    4245     {                                                                     \
    4246       YYFPRINTF (stderr, "%s ", Title);                                   \
    4247       yy_symbol_print (stderr,                                            \
    4248                   Type, Value); \
    4249       YYFPRINTF (stderr, "\n");                                           \
    4250     }                                                                     \
    4251 } while (YYID (0))
    4252 
    4253 
    4254 /*--------------------------------.
    4255 | Print this symbol on YYOUTPUT.  |
    4256 `--------------------------------*/
    4257 
    4258 /*ARGSUSED*/
    4259 #if (defined __STDC__ || defined __C99__FUNC__ \
    4260      || defined __cplusplus || defined _MSC_VER)
     3850# define YYDPRINTF(Args)                        \
     3851do {                                            \
     3852  if (yydebug)                                  \
     3853    YYFPRINTF Args;                             \
     3854} while (0)
     3855
     3856/* This macro is provided for backward compatibility. */
     3857#ifndef YY_LOCATION_PRINT
     3858# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     3859#endif
     3860
     3861
     3862# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     3863do {                                                                      \
     3864  if (yydebug)                                                            \
     3865    {                                                                     \
     3866      YYFPRINTF (stderr, "%s ", Title);                                   \
     3867      yy_symbol_print (stderr,                                            \
     3868                  Type, Value); \
     3869      YYFPRINTF (stderr, "\n");                                           \
     3870    }                                                                     \
     3871} while (0)
     3872
     3873
     3874/*----------------------------------------.
     3875| Print this symbol's value on YYOUTPUT.  |
     3876`----------------------------------------*/
     3877
    42613878static void
    42623879yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4263 #else
    4264 static void
    4265 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    4266     FILE *yyoutput;
    4267     int yytype;
    4268     YYSTYPE const * const yyvaluep;
    4269 #endif
    42703880{
     3881  FILE *yyo = yyoutput;
     3882  YYUSE (yyo);
    42713883  if (!yyvaluep)
    42723884    return;
     
    42743886  if (yytype < YYNTOKENS)
    42753887    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    4276 # else
    4277   YYUSE (yyoutput);
    42783888# endif
    4279   switch (yytype)
    4280     {
    4281       default:
    4282         break;
    4283     }
     3889  YYUSE (yytype);
    42843890}
    42853891
     
    42893895`--------------------------------*/
    42903896
    4291 #if (defined __STDC__ || defined __C99__FUNC__ \
    4292      || defined __cplusplus || defined _MSC_VER)
    42933897static void
    42943898yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4295 #else
    4296 static void
    4297 yy_symbol_print (yyoutput, yytype, yyvaluep)
    4298     FILE *yyoutput;
    4299     int yytype;
    4300     YYSTYPE const * const yyvaluep;
    4301 #endif
    43023899{
    4303   if (yytype < YYNTOKENS)
    4304     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    4305   else
    4306     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
     3900  YYFPRINTF (yyoutput, "%s %s (",
     3901             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
    43073902
    43083903  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    43153910`------------------------------------------------------------------*/
    43163911
    4317 #if (defined __STDC__ || defined __C99__FUNC__ \
    4318      || defined __cplusplus || defined _MSC_VER)
    43193912static void
    43203913yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    4321 #else
    4322 static void
    4323 yy_stack_print (yybottom, yytop)
    4324     yytype_int16 *yybottom;
    4325     yytype_int16 *yytop;
    4326 #endif
    43273914{
    43283915  YYFPRINTF (stderr, "Stack now");
     
    43353922}
    43363923
    4337 # define YY_STACK_PRINT(Bottom, Top)                            \
    4338 do {                                                            \
    4339   if (yydebug)                                                  \
    4340     yy_stack_print ((Bottom), (Top));                           \
    4341 } while (YYID (0))
     3924# define YY_STACK_PRINT(Bottom, Top)                            \
     3925do {                                                            \
     3926  if (yydebug)                                                  \
     3927    yy_stack_print ((Bottom), (Top));                           \
     3928} while (0)
    43423929
    43433930
     
    43463933`------------------------------------------------*/
    43473934
    4348 #if (defined __STDC__ || defined __C99__FUNC__ \
    4349      || defined __cplusplus || defined _MSC_VER)
    43503935static void
    4351 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    4352 #else
    4353 static void
    4354 yy_reduce_print (yyvsp, yyrule)
    4355     YYSTYPE *yyvsp;
    4356     int yyrule;
    4357 #endif
     3936yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
    43583937{
     3938  unsigned long int yylno = yyrline[yyrule];
    43593939  int yynrhs = yyr2[yyrule];
    43603940  int yyi;
    4361   unsigned long int yylno = yyrline[yyrule];
    43623941  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    4363              yyrule - 1, yylno);
     3942             yyrule - 1, yylno);
    43643943  /* The symbols being reduced.  */
    43653944  for (yyi = 0; yyi < yynrhs; yyi++)
    43663945    {
    43673946      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    4368       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    4369                        &(yyvsp[(yyi + 1) - (yynrhs)])
    4370                                        );
     3947      yy_symbol_print (stderr,
     3948                       yystos[yyssp[yyi + 1 - yynrhs]],
     3949                       &(yyvsp[(yyi + 1) - (yynrhs)])
     3950                                              );
    43713951      YYFPRINTF (stderr, "\n");
    43723952    }
    43733953}
    43743954
    4375 # define YY_REDUCE_PRINT(Rule)          \
    4376 do {                                    \
    4377   if (yydebug)                          \
    4378     yy_reduce_print (yyvsp, Rule); \
    4379 } while (YYID (0))
     3955# define YY_REDUCE_PRINT(Rule)          \
     3956do {                                    \
     3957  if (yydebug)                          \
     3958    yy_reduce_print (yyssp, yyvsp, Rule); \
     3959} while (0)
    43803960
    43813961/* Nonzero means print parse trace.  It is left uninitialized so that
     
    43913971
    43923972/* YYINITDEPTH -- initial size of the parser's stacks.  */
    4393 #ifndef YYINITDEPTH
     3973#ifndef YYINITDEPTH
    43943974# define YYINITDEPTH 200
    43953975#endif
     
    44143994#  else
    44153995/* Return the length of YYSTR.  */
    4416 #if (defined __STDC__ || defined __C99__FUNC__ \
    4417      || defined __cplusplus || defined _MSC_VER)
    44183996static YYSIZE_T
    44193997yystrlen (const char *yystr)
    4420 #else
    4421 static YYSIZE_T
    4422 yystrlen (yystr)
    4423     const char *yystr;
    4424 #endif
    44253998{
    44263999  YYSIZE_T yylen;
     
    44384011/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    44394012   YYDEST.  */
    4440 #if (defined __STDC__ || defined __C99__FUNC__ \
    4441      || defined __cplusplus || defined _MSC_VER)
    44424013static char *
    44434014yystpcpy (char *yydest, const char *yysrc)
    4444 #else
    4445 static char *
    4446 yystpcpy (yydest, yysrc)
    4447     char *yydest;
    4448     const char *yysrc;
    4449 #endif
    44504015{
    44514016  char *yyd = yydest;
     
    44774042
    44784043      for (;;)
    4479         switch (*++yyp)
    4480           {
    4481           case '\'':
    4482           case ',':
    4483             goto do_not_strip_quotes;
    4484 
    4485           case '\\':
    4486             if (*++yyp != '\\')
    4487               goto do_not_strip_quotes;
    4488             /* Fall through.  */
    4489           default:
    4490             if (yyres)
    4491               yyres[yyn] = *yyp;
    4492             yyn++;
    4493             break;
    4494 
    4495           case '"':
    4496             if (yyres)
    4497               yyres[yyn] = '\0';
    4498             return yyn;
    4499           }
     4044        switch (*++yyp)
     4045          {
     4046          case '\'':
     4047          case ',':
     4048            goto do_not_strip_quotes;
     4049
     4050          case '\\':
     4051            if (*++yyp != '\\')
     4052              goto do_not_strip_quotes;
     4053            /* Fall through.  */
     4054          default:
     4055            if (yyres)
     4056              yyres[yyn] = *yyp;
     4057            yyn++;
     4058            break;
     4059
     4060          case '"':
     4061            if (yyres)
     4062              yyres[yyn] = '\0';
     4063            return yyn;
     4064          }
    45004065    do_not_strip_quotes: ;
    45014066    }
     
    45204085                yytype_int16 *yyssp, int yytoken)
    45214086{
    4522   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
     4087  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    45234088  YYSIZE_T yysize = yysize0;
    4524   YYSIZE_T yysize1;
    45254089  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    45264090  /* Internationalized format string. */
    4527   const char *yyformat = 0;
     4091  const char *yyformat = YY_NULLPTR;
    45284092  /* Arguments of yyformat. */
    45294093  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    45334097
    45344098  /* There are many possibilities here to consider:
    4535      - Assume YYFAIL is not used.  It's too flawed to consider.  See
    4536        <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
    4537        for details.  YYERROR is fine as it does not invoke this
    4538        function.
    45394099     - If this state is a consistent state with a default action, then
    45404100       the only way this function was invoked is if the default action
     
    45854145                  }
    45864146                yyarg[yycount++] = yytname[yyx];
    4587                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    4588                 if (! (yysize <= yysize1
    4589                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4590                   return 2;
    4591                 yysize = yysize1;
     4147                {
     4148                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
     4149                  if (! (yysize <= yysize1
     4150                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4151                    return 2;
     4152                  yysize = yysize1;
     4153                }
    45924154              }
    45934155        }
     
    46094171    }
    46104172
    4611   yysize1 = yysize + yystrlen (yyformat);
    4612   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4613     return 2;
    4614   yysize = yysize1;
     4173  {
     4174    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
     4175    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4176      return 2;
     4177    yysize = yysize1;
     4178  }
    46154179
    46164180  if (*yymsg_alloc < yysize)
     
    46494213`-----------------------------------------------*/
    46504214
    4651 /*ARGSUSED*/
    4652 #if (defined __STDC__ || defined __C99__FUNC__ \
    4653      || defined __cplusplus || defined _MSC_VER)
    46544215static void
    46554216yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    4656 #else
    4657 static void
    4658 yydestruct (yymsg, yytype, yyvaluep)
    4659     const char *yymsg;
    4660     int yytype;
    4661     YYSTYPE *yyvaluep;
    4662 #endif
    46634217{
    46644218  YYUSE (yyvaluep);
    4665 
    46664219  if (!yymsg)
    46674220    yymsg = "Deleting";
    46684221  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    46694222
    4670   switch (yytype)
    4671     {
    4672 
    4673       default:
    4674         break;
    4675     }
     4223  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     4224  YYUSE (yytype);
     4225  YY_IGNORE_MAYBE_UNINITIALIZED_END
    46764226}
    46774227
    46784228
    4679 /* Prevent warnings from -Wmissing-prototypes.  */
    4680 #ifdef YYPARSE_PARAM
    4681 #if defined __STDC__ || defined __cplusplus
    4682 int yyparse (void *YYPARSE_PARAM);
    4683 #else
    4684 int yyparse ();
    4685 #endif
    4686 #else /* ! YYPARSE_PARAM */
    4687 #if defined __STDC__ || defined __cplusplus
    4688 int yyparse (void);
    4689 #else
    4690 int yyparse ();
    4691 #endif
    4692 #endif /* ! YYPARSE_PARAM */
    46934229
    46944230
     
    46984234/* The semantic value of the lookahead symbol.  */
    46994235YYSTYPE yylval;
    4700 
    47014236/* Number of syntax errors so far.  */
    47024237int yynerrs;
     
    47074242`----------*/
    47084243
    4709 #ifdef YYPARSE_PARAM
    4710 #if (defined __STDC__ || defined __C99__FUNC__ \
    4711      || defined __cplusplus || defined _MSC_VER)
    4712 int
    4713 yyparse (void *YYPARSE_PARAM)
    4714 #else
    4715 int
    4716 yyparse (YYPARSE_PARAM)
    4717     void *YYPARSE_PARAM;
    4718 #endif
    4719 #else /* ! YYPARSE_PARAM */
    4720 #if (defined __STDC__ || defined __C99__FUNC__ \
    4721      || defined __cplusplus || defined _MSC_VER)
    47224244int
    47234245yyparse (void)
    4724 #else
    4725 int
    4726 yyparse ()
    4727 
    4728 #endif
    4729 #endif
    47304246{
    47314247    int yystate;
     
    47344250
    47354251    /* The stacks and their tools:
    4736        `yyss': related to states.
    4737        `yyvs': related to semantic values.
    4738 
    4739        Refer to the stacks thru separate pointers, to allow yyoverflow
     4252       'yyss': related to states.
     4253       'yyvs': related to semantic values.
     4254
     4255       Refer to the stacks through separate pointers, to allow yyoverflow
    47404256       to reallocate them elsewhere.  */
    47414257
     
    47554271  int yyresult;
    47564272  /* Lookahead token as an internal (translated) token number.  */
    4757   int yytoken;
     4273  int yytoken = 0;
    47584274  /* The variables used to return semantic value and location from the
    47594275     action routines.  */
     
    47734289  int yylen = 0;
    47744290
    4775   yytoken = 0;
    4776   yyss = yyssa;
    4777   yyvs = yyvsa;
     4291  yyssp = yyss = yyssa;
     4292  yyvsp = yyvs = yyvsa;
    47784293  yystacksize = YYINITDEPTH;
    47794294
     
    47844299  yynerrs = 0;
    47854300  yychar = YYEMPTY; /* Cause a token to be read.  */
    4786 
    4787   /* Initialize stack pointers.
    4788      Waste one element of value and location stack
    4789      so that they stay on the same level as the state stack.
    4790      The wasted elements are never initialized.  */
    4791   yyssp = yyss;
    4792   yyvsp = yyvs;
    4793 
    47944301  goto yysetstate;
    47954302
     
    48124319#ifdef yyoverflow
    48134320      {
    4814         /* Give user a chance to reallocate the stack.  Use copies of
    4815            these so that the &'s don't force the real ones into
    4816            memory.  */
    4817         YYSTYPE *yyvs1 = yyvs;
    4818         yytype_int16 *yyss1 = yyss;
    4819 
    4820         /* Each stack pointer address is followed by the size of the
    4821            data in use in that stack, in bytes.  This used to be a
    4822            conditional around just the two extra args, but that might
    4823            be undefined if yyoverflow is a macro.  */
    4824         yyoverflow (YY_("memory exhausted"),
    4825                     &yyss1, yysize * sizeof (*yyssp),
    4826                     &yyvs1, yysize * sizeof (*yyvsp),
    4827                     &yystacksize);
    4828 
    4829         yyss = yyss1;
    4830         yyvs = yyvs1;
     4321        /* Give user a chance to reallocate the stack.  Use copies of
     4322           these so that the &'s don't force the real ones into
     4323           memory.  */
     4324        YYSTYPE *yyvs1 = yyvs;
     4325        yytype_int16 *yyss1 = yyss;
     4326
     4327        /* Each stack pointer address is followed by the size of the
     4328           data in use in that stack, in bytes.  This used to be a
     4329           conditional around just the two extra args, but that might
     4330           be undefined if yyoverflow is a macro.  */
     4331        yyoverflow (YY_("memory exhausted"),
     4332                    &yyss1, yysize * sizeof (*yyssp),
     4333                    &yyvs1, yysize * sizeof (*yyvsp),
     4334                    &yystacksize);
     4335
     4336        yyss = yyss1;
     4337        yyvs = yyvs1;
    48314338      }
    48324339#else /* no yyoverflow */
     
    48364343      /* Extend the stack our own way.  */
    48374344      if (YYMAXDEPTH <= yystacksize)
    4838         goto yyexhaustedlab;
     4345        goto yyexhaustedlab;
    48394346      yystacksize *= 2;
    48404347      if (YYMAXDEPTH < yystacksize)
    4841         yystacksize = YYMAXDEPTH;
     4348        yystacksize = YYMAXDEPTH;
    48424349
    48434350      {
    4844         yytype_int16 *yyss1 = yyss;
    4845         union yyalloc *yyptr =
    4846           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4847         if (! yyptr)
    4848           goto yyexhaustedlab;
    4849         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4850         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
     4351        yytype_int16 *yyss1 = yyss;
     4352        union yyalloc *yyptr =
     4353          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
     4354        if (! yyptr)
     4355          goto yyexhaustedlab;
     4356        YYSTACK_RELOCATE (yyss_alloc, yyss);
     4357        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    48514358#  undef YYSTACK_RELOCATE
    4852         if (yyss1 != yyssa)
    4853           YYSTACK_FREE (yyss1);
     4359        if (yyss1 != yyssa)
     4360          YYSTACK_FREE (yyss1);
    48544361      }
    48554362# endif
     
    48604367
    48614368      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4862                   (unsigned long int) yystacksize));
     4369                  (unsigned long int) yystacksize));
    48634370
    48644371      if (yyss + yystacksize - 1 <= yyssp)
    4865         YYABORT;
     4372        YYABORT;
    48664373    }
    48674374
     
    48924399    {
    48934400      YYDPRINTF ((stderr, "Reading a token: "));
    4894       yychar = YYLEX;
     4401      yychar = yylex ();
    48954402    }
    48964403
     
    49324439
    49334440  yystate = yyn;
     4441  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    49344442  *++yyvsp = yylval;
     4443  YY_IGNORE_MAYBE_UNINITIALIZED_END
    49354444
    49364445  goto yynewstate;
     
    49554464
    49564465  /* If YYLEN is nonzero, implement the default value of the action:
    4957      `$$ = $1'.
     4466     '$$ = $1'.
    49584467
    49594468     Otherwise, the following line sets YYVAL to garbage.
     
    49694478    {
    49704479        case 2:
    4971 
    4972 /* Line 1806 of yacc.c  */
    4973 #line 300 "parser.yy"
     4480#line 300 "parser.yy" /* yacc.c:1646  */
    49744481    { typedefTable.enterScope(); }
     4482#line 4483 "Parser/parser.cc" /* yacc.c:1646  */
    49754483    break;
    49764484
    49774485  case 3:
    4978 
    4979 /* Line 1806 of yacc.c  */
    4980 #line 304 "parser.yy"
     4486#line 304 "parser.yy" /* yacc.c:1646  */
    49814487    { typedefTable.leaveScope(); }
     4488#line 4489 "Parser/parser.cc" /* yacc.c:1646  */
    49824489    break;
    49834490
    49844491  case 4:
    4985 
    4986 /* Line 1806 of yacc.c  */
    4987 #line 311 "parser.yy"
    4988     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4492#line 311 "parser.yy" /* yacc.c:1646  */
     4493    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); }
     4494#line 4495 "Parser/parser.cc" /* yacc.c:1646  */
    49894495    break;
    49904496
    49914497  case 5:
    4992 
    4993 /* Line 1806 of yacc.c  */
    4994 #line 312 "parser.yy"
    4995     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4498#line 312 "parser.yy" /* yacc.c:1646  */
     4499    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); }
     4500#line 4501 "Parser/parser.cc" /* yacc.c:1646  */
    49964501    break;
    49974502
    49984503  case 6:
    4999 
    5000 /* Line 1806 of yacc.c  */
    5001 #line 313 "parser.yy"
    5002     { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
     4504#line 313 "parser.yy" /* yacc.c:1646  */
     4505    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); }
     4506#line 4507 "Parser/parser.cc" /* yacc.c:1646  */
    50034507    break;
    50044508
    50054509  case 16:
    5006 
    5007 /* Line 1806 of yacc.c  */
    5008 #line 338 "parser.yy"
    5009     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     4510#line 338 "parser.yy" /* yacc.c:1646  */
     4511    { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); }
     4512#line 4513 "Parser/parser.cc" /* yacc.c:1646  */
    50104513    break;
    50114514
    50124515  case 17:
    5013 
    5014 /* Line 1806 of yacc.c  */
    5015 #line 342 "parser.yy"
    5016     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     4516#line 342 "parser.yy" /* yacc.c:1646  */
     4517    { (yyval.str) = (yyvsp[0].tok); }
     4518#line 4519 "Parser/parser.cc" /* yacc.c:1646  */
    50174519    break;
    50184520
    50194521  case 18:
    5020 
    5021 /* Line 1806 of yacc.c  */
    5022 #line 344 "parser.yy"
    5023     {
    5024                         appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
    5025                         delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
    5026                         (yyval.str) = (yyvsp[(1) - (2)].str);                                                                   // conversion from tok to str
     4522#line 344 "parser.yy" /* yacc.c:1646  */
     4523    {
     4524                        appendStr( (yyvsp[-1].str), (yyvsp[0].tok) );                                           // append 2nd juxtaposed string to 1st
     4525                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
     4526                        (yyval.str) = (yyvsp[-1].str);                                                                  // conversion from tok to str
    50274527                }
     4528#line 4529 "Parser/parser.cc" /* yacc.c:1646  */
    50284529    break;
    50294530
    50304531  case 19:
    5031 
    5032 /* Line 1806 of yacc.c  */
    5033 #line 355 "parser.yy"
    5034     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4532#line 355 "parser.yy" /* yacc.c:1646  */
     4533    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4534#line 4535 "Parser/parser.cc" /* yacc.c:1646  */
    50354535    break;
    50364536
    50374537  case 20:
    5038 
    5039 /* Line 1806 of yacc.c  */
    5040 #line 357 "parser.yy"
    5041     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4538#line 357 "parser.yy" /* yacc.c:1646  */
     4539    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4540#line 4541 "Parser/parser.cc" /* yacc.c:1646  */
    50424541    break;
    50434542
    50444543  case 21:
    5045 
    5046 /* Line 1806 of yacc.c  */
    5047 #line 359 "parser.yy"
    5048     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     4544#line 359 "parser.yy" /* yacc.c:1646  */
     4545    { (yyval.en) = (yyvsp[-1].en); }
     4546#line 4547 "Parser/parser.cc" /* yacc.c:1646  */
    50494547    break;
    50504548
    50514549  case 22:
    5052 
    5053 /* Line 1806 of yacc.c  */
    5054 #line 361 "parser.yy"
    5055     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
     4550#line 361 "parser.yy" /* yacc.c:1646  */
     4551    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
     4552#line 4553 "Parser/parser.cc" /* yacc.c:1646  */
    50564553    break;
    50574554
    50584555  case 24:
    5059 
    5060 /* Line 1806 of yacc.c  */
    5061 #line 371 "parser.yy"
    5062     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
     4556#line 371 "parser.yy" /* yacc.c:1646  */
     4557    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); }
     4558#line 4559 "Parser/parser.cc" /* yacc.c:1646  */
    50634559    break;
    50644560
    50654561  case 25:
    5066 
    5067 /* Line 1806 of yacc.c  */
    5068 #line 373 "parser.yy"
    5069     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     4562#line 373 "parser.yy" /* yacc.c:1646  */
     4563    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); }
     4564#line 4565 "Parser/parser.cc" /* yacc.c:1646  */
    50704565    break;
    50714566
    50724567  case 26:
    5073 
    5074 /* Line 1806 of yacc.c  */
    5075 #line 377 "parser.yy"
    5076     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     4568#line 377 "parser.yy" /* yacc.c:1646  */
     4569    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
     4570#line 4571 "Parser/parser.cc" /* yacc.c:1646  */
    50774571    break;
    50784572
    50794573  case 28:
    5080 
    5081 /* Line 1806 of yacc.c  */
    5082 #line 380 "parser.yy"
    5083     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     4574#line 380 "parser.yy" /* yacc.c:1646  */
     4575    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
     4576#line 4577 "Parser/parser.cc" /* yacc.c:1646  */
    50844577    break;
    50854578
    50864579  case 30:
    5087 
    5088 /* Line 1806 of yacc.c  */
    5089 #line 383 "parser.yy"
    5090     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     4580#line 383 "parser.yy" /* yacc.c:1646  */
     4581    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); }
     4582#line 4583 "Parser/parser.cc" /* yacc.c:1646  */
    50914583    break;
    50924584
    50934585  case 31:
    5094 
    5095 /* Line 1806 of yacc.c  */
    5096 #line 385 "parser.yy"
    5097     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     4586#line 385 "parser.yy" /* yacc.c:1646  */
     4587    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); }
     4588#line 4589 "Parser/parser.cc" /* yacc.c:1646  */
    50984589    break;
    50994590
    51004591  case 32:
    5101 
    5102 /* Line 1806 of yacc.c  */
    5103 #line 387 "parser.yy"
    5104     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
     4592#line 387 "parser.yy" /* yacc.c:1646  */
     4593    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); }
     4594#line 4595 "Parser/parser.cc" /* yacc.c:1646  */
    51054595    break;
    51064596
    51074597  case 33:
    5108 
    5109 /* Line 1806 of yacc.c  */
    5110 #line 389 "parser.yy"
     4598#line 389 "parser.yy" /* yacc.c:1646  */
    51114599    {
    51124600                        Token fn;
    51134601                        fn.str = new std::string( "?{}" ); // location undefined
    5114                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
     4602                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );
    51154603                }
     4604#line 4605 "Parser/parser.cc" /* yacc.c:1646  */
    51164605    break;
    51174606
    51184607  case 35:
    5119 
    5120 /* Line 1806 of yacc.c  */
    5121 #line 399 "parser.yy"
    5122     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     4608#line 399 "parser.yy" /* yacc.c:1646  */
     4609    { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
     4610#line 4611 "Parser/parser.cc" /* yacc.c:1646  */
    51234611    break;
    51244612
    51254613  case 36:
    5126 
    5127 /* Line 1806 of yacc.c  */
    5128 #line 404 "parser.yy"
     4614#line 404 "parser.yy" /* yacc.c:1646  */
    51294615    { (yyval.en) = 0; }
     4616#line 4617 "Parser/parser.cc" /* yacc.c:1646  */
    51304617    break;
    51314618
    51324619  case 39:
    5133 
    5134 /* Line 1806 of yacc.c  */
    5135 #line 410 "parser.yy"
    5136     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     4620#line 410 "parser.yy" /* yacc.c:1646  */
     4621    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     4622#line 4623 "Parser/parser.cc" /* yacc.c:1646  */
    51374623    break;
    51384624
    51394625  case 40:
    5140 
    5141 /* Line 1806 of yacc.c  */
    5142 #line 415 "parser.yy"
    5143     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4626#line 415 "parser.yy" /* yacc.c:1646  */
     4627    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4628#line 4629 "Parser/parser.cc" /* yacc.c:1646  */
    51444629    break;
    51454630
    51464631  case 41:
    5147 
    5148 /* Line 1806 of yacc.c  */
    5149 #line 419 "parser.yy"
    5150     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     4632#line 419 "parser.yy" /* yacc.c:1646  */
     4633    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
     4634#line 4635 "Parser/parser.cc" /* yacc.c:1646  */
    51514635    break;
    51524636
    51534637  case 42:
    5154 
    5155 /* Line 1806 of yacc.c  */
    5156 #line 421 "parser.yy"
    5157     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     4638#line 421 "parser.yy" /* yacc.c:1646  */
     4639    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
     4640#line 4641 "Parser/parser.cc" /* yacc.c:1646  */
    51584641    break;
    51594642
    51604643  case 43:
    5161 
    5162 /* Line 1806 of yacc.c  */
    5163 #line 423 "parser.yy"
    5164     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     4644#line 423 "parser.yy" /* yacc.c:1646  */
     4645    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
     4646#line 4647 "Parser/parser.cc" /* yacc.c:1646  */
    51654647    break;
    51664648
    51674649  case 44:
    5168 
    5169 /* Line 1806 of yacc.c  */
    5170 #line 425 "parser.yy"
    5171     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     4650#line 425 "parser.yy" /* yacc.c:1646  */
     4651    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
     4652#line 4653 "Parser/parser.cc" /* yacc.c:1646  */
    51724653    break;
    51734654
    51744655  case 46:
    5175 
    5176 /* Line 1806 of yacc.c  */
    5177 #line 433 "parser.yy"
    5178     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     4656#line 433 "parser.yy" /* yacc.c:1646  */
     4657    { (yyval.en) = (yyvsp[0].en); }
     4658#line 4659 "Parser/parser.cc" /* yacc.c:1646  */
    51794659    break;
    51804660
    51814661  case 47:
    5182 
    5183 /* Line 1806 of yacc.c  */
    5184 #line 435 "parser.yy"
    5185     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     4662#line 435 "parser.yy" /* yacc.c:1646  */
     4663    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     4664#line 4665 "Parser/parser.cc" /* yacc.c:1646  */
    51864665    break;
    51874666
    51884667  case 48:
    5189 
    5190 /* Line 1806 of yacc.c  */
    5191 #line 437 "parser.yy"
    5192     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     4668#line 437 "parser.yy" /* yacc.c:1646  */
     4669    { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
     4670#line 4671 "Parser/parser.cc" /* yacc.c:1646  */
    51934671    break;
    51944672
    51954673  case 49:
    5196 
    5197 /* Line 1806 of yacc.c  */
    5198 #line 442 "parser.yy"
    5199     {
    5200                         switch ( (yyvsp[(1) - (2)].op) ) {
     4674#line 442 "parser.yy" /* yacc.c:1646  */
     4675    {
     4676                        switch ( (yyvsp[-1].op) ) {
    52014677                          case OperKinds::AddressOf:
    5202                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     4678                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
    52034679                                break;
    52044680                          case OperKinds::PointTo:
    5205                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     4681                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
    52064682                                break;
    52074683                          default:
     
    52094685                        }
    52104686                }
     4687#line 4688 "Parser/parser.cc" /* yacc.c:1646  */
    52114688    break;
    52124689
    52134690  case 50:
    5214 
    5215 /* Line 1806 of yacc.c  */
    5216 #line 455 "parser.yy"
    5217     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     4691#line 455 "parser.yy" /* yacc.c:1646  */
     4692    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
     4693#line 4694 "Parser/parser.cc" /* yacc.c:1646  */
    52184694    break;
    52194695
    52204696  case 51:
    5221 
    5222 /* Line 1806 of yacc.c  */
    5223 #line 457 "parser.yy"
    5224     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     4697#line 457 "parser.yy" /* yacc.c:1646  */
     4698    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
     4699#line 4700 "Parser/parser.cc" /* yacc.c:1646  */
    52254700    break;
    52264701
    52274702  case 52:
    5228 
    5229 /* Line 1806 of yacc.c  */
    5230 #line 459 "parser.yy"
    5231     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     4703#line 459 "parser.yy" /* yacc.c:1646  */
     4704    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
     4705#line 4706 "Parser/parser.cc" /* yacc.c:1646  */
    52324706    break;
    52334707
    52344708  case 53:
    5235 
    5236 /* Line 1806 of yacc.c  */
    5237 #line 461 "parser.yy"
    5238     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4709#line 461 "parser.yy" /* yacc.c:1646  */
     4710    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
     4711#line 4712 "Parser/parser.cc" /* yacc.c:1646  */
    52394712    break;
    52404713
    52414714  case 54:
    5242 
    5243 /* Line 1806 of yacc.c  */
    5244 #line 463 "parser.yy"
    5245     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4715#line 463 "parser.yy" /* yacc.c:1646  */
     4716    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
     4717#line 4718 "Parser/parser.cc" /* yacc.c:1646  */
    52464718    break;
    52474719
    52484720  case 55:
    5249 
    5250 /* Line 1806 of yacc.c  */
    5251 #line 465 "parser.yy"
    5252     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4721#line 465 "parser.yy" /* yacc.c:1646  */
     4722    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
     4723#line 4724 "Parser/parser.cc" /* yacc.c:1646  */
    52534724    break;
    52544725
    52554726  case 56:
    5256 
    5257 /* Line 1806 of yacc.c  */
    5258 #line 467 "parser.yy"
    5259     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4727#line 467 "parser.yy" /* yacc.c:1646  */
     4728    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
     4729#line 4730 "Parser/parser.cc" /* yacc.c:1646  */
    52604730    break;
    52614731
    52624732  case 57:
    5263 
    5264 /* Line 1806 of yacc.c  */
    5265 #line 469 "parser.yy"
    5266     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     4733#line 469 "parser.yy" /* yacc.c:1646  */
     4734    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
     4735#line 4736 "Parser/parser.cc" /* yacc.c:1646  */
    52674736    break;
    52684737
    52694738  case 58:
    5270 
    5271 /* Line 1806 of yacc.c  */
    5272 #line 471 "parser.yy"
    5273     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     4739#line 471 "parser.yy" /* yacc.c:1646  */
     4740    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
     4741#line 4742 "Parser/parser.cc" /* yacc.c:1646  */
    52744742    break;
    52754743
    52764744  case 59:
    5277 
    5278 /* Line 1806 of yacc.c  */
    5279 #line 473 "parser.yy"
    5280     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     4745#line 473 "parser.yy" /* yacc.c:1646  */
     4746    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
     4747#line 4748 "Parser/parser.cc" /* yacc.c:1646  */
    52814748    break;
    52824749
    52834750  case 60:
    5284 
    5285 /* Line 1806 of yacc.c  */
    5286 #line 475 "parser.yy"
    5287     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     4751#line 475 "parser.yy" /* yacc.c:1646  */
     4752    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
     4753#line 4754 "Parser/parser.cc" /* yacc.c:1646  */
    52884754    break;
    52894755
    52904756  case 61:
    5291 
    5292 /* Line 1806 of yacc.c  */
    5293 #line 481 "parser.yy"
     4757#line 481 "parser.yy" /* yacc.c:1646  */
    52944758    { (yyval.op) = OperKinds::PointTo; }
     4759#line 4760 "Parser/parser.cc" /* yacc.c:1646  */
    52954760    break;
    52964761
    52974762  case 62:
    5298 
    5299 /* Line 1806 of yacc.c  */
    5300 #line 482 "parser.yy"
     4763#line 482 "parser.yy" /* yacc.c:1646  */
    53014764    { (yyval.op) = OperKinds::AddressOf; }
     4765#line 4766 "Parser/parser.cc" /* yacc.c:1646  */
    53024766    break;
    53034767
    53044768  case 63:
    5305 
    5306 /* Line 1806 of yacc.c  */
    5307 #line 488 "parser.yy"
     4769#line 488 "parser.yy" /* yacc.c:1646  */
    53084770    { (yyval.op) = OperKinds::UnPlus; }
     4771#line 4772 "Parser/parser.cc" /* yacc.c:1646  */
    53094772    break;
    53104773
    53114774  case 64:
    5312 
    5313 /* Line 1806 of yacc.c  */
    5314 #line 489 "parser.yy"
     4775#line 489 "parser.yy" /* yacc.c:1646  */
    53154776    { (yyval.op) = OperKinds::UnMinus; }
     4777#line 4778 "Parser/parser.cc" /* yacc.c:1646  */
    53164778    break;
    53174779
    53184780  case 65:
    5319 
    5320 /* Line 1806 of yacc.c  */
    5321 #line 490 "parser.yy"
     4781#line 490 "parser.yy" /* yacc.c:1646  */
    53224782    { (yyval.op) = OperKinds::Neg; }
     4783#line 4784 "Parser/parser.cc" /* yacc.c:1646  */
    53234784    break;
    53244785
    53254786  case 66:
    5326 
    5327 /* Line 1806 of yacc.c  */
    5328 #line 491 "parser.yy"
     4787#line 491 "parser.yy" /* yacc.c:1646  */
    53294788    { (yyval.op) = OperKinds::BitNeg; }
     4789#line 4790 "Parser/parser.cc" /* yacc.c:1646  */
    53304790    break;
    53314791
    53324792  case 68:
    5333 
    5334 /* Line 1806 of yacc.c  */
    5335 #line 497 "parser.yy"
    5336     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     4793#line 497 "parser.yy" /* yacc.c:1646  */
     4794    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
     4795#line 4796 "Parser/parser.cc" /* yacc.c:1646  */
    53374796    break;
    53384797
    53394798  case 69:
    5340 
    5341 /* Line 1806 of yacc.c  */
    5342 #line 499 "parser.yy"
    5343     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     4799#line 499 "parser.yy" /* yacc.c:1646  */
     4800    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
     4801#line 4802 "Parser/parser.cc" /* yacc.c:1646  */
    53444802    break;
    53454803
    53464804  case 71:
    5347 
    5348 /* Line 1806 of yacc.c  */
    5349 #line 505 "parser.yy"
    5350     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4805#line 505 "parser.yy" /* yacc.c:1646  */
     4806    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4807#line 4808 "Parser/parser.cc" /* yacc.c:1646  */
    53514808    break;
    53524809
    53534810  case 72:
    5354 
    5355 /* Line 1806 of yacc.c  */
    5356 #line 507 "parser.yy"
    5357     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4811#line 507 "parser.yy" /* yacc.c:1646  */
     4812    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4813#line 4814 "Parser/parser.cc" /* yacc.c:1646  */
    53584814    break;
    53594815
    53604816  case 73:
    5361 
    5362 /* Line 1806 of yacc.c  */
    5363 #line 509 "parser.yy"
    5364     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4817#line 509 "parser.yy" /* yacc.c:1646  */
     4818    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4819#line 4820 "Parser/parser.cc" /* yacc.c:1646  */
    53654820    break;
    53664821
    53674822  case 75:
    5368 
    5369 /* Line 1806 of yacc.c  */
    5370 #line 515 "parser.yy"
    5371     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4823#line 515 "parser.yy" /* yacc.c:1646  */
     4824    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4825#line 4826 "Parser/parser.cc" /* yacc.c:1646  */
    53724826    break;
    53734827
    53744828  case 76:
    5375 
    5376 /* Line 1806 of yacc.c  */
    5377 #line 517 "parser.yy"
    5378     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4829#line 517 "parser.yy" /* yacc.c:1646  */
     4830    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4831#line 4832 "Parser/parser.cc" /* yacc.c:1646  */
    53794832    break;
    53804833
    53814834  case 78:
    5382 
    5383 /* Line 1806 of yacc.c  */
    5384 #line 523 "parser.yy"
    5385     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4835#line 523 "parser.yy" /* yacc.c:1646  */
     4836    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4837#line 4838 "Parser/parser.cc" /* yacc.c:1646  */
    53864838    break;
    53874839
    53884840  case 79:
    5389 
    5390 /* Line 1806 of yacc.c  */
    5391 #line 525 "parser.yy"
    5392     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4841#line 525 "parser.yy" /* yacc.c:1646  */
     4842    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4843#line 4844 "Parser/parser.cc" /* yacc.c:1646  */
    53934844    break;
    53944845
    53954846  case 81:
    5396 
    5397 /* Line 1806 of yacc.c  */
    5398 #line 531 "parser.yy"
    5399     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4847#line 531 "parser.yy" /* yacc.c:1646  */
     4848    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4849#line 4850 "Parser/parser.cc" /* yacc.c:1646  */
    54004850    break;
    54014851
    54024852  case 82:
    5403 
    5404 /* Line 1806 of yacc.c  */
    5405 #line 533 "parser.yy"
    5406     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4853#line 533 "parser.yy" /* yacc.c:1646  */
     4854    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4855#line 4856 "Parser/parser.cc" /* yacc.c:1646  */
    54074856    break;
    54084857
    54094858  case 83:
    5410 
    5411 /* Line 1806 of yacc.c  */
    5412 #line 535 "parser.yy"
    5413     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4859#line 535 "parser.yy" /* yacc.c:1646  */
     4860    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4861#line 4862 "Parser/parser.cc" /* yacc.c:1646  */
    54144862    break;
    54154863
    54164864  case 84:
    5417 
    5418 /* Line 1806 of yacc.c  */
    5419 #line 537 "parser.yy"
    5420     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4865#line 537 "parser.yy" /* yacc.c:1646  */
     4866    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4867#line 4868 "Parser/parser.cc" /* yacc.c:1646  */
    54214868    break;
    54224869
    54234870  case 86:
    5424 
    5425 /* Line 1806 of yacc.c  */
    5426 #line 543 "parser.yy"
    5427     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4871#line 543 "parser.yy" /* yacc.c:1646  */
     4872    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4873#line 4874 "Parser/parser.cc" /* yacc.c:1646  */
    54284874    break;
    54294875
    54304876  case 87:
    5431 
    5432 /* Line 1806 of yacc.c  */
    5433 #line 545 "parser.yy"
    5434     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4877#line 545 "parser.yy" /* yacc.c:1646  */
     4878    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4879#line 4880 "Parser/parser.cc" /* yacc.c:1646  */
    54354880    break;
    54364881
    54374882  case 89:
    5438 
    5439 /* Line 1806 of yacc.c  */
    5440 #line 551 "parser.yy"
    5441     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4883#line 551 "parser.yy" /* yacc.c:1646  */
     4884    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4885#line 4886 "Parser/parser.cc" /* yacc.c:1646  */
    54424886    break;
    54434887
    54444888  case 91:
    5445 
    5446 /* Line 1806 of yacc.c  */
    5447 #line 557 "parser.yy"
    5448     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4889#line 557 "parser.yy" /* yacc.c:1646  */
     4890    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4891#line 4892 "Parser/parser.cc" /* yacc.c:1646  */
    54494892    break;
    54504893
    54514894  case 93:
    5452 
    5453 /* Line 1806 of yacc.c  */
    5454 #line 563 "parser.yy"
    5455     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4895#line 563 "parser.yy" /* yacc.c:1646  */
     4896    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4897#line 4898 "Parser/parser.cc" /* yacc.c:1646  */
    54564898    break;
    54574899
    54584900  case 95:
    5459 
    5460 /* Line 1806 of yacc.c  */
    5461 #line 569 "parser.yy"
    5462     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     4901#line 569 "parser.yy" /* yacc.c:1646  */
     4902    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
     4903#line 4904 "Parser/parser.cc" /* yacc.c:1646  */
    54634904    break;
    54644905
    54654906  case 97:
    5466 
    5467 /* Line 1806 of yacc.c  */
    5468 #line 575 "parser.yy"
    5469     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     4907#line 575 "parser.yy" /* yacc.c:1646  */
     4908    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
     4909#line 4910 "Parser/parser.cc" /* yacc.c:1646  */
    54704910    break;
    54714911
    54724912  case 99:
    5473 
    5474 /* Line 1806 of yacc.c  */
    5475 #line 581 "parser.yy"
    5476     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     4913#line 581 "parser.yy" /* yacc.c:1646  */
     4914    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4915#line 4916 "Parser/parser.cc" /* yacc.c:1646  */
    54774916    break;
    54784917
    54794918  case 100:
    5480 
    5481 /* Line 1806 of yacc.c  */
    5482 #line 584 "parser.yy"
    5483     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     4919#line 584 "parser.yy" /* yacc.c:1646  */
     4920    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
     4921#line 4922 "Parser/parser.cc" /* yacc.c:1646  */
    54844922    break;
    54854923
    54864924  case 101:
    5487 
    5488 /* Line 1806 of yacc.c  */
    5489 #line 586 "parser.yy"
    5490     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     4925#line 586 "parser.yy" /* yacc.c:1646  */
     4926    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4927#line 4928 "Parser/parser.cc" /* yacc.c:1646  */
    54914928    break;
    54924929
    54934930  case 104:
    5494 
    5495 /* Line 1806 of yacc.c  */
    5496 #line 597 "parser.yy"
    5497     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     4931#line 597 "parser.yy" /* yacc.c:1646  */
     4932    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     4933#line 4934 "Parser/parser.cc" /* yacc.c:1646  */
    54984934    break;
    54994935
    55004936  case 105:
    5501 
    5502 /* Line 1806 of yacc.c  */
    5503 #line 599 "parser.yy"
    5504     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     4937#line 599 "parser.yy" /* yacc.c:1646  */
     4938    { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); }
     4939#line 4940 "Parser/parser.cc" /* yacc.c:1646  */
    55054940    break;
    55064941
    55074942  case 106:
    5508 
    5509 /* Line 1806 of yacc.c  */
    5510 #line 604 "parser.yy"
     4943#line 604 "parser.yy" /* yacc.c:1646  */
    55114944    { (yyval.en) = nullptr; }
     4945#line 4946 "Parser/parser.cc" /* yacc.c:1646  */
    55124946    break;
    55134947
    55144948  case 108:
    5515 
    5516 /* Line 1806 of yacc.c  */
    5517 #line 609 "parser.yy"
     4949#line 609 "parser.yy" /* yacc.c:1646  */
    55184950    { (yyval.op) = OperKinds::Assign; }
     4951#line 4952 "Parser/parser.cc" /* yacc.c:1646  */
    55194952    break;
    55204953
    55214954  case 109:
    5522 
    5523 /* Line 1806 of yacc.c  */
    5524 #line 610 "parser.yy"
     4955#line 610 "parser.yy" /* yacc.c:1646  */
    55254956    { (yyval.op) = OperKinds::AtAssn; }
     4957#line 4958 "Parser/parser.cc" /* yacc.c:1646  */
    55264958    break;
    55274959
    55284960  case 110:
    5529 
    5530 /* Line 1806 of yacc.c  */
    5531 #line 611 "parser.yy"
     4961#line 611 "parser.yy" /* yacc.c:1646  */
    55324962    { (yyval.op) = OperKinds::MulAssn; }
     4963#line 4964 "Parser/parser.cc" /* yacc.c:1646  */
    55334964    break;
    55344965
    55354966  case 111:
    5536 
    5537 /* Line 1806 of yacc.c  */
    5538 #line 612 "parser.yy"
     4967#line 612 "parser.yy" /* yacc.c:1646  */
    55394968    { (yyval.op) = OperKinds::DivAssn; }
     4969#line 4970 "Parser/parser.cc" /* yacc.c:1646  */
    55404970    break;
    55414971
    55424972  case 112:
    5543 
    5544 /* Line 1806 of yacc.c  */
    5545 #line 613 "parser.yy"
     4973#line 613 "parser.yy" /* yacc.c:1646  */
    55464974    { (yyval.op) = OperKinds::ModAssn; }
     4975#line 4976 "Parser/parser.cc" /* yacc.c:1646  */
    55474976    break;
    55484977
    55494978  case 113:
    5550 
    5551 /* Line 1806 of yacc.c  */
    5552 #line 614 "parser.yy"
     4979#line 614 "parser.yy" /* yacc.c:1646  */
    55534980    { (yyval.op) = OperKinds::PlusAssn; }
     4981#line 4982 "Parser/parser.cc" /* yacc.c:1646  */
    55544982    break;
    55554983
    55564984  case 114:
    5557 
    5558 /* Line 1806 of yacc.c  */
    5559 #line 615 "parser.yy"
     4985#line 615 "parser.yy" /* yacc.c:1646  */
    55604986    { (yyval.op) = OperKinds::MinusAssn; }
     4987#line 4988 "Parser/parser.cc" /* yacc.c:1646  */
    55614988    break;
    55624989
    55634990  case 115:
    5564 
    5565 /* Line 1806 of yacc.c  */
    5566 #line 616 "parser.yy"
     4991#line 616 "parser.yy" /* yacc.c:1646  */
    55674992    { (yyval.op) = OperKinds::LSAssn; }
     4993#line 4994 "Parser/parser.cc" /* yacc.c:1646  */
    55684994    break;
    55694995
    55704996  case 116:
    5571 
    5572 /* Line 1806 of yacc.c  */
    5573 #line 617 "parser.yy"
     4997#line 617 "parser.yy" /* yacc.c:1646  */
    55744998    { (yyval.op) = OperKinds::RSAssn; }
     4999#line 5000 "Parser/parser.cc" /* yacc.c:1646  */
    55755000    break;
    55765001
    55775002  case 117:
    5578 
    5579 /* Line 1806 of yacc.c  */
    5580 #line 618 "parser.yy"
     5003#line 618 "parser.yy" /* yacc.c:1646  */
    55815004    { (yyval.op) = OperKinds::AndAssn; }
     5005#line 5006 "Parser/parser.cc" /* yacc.c:1646  */
    55825006    break;
    55835007
    55845008  case 118:
    5585 
    5586 /* Line 1806 of yacc.c  */
    5587 #line 619 "parser.yy"
     5009#line 619 "parser.yy" /* yacc.c:1646  */
    55885010    { (yyval.op) = OperKinds::ERAssn; }
     5011#line 5012 "Parser/parser.cc" /* yacc.c:1646  */
    55895012    break;
    55905013
    55915014  case 119:
    5592 
    5593 /* Line 1806 of yacc.c  */
    5594 #line 620 "parser.yy"
     5015#line 620 "parser.yy" /* yacc.c:1646  */
    55955016    { (yyval.op) = OperKinds::OrAssn; }
     5017#line 5018 "Parser/parser.cc" /* yacc.c:1646  */
    55965018    break;
    55975019
    55985020  case 120:
    5599 
    5600 /* Line 1806 of yacc.c  */
    5601 #line 627 "parser.yy"
     5021#line 627 "parser.yy" /* yacc.c:1646  */
    56025022    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5023#line 5024 "Parser/parser.cc" /* yacc.c:1646  */
    56035024    break;
    56045025
    56055026  case 121:
    5606 
    5607 /* Line 1806 of yacc.c  */
    5608 #line 629 "parser.yy"
    5609     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5027#line 629 "parser.yy" /* yacc.c:1646  */
     5028    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); }
     5029#line 5030 "Parser/parser.cc" /* yacc.c:1646  */
    56105030    break;
    56115031
    56125032  case 122:
    5613 
    5614 /* Line 1806 of yacc.c  */
    5615 #line 631 "parser.yy"
    5616     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5033#line 631 "parser.yy" /* yacc.c:1646  */
     5034    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
     5035#line 5036 "Parser/parser.cc" /* yacc.c:1646  */
    56175036    break;
    56185037
    56195038  case 123:
    5620 
    5621 /* Line 1806 of yacc.c  */
    5622 #line 633 "parser.yy"
    5623     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5039#line 633 "parser.yy" /* yacc.c:1646  */
     5040    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
     5041#line 5042 "Parser/parser.cc" /* yacc.c:1646  */
    56245042    break;
    56255043
    56265044  case 125:
    5627 
    5628 /* Line 1806 of yacc.c  */
    5629 #line 639 "parser.yy"
    5630     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5045#line 639 "parser.yy" /* yacc.c:1646  */
     5046    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5047#line 5048 "Parser/parser.cc" /* yacc.c:1646  */
    56315048    break;
    56325049
    56335050  case 127:
    5634 
    5635 /* Line 1806 of yacc.c  */
    5636 #line 645 "parser.yy"
    5637     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5051#line 645 "parser.yy" /* yacc.c:1646  */
     5052    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5053#line 5054 "Parser/parser.cc" /* yacc.c:1646  */
    56385054    break;
    56395055
    56405056  case 128:
    5641 
    5642 /* Line 1806 of yacc.c  */
    5643 #line 650 "parser.yy"
     5057#line 650 "parser.yy" /* yacc.c:1646  */
    56445058    { (yyval.en) = 0; }
     5059#line 5060 "Parser/parser.cc" /* yacc.c:1646  */
    56455060    break;
    56465061
    56475062  case 132:
    5648 
    5649 /* Line 1806 of yacc.c  */
    5650 #line 659 "parser.yy"
    5651     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5063#line 659 "parser.yy" /* yacc.c:1646  */
     5064    { (yyval.sn) = (yyvsp[0].sn); }
     5065#line 5066 "Parser/parser.cc" /* yacc.c:1646  */
    56525066    break;
    56535067
    56545068  case 138:
    5655 
    5656 /* Line 1806 of yacc.c  */
    5657 #line 666 "parser.yy"
     5069#line 666 "parser.yy" /* yacc.c:1646  */
    56585070    {
    56595071                        Token fn;
    56605072                        fn.str = new std::string( "^?{}" ); // location undefined
    5661                         (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) ) ) ) ) );
     5073                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
    56625074                }
     5075#line 5076 "Parser/parser.cc" /* yacc.c:1646  */
    56635076    break;
    56645077
    56655078  case 139:
    5666 
    5667 /* Line 1806 of yacc.c  */
    5668 #line 676 "parser.yy"
    5669     {
    5670                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5079#line 676 "parser.yy" /* yacc.c:1646  */
     5080    {
     5081                        (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
    56715082                }
     5083#line 5084 "Parser/parser.cc" /* yacc.c:1646  */
    56725084    break;
    56735085
    56745086  case 140:
    5675 
    5676 /* Line 1806 of yacc.c  */
    5677 #line 683 "parser.yy"
     5087#line 683 "parser.yy" /* yacc.c:1646  */
    56785088    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5089#line 5090 "Parser/parser.cc" /* yacc.c:1646  */
    56795090    break;
    56805091
    56815092  case 141:
    5682 
    5683 /* Line 1806 of yacc.c  */
    5684 #line 690 "parser.yy"
    5685     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5093#line 690 "parser.yy" /* yacc.c:1646  */
     5094    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
     5095#line 5096 "Parser/parser.cc" /* yacc.c:1646  */
    56865096    break;
    56875097
    56885098  case 143:
    5689 
    5690 /* Line 1806 of yacc.c  */
    5691 #line 696 "parser.yy"
    5692     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5099#line 696 "parser.yy" /* yacc.c:1646  */
     5100    { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
     5101#line 5102 "Parser/parser.cc" /* yacc.c:1646  */
    56935102    break;
    56945103
    56955104  case 144:
    5696 
    5697 /* Line 1806 of yacc.c  */
    5698 #line 701 "parser.yy"
    5699     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5105#line 701 "parser.yy" /* yacc.c:1646  */
     5106    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5107#line 5108 "Parser/parser.cc" /* yacc.c:1646  */
    57005108    break;
    57015109
    57025110  case 145:
    5703 
    5704 /* Line 1806 of yacc.c  */
    5705 #line 703 "parser.yy"
     5111#line 703 "parser.yy" /* yacc.c:1646  */
    57065112    {   // mark all fields in list
    5707                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5113                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    57085114                                iter->set_extension( true );
    5709                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
     5115                        (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
    57105116                }
     5117#line 5118 "Parser/parser.cc" /* yacc.c:1646  */
    57115118    break;
    57125119
    57135120  case 146:
    5714 
    5715 /* Line 1806 of yacc.c  */
    5716 #line 709 "parser.yy"
    5717     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5121#line 709 "parser.yy" /* yacc.c:1646  */
     5122    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5123#line 5124 "Parser/parser.cc" /* yacc.c:1646  */
    57185124    break;
    57195125
    57205126  case 149:
    5721 
    5722 /* Line 1806 of yacc.c  */
    5723 #line 716 "parser.yy"
    5724     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5127#line 716 "parser.yy" /* yacc.c:1646  */
     5128    { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
     5129#line 5130 "Parser/parser.cc" /* yacc.c:1646  */
    57255130    break;
    57265131
    57275132  case 150:
    5728 
    5729 /* Line 1806 of yacc.c  */
    5730 #line 721 "parser.yy"
    5731     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5133#line 721 "parser.yy" /* yacc.c:1646  */
     5134    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
     5135#line 5136 "Parser/parser.cc" /* yacc.c:1646  */
    57325136    break;
    57335137
    57345138  case 151:
    5735 
    5736 /* Line 1806 of yacc.c  */
    5737 #line 727 "parser.yy"
    5738     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5139#line 727 "parser.yy" /* yacc.c:1646  */
     5140    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
     5141#line 5142 "Parser/parser.cc" /* yacc.c:1646  */
    57395142    break;
    57405143
    57415144  case 152:
    5742 
    5743 /* Line 1806 of yacc.c  */
    5744 #line 729 "parser.yy"
    5745     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5145#line 729 "parser.yy" /* yacc.c:1646  */
     5146    { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
     5147#line 5148 "Parser/parser.cc" /* yacc.c:1646  */
    57465148    break;
    57475149
    57485150  case 153:
    5749 
    5750 /* Line 1806 of yacc.c  */
    5751 #line 731 "parser.yy"
    5752     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5151#line 731 "parser.yy" /* yacc.c:1646  */
     5152    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5153#line 5154 "Parser/parser.cc" /* yacc.c:1646  */
    57535154    break;
    57545155
    57555156  case 154:
    5756 
    5757 /* Line 1806 of yacc.c  */
    5758 #line 733 "parser.yy"
    5759     {
    5760                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5157#line 733 "parser.yy" /* yacc.c:1646  */
     5158    {
     5159                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    57615160                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    57625161                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    57645163                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57655164                        // statement.
    5766                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5165                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57675166                }
     5167#line 5168 "Parser/parser.cc" /* yacc.c:1646  */
    57685168    break;
    57695169
    57705170  case 155:
    5771 
    5772 /* Line 1806 of yacc.c  */
    5773 #line 743 "parser.yy"
    5774     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5171#line 743 "parser.yy" /* yacc.c:1646  */
     5172    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5173#line 5174 "Parser/parser.cc" /* yacc.c:1646  */
    57755174    break;
    57765175
    57775176  case 156:
    5778 
    5779 /* Line 1806 of yacc.c  */
    5780 #line 745 "parser.yy"
    5781     {
    5782                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    5783                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5177#line 745 "parser.yy" /* yacc.c:1646  */
     5178    {
     5179                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5180                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57845181                }
     5182#line 5183 "Parser/parser.cc" /* yacc.c:1646  */
    57855183    break;
    57865184
    57875185  case 157:
    5788 
    5789 /* Line 1806 of yacc.c  */
    5790 #line 755 "parser.yy"
    5791     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5186#line 755 "parser.yy" /* yacc.c:1646  */
     5187    { (yyval.en) = (yyvsp[0].en); }
     5188#line 5189 "Parser/parser.cc" /* yacc.c:1646  */
    57925189    break;
    57935190
    57945191  case 158:
    5795 
    5796 /* Line 1806 of yacc.c  */
    5797 #line 757 "parser.yy"
    5798     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5192#line 757 "parser.yy" /* yacc.c:1646  */
     5193    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
     5194#line 5195 "Parser/parser.cc" /* yacc.c:1646  */
    57995195    break;
    58005196
    58015197  case 160:
    5802 
    5803 /* Line 1806 of yacc.c  */
    5804 #line 762 "parser.yy"
    5805     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5198#line 762 "parser.yy" /* yacc.c:1646  */
     5199    { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
     5200#line 5201 "Parser/parser.cc" /* yacc.c:1646  */
    58065201    break;
    58075202
    58085203  case 161:
    5809 
    5810 /* Line 1806 of yacc.c  */
    5811 #line 764 "parser.yy"
    5812     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5204#line 764 "parser.yy" /* yacc.c:1646  */
     5205    { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
     5206#line 5207 "Parser/parser.cc" /* yacc.c:1646  */
    58135207    break;
    58145208
    58155209  case 162:
    5816 
    5817 /* Line 1806 of yacc.c  */
    5818 #line 768 "parser.yy"
    5819     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5210#line 768 "parser.yy" /* yacc.c:1646  */
     5211    { (yyval.sn) = (yyvsp[-1].sn); }
     5212#line 5213 "Parser/parser.cc" /* yacc.c:1646  */
    58205213    break;
    58215214
    58225215  case 163:
    5823 
    5824 /* Line 1806 of yacc.c  */
    5825 #line 769 "parser.yy"
     5216#line 769 "parser.yy" /* yacc.c:1646  */
    58265217    { (yyval.sn) = new StatementNode( build_default() ); }
     5218#line 5219 "Parser/parser.cc" /* yacc.c:1646  */
    58275219    break;
    58285220
    58295221  case 165:
    5830 
    5831 /* Line 1806 of yacc.c  */
    5832 #line 775 "parser.yy"
    5833     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5222#line 775 "parser.yy" /* yacc.c:1646  */
     5223    { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
     5224#line 5225 "Parser/parser.cc" /* yacc.c:1646  */
    58345225    break;
    58355226
    58365227  case 166:
    5837 
    5838 /* Line 1806 of yacc.c  */
    5839 #line 779 "parser.yy"
    5840     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5228#line 779 "parser.yy" /* yacc.c:1646  */
     5229    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5230#line 5231 "Parser/parser.cc" /* yacc.c:1646  */
    58415231    break;
    58425232
    58435233  case 167:
    5844 
    5845 /* Line 1806 of yacc.c  */
    5846 #line 784 "parser.yy"
     5234#line 784 "parser.yy" /* yacc.c:1646  */
    58475235    { (yyval.sn) = 0; }
     5236#line 5237 "Parser/parser.cc" /* yacc.c:1646  */
    58485237    break;
    58495238
    58505239  case 169:
    5851 
    5852 /* Line 1806 of yacc.c  */
    5853 #line 790 "parser.yy"
    5854     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5240#line 790 "parser.yy" /* yacc.c:1646  */
     5241    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
     5242#line 5243 "Parser/parser.cc" /* yacc.c:1646  */
    58555243    break;
    58565244
    58575245  case 170:
    5858 
    5859 /* Line 1806 of yacc.c  */
    5860 #line 792 "parser.yy"
    5861     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5246#line 792 "parser.yy" /* yacc.c:1646  */
     5247    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
     5248#line 5249 "Parser/parser.cc" /* yacc.c:1646  */
    58625249    break;
    58635250
    58645251  case 171:
    5865 
    5866 /* Line 1806 of yacc.c  */
    5867 #line 797 "parser.yy"
     5252#line 797 "parser.yy" /* yacc.c:1646  */
    58685253    { (yyval.sn) = 0; }
     5254#line 5255 "Parser/parser.cc" /* yacc.c:1646  */
    58695255    break;
    58705256
    58715257  case 173:
    5872 
    5873 /* Line 1806 of yacc.c  */
    5874 #line 803 "parser.yy"
    5875     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5258#line 803 "parser.yy" /* yacc.c:1646  */
     5259    { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
     5260#line 5261 "Parser/parser.cc" /* yacc.c:1646  */
    58765261    break;
    58775262
    58785263  case 174:
    5879 
    5880 /* Line 1806 of yacc.c  */
    5881 #line 805 "parser.yy"
    5882     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5264#line 805 "parser.yy" /* yacc.c:1646  */
     5265    { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
     5266#line 5267 "Parser/parser.cc" /* yacc.c:1646  */
    58835267    break;
    58845268
    58855269  case 175:
    5886 
    5887 /* Line 1806 of yacc.c  */
    5888 #line 807 "parser.yy"
    5889     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5270#line 807 "parser.yy" /* yacc.c:1646  */
     5271    { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
     5272#line 5273 "Parser/parser.cc" /* yacc.c:1646  */
    58905273    break;
    58915274
    58925275  case 176:
    5893 
    5894 /* Line 1806 of yacc.c  */
    5895 #line 809 "parser.yy"
    5896     { (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) ) ) ) ) ) ); }
     5276#line 809 "parser.yy" /* yacc.c:1646  */
     5277    { (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) ) ) ) ) ) ); }
     5278#line 5279 "Parser/parser.cc" /* yacc.c:1646  */
    58975279    break;
    58985280
    58995281  case 177:
    5900 
    5901 /* Line 1806 of yacc.c  */
    5902 #line 814 "parser.yy"
     5282#line 814 "parser.yy" /* yacc.c:1646  */
    59035283    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5284#line 5285 "Parser/parser.cc" /* yacc.c:1646  */
    59045285    break;
    59055286
    59065287  case 179:
    5907 
    5908 /* Line 1806 of yacc.c  */
    5909 #line 820 "parser.yy"
     5288#line 820 "parser.yy" /* yacc.c:1646  */
    59105289    { (yyval.sn) = 0; }
     5290#line 5291 "Parser/parser.cc" /* yacc.c:1646  */
    59115291    break;
    59125292
    59135293  case 180:
    5914 
    5915 /* Line 1806 of yacc.c  */
    5916 #line 822 "parser.yy"
     5294#line 822 "parser.yy" /* yacc.c:1646  */
    59175295    { (yyval.sn) = 0; }
     5296#line 5297 "Parser/parser.cc" /* yacc.c:1646  */
    59185297    break;
    59195298
    59205299  case 181:
    5921 
    5922 /* Line 1806 of yacc.c  */
    5923 #line 827 "parser.yy"
    5924     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5300#line 827 "parser.yy" /* yacc.c:1646  */
     5301    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
     5302#line 5303 "Parser/parser.cc" /* yacc.c:1646  */
    59255303    break;
    59265304
    59275305  case 182:
    5928 
    5929 /* Line 1806 of yacc.c  */
    5930 #line 829 "parser.yy"
    5931     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
     5306#line 829 "parser.yy" /* yacc.c:1646  */
     5307    { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); }
     5308#line 5309 "Parser/parser.cc" /* yacc.c:1646  */
    59325309    break;
    59335310
    59345311  case 183:
    5935 
    5936 /* Line 1806 of yacc.c  */
    5937 #line 831 "parser.yy"
    5938     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5312#line 831 "parser.yy" /* yacc.c:1646  */
     5313    { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
     5314#line 5315 "Parser/parser.cc" /* yacc.c:1646  */
    59395315    break;
    59405316
    59415317  case 184:
    5942 
    5943 /* Line 1806 of yacc.c  */
    5944 #line 836 "parser.yy"
    5945     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5318#line 836 "parser.yy" /* yacc.c:1646  */
     5319    { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5320#line 5321 "Parser/parser.cc" /* yacc.c:1646  */
    59465321    break;
    59475322
    59485323  case 185:
    5949 
    5950 /* Line 1806 of yacc.c  */
    5951 #line 838 "parser.yy"
    5952     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5324#line 838 "parser.yy" /* yacc.c:1646  */
     5325    { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
     5326#line 5327 "Parser/parser.cc" /* yacc.c:1646  */
    59535327    break;
    59545328
    59555329  case 186:
    5956 
    5957 /* Line 1806 of yacc.c  */
    5958 #line 843 "parser.yy"
    5959     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5330#line 843 "parser.yy" /* yacc.c:1646  */
     5331    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); }
     5332#line 5333 "Parser/parser.cc" /* yacc.c:1646  */
    59605333    break;
    59615334
    59625335  case 187:
    5963 
    5964 /* Line 1806 of yacc.c  */
    5965 #line 847 "parser.yy"
    5966     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5336#line 847 "parser.yy" /* yacc.c:1646  */
     5337    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
     5338#line 5339 "Parser/parser.cc" /* yacc.c:1646  */
    59675339    break;
    59685340
    59695341  case 188:
    5970 
    5971 /* Line 1806 of yacc.c  */
    5972 #line 850 "parser.yy"
     5342#line 850 "parser.yy" /* yacc.c:1646  */
    59735343    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5344#line 5345 "Parser/parser.cc" /* yacc.c:1646  */
    59745345    break;
    59755346
    59765347  case 189:
    5977 
    5978 /* Line 1806 of yacc.c  */
    5979 #line 854 "parser.yy"
    5980     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     5348#line 854 "parser.yy" /* yacc.c:1646  */
     5349    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); }
     5350#line 5351 "Parser/parser.cc" /* yacc.c:1646  */
    59815351    break;
    59825352
    59835353  case 190:
    5984 
    5985 /* Line 1806 of yacc.c  */
    5986 #line 857 "parser.yy"
     5354#line 857 "parser.yy" /* yacc.c:1646  */
    59875355    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5356#line 5357 "Parser/parser.cc" /* yacc.c:1646  */
    59885357    break;
    59895358
    59905359  case 191:
    5991 
    5992 /* Line 1806 of yacc.c  */
    5993 #line 861 "parser.yy"
    5994     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     5360#line 861 "parser.yy" /* yacc.c:1646  */
     5361    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); }
     5362#line 5363 "Parser/parser.cc" /* yacc.c:1646  */
    59955363    break;
    59965364
    59975365  case 192:
    5998 
    5999 /* Line 1806 of yacc.c  */
    6000 #line 863 "parser.yy"
    6001     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5366#line 863 "parser.yy" /* yacc.c:1646  */
     5367    { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
     5368#line 5369 "Parser/parser.cc" /* yacc.c:1646  */
    60025369    break;
    60035370
    60045371  case 193:
    6005 
    6006 /* Line 1806 of yacc.c  */
    6007 #line 865 "parser.yy"
    6008     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5372#line 865 "parser.yy" /* yacc.c:1646  */
     5373    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5374#line 5375 "Parser/parser.cc" /* yacc.c:1646  */
    60095375    break;
    60105376
    60115377  case 194:
    6012 
    6013 /* Line 1806 of yacc.c  */
    6014 #line 867 "parser.yy"
    6015     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5378#line 867 "parser.yy" /* yacc.c:1646  */
     5379    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5380#line 5381 "Parser/parser.cc" /* yacc.c:1646  */
    60165381    break;
    60175382
    60185383  case 195:
    6019 
    6020 /* Line 1806 of yacc.c  */
    6021 #line 869 "parser.yy"
    6022     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     5384#line 869 "parser.yy" /* yacc.c:1646  */
     5385    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
     5386#line 5387 "Parser/parser.cc" /* yacc.c:1646  */
    60235387    break;
    60245388
    60255389  case 196:
    6026 
    6027 /* Line 1806 of yacc.c  */
    6028 #line 874 "parser.yy"
    6029     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     5390#line 874 "parser.yy" /* yacc.c:1646  */
     5391    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
     5392#line 5393 "Parser/parser.cc" /* yacc.c:1646  */
    60305393    break;
    60315394
    60325395  case 197:
    6033 
    6034 /* Line 1806 of yacc.c  */
    6035 #line 876 "parser.yy"
    6036     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     5396#line 876 "parser.yy" /* yacc.c:1646  */
     5397    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
     5398#line 5399 "Parser/parser.cc" /* yacc.c:1646  */
    60375399    break;
    60385400
    60395401  case 198:
    6040 
    6041 /* Line 1806 of yacc.c  */
    6042 #line 878 "parser.yy"
    6043     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     5402#line 878 "parser.yy" /* yacc.c:1646  */
     5403    { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
     5404#line 5405 "Parser/parser.cc" /* yacc.c:1646  */
    60445405    break;
    60455406
    60465407  case 200:
    6047 
    6048 /* Line 1806 of yacc.c  */
    6049 #line 885 "parser.yy"
    6050     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5408#line 885 "parser.yy" /* yacc.c:1646  */
     5409    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5410#line 5411 "Parser/parser.cc" /* yacc.c:1646  */
    60515411    break;
    60525412
    60535413  case 201:
    6054 
    6055 /* Line 1806 of yacc.c  */
    6056 #line 887 "parser.yy"
    6057     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5414#line 887 "parser.yy" /* yacc.c:1646  */
     5415    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5416#line 5417 "Parser/parser.cc" /* yacc.c:1646  */
    60585417    break;
    60595418
    60605419  case 202:
    6061 
    6062 /* Line 1806 of yacc.c  */
    6063 #line 889 "parser.yy"
    6064     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     5420#line 889 "parser.yy" /* yacc.c:1646  */
     5421    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
     5422#line 5423 "Parser/parser.cc" /* yacc.c:1646  */
    60655423    break;
    60665424
    60675425  case 203:
    6068 
    6069 /* Line 1806 of yacc.c  */
    6070 #line 891 "parser.yy"
    6071     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     5426#line 891 "parser.yy" /* yacc.c:1646  */
     5427    { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
     5428#line 5429 "Parser/parser.cc" /* yacc.c:1646  */
    60725429    break;
    60735430
    60745431  case 204:
    6075 
    6076 /* Line 1806 of yacc.c  */
    6077 #line 896 "parser.yy"
    6078     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5432#line 896 "parser.yy" /* yacc.c:1646  */
     5433    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5434#line 5435 "Parser/parser.cc" /* yacc.c:1646  */
    60795435    break;
    60805436
    60815437  case 205:
    6082 
    6083 /* Line 1806 of yacc.c  */
    6084 #line 898 "parser.yy"
    6085     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5438#line 898 "parser.yy" /* yacc.c:1646  */
     5439    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5440#line 5441 "Parser/parser.cc" /* yacc.c:1646  */
    60865441    break;
    60875442
    60885443  case 206:
    6089 
    6090 /* Line 1806 of yacc.c  */
    6091 #line 900 "parser.yy"
    6092     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     5444#line 900 "parser.yy" /* yacc.c:1646  */
     5445    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
     5446#line 5447 "Parser/parser.cc" /* yacc.c:1646  */
    60935447    break;
    60945448
    60955449  case 207:
    6096 
    6097 /* Line 1806 of yacc.c  */
    6098 #line 902 "parser.yy"
    6099     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     5450#line 902 "parser.yy" /* yacc.c:1646  */
     5451    { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
     5452#line 5453 "Parser/parser.cc" /* yacc.c:1646  */
    61005453    break;
    61015454
    61025455  case 208:
    6103 
    6104 /* Line 1806 of yacc.c  */
    6105 #line 907 "parser.yy"
    6106     {
    6107                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     5456#line 907 "parser.yy" /* yacc.c:1646  */
     5457    {
     5458                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
    61085459                }
     5460#line 5461 "Parser/parser.cc" /* yacc.c:1646  */
    61095461    break;
    61105462
    61115463  case 210:
    6112 
    6113 /* Line 1806 of yacc.c  */
    6114 #line 920 "parser.yy"
     5464#line 920 "parser.yy" /* yacc.c:1646  */
    61155465    {
    61165466                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6117                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     5467                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    61185468                }
     5469#line 5470 "Parser/parser.cc" /* yacc.c:1646  */
    61195470    break;
    61205471
    61215472  case 211:
    6122 
    6123 /* Line 1806 of yacc.c  */
    6124 #line 925 "parser.yy"
    6125     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     5473#line 925 "parser.yy" /* yacc.c:1646  */
     5474    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     5475#line 5476 "Parser/parser.cc" /* yacc.c:1646  */
    61265476    break;
    61275477
    61285478  case 212:
    6129 
    6130 /* Line 1806 of yacc.c  */
    6131 #line 927 "parser.yy"
     5479#line 927 "parser.yy" /* yacc.c:1646  */
    61325480    {
    61335481                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6134                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
     5482                        (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
    61355483                }
     5484#line 5485 "Parser/parser.cc" /* yacc.c:1646  */
    61365485    break;
    61375486
    61385487  case 214:
    6139 
    6140 /* Line 1806 of yacc.c  */
    6141 #line 936 "parser.yy"
    6142     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     5488#line 936 "parser.yy" /* yacc.c:1646  */
     5489    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
     5490#line 5491 "Parser/parser.cc" /* yacc.c:1646  */
    61435491    break;
    61445492
    61455493  case 215:
    6146 
    6147 /* Line 1806 of yacc.c  */
    6148 #line 938 "parser.yy"
    6149     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     5494#line 938 "parser.yy" /* yacc.c:1646  */
     5495    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
     5496#line 5497 "Parser/parser.cc" /* yacc.c:1646  */
    61505497    break;
    61515498
    61525499  case 216:
    6153 
    6154 /* Line 1806 of yacc.c  */
    6155 #line 940 "parser.yy"
    6156     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     5500#line 940 "parser.yy" /* yacc.c:1646  */
     5501    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5502#line 5503 "Parser/parser.cc" /* yacc.c:1646  */
    61575503    break;
    61585504
    61595505  case 217:
    6160 
    6161 /* Line 1806 of yacc.c  */
    6162 #line 942 "parser.yy"
    6163     { (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) ) ); }
     5506#line 942 "parser.yy" /* yacc.c:1646  */
     5507    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
     5508#line 5509 "Parser/parser.cc" /* yacc.c:1646  */
    61645509    break;
    61655510
    61665511  case 218:
    6167 
    6168 /* Line 1806 of yacc.c  */
    6169 #line 944 "parser.yy"
    6170     { (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) ) ); }
     5512#line 944 "parser.yy" /* yacc.c:1646  */
     5513    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
     5514#line 5515 "Parser/parser.cc" /* yacc.c:1646  */
    61715515    break;
    61725516
    61735517  case 219:
    6174 
    6175 /* Line 1806 of yacc.c  */
    6176 #line 949 "parser.yy"
     5518#line 949 "parser.yy" /* yacc.c:1646  */
    61775519    { (yyval.flag) = false; }
     5520#line 5521 "Parser/parser.cc" /* yacc.c:1646  */
    61785521    break;
    61795522
    61805523  case 220:
    6181 
    6182 /* Line 1806 of yacc.c  */
    6183 #line 951 "parser.yy"
     5524#line 951 "parser.yy" /* yacc.c:1646  */
    61845525    { (yyval.flag) = true; }
     5526#line 5527 "Parser/parser.cc" /* yacc.c:1646  */
    61855527    break;
    61865528
    61875529  case 221:
    6188 
    6189 /* Line 1806 of yacc.c  */
    6190 #line 956 "parser.yy"
     5530#line 956 "parser.yy" /* yacc.c:1646  */
    61915531    { (yyval.en) = 0; }
     5532#line 5533 "Parser/parser.cc" /* yacc.c:1646  */
    61925533    break;
    61935534
    61945535  case 224:
    6195 
    6196 /* Line 1806 of yacc.c  */
    6197 #line 963 "parser.yy"
    6198     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5536#line 963 "parser.yy" /* yacc.c:1646  */
     5537    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
     5538#line 5539 "Parser/parser.cc" /* yacc.c:1646  */
    61995539    break;
    62005540
    62015541  case 225:
    6202 
    6203 /* Line 1806 of yacc.c  */
    6204 #line 968 "parser.yy"
    6205     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     5542#line 968 "parser.yy" /* yacc.c:1646  */
     5543    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5544#line 5545 "Parser/parser.cc" /* yacc.c:1646  */
    62065545    break;
    62075546
    62085547  case 226:
    6209 
    6210 /* Line 1806 of yacc.c  */
    6211 #line 970 "parser.yy"
    6212     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     5548#line 970 "parser.yy" /* yacc.c:1646  */
     5549    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
     5550#line 5551 "Parser/parser.cc" /* yacc.c:1646  */
    62135551    break;
    62145552
    62155553  case 227:
    6216 
    6217 /* Line 1806 of yacc.c  */
    6218 #line 975 "parser.yy"
     5554#line 975 "parser.yy" /* yacc.c:1646  */
    62195555    { (yyval.en) = 0; }
     5556#line 5557 "Parser/parser.cc" /* yacc.c:1646  */
    62205557    break;
    62215558
    62225559  case 228:
    6223 
    6224 /* Line 1806 of yacc.c  */
    6225 #line 977 "parser.yy"
    6226     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5560#line 977 "parser.yy" /* yacc.c:1646  */
     5561    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     5562#line 5563 "Parser/parser.cc" /* yacc.c:1646  */
    62275563    break;
    62285564
    62295565  case 229:
    6230 
    6231 /* Line 1806 of yacc.c  */
    6232 #line 979 "parser.yy"
    6233     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     5566#line 979 "parser.yy" /* yacc.c:1646  */
     5567    { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
     5568#line 5569 "Parser/parser.cc" /* yacc.c:1646  */
    62345569    break;
    62355570
    62365571  case 230:
    6237 
    6238 /* Line 1806 of yacc.c  */
    6239 #line 984 "parser.yy"
    6240     {
    6241                         (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
    6242                         delete (yyvsp[(1) - (1)].tok);                                                                  // allocated by lexer
     5572#line 984 "parser.yy" /* yacc.c:1646  */
     5573    {
     5574                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) );
     5575                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62435576                }
     5577#line 5578 "Parser/parser.cc" /* yacc.c:1646  */
    62445578    break;
    62455579
    62465580  case 231:
    6247 
    6248 /* Line 1806 of yacc.c  */
    6249 #line 989 "parser.yy"
    6250     {
    6251                         (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
    6252                         delete (yyvsp[(3) - (3)].tok);                                                                  // allocated by lexer
     5581#line 989 "parser.yy" /* yacc.c:1646  */
     5582    {
     5583                        (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );
     5584                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62535585                }
     5586#line 5587 "Parser/parser.cc" /* yacc.c:1646  */
    62545587    break;
    62555588
    62565589  case 232:
    6257 
    6258 /* Line 1806 of yacc.c  */
    6259 #line 999 "parser.yy"
     5590#line 999 "parser.yy" /* yacc.c:1646  */
    62605591    { (yyval.decl) = 0; }
     5592#line 5593 "Parser/parser.cc" /* yacc.c:1646  */
    62615593    break;
    62625594
    62635595  case 235:
    6264 
    6265 /* Line 1806 of yacc.c  */
    6266 #line 1006 "parser.yy"
    6267     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5596#line 1006 "parser.yy" /* yacc.c:1646  */
     5597    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5598#line 5599 "Parser/parser.cc" /* yacc.c:1646  */
    62685599    break;
    62695600
    62705601  case 236:
    6271 
    6272 /* Line 1806 of yacc.c  */
    6273 #line 1011 "parser.yy"
     5602#line 1011 "parser.yy" /* yacc.c:1646  */
    62745603    { (yyval.decl) = 0; }
     5604#line 5605 "Parser/parser.cc" /* yacc.c:1646  */
    62755605    break;
    62765606
    62775607  case 239:
    6278 
    6279 /* Line 1806 of yacc.c  */
    6280 #line 1018 "parser.yy"
    6281     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5608#line 1018 "parser.yy" /* yacc.c:1646  */
     5609    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5610#line 5611 "Parser/parser.cc" /* yacc.c:1646  */
    62825611    break;
    62835612
    62845613  case 244:
    6285 
    6286 /* Line 1806 of yacc.c  */
    6287 #line 1032 "parser.yy"
     5614#line 1032 "parser.yy" /* yacc.c:1646  */
    62885615    {}
     5616#line 5617 "Parser/parser.cc" /* yacc.c:1646  */
    62895617    break;
    62905618
    62915619  case 245:
    6292 
    6293 /* Line 1806 of yacc.c  */
    6294 #line 1033 "parser.yy"
     5620#line 1033 "parser.yy" /* yacc.c:1646  */
    62955621    {}
     5622#line 5623 "Parser/parser.cc" /* yacc.c:1646  */
    62965623    break;
    62975624
    62985625  case 253:
    6299 
    6300 /* Line 1806 of yacc.c  */
    6301 #line 1062 "parser.yy"
     5626#line 1062 "parser.yy" /* yacc.c:1646  */
    63025627    {
    63035628                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6304                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     5629                        (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
    63055630                }
     5631#line 5632 "Parser/parser.cc" /* yacc.c:1646  */
    63065632    break;
    63075633
    63085634  case 254:
    6309 
    6310 /* Line 1806 of yacc.c  */
    6311 #line 1069 "parser.yy"
     5635#line 1069 "parser.yy" /* yacc.c:1646  */
    63125636    {
    63135637                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6314                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     5638                        (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
    63155639                }
     5640#line 5641 "Parser/parser.cc" /* yacc.c:1646  */
    63165641    break;
    63175642
    63185643  case 255:
    6319 
    6320 /* Line 1806 of yacc.c  */
    6321 #line 1074 "parser.yy"
    6322     {
    6323                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6324                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
     5644#line 1074 "parser.yy" /* yacc.c:1646  */
     5645    {
     5646                        typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
     5647                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
    63255648                }
     5649#line 5650 "Parser/parser.cc" /* yacc.c:1646  */
    63265650    break;
    63275651
    63285652  case 256:
    6329 
    6330 /* Line 1806 of yacc.c  */
    6331 #line 1084 "parser.yy"
    6332     {
    6333                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6334                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5653#line 1084 "parser.yy" /* yacc.c:1646  */
     5654    {
     5655                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5656                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63355657                }
     5658#line 5659 "Parser/parser.cc" /* yacc.c:1646  */
    63365659    break;
    63375660
    63385661  case 257:
    6339 
    6340 /* Line 1806 of yacc.c  */
    6341 #line 1089 "parser.yy"
    6342     {
    6343                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6344                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5662#line 1089 "parser.yy" /* yacc.c:1646  */
     5663    {
     5664                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5665                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63455666                }
     5667#line 5668 "Parser/parser.cc" /* yacc.c:1646  */
    63465668    break;
    63475669
    63485670  case 258:
    6349 
    6350 /* Line 1806 of yacc.c  */
    6351 #line 1094 "parser.yy"
    6352     {
    6353                         typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
    6354                         (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
     5671#line 1094 "parser.yy" /* yacc.c:1646  */
     5672    {
     5673                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5674                        (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
    63555675                }
     5676#line 5677 "Parser/parser.cc" /* yacc.c:1646  */
    63565677    break;
    63575678
    63585679  case 259:
    6359 
    6360 /* Line 1806 of yacc.c  */
    6361 #line 1102 "parser.yy"
     5680#line 1102 "parser.yy" /* yacc.c:1646  */
    63625681    {
    63635682                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6364                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     5683                        (yyval.decl) = (yyvsp[0].decl);
    63655684                }
     5685#line 5686 "Parser/parser.cc" /* yacc.c:1646  */
    63665686    break;
    63675687
    63685688  case 260:
    6369 
    6370 /* Line 1806 of yacc.c  */
    6371 #line 1107 "parser.yy"
     5689#line 1107 "parser.yy" /* yacc.c:1646  */
    63725690    {
    63735691                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6374                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5692                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63755693                }
     5694#line 5695 "Parser/parser.cc" /* yacc.c:1646  */
    63765695    break;
    63775696
    63785697  case 261:
    6379 
    6380 /* Line 1806 of yacc.c  */
    6381 #line 1112 "parser.yy"
     5698#line 1112 "parser.yy" /* yacc.c:1646  */
    63825699    {
    63835700                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6384                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5701                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63855702                }
     5703#line 5704 "Parser/parser.cc" /* yacc.c:1646  */
    63865704    break;
    63875705
    63885706  case 262:
    6389 
    6390 /* Line 1806 of yacc.c  */
    6391 #line 1117 "parser.yy"
     5707#line 1117 "parser.yy" /* yacc.c:1646  */
    63925708    {
    63935709                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6394                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
     5710                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
    63955711                }
     5712#line 5713 "Parser/parser.cc" /* yacc.c:1646  */
    63965713    break;
    63975714
    63985715  case 263:
    6399 
    6400 /* Line 1806 of yacc.c  */
    6401 #line 1122 "parser.yy"
    6402     {
    6403                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    6404                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5716#line 1122 "parser.yy" /* yacc.c:1646  */
     5717    {
     5718                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
     5719                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64055720                }
     5721#line 5722 "Parser/parser.cc" /* yacc.c:1646  */
    64065722    break;
    64075723
    64085724  case 264:
    6409 
    6410 /* Line 1806 of yacc.c  */
    6411 #line 1130 "parser.yy"
    6412     {
    6413                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     5725#line 1130 "parser.yy" /* yacc.c:1646  */
     5726    {
     5727                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
    64145728                }
     5729#line 5730 "Parser/parser.cc" /* yacc.c:1646  */
    64155730    break;
    64165731
    64175732  case 265:
    6418 
    6419 /* Line 1806 of yacc.c  */
    6420 #line 1153 "parser.yy"
    6421     {
    6422                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5733#line 1153 "parser.yy" /* yacc.c:1646  */
     5734    {
     5735                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64235736                }
     5737#line 5738 "Parser/parser.cc" /* yacc.c:1646  */
    64245738    break;
    64255739
    64265740  case 266:
    6427 
    6428 /* Line 1806 of yacc.c  */
    6429 #line 1157 "parser.yy"
    6430     {
    6431                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5741#line 1157 "parser.yy" /* yacc.c:1646  */
     5742    {
     5743                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64325744                }
     5745#line 5746 "Parser/parser.cc" /* yacc.c:1646  */
    64335746    break;
    64345747
    64355748  case 267:
    6436 
    6437 /* Line 1806 of yacc.c  */
    6438 #line 1164 "parser.yy"
    6439     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     5749#line 1164 "parser.yy" /* yacc.c:1646  */
     5750    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     5751#line 5752 "Parser/parser.cc" /* yacc.c:1646  */
    64405752    break;
    64415753
    64425754  case 268:
    6443 
    6444 /* Line 1806 of yacc.c  */
    6445 #line 1168 "parser.yy"
    6446     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     5755#line 1168 "parser.yy" /* yacc.c:1646  */
     5756    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
     5757#line 5758 "Parser/parser.cc" /* yacc.c:1646  */
    64475758    break;
    64485759
    64495760  case 269:
    6450 
    6451 /* Line 1806 of yacc.c  */
    6452 #line 1173 "parser.yy"
     5761#line 1173 "parser.yy" /* yacc.c:1646  */
    64535762    {
    64545763                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6455                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5764                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64565765                }
     5766#line 5767 "Parser/parser.cc" /* yacc.c:1646  */
    64575767    break;
    64585768
    64595769  case 270:
    6460 
    6461 /* Line 1806 of yacc.c  */
    6462 #line 1178 "parser.yy"
     5770#line 1178 "parser.yy" /* yacc.c:1646  */
    64635771    {
    64645772                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6465                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5773                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64665774                }
     5775#line 5776 "Parser/parser.cc" /* yacc.c:1646  */
    64675776    break;
    64685777
    64695778  case 271:
    6470 
    6471 /* Line 1806 of yacc.c  */
    6472 #line 1183 "parser.yy"
    6473     {
    6474                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
    6475                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     5779#line 1183 "parser.yy" /* yacc.c:1646  */
     5780    {
     5781                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     5782                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64765783                }
     5784#line 5785 "Parser/parser.cc" /* yacc.c:1646  */
    64775785    break;
    64785786
    64795787  case 272:
    6480 
    6481 /* Line 1806 of yacc.c  */
    6482 #line 1194 "parser.yy"
     5788#line 1194 "parser.yy" /* yacc.c:1646  */
    64835789    {
    64845790                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6485                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
     5791                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
    64865792                }
     5793#line 5794 "Parser/parser.cc" /* yacc.c:1646  */
    64875794    break;
    64885795
    64895796  case 273:
    6490 
    6491 /* Line 1806 of yacc.c  */
    6492 #line 1199 "parser.yy"
     5797#line 1199 "parser.yy" /* yacc.c:1646  */
    64935798    {
    64945799                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6495                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
     5800                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
    64965801                }
     5802#line 5803 "Parser/parser.cc" /* yacc.c:1646  */
    64975803    break;
    64985804
    64995805  case 274:
    6500 
    6501 /* Line 1806 of yacc.c  */
    6502 #line 1204 "parser.yy"
     5806#line 1204 "parser.yy" /* yacc.c:1646  */
    65035807    {
    65045808                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6505                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
     5809                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
    65065810                }
     5811#line 5812 "Parser/parser.cc" /* yacc.c:1646  */
    65075812    break;
    65085813
    65095814  case 275:
    6510 
    6511 /* Line 1806 of yacc.c  */
    6512 #line 1209 "parser.yy"
     5815#line 1209 "parser.yy" /* yacc.c:1646  */
    65135816    {
    65145817                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6515                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
     5818                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
    65165819                }
     5820#line 5821 "Parser/parser.cc" /* yacc.c:1646  */
    65175821    break;
    65185822
    65195823  case 276:
    6520 
    6521 /* Line 1806 of yacc.c  */
    6522 #line 1214 "parser.yy"
     5824#line 1214 "parser.yy" /* yacc.c:1646  */
    65235825    {
    65245826                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6525                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
     5827                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
    65265828                }
     5829#line 5830 "Parser/parser.cc" /* yacc.c:1646  */
    65275830    break;
    65285831
    65295832  case 277:
    6530 
    6531 /* Line 1806 of yacc.c  */
    6532 #line 1223 "parser.yy"
    6533     {
    6534                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     5833#line 1223 "parser.yy" /* yacc.c:1646  */
     5834    {
     5835                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65355836                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65365837                }
     5838#line 5839 "Parser/parser.cc" /* yacc.c:1646  */
    65375839    break;
    65385840
    65395841  case 278:
    6540 
    6541 /* Line 1806 of yacc.c  */
    6542 #line 1228 "parser.yy"
    6543     {
    6544                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     5842#line 1228 "parser.yy" /* yacc.c:1646  */
     5843    {
     5844                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65455845                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65465846                }
     5847#line 5848 "Parser/parser.cc" /* yacc.c:1646  */
    65475848    break;
    65485849
    65495850  case 283:
    6550 
    6551 /* Line 1806 of yacc.c  */
    6552 #line 1245 "parser.yy"
     5851#line 1245 "parser.yy" /* yacc.c:1646  */
    65535852    {
    65545853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6555                         (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
     5854                        (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
    65565855                }
     5856#line 5857 "Parser/parser.cc" /* yacc.c:1646  */
    65575857    break;
    65585858
    65595859  case 284:
    6560 
    6561 /* Line 1806 of yacc.c  */
    6562 #line 1250 "parser.yy"
     5860#line 1250 "parser.yy" /* yacc.c:1646  */
    65635861    {
    65645862                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6565                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
     5863                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
    65665864                }
     5865#line 5866 "Parser/parser.cc" /* yacc.c:1646  */
    65675866    break;
    65685867
    65695868  case 293:
    6570 
    6571 /* Line 1806 of yacc.c  */
    6572 #line 1272 "parser.yy"
     5869#line 1272 "parser.yy" /* yacc.c:1646  */
    65735870    { (yyval.decl) = 0; }
     5871#line 5872 "Parser/parser.cc" /* yacc.c:1646  */
    65745872    break;
    65755873
    65765874  case 296:
    6577 
    6578 /* Line 1806 of yacc.c  */
    6579 #line 1284 "parser.yy"
    6580     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5875#line 1284 "parser.yy" /* yacc.c:1646  */
     5876    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5877#line 5878 "Parser/parser.cc" /* yacc.c:1646  */
    65815878    break;
    65825879
    65835880  case 299:
    6584 
    6585 /* Line 1806 of yacc.c  */
    6586 #line 1295 "parser.yy"
     5881#line 1295 "parser.yy" /* yacc.c:1646  */
    65875882    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5883#line 5884 "Parser/parser.cc" /* yacc.c:1646  */
    65885884    break;
    65895885
    65905886  case 300:
    6591 
    6592 /* Line 1806 of yacc.c  */
    6593 #line 1297 "parser.yy"
     5887#line 1297 "parser.yy" /* yacc.c:1646  */
    65945888    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5889#line 5890 "Parser/parser.cc" /* yacc.c:1646  */
    65955890    break;
    65965891
    65975892  case 301:
    6598 
    6599 /* Line 1806 of yacc.c  */
    6600 #line 1299 "parser.yy"
     5893#line 1299 "parser.yy" /* yacc.c:1646  */
    66015894    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5895#line 5896 "Parser/parser.cc" /* yacc.c:1646  */
    66025896    break;
    66035897
    66045898  case 302:
    6605 
    6606 /* Line 1806 of yacc.c  */
    6607 #line 1301 "parser.yy"
     5899#line 1301 "parser.yy" /* yacc.c:1646  */
    66085900    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5901#line 5902 "Parser/parser.cc" /* yacc.c:1646  */
    66095902    break;
    66105903
    66115904  case 303:
    6612 
    6613 /* Line 1806 of yacc.c  */
    6614 #line 1303 "parser.yy"
     5905#line 1303 "parser.yy" /* yacc.c:1646  */
    66155906    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     5907#line 5908 "Parser/parser.cc" /* yacc.c:1646  */
    66165908    break;
    66175909
    66185910  case 304:
    6619 
    6620 /* Line 1806 of yacc.c  */
    6621 #line 1305 "parser.yy"
     5911#line 1305 "parser.yy" /* yacc.c:1646  */
    66225912    {
    66235913                        typedefTable.enterScope();
    66245914                }
     5915#line 5916 "Parser/parser.cc" /* yacc.c:1646  */
    66255916    break;
    66265917
    66275918  case 305:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1309 "parser.yy"
     5919#line 1309 "parser.yy" /* yacc.c:1646  */
    66315920    {
    66325921                        typedefTable.leaveScope();
    6633                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
     5922                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
    66345923                }
     5924#line 5925 "Parser/parser.cc" /* yacc.c:1646  */
    66355925    break;
    66365926
    66375927  case 307:
    6638 
    6639 /* Line 1806 of yacc.c  */
    6640 #line 1318 "parser.yy"
    6641     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5928#line 1318 "parser.yy" /* yacc.c:1646  */
     5929    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5930#line 5931 "Parser/parser.cc" /* yacc.c:1646  */
    66425931    break;
    66435932
    66445933  case 308:
    6645 
    6646 /* Line 1806 of yacc.c  */
    6647 #line 1320 "parser.yy"
    6648     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     5934#line 1320 "parser.yy" /* yacc.c:1646  */
     5935    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     5936#line 5937 "Parser/parser.cc" /* yacc.c:1646  */
    66495937    break;
    66505938
    66515939  case 310:
    6652 
    6653 /* Line 1806 of yacc.c  */
    6654 #line 1331 "parser.yy"
    6655     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5940#line 1331 "parser.yy" /* yacc.c:1646  */
     5941    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5942#line 5943 "Parser/parser.cc" /* yacc.c:1646  */
    66565943    break;
    66575944
    66585945  case 311:
    6659 
    6660 /* Line 1806 of yacc.c  */
    6661 #line 1336 "parser.yy"
     5946#line 1336 "parser.yy" /* yacc.c:1646  */
    66625947    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5948#line 5949 "Parser/parser.cc" /* yacc.c:1646  */
    66635949    break;
    66645950
    66655951  case 312:
    6666 
    6667 /* Line 1806 of yacc.c  */
    6668 #line 1338 "parser.yy"
     5952#line 1338 "parser.yy" /* yacc.c:1646  */
    66695953    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5954#line 5955 "Parser/parser.cc" /* yacc.c:1646  */
    66705955    break;
    66715956
    66725957  case 313:
    6673 
    6674 /* Line 1806 of yacc.c  */
    6675 #line 1340 "parser.yy"
     5958#line 1340 "parser.yy" /* yacc.c:1646  */
    66765959    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5960#line 5961 "Parser/parser.cc" /* yacc.c:1646  */
    66775961    break;
    66785962
    66795963  case 314:
    6680 
    6681 /* Line 1806 of yacc.c  */
    6682 #line 1342 "parser.yy"
     5964#line 1342 "parser.yy" /* yacc.c:1646  */
    66835965    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5966#line 5967 "Parser/parser.cc" /* yacc.c:1646  */
    66845967    break;
    66855968
    66865969  case 315:
    6687 
    6688 /* Line 1806 of yacc.c  */
    6689 #line 1345 "parser.yy"
     5970#line 1345 "parser.yy" /* yacc.c:1646  */
    66905971    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     5972#line 5973 "Parser/parser.cc" /* yacc.c:1646  */
    66915973    break;
    66925974
    66935975  case 316:
    6694 
    6695 /* Line 1806 of yacc.c  */
    6696 #line 1347 "parser.yy"
     5976#line 1347 "parser.yy" /* yacc.c:1646  */
    66975977    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5978#line 5979 "Parser/parser.cc" /* yacc.c:1646  */
    66985979    break;
    66995980
    67005981  case 317:
    6701 
    6702 /* Line 1806 of yacc.c  */
    6703 #line 1350 "parser.yy"
     5982#line 1350 "parser.yy" /* yacc.c:1646  */
    67045983    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     5984#line 5985 "Parser/parser.cc" /* yacc.c:1646  */
    67055985    break;
    67065986
    67075987  case 318:
    6708 
    6709 /* Line 1806 of yacc.c  */
    6710 #line 1352 "parser.yy"
     5988#line 1352 "parser.yy" /* yacc.c:1646  */
    67115989    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5990#line 5991 "Parser/parser.cc" /* yacc.c:1646  */
    67125991    break;
    67135992
    67145993  case 319:
    6715 
    6716 /* Line 1806 of yacc.c  */
    6717 #line 1357 "parser.yy"
     5994#line 1357 "parser.yy" /* yacc.c:1646  */
    67185995    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     5996#line 5997 "Parser/parser.cc" /* yacc.c:1646  */
    67195997    break;
    67205998
    67215999  case 320:
    6722 
    6723 /* Line 1806 of yacc.c  */
    6724 #line 1359 "parser.yy"
     6000#line 1359 "parser.yy" /* yacc.c:1646  */
    67256001    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6002#line 6003 "Parser/parser.cc" /* yacc.c:1646  */
    67266003    break;
    67276004
    67286005  case 321:
    6729 
    6730 /* Line 1806 of yacc.c  */
    6731 #line 1361 "parser.yy"
     6006#line 1361 "parser.yy" /* yacc.c:1646  */
    67326007    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6008#line 6009 "Parser/parser.cc" /* yacc.c:1646  */
    67336009    break;
    67346010
    67356011  case 322:
    6736 
    6737 /* Line 1806 of yacc.c  */
    6738 #line 1363 "parser.yy"
     6012#line 1363 "parser.yy" /* yacc.c:1646  */
    67396013    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6014#line 6015 "Parser/parser.cc" /* yacc.c:1646  */
    67406015    break;
    67416016
    67426017  case 323:
    6743 
    6744 /* Line 1806 of yacc.c  */
    6745 #line 1365 "parser.yy"
     6018#line 1365 "parser.yy" /* yacc.c:1646  */
    67466019    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6020#line 6021 "Parser/parser.cc" /* yacc.c:1646  */
    67476021    break;
    67486022
    67496023  case 324:
    6750 
    6751 /* Line 1806 of yacc.c  */
    6752 #line 1367 "parser.yy"
     6024#line 1367 "parser.yy" /* yacc.c:1646  */
    67536025    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6026#line 6027 "Parser/parser.cc" /* yacc.c:1646  */
    67546027    break;
    67556028
    67566029  case 325:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1369 "parser.yy"
     6030#line 1369 "parser.yy" /* yacc.c:1646  */
    67606031    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6032#line 6033 "Parser/parser.cc" /* yacc.c:1646  */
    67616033    break;
    67626034
    67636035  case 326:
    6764 
    6765 /* Line 1806 of yacc.c  */
    6766 #line 1371 "parser.yy"
     6036#line 1371 "parser.yy" /* yacc.c:1646  */
    67676037    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6038#line 6039 "Parser/parser.cc" /* yacc.c:1646  */
    67686039    break;
    67696040
    67706041  case 327:
    6771 
    6772 /* Line 1806 of yacc.c  */
    6773 #line 1373 "parser.yy"
     6042#line 1373 "parser.yy" /* yacc.c:1646  */
    67746043    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6044#line 6045 "Parser/parser.cc" /* yacc.c:1646  */
    67756045    break;
    67766046
    67776047  case 328:
    6778 
    6779 /* Line 1806 of yacc.c  */
    6780 #line 1375 "parser.yy"
     6048#line 1375 "parser.yy" /* yacc.c:1646  */
    67816049    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6050#line 6051 "Parser/parser.cc" /* yacc.c:1646  */
    67826051    break;
    67836052
    67846053  case 329:
    6785 
    6786 /* Line 1806 of yacc.c  */
    6787 #line 1377 "parser.yy"
     6054#line 1377 "parser.yy" /* yacc.c:1646  */
    67886055    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6056#line 6057 "Parser/parser.cc" /* yacc.c:1646  */
    67896057    break;
    67906058
    67916059  case 330:
    6792 
    6793 /* Line 1806 of yacc.c  */
    6794 #line 1379 "parser.yy"
     6060#line 1379 "parser.yy" /* yacc.c:1646  */
    67956061    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6062#line 6063 "Parser/parser.cc" /* yacc.c:1646  */
    67966063    break;
    67976064
    67986065  case 331:
    6799 
    6800 /* Line 1806 of yacc.c  */
    6801 #line 1381 "parser.yy"
     6066#line 1381 "parser.yy" /* yacc.c:1646  */
    68026067    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6068#line 6069 "Parser/parser.cc" /* yacc.c:1646  */
    68036069    break;
    68046070
    68056071  case 333:
    6806 
    6807 /* Line 1806 of yacc.c  */
    6808 #line 1388 "parser.yy"
    6809     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6072#line 1388 "parser.yy" /* yacc.c:1646  */
     6073    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6074#line 6075 "Parser/parser.cc" /* yacc.c:1646  */
    68106075    break;
    68116076
    68126077  case 334:
    6813 
    6814 /* Line 1806 of yacc.c  */
    6815 #line 1390 "parser.yy"
    6816     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6078#line 1390 "parser.yy" /* yacc.c:1646  */
     6079    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6080#line 6081 "Parser/parser.cc" /* yacc.c:1646  */
    68176081    break;
    68186082
    68196083  case 335:
    6820 
    6821 /* Line 1806 of yacc.c  */
    6822 #line 1392 "parser.yy"
    6823     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6084#line 1392 "parser.yy" /* yacc.c:1646  */
     6085    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6086#line 6087 "Parser/parser.cc" /* yacc.c:1646  */
    68246087    break;
    68256088
    68266089  case 336:
    6827 
    6828 /* Line 1806 of yacc.c  */
    6829 #line 1394 "parser.yy"
    6830     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6090#line 1394 "parser.yy" /* yacc.c:1646  */
     6091    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
     6092#line 6093 "Parser/parser.cc" /* yacc.c:1646  */
    68316093    break;
    68326094
    68336095  case 338:
    6834 
    6835 /* Line 1806 of yacc.c  */
    6836 #line 1400 "parser.yy"
    6837     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6096#line 1400 "parser.yy" /* yacc.c:1646  */
     6097    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6098#line 6099 "Parser/parser.cc" /* yacc.c:1646  */
    68386099    break;
    68396100
    68406101  case 340:
    6841 
    6842 /* Line 1806 of yacc.c  */
    6843 #line 1407 "parser.yy"
    6844     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6102#line 1407 "parser.yy" /* yacc.c:1646  */
     6103    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6104#line 6105 "Parser/parser.cc" /* yacc.c:1646  */
    68456105    break;
    68466106
    68476107  case 341:
    6848 
    6849 /* Line 1806 of yacc.c  */
    6850 #line 1409 "parser.yy"
    6851     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6108#line 1409 "parser.yy" /* yacc.c:1646  */
     6109    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6110#line 6111 "Parser/parser.cc" /* yacc.c:1646  */
    68526111    break;
    68536112
    68546113  case 342:
    6855 
    6856 /* Line 1806 of yacc.c  */
    6857 #line 1411 "parser.yy"
    6858     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6114#line 1411 "parser.yy" /* yacc.c:1646  */
     6115    { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
     6116#line 6117 "Parser/parser.cc" /* yacc.c:1646  */
    68596117    break;
    68606118
    68616119  case 343:
    6862 
    6863 /* Line 1806 of yacc.c  */
    6864 #line 1416 "parser.yy"
    6865     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6120#line 1416 "parser.yy" /* yacc.c:1646  */
     6121    { (yyval.decl) = (yyvsp[-1].decl); }
     6122#line 6123 "Parser/parser.cc" /* yacc.c:1646  */
    68666123    break;
    68676124
    68686125  case 344:
    6869 
    6870 /* Line 1806 of yacc.c  */
    6871 #line 1418 "parser.yy"
    6872     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6126#line 1418 "parser.yy" /* yacc.c:1646  */
     6127    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
     6128#line 6129 "Parser/parser.cc" /* yacc.c:1646  */
    68736129    break;
    68746130
    68756131  case 345:
    6876 
    6877 /* Line 1806 of yacc.c  */
    6878 #line 1420 "parser.yy"
    6879     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6132#line 1420 "parser.yy" /* yacc.c:1646  */
     6133    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
     6134#line 6135 "Parser/parser.cc" /* yacc.c:1646  */
    68806135    break;
    68816136
    68826137  case 346:
    6883 
    6884 /* Line 1806 of yacc.c  */
    6885 #line 1422 "parser.yy"
    6886     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6138#line 1422 "parser.yy" /* yacc.c:1646  */
     6139    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
     6140#line 6141 "Parser/parser.cc" /* yacc.c:1646  */
    68876141    break;
    68886142
    68896143  case 348:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1428 "parser.yy"
    6893     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6144#line 1428 "parser.yy" /* yacc.c:1646  */
     6145    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6146#line 6147 "Parser/parser.cc" /* yacc.c:1646  */
    68946147    break;
    68956148
    68966149  case 349:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1430 "parser.yy"
    6900     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6150#line 1430 "parser.yy" /* yacc.c:1646  */
     6151    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6152#line 6153 "Parser/parser.cc" /* yacc.c:1646  */
    69016153    break;
    69026154
    69036155  case 350:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1432 "parser.yy"
    6907     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6156#line 1432 "parser.yy" /* yacc.c:1646  */
     6157    { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
     6158#line 6159 "Parser/parser.cc" /* yacc.c:1646  */
    69086159    break;
    69096160
    69106161  case 352:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1438 "parser.yy"
    6914     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6162#line 1438 "parser.yy" /* yacc.c:1646  */
     6163    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6164#line 6165 "Parser/parser.cc" /* yacc.c:1646  */
    69156165    break;
    69166166
    69176167  case 353:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1440 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6168#line 1440 "parser.yy" /* yacc.c:1646  */
     6169    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6170#line 6171 "Parser/parser.cc" /* yacc.c:1646  */
    69226171    break;
    69236172
    69246173  case 355:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1446 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6174#line 1446 "parser.yy" /* yacc.c:1646  */
     6175    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6176#line 6177 "Parser/parser.cc" /* yacc.c:1646  */
    69296177    bre