Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r2037f82 r8b7ee09  
    1 /* A Bison parser, made by GNU Bison 3.0.2.  */
     1/* A Bison parser, made by GNU Bison 2.5.  */
    22
    33/* Bison implementation for Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
    6 
     4   
     5      Copyright (C) 1984, 1989-1990, 2000-2011 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 "3.0.2"
     47#define YYBISON_VERSION "2.5"
    4848
    4949/* Skeleton name.  */
     
    5959#define YYPULL 1
    6060
     61/* Using locations.  */
     62#define YYLSP_NEEDED 0
    6163
    6264
    6365
    6466/* Copy the first part of user declarations.  */
    65 #line 42 "parser.yy" /* yacc.c:339  */
     67
     68/* Line 268 of yacc.c  */
     69#line 42 "parser.yy"
    6670
    6771#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    9094} // appendStr
    9195
    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
     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
    101104
    102105/* Enabling verbose error messages.  */
     
    108111#endif
    109112
    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
     113/* Enabling the token table.  */
     114#ifndef YYTOKEN_TABLE
     115# define YYTOKEN_TABLE 0
    117116#endif
    118 #if YYDEBUG
    119 extern int yydebug;
    120 #endif
    121 
    122 /* Token type.  */
     117
     118
     119/* Tokens.  */
    123120#ifndef YYTOKENTYPE
    124121# define YYTOKENTYPE
    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   };
     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   };
    234232#endif
    235233/* Tokens.  */
     
    341339#define THEN 363
    342340
    343 /* Value type.  */
     341
     342
     343
    344344#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    345 typedef union YYSTYPE YYSTYPE;
    346 union YYSTYPE
     345typedef union YYSTYPE
    347346{
    348 #line 115 "parser.yy" /* yacc.c:355  */
     347
     348/* Line 293 of yacc.c  */
     349#line 115 "parser.yy"
    349350
    350351        Token tok;
     
    362363        bool flag;
    363364
    364 #line 365 "Parser/parser.cc" /* yacc.c:355  */
    365 };
     365
     366
     367/* Line 293 of yacc.c  */
     368#line 369 "Parser/parser.cc"
     369} YYSTYPE;
    366370# define YYSTYPE_IS_TRIVIAL 1
     371# define yystype YYSTYPE /* obsolescent; will be withdrawn */
    367372# define YYSTYPE_IS_DECLARED 1
    368373#endif
    369374
    370375
    371 extern YYSTYPE yylval;
    372 
    373 int yyparse (void);
    374 
    375 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
    376 
    377376/* Copy the second part of user declarations.  */
    378377
    379 #line 380 "Parser/parser.cc" /* yacc.c:358  */
     378
     379/* Line 343 of yacc.c  */
     380#line 381 "Parser/parser.cc"
    380381
    381382#ifdef short
     
    391392#ifdef YYTYPE_INT8
    392393typedef YYTYPE_INT8 yytype_int8;
     394#elif (defined __STDC__ || defined __C99__FUNC__ \
     395     || defined __cplusplus || defined _MSC_VER)
     396typedef signed char yytype_int8;
    393397#else
    394 typedef signed char yytype_int8;
     398typedef short int yytype_int8;
    395399#endif
    396400
     
    412416# elif defined size_t
    413417#  define YYSIZE_T size_t
    414 # elif ! defined YYSIZE_T
     418# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     419     || defined __cplusplus || defined _MSC_VER)
    415420#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    416421#  define YYSIZE_T size_t
     
    426431#  if ENABLE_NLS
    427432#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    428 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
     433#   define YY_(msgid) dgettext ("bison-runtime", msgid)
    429434#  endif
    430435# endif
    431436# ifndef YY_
    432 #  define YY_(Msgid) Msgid
     437#  define YY_(msgid) msgid
    433438# endif
    434439#endif
    435440
    436 #ifndef YY_ATTRIBUTE
    437 # if (defined __GNUC__                                               \
    438       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
    439      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
    440 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
    441 # else
    442 #  define YY_ATTRIBUTE(Spec) /* empty */
    443 # endif
    444 #endif
    445 
    446 #ifndef YY_ATTRIBUTE_PURE
    447 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
    448 #endif
    449 
    450 #ifndef YY_ATTRIBUTE_UNUSED
    451 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
    452 #endif
    453 
    454 #if !defined _Noreturn \
    455      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
    456 # if defined _MSC_VER && 1200 <= _MSC_VER
    457 #  define _Noreturn __declspec (noreturn)
    458 # else
    459 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
    460 # endif
    461 #endif
    462 
    463441/* Suppress unused-variable warnings by "using" E.  */
    464442#if ! defined lint || defined __GNUC__
    465 # define YYUSE(E) ((void) (E))
     443# define YYUSE(e) ((void) (e))
    466444#else
    467 # define YYUSE(E) /* empty */
     445# define YYUSE(e) /* empty */
    468446#endif
    469447
    470 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
    471 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
    472 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
    473     _Pragma ("GCC diagnostic push") \
    474     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
    475     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
    476 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
    477     _Pragma ("GCC diagnostic pop")
     448/* Identity function, used to suppress warnings about constant conditions.  */
     449#ifndef lint
     450# define YYID(n) (n)
    478451#else
    479 # define YY_INITIAL_VALUE(Value) Value
     452#if (defined __STDC__ || defined __C99__FUNC__ \
     453     || defined __cplusplus || defined _MSC_VER)
     454static int
     455YYID (int yyi)
     456#else
     457static int
     458YYID (yyi)
     459    int yyi;
    480460#endif
    481 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    483 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
     461{
     462  return yyi;
     463}
    484464#endif
    485 #ifndef YY_INITIAL_VALUE
    486 # define YY_INITIAL_VALUE(Value) /* Nothing. */
    487 #endif
    488 
    489465
    490466#if ! defined yyoverflow || YYERROR_VERBOSE
     
    505481#   else
    506482#    define YYSTACK_ALLOC alloca
    507 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
     483#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     484     || defined __cplusplus || defined _MSC_VER)
    508485#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    509       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    510486#     ifndef EXIT_SUCCESS
    511487#      define EXIT_SUCCESS 0
     
    517493
    518494# ifdef YYSTACK_ALLOC
    519    /* Pacify GCC's 'empty if-body' warning.  */
    520 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
     495   /* Pacify GCC's `empty if-body' warning.  */
     496#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    521497#  ifndef YYSTACK_ALLOC_MAXIMUM
    522498    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    534510#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    535511       && ! ((defined YYMALLOC || defined malloc) \
    536              && (defined YYFREE || defined free)))
     512             && (defined YYFREE || defined free)))
    537513#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    538514#   ifndef EXIT_SUCCESS
     
    542518#  ifndef YYMALLOC
    543519#   define YYMALLOC malloc
    544 #   if ! defined malloc && ! defined EXIT_SUCCESS
     520#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     521     || defined __cplusplus || defined _MSC_VER)
    545522void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    546523#   endif
     
    548525#  ifndef YYFREE
    549526#   define YYFREE free
    550 #   if ! defined free && ! defined EXIT_SUCCESS
     527#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     528     || defined __cplusplus || defined _MSC_VER)
    551529void free (void *); /* INFRINGES ON USER NAME SPACE */
    552530#   endif
     
    558536#if (! defined yyoverflow \
    559537     && (! defined __cplusplus \
    560         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     538        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    561539
    562540/* A type that is properly aligned for any stack member.  */
     
    583561   stack.  Advance YYPTR to a properly aligned location for the next
    584562   stack.  */
    585 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    586     do                                                                  \
    587       {                                                                 \
    588         YYSIZE_T yynewbytes;                                            \
    589         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    590         Stack = &yyptr->Stack_alloc;                                    \
    591         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    592         yyptr += yynewbytes / sizeof (*yyptr);                          \
    593       }                                                                 \
    594     while (0)
     563# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     564    do                                                                  \
     565      {                                                                 \
     566        YYSIZE_T yynewbytes;                                            \
     567        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     568        Stack = &yyptr->Stack_alloc;                                    \
     569        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     570        yyptr += yynewbytes / sizeof (*yyptr);                          \
     571      }                                                                 \
     572    while (YYID (0))
    595573
    596574#endif
    597575
    598576#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    599 /* Copy COUNT objects from SRC to DST.  The source and destination do
     577/* Copy COUNT objects from FROM to TO.  The source and destination do
    600578   not overlap.  */
    601579# ifndef YYCOPY
    602580#  if defined __GNUC__ && 1 < __GNUC__
    603 #   define YYCOPY(Dst, Src, Count) \
    604       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
     581#   define YYCOPY(To, From, Count) \
     582      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    605583#  else
    606 #   define YYCOPY(Dst, Src, Count)              \
    607       do                                        \
    608         {                                       \
    609           YYSIZE_T yyi;                         \
    610           for (yyi = 0; yyi < (Count); yyi++)   \
    611             (Dst)[yyi] = (Src)[yyi];            \
    612         }                                       \
    613       while (0)
     584#   define YYCOPY(To, From, Count)              \
     585      do                                        \
     586        {                                       \
     587          YYSIZE_T yyi;                         \
     588          for (yyi = 0; yyi < (Count); yyi++)   \
     589            (To)[yyi] = (From)[yyi];            \
     590        }                                       \
     591      while (YYID (0))
    614592#  endif
    615593# endif
     
    627605/* YYNRULES -- Number of rules.  */
    628606#define YYNRULES  749
    629 /* YYNSTATES -- Number of states.  */
     607/* YYNRULES -- Number of states.  */
    630608#define YYNSTATES  1553
    631609
    632 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    633    by yylex, with out-of-bounds checking.  */
     610/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    634611#define YYUNDEFTOK  2
    635612#define YYMAXUTOK   363
    636613
    637 #define YYTRANSLATE(YYX)                                                \
     614#define YYTRANSLATE(YYX)                                                \
    638615  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    639616
    640 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    641    as returned by yylex, without out-of-bounds checking.  */
     617/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    642618static const yytype_uint8 yytranslate[] =
    643619{
     
    682658
    683659#if YYDEBUG
    684   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
     660/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
     661   YYRHS.  */
     662static const yytype_uint16 yyprhs[] =
     663{
     664       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
     665      17,    19,    21,    23,    25,    27,    29,    31,    34,    36,
     666      38,    42,    46,    48,    55,    60,    64,    72,    76,    84,
     667      87,    90,    98,   103,   105,   109,   110,   112,   114,   118,
     668     120,   124,   132,   136,   144,   146,   148,   150,   153,   156,
     669     159,   162,   165,   168,   173,   176,   181,   188,   190,   195,
     670     200,   202,   204,   206,   208,   210,   212,   214,   219,   224,
     671     226,   230,   234,   238,   240,   244,   248,   250,   254,   258,
     672     260,   264,   268,   272,   276,   278,   282,   286,   288,   292,
     673     294,   298,   300,   304,   306,   310,   312,   316,   318,   324,
     674     329,   335,   337,   339,   343,   346,   347,   349,   351,   353,
     675     355,   357,   359,   361,   363,   365,   367,   369,   371,   374,
     676     380,   387,   395,   397,   401,   403,   407,   408,   410,   412,
     677     414,   416,   418,   420,   422,   424,   426,   433,   438,   441,
     678     449,   451,   455,   457,   460,   462,   465,   467,   470,   473,
     679     479,   487,   493,   503,   509,   519,   521,   525,   527,   529,
     680     533,   537,   540,   542,   545,   548,   549,   551,   554,   558,
     681     559,   561,   564,   568,   572,   577,   578,   580,   582,   585,
     682     591,   599,   606,   613,   618,   622,   627,   630,   634,   637,
     683     641,   645,   649,   653,   659,   663,   667,   672,   674,   680,
     684     687,   693,   700,   710,   721,   731,   742,   745,   747,   750,
     685     753,   756,   758,   765,   774,   785,   798,   813,   814,   816,
     686     817,   819,   821,   825,   830,   838,   839,   841,   845,   847,
     687     851,   853,   855,   857,   861,   863,   865,   867,   871,   872,
     688     874,   878,   883,   885,   889,   891,   893,   897,   901,   905,
     689     909,   913,   916,   920,   927,   931,   935,   940,   942,   945,
     690     948,   952,   958,   967,   975,   983,   989,   999,  1002,  1005,
     691    1011,  1015,  1021,  1026,  1030,  1035,  1040,  1048,  1052,  1056,
     692    1060,  1064,  1069,  1076,  1078,  1080,  1082,  1084,  1086,  1088,
     693    1090,  1092,  1093,  1095,  1097,  1100,  1102,  1104,  1106,  1108,
     694    1110,  1112,  1114,  1115,  1121,  1123,  1126,  1130,  1132,  1135,
     695    1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     696    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     697    1177,  1179,  1182,  1185,  1189,  1193,  1195,  1199,  1201,  1204,
     698    1207,  1210,  1215,  1220,  1225,  1230,  1232,  1235,  1238,  1242,
     699    1244,  1247,  1250,  1252,  1255,  1258,  1262,  1264,  1267,  1270,
     700    1272,  1274,  1279,  1282,  1283,  1290,  1298,  1301,  1304,  1307,
     701    1308,  1311,  1314,  1318,  1321,  1325,  1327,  1330,  1334,  1337,
     702    1340,  1345,  1346,  1348,  1351,  1354,  1356,  1357,  1359,  1362,
     703    1365,  1371,  1374,  1375,  1383,  1386,  1391,  1392,  1395,  1396,
     704    1398,  1400,  1402,  1408,  1414,  1420,  1422,  1428,  1434,  1444,
     705    1446,  1452,  1453,  1455,  1457,  1463,  1465,  1467,  1473,  1479,
     706    1481,  1485,  1489,  1494,  1496,  1498,  1500,  1502,  1505,  1507,
     707    1511,  1515,  1517,  1520,  1522,  1526,  1528,  1530,  1532,  1534,
     708    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1551,  1553,  1555,
     709    1557,  1560,  1561,  1564,  1567,  1569,  1574,  1575,  1577,  1580,
     710    1584,  1589,  1592,  1595,  1597,  1600,  1603,  1609,  1615,  1623,
     711    1630,  1632,  1635,  1638,  1642,  1644,  1647,  1650,  1655,  1658,
     712    1663,  1664,  1669,  1672,  1674,  1676,  1678,  1679,  1682,  1688,
     713    1694,  1708,  1710,  1712,  1716,  1720,  1723,  1727,  1731,  1734,
     714    1739,  1741,  1748,  1758,  1759,  1771,  1773,  1777,  1781,  1785,
     715    1787,  1789,  1795,  1798,  1804,  1805,  1807,  1809,  1813,  1814,
     716    1816,  1818,  1820,  1822,  1823,  1830,  1833,  1835,  1838,  1843,
     717    1846,  1850,  1854,  1858,  1863,  1869,  1875,  1881,  1888,  1890,
     718    1892,  1894,  1898,  1899,  1905,  1906,  1908,  1910,  1913,  1920,
     719    1922,  1926,  1927,  1929,  1934,  1936,  1938,  1940,  1942,  1945,
     720    1947,  1950,  1953,  1955,  1959,  1962,  1966,  1970,  1973,  1978,
     721    1983,  1987,  1996,  2000,  2003,  2005,  2008,  2015,  2024,  2028,
     722    2031,  2035,  2039,  2044,  2049,  2053,  2055,  2057,  2059,  2064,
     723    2071,  2075,  2078,  2082,  2086,  2091,  2096,  2100,  2103,  2105,
     724    2108,  2111,  2113,  2117,  2120,  2124,  2128,  2131,  2136,  2141,
     725    2145,  2152,  2161,  2165,  2168,  2170,  2173,  2176,  2179,  2183,
     726    2187,  2190,  2195,  2200,  2204,  2211,  2220,  2224,  2227,  2229,
     727    2232,  2235,  2237,  2239,  2242,  2246,  2250,  2253,  2258,  2265,
     728    2274,  2276,  2279,  2282,  2284,  2287,  2290,  2294,  2298,  2300,
     729    2305,  2310,  2314,  2320,  2329,  2333,  2336,  2340,  2342,  2348,
     730    2354,  2361,  2368,  2370,  2373,  2376,  2378,  2381,  2384,  2388,
     731    2392,  2394,  2399,  2404,  2408,  2414,  2423,  2427,  2429,  2432,
     732    2434,  2437,  2444,  2450,  2457,  2465,  2473,  2475,  2478,  2481,
     733    2483,  2486,  2489,  2493,  2497,  2499,  2504,  2509,  2513,  2522,
     734    2526,  2528,  2530,  2533,  2535,  2537,  2540,  2544,  2547,  2551,
     735    2554,  2558,  2562,  2565,  2570,  2574,  2577,  2581,  2584,  2589,
     736    2593,  2596,  2603,  2610,  2617,  2625,  2627,  2630,  2632,  2634,
     737    2636,  2639,  2643,  2646,  2650,  2653,  2657,  2661,  2666,  2669,
     738    2673,  2678,  2681,  2687,  2693,  2700,  2707,  2708,  2710,  2711
     739};
     740
     741/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
     742static const yytype_int16 yyrhs[] =
     743{
     744     301,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     745      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     746      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,    82,
     747      -1,   141,    82,    -1,    72,    -1,   140,    -1,   109,   169,
     748     110,    -1,   109,   173,   110,    -1,   142,    -1,   143,   111,
     749     134,   164,   135,   112,    -1,   143,   109,   144,   110,    -1,
     750     143,   113,   139,    -1,   143,   113,   111,   134,   146,   135,
     751     112,    -1,   143,    85,   139,    -1,   143,    85,   111,   134,
     752     146,   135,   112,    -1,   143,    86,    -1,   143,    87,    -1,
     753     109,   274,   110,   114,   278,   371,   115,    -1,   143,   114,
     754     144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
     755     164,    -1,   147,    -1,   146,   116,   147,    -1,   139,    -1,
     756     139,   113,   147,    -1,   139,   113,   111,   134,   146,   135,
     757     112,    -1,   139,    85,   147,    -1,   139,    85,   111,   134,
     758     146,   135,   112,    -1,   143,    -1,   136,    -1,   141,    -1,
     759      40,   151,    -1,   149,   151,    -1,   150,   151,    -1,    86,
     760     148,    -1,    87,   148,    -1,    37,   148,    -1,    37,   109,
     761     274,   110,    -1,    66,   148,    -1,    66,   109,   274,   110,
     762      -1,    38,   109,   274,   116,   139,   110,    -1,    76,    -1,
     763      76,   109,   145,   110,    -1,    76,   109,   275,   110,    -1,
     764     117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
     765     122,    -1,   148,    -1,   109,   274,   110,   151,    -1,   109,
     766     274,   110,   167,    -1,   151,    -1,   152,   117,   151,    -1,
     767     152,   123,   151,    -1,   152,   124,   151,    -1,   152,    -1,
     768     153,   119,   152,    -1,   153,   120,   152,    -1,   153,    -1,
     769     154,    88,   153,    -1,   154,    89,   153,    -1,   154,    -1,
     770     155,   125,   154,    -1,   155,   126,   154,    -1,   155,    90,
     771     154,    -1,   155,    91,   154,    -1,   155,    -1,   156,    92,
     772     155,    -1,   156,    93,   155,    -1,   156,    -1,   157,   118,
     773     156,    -1,   157,    -1,   158,   127,   157,    -1,   158,    -1,
     774     159,   128,   158,    -1,   159,    -1,   160,    94,   159,    -1,
     775     160,    -1,   161,    95,   160,    -1,   161,    -1,   161,   129,
     776     169,   130,   162,    -1,   161,   129,   130,   162,    -1,   161,
     777     129,   169,   130,   167,    -1,   162,    -1,   162,    -1,   148,
     778     166,   164,    -1,   167,   372,    -1,    -1,   164,    -1,   131,
     779      -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,   101,
     780      -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,   106,
     781      -1,   111,   112,    -1,   111,   134,   164,   135,   112,    -1,
     782     111,   134,   116,   168,   135,   112,    -1,   111,   134,   164,
     783     116,   168,   135,   112,    -1,   165,    -1,   168,   116,   165,
     784      -1,   164,    -1,   169,   116,   164,    -1,    -1,   169,    -1,
     785     172,    -1,   173,    -1,   177,    -1,   178,    -1,   190,    -1,
     786     192,    -1,   193,    -1,   198,    -1,   127,   143,   114,   144,
     787     115,   132,    -1,    72,   130,   311,   171,    -1,   114,   115,
     788      -1,   114,   134,   134,   209,   174,   135,   115,    -1,   175,
     789      -1,   174,   134,   175,    -1,   212,    -1,    40,   212,    -1,
     790     307,    -1,   171,   135,    -1,   171,    -1,   176,   171,    -1,
     791     170,   132,    -1,    41,   109,   169,   110,   171,    -1,    41,
     792     109,   169,   110,   171,    42,   171,    -1,    43,   109,   169,
     793     110,   183,    -1,    43,   109,   169,   110,   114,   134,   205,
     794     184,   115,    -1,    53,   109,   169,   110,   183,    -1,    53,
     795     109,   169,   110,   114,   134,   205,   186,   115,    -1,   163,
     796      -1,   163,    96,   163,    -1,   309,    -1,   179,    -1,   180,
     797     116,   179,    -1,    44,   180,   130,    -1,    45,   130,    -1,
     798     181,    -1,   182,   181,    -1,   182,   171,    -1,    -1,   185,
     799      -1,   182,   176,    -1,   185,   182,   176,    -1,    -1,   187,
     800      -1,   182,   189,    -1,   182,   176,   188,    -1,   187,   182,
     801     189,    -1,   187,   182,   176,   188,    -1,    -1,   189,    -1,
     802      56,    -1,    56,   132,    -1,    47,   109,   169,   110,   171,
     803      -1,    46,   171,    47,   109,   169,   110,   132,    -1,    48,
     804     109,   134,   191,   110,   171,    -1,   170,   135,   132,   170,
     805     132,   170,    -1,   212,   170,   132,   170,    -1,    51,    72,
     806     132,    -1,    51,   117,   169,   132,    -1,    50,   132,    -1,
     807      50,    72,   132,    -1,    49,   132,    -1,    49,    72,   132,
     808      -1,    52,   170,   132,    -1,    61,   165,   132,    -1,    62,
     809     165,   132,    -1,    62,   165,    63,   164,   132,    -1,    57,
     810     173,   194,    -1,    57,   173,   196,    -1,    57,   173,   194,
     811     196,    -1,   195,    -1,    58,   109,    96,   110,   173,    -1,
     812     195,    58,   109,    96,   110,   173,    -1,    59,   109,    96,
     813     110,   173,    -1,   195,    59,   109,    96,   110,   173,    -1,
     814      58,   109,   134,   134,   197,   135,   110,   173,   135,    -1,
     815     195,    58,   109,   134,   134,   197,   135,   110,   173,   135,
     816      -1,    59,   109,   134,   134,   197,   135,   110,   173,   135,
     817      -1,   195,    59,   109,   134,   134,   197,   135,   110,   173,
     818     135,    -1,    60,   173,    -1,   225,    -1,   225,   308,    -1,
     819     225,   356,    -1,   365,   139,    -1,   365,    -1,    64,   199,
     820     109,   141,   110,   132,    -1,    64,   199,   109,   141,   130,
     821     200,   110,   132,    -1,    64,   199,   109,   141,   130,   200,
     822     130,   200,   110,   132,    -1,    64,   199,   109,   141,   130,
     823     200,   130,   200,   130,   203,   110,   132,    -1,    64,   199,
     824      51,   109,   141,   130,   130,   200,   130,   203,   130,   204,
     825     110,   132,    -1,    -1,    11,    -1,    -1,   201,    -1,   202,
     826      -1,   201,   116,   202,    -1,   141,   109,   163,   110,    -1,
     827     111,   163,   112,   141,   109,   163,   110,    -1,    -1,   141,
     828      -1,   203,   116,   141,    -1,   139,    -1,   204,   116,   139,
     829      -1,   135,    -1,   206,    -1,   212,    -1,   206,   134,   212,
     830      -1,   135,    -1,   208,    -1,   222,    -1,   208,   134,   222,
     831      -1,    -1,   210,    -1,    29,   211,   132,    -1,   210,    29,
     832     211,   132,    -1,   273,    -1,   211,   116,   273,    -1,   213,
     833      -1,   222,    -1,   214,   135,   132,    -1,   219,   135,   132,
     834      -1,   216,   135,   132,    -1,   292,   135,   132,    -1,   295,
     835     135,   132,    -1,   215,   276,    -1,   231,   215,   276,    -1,
     836     214,   135,   116,   134,   271,   276,    -1,   366,   271,   310,
     837      -1,   369,   271,   310,    -1,   227,   369,   271,   310,    -1,
     838     217,    -1,   227,   217,    -1,   231,   217,    -1,   231,   227,
     839     217,    -1,   216,   135,   116,   134,   271,    -1,   111,   112,
     840     271,   109,   134,   259,   135,   110,    -1,   369,   271,   109,
     841     134,   259,   135,   110,    -1,   218,   271,   109,   134,   259,
     842     135,   110,    -1,   111,   134,   261,   135,   112,    -1,   111,
     843     134,   261,   135,   116,   134,   262,   135,   112,    -1,     3,
     844     215,    -1,     3,   217,    -1,   219,   135,   116,   134,   139,
     845      -1,     3,   225,   308,    -1,   220,   135,   116,   134,   308,
     846      -1,   227,     3,   225,   308,    -1,   225,     3,   308,    -1,
     847     225,     3,   227,   308,    -1,     3,   139,   131,   164,    -1,
     848     221,   135,   116,   134,   139,   131,   164,    -1,   223,   135,
     849     132,    -1,   220,   135,   132,    -1,   221,   135,   132,    -1,
     850     239,   135,   132,    -1,   224,   308,   310,   276,    -1,   223,
     851     116,   311,   308,   310,   276,    -1,   235,    -1,   239,    -1,
     852     241,    -1,   282,    -1,   236,    -1,   240,    -1,   242,    -1,
     853     283,    -1,    -1,   227,    -1,   228,    -1,   227,   228,    -1,
     854     229,    -1,   313,    -1,    10,    -1,    12,    -1,    11,    -1,
     855      14,    -1,    67,    -1,    -1,    13,   109,   230,   285,   110,
     856      -1,   232,    -1,   227,   232,    -1,   231,   227,   232,    -1,
     857     233,    -1,   232,   233,    -1,     5,    -1,     7,    -1,     4,
     858      -1,     6,    -1,     8,    -1,     9,    -1,    69,    -1,    71,
     859      -1,    16,    -1,    21,    -1,    20,    -1,    18,    -1,    19,
     860      -1,    17,    -1,    22,    -1,    23,    -1,    15,    -1,    25,
     861      -1,    26,    -1,    27,    -1,    24,    -1,   236,    -1,   231,
     862     236,    -1,   235,   233,    -1,   235,   233,   227,    -1,   235,
     863     233,   236,    -1,   237,    -1,   226,   238,   226,    -1,   234,
     864      -1,   227,   234,    -1,   237,   228,    -1,   237,   234,    -1,
     865      28,   109,   275,   110,    -1,    28,   109,   169,   110,    -1,
     866      78,   109,   275,   110,    -1,    78,   109,   169,   110,    -1,
     867     240,    -1,   231,   240,    -1,   239,   233,    -1,   239,   233,
     868     227,    -1,   243,    -1,   227,   243,    -1,   240,   228,    -1,
     869     242,    -1,   231,   242,    -1,   241,   233,    -1,   241,   233,
     870     227,    -1,    74,    -1,   227,    74,    -1,   242,   228,    -1,
     871     244,    -1,   255,    -1,   246,   114,   247,   115,    -1,   246,
     872     273,    -1,    -1,   246,   273,   245,   114,   247,   115,    -1,
     873     246,   109,   291,   110,   114,   247,   115,    -1,   246,   284,
     874      -1,    31,   311,    -1,    32,   311,    -1,    -1,   247,   248,
     875      -1,   249,   132,    -1,    40,   249,   132,    -1,   250,   132,
     876      -1,    40,   250,   132,    -1,   365,    -1,   365,   273,    -1,
     877     249,   116,   273,    -1,   249,   116,    -1,   225,   251,    -1,
     878     250,   116,   311,   251,    -1,    -1,   253,    -1,   317,   252,
     879      -1,   330,   252,    -1,   356,    -1,    -1,   253,    -1,   130,
     880     163,    -1,    30,   311,    -1,   254,   114,   257,   371,   115,
     881      -1,   254,   273,    -1,    -1,   254,   273,   256,   114,   257,
     882     371,   115,    -1,   273,   258,    -1,   257,   116,   273,   258,
     883      -1,    -1,   131,   163,    -1,    -1,   260,    -1,   262,    -1,
     884     261,    -1,   261,   135,   116,   134,   262,    -1,   262,   135,
     885     116,   134,    96,    -1,   261,   135,   116,   134,    96,    -1,
     886     266,    -1,   262,   135,   116,   134,   266,    -1,   261,   135,
     887     116,   134,   266,    -1,   261,   135,   116,   134,   262,   135,
     888     116,   134,   266,    -1,   267,    -1,   262,   135,   116,   134,
     889     267,    -1,    -1,   264,    -1,   265,    -1,   265,   135,   116,
     890     134,    96,    -1,   269,    -1,   268,    -1,   265,   135,   116,
     891     134,   269,    -1,   265,   135,   116,   134,   268,    -1,   268,
     892      -1,   361,   271,   372,    -1,   369,   271,   372,    -1,   227,
     893     369,   271,   372,    -1,   217,    -1,   269,    -1,   361,    -1,
     894     369,    -1,   227,   369,    -1,   370,    -1,   224,   335,   372,
     895      -1,   224,   339,   372,    -1,   224,    -1,   224,   350,    -1,
     896     139,    -1,   270,   116,   139,    -1,   137,    -1,    74,    -1,
     897      75,    -1,   138,    -1,    74,    -1,    75,    -1,   139,    -1,
     898      74,    -1,    75,    -1,   365,    -1,   225,    -1,   225,   356,
     899      -1,   365,    -1,   370,    -1,   225,    -1,   225,   344,    -1,
     900      -1,   131,   277,    -1,   107,   277,    -1,   164,    -1,   114,
     901     278,   371,   115,    -1,    -1,   277,    -1,   279,   277,    -1,
     902     278,   116,   277,    -1,   278,   116,   279,   277,    -1,   280,
     903     130,    -1,   273,   130,    -1,   281,    -1,   280,   281,    -1,
     904     113,   273,    -1,   111,   134,   164,   135,   112,    -1,   111,
     905     134,   309,   135,   112,    -1,   111,   134,   163,    96,   163,
     906     135,   112,    -1,   113,   111,   134,   146,   135,   112,    -1,
     907     283,    -1,   231,   283,    -1,   282,   233,    -1,   282,   233,
     908     227,    -1,   284,    -1,   227,   284,    -1,   283,   228,    -1,
     909      75,   109,   291,   110,    -1,   286,   372,    -1,   285,   116,
     910     286,   372,    -1,    -1,   288,   273,   287,   289,    -1,   225,
     911     335,    -1,    33,    -1,    35,    -1,    34,    -1,    -1,   289,
     912     290,    -1,   128,   273,   109,   291,   110,    -1,   128,   114,
     913     134,   297,   115,    -1,   128,   109,   134,   285,   135,   110,
     914     114,   134,   297,   115,   109,   291,   110,    -1,   275,    -1,
     915     164,    -1,   291,   116,   275,    -1,   291,   116,   164,    -1,
     916      33,   293,    -1,   232,    33,   293,    -1,   292,   116,   293,
     917      -1,   294,   289,    -1,   294,   289,   131,   275,    -1,   273,
     918      -1,   272,   109,   134,   285,   135,   110,    -1,    36,   273,
     919     109,   134,   285,   135,   110,   114,   115,    -1,    -1,    36,
     920     273,   109,   134,   285,   135,   110,   114,   296,   297,   115,
     921      -1,   298,    -1,   297,   134,   298,    -1,   299,   135,   132,
     922      -1,   300,   135,   132,    -1,   215,    -1,   217,    -1,   299,
     923     135,   116,   134,   271,    -1,   225,   308,    -1,   300,   135,
     924     116,   134,   308,    -1,    -1,   302,    -1,   304,    -1,   302,
     925     134,   304,    -1,    -1,   302,    -1,   212,    -1,   306,    -1,
     926     198,    -1,    -1,     5,    82,   305,   114,   303,   115,    -1,
     927      40,   304,    -1,   307,    -1,   322,   173,    -1,   326,   134,
     928     207,   173,    -1,   216,   173,    -1,   224,   322,   173,    -1,
     929     227,   322,   173,    -1,   231,   322,   173,    -1,   231,   227,
     930     322,   173,    -1,   224,   326,   134,   207,   173,    -1,   227,
     931     326,   134,   207,   173,    -1,   231,   326,   134,   207,   173,
     932      -1,   231,   227,   326,   134,   207,   173,    -1,   317,    -1,
     933     330,    -1,   322,    -1,   163,   122,   163,    -1,    -1,    64,
     934     109,   141,   110,   311,    -1,    -1,   312,    -1,   313,    -1,
     935     312,   313,    -1,    39,   109,   109,   314,   110,   110,    -1,
     936     315,    -1,   314,   116,   315,    -1,    -1,   316,    -1,   316,
     937     109,   170,   110,    -1,   271,    -1,   233,    -1,   234,    -1,
     938     228,    -1,   318,   311,    -1,   319,    -1,   320,   311,    -1,
     939     321,   311,    -1,   137,    -1,   109,   318,   110,    -1,   149,
     940     317,    -1,   149,   227,   317,    -1,   109,   319,   110,    -1,
     941     318,   348,    -1,   109,   319,   110,   348,    -1,   109,   320,
     942     110,   349,    -1,   109,   320,   110,    -1,   109,   319,   110,
     943     109,   134,   263,   135,   110,    -1,   109,   321,   110,    -1,
     944     323,   311,    -1,   324,    -1,   325,   311,    -1,   318,   109,
     945     134,   263,   135,   110,    -1,   109,   324,   110,   109,   134,
     946     263,   135,   110,    -1,   109,   323,   110,    -1,   149,   322,
     947      -1,   149,   227,   322,    -1,   109,   324,   110,    -1,   109,
     948     324,   110,   348,    -1,   109,   325,   110,   349,    -1,   109,
     949     325,   110,    -1,   327,    -1,   328,    -1,   329,    -1,   318,
     950     109,   270,   110,    -1,   109,   328,   110,   109,   270,   110,
     951      -1,   109,   327,   110,    -1,   149,   326,    -1,   149,   227,
     952     326,    -1,   109,   328,   110,    -1,   109,   328,   110,   348,
     953      -1,   109,   329,   110,   349,    -1,   109,   329,   110,    -1,
     954     331,   311,    -1,   332,    -1,   333,   311,    -1,   334,   311,
     955      -1,   340,    -1,   109,   331,   110,    -1,   149,   330,    -1,
     956     149,   227,   330,    -1,   109,   332,   110,    -1,   331,   348,
     957      -1,   109,   332,   110,   348,    -1,   109,   333,   110,   349,
     958      -1,   109,   333,   110,    -1,   331,   109,   134,   263,   135,
     959     110,    -1,   109,   332,   110,   109,   134,   263,   135,   110,
     960      -1,   109,   334,   110,    -1,   318,   311,    -1,   336,    -1,
     961     337,   311,    -1,   338,   311,    -1,   149,   335,    -1,   149,
     962     227,   335,    -1,   109,   336,   110,    -1,   318,   354,    -1,
     963     109,   336,   110,   348,    -1,   109,   337,   110,   349,    -1,
     964     109,   337,   110,    -1,   318,   109,   134,   263,   135,   110,
     965      -1,   109,   336,   110,   109,   134,   263,   135,   110,    -1,
     966     109,   338,   110,    -1,   340,   311,    -1,   341,    -1,   342,
     967     311,    -1,   343,   311,    -1,    74,    -1,    75,    -1,   149,
     968     339,    -1,   149,   227,   339,    -1,   109,   341,   110,    -1,
     969     340,   354,    -1,   109,   341,   110,   354,    -1,   340,   109,
     970     134,   263,   135,   110,    -1,   109,   341,   110,   109,   134,
     971     263,   135,   110,    -1,   345,    -1,   346,   311,    -1,   347,
     972     311,    -1,   149,    -1,   149,   227,    -1,   149,   344,    -1,
     973     149,   227,   344,    -1,   109,   345,   110,    -1,   348,    -1,
     974     109,   345,   110,   348,    -1,   109,   346,   110,   349,    -1,
     975     109,   346,   110,    -1,   109,   134,   263,   135,   110,    -1,
     976     109,   345,   110,   109,   134,   263,   135,   110,    -1,   109,
     977     347,   110,    -1,   111,   112,    -1,   111,   112,   349,    -1,
     978     349,    -1,   111,   134,   164,   135,   112,    -1,   111,   134,
     979     117,   135,   112,    -1,   349,   111,   134,   164,   135,   112,
     980      -1,   349,   111,   134,   117,   135,   112,    -1,   351,    -1,
     981     352,   311,    -1,   353,   311,    -1,   149,    -1,   149,   227,
     982      -1,   149,   350,    -1,   149,   227,   350,    -1,   109,   351,
     983     110,    -1,   354,    -1,   109,   351,   110,   354,    -1,   109,
     984     352,   110,   349,    -1,   109,   352,   110,    -1,   109,   134,
     985     263,   135,   110,    -1,   109,   351,   110,   109,   134,   263,
     986     135,   110,    -1,   109,   353,   110,    -1,   355,    -1,   355,
     987     349,    -1,   349,    -1,   111,   112,    -1,   111,   134,   227,
     988     117,   135,   112,    -1,   111,   134,   227,   135,   112,    -1,
     989     111,   134,   227,   164,   135,   112,    -1,   111,   134,     7,
     990     226,   164,   135,   112,    -1,   111,   134,   227,     7,   164,
     991     135,   112,    -1,   357,    -1,   358,   311,    -1,   359,   311,
     992      -1,   149,    -1,   149,   227,    -1,   149,   356,    -1,   149,
     993     227,   356,    -1,   109,   357,   110,    -1,   348,    -1,   109,
     994     357,   110,   348,    -1,   109,   358,   110,   349,    -1,   109,
     995     358,   110,    -1,   109,   357,   110,   109,   134,   263,   135,
     996     110,    -1,   109,   359,   110,    -1,   361,    -1,   369,    -1,
     997     227,   369,    -1,   362,    -1,   363,    -1,   149,   225,    -1,
     998     227,   149,   225,    -1,   149,   370,    -1,   227,   149,   370,
     999      -1,   149,   360,    -1,   227,   149,   360,    -1,   111,   112,
     1000     225,    -1,   364,   225,    -1,   111,   112,   349,   225,    -1,
     1001     364,   349,   225,    -1,   349,   225,    -1,   111,   112,   362,
     1002      -1,   364,   362,    -1,   111,   112,   349,   362,    -1,   364,
     1003     349,   362,    -1,   349,   362,    -1,   111,   134,   227,   117,
     1004     135,   112,    -1,   111,   134,   227,   164,   135,   112,    -1,
     1005     111,   134,   231,   164,   135,   112,    -1,   111,   134,   231,
     1006     227,   164,   135,   112,    -1,   369,    -1,   227,   369,    -1,
     1007     366,    -1,   367,    -1,   368,    -1,   149,   225,    -1,   227,
     1008     149,   225,    -1,   149,   370,    -1,   227,   149,   370,    -1,
     1009     149,   365,    -1,   227,   149,   365,    -1,   111,   112,   225,
     1010      -1,   111,   112,   349,   225,    -1,   349,   225,    -1,   111,
     1011     112,   367,    -1,   111,   112,   349,   367,    -1,   349,   367,
     1012      -1,   111,   134,   262,   135,   112,    -1,   111,   112,   109,
     1013     259,   110,    -1,   369,   109,   134,   259,   135,   110,    -1,
     1014     218,   109,   134,   259,   135,   110,    -1,    -1,   116,    -1,
     1015      -1,   131,   164,    -1
     1016};
     1017
     1018/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    6851019static const yytype_uint16 yyrline[] =
    6861020{
     
    7631097#endif
    7641098
    765 #if YYDEBUG || YYERROR_VERBOSE || 0
     1099#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    7661100/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    7671101   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    8711205  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    8721206  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    873   "comma_opt", "assignment_opt", YY_NULLPTR
     1207  "comma_opt", "assignment_opt", 0
    8741208};
    8751209#endif
    8761210
    8771211# ifdef YYPRINT
    878 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
    879    (internal) symbol number NUM (which must be that of a token).  */
     1212/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
     1213   token YYLEX-NUM.  */
    8801214static const yytype_uint16 yytoknum[] =
    8811215{
     
    8971231# endif
    8981232
     1233/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     1234static const yytype_uint16 yyr1[] =
     1235{
     1236       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1237     138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
     1238     142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
     1239     143,   143,   143,   144,   144,   145,   145,   146,   146,   147,
     1240     147,   147,   147,   147,   148,   148,   148,   148,   148,   148,
     1241     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
     1242     149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
     1243     152,   152,   152,   153,   153,   153,   154,   154,   154,   155,
     1244     155,   155,   155,   155,   156,   156,   156,   157,   157,   158,
     1245     158,   159,   159,   160,   160,   161,   161,   162,   162,   162,
     1246     162,   163,   164,   164,   164,   165,   165,   166,   166,   166,
     1247     166,   166,   166,   166,   166,   166,   166,   166,   167,   167,
     1248     167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
     1249     171,   171,   171,   171,   171,   171,   171,   172,   173,   173,
     1250     174,   174,   175,   175,   175,   175,   176,   176,   177,   178,
     1251     178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
     1252     181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
     1253     186,   187,   187,   187,   187,   188,   188,   189,   189,   190,
     1254     190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
     1255     192,   192,   192,   192,   193,   193,   193,   194,   194,   194,
     1256     194,   194,   195,   195,   195,   195,   196,   197,   197,   197,
     1257     197,   197,   198,   198,   198,   198,   198,   199,   199,   200,
     1258     200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
     1259     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     1260     210,   210,   211,   211,   212,   212,   213,   213,   213,   213,
     1261     213,   214,   214,   214,   215,   215,   215,   216,   216,   216,
     1262     216,   216,   217,   217,   217,   218,   218,   219,   219,   219,
     1263     220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
     1264     222,   223,   223,   224,   224,   224,   224,   225,   225,   225,
     1265     225,   226,   226,   227,   227,   228,   228,   229,   229,   229,
     1266     229,   229,   230,   229,   231,   231,   231,   232,   232,   233,
     1267     233,   233,   233,   233,   233,   233,   233,   234,   234,   234,
     1268     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
     1269     235,   235,   235,   235,   235,   236,   236,   237,   237,   237,
     1270     237,   238,   238,   238,   238,   239,   239,   239,   239,   240,
     1271     240,   240,   241,   241,   241,   241,   242,   242,   242,   243,
     1272     243,   244,   244,   245,   244,   244,   244,   246,   246,   247,
     1273     247,   248,   248,   248,   248,   249,   249,   249,   249,   250,
     1274     250,   251,   251,   251,   251,   251,   252,   252,   253,   254,
     1275     255,   255,   256,   255,   257,   257,   258,   258,   259,   259,
     1276     260,   260,   260,   260,   260,   261,   261,   261,   261,   262,
     1277     262,   263,   263,   264,   264,   265,   265,   265,   265,   266,
     1278     266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
     1279     268,   269,   269,   270,   270,   271,   271,   271,   272,   272,
     1280     272,   273,   273,   273,   274,   274,   274,   275,   275,   275,
     1281     275,   276,   276,   276,   277,   277,   278,   278,   278,   278,
     1282     278,   279,   279,   280,   280,   281,   281,   281,   281,   281,
     1283     282,   282,   282,   282,   283,   283,   283,   284,   285,   285,
     1284     287,   286,   286,   288,   288,   288,   289,   289,   290,   290,
     1285     290,   291,   291,   291,   291,   292,   292,   292,   293,   293,
     1286     294,   294,   295,   296,   295,   297,   297,   298,   298,   299,
     1287     299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
     1288     304,   304,   304,   305,   304,   304,   306,   306,   306,   307,
     1289     307,   307,   307,   307,   307,   307,   307,   307,   308,   308,
     1290     308,   309,   310,   310,   311,   311,   312,   312,   313,   314,
     1291     314,   315,   315,   315,   316,   316,   316,   316,   317,   317,
     1292     317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
     1293     320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
     1294     324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
     1295     327,   328,   328,   328,   329,   329,   329,   330,   330,   330,
     1296     330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
     1297     334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
     1298     337,   337,   337,   337,   338,   338,   338,   339,   339,   339,
     1299     339,   340,   340,   341,   341,   341,   342,   342,   343,   343,
     1300     344,   344,   344,   345,   345,   345,   345,   345,   346,   346,
     1301     346,   346,   347,   347,   347,   348,   348,   348,   349,   349,
     1302     349,   349,   350,   350,   350,   351,   351,   351,   351,   351,
     1303     352,   352,   352,   352,   353,   353,   353,   354,   354,   354,
     1304     355,   355,   355,   355,   355,   355,   356,   356,   356,   357,
     1305     357,   357,   357,   357,   358,   358,   358,   358,   359,   359,
     1306     360,   360,   360,   361,   361,   362,   362,   362,   362,   362,
     1307     362,   363,   363,   363,   363,   363,   363,   363,   363,   363,
     1308     363,   364,   364,   364,   364,   365,   365,   365,   366,   366,
     1309     367,   367,   367,   367,   367,   367,   368,   368,   368,   368,
     1310     368,   368,   369,   370,   370,   370,   371,   371,   372,   372
     1311};
     1312
     1313/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
     1314static const yytype_uint8 yyr2[] =
     1315{
     1316       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     1317       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1318       3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
     1319       2,     7,     4,     1,     3,     0,     1,     1,     3,     1,
     1320       3,     7,     3,     7,     1,     1,     1,     2,     2,     2,
     1321       2,     2,     2,     4,     2,     4,     6,     1,     4,     4,
     1322       1,     1,     1,     1,     1,     1,     1,     4,     4,     1,
     1323       3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
     1324       3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
     1325       3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
     1326       5,     1,     1,     3,     2,     0,     1,     1,     1,     1,
     1327       1,     1,     1,     1,     1,     1,     1,     1,     2,     5,
     1328       6,     7,     1,     3,     1,     3,     0,     1,     1,     1,
     1329       1,     1,     1,     1,     1,     1,     6,     4,     2,     7,
     1330       1,     3,     1,     2,     1,     2,     1,     2,     2,     5,
     1331       7,     5,     9,     5,     9,     1,     3,     1,     1,     3,
     1332       3,     2,     1,     2,     2,     0,     1,     2,     3,     0,
     1333       1,     2,     3,     3,     4,     0,     1,     1,     2,     5,
     1334       7,     6,     6,     4,     3,     4,     2,     3,     2,     3,
     1335       3,     3,     3,     5,     3,     3,     4,     1,     5,     6,
     1336       5,     6,     9,    10,     9,    10,     2,     1,     2,     2,
     1337       2,     1,     6,     8,    10,    12,    14,     0,     1,     0,
     1338       1,     1,     3,     4,     7,     0,     1,     3,     1,     3,
     1339       1,     1,     1,     3,     1,     1,     1,     3,     0,     1,
     1340       3,     4,     1,     3,     1,     1,     3,     3,     3,     3,
     1341       3,     2,     3,     6,     3,     3,     4,     1,     2,     2,
     1342       3,     5,     8,     7,     7,     5,     9,     2,     2,     5,
     1343       3,     5,     4,     3,     4,     4,     7,     3,     3,     3,
     1344       3,     4,     6,     1,     1,     1,     1,     1,     1,     1,
     1345       1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
     1346       1,     1,     0,     5,     1,     2,     3,     1,     2,     1,
     1347       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1348       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1349       1,     2,     2,     3,     3,     1,     3,     1,     2,     2,
     1350       2,     4,     4,     4,     4,     1,     2,     2,     3,     1,
     1351       2,     2,     1,     2,     2,     3,     1,     2,     2,     1,
     1352       1,     4,     2,     0,     6,     7,     2,     2,     2,     0,
     1353       2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
     1354       4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
     1355       5,     2,     0,     7,     2,     4,     0,     2,     0,     1,
     1356       1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
     1357       5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
     1358       3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
     1359       3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
     1360       1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
     1361       2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
     1362       4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
     1363       1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
     1364       0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
     1365      13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
     1366       1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
     1367       1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
     1368       1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
     1369       3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
     1370       1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
     1371       3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
     1372       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
     1373       3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
     1374       3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
     1375       3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
     1376       2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
     1377       6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
     1378       2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
     1379       2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
     1380       1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
     1381       4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
     1382       6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
     1383       1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
     1384       2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
     1385       2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
     1386       1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
     1387       3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
     1388       2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
     1389       2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
     1390       4,     2,     5,     5,     6,     6,     0,     1,     0,     2
     1391};
     1392
     1393/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
     1394   Performed when YYTABLE doesn't specify something else to do.  Zero
     1395   means the default is an error.  */
     1396static const yytype_uint16 yydefact[] =
     1397{
     1398     291,   291,   311,   309,   312,   310,   313,   314,   297,   299,
     1399     298,     0,   300,   325,   317,   322,   320,   321,   319,   318,
     1400     323,   324,   329,   326,   327,   328,   544,   544,   544,     0,
     1401       0,     0,   291,   217,   301,   315,   316,     7,   356,     0,
     1402       8,    14,    15,     0,     2,    60,    61,   562,     9,   291,
     1403     522,   520,   244,     3,   451,     3,   257,     0,     3,     3,
     1404       3,   245,     3,     0,     0,     0,   292,   293,   295,   291,
     1405     304,   307,   337,   283,   330,   335,   284,   345,   285,   352,
     1406     349,   359,     0,     0,   360,   286,   470,   474,     3,     3,
     1407       0,     2,   516,   521,   526,   296,     0,     0,   544,   574,
     1408     544,     2,   585,   586,   587,   291,     0,   728,   729,     0,
     1409      12,     0,    13,   291,   267,   268,     0,   292,   287,   288,
     1410     289,   290,   523,   302,   389,   545,   546,   367,   368,    12,
     1411     442,   443,    11,   438,   441,     0,   500,   495,   486,   442,
     1412     443,     0,     0,   525,   218,     0,   291,     0,     0,     0,
     1413       0,     0,     0,     0,     0,   291,   291,     2,     0,   730,
     1414     292,   579,   591,   734,   727,   725,   732,     0,     0,     0,
     1415     251,     2,     0,   529,   436,   437,   435,     0,     0,     0,
     1416       0,   544,     0,   631,   632,     0,     0,   542,   538,   544,
     1417     559,   544,   544,   540,     2,   539,   544,   598,   544,   544,
     1418     601,     0,     0,     0,   291,   291,   309,   357,     2,   291,
     1419     258,   294,   305,   338,   350,   475,     0,     2,     0,   451,
     1420     259,   292,   331,   346,   353,   471,     0,     2,     0,   308,
     1421     332,   339,   340,     0,   347,   351,   354,   358,   443,   291,
     1422     369,   362,   366,     0,   391,   472,   476,     0,     0,     0,
     1423       1,   291,     2,   527,   573,   575,   291,     2,   738,   292,
     1424     741,   542,   542,     0,   292,     0,     0,   270,   544,   540,
     1425       2,   291,     0,     0,   291,   547,     2,   498,     2,   551,
     1426       0,     0,     0,     0,     0,     0,    18,    57,     4,     5,
     1427       6,    16,     0,     0,   291,     2,    62,    63,    64,    65,
     1428      45,    19,    46,    22,    44,    66,   291,     0,    69,    73,
     1429      76,    79,    84,    87,    89,    91,    93,    95,    97,   102,
     1430     492,   748,   449,   491,     0,   447,   448,     0,   563,   578,
     1431     581,   584,   590,   593,   596,   356,     0,     2,   736,     0,
     1432     291,   739,     2,    60,   291,     3,   423,     0,   431,   292,
     1433     291,   304,   330,   284,   345,   352,     3,     3,   405,   409,
     1434     419,   424,   470,   291,   425,   703,   704,   291,   426,   428,
     1435     291,     2,   580,   592,   726,     2,     2,   246,     2,   456,
     1436       0,   454,   453,   452,   138,     2,     2,   248,     2,     2,
     1437     247,     2,   278,     2,   279,     0,   277,     0,     0,     0,
     1438       0,     0,     0,     0,     0,     0,   564,   603,     0,   451,
     1439       2,   558,   567,   657,   560,   561,   530,   291,     2,   597,
     1440     606,   599,   600,     0,   273,   291,   291,   336,   292,     0,
     1441     292,     0,   291,   731,   735,   733,   531,   291,   542,   252,
     1442     260,   306,     0,     2,   532,   291,   496,   333,   334,   280,
     1443     348,   355,     0,   291,     0,   746,   396,     0,   473,   497,
     1444     249,   250,   517,   291,   433,     0,   291,   234,     0,     2,
     1445     236,     0,   292,     0,   254,     2,   255,   275,     0,     0,
     1446       2,   291,   542,   291,   483,   485,   484,     0,     0,   748,
     1447       0,   291,     0,   291,   487,   291,   557,   555,   556,   554,
     1448       0,   549,   552,     0,     0,   291,    52,   291,    66,    47,
     1449     291,    54,   291,   291,    50,    51,     2,   124,     0,     0,
     1450     445,     0,   444,   725,   118,   291,    17,     0,    29,    30,
     1451      35,     2,     0,    35,   108,   109,   110,   111,   112,   113,
     1452     114,   115,   116,   117,   107,     0,    48,    49,     0,     0,
     1453       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1454       0,     0,     0,     0,     0,     0,     0,     0,   104,     2,
     1455     643,   450,   640,   544,   544,   648,   477,   291,     2,   582,
     1456     583,     0,   594,   595,     0,     2,   737,   740,   118,   291,
     1457       0,     2,   705,   292,   709,   700,   701,   707,     0,     2,
     1458       2,   665,   544,   748,   614,   544,   544,   748,   544,   628,
     1459     544,   544,   679,   432,   662,   544,   544,   670,   677,   291,
     1460     427,   292,     0,     0,   291,   715,   292,   720,   748,   712,
     1461     291,   717,   748,   291,   291,   291,     0,   118,     0,    18,
     1462       2,     0,    19,     0,   457,   746,     0,     0,   463,   238,
     1463       0,   291,     0,     0,     0,   542,   566,   570,   572,   602,
     1464     605,   609,   612,   565,   604,     0,   281,   655,     0,   291,
     1465     274,     0,     0,     0,     0,   272,     2,     0,   256,   533,
     1466     291,     0,     0,   291,     2,   361,   381,   370,     0,     0,
     1467     375,   369,   747,     0,     0,   394,     0,   292,     3,   412,
     1468       3,   416,   415,   588,     0,   528,   291,    60,     3,   291,
     1469     431,   292,     3,   425,   426,     2,     0,     0,     0,   482,
     1470     303,   291,   478,   480,     3,     2,     2,     0,   499,     3,
     1471       0,   551,   126,     0,     0,   219,     0,     0,     0,     0,
     1472      36,     0,     0,   118,   291,    20,     0,    21,     0,   689,
     1473     694,   446,   686,   544,   544,     0,   105,     3,     2,    27,
     1474       0,    33,     0,     2,    25,     0,   103,    70,    71,    72,
     1475      74,    75,    77,    78,    82,    83,    80,    81,    85,    86,
     1476      88,    90,    92,    94,    96,     0,     0,   749,   291,     0,
     1477       0,     0,   644,   645,   641,   642,   494,   493,   291,     0,
     1478     291,   711,   291,   716,   292,   291,   659,   291,   291,   702,
     1479     658,     2,   291,     0,     0,     0,     0,     0,     0,     0,
     1480       0,   680,     0,   666,   617,   633,   667,     2,   613,   620,
     1481     429,   615,   616,   430,     2,   627,   636,   629,   630,   663,
     1482     664,   678,   706,   710,   708,   748,   265,     2,   742,     2,
     1483     420,   714,   719,   421,     0,   399,     3,     3,     3,     3,
     1484     451,     3,     0,     2,   465,   462,   747,     0,   458,     2,
     1485     461,   464,     0,   291,   239,   261,     3,   269,   271,     0,
     1486     451,     2,   568,   569,     2,   607,   608,     0,   656,   534,
     1487       3,   342,   341,   344,   343,   291,   535,     0,   536,   369,
     1488       0,     0,   291,   291,     0,     0,   689,   379,   382,   386,
     1489     544,   386,   385,   378,   371,   544,   373,   376,   291,   396,
     1490     390,   101,   397,   746,     0,     0,   434,   237,     0,     0,
     1491       3,     2,   665,   427,     0,   524,     0,   748,   486,     0,
     1492     291,   291,   291,     0,   548,   550,   127,     0,     0,   212,
     1493       0,     0,     0,   220,   221,    53,     0,    55,    58,    59,
     1494       0,     2,   125,     0,     0,     0,   690,   691,   687,   688,
     1495     456,    67,    68,   106,   122,     3,   105,     0,     0,    24,
     1496      35,     3,     0,    32,    99,     0,     3,   647,   651,   654,
     1497     646,     3,   589,     3,   713,   718,     2,    60,   291,     3,
     1498       3,   292,     0,     3,   619,   623,   626,   635,   669,   673,
     1499     676,   291,     3,   618,   634,   668,   291,   291,   422,   291,
     1500     291,   743,     0,     0,     0,     0,   253,     0,   101,     0,
     1501       3,     3,     0,   459,     0,   455,     0,     0,   242,   291,
     1502       0,     0,   126,     0,     0,     0,     0,     0,   126,     0,
     1503       0,   105,   105,    18,     2,     0,     0,     3,   128,   129,
     1504       2,   140,   130,   131,   132,   133,   134,   135,   142,   144,
     1505       0,     0,     0,   282,   291,   291,   544,     0,   537,   291,
     1506     372,   374,     0,   388,   690,   383,   387,   384,   377,   381,
     1507     364,   395,     0,   576,     2,   661,   660,     0,   666,     2,
     1508     479,   481,   501,     3,   509,   510,     0,     2,   505,     3,
     1509       3,     0,     0,   553,   219,     0,     0,     0,   219,     0,
     1510       0,   118,   693,   697,   699,   692,   746,   105,     0,     3,
     1511     658,    39,     3,    37,    34,     0,     3,    98,   100,     0,
     1512       2,   649,   650,     0,     0,   291,     0,     0,     0,     3,
     1513     635,     0,     2,   621,   622,     2,   637,     2,   671,   672,
     1514       0,     0,    60,     0,     3,     3,     3,     3,   407,   406,
     1515     410,     2,     2,   745,   744,   119,     0,     0,     0,     0,
     1516       3,   460,     3,     0,   240,   143,     3,   292,   291,     0,
     1517       0,     0,     0,     2,     0,   188,     0,   186,     0,     0,
     1518       0,     0,     0,     0,     0,   544,   118,     0,   148,   145,
     1519     291,     0,     0,   264,   276,     3,     3,   543,   610,   365,
     1520     380,   393,   291,   263,   291,     0,   512,   489,   291,     0,
     1521       0,   488,   503,     0,     0,     0,   213,     0,   222,    56,
     1522       2,   695,   696,     0,   123,   120,     0,     0,     0,     0,
     1523       0,    23,     0,   652,   291,   577,   262,   721,   722,   723,
     1524       0,   674,   291,   291,   291,     3,     3,     0,   682,     0,
     1525       0,     0,     0,   291,   291,     3,   541,   119,   467,     0,
     1526       0,   243,   292,     0,     0,     0,     0,   291,   189,   187,
     1527     184,     0,   190,     0,     0,     0,     0,   194,   197,   195,
     1528     191,     0,   192,   126,    35,   141,   139,   241,     0,     0,
     1529     414,   418,   417,     0,   506,     2,   507,     2,   508,   502,
     1530     291,   225,     0,   223,     0,   225,   291,    31,   121,     2,
     1531      42,     2,    40,    38,    28,    26,     3,   724,     3,     3,
     1532       3,     0,     0,   681,   683,   624,   638,   266,     2,   404,
     1533       3,   403,     0,   469,   466,   126,     0,     0,   126,     3,
     1534       0,   126,   185,     0,     2,     2,   206,   196,     0,     0,
     1535       0,   137,     0,   571,   611,     2,     0,     0,     2,   226,
     1536       0,     0,   214,     0,     3,     0,     0,     0,     0,     0,
     1537       0,   684,   685,   291,     0,   468,   149,     0,     0,     2,
     1538     162,   126,   151,     0,   179,     0,   126,     0,     2,   153,
     1539       0,     2,     0,     2,     2,     2,   193,    32,   291,   511,
     1540     513,   504,     0,     0,     0,     0,     0,     3,     3,   653,
     1541     625,   639,   675,   408,   126,   155,   158,     0,   157,   161,
     1542       3,   164,   163,     0,   126,   181,   126,     3,     0,   291,
     1543       0,   291,     0,     2,     0,     2,   136,     2,   227,   228,
     1544       0,   224,   215,   698,     0,     0,   150,     0,     0,   160,
     1545     230,   165,     2,   232,   180,     0,   183,   169,   198,     3,
     1546     207,   211,   200,     3,     0,   291,     0,   291,     0,     0,
     1547       0,    43,    41,   156,   159,   126,     0,   166,   291,   126,
     1548     126,     0,   170,     0,     0,   689,   208,   209,   210,     0,
     1549     199,     3,   201,     3,   291,   216,   229,   146,   167,   152,
     1550     126,   233,   182,   177,   175,   171,   154,   126,     0,   690,
     1551       0,     0,     0,     0,   147,   168,   178,   172,   176,   175,
     1552     173,     3,     3,     0,     0,   490,   174,   202,   204,     3,
     1553       3,   203,   205
     1554};
     1555
     1556/* YYDEFGOTO[NTERM-NUM].  */
     1557static const yytype_int16 yydefgoto[] =
     1558{
     1559      -1,   812,   467,   300,    47,   133,   134,   301,   302,   303,
     1560     304,   760,   761,  1132,  1133,   305,   380,   307,   308,   309,
     1561     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     1562    1029,   517,   974,   545,   321,   975,   946,  1056,  1517,  1058,
     1563    1059,  1060,  1061,  1518,  1062,  1063,  1436,  1437,  1400,  1401,
     1564    1402,  1496,  1497,  1501,  1502,  1537,  1538,  1064,  1360,  1065,
     1565    1066,  1297,  1298,  1299,  1479,  1067,   145,   952,   953,   954,
     1566    1380,  1460,  1471,  1472,   468,   469,   873,   874,  1037,    51,
     1567      52,    53,    54,    55,   346,   158,    58,    59,    60,    61,
     1568      62,   348,    64,    65,   264,    67,    68,   274,   350,   351,
     1569      71,    72,    73,   118,    75,   204,   353,   119,    78,   120,
     1570      80,    81,   454,    82,   453,   687,   688,   689,   907,  1085,
     1571     908,    83,    84,   457,   455,   695,   854,   855,   856,   857,
     1572     698,   699,   700,   358,   359,   360,   361,   465,   339,   135,
     1573     136,   521,   323,   170,   644,   645,   646,   647,   648,    85,
     1574     121,    87,   488,   489,   938,   490,   277,   494,   324,    88,
     1575     137,   138,    89,  1320,  1107,  1108,  1109,  1110,    90,    91,
     1576     716,    92,   273,    93,    94,   187,  1031,   678,   411,   125,
     1577      95,   500,   501,   502,   188,   268,   190,   191,   192,   269,
     1578      98,    99,   100,   101,   102,   103,   104,   195,   196,   197,
     1579     198,   199,   824,   604,   605,   606,   607,   200,   609,   610,
     1580     611,   571,   572,   573,   574,   750,   105,   613,   614,   615,
     1581     616,   617,   618,   967,   752,   753,   754,   594,   364,   365,
     1582     366,   367,   325,   164,   107,   108,   109,   369,   693,   568
     1583};
     1584
     1585/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     1586   STATE-NUM.  */
    8991587#define YYPACT_NINF -1317
    900 
    901 #define yypact_value_is_default(Yystate) \
    902   (!!((Yystate) == (-1317)))
    903 
    904 #define YYTABLE_NINF -520
    905 
    906 #define yytable_value_is_error(Yytable_value) \
    907   0
    908 
    909   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    910      STATE-NUM.  */
    9111588static const yytype_int16 yypact[] =
    9121589{
     
    10691746};
    10701747
    1071   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
    1072      Performed when YYTABLE does not specify something else to do.  Zero
    1073      means the default is an error.  */
    1074 static const yytype_uint16 yydefact[] =
    1075 {
    1076      291,   291,   311,   309,   312,   310,   313,   314,   297,   299,
    1077      298,     0,   300,   325,   317,   322,   320,   321,   319,   318,
    1078      323,   324,   329,   326,   327,   328,   544,   544,   544,     0,
    1079        0,     0,   291,   217,   301,   315,   316,     7,   356,     0,
    1080        8,    14,    15,     0,     2,    60,    61,   562,     9,   291,
    1081      522,   520,   244,     3,   451,     3,   257,     0,     3,     3,
    1082        3,   245,     3,     0,     0,     0,   292,   293,   295,   291,
    1083      304,   307,   337,   283,   330,   335,   284,   345,   285,   352,
    1084      349,   359,     0,     0,   360,   286,   470,   474,     3,     3,
    1085        0,     2,   516,   521,   526,   296,     0,     0,   544,   574,
    1086      544,     2,   585,   586,   587,   291,     0,   728,   729,     0,
    1087       12,     0,    13,   291,   267,   268,     0,   292,   287,   288,
    1088      289,   290,   523,   302,   389,   545,   546,   367,   368,    12,
    1089      442,   443,    11,   438,   441,     0,   500,   495,   486,   442,
    1090      443,     0,     0,   525,   218,     0,   291,     0,     0,     0,
    1091        0,     0,     0,     0,     0,   291,   291,     2,     0,   730,
    1092      292,   579,   591,   734,   727,   725,   732,     0,     0,     0,
    1093      251,     2,     0,   529,   436,   437,   435,     0,     0,     0,
    1094        0,   544,     0,   631,   632,     0,     0,   542,   538,   544,
    1095      559,   544,   544,   540,     2,   539,   544,   598,   544,   544,
    1096      601,     0,     0,     0,   291,   291,   309,   357,     2,   291,
    1097      258,   294,   305,   338,   350,   475,     0,     2,     0,   451,
    1098      259,   292,   331,   346,   353,   471,     0,     2,     0,   308,
    1099      332,   339,   340,     0,   347,   351,   354,   358,   443,   291,
    1100      369,   362,   366,     0,   391,   472,   476,     0,     0,     0,
    1101        1,   291,     2,   527,   573,   575,   291,     2,   738,   292,
    1102      741,   542,   542,     0,   292,     0,     0,   270,   544,   540,
    1103        2,   291,     0,     0,   291,   547,     2,   498,     2,   551,
    1104        0,     0,     0,     0,     0,     0,    18,    57,     4,     5,
    1105        6,    16,     0,     0,   291,     2,    62,    63,    64,    65,
    1106       45,    19,    46,    22,    44,    66,   291,     0,    69,    73,
    1107       76,    79,    84,    87,    89,    91,    93,    95,    97,   102,
    1108      492,   748,   449,   491,     0,   447,   448,     0,   563,   578,
    1109      581,   584,   590,   593,   596,   356,     0,     2,   736,     0,
    1110      291,   739,     2,    60,   291,     3,   423,     0,   431,   292,
    1111      291,   304,   330,   284,   345,   352,     3,     3,   405,   409,
    1112      419,   424,   470,   291,   425,   703,   704,   291,   426,   428,
    1113      291,     2,   580,   592,   726,     2,     2,   246,     2,   456,
    1114        0,   454,   453,   452,   138,     2,     2,   248,     2,     2,
    1115      247,     2,   278,     2,   279,     0,   277,     0,     0,     0,
    1116        0,     0,     0,     0,     0,     0,   564,   603,     0,   451,
    1117        2,   558,   567,   657,   560,   561,   530,   291,     2,   597,
    1118      606,   599,   600,     0,   273,   291,   291,   336,   292,     0,
    1119      292,     0,   291,   731,   735,   733,   531,   291,   542,   252,
    1120      260,   306,     0,     2,   532,   291,   496,   333,   334,   280,
    1121      348,   355,     0,   291,     0,   746,   396,     0,   473,   497,
    1122      249,   250,   517,   291,   433,     0,   291,   234,     0,     2,
    1123      236,     0,   292,     0,   254,     2,   255,   275,     0,     0,
    1124        2,   291,   542,   291,   483,   485,   484,     0,     0,   748,
    1125        0,   291,     0,   291,   487,   291,   557,   555,   556,   554,
    1126        0,   549,   552,     0,     0,   291,    52,   291,    66,    47,
    1127      291,    54,   291,   291,    50,    51,     2,   124,     0,     0,
    1128      445,     0,   444,   725,   118,   291,    17,     0,    29,    30,
    1129       35,     2,     0,    35,   108,   109,   110,   111,   112,   113,
    1130      114,   115,   116,   117,   107,     0,    48,    49,     0,     0,
    1131        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1132        0,     0,     0,     0,     0,     0,     0,     0,   104,     2,
    1133      643,   450,   640,   544,   544,   648,   477,   291,     2,   582,
    1134      583,     0,   594,   595,     0,     2,   737,   740,   118,   291,
    1135        0,     2,   705,   292,   709,   700,   701,   707,     0,     2,
    1136        2,   665,   544,   748,   614,   544,   544,   748,   544,   628,
    1137      544,   544,   679,   432,   662,   544,   544,   670,   677,   291,
    1138      427,   292,     0,     0,   291,   715,   292,   720,   748,   712,
    1139      291,   717,   748,   291,   291,   291,     0,   118,     0,    18,
    1140        2,     0,    19,     0,   457,   746,     0,     0,   463,   238,
    1141        0,   291,     0,     0,     0,   542,   566,   570,   572,   602,
    1142      605,   609,   612,   565,   604,     0,   281,   655,     0,   291,
    1143      274,     0,     0,     0,     0,   272,     2,     0,   256,   533,
    1144      291,     0,     0,   291,     2,   361,   381,   370,     0,     0,
    1145      375,   369,   747,     0,     0,   394,     0,   292,     3,   412,
    1146        3,   416,   415,   588,     0,   528,   291,    60,     3,   291,
    1147      431,   292,     3,   425,   426,     2,     0,     0,     0,   482,
    1148      303,   291,   478,   480,     3,     2,     2,     0,   499,     3,
    1149        0,   551,   126,     0,     0,   219,     0,     0,     0,     0,
    1150       36,     0,     0,   118,   291,    20,     0,    21,     0,   689,
    1151      694,   446,   686,   544,   544,     0,   105,     3,     2,    27,
    1152        0,    33,     0,     2,    25,     0,   103,    70,    71,    72,
    1153       74,    75,    77,    78,    82,    83,    80,    81,    85,    86,
    1154       88,    90,    92,    94,    96,     0,     0,   749,   291,     0,
    1155        0,     0,   644,   645,   641,   642,   494,   493,   291,     0,
    1156      291,   711,   291,   716,   292,   291,   659,   291,   291,   702,
    1157      658,     2,   291,     0,     0,     0,     0,     0,     0,     0,
    1158        0,   680,     0,   666,   617,   633,   667,     2,   613,   620,
    1159      429,   615,   616,   430,     2,   627,   636,   629,   630,   663,
    1160      664,   678,   706,   710,   708,   748,   265,     2,   742,     2,
    1161      420,   714,   719,   421,     0,   399,     3,     3,     3,     3,
    1162      451,     3,     0,     2,   465,   462,   747,     0,   458,     2,
    1163      461,   464,     0,   291,   239,   261,     3,   269,   271,     0,
    1164      451,     2,   568,   569,     2,   607,   608,     0,   656,   534,
    1165        3,   342,   341,   344,   343,   291,   535,     0,   536,   369,
    1166        0,     0,   291,   291,     0,     0,   689,   379,   382,   386,
    1167      544,   386,   385,   378,   371,   544,   373,   376,   291,   396,
    1168      390,   101,   397,   746,     0,     0,   434,   237,     0,     0,
    1169        3,     2,   665,   427,     0,   524,     0,   748,   486,     0,
    1170      291,   291,   291,     0,   548,   550,   127,     0,     0,   212,
    1171        0,     0,     0,   220,   221,    53,     0,    55,    58,    59,
    1172        0,     2,   125,     0,     0,     0,   690,   691,   687,   688,
    1173      456,    67,    68,   106,   122,     3,   105,     0,     0,    24,
    1174       35,     3,     0,    32,    99,     0,     3,   647,   651,   654,
    1175      646,     3,   589,     3,   713,   718,     2,    60,   291,     3,
    1176        3,   292,     0,     3,   619,   623,   626,   635,   669,   673,
    1177      676,   291,     3,   618,   634,   668,   291,   291,   422,   291,
    1178      291,   743,     0,     0,     0,     0,   253,     0,   101,     0,
    1179        3,     3,     0,   459,     0,   455,     0,     0,   242,   291,
    1180        0,     0,   126,     0,     0,     0,     0,     0,   126,     0,
    1181        0,   105,   105,    18,     2,     0,     0,     3,   128,   129,
    1182        2,   140,   130,   131,   132,   133,   134,   135,   142,   144,
    1183        0,     0,     0,   282,   291,   291,   544,     0,   537,   291,
    1184      372,   374,     0,   388,   690,   383,   387,   384,   377,   381,
    1185      364,   395,     0,   576,     2,   661,   660,     0,   666,     2,
    1186      479,   481,   501,     3,   509,   510,     0,     2,   505,     3,
    1187        3,     0,     0,   553,   219,     0,     0,     0,   219,     0,
    1188        0,   118,   693,   697,   699,   692,   746,   105,     0,     3,
    1189      658,    39,     3,    37,    34,     0,     3,    98,   100,     0,
    1190        2,   649,   650,     0,     0,   291,     0,     0,     0,     3,
    1191      635,     0,     2,   621,   622,     2,   637,     2,   671,   672,
    1192        0,     0,    60,     0,     3,     3,     3,     3,   407,   406,
    1193      410,     2,     2,   745,   744,   119,     0,     0,     0,     0,
    1194        3,   460,     3,     0,   240,   143,     3,   292,   291,     0,
    1195        0,     0,     0,     2,     0,   188,     0,   186,     0,     0,
    1196        0,     0,     0,     0,     0,   544,   118,     0,   148,   145,
    1197      291,     0,     0,   264,   276,     3,     3,   543,   610,   365,
    1198      380,   393,   291,   263,   291,     0,   512,   489,   291,     0,
    1199        0,   488,   503,     0,     0,     0,   213,     0,   222,    56,
    1200        2,   695,   696,     0,   123,   120,     0,     0,     0,     0,
    1201        0,    23,     0,   652,   291,   577,   262,   721,   722,   723,
    1202        0,   674,   291,   291,   291,     3,     3,     0,   682,     0,
    1203        0,     0,     0,   291,   291,     3,   541,   119,   467,     0,
    1204        0,   243,   292,     0,     0,     0,     0,   291,   189,   187,
    1205      184,     0,   190,     0,     0,     0,     0,   194,   197,   195,
    1206      191,     0,   192,   126,    35,   141,   139,   241,     0,     0,
    1207      414,   418,   417,     0,   506,     2,   507,     2,   508,   502,
    1208      291,   225,     0,   223,     0,   225,   291,    31,   121,     2,
    1209       42,     2,    40,    38,    28,    26,     3,   724,     3,     3,
    1210        3,     0,     0,   681,   683,   624,   638,   266,     2,   404,
    1211        3,   403,     0,   469,   466,   126,     0,     0,   126,     3,
    1212        0,   126,   185,     0,     2,     2,   206,   196,     0,     0,
    1213        0,   137,     0,   571,   611,     2,     0,     0,     2,   226,
    1214        0,     0,   214,     0,     3,     0,     0,     0,     0,     0,
    1215        0,   684,   685,   291,     0,   468,   149,     0,     0,     2,
    1216      162,   126,   151,     0,   179,     0,   126,     0,     2,   153,
    1217        0,     2,     0,     2,     2,     2,   193,    32,   291,   511,
    1218      513,   504,     0,     0,     0,     0,     0,     3,     3,   653,
    1219      625,   639,   675,   408,   126,   155,   158,     0,   157,   161,
    1220        3,   164,   163,     0,   126,   181,   126,     3,     0,   291,
    1221        0,   291,     0,     2,     0,     2,   136,     2,   227,   228,
    1222        0,   224,   215,   698,     0,     0,   150,     0,     0,   160,
    1223      230,   165,     2,   232,   180,     0,   183,   169,   198,     3,
    1224      207,   211,   200,     3,     0,   291,     0,   291,     0,     0,
    1225        0,    43,    41,   156,   159,   126,     0,   166,   291,   126,
    1226      126,     0,   170,     0,     0,   689,   208,   209,   210,     0,
    1227      199,     3,   201,     3,   291,   216,   229,   146,   167,   152,
    1228      126,   233,   182,   177,   175,   171,   154,   126,     0,   690,
    1229        0,     0,     0,     0,   147,   168,   178,   172,   176,   175,
    1230      173,     3,     3,     0,     0,   490,   174,   202,   204,     3,
    1231        3,   203,   205
    1232 };
    1233 
    1234   /* YYPGOTO[NTERM-NUM].  */
     1748/* YYPGOTO[NTERM-NUM].  */
    12351749static const yytype_int16 yypgoto[] =
    12361750{
     
    12611775};
    12621776
    1263   /* YYDEFGOTO[NTERM-NUM].  */
    1264 static const yytype_int16 yydefgoto[] =
    1265 {
    1266       -1,   812,   467,   300,    47,   133,   134,   301,   302,   303,
    1267      304,   760,   761,  1132,  1133,   305,   380,   307,   308,   309,
    1268      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
    1269     1029,   517,   974,   545,   321,   975,   946,  1056,  1517,  1058,
    1270     1059,  1060,  1061,  1518,  1062,  1063,  1436,  1437,  1400,  1401,
    1271     1402,  1496,  1497,  1501,  1502,  1537,  1538,  1064,  1360,  1065,
    1272     1066,  1297,  1298,  1299,  1479,  1067,   145,   952,   953,   954,
    1273     1380,  1460,  1471,  1472,   468,   469,   873,   874,  1037,    51,
    1274       52,    53,    54,    55,   346,   158,    58,    59,    60,    61,
    1275       62,   348,    64,    65,   264,    67,    68,   274,   350,   351,
    1276       71,    72,    73,   118,    75,   204,   353,   119,    78,   120,
    1277       80,    81,   454,    82,   453,   687,   688,   689,   907,  1085,
    1278      908,    83,    84,   457,   455,   695,   854,   855,   856,   857,
    1279      698,   699,   700,   358,   359,   360,   361,   465,   339,   135,
    1280      136,   521,   323,   170,   644,   645,   646,   647,   648,    85,
    1281      121,    87,   488,   489,   938,   490,   277,   494,   324,    88,
    1282      137,   138,    89,  1320,  1107,  1108,  1109,  1110,    90,    91,
    1283      716,    92,   273,    93,    94,   187,  1031,   678,   411,   125,
    1284       95,   500,   501,   502,   188,   268,   190,   191,   192,   269,
    1285       98,    99,   100,   101,   102,   103,   104,   195,   196,   197,
    1286      198,   199,   824,   604,   605,   606,   607,   200,   609,   610,
    1287      611,   571,   572,   573,   574,   750,   105,   613,   614,   615,
    1288      616,   617,   618,   967,   752,   753,   754,   594,   364,   365,
    1289      366,   367,   325,   164,   107,   108,   109,   369,   693,   568
    1290 };
    1291 
    1292   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
    1293      positive, shift that token.  If negative, reduce the rule whose
    1294      number is the opposite.  If YYTABLE_NINF, syntax error.  */
     1777/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
     1778   positive, shift that token.  If negative, reduce the rule which
     1779   number is the opposite.  If YYTABLE_NINF, syntax error.  */
     1780#define YYTABLE_NINF -520
    12951781static const yytype_int16 yytable[] =
    12961782{
     
    23952881};
    23962882
     2883#define yypact_value_is_default(yystate) \
     2884  ((yystate) == (-1317))
     2885
     2886#define yytable_value_is_error(yytable_value) \
     2887  YYID (0)
     2888
    23972889static const yytype_int16 yycheck[] =
    23982890{
     
    34973989};
    34983990
    3499   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3500      symbol of state STATE-NUM.  */
     3991/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3992   symbol of state STATE-NUM.  */
    35013993static const yytype_uint16 yystos[] =
    35023994{
     
    36594151};
    36604152
    3661   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    3662 static const yytype_uint16 yyr1[] =
    3663 {
    3664        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    3665      138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
    3666      142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
    3667      143,   143,   143,   144,   144,   145,   145,   146,   146,   147,
    3668      147,   147,   147,   147,   148,   148,   148,   148,   148,   148,
    3669      148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
    3670      149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
    3671      152,   152,   152,   153,   153,   153,   154,   154,   154,   155,
    3672      155,   155,   155,   155,   156,   156,   156,   157,   157,   158,
    3673      158,   159,   159,   160,   160,   161,   161,   162,   162,   162,
    3674      162,   163,   164,   164,   164,   165,   165,   166,   166,   166,
    3675      166,   166,   166,   166,   166,   166,   166,   166,   167,   167,
    3676      167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
    3677      171,   171,   171,   171,   171,   171,   171,   172,   173,   173,
    3678      174,   174,   175,   175,   175,   175,   176,   176,   177,   178,
    3679      178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
    3680      181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
    3681      186,   187,   187,   187,   187,   188,   188,   189,   189,   190,
    3682      190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
    3683      192,   192,   192,   192,   193,   193,   193,   194,   194,   194,
    3684      194,   194,   195,   195,   195,   195,   196,   197,   197,   197,
    3685      197,   197,   198,   198,   198,   198,   198,   199,   199,   200,
    3686      200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
    3687      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    3688      210,   210,   211,   211,   212,   212,   213,   213,   213,   213,
    3689      213,   214,   214,   214,   215,   215,   215,   216,   216,   216,
    3690      216,   216,   217,   217,   217,   218,   218,   219,   219,   219,
    3691      220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
    3692      222,   223,   223,   224,   224,   224,   224,   225,   225,   225,
    3693      225,   226,   226,   227,   227,   228,   228,   229,   229,   229,
    3694      229,   229,   230,   229,   231,   231,   231,   232,   232,   233,
    3695      233,   233,   233,   233,   233,   233,   233,   234,   234,   234,
    3696      234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
    3697      235,   235,   235,   235,   235,   236,   236,   237,   237,   237,
    3698      237,   238,   238,   238,   238,   239,   239,   239,   239,   240,
    3699      240,   240,   241,   241,   241,   241,   242,   242,   242,   243,
    3700      243,   244,   244,   245,   244,   244,   244,   246,   246,   247,
    3701      247,   248,   248,   248,   248,   249,   249,   249,   249,   250,
    3702      250,   251,   251,   251,   251,   251,   252,   252,   253,   254,
    3703      255,   255,   256,   255,   257,   257,   258,   258,   259,   259,
    3704      260,   260,   260,   260,   260,   261,   261,   261,   261,   262,
    3705      262,   263,   263,   264,   264,   265,   265,   265,   265,   266,
    3706      266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
    3707      268,   269,   269,   270,   270,   271,   271,   271,   272,   272,
    3708      272,   273,   273,   273,   274,   274,   274,   275,   275,   275,
    3709      275,   276,   276,   276,   277,   277,   278,   278,   278,   278,
    3710      278,   279,   279,   280,   280,   281,   281,   281,   281,   281,
    3711      282,   282,   282,   282,   283,   283,   283,   284,   285,   285,
    3712      287,   286,   286,   288,   288,   288,   289,   289,   290,   290,
    3713      290,   291,   291,   291,   291,   292,   292,   292,   293,   293,
    3714      294,   294,   295,   296,   295,   297,   297,   298,   298,   299,
    3715      299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
    3716      304,   304,   304,   305,   304,   304,   306,   306,   306,   307,
    3717      307,   307,   307,   307,   307,   307,   307,   307,   308,   308,
    3718      308,   309,   310,   310,   311,   311,   312,   312,   313,   314,
    3719      314,   315,   315,   315,   316,   316,   316,   316,   317,   317,
    3720      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    3721      320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    3722      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    3723      327,   328,   328,   328,   329,   329,   329,   330,   330,   330,
    3724      330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
    3725      334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
    3726      337,   337,   337,   337,   338,   338,   338,   339,   339,   339,
    3727      339,   340,   340,   341,   341,   341,   342,   342,   343,   343,
    3728      344,   344,   344,   345,   345,   345,   345,   345,   346,   346,
    3729      346,   346,   347,   347,   347,   348,   348,   348,   349,   349,
    3730      349,   349,   350,   350,   350,   351,   351,   351,   351,   351,
    3731      352,   352,   352,   352,   353,   353,   353,   354,   354,   354,
    3732      355,   355,   355,   355,   355,   355,   356,   356,   356,   357,
    3733      357,   357,   357,   357,   358,   358,   358,   358,   359,   359,
    3734      360,   360,   360,   361,   361,   362,   362,   362,   362,   362,
    3735      362,   363,   363,   363,   363,   363,   363,   363,   363,   363,
    3736      363,   364,   364,   364,   364,   365,   365,   365,   366,   366,
    3737      367,   367,   367,   367,   367,   367,   368,   368,   368,   368,
    3738      368,   368,   369,   370,   370,   370,   371,   371,   372,   372
    3739 };
    3740 
    3741   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
    3742 static const yytype_uint8 yyr2[] =
    3743 {
    3744        0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    3745        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
    3746        3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
    3747        2,     7,     4,     1,     3,     0,     1,     1,     3,     1,
    3748        3,     7,     3,     7,     1,     1,     1,     2,     2,     2,
    3749        2,     2,     2,     4,     2,     4,     6,     1,     4,     4,
    3750        1,     1,     1,     1,     1,     1,     1,     4,     4,     1,
    3751        3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
    3752        3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
    3753        3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
    3754        5,     1,     1,     3,     2,     0,     1,     1,     1,     1,
    3755        1,     1,     1,     1,     1,     1,     1,     1,     2,     5,
    3756        6,     7,     1,     3,     1,     3,     0,     1,     1,     1,
    3757        1,     1,     1,     1,     1,     1,     6,     4,     2,     7,
    3758        1,     3,     1,     2,     1,     2,     1,     2,     2,     5,
    3759        7,     5,     9,     5,     9,     1,     3,     1,     1,     3,
    3760        3,     2,     1,     2,     2,     0,     1,     2,     3,     0,
    3761        1,     2,     3,     3,     4,     0,     1,     1,     2,     5,
    3762        7,     6,     6,     4,     3,     4,     2,     3,     2,     3,
    3763        3,     3,     3,     5,     3,     3,     4,     1,     5,     6,
    3764        5,     6,     9,    10,     9,    10,     2,     1,     2,     2,
    3765        2,     1,     6,     8,    10,    12,    14,     0,     1,     0,
    3766        1,     1,     3,     4,     7,     0,     1,     3,     1,     3,
    3767        1,     1,     1,     3,     1,     1,     1,     3,     0,     1,
    3768        3,     4,     1,     3,     1,     1,     3,     3,     3,     3,
    3769        3,     2,     3,     6,     3,     3,     4,     1,     2,     2,
    3770        3,     5,     8,     7,     7,     5,     9,     2,     2,     5,
    3771        3,     5,     4,     3,     4,     4,     7,     3,     3,     3,
    3772        3,     4,     6,     1,     1,     1,     1,     1,     1,     1,
    3773        1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
    3774        1,     1,     0,     5,     1,     2,     3,     1,     2,     1,
    3775        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3776        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3777        1,     2,     2,     3,     3,     1,     3,     1,     2,     2,
    3778        2,     4,     4,     4,     4,     1,     2,     2,     3,     1,
    3779        2,     2,     1,     2,     2,     3,     1,     2,     2,     1,
    3780        1,     4,     2,     0,     6,     7,     2,     2,     2,     0,
    3781        2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
    3782        4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
    3783        5,     2,     0,     7,     2,     4,     0,     2,     0,     1,
    3784        1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
    3785        5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
    3786        3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
    3787        3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
    3788        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    3789        2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
    3790        4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
    3791        1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
    3792        0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
    3793       13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
    3794        1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
    3795        1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
    3796        1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
    3797        3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
    3798        1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
    3799        3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
    3800        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    3801        3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
    3802        3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
    3803        3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
    3804        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    3805        6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
    3806        2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
    3807        2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
    3808        1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
    3809        4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
    3810        6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
    3811        1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
    3812        2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
    3813        2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
    3814        1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
    3815        3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
    3816        2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
    3817        2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
    3818        4,     2,     5,     5,     6,     6,     0,     1,     0,     2
    3819 };
    3820 
    3821 
    3822 #define yyerrok         (yyerrstatus = 0)
    3823 #define yyclearin       (yychar = YYEMPTY)
    3824 #define YYEMPTY         (-2)
    3825 #define YYEOF           0
    3826 
    3827 #define YYACCEPT        goto yyacceptlab
    3828 #define YYABORT         goto yyabortlab
    3829 #define YYERROR         goto yyerrorlab
    3830 
     4153#define yyerrok         (yyerrstatus = 0)
     4154#define yyclearin       (yychar = YYEMPTY)
     4155#define YYEMPTY         (-2)
     4156#define YYEOF           0
     4157
     4158#define YYACCEPT        goto yyacceptlab
     4159#define YYABORT         goto yyabortlab
     4160#define YYERROR         goto yyerrorlab
     4161
     4162
     4163/* Like YYERROR except do call yyerror.  This remains here temporarily
     4164   to ease the transition to the new meaning of YYERROR, for GCC.
     4165   Once GCC version 2 has supplanted version 1, this can go.  However,
     4166   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
     4167   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
     4168   discussed.  */
     4169
     4170#define YYFAIL          goto yyerrlab
     4171#if defined YYFAIL
     4172  /* This is here to suppress warnings from the GCC cpp's
     4173     -Wunused-macros.  Normally we don't worry about that warning, but
     4174     some users do, and we want to make it easy for users to remove
     4175     YYFAIL uses, which will produce warnings from Bison 2.5.  */
     4176#endif
    38314177
    38324178#define YYRECOVERING()  (!!yyerrstatus)
    38334179
    3834 #define YYBACKUP(Token, Value)                                  \
    3835 do                                                              \
    3836   if (yychar == YYEMPTY)                                        \
    3837     {                                                           \
    3838       yychar = (Token);                                         \
    3839       yylval = (Value);                                         \
    3840       YYPOPSTACK (yylen);                                       \
    3841       yystate = *yyssp;                                         \
    3842       goto yybackup;                                            \
    3843     }                                                           \
    3844   else                                                          \
    3845     {                                                           \
     4180#define YYBACKUP(Token, Value)                                  \
     4181do                                                              \
     4182  if (yychar == YYEMPTY && yylen == 1)                          \
     4183    {                                                           \
     4184      yychar = (Token);                                         \
     4185      yylval = (Value);                                         \
     4186      YYPOPSTACK (1);                                           \
     4187      goto yybackup;                                            \
     4188    }                                                           \
     4189  else                                                          \
     4190    {                                                           \
    38464191      yyerror (YY_("syntax error: cannot back up")); \
    3847       YYERROR;                                                  \
    3848     }                                                           \
    3849 while (0)
    3850 
    3851 /* Error token number */
    3852 #define YYTERROR        1
    3853 #define YYERRCODE       256
    3854 
    3855 
     4192      YYERROR;                                                  \
     4193    }                                                           \
     4194while (YYID (0))
     4195
     4196
     4197#define YYTERROR        1
     4198#define YYERRCODE       256
     4199
     4200
     4201/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
     4202   If N is 0, then set CURRENT to the empty location which ends
     4203   the previous symbol: RHS[0] (always defined).  */
     4204
     4205#define YYRHSLOC(Rhs, K) ((Rhs)[K])
     4206#ifndef YYLLOC_DEFAULT
     4207# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
     4208    do                                                                  \
     4209      if (YYID (N))                                                    \
     4210        {                                                               \
     4211          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
     4212          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
     4213          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
     4214          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
     4215        }                                                               \
     4216      else                                                              \
     4217        {                                                               \
     4218          (Current).first_line   = (Current).last_line   =              \
     4219            YYRHSLOC (Rhs, 0).last_line;                                \
     4220          (Current).first_column = (Current).last_column =              \
     4221            YYRHSLOC (Rhs, 0).last_column;                              \
     4222        }                                                               \
     4223    while (YYID (0))
     4224#endif
     4225
     4226
     4227/* This macro is provided for backward compatibility. */
     4228
     4229#ifndef YY_LOCATION_PRINT
     4230# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     4231#endif
     4232
     4233
     4234/* YYLEX -- calling `yylex' with the right arguments.  */
     4235
     4236#ifdef YYLEX_PARAM
     4237# define YYLEX yylex (YYLEX_PARAM)
     4238#else
     4239# define YYLEX yylex ()
     4240#endif
    38564241
    38574242/* Enable debugging if requested.  */
     
    38634248# endif
    38644249
    3865 # define YYDPRINTF(Args)                        \
    3866 do {                                            \
    3867   if (yydebug)                                  \
    3868     YYFPRINTF Args;                             \
    3869 } while (0)
    3870 
    3871 /* This macro is provided for backward compatibility. */
    3872 #ifndef YY_LOCATION_PRINT
    3873 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    3874 #endif
    3875 
    3876 
    3877 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    3878 do {                                                                      \
    3879   if (yydebug)                                                            \
    3880     {                                                                     \
    3881       YYFPRINTF (stderr, "%s ", Title);                                   \
    3882       yy_symbol_print (stderr,                                            \
    3883                   Type, Value); \
    3884       YYFPRINTF (stderr, "\n");                                           \
    3885     }                                                                     \
    3886 } while (0)
    3887 
    3888 
    3889 /*----------------------------------------.
    3890 | Print this symbol's value on YYOUTPUT.  |
    3891 `----------------------------------------*/
    3892 
     4250# define YYDPRINTF(Args)                        \
     4251do {                                            \
     4252  if (yydebug)                                  \
     4253    YYFPRINTF Args;                             \
     4254} while (YYID (0))
     4255
     4256# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     4257do {                                                                      \
     4258  if (yydebug)                                                            \
     4259    {                                                                     \
     4260      YYFPRINTF (stderr, "%s ", Title);                                   \
     4261      yy_symbol_print (stderr,                                            \
     4262                  Type, Value); \
     4263      YYFPRINTF (stderr, "\n");                                           \
     4264    }                                                                     \
     4265} while (YYID (0))
     4266
     4267
     4268/*--------------------------------.
     4269| Print this symbol on YYOUTPUT.  |
     4270`--------------------------------*/
     4271
     4272/*ARGSUSED*/
     4273#if (defined __STDC__ || defined __C99__FUNC__ \
     4274     || defined __cplusplus || defined _MSC_VER)
    38934275static void
    38944276yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     4277#else
     4278static void
     4279yy_symbol_value_print (yyoutput, yytype, yyvaluep)
     4280    FILE *yyoutput;
     4281    int yytype;
     4282    YYSTYPE const * const yyvaluep;
     4283#endif
    38954284{
    3896   FILE *yyo = yyoutput;
    3897   YYUSE (yyo);
    38984285  if (!yyvaluep)
    38994286    return;
     
    39014288  if (yytype < YYNTOKENS)
    39024289    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
     4290# else
     4291  YYUSE (yyoutput);
    39034292# endif
    3904   YYUSE (yytype);
     4293  switch (yytype)
     4294    {
     4295      default:
     4296        break;
     4297    }
    39054298}
    39064299
     
    39104303`--------------------------------*/
    39114304
     4305#if (defined __STDC__ || defined __C99__FUNC__ \
     4306     || defined __cplusplus || defined _MSC_VER)
    39124307static void
    39134308yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     4309#else
     4310static void
     4311yy_symbol_print (yyoutput, yytype, yyvaluep)
     4312    FILE *yyoutput;
     4313    int yytype;
     4314    YYSTYPE const * const yyvaluep;
     4315#endif
    39144316{
    3915   YYFPRINTF (yyoutput, "%s %s (",
    3916              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
     4317  if (yytype < YYNTOKENS)
     4318    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
     4319  else
     4320    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    39174321
    39184322  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    39254329`------------------------------------------------------------------*/
    39264330
     4331#if (defined __STDC__ || defined __C99__FUNC__ \
     4332     || defined __cplusplus || defined _MSC_VER)
    39274333static void
    39284334yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
     4335#else
     4336static void
     4337yy_stack_print (yybottom, yytop)
     4338    yytype_int16 *yybottom;
     4339    yytype_int16 *yytop;
     4340#endif
    39294341{
    39304342  YYFPRINTF (stderr, "Stack now");
     
    39374349}
    39384350
    3939 # define YY_STACK_PRINT(Bottom, Top)                            \
    3940 do {                                                            \
    3941   if (yydebug)                                                  \
    3942     yy_stack_print ((Bottom), (Top));                           \
    3943 } while (0)
     4351# define YY_STACK_PRINT(Bottom, Top)                            \
     4352do {                                                            \
     4353  if (yydebug)                                                  \
     4354    yy_stack_print ((Bottom), (Top));                           \
     4355} while (YYID (0))
    39444356
    39454357
     
    39484360`------------------------------------------------*/
    39494361
     4362#if (defined __STDC__ || defined __C99__FUNC__ \
     4363     || defined __cplusplus || defined _MSC_VER)
    39504364static void
    3951 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
     4365yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
     4366#else
     4367static void
     4368yy_reduce_print (yyvsp, yyrule)
     4369    YYSTYPE *yyvsp;
     4370    int yyrule;
     4371#endif
    39524372{
    3953   unsigned long int yylno = yyrline[yyrule];
    39544373  int yynrhs = yyr2[yyrule];
    39554374  int yyi;
     4375  unsigned long int yylno = yyrline[yyrule];
    39564376  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    3957              yyrule - 1, yylno);
     4377             yyrule - 1, yylno);
    39584378  /* The symbols being reduced.  */
    39594379  for (yyi = 0; yyi < yynrhs; yyi++)
    39604380    {
    39614381      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    3962       yy_symbol_print (stderr,
    3963                        yystos[yyssp[yyi + 1 - yynrhs]],
    3964                        &(yyvsp[(yyi + 1) - (yynrhs)])
    3965                                               );
     4382      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
     4383                       &(yyvsp[(yyi + 1) - (yynrhs)])
     4384                                       );
    39664385      YYFPRINTF (stderr, "\n");
    39674386    }
    39684387}
    39694388
    3970 # define YY_REDUCE_PRINT(Rule)          \
    3971 do {                                    \
    3972   if (yydebug)                          \
    3973     yy_reduce_print (yyssp, yyvsp, Rule); \
    3974 } while (0)
     4389# define YY_REDUCE_PRINT(Rule)          \
     4390do {                                    \
     4391  if (yydebug)                          \
     4392    yy_reduce_print (yyvsp, Rule); \
     4393} while (YYID (0))
    39754394
    39764395/* Nonzero means print parse trace.  It is left uninitialized so that
     
    39864405
    39874406/* YYINITDEPTH -- initial size of the parser's stacks.  */
    3988 #ifndef YYINITDEPTH
     4407#ifndef YYINITDEPTH
    39894408# define YYINITDEPTH 200
    39904409#endif
     
    40094428#  else
    40104429/* Return the length of YYSTR.  */
     4430#if (defined __STDC__ || defined __C99__FUNC__ \
     4431     || defined __cplusplus || defined _MSC_VER)
    40114432static YYSIZE_T
    40124433yystrlen (const char *yystr)
     4434#else
     4435static YYSIZE_T
     4436yystrlen (yystr)
     4437    const char *yystr;
     4438#endif
    40134439{
    40144440  YYSIZE_T yylen;
     
    40264452/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    40274453   YYDEST.  */
     4454#if (defined __STDC__ || defined __C99__FUNC__ \
     4455     || defined __cplusplus || defined _MSC_VER)
    40284456static char *
    40294457yystpcpy (char *yydest, const char *yysrc)
     4458#else
     4459static char *
     4460yystpcpy (yydest, yysrc)
     4461    char *yydest;
     4462    const char *yysrc;
     4463#endif
    40304464{
    40314465  char *yyd = yydest;
     
    40574491
    40584492      for (;;)
    4059         switch (*++yyp)
    4060           {
    4061           case '\'':
    4062           case ',':
    4063             goto do_not_strip_quotes;
    4064 
    4065           case '\\':
    4066             if (*++yyp != '\\')
    4067               goto do_not_strip_quotes;
    4068             /* Fall through.  */
    4069           default:
    4070             if (yyres)
    4071               yyres[yyn] = *yyp;
    4072             yyn++;
    4073             break;
    4074 
    4075           case '"':
    4076             if (yyres)
    4077               yyres[yyn] = '\0';
    4078             return yyn;
    4079           }
     4493        switch (*++yyp)
     4494          {
     4495          case '\'':
     4496          case ',':
     4497            goto do_not_strip_quotes;
     4498
     4499          case '\\':
     4500            if (*++yyp != '\\')
     4501              goto do_not_strip_quotes;
     4502            /* Fall through.  */
     4503          default:
     4504            if (yyres)
     4505              yyres[yyn] = *yyp;
     4506            yyn++;
     4507            break;
     4508
     4509          case '"':
     4510            if (yyres)
     4511              yyres[yyn] = '\0';
     4512            return yyn;
     4513          }
    40804514    do_not_strip_quotes: ;
    40814515    }
     
    41004534                yytype_int16 *yyssp, int yytoken)
    41014535{
    4102   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
     4536  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
    41034537  YYSIZE_T yysize = yysize0;
     4538  YYSIZE_T yysize1;
    41044539  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    41054540  /* Internationalized format string. */
    4106   const char *yyformat = YY_NULLPTR;
     4541  const char *yyformat = 0;
    41074542  /* Arguments of yyformat. */
    41084543  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    41124547
    41134548  /* There are many possibilities here to consider:
     4549     - Assume YYFAIL is not used.  It's too flawed to consider.  See
     4550       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
     4551       for details.  YYERROR is fine as it does not invoke this
     4552       function.
    41144553     - If this state is a consistent state with a default action, then
    41154554       the only way this function was invoked is if the default action
     
    41604599                  }
    41614600                yyarg[yycount++] = yytname[yyx];
    4162                 {
    4163                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
    4164                   if (! (yysize <= yysize1
    4165                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4166                     return 2;
    4167                   yysize = yysize1;
    4168                 }
     4601                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
     4602                if (! (yysize <= yysize1
     4603                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4604                  return 2;
     4605                yysize = yysize1;
    41694606              }
    41704607        }
     
    41864623    }
    41874624
    4188   {
    4189     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    4190     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4191       return 2;
    4192     yysize = yysize1;
    4193   }
     4625  yysize1 = yysize + yystrlen (yyformat);
     4626  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4627    return 2;
     4628  yysize = yysize1;
    41944629
    41954630  if (*yymsg_alloc < yysize)
     
    42284663`-----------------------------------------------*/
    42294664
     4665/*ARGSUSED*/
     4666#if (defined __STDC__ || defined __C99__FUNC__ \
     4667     || defined __cplusplus || defined _MSC_VER)
    42304668static void
    42314669yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
     4670#else
     4671static void
     4672yydestruct (yymsg, yytype, yyvaluep)
     4673    const char *yymsg;
     4674    int yytype;
     4675    YYSTYPE *yyvaluep;
     4676#endif
    42324677{
    42334678  YYUSE (yyvaluep);
     4679
    42344680  if (!yymsg)
    42354681    yymsg = "Deleting";
    42364682  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    42374683
    4238   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    4239   YYUSE (yytype);
    4240   YY_IGNORE_MAYBE_UNINITIALIZED_END
     4684  switch (yytype)
     4685    {
     4686
     4687      default:
     4688        break;
     4689    }
    42414690}
    42424691
    42434692
     4693/* Prevent warnings from -Wmissing-prototypes.  */
     4694#ifdef YYPARSE_PARAM
     4695#if defined __STDC__ || defined __cplusplus
     4696int yyparse (void *YYPARSE_PARAM);
     4697#else
     4698int yyparse ();
     4699#endif
     4700#else /* ! YYPARSE_PARAM */
     4701#if defined __STDC__ || defined __cplusplus
     4702int yyparse (void);
     4703#else
     4704int yyparse ();
     4705#endif
     4706#endif /* ! YYPARSE_PARAM */
    42444707
    42454708
     
    42494712/* The semantic value of the lookahead symbol.  */
    42504713YYSTYPE yylval;
     4714
    42514715/* Number of syntax errors so far.  */
    42524716int yynerrs;
     
    42574721`----------*/
    42584722
     4723#ifdef YYPARSE_PARAM
     4724#if (defined __STDC__ || defined __C99__FUNC__ \
     4725     || defined __cplusplus || defined _MSC_VER)
     4726int
     4727yyparse (void *YYPARSE_PARAM)
     4728#else
     4729int
     4730yyparse (YYPARSE_PARAM)
     4731    void *YYPARSE_PARAM;
     4732#endif
     4733#else /* ! YYPARSE_PARAM */
     4734#if (defined __STDC__ || defined __C99__FUNC__ \
     4735     || defined __cplusplus || defined _MSC_VER)
    42594736int
    42604737yyparse (void)
     4738#else
     4739int
     4740yyparse ()
     4741
     4742#endif
     4743#endif
    42614744{
    42624745    int yystate;
     
    42654748
    42664749    /* The stacks and their tools:
    4267        'yyss': related to states.
    4268        'yyvs': related to semantic values.
    4269 
    4270        Refer to the stacks through separate pointers, to allow yyoverflow
     4750       `yyss': related to states.
     4751       `yyvs': related to semantic values.
     4752
     4753       Refer to the stacks thru separate pointers, to allow yyoverflow
    42714754       to reallocate them elsewhere.  */
    42724755
     
    42864769  int yyresult;
    42874770  /* Lookahead token as an internal (translated) token number.  */
    4288   int yytoken = 0;
     4771  int yytoken;
    42894772  /* The variables used to return semantic value and location from the
    42904773     action routines.  */
     
    43044787  int yylen = 0;
    43054788
    4306   yyssp = yyss = yyssa;
    4307   yyvsp = yyvs = yyvsa;
     4789  yytoken = 0;
     4790  yyss = yyssa;
     4791  yyvs = yyvsa;
    43084792  yystacksize = YYINITDEPTH;
    43094793
     
    43144798  yynerrs = 0;
    43154799  yychar = YYEMPTY; /* Cause a token to be read.  */
     4800
     4801  /* Initialize stack pointers.
     4802     Waste one element of value and location stack
     4803     so that they stay on the same level as the state stack.
     4804     The wasted elements are never initialized.  */
     4805  yyssp = yyss;
     4806  yyvsp = yyvs;
     4807
    43164808  goto yysetstate;
    43174809
     
    43344826#ifdef yyoverflow
    43354827      {
    4336         /* Give user a chance to reallocate the stack.  Use copies of
    4337            these so that the &'s don't force the real ones into
    4338            memory.  */
    4339         YYSTYPE *yyvs1 = yyvs;
    4340         yytype_int16 *yyss1 = yyss;
    4341 
    4342         /* Each stack pointer address is followed by the size of the
    4343            data in use in that stack, in bytes.  This used to be a
    4344            conditional around just the two extra args, but that might
    4345            be undefined if yyoverflow is a macro.  */
    4346         yyoverflow (YY_("memory exhausted"),
    4347                     &yyss1, yysize * sizeof (*yyssp),
    4348                     &yyvs1, yysize * sizeof (*yyvsp),
    4349                     &yystacksize);
    4350 
    4351         yyss = yyss1;
    4352         yyvs = yyvs1;
     4828        /* Give user a chance to reallocate the stack.  Use copies of
     4829           these so that the &'s don't force the real ones into
     4830           memory.  */
     4831        YYSTYPE *yyvs1 = yyvs;
     4832        yytype_int16 *yyss1 = yyss;
     4833
     4834        /* Each stack pointer address is followed by the size of the
     4835           data in use in that stack, in bytes.  This used to be a
     4836           conditional around just the two extra args, but that might
     4837           be undefined if yyoverflow is a macro.  */
     4838        yyoverflow (YY_("memory exhausted"),
     4839                    &yyss1, yysize * sizeof (*yyssp),
     4840                    &yyvs1, yysize * sizeof (*yyvsp),
     4841                    &yystacksize);
     4842
     4843        yyss = yyss1;
     4844        yyvs = yyvs1;
    43534845      }
    43544846#else /* no yyoverflow */
     
    43584850      /* Extend the stack our own way.  */
    43594851      if (YYMAXDEPTH <= yystacksize)
    4360         goto yyexhaustedlab;
     4852        goto yyexhaustedlab;
    43614853      yystacksize *= 2;
    43624854      if (YYMAXDEPTH < yystacksize)
    4363         yystacksize = YYMAXDEPTH;
     4855        yystacksize = YYMAXDEPTH;
    43644856
    43654857      {
    4366         yytype_int16 *yyss1 = yyss;
    4367         union yyalloc *yyptr =
    4368           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4369         if (! yyptr)
    4370           goto yyexhaustedlab;
    4371         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4372         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
     4858        yytype_int16 *yyss1 = yyss;
     4859        union yyalloc *yyptr =
     4860          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
     4861        if (! yyptr)
     4862          goto yyexhaustedlab;
     4863        YYSTACK_RELOCATE (yyss_alloc, yyss);
     4864        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    43734865#  undef YYSTACK_RELOCATE
    4374         if (yyss1 != yyssa)
    4375           YYSTACK_FREE (yyss1);
     4866        if (yyss1 != yyssa)
     4867          YYSTACK_FREE (yyss1);
    43764868      }
    43774869# endif
     
    43824874
    43834875      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4384                   (unsigned long int) yystacksize));
     4876                  (unsigned long int) yystacksize));
    43854877
    43864878      if (yyss + yystacksize - 1 <= yyssp)
    4387         YYABORT;
     4879        YYABORT;
    43884880    }
    43894881
     
    44144906    {
    44154907      YYDPRINTF ((stderr, "Reading a token: "));
    4416       yychar = yylex ();
     4908      yychar = YYLEX;
    44174909    }
    44184910
     
    44544946
    44554947  yystate = yyn;
    4456   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    44574948  *++yyvsp = yylval;
    4458   YY_IGNORE_MAYBE_UNINITIALIZED_END
    44594949
    44604950  goto yynewstate;
     
    44794969
    44804970  /* If YYLEN is nonzero, implement the default value of the action:
    4481      '$$ = $1'.
     4971     `$$ = $1'.
    44824972
    44834973     Otherwise, the following line sets YYVAL to garbage.
     
    44934983    {
    44944984        case 2:
    4495 #line 298 "parser.yy" /* yacc.c:1646  */
     4985
     4986/* Line 1806 of yacc.c  */
     4987#line 298 "parser.yy"
    44964988    {
    44974989                        typedefTable.enterScope();
    44984990                }
    4499 #line 4500 "Parser/parser.cc" /* yacc.c:1646  */
    45004991    break;
    45014992
    45024993  case 3:
    4503 #line 304 "parser.yy" /* yacc.c:1646  */
     4994
     4995/* Line 1806 of yacc.c  */
     4996#line 304 "parser.yy"
    45044997    {
    45054998                        typedefTable.leaveScope();
    45064999                }
    4507 #line 4508 "Parser/parser.cc" /* yacc.c:1646  */
    45085000    break;
    45095001
    45105002  case 4:
    4511 #line 313 "parser.yy" /* yacc.c:1646  */
    4512     { (yyval.en) = new ExpressionNode( build_constantInteger( assign_strptr((yyvsp[0].tok)) ) ); }
    4513 #line 4514 "Parser/parser.cc" /* yacc.c:1646  */
     5003
     5004/* Line 1806 of yacc.c  */
     5005#line 313 "parser.yy"
     5006    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    45145007    break;
    45155008
    45165009  case 5:
    4517 #line 314 "parser.yy" /* yacc.c:1646  */
    4518     { (yyval.en) = new ExpressionNode( build_constantFloat( assign_strptr((yyvsp[0].tok)) ) ); }
    4519 #line 4520 "Parser/parser.cc" /* yacc.c:1646  */
     5010
     5011/* Line 1806 of yacc.c  */
     5012#line 314 "parser.yy"
     5013    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    45205014    break;
    45215015
    45225016  case 6:
    4523 #line 315 "parser.yy" /* yacc.c:1646  */
    4524     { (yyval.en) = new ExpressionNode( build_constantChar( assign_strptr((yyvsp[0].tok)) ) ); }
    4525 #line 4526 "Parser/parser.cc" /* yacc.c:1646  */
     5017
     5018/* Line 1806 of yacc.c  */
     5019#line 315 "parser.yy"
     5020    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    45265021    break;
    45275022
    45285023  case 16:
    4529 #line 340 "parser.yy" /* yacc.c:1646  */
    4530     { (yyval.constant) = build_constantStr( assign_strptr((yyvsp[0].tok)) ); }
    4531 #line 4532 "Parser/parser.cc" /* yacc.c:1646  */
     5024
     5025/* Line 1806 of yacc.c  */
     5026#line 340 "parser.yy"
     5027    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); }
    45325028    break;
    45335029
    45345030  case 17:
    4535 #line 342 "parser.yy" /* yacc.c:1646  */
     5031
     5032/* Line 1806 of yacc.c  */
     5033#line 342 "parser.yy"
    45365034    {
    4537                         appendStr( (yyvsp[-1].constant)->get_constant()->get_value(), (yyvsp[0].tok) );
    4538                         delete (yyvsp[0].tok);                                                                  // allocated by lexer
    4539                         (yyval.constant) = (yyvsp[-1].constant);
     5035                        appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) );
     5036                        delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
     5037                        (yyval.constant) = (yyvsp[(1) - (2)].constant);
    45405038                }
    4541 #line 4542 "Parser/parser.cc" /* yacc.c:1646  */
    45425039    break;
    45435040
    45445041  case 18:
    4545 #line 353 "parser.yy" /* yacc.c:1646  */
    4546     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4547 #line 4548 "Parser/parser.cc" /* yacc.c:1646  */
     5042
     5043/* Line 1806 of yacc.c  */
     5044#line 353 "parser.yy"
     5045    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    45485046    break;
    45495047
    45505048  case 19:
    4551 #line 355 "parser.yy" /* yacc.c:1646  */
    4552     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4553 #line 4554 "Parser/parser.cc" /* yacc.c:1646  */
     5049
     5050/* Line 1806 of yacc.c  */
     5051#line 355 "parser.yy"
     5052    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    45545053    break;
    45555054
    45565055  case 20:
    4557 #line 357 "parser.yy" /* yacc.c:1646  */
    4558     { (yyval.en) = (yyvsp[-1].en); }
    4559 #line 4560 "Parser/parser.cc" /* yacc.c:1646  */
     5056
     5057/* Line 1806 of yacc.c  */
     5058#line 357 "parser.yy"
     5059    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    45605060    break;
    45615061
    45625062  case 21:
    4563 #line 359 "parser.yy" /* yacc.c:1646  */
    4564     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
    4565 #line 4566 "Parser/parser.cc" /* yacc.c:1646  */
     5063
     5064/* Line 1806 of yacc.c  */
     5065#line 359 "parser.yy"
     5066    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    45665067    break;
    45675068
    45685069  case 23:
    4569 #line 369 "parser.yy" /* yacc.c:1646  */
    4570     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); }
    4571 #line 4572 "Parser/parser.cc" /* yacc.c:1646  */
     5070
     5071/* Line 1806 of yacc.c  */
     5072#line 369 "parser.yy"
     5073    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    45725074    break;
    45735075
    45745076  case 24:
    4575 #line 371 "parser.yy" /* yacc.c:1646  */
    4576     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); }
    4577 #line 4578 "Parser/parser.cc" /* yacc.c:1646  */
     5077
     5078/* Line 1806 of yacc.c  */
     5079#line 371 "parser.yy"
     5080    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    45785081    break;
    45795082
    45805083  case 25:
    4581 #line 375 "parser.yy" /* yacc.c:1646  */
    4582     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
    4583 #line 4584 "Parser/parser.cc" /* yacc.c:1646  */
     5084
     5085/* Line 1806 of yacc.c  */
     5086#line 375 "parser.yy"
     5087    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    45845088    break;
    45855089
    45865090  case 27:
    4587 #line 378 "parser.yy" /* yacc.c:1646  */
    4588     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
    4589 #line 4590 "Parser/parser.cc" /* yacc.c:1646  */
     5091
     5092/* Line 1806 of yacc.c  */
     5093#line 378 "parser.yy"
     5094    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    45905095    break;
    45915096
    45925097  case 29:
    4593 #line 381 "parser.yy" /* yacc.c:1646  */
    4594     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); }
    4595 #line 4596 "Parser/parser.cc" /* yacc.c:1646  */
     5098
     5099/* Line 1806 of yacc.c  */
     5100#line 381 "parser.yy"
     5101    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    45965102    break;
    45975103
    45985104  case 30:
    4599 #line 383 "parser.yy" /* yacc.c:1646  */
    4600     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); }
    4601 #line 4602 "Parser/parser.cc" /* yacc.c:1646  */
     5105
     5106/* Line 1806 of yacc.c  */
     5107#line 383 "parser.yy"
     5108    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    46025109    break;
    46035110
    46045111  case 31:
    4605 #line 385 "parser.yy" /* yacc.c:1646  */
    4606     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); }
    4607 #line 4608 "Parser/parser.cc" /* yacc.c:1646  */
     5112
     5113/* Line 1806 of yacc.c  */
     5114#line 385 "parser.yy"
     5115    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    46085116    break;
    46095117
    46105118  case 32:
    4611 #line 387 "parser.yy" /* yacc.c:1646  */
     5119
     5120/* Line 1806 of yacc.c  */
     5121#line 387 "parser.yy"
    46125122    {
    46135123                        Token fn;
    46145124                        fn.str = new std::string( "?{}" ); // location undefined
    4615                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );
     5125                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
    46165126                }
    4617 #line 4618 "Parser/parser.cc" /* yacc.c:1646  */
    46185127    break;
    46195128
    46205129  case 34:
    4621 #line 397 "parser.yy" /* yacc.c:1646  */
    4622     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
    4623 #line 4624 "Parser/parser.cc" /* yacc.c:1646  */
     5130
     5131/* Line 1806 of yacc.c  */
     5132#line 397 "parser.yy"
     5133    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    46245134    break;
    46255135
    46265136  case 35:
    4627 #line 402 "parser.yy" /* yacc.c:1646  */
     5137
     5138/* Line 1806 of yacc.c  */
     5139#line 402 "parser.yy"
    46285140    { (yyval.en) = 0; }
    4629 #line 4630 "Parser/parser.cc" /* yacc.c:1646  */
    46305141    break;
    46315142
    46325143  case 38:
    4633 #line 408 "parser.yy" /* yacc.c:1646  */
    4634     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    4635 #line 4636 "Parser/parser.cc" /* yacc.c:1646  */
     5144
     5145/* Line 1806 of yacc.c  */
     5146#line 408 "parser.yy"
     5147    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    46365148    break;
    46375149
    46385150  case 39:
    4639 #line 413 "parser.yy" /* yacc.c:1646  */
    4640     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4641 #line 4642 "Parser/parser.cc" /* yacc.c:1646  */
     5151
     5152/* Line 1806 of yacc.c  */
     5153#line 413 "parser.yy"
     5154    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    46425155    break;
    46435156
    46445157  case 40:
    4645 #line 417 "parser.yy" /* yacc.c:1646  */
    4646     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
    4647 #line 4648 "Parser/parser.cc" /* yacc.c:1646  */
     5158
     5159/* Line 1806 of yacc.c  */
     5160#line 417 "parser.yy"
     5161    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    46485162    break;
    46495163
    46505164  case 41:
    4651 #line 419 "parser.yy" /* yacc.c:1646  */
    4652     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
    4653 #line 4654 "Parser/parser.cc" /* yacc.c:1646  */
     5165
     5166/* Line 1806 of yacc.c  */
     5167#line 419 "parser.yy"
     5168    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    46545169    break;
    46555170
    46565171  case 42:
    4657 #line 421 "parser.yy" /* yacc.c:1646  */
    4658     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
    4659 #line 4660 "Parser/parser.cc" /* yacc.c:1646  */
     5172
     5173/* Line 1806 of yacc.c  */
     5174#line 421 "parser.yy"
     5175    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    46605176    break;
    46615177
    46625178  case 43:
    4663 #line 423 "parser.yy" /* yacc.c:1646  */
    4664     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
    4665 #line 4666 "Parser/parser.cc" /* yacc.c:1646  */
     5179
     5180/* Line 1806 of yacc.c  */
     5181#line 423 "parser.yy"
     5182    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    46665183    break;
    46675184
    46685185  case 45:
    4669 #line 431 "parser.yy" /* yacc.c:1646  */
    4670     { (yyval.en) = (yyvsp[0].en); }
    4671 #line 4672 "Parser/parser.cc" /* yacc.c:1646  */
     5186
     5187/* Line 1806 of yacc.c  */
     5188#line 431 "parser.yy"
     5189    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    46725190    break;
    46735191
    46745192  case 46:
    4675 #line 433 "parser.yy" /* yacc.c:1646  */
    4676     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
    4677 #line 4678 "Parser/parser.cc" /* yacc.c:1646  */
     5193
     5194/* Line 1806 of yacc.c  */
     5195#line 433 "parser.yy"
     5196    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    46785197    break;
    46795198
    46805199  case 47:
    4681 #line 435 "parser.yy" /* yacc.c:1646  */
    4682     { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
    4683 #line 4684 "Parser/parser.cc" /* yacc.c:1646  */
     5200
     5201/* Line 1806 of yacc.c  */
     5202#line 435 "parser.yy"
     5203    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    46845204    break;
    46855205
    46865206  case 48:
    4687 #line 440 "parser.yy" /* yacc.c:1646  */
     5207
     5208/* Line 1806 of yacc.c  */
     5209#line 440 "parser.yy"
    46885210    {
    4689                         switch ( (yyvsp[-1].op) ) {
     5211                        switch ( (yyvsp[(1) - (2)].op) ) {
    46905212                          case OperKinds::AddressOf:
    4691                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
     5213                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
    46925214                                break;
    46935215                          case OperKinds::PointTo:
    4694                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
     5216                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
    46955217                                break;
    46965218                          default:
     
    46985220                        }
    46995221                }
    4700 #line 4701 "Parser/parser.cc" /* yacc.c:1646  */
    47015222    break;
    47025223
    47035224  case 49:
    4704 #line 453 "parser.yy" /* yacc.c:1646  */
    4705     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
    4706 #line 4707 "Parser/parser.cc" /* yacc.c:1646  */
     5225
     5226/* Line 1806 of yacc.c  */
     5227#line 453 "parser.yy"
     5228    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    47075229    break;
    47085230
    47095231  case 50:
    4710 #line 455 "parser.yy" /* yacc.c:1646  */
    4711     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
    4712 #line 4713 "Parser/parser.cc" /* yacc.c:1646  */
     5232
     5233/* Line 1806 of yacc.c  */
     5234#line 455 "parser.yy"
     5235    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    47135236    break;
    47145237
    47155238  case 51:
    4716 #line 457 "parser.yy" /* yacc.c:1646  */
    4717     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
    4718 #line 4719 "Parser/parser.cc" /* yacc.c:1646  */
     5239
     5240/* Line 1806 of yacc.c  */
     5241#line 457 "parser.yy"
     5242    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    47195243    break;
    47205244
    47215245  case 52:
    4722 #line 459 "parser.yy" /* yacc.c:1646  */
    4723     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
    4724 #line 4725 "Parser/parser.cc" /* yacc.c:1646  */
     5246
     5247/* Line 1806 of yacc.c  */
     5248#line 459 "parser.yy"
     5249    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    47255250    break;
    47265251
    47275252  case 53:
    4728 #line 461 "parser.yy" /* yacc.c:1646  */
    4729     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
    4730 #line 4731 "Parser/parser.cc" /* yacc.c:1646  */
     5253
     5254/* Line 1806 of yacc.c  */
     5255#line 461 "parser.yy"
     5256    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    47315257    break;
    47325258
    47335259  case 54:
    4734 #line 463 "parser.yy" /* yacc.c:1646  */
    4735     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
    4736 #line 4737 "Parser/parser.cc" /* yacc.c:1646  */
     5260
     5261/* Line 1806 of yacc.c  */
     5262#line 463 "parser.yy"
     5263    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    47375264    break;
    47385265
    47395266  case 55:
    4740 #line 465 "parser.yy" /* yacc.c:1646  */
    4741     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
    4742 #line 4743 "Parser/parser.cc" /* yacc.c:1646  */
     5267
     5268/* Line 1806 of yacc.c  */
     5269#line 465 "parser.yy"
     5270    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    47435271    break;
    47445272
    47455273  case 56:
    4746 #line 467 "parser.yy" /* yacc.c:1646  */
    4747     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
    4748 #line 4749 "Parser/parser.cc" /* yacc.c:1646  */
     5274
     5275/* Line 1806 of yacc.c  */
     5276#line 467 "parser.yy"
     5277    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    47495278    break;
    47505279
    47515280  case 57:
    4752 #line 469 "parser.yy" /* yacc.c:1646  */
    4753     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
    4754 #line 4755 "Parser/parser.cc" /* yacc.c:1646  */
     5281
     5282/* Line 1806 of yacc.c  */
     5283#line 469 "parser.yy"
     5284    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    47555285    break;
    47565286
    47575287  case 58:
    4758 #line 471 "parser.yy" /* yacc.c:1646  */
    4759     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
    4760 #line 4761 "Parser/parser.cc" /* yacc.c:1646  */
     5288
     5289/* Line 1806 of yacc.c  */
     5290#line 471 "parser.yy"
     5291    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    47615292    break;
    47625293
    47635294  case 59:
    4764 #line 473 "parser.yy" /* yacc.c:1646  */
    4765     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
    4766 #line 4767 "Parser/parser.cc" /* yacc.c:1646  */
     5295
     5296/* Line 1806 of yacc.c  */
     5297#line 473 "parser.yy"
     5298    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    47675299    break;
    47685300
    47695301  case 60:
    4770 #line 479 "parser.yy" /* yacc.c:1646  */
     5302
     5303/* Line 1806 of yacc.c  */
     5304#line 479 "parser.yy"
    47715305    { (yyval.op) = OperKinds::PointTo; }
    4772 #line 4773 "Parser/parser.cc" /* yacc.c:1646  */
    47735306    break;
    47745307
    47755308  case 61:
    4776 #line 480 "parser.yy" /* yacc.c:1646  */
     5309
     5310/* Line 1806 of yacc.c  */
     5311#line 480 "parser.yy"
    47775312    { (yyval.op) = OperKinds::AddressOf; }
    4778 #line 4779 "Parser/parser.cc" /* yacc.c:1646  */
    47795313    break;
    47805314
    47815315  case 62:
    4782 #line 486 "parser.yy" /* yacc.c:1646  */
     5316
     5317/* Line 1806 of yacc.c  */
     5318#line 486 "parser.yy"
    47835319    { (yyval.op) = OperKinds::UnPlus; }
    4784 #line 4785 "Parser/parser.cc" /* yacc.c:1646  */
    47855320    break;
    47865321
    47875322  case 63:
    4788 #line 487 "parser.yy" /* yacc.c:1646  */
     5323
     5324/* Line 1806 of yacc.c  */
     5325#line 487 "parser.yy"
    47895326    { (yyval.op) = OperKinds::UnMinus; }
    4790 #line 4791 "Parser/parser.cc" /* yacc.c:1646  */
    47915327    break;
    47925328
    47935329  case 64:
    4794 #line 488 "parser.yy" /* yacc.c:1646  */
     5330
     5331/* Line 1806 of yacc.c  */
     5332#line 488 "parser.yy"
    47955333    { (yyval.op) = OperKinds::Neg; }
    4796 #line 4797 "Parser/parser.cc" /* yacc.c:1646  */
    47975334    break;
    47985335
    47995336  case 65:
    4800 #line 489 "parser.yy" /* yacc.c:1646  */
     5337
     5338/* Line 1806 of yacc.c  */
     5339#line 489 "parser.yy"
    48015340    { (yyval.op) = OperKinds::BitNeg; }
    4802 #line 4803 "Parser/parser.cc" /* yacc.c:1646  */
    48035341    break;
    48045342
    48055343  case 67:
    4806 #line 495 "parser.yy" /* yacc.c:1646  */
    4807     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
    4808 #line 4809 "Parser/parser.cc" /* yacc.c:1646  */
     5344
     5345/* Line 1806 of yacc.c  */
     5346#line 495 "parser.yy"
     5347    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    48095348    break;
    48105349
    48115350  case 68:
    4812 #line 497 "parser.yy" /* yacc.c:1646  */
    4813     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
    4814 #line 4815 "Parser/parser.cc" /* yacc.c:1646  */
     5351
     5352/* Line 1806 of yacc.c  */
     5353#line 497 "parser.yy"
     5354    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    48155355    break;
    48165356
    48175357  case 70:
    4818 #line 503 "parser.yy" /* yacc.c:1646  */
    4819     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4820 #line 4821 "Parser/parser.cc" /* yacc.c:1646  */
     5358
     5359/* Line 1806 of yacc.c  */
     5360#line 503 "parser.yy"
     5361    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48215362    break;
    48225363
    48235364  case 71:
    4824 #line 505 "parser.yy" /* yacc.c:1646  */
    4825     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4826 #line 4827 "Parser/parser.cc" /* yacc.c:1646  */
     5365
     5366/* Line 1806 of yacc.c  */
     5367#line 505 "parser.yy"
     5368    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48275369    break;
    48285370
    48295371  case 72:
    4830 #line 507 "parser.yy" /* yacc.c:1646  */
    4831     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4832 #line 4833 "Parser/parser.cc" /* yacc.c:1646  */
     5372
     5373/* Line 1806 of yacc.c  */
     5374#line 507 "parser.yy"
     5375    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48335376    break;
    48345377
    48355378  case 74:
    4836 #line 513 "parser.yy" /* yacc.c:1646  */
    4837     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4838 #line 4839 "Parser/parser.cc" /* yacc.c:1646  */
     5379
     5380/* Line 1806 of yacc.c  */
     5381#line 513 "parser.yy"
     5382    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48395383    break;
    48405384
    48415385  case 75:
    4842 #line 515 "parser.yy" /* yacc.c:1646  */
    4843     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4844 #line 4845 "Parser/parser.cc" /* yacc.c:1646  */
     5386
     5387/* Line 1806 of yacc.c  */
     5388#line 515 "parser.yy"
     5389    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48455390    break;
    48465391
    48475392  case 77:
    4848 #line 521 "parser.yy" /* yacc.c:1646  */
    4849     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4850 #line 4851 "Parser/parser.cc" /* yacc.c:1646  */
     5393
     5394/* Line 1806 of yacc.c  */
     5395#line 521 "parser.yy"
     5396    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48515397    break;
    48525398
    48535399  case 78:
    4854 #line 523 "parser.yy" /* yacc.c:1646  */
    4855     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4856 #line 4857 "Parser/parser.cc" /* yacc.c:1646  */
     5400
     5401/* Line 1806 of yacc.c  */
     5402#line 523 "parser.yy"
     5403    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48575404    break;
    48585405
    48595406  case 80:
    4860 #line 529 "parser.yy" /* yacc.c:1646  */
    4861     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4862 #line 4863 "Parser/parser.cc" /* yacc.c:1646  */
     5407
     5408/* Line 1806 of yacc.c  */
     5409#line 529 "parser.yy"
     5410    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48635411    break;
    48645412
    48655413  case 81:
    4866 #line 531 "parser.yy" /* yacc.c:1646  */
    4867     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4868 #line 4869 "Parser/parser.cc" /* yacc.c:1646  */
     5414
     5415/* Line 1806 of yacc.c  */
     5416#line 531 "parser.yy"
     5417    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48695418    break;
    48705419
    48715420  case 82:
    4872 #line 533 "parser.yy" /* yacc.c:1646  */
    4873     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4874 #line 4875 "Parser/parser.cc" /* yacc.c:1646  */
     5421
     5422/* Line 1806 of yacc.c  */
     5423#line 533 "parser.yy"
     5424    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48755425    break;
    48765426
    48775427  case 83:
    4878 #line 535 "parser.yy" /* yacc.c:1646  */
    4879     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4880 #line 4881 "Parser/parser.cc" /* yacc.c:1646  */
     5428
     5429/* Line 1806 of yacc.c  */
     5430#line 535 "parser.yy"
     5431    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48815432    break;
    48825433
    48835434  case 85:
    4884 #line 541 "parser.yy" /* yacc.c:1646  */
    4885     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4886 #line 4887 "Parser/parser.cc" /* yacc.c:1646  */
     5435
     5436/* Line 1806 of yacc.c  */
     5437#line 541 "parser.yy"
     5438    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48875439    break;
    48885440
    48895441  case 86:
    4890 #line 543 "parser.yy" /* yacc.c:1646  */
    4891     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4892 #line 4893 "Parser/parser.cc" /* yacc.c:1646  */
     5442
     5443/* Line 1806 of yacc.c  */
     5444#line 543 "parser.yy"
     5445    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48935446    break;
    48945447
    48955448  case 88:
    4896 #line 549 "parser.yy" /* yacc.c:1646  */
    4897     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4898 #line 4899 "Parser/parser.cc" /* yacc.c:1646  */
     5449
     5450/* Line 1806 of yacc.c  */
     5451#line 549 "parser.yy"
     5452    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48995453    break;
    49005454
    49015455  case 90:
    4902 #line 555 "parser.yy" /* yacc.c:1646  */
    4903     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4904 #line 4905 "Parser/parser.cc" /* yacc.c:1646  */
     5456
     5457/* Line 1806 of yacc.c  */
     5458#line 555 "parser.yy"
     5459    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    49055460    break;
    49065461
    49075462  case 92:
    4908 #line 561 "parser.yy" /* yacc.c:1646  */
    4909     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4910 #line 4911 "Parser/parser.cc" /* yacc.c:1646  */
     5463
     5464/* Line 1806 of yacc.c  */
     5465#line 561 "parser.yy"
     5466    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    49115467    break;
    49125468
    49135469  case 94:
    4914 #line 567 "parser.yy" /* yacc.c:1646  */
    4915     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
    4916 #line 4917 "Parser/parser.cc" /* yacc.c:1646  */
     5470
     5471/* Line 1806 of yacc.c  */
     5472#line 567 "parser.yy"
     5473    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    49175474    break;
    49185475
    49195476  case 96:
    4920 #line 573 "parser.yy" /* yacc.c:1646  */
    4921     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
    4922 #line 4923 "Parser/parser.cc" /* yacc.c:1646  */
     5477
     5478/* Line 1806 of yacc.c  */
     5479#line 573 "parser.yy"
     5480    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    49235481    break;
    49245482
    49255483  case 98:
    4926 #line 579 "parser.yy" /* yacc.c:1646  */
    4927     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4928 #line 4929 "Parser/parser.cc" /* yacc.c:1646  */
     5484
     5485/* Line 1806 of yacc.c  */
     5486#line 579 "parser.yy"
     5487    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    49295488    break;
    49305489
    49315490  case 99:
    4932 #line 582 "parser.yy" /* yacc.c:1646  */
    4933     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
    4934 #line 4935 "Parser/parser.cc" /* yacc.c:1646  */
     5491
     5492/* Line 1806 of yacc.c  */
     5493#line 582 "parser.yy"
     5494    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    49355495    break;
    49365496
    49375497  case 100:
    4938 #line 584 "parser.yy" /* yacc.c:1646  */
    4939     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4940 #line 4941 "Parser/parser.cc" /* yacc.c:1646  */
     5498
     5499/* Line 1806 of yacc.c  */
     5500#line 584 "parser.yy"
     5501    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    49415502    break;
    49425503
    49435504  case 103:
    4944 #line 595 "parser.yy" /* yacc.c:1646  */
    4945     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4946 #line 4947 "Parser/parser.cc" /* yacc.c:1646  */
     5505
     5506/* Line 1806 of yacc.c  */
     5507#line 595 "parser.yy"
     5508    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    49475509    break;
    49485510
    49495511  case 104:
    4950 #line 597 "parser.yy" /* yacc.c:1646  */
    4951     { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); }
    4952 #line 4953 "Parser/parser.cc" /* yacc.c:1646  */
     5512
     5513/* Line 1806 of yacc.c  */
     5514#line 597 "parser.yy"
     5515    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
    49535516    break;
    49545517
    49555518  case 105:
    4956 #line 602 "parser.yy" /* yacc.c:1646  */
     5519
     5520/* Line 1806 of yacc.c  */
     5521#line 602 "parser.yy"
    49575522    { (yyval.en) = nullptr; }
    4958 #line 4959 "Parser/parser.cc" /* yacc.c:1646  */
    49595523    break;
    49605524
    49615525  case 107:
    4962 #line 607 "parser.yy" /* yacc.c:1646  */
     5526
     5527/* Line 1806 of yacc.c  */
     5528#line 607 "parser.yy"
    49635529    { (yyval.op) = OperKinds::Assign; }
    4964 #line 4965 "Parser/parser.cc" /* yacc.c:1646  */
    49655530    break;
    49665531
    49675532  case 108:
    4968 #line 608 "parser.yy" /* yacc.c:1646  */
     5533
     5534/* Line 1806 of yacc.c  */
     5535#line 608 "parser.yy"
    49695536    { (yyval.op) = OperKinds::MulAssn; }
    4970 #line 4971 "Parser/parser.cc" /* yacc.c:1646  */
    49715537    break;
    49725538
    49735539  case 109:
    4974 #line 609 "parser.yy" /* yacc.c:1646  */
     5540
     5541/* Line 1806 of yacc.c  */
     5542#line 609 "parser.yy"
    49755543    { (yyval.op) = OperKinds::DivAssn; }
    4976 #line 4977 "Parser/parser.cc" /* yacc.c:1646  */
    49775544    break;
    49785545
    49795546  case 110:
    4980 #line 610 "parser.yy" /* yacc.c:1646  */
     5547
     5548/* Line 1806 of yacc.c  */
     5549#line 610 "parser.yy"
    49815550    { (yyval.op) = OperKinds::ModAssn; }
    4982 #line 4983 "Parser/parser.cc" /* yacc.c:1646  */
    49835551    break;
    49845552
    49855553  case 111:
    4986 #line 611 "parser.yy" /* yacc.c:1646  */
     5554
     5555/* Line 1806 of yacc.c  */
     5556#line 611 "parser.yy"
    49875557    { (yyval.op) = OperKinds::PlusAssn; }
    4988 #line 4989 "Parser/parser.cc" /* yacc.c:1646  */
    49895558    break;
    49905559
    49915560  case 112:
    4992 #line 612 "parser.yy" /* yacc.c:1646  */
     5561
     5562/* Line 1806 of yacc.c  */
     5563#line 612 "parser.yy"
    49935564    { (yyval.op) = OperKinds::MinusAssn; }
    4994 #line 4995 "Parser/parser.cc" /* yacc.c:1646  */
    49955565    break;
    49965566
    49975567  case 113:
    4998 #line 613 "parser.yy" /* yacc.c:1646  */
     5568
     5569/* Line 1806 of yacc.c  */
     5570#line 613 "parser.yy"
    49995571    { (yyval.op) = OperKinds::LSAssn; }
    5000 #line 5001 "Parser/parser.cc" /* yacc.c:1646  */
    50015572    break;
    50025573
    50035574  case 114:
    5004 #line 614 "parser.yy" /* yacc.c:1646  */
     5575
     5576/* Line 1806 of yacc.c  */
     5577#line 614 "parser.yy"
    50055578    { (yyval.op) = OperKinds::RSAssn; }
    5006 #line 5007 "Parser/parser.cc" /* yacc.c:1646  */
    50075579    break;
    50085580
    50095581  case 115:
    5010 #line 615 "parser.yy" /* yacc.c:1646  */
     5582
     5583/* Line 1806 of yacc.c  */
     5584#line 615 "parser.yy"
    50115585    { (yyval.op) = OperKinds::AndAssn; }
    5012 #line 5013 "Parser/parser.cc" /* yacc.c:1646  */
    50135586    break;
    50145587
    50155588  case 116:
    5016 #line 616 "parser.yy" /* yacc.c:1646  */
     5589
     5590/* Line 1806 of yacc.c  */
     5591#line 616 "parser.yy"
    50175592    { (yyval.op) = OperKinds::ERAssn; }
    5018 #line 5019 "Parser/parser.cc" /* yacc.c:1646  */
    50195593    break;
    50205594
    50215595  case 117:
    5022 #line 617 "parser.yy" /* yacc.c:1646  */
     5596
     5597/* Line 1806 of yacc.c  */
     5598#line 617 "parser.yy"
    50235599    { (yyval.op) = OperKinds::OrAssn; }
    5024 #line 5025 "Parser/parser.cc" /* yacc.c:1646  */
    50255600    break;
    50265601
    50275602  case 118:
    5028 #line 624 "parser.yy" /* yacc.c:1646  */
     5603
     5604/* Line 1806 of yacc.c  */
     5605#line 624 "parser.yy"
    50295606    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    5030 #line 5031 "Parser/parser.cc" /* yacc.c:1646  */
    50315607    break;
    50325608
    50335609  case 119:
    5034 #line 626 "parser.yy" /* yacc.c:1646  */
    5035     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); }
    5036 #line 5037 "Parser/parser.cc" /* yacc.c:1646  */
     5610
     5611/* Line 1806 of yacc.c  */
     5612#line 626 "parser.yy"
     5613    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    50375614    break;
    50385615
    50395616  case 120:
    5040 #line 628 "parser.yy" /* yacc.c:1646  */
    5041     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
    5042 #line 5043 "Parser/parser.cc" /* yacc.c:1646  */
     5617
     5618/* Line 1806 of yacc.c  */
     5619#line 628 "parser.yy"
     5620    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    50435621    break;
    50445622
    50455623  case 121:
    5046 #line 630 "parser.yy" /* yacc.c:1646  */
    5047     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
    5048 #line 5049 "Parser/parser.cc" /* yacc.c:1646  */
     5624
     5625/* Line 1806 of yacc.c  */
     5626#line 630 "parser.yy"
     5627    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    50495628    break;
    50505629
    50515630  case 123:
    5052 #line 636 "parser.yy" /* yacc.c:1646  */
    5053     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    5054 #line 5055 "Parser/parser.cc" /* yacc.c:1646  */
     5631
     5632/* Line 1806 of yacc.c  */
     5633#line 636 "parser.yy"
     5634    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    50555635    break;
    50565636
    50575637  case 125:
    5058 #line 642 "parser.yy" /* yacc.c:1646  */
    5059     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    5060 #line 5061 "Parser/parser.cc" /* yacc.c:1646  */
     5638
     5639/* Line 1806 of yacc.c  */
     5640#line 642 "parser.yy"
     5641    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    50615642    break;
    50625643
    50635644  case 126:
    5064 #line 647 "parser.yy" /* yacc.c:1646  */
     5645
     5646/* Line 1806 of yacc.c  */
     5647#line 647 "parser.yy"
    50655648    { (yyval.en) = 0; }
    5066 #line 5067 "Parser/parser.cc" /* yacc.c:1646  */
    50675649    break;
    50685650
    50695651  case 130:
    5070 #line 656 "parser.yy" /* yacc.c:1646  */
    5071     { (yyval.sn) = (yyvsp[0].sn); }
    5072 #line 5073 "Parser/parser.cc" /* yacc.c:1646  */
     5652
     5653/* Line 1806 of yacc.c  */
     5654#line 656 "parser.yy"
     5655    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    50735656    break;
    50745657
    50755658  case 136:
    5076 #line 663 "parser.yy" /* yacc.c:1646  */
     5659
     5660/* Line 1806 of yacc.c  */
     5661#line 663 "parser.yy"
    50775662    {
    50785663                        Token fn;
    50795664                        fn.str = new std::string( "^?{}" ); // location undefined
    5080                         (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
     5665                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );
    50815666                }
    5082 #line 5083 "Parser/parser.cc" /* yacc.c:1646  */
    50835667    break;
    50845668
    50855669  case 137:
    5086 #line 673 "parser.yy" /* yacc.c:1646  */
     5670
     5671/* Line 1806 of yacc.c  */
     5672#line 673 "parser.yy"
    50875673    {
    5088                         (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
     5674                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
    50895675                }
    5090 #line 5091 "Parser/parser.cc" /* yacc.c:1646  */
    50915676    break;
    50925677
    50935678  case 138:
    5094 #line 680 "parser.yy" /* yacc.c:1646  */
     5679
     5680/* Line 1806 of yacc.c  */
     5681#line 680 "parser.yy"
    50955682    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    5096 #line 5097 "Parser/parser.cc" /* yacc.c:1646  */
    50975683    break;
    50985684
    50995685  case 139:
    5100 #line 687 "parser.yy" /* yacc.c:1646  */
    5101     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
    5102 #line 5103 "Parser/parser.cc" /* yacc.c:1646  */
     5686
     5687/* Line 1806 of yacc.c  */
     5688#line 687 "parser.yy"
     5689    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    51035690    break;
    51045691
    51055692  case 141:
    5106 #line 693 "parser.yy" /* yacc.c:1646  */
    5107     { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
    5108 #line 5109 "Parser/parser.cc" /* yacc.c:1646  */
     5693
     5694/* Line 1806 of yacc.c  */
     5695#line 693 "parser.yy"
     5696    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    51095697    break;
    51105698
    51115699  case 142:
    5112 #line 698 "parser.yy" /* yacc.c:1646  */
    5113     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
    5114 #line 5115 "Parser/parser.cc" /* yacc.c:1646  */
     5700
     5701/* Line 1806 of yacc.c  */
     5702#line 698 "parser.yy"
     5703    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    51155704    break;
    51165705
    51175706  case 143:
    5118 #line 700 "parser.yy" /* yacc.c:1646  */
     5707
     5708/* Line 1806 of yacc.c  */
     5709#line 700 "parser.yy"
    51195710    {   // mark all fields in list
    5120                         for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5711                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    51215712                                iter->set_extension( true );
    5122                         (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
     5713                        (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
    51235714                }
    5124 #line 5125 "Parser/parser.cc" /* yacc.c:1646  */
    51255715    break;
    51265716
    51275717  case 144:
    5128 #line 706 "parser.yy" /* yacc.c:1646  */
    5129     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
    5130 #line 5131 "Parser/parser.cc" /* yacc.c:1646  */
     5718
     5719/* Line 1806 of yacc.c  */
     5720#line 706 "parser.yy"
     5721    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    51315722    break;
    51325723
    51335724  case 147:
    5134 #line 713 "parser.yy" /* yacc.c:1646  */
    5135     { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
    5136 #line 5137 "Parser/parser.cc" /* yacc.c:1646  */
     5725
     5726/* Line 1806 of yacc.c  */
     5727#line 713 "parser.yy"
     5728    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    51375729    break;
    51385730
    51395731  case 148:
    5140 #line 718 "parser.yy" /* yacc.c:1646  */
    5141     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
    5142 #line 5143 "Parser/parser.cc" /* yacc.c:1646  */
     5732
     5733/* Line 1806 of yacc.c  */
     5734#line 718 "parser.yy"
     5735    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    51435736    break;
    51445737
    51455738  case 149:
    5146 #line 724 "parser.yy" /* yacc.c:1646  */
    5147     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
    5148 #line 5149 "Parser/parser.cc" /* yacc.c:1646  */
     5739
     5740/* Line 1806 of yacc.c  */
     5741#line 724 "parser.yy"
     5742    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    51495743    break;
    51505744
    51515745  case 150:
    5152 #line 726 "parser.yy" /* yacc.c:1646  */
    5153     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
    5154 #line 5155 "Parser/parser.cc" /* yacc.c:1646  */
     5746
     5747/* Line 1806 of yacc.c  */
     5748#line 726 "parser.yy"
     5749    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    51555750    break;
    51565751
    51575752  case 151:
    5158 #line 728 "parser.yy" /* yacc.c:1646  */
    5159     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5160 #line 5161 "Parser/parser.cc" /* yacc.c:1646  */
     5753
     5754/* Line 1806 of yacc.c  */
     5755#line 728 "parser.yy"
     5756    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    51615757    break;
    51625758
    51635759  case 152:
    5164 #line 730 "parser.yy" /* yacc.c:1646  */
     5760
     5761/* Line 1806 of yacc.c  */
     5762#line 730 "parser.yy"
    51655763    {
    5166                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5764                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    51675765                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    51685766                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    51705768                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    51715769                        // statement.
    5172                         (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
     5770                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    51735771                }
    5174 #line 5175 "Parser/parser.cc" /* yacc.c:1646  */
    51755772    break;
    51765773
    51775774  case 153:
    5178 #line 740 "parser.yy" /* yacc.c:1646  */
    5179     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5180 #line 5181 "Parser/parser.cc" /* yacc.c:1646  */
     5775
     5776/* Line 1806 of yacc.c  */
     5777#line 740 "parser.yy"
     5778    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    51815779    break;
    51825780
    51835781  case 154:
    5184 #line 742 "parser.yy" /* yacc.c:1646  */
     5782
     5783/* Line 1806 of yacc.c  */
     5784#line 742 "parser.yy"
    51855785    {
    5186                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    5187                         (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
     5786                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5787                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    51885788                }
    5189 #line 5190 "Parser/parser.cc" /* yacc.c:1646  */
    51905789    break;
    51915790
    51925791  case 155:
    5193 #line 752 "parser.yy" /* yacc.c:1646  */
    5194     { (yyval.en) = (yyvsp[0].en); }
    5195 #line 5196 "Parser/parser.cc" /* yacc.c:1646  */
     5792
     5793/* Line 1806 of yacc.c  */
     5794#line 752 "parser.yy"
     5795    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51965796    break;
    51975797
    51985798  case 156:
    5199 #line 754 "parser.yy" /* yacc.c:1646  */
    5200     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    5201 #line 5202 "Parser/parser.cc" /* yacc.c:1646  */
     5799
     5800/* Line 1806 of yacc.c  */
     5801#line 754 "parser.yy"
     5802    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52025803    break;
    52035804
    52045805  case 158:
    5205 #line 759 "parser.yy" /* yacc.c:1646  */
    5206     { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
    5207 #line 5208 "Parser/parser.cc" /* yacc.c:1646  */
     5806
     5807/* Line 1806 of yacc.c  */
     5808#line 759 "parser.yy"
     5809    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    52085810    break;
    52095811
    52105812  case 159:
    5211 #line 761 "parser.yy" /* yacc.c:1646  */
    5212     { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
    5213 #line 5214 "Parser/parser.cc" /* yacc.c:1646  */
     5813
     5814/* Line 1806 of yacc.c  */
     5815#line 761 "parser.yy"
     5816    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    52145817    break;
    52155818
    52165819  case 160:
    5217 #line 765 "parser.yy" /* yacc.c:1646  */
    5218     { (yyval.sn) = (yyvsp[-1].sn); }
    5219 #line 5220 "Parser/parser.cc" /* yacc.c:1646  */
     5820
     5821/* Line 1806 of yacc.c  */
     5822#line 765 "parser.yy"
     5823    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    52205824    break;
    52215825
    52225826  case 161:
    5223 #line 766 "parser.yy" /* yacc.c:1646  */
     5827
     5828/* Line 1806 of yacc.c  */
     5829#line 766 "parser.yy"
    52245830    { (yyval.sn) = new StatementNode( build_default() ); }
    5225 #line 5226 "Parser/parser.cc" /* yacc.c:1646  */
    52265831    break;
    52275832
    52285833  case 163:
    5229 #line 772 "parser.yy" /* yacc.c:1646  */
    5230     { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
    5231 #line 5232 "Parser/parser.cc" /* yacc.c:1646  */
     5834
     5835/* Line 1806 of yacc.c  */
     5836#line 772 "parser.yy"
     5837    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    52325838    break;
    52335839
    52345840  case 164:
    5235 #line 776 "parser.yy" /* yacc.c:1646  */
    5236     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
    5237 #line 5238 "Parser/parser.cc" /* yacc.c:1646  */
     5841
     5842/* Line 1806 of yacc.c  */
     5843#line 776 "parser.yy"
     5844    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    52385845    break;
    52395846
    52405847  case 165:
    5241 #line 781 "parser.yy" /* yacc.c:1646  */
     5848
     5849/* Line 1806 of yacc.c  */
     5850#line 781 "parser.yy"
    52425851    { (yyval.sn) = 0; }
    5243 #line 5244 "Parser/parser.cc" /* yacc.c:1646  */
    52445852    break;
    52455853
    52465854  case 167:
    5247 #line 787 "parser.yy" /* yacc.c:1646  */
    5248     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
    5249 #line 5250 "Parser/parser.cc" /* yacc.c:1646  */
     5855
     5856/* Line 1806 of yacc.c  */
     5857#line 787 "parser.yy"
     5858    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    52505859    break;
    52515860
    52525861  case 168:
    5253 #line 789 "parser.yy" /* yacc.c:1646  */
    5254     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
    5255 #line 5256 "Parser/parser.cc" /* yacc.c:1646  */
     5862
     5863/* Line 1806 of yacc.c  */
     5864#line 789 "parser.yy"
     5865    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    52565866    break;
    52575867
    52585868  case 169:
    5259 #line 794 "parser.yy" /* yacc.c:1646  */
     5869
     5870/* Line 1806 of yacc.c  */
     5871#line 794 "parser.yy"
    52605872    { (yyval.sn) = 0; }
    5261 #line 5262 "Parser/parser.cc" /* yacc.c:1646  */
    52625873    break;
    52635874
    52645875  case 171:
    5265 #line 800 "parser.yy" /* yacc.c:1646  */
    5266     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
    5267 #line 5268 "Parser/parser.cc" /* yacc.c:1646  */
     5876
     5877/* Line 1806 of yacc.c  */
     5878#line 800 "parser.yy"
     5879    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    52685880    break;
    52695881
    52705882  case 172:
    5271 #line 802 "parser.yy" /* yacc.c:1646  */
    5272     { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
    5273 #line 5274 "Parser/parser.cc" /* yacc.c:1646  */
     5883
     5884/* Line 1806 of yacc.c  */
     5885#line 802 "parser.yy"
     5886    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    52745887    break;
    52755888
    52765889  case 173:
    5277 #line 804 "parser.yy" /* yacc.c:1646  */
    5278     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
    5279 #line 5280 "Parser/parser.cc" /* yacc.c:1646  */
     5890
     5891/* Line 1806 of yacc.c  */
     5892#line 804 "parser.yy"
     5893    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    52805894    break;
    52815895
    52825896  case 174:
    5283 #line 806 "parser.yy" /* yacc.c:1646  */
    5284     { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); }
    5285 #line 5286 "Parser/parser.cc" /* yacc.c:1646  */
     5897
     5898/* Line 1806 of yacc.c  */
     5899#line 806 "parser.yy"
     5900    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    52865901    break;
    52875902
    52885903  case 175:
    5289 #line 811 "parser.yy" /* yacc.c:1646  */
     5904
     5905/* Line 1806 of yacc.c  */
     5906#line 811 "parser.yy"
    52905907    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
    5291 #line 5292 "Parser/parser.cc" /* yacc.c:1646  */
    52925908    break;
    52935909
    52945910  case 177:
    5295 #line 817 "parser.yy" /* yacc.c:1646  */
     5911
     5912/* Line 1806 of yacc.c  */
     5913#line 817 "parser.yy"
    52965914    { (yyval.sn) = 0; }
    5297 #line 5298 "Parser/parser.cc" /* yacc.c:1646  */
    52985915    break;
    52995916
    53005917  case 178:
    5301 #line 819 "parser.yy" /* yacc.c:1646  */
     5918
     5919/* Line 1806 of yacc.c  */
     5920#line 819 "parser.yy"
    53025921    { (yyval.sn) = 0; }
    5303 #line 5304 "Parser/parser.cc" /* yacc.c:1646  */
    53045922    break;
    53055923
    53065924  case 179:
    5307 #line 824 "parser.yy" /* yacc.c:1646  */
    5308     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5309 #line 5310 "Parser/parser.cc" /* yacc.c:1646  */
     5925
     5926/* Line 1806 of yacc.c  */
     5927#line 824 "parser.yy"
     5928    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    53105929    break;
    53115930
    53125931  case 180:
    5313 #line 826 "parser.yy" /* yacc.c:1646  */
    5314     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn) ) ); }
    5315 #line 5316 "Parser/parser.cc" /* yacc.c:1646  */
     5932
     5933/* Line 1806 of yacc.c  */
     5934#line 826 "parser.yy"
     5935    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
    53165936    break;
    53175937
    53185938  case 181:
    5319 #line 828 "parser.yy" /* yacc.c:1646  */
    5320     { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
    5321 #line 5322 "Parser/parser.cc" /* yacc.c:1646  */
     5939
     5940/* Line 1806 of yacc.c  */
     5941#line 828 "parser.yy"
     5942    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    53225943    break;
    53235944
    53245945  case 182:
    5325 #line 833 "parser.yy" /* yacc.c:1646  */
    5326     { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
    5327 #line 5328 "Parser/parser.cc" /* yacc.c:1646  */
     5946
     5947/* Line 1806 of yacc.c  */
     5948#line 833 "parser.yy"
     5949    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    53285950    break;
    53295951
    53305952  case 183:
    5331 #line 835 "parser.yy" /* yacc.c:1646  */
    5332     { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
    5333 #line 5334 "Parser/parser.cc" /* yacc.c:1646  */
     5953
     5954/* Line 1806 of yacc.c  */
     5955#line 835 "parser.yy"
     5956    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    53345957    break;
    53355958
    53365959  case 184:
    5337 #line 840 "parser.yy" /* yacc.c:1646  */
    5338     { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Goto ) ); }
    5339 #line 5340 "Parser/parser.cc" /* yacc.c:1646  */
     5960
     5961/* Line 1806 of yacc.c  */
     5962#line 840 "parser.yy"
     5963    { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    53405964    break;
    53415965
    53425966  case 185:
    5343 #line 844 "parser.yy" /* yacc.c:1646  */
    5344     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
    5345 #line 5346 "Parser/parser.cc" /* yacc.c:1646  */
     5967
     5968/* Line 1806 of yacc.c  */
     5969#line 844 "parser.yy"
     5970    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    53465971    break;
    53475972
    53485973  case 186:
    5349 #line 847 "parser.yy" /* yacc.c:1646  */
     5974
     5975/* Line 1806 of yacc.c  */
     5976#line 847 "parser.yy"
    53505977    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); }
    5351 #line 5352 "Parser/parser.cc" /* yacc.c:1646  */
    53525978    break;
    53535979
    53545980  case 187:
    5355 #line 851 "parser.yy" /* yacc.c:1646  */
    5356     { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Continue ) ); }
    5357 #line 5358 "Parser/parser.cc" /* yacc.c:1646  */
     5981
     5982/* Line 1806 of yacc.c  */
     5983#line 851 "parser.yy"
     5984    { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); }
    53585985    break;
    53595986
    53605987  case 188:
    5361 #line 854 "parser.yy" /* yacc.c:1646  */
     5988
     5989/* Line 1806 of yacc.c  */
     5990#line 854 "parser.yy"
    53625991    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
    5363 #line 5364 "Parser/parser.cc" /* yacc.c:1646  */
    53645992    break;
    53655993
    53665994  case 189:
    5367 #line 858 "parser.yy" /* yacc.c:1646  */
    5368     { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Break ) ); }
    5369 #line 5370 "Parser/parser.cc" /* yacc.c:1646  */
     5995
     5996/* Line 1806 of yacc.c  */
     5997#line 858 "parser.yy"
     5998    { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); }
    53705999    break;
    53716000
    53726001  case 190:
    5373 #line 860 "parser.yy" /* yacc.c:1646  */
    5374     { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
    5375 #line 5376 "Parser/parser.cc" /* yacc.c:1646  */
     6002
     6003/* Line 1806 of yacc.c  */
     6004#line 860 "parser.yy"
     6005    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    53766006    break;
    53776007
    53786008  case 191:
    5379 #line 862 "parser.yy" /* yacc.c:1646  */
    5380     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
    5381 #line 5382 "Parser/parser.cc" /* yacc.c:1646  */
     6009
     6010/* Line 1806 of yacc.c  */
     6011#line 862 "parser.yy"
     6012    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    53826013    break;
    53836014
    53846015  case 192:
    5385 #line 864 "parser.yy" /* yacc.c:1646  */
    5386     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
    5387 #line 5388 "Parser/parser.cc" /* yacc.c:1646  */
     6016
     6017/* Line 1806 of yacc.c  */
     6018#line 864 "parser.yy"
     6019    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    53886020    break;
    53896021
    53906022  case 193:
    5391 #line 866 "parser.yy" /* yacc.c:1646  */
    5392     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
    5393 #line 5394 "Parser/parser.cc" /* yacc.c:1646  */
     6023
     6024/* Line 1806 of yacc.c  */
     6025#line 866 "parser.yy"
     6026    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    53946027    break;
    53956028
    53966029  case 194:
    5397 #line 871 "parser.yy" /* yacc.c:1646  */
    5398     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
    5399 #line 5400 "Parser/parser.cc" /* yacc.c:1646  */
     6030
     6031/* Line 1806 of yacc.c  */
     6032#line 871 "parser.yy"
     6033    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    54006034    break;
    54016035
    54026036  case 195:
    5403 #line 873 "parser.yy" /* yacc.c:1646  */
    5404     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
    5405 #line 5406 "Parser/parser.cc" /* yacc.c:1646  */
     6037
     6038/* Line 1806 of yacc.c  */
     6039#line 873 "parser.yy"
     6040    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    54066041    break;
    54076042
    54086043  case 196:
    5409 #line 875 "parser.yy" /* yacc.c:1646  */
    5410     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
    5411 #line 5412 "Parser/parser.cc" /* yacc.c:1646  */
     6044
     6045/* Line 1806 of yacc.c  */
     6046#line 875 "parser.yy"
     6047    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    54126048    break;
    54136049
    54146050  case 198:
    5415 #line 882 "parser.yy" /* yacc.c:1646  */
    5416     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
    5417 #line 5418 "Parser/parser.cc" /* yacc.c:1646  */
     6051
     6052/* Line 1806 of yacc.c  */
     6053#line 882 "parser.yy"
     6054    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    54186055    break;
    54196056
    54206057  case 199:
    5421 #line 884 "parser.yy" /* yacc.c:1646  */
    5422     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
    5423 #line 5424 "Parser/parser.cc" /* yacc.c:1646  */
     6058
     6059/* Line 1806 of yacc.c  */
     6060#line 884 "parser.yy"
     6061    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    54246062    break;
    54256063
    54266064  case 200:
    5427 #line 886 "parser.yy" /* yacc.c:1646  */
    5428     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
    5429 #line 5430 "Parser/parser.cc" /* yacc.c:1646  */
     6065
     6066/* Line 1806 of yacc.c  */
     6067#line 886 "parser.yy"
     6068    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    54306069    break;
    54316070
    54326071  case 201:
    5433 #line 888 "parser.yy" /* yacc.c:1646  */
    5434     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
    5435 #line 5436 "Parser/parser.cc" /* yacc.c:1646  */
     6072
     6073/* Line 1806 of yacc.c  */
     6074#line 888 "parser.yy"
     6075    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    54366076    break;
    54376077
    54386078  case 202:
    5439 #line 893 "parser.yy" /* yacc.c:1646  */
    5440     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
    5441 #line 5442 "Parser/parser.cc" /* yacc.c:1646  */
     6079
     6080/* Line 1806 of yacc.c  */
     6081#line 893 "parser.yy"
     6082    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    54426083    break;
    54436084
    54446085  case 203:
    5445 #line 895 "parser.yy" /* yacc.c:1646  */
    5446     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
    5447 #line 5448 "Parser/parser.cc" /* yacc.c:1646  */
     6086
     6087/* Line 1806 of yacc.c  */
     6088#line 895 "parser.yy"
     6089    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    54486090    break;
    54496091
    54506092  case 204:
    5451 #line 897 "parser.yy" /* yacc.c:1646  */
    5452     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
    5453 #line 5454 "Parser/parser.cc" /* yacc.c:1646  */
     6093
     6094/* Line 1806 of yacc.c  */
     6095#line 897 "parser.yy"
     6096    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    54546097    break;
    54556098
    54566099  case 205:
    5457 #line 899 "parser.yy" /* yacc.c:1646  */
    5458     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
    5459 #line 5460 "Parser/parser.cc" /* yacc.c:1646  */
     6100
     6101/* Line 1806 of yacc.c  */
     6102#line 899 "parser.yy"
     6103    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    54606104    break;
    54616105
    54626106  case 206:
    5463 #line 904 "parser.yy" /* yacc.c:1646  */
     6107
     6108/* Line 1806 of yacc.c  */
     6109#line 904 "parser.yy"
    54646110    {
    5465                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
     6111                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
    54666112                }
    5467 #line 5468 "Parser/parser.cc" /* yacc.c:1646  */
    54686113    break;
    54696114
    54706115  case 208:
    5471 #line 917 "parser.yy" /* yacc.c:1646  */
     6116
     6117/* Line 1806 of yacc.c  */
     6118#line 917 "parser.yy"
    54726119    {
    54736120                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5474                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
     6121                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
    54756122                }
    5476 #line 5477 "Parser/parser.cc" /* yacc.c:1646  */
    54776123    break;
    54786124
    54796125  case 209:
    5480 #line 922 "parser.yy" /* yacc.c:1646  */
    5481     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    5482 #line 5483 "Parser/parser.cc" /* yacc.c:1646  */
     6126
     6127/* Line 1806 of yacc.c  */
     6128#line 922 "parser.yy"
     6129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    54836130    break;
    54846131
    54856132  case 210:
    5486 #line 924 "parser.yy" /* yacc.c:1646  */
     6133
     6134/* Line 1806 of yacc.c  */
     6135#line 924 "parser.yy"
    54876136    {
    54886137                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5489                         (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
     6138                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
    54906139                }
    5491 #line 5492 "Parser/parser.cc" /* yacc.c:1646  */
    54926140    break;
    54936141
    54946142  case 212:
    5495 #line 933 "parser.yy" /* yacc.c:1646  */
    5496     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
    5497 #line 5498 "Parser/parser.cc" /* yacc.c:1646  */
     6143
     6144/* Line 1806 of yacc.c  */
     6145#line 933 "parser.yy"
     6146    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    54986147    break;
    54996148
    55006149  case 213:
    5501 #line 935 "parser.yy" /* yacc.c:1646  */
    5502     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
    5503 #line 5504 "Parser/parser.cc" /* yacc.c:1646  */
     6150
     6151/* Line 1806 of yacc.c  */
     6152#line 935 "parser.yy"
     6153    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    55046154    break;
    55056155
    55066156  case 214:
    5507 #line 937 "parser.yy" /* yacc.c:1646  */
    5508     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    5509 #line 5510 "Parser/parser.cc" /* yacc.c:1646  */
     6157
     6158/* Line 1806 of yacc.c  */
     6159#line 937 "parser.yy"
     6160    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    55106161    break;
    55116162
    55126163  case 215:
    5513 #line 939 "parser.yy" /* yacc.c:1646  */
    5514     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    5515 #line 5516 "Parser/parser.cc" /* yacc.c:1646  */
     6164
     6165/* Line 1806 of yacc.c  */
     6166#line 939 "parser.yy"
     6167    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    55166168    break;
    55176169
    55186170  case 216:
    5519 #line 941 "parser.yy" /* yacc.c:1646  */
    5520     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
    5521 #line 5522 "Parser/parser.cc" /* yacc.c:1646  */
     6171
     6172/* Line 1806 of yacc.c  */
     6173#line 941 "parser.yy"
     6174    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    55226175    break;
    55236176
    55246177  case 217:
    5525 #line 946 "parser.yy" /* yacc.c:1646  */
     6178
     6179/* Line 1806 of yacc.c  */
     6180#line 946 "parser.yy"
    55266181    { (yyval.flag) = false; }
    5527 #line 5528 "Parser/parser.cc" /* yacc.c:1646  */
    55286182    break;
    55296183
    55306184  case 218:
    5531 #line 948 "parser.yy" /* yacc.c:1646  */
     6185
     6186/* Line 1806 of yacc.c  */
     6187#line 948 "parser.yy"
    55326188    { (yyval.flag) = true; }
    5533 #line 5534 "Parser/parser.cc" /* yacc.c:1646  */
    55346189    break;
    55356190
    55366191  case 219:
    5537 #line 953 "parser.yy" /* yacc.c:1646  */
     6192
     6193/* Line 1806 of yacc.c  */
     6194#line 953 "parser.yy"
    55386195    { (yyval.en) = 0; }
    5539 #line 5540 "Parser/parser.cc" /* yacc.c:1646  */
    55406196    break;
    55416197
    55426198  case 222:
    5543 #line 960 "parser.yy" /* yacc.c:1646  */
    5544     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    5545 #line 5546 "Parser/parser.cc" /* yacc.c:1646  */
     6199
     6200/* Line 1806 of yacc.c  */
     6201#line 960 "parser.yy"
     6202    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    55466203    break;
    55476204
    55486205  case 223:
    5549 #line 965 "parser.yy" /* yacc.c:1646  */
    5550     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
    5551 #line 5552 "Parser/parser.cc" /* yacc.c:1646  */
     6206
     6207/* Line 1806 of yacc.c  */
     6208#line 965 "parser.yy"
     6209    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    55526210    break;
    55536211
    55546212  case 224:
    5555 #line 967 "parser.yy" /* yacc.c:1646  */
    5556     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
    5557 #line 5558 "Parser/parser.cc" /* yacc.c:1646  */
     6213
     6214/* Line 1806 of yacc.c  */
     6215#line 967 "parser.yy"
     6216    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    55586217    break;
    55596218
    55606219  case 225:
    5561 #line 972 "parser.yy" /* yacc.c:1646  */
     6220
     6221/* Line 1806 of yacc.c  */
     6222#line 972 "parser.yy"
    55626223    { (yyval.en) = 0; }
    5563 #line 5564 "Parser/parser.cc" /* yacc.c:1646  */
    55646224    break;
    55656225
    55666226  case 226:
    5567 #line 974 "parser.yy" /* yacc.c:1646  */
    5568     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
    5569 #line 5570 "Parser/parser.cc" /* yacc.c:1646  */
     6227
     6228/* Line 1806 of yacc.c  */
     6229#line 974 "parser.yy"
     6230    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    55706231    break;
    55716232
    55726233  case 227:
    5573 #line 976 "parser.yy" /* yacc.c:1646  */
    5574     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
    5575 #line 5576 "Parser/parser.cc" /* yacc.c:1646  */
     6234
     6235/* Line 1806 of yacc.c  */
     6236#line 976 "parser.yy"
     6237    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    55766238    break;
    55776239
    55786240  case 228:
    5579 #line 981 "parser.yy" /* yacc.c:1646  */
    5580     { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); }
    5581 #line 5582 "Parser/parser.cc" /* yacc.c:1646  */
     6241
     6242/* Line 1806 of yacc.c  */
     6243#line 981 "parser.yy"
     6244    { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); }
    55826245    break;
    55836246
    55846247  case 229:
    5585 #line 983 "parser.yy" /* yacc.c:1646  */
    5586     { (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); }
    5587 #line 5588 "Parser/parser.cc" /* yacc.c:1646  */
     6248
     6249/* Line 1806 of yacc.c  */
     6250#line 983 "parser.yy"
     6251    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); }
    55886252    break;
    55896253
    55906254  case 230:
    5591 #line 990 "parser.yy" /* yacc.c:1646  */
     6255
     6256/* Line 1806 of yacc.c  */
     6257#line 990 "parser.yy"
    55926258    { (yyval.decl) = 0; }
    5593 #line 5594 "Parser/parser.cc" /* yacc.c:1646  */
    55946259    break;
    55956260
    55966261  case 233:
    5597 #line 997 "parser.yy" /* yacc.c:1646  */
    5598     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    5599 #line 5600 "Parser/parser.cc" /* yacc.c:1646  */
     6262
     6263/* Line 1806 of yacc.c  */
     6264#line 997 "parser.yy"
     6265    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    56006266    break;
    56016267
    56026268  case 234:
    5603 #line 1002 "parser.yy" /* yacc.c:1646  */
     6269
     6270/* Line 1806 of yacc.c  */
     6271#line 1002 "parser.yy"
    56046272    { (yyval.decl) = 0; }
    5605 #line 5606 "Parser/parser.cc" /* yacc.c:1646  */
    56066273    break;
    56076274
    56086275  case 237:
    5609 #line 1009 "parser.yy" /* yacc.c:1646  */
    5610     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    5611 #line 5612 "Parser/parser.cc" /* yacc.c:1646  */
     6276
     6277/* Line 1806 of yacc.c  */
     6278#line 1009 "parser.yy"
     6279    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    56126280    break;
    56136281
    56146282  case 242:
    5615 #line 1023 "parser.yy" /* yacc.c:1646  */
     6283
     6284/* Line 1806 of yacc.c  */
     6285#line 1023 "parser.yy"
    56166286    {}
    5617 #line 5618 "Parser/parser.cc" /* yacc.c:1646  */
    56186287    break;
    56196288
    56206289  case 243:
    5621 #line 1024 "parser.yy" /* yacc.c:1646  */
     6290
     6291/* Line 1806 of yacc.c  */
     6292#line 1024 "parser.yy"
    56226293    {}
    5623 #line 5624 "Parser/parser.cc" /* yacc.c:1646  */
    56246294    break;
    56256295
    56266296  case 251:
    5627 #line 1053 "parser.yy" /* yacc.c:1646  */
     6297
     6298/* Line 1806 of yacc.c  */
     6299#line 1053 "parser.yy"
    56286300    {
    56296301                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5630                         (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
     6302                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
    56316303                }
    5632 #line 5633 "Parser/parser.cc" /* yacc.c:1646  */
    56336304    break;
    56346305
    56356306  case 252:
    5636 #line 1060 "parser.yy" /* yacc.c:1646  */
     6307
     6308/* Line 1806 of yacc.c  */
     6309#line 1060 "parser.yy"
    56376310    {
    56386311                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5639                         (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
     6312                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
    56406313                }
    5641 #line 5642 "Parser/parser.cc" /* yacc.c:1646  */
    56426314    break;
    56436315
    56446316  case 253:
    5645 #line 1065 "parser.yy" /* yacc.c:1646  */
     6317
     6318/* Line 1806 of yacc.c  */
     6319#line 1065 "parser.yy"
    56466320    {
    5647                         typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
    5648                         (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
     6321                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     6322                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
    56496323                }
    5650 #line 5651 "Parser/parser.cc" /* yacc.c:1646  */
    56516324    break;
    56526325
    56536326  case 254:
    5654 #line 1075 "parser.yy" /* yacc.c:1646  */
     6327
     6328/* Line 1806 of yacc.c  */
     6329#line 1075 "parser.yy"
    56556330    {
    5656                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5657                         (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     6331                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     6332                        (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
    56586333                }
    5659 #line 5660 "Parser/parser.cc" /* yacc.c:1646  */
    56606334    break;
    56616335
    56626336  case 255:
    5663 #line 1080 "parser.yy" /* yacc.c:1646  */
     6337
     6338/* Line 1806 of yacc.c  */
     6339#line 1080 "parser.yy"
    56646340    {
    5665                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5666                         (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     6341                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     6342                        (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
    56676343                }
    5668 #line 5669 "Parser/parser.cc" /* yacc.c:1646  */
    56696344    break;
    56706345
    56716346  case 256:
    5672 #line 1085 "parser.yy" /* yacc.c:1646  */
     6347
     6348/* Line 1806 of yacc.c  */
     6349#line 1085 "parser.yy"
    56736350    {
    5674                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5675                         (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
     6351                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     6352                        (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
    56766353                }
    5677 #line 5678 "Parser/parser.cc" /* yacc.c:1646  */
    56786354    break;
    56796355
    56806356  case 257:
    5681 #line 1093 "parser.yy" /* yacc.c:1646  */
     6357
     6358/* Line 1806 of yacc.c  */
     6359#line 1093 "parser.yy"
    56826360    {
    56836361                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5684                         (yyval.decl) = (yyvsp[0].decl);
     6362                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    56856363                }
    5686 #line 5687 "Parser/parser.cc" /* yacc.c:1646  */
    56876364    break;
    56886365
    56896366  case 258:
    5690 #line 1098 "parser.yy" /* yacc.c:1646  */
     6367
     6368/* Line 1806 of yacc.c  */
     6369#line 1098 "parser.yy"
    56916370    {
    56926371                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5693                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
     6372                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
    56946373                }
    5695 #line 5696 "Parser/parser.cc" /* yacc.c:1646  */
    56966374    break;
    56976375
    56986376  case 259:
    5699 #line 1103 "parser.yy" /* yacc.c:1646  */
     6377
     6378/* Line 1806 of yacc.c  */
     6379#line 1103 "parser.yy"
    57006380    {
    57016381                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5702                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
     6382                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
    57036383                }
    5704 #line 5705 "Parser/parser.cc" /* yacc.c:1646  */
    57056384    break;
    57066385
    57076386  case 260:
    5708 #line 1108 "parser.yy" /* yacc.c:1646  */
     6387
     6388/* Line 1806 of yacc.c  */
     6389#line 1108 "parser.yy"
    57096390    {
    57106391                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5711                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
     6392                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
    57126393                }
    5713 #line 5714 "Parser/parser.cc" /* yacc.c:1646  */
    57146394    break;
    57156395
    57166396  case 261:
    5717 #line 1113 "parser.yy" /* yacc.c:1646  */
     6397
     6398/* Line 1806 of yacc.c  */
     6399#line 1113 "parser.yy"
    57186400    {
    5719                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
    5720                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6401                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     6402                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    57216403                }
    5722 #line 5723 "Parser/parser.cc" /* yacc.c:1646  */
    57236404    break;
    57246405
    57256406  case 262:
    5726 #line 1121 "parser.yy" /* yacc.c:1646  */
     6407
     6408/* Line 1806 of yacc.c  */
     6409#line 1121 "parser.yy"
    57276410    {
    5728                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
     6411                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
    57296412                }
    5730 #line 5731 "Parser/parser.cc" /* yacc.c:1646  */
    57316413    break;
    57326414
    57336415  case 263:
    5734 #line 1144 "parser.yy" /* yacc.c:1646  */
     6416
     6417/* Line 1806 of yacc.c  */
     6418#line 1144 "parser.yy"
    57356419    {
    5736                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
     6420                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    57376421                }
    5738 #line 5739 "Parser/parser.cc" /* yacc.c:1646  */
    57396422    break;
    57406423
    57416424  case 264:
    5742 #line 1148 "parser.yy" /* yacc.c:1646  */
     6425
     6426/* Line 1806 of yacc.c  */
     6427#line 1148 "parser.yy"
    57436428    {
    5744                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
     6429                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    57456430                }
    5746 #line 5747 "Parser/parser.cc" /* yacc.c:1646  */
    57476431    break;
    57486432
    57496433  case 265:
    5750 #line 1155 "parser.yy" /* yacc.c:1646  */
    5751     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
    5752 #line 5753 "Parser/parser.cc" /* yacc.c:1646  */
     6434
     6435/* Line 1806 of yacc.c  */
     6436#line 1155 "parser.yy"
     6437    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    57536438    break;
    57546439
    57556440  case 266:
    5756 #line 1159 "parser.yy" /* yacc.c:1646  */
    5757     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
    5758 #line 5759 "Parser/parser.cc" /* yacc.c:1646  */
     6441
     6442/* Line 1806 of yacc.c  */
     6443#line 1159 "parser.yy"
     6444    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    57596445    break;
    57606446
    57616447  case 267:
    5762 #line 1164 "parser.yy" /* yacc.c:1646  */
     6448
     6449/* Line 1806 of yacc.c  */
     6450#line 1164 "parser.yy"
    57636451    {
    57646452                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5765                         (yyval.decl) = (yyvsp[0].decl)->addTypedef();
     6453                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    57666454                }
    5767 #line 5768 "Parser/parser.cc" /* yacc.c:1646  */
    57686455    break;
    57696456
    57706457  case 268:
    5771 #line 1169 "parser.yy" /* yacc.c:1646  */
     6458
     6459/* Line 1806 of yacc.c  */
     6460#line 1169 "parser.yy"
    57726461    {
    57736462                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5774                         (yyval.decl) = (yyvsp[0].decl)->addTypedef();
     6463                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    57756464                }
    5776 #line 5777 "Parser/parser.cc" /* yacc.c:1646  */
    57776465    break;
    57786466
    57796467  case 269:
    5780 #line 1174 "parser.yy" /* yacc.c:1646  */
     6468
     6469/* Line 1806 of yacc.c  */
     6470#line 1174 "parser.yy"
    57816471    {
    5782                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
    5783                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6472                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     6473                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    57846474                }
    5785 #line 5786 "Parser/parser.cc" /* yacc.c:1646  */
    57866475    break;
    57876476
    57886477  case 270:
    5789 #line 1185 "parser.yy" /* yacc.c:1646  */
     6478
     6479/* Line 1806 of yacc.c  */
     6480#line 1185 "parser.yy"
    57906481    {
    57916482                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5792                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
     6483                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
    57936484                }
    5794 #line 5795 "Parser/parser.cc" /* yacc.c:1646  */
    57956485    break;
    57966486
    57976487  case 271:
    5798 #line 1190 "parser.yy" /* yacc.c:1646  */
     6488
     6489/* Line 1806 of yacc.c  */
     6490#line 1190 "parser.yy"
    57996491    {
    58006492                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5801                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
     6493                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
    58026494                }
    5803 #line 5804 "Parser/parser.cc" /* yacc.c:1646  */
    58046495    break;
    58056496
    58066497  case 272:
    5807 #line 1195 "parser.yy" /* yacc.c:1646  */
     6498
     6499/* Line 1806 of yacc.c  */
     6500#line 1195 "parser.yy"
    58086501    {
    58096502                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5810                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
     6503                        (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
    58116504                }
    5812 #line 5813 "Parser/parser.cc" /* yacc.c:1646  */
    58136505    break;
    58146506
    58156507  case 273:
    5816 #line 1200 "parser.yy" /* yacc.c:1646  */
     6508
     6509/* Line 1806 of yacc.c  */
     6510#line 1200 "parser.yy"
    58176511    {
    58186512                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5819                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
     6513                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
    58206514                }
    5821 #line 5822 "Parser/parser.cc" /* yacc.c:1646  */
    58226515    break;
    58236516
    58246517  case 274:
    5825 #line 1205 "parser.yy" /* yacc.c:1646  */
     6518
     6519/* Line 1806 of yacc.c  */
     6520#line 1205 "parser.yy"
    58266521    {
    58276522                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5828                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
     6523                        (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
    58296524                }
    5830 #line 5831 "Parser/parser.cc" /* yacc.c:1646  */
    58316525    break;
    58326526
    58336527  case 275:
    5834 #line 1214 "parser.yy" /* yacc.c:1646  */
     6528
     6529/* Line 1806 of yacc.c  */
     6530#line 1214 "parser.yy"
    58356531    {
    5836                         typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
     6532                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
    58376533                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    58386534                }
    5839 #line 5840 "Parser/parser.cc" /* yacc.c:1646  */
    58406535    break;
    58416536
    58426537  case 276:
    5843 #line 1219 "parser.yy" /* yacc.c:1646  */
     6538
     6539/* Line 1806 of yacc.c  */
     6540#line 1219 "parser.yy"
    58446541    {
    5845                         typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
     6542                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
    58466543                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    58476544                }
    5848 #line 5849 "Parser/parser.cc" /* yacc.c:1646  */
    58496545    break;
    58506546
    58516547  case 281:
    5852 #line 1236 "parser.yy" /* yacc.c:1646  */
     6548
     6549/* Line 1806 of yacc.c  */
     6550#line 1236 "parser.yy"
    58536551    {
    58546552                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5855                         (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
     6553                        (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
    58566554                }
    5857 #line 5858 "Parser/parser.cc" /* yacc.c:1646  */
    58586555    break;
    58596556
    58606557  case 282:
    5861 #line 1241 "parser.yy" /* yacc.c:1646  */
     6558
     6559/* Line 1806 of yacc.c  */
     6560#line 1241 "parser.yy"
    58626561    {
    58636562                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5864                         (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
     6563                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
    58656564                }
    5866 #line 5867 "Parser/parser.cc" /* yacc.c:1646  */
    58676565    break;
    58686566
    58696567  case 291:
    5870 #line 1263 "parser.yy" /* yacc.c:1646  */
     6568
     6569/* Line 1806 of yacc.c  */
     6570#line 1263 "parser.yy"
    58716571    { (yyval.decl) = 0; }
    5872 #line 5873 "Parser/parser.cc" /* yacc.c:1646  */
    58736572    break;
    58746573
    58756574  case 294:
    5876 #line 1275 "parser.yy" /* yacc.c:1646  */
    5877     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5878 #line 5879 "Parser/parser.cc" /* yacc.c:1646  */
     6575
     6576/* Line 1806 of yacc.c  */
     6577#line 1275 "parser.yy"
     6578    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    58796579    break;
    58806580
    58816581  case 297:
    5882 #line 1286 "parser.yy" /* yacc.c:1646  */
     6582
     6583/* Line 1806 of yacc.c  */
     6584#line 1286 "parser.yy"
    58836585    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    5884 #line 5885 "Parser/parser.cc" /* yacc.c:1646  */
    58856586    break;
    58866587
    58876588  case 298:
    5888 #line 1288 "parser.yy" /* yacc.c:1646  */
     6589
     6590/* Line 1806 of yacc.c  */
     6591#line 1288 "parser.yy"
    58896592    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    5890 #line 5891 "Parser/parser.cc" /* yacc.c:1646  */
    58916593    break;
    58926594
    58936595  case 299:
    5894 #line 1290 "parser.yy" /* yacc.c:1646  */
     6596
     6597/* Line 1806 of yacc.c  */
     6598#line 1290 "parser.yy"
    58956599    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    5896 #line 5897 "Parser/parser.cc" /* yacc.c:1646  */
    58976600    break;
    58986601
    58996602  case 300:
    5900 #line 1292 "parser.yy" /* yacc.c:1646  */
     6603
     6604/* Line 1806 of yacc.c  */
     6605#line 1292 "parser.yy"
    59016606    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    5902 #line 5903 "Parser/parser.cc" /* yacc.c:1646  */
    59036607    break;
    59046608
    59056609  case 301:
    5906 #line 1294 "parser.yy" /* yacc.c:1646  */
     6610
     6611/* Line 1806 of yacc.c  */
     6612#line 1294 "parser.yy"
    59076613    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    5908 #line 5909 "Parser/parser.cc" /* yacc.c:1646  */
    59096614    break;
    59106615
    59116616  case 302:
    5912 #line 1296 "parser.yy" /* yacc.c:1646  */
     6617
     6618/* Line 1806 of yacc.c  */
     6619#line 1296 "parser.yy"
    59136620    {
    59146621                        typedefTable.enterScope();
    59156622                }
    5916 #line 5917 "Parser/parser.cc" /* yacc.c:1646  */
    59176623    break;
    59186624
    59196625  case 303:
    5920 #line 1300 "parser.yy" /* yacc.c:1646  */
     6626
     6627/* Line 1806 of yacc.c  */
     6628#line 1300 "parser.yy"
    59216629    {
    59226630                        typedefTable.leaveScope();
    5923                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
     6631                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
    59246632                }
    5925 #line 5926 "Parser/parser.cc" /* yacc.c:1646  */
    59266633    break;
    59276634
    59286635  case 305:
    5929 #line 1309 "parser.yy" /* yacc.c:1646  */
    5930     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5931 #line 5932 "Parser/parser.cc" /* yacc.c:1646  */
     6636
     6637/* Line 1806 of yacc.c  */
     6638#line 1309 "parser.yy"
     6639    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    59326640    break;
    59336641
    59346642  case 306:
    5935 #line 1311 "parser.yy" /* yacc.c:1646  */
    5936     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    5937 #line 5938 "Parser/parser.cc" /* yacc.c:1646  */
     6643
     6644/* Line 1806 of yacc.c  */
     6645#line 1311 "parser.yy"
     6646    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    59386647    break;
    59396648
    59406649  case 308:
    5941 #line 1322 "parser.yy" /* yacc.c:1646  */
    5942     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5943 #line 5944 "Parser/parser.cc" /* yacc.c:1646  */
     6650
     6651/* Line 1806 of yacc.c  */
     6652#line 1322 "parser.yy"
     6653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    59446654    break;
    59456655
    59466656  case 309:
    5947 #line 1327 "parser.yy" /* yacc.c:1646  */
     6657
     6658/* Line 1806 of yacc.c  */
     6659#line 1327 "parser.yy"
    59486660    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    5949 #line 5950 "Parser/parser.cc" /* yacc.c:1646  */
    59506661    break;
    59516662
    59526663  case 310:
    5953 #line 1329 "parser.yy" /* yacc.c:1646  */
     6664
     6665/* Line 1806 of yacc.c  */
     6666#line 1329 "parser.yy"
    59546667    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    5955 #line 5956 "Parser/parser.cc" /* yacc.c:1646  */
    59566668    break;
    59576669
    59586670  case 311:
    5959 #line 1331 "parser.yy" /* yacc.c:1646  */
     6671
     6672/* Line 1806 of yacc.c  */
     6673#line 1331 "parser.yy"
    59606674    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    5961 #line 5962 "Parser/parser.cc" /* yacc.c:1646  */
    59626675    break;
    59636676
    59646677  case 312:
    5965 #line 1333 "parser.yy" /* yacc.c:1646  */
     6678
     6679/* Line 1806 of yacc.c  */
     6680#line 1333 "parser.yy"
    59666681    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    5967 #line 5968 "Parser/parser.cc" /* yacc.c:1646  */
    59686682    break;
    59696683
    59706684  case 313:
    5971 #line 1335 "parser.yy" /* yacc.c:1646  */
     6685
     6686/* Line 1806 of yacc.c  */
     6687#line 1335 "parser.yy"
    59726688    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    5973 #line 5974 "Parser/parser.cc" /* yacc.c:1646  */
    59746689    break;
    59756690
    59766691  case 314:
    5977 #line 1337 "parser.yy" /* yacc.c:1646  */
     6692
     6693/* Line 1806 of yacc.c  */
     6694#line 1337 "parser.yy"
    59786695    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    5979 #line 5980 "Parser/parser.cc" /* yacc.c:1646  */
    59806696    break;
    59816697
    59826698  case 315:
    5983 #line 1339 "parser.yy" /* yacc.c:1646  */
     6699
     6700/* Line 1806 of yacc.c  */
     6701#line 1339 "parser.yy"
    59846702    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    5985 #line 5986 "Parser/parser.cc" /* yacc.c:1646  */
    59866703    break;
    59876704
    59886705  case 316:
    5989 #line 1341 "parser.yy" /* yacc.c:1646  */
     6706
     6707/* Line 1806 of yacc.c  */
     6708#line 1341 "parser.yy"
    59906709    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    5991 #line 5992 "Parser/parser.cc" /* yacc.c:1646  */
    59926710    break;
    59936711
    59946712  case 317:
    5995 #line 1346 "parser.yy" /* yacc.c:1646  */
     6713
     6714/* Line 1806 of yacc.c  */
     6715#line 1346 "parser.yy"
    59966716    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    5997 #line 5998 "Parser/parser.cc" /* yacc.c:1646  */
    59986717    break;
    59996718
    60006719  case 318:
    6001 #line 1348 "parser.yy" /* yacc.c:1646  */
     6720
     6721/* Line 1806 of yacc.c  */
     6722#line 1348 "parser.yy"
    60026723    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6003 #line 6004 "Parser/parser.cc" /* yacc.c:1646  */
    60046724    break;
    60056725
    60066726  case 319:
    6007 #line 1350 "parser.yy" /* yacc.c:1646  */
     6727
     6728/* Line 1806 of yacc.c  */
     6729#line 1350 "parser.yy"
    60086730    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6009 #line 6010 "Parser/parser.cc" /* yacc.c:1646  */
    60106731    break;
    60116732
    60126733  case 320:
    6013 #line 1352 "parser.yy" /* yacc.c:1646  */
     6734
     6735/* Line 1806 of yacc.c  */
     6736#line 1352 "parser.yy"
    60146737    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6015 #line 6016 "Parser/parser.cc" /* yacc.c:1646  */
    60166738    break;
    60176739
    60186740  case 321:
    6019 #line 1354 "parser.yy" /* yacc.c:1646  */
     6741
     6742/* Line 1806 of yacc.c  */
     6743#line 1354 "parser.yy"
    60206744    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6021 #line 6022 "Parser/parser.cc" /* yacc.c:1646  */
    60226745    break;
    60236746
    60246747  case 322:
    6025 #line 1356 "parser.yy" /* yacc.c:1646  */
     6748
     6749/* Line 1806 of yacc.c  */
     6750#line 1356 "parser.yy"
    60266751    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6027 #line 6028 "Parser/parser.cc" /* yacc.c:1646  */
    60286752    break;
    60296753
    60306754  case 323:
    6031 #line 1358 "parser.yy" /* yacc.c:1646  */
     6755
     6756/* Line 1806 of yacc.c  */
     6757#line 1358 "parser.yy"
    60326758    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6033 #line 6034 "Parser/parser.cc" /* yacc.c:1646  */
    60346759    break;
    60356760
    60366761  case 324:
    6037 #line 1360 "parser.yy" /* yacc.c:1646  */
     6762
     6763/* Line 1806 of yacc.c  */
     6764#line 1360 "parser.yy"
    60386765    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6039 #line 6040 "Parser/parser.cc" /* yacc.c:1646  */
    60406766    break;
    60416767
    60426768  case 325:
    6043 #line 1362 "parser.yy" /* yacc.c:1646  */
     6769
     6770/* Line 1806 of yacc.c  */
     6771#line 1362 "parser.yy"
    60446772    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6045 #line 6046 "Parser/parser.cc" /* yacc.c:1646  */
    60466773    break;
    60476774
    60486775  case 326:
    6049 #line 1364 "parser.yy" /* yacc.c:1646  */
     6776
     6777/* Line 1806 of yacc.c  */
     6778#line 1364 "parser.yy"
    60506779    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6051 #line 6052 "Parser/parser.cc" /* yacc.c:1646  */
    60526780    break;
    60536781
    60546782  case 327:
    6055 #line 1366 "parser.yy" /* yacc.c:1646  */
     6783
     6784/* Line 1806 of yacc.c  */
     6785#line 1366 "parser.yy"
    60566786    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6057 #line 6058 "Parser/parser.cc" /* yacc.c:1646  */
    60586787    break;
    60596788
    60606789  case 328:
    6061 #line 1368 "parser.yy" /* yacc.c:1646  */
     6790
     6791/* Line 1806 of yacc.c  */
     6792#line 1368 "parser.yy"
    60626793    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6063 #line 6064 "Parser/parser.cc" /* yacc.c:1646  */
    60646794    break;
    60656795
    60666796  case 329:
    6067 #line 1370 "parser.yy" /* yacc.c:1646  */
     6797
     6798/* Line 1806 of yacc.c  */
     6799#line 1370 "parser.yy"
    60686800    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6069 #line 6070 "Parser/parser.cc" /* yacc.c:1646  */
    60706801    break;
    60716802
    60726803  case 331:
    6073 #line 1377 "parser.yy" /* yacc.c:1646  */
    6074     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6075 #line 6076 "Parser/parser.cc" /* yacc.c:1646  */
     6804
     6805/* Line 1806 of yacc.c  */
     6806#line 1377 "parser.yy"
     6807    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    60766808    break;
    60776809
    60786810  case 332:
    6079 #line 1379 "parser.yy" /* yacc.c:1646  */
    6080     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6081 #line 6082 "Parser/parser.cc" /* yacc.c:1646  */
     6811
     6812/* Line 1806 of yacc.c  */
     6813#line 1379 "parser.yy"
     6814    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    60826815    break;
    60836816
    60846817  case 333:
    6085 #line 1381 "parser.yy" /* yacc.c:1646  */
    6086     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6087 #line 6088 "Parser/parser.cc" /* yacc.c:1646  */
     6818
     6819/* Line 1806 of yacc.c  */
     6820#line 1381 "parser.yy"
     6821    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    60886822    break;
    60896823
    60906824  case 334:
    6091 #line 1383 "parser.yy" /* yacc.c:1646  */
    6092     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
    6093 #line 6094 "Parser/parser.cc" /* yacc.c:1646  */
     6825
     6826/* Line 1806 of yacc.c  */
     6827#line 1383 "parser.yy"
     6828    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    60946829    break;
    60956830
    60966831  case 336:
    6097 #line 1389 "parser.yy" /* yacc.c:1646  */
    6098     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6099 #line 6100 "Parser/parser.cc" /* yacc.c:1646  */
     6832
     6833/* Line 1806 of yacc.c  */
     6834#line 1389 "parser.yy"
     6835    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61006836    break;
    61016837
    61026838  case 338:
    6103 #line 1396 "parser.yy" /* yacc.c:1646  */
    6104     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6105 #line 6106 "Parser/parser.cc" /* yacc.c:1646  */
     6839
     6840/* Line 1806 of yacc.c  */
     6841#line 1396 "parser.yy"
     6842    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61066843    break;
    61076844
    61086845  case 339:
    6109 #line 1398 "parser.yy" /* yacc.c:1646  */
    6110     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6111 #line 6112 "Parser/parser.cc" /* yacc.c:1646  */
     6846
     6847/* Line 1806 of yacc.c  */
     6848#line 1398 "parser.yy"
     6849    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61126850    break;
    61136851
    61146852  case 340:
    6115 #line 1400 "parser.yy" /* yacc.c:1646  */
    6116     { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
    6117 #line 6118 "Parser/parser.cc" /* yacc.c:1646  */
     6853
     6854/* Line 1806 of yacc.c  */
     6855#line 1400 "parser.yy"
     6856    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    61186857    break;
    61196858
    61206859  case 341:
    6121 #line 1405 "parser.yy" /* yacc.c:1646  */
    6122     { (yyval.decl) = (yyvsp[-1].decl); }
    6123 #line 6124 "Parser/parser.cc" /* yacc.c:1646  */
     6860
     6861/* Line 1806 of yacc.c  */
     6862#line 1405 "parser.yy"
     6863    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    61246864    break;
    61256865
    61266866  case 342:
    6127 #line 1407 "parser.yy" /* yacc.c:1646  */
    6128     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
    6129 #line 6130 "Parser/parser.cc" /* yacc.c:1646  */
     6867
     6868/* Line 1806 of yacc.c  */
     6869#line 1407 "parser.yy"
     6870    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    61306871    break;
    61316872
    61326873  case 343:
    6133 #line 1409 "parser.yy" /* yacc.c:1646  */
    6134     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
    6135 #line 6136 "Parser/parser.cc" /* yacc.c:1646  */
     6874
     6875/* Line 1806 of yacc.c  */
     6876#line 1409 "parser.yy"
     6877    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    61366878    break;
    61376879
    61386880  case 344:
    6139 #line 1411 "parser.yy" /* yacc.c:1646  */
    6140     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
    6141 #line 6142 "Parser/parser.cc" /* yacc.c:1646  */
     6881
     6882/* Line 1806 of yacc.c  */
     6883#line 1411 "parser.yy"
     6884    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    61426885    break;
    61436886
    61446887  case 346:
    6145 #line 1417 "parser.yy" /* yacc.c:1646  */
    6146     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6147 #line 6148 "Parser/parser.cc" /* yacc.c:1646  */
     6888
     6889/* Line 1806 of yacc.c  */
     6890#line 1417 "parser.yy"
     6891    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61486892    break;
    61496893
    61506894  case 347:
    6151 #line 1419 "parser.yy" /* yacc.c:1646  */
    6152     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6153 #line 6154 "Parser/parser.cc" /* yacc.c:1646  */
     6895
     6896/* Line 1806 of yacc.c  */
     6897#line 1419 "parser.yy"
     6898    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61546899    break;
    61556900
    61566901  case 348:
    6157 #line 1421 "parser.yy" /* yacc.c:1646  */
    6158     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6159 #line 6160 "Parser/parser.cc" /* yacc.c:1646  */
     6902
     6903/* Line 1806 of yacc.c  */
     6904#line 1421 "parser.yy"
     6905    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61606906    break;
    61616907
    61626908  case 350:
    6163 #line 1427 "parser.yy" /* yacc.c:1646  */
    6164     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6165 #line 6166 "Parser/parser.cc" /* yacc.c:1646  */
     6909
     6910/* Line 1806 of yacc.c  */
     6911#line 1427 "parser.yy"
     6912    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61666913    break;
    61676914
    61686915  case 351:
    6169 #line 1429 "parser.yy" /* yacc.c:1646  */
    6170     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6171 #line 6172 "Parser/parser.cc" /* yacc.c:1646  */
     6916
     6917/* Line 1806 of yacc.c  */
     6918#line 1429 "parser.yy"
     6919    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61726920    break;
    61736921
    61746922  case 353:
    6175 #line 1435 "parser.yy" /* yacc.c:1646  */
    6176     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6177 #line 6178 "Parser/parser.cc" /* yacc.c:1646  */
     6923
     6924/* Line 1806 of yacc.c  */
     6925#line 1435 "parser.yy"
     6926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61786927    break;
    61796928
    61806929  case 354:
    6181 #line 1437 "parser.yy" /* yacc.c:1646  */
    6182     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6183 #line 6184 "Parser/parser.cc" /* yacc.c:1646  */
     6930
     6931/* Line 1806 of yacc.c  */
     6932#line 1437 "parser.yy"
     6933    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61846934    break;
    61856935
    61866936  case 355:
    6187 #line 1439 "parser.yy" /* yacc.c:1646  */
    6188     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6189 #line 6190 "Parser/parser.cc" /* yacc.c:1646  */
     6937
     6938/* Line 1806 of yacc.c  */
     6939#line 1439 "parser.yy"
     6940    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61906941    break;
    61916942
    61926943  case 356:
    6193 #line 1444 "parser.yy" /* yacc.c:1646  */
    6194     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
    6195 #line 6196 "Parser/parser.cc" /* yacc.c:1646  */
     6944
     6945/* Line 1806 of yacc.c  */
     6946#line 1444 "parser.yy"
     6947    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    61966948    break;
    61976949
    61986950  case 357:
    6199 #line 1446 "parser.yy" /* yacc.c:1646  */
    6200     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
    6201 #line 6202 "Parser/parser.cc" /* yacc.c:1646  */
     6951
     6952/* Line 1806 of yacc.c  */
     6953#line 1446 "parser.yy"
     6954    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    62026955    break;
    62036956
    62046957  case 358:
    6205 #line 1448 "parser.yy" /* yacc.c:1646  */
    6206     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6207 #line 6208 "Parser/parser.cc" /* yacc.c:1646  */
     6958
     6959/* Line 1806 of yacc.c  */
     6960#line 1448 "parser.yy"
     6961    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    62086962    break;
    62096963
    62106964  case 361:
    6211 #line 1458 "parser.yy" /* yacc.c:1646  */
    6212     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); }
    6213 #line 6214 "Parser/parser.cc" /* yacc.c:1646  */
     6965
     6966/* Line 1806 of yacc.c  */
     6967#line 1458 "parser.yy"
     6968    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    62146969    break;
    62156970
    62166971  case 362:
    6217 #line 1460 "parser.yy" /* yacc.c:1646  */
     6972
     6973/* Line 1806 of yacc.c  */
     6974#line 1460 "parser.yy"
    62186975    {
    6219                         typedefTable.makeTypedef( *(yyvsp[0].tok) );
    6220                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false );
     6976                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     6977                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false );
    62216978                }
    6222 #line 6223 "Parser/parser.cc" /* yacc.c:1646  */
    62236979    break;
    62246980
    62256981  case 363:
    6226 #line 1465 "parser.yy" /* yacc.c:1646  */
    6227     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
    6228 #line 6229 "Parser/parser.cc" /* yacc.c:1646  */
     6982
     6983/* Line 1806 of yacc.c  */
     6984#line 1465 "parser.yy"
     6985    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    62296986    break;
    62306987
    62316988  case 364:
    6232 #line 1467 "parser.yy" /* yacc.c:1646  */
    6233     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); }
    6234 #line 6235 "Parser/parser.cc" /* yacc.c:1646  */
     6989
     6990/* Line 1806 of yacc.c  */
     6991#line 1467 "parser.yy"
     6992    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    62356993    break;
    62366994
    62376995  case 365:
    6238 #line 1469 "parser.yy" /* yacc.c:1646  */
    6239     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
    6240 #line 6241 "Parser/parser.cc" /* yacc.c:1646  */
     6996
     6997/* Line 1806 of yacc.c  */
     6998#line 1469 "parser.yy"
     6999    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    62417000    break;
    62427001
    62437002  case 366:
    6244 #line 1471 "parser.yy" /* yacc.c:1646  */
    6245     { (yyval.decl) = (yyvsp[0].decl); }
    6246 #line 6247 "Parser/parser.cc" /* yacc.c:1646  */
     7003
     7004/* Line 1806 of yacc.c  */
     7005#line 1471 "parser.yy"
     7006    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    62477007    break;
    62487008
    62497009  case 367:
    6250 #line 1476 "parser.yy" /* yacc.c:1646  */
     7010
     7011/* Line 1806 of yacc.c  */
     7012#line 1476 "parser.yy"
    62517013    { (yyval.aggKey) = DeclarationNode::Struct; }
    6252 #line 6253 "Parser/parser.cc" /* yacc.c:1646  */
    62537014    break;
    62547015
    62557016  case 368:
    6256 #line 1478 "parser.yy" /* yacc.c:1646  */
     7017
     7018/* Line 1806 of yacc.c  */
     7019#line 1478 "parser.yy"
    62577020    { (yyval.aggKey) = DeclarationNode::Union; }
    6258 #line 6259 "Parser/parser.cc" /* yacc.c:1646  */
    62597021    break;
    62607022
    62617023  case 369:
    6262 #line 1483 "parser.yy" /* yacc.c:1646  */
     7024
     7025/* Line 1806 of yacc.c  */
     7026#line 1483 "parser.yy"
    62637027    { (yyval.decl) = 0; }
    6264 #line 6265 "Parser/parser.cc" /* yacc.c:1646  */
    62657028    break;
    62667029
    62677030  case 370:
    6268 #line 1485 "parser.yy" /* yacc.c:1646  */
    6269     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6270 #line 6271 "Parser/parser.cc" /* yacc.c:1646  */
     7031
     7032/* Line 1806 of yacc.c  */
     7033#line 1485 "parser.yy"
     7034    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    62717035    break;
    62727036
    62737037  case 372:
    6274 #line 1491 "parser.yy" /* yacc.c:1646  */
    6275     { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
    6276 #line 6277 "Parser/parser.cc" /* yacc.c:1646  */
     7038
     7039/* Line 1806 of yacc.c  */
     7040#line 1491 "parser.yy"
     7041    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    62777042    break;
    62787043
    62797044  case 374:
    6280 #line 1494 "parser.yy" /* yacc.c:1646  */
     7045
     7046/* Line 1806 of yacc.c  */
     7047#line 1494 "parser.yy"
    62817048    {   // mark all fields in list
    6282                         for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     7049                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    62837050                                iter->set_extension( true );
    6284                         (yyval.decl) = (yyvsp[-1].decl);
     7051                        (yyval.decl) = (yyvsp[(2) - (3)].decl);
    62857052                }
    6286 #line 6287 "Parser/parser.cc" /* yacc.c:1646  */
    62877053    break;
    62887054
    62897055  case 376:
    6290 #line 1504 "parser.yy" /* yacc.c:1646  */
    6291     { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
    6292 #line 6293 "Parser/parser.cc" /* yacc.c:1646  */
     7056
     7057/* Line 1806 of yacc.c  */
     7058#line 1504 "parser.yy"
     7059    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    62937060    break;
    62947061
    62957062  case 377:
    6296 #line 1506 "parser.yy" /* yacc.c:1646  */
    6297     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
    6298 #line 6299 "Parser/parser.cc" /* yacc.c:1646  */
     7063
     7064/* Line 1806 of yacc.c  */
     7065#line 1506 "parser.yy"
     7066    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    62997067    break;
    63007068
    63017069  case 378:
    6302 #line 1508 "parser.yy" /* yacc.c:1646  */
    6303     { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
    6304 #line 6305 "Parser/parser.cc" /* yacc.c:1646  */
     7070
     7071/* Line 1806 of yacc.c  */
     7072#line 1508 "parser.yy"
     7073    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    63057074    break;
    63067075
    63077076  case 379:
    6308 #line 1513 "parser.yy" /* yacc.c:1646  */
    6309     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6310 #line 6311 "Parser/parser.cc" /* yacc.c:1646  */
     7077
     7078/* Line 1806 of yacc.c  */
     7079#line 1513 "parser.yy"
     7080    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    63117081    break;
    63127082
    63137083  case 380:
    6314 #line 1515 "parser.yy" /* yacc.c:1646  */
    6315     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
    6316 #line 6317 "Parser/parser.cc" /* yacc.c:1646  */
     7084
     7085/* Line 1806 of yacc.c  */
     7086#line 1515 "parser.yy"
     7087    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    63177088    break;
    63187089
    63197090  case 381:
    6320 #line 1520 "parser.yy" /* yacc.c:1646  */
     7091
     7092/* Line 1806 of yacc.c  */
     7093#line 1520 "parser.yy"
    63217094    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6322 #line 6323 "Parser/parser.cc" /* yacc.c:1646  */
    63237095    break;
    63247096
    63257097  case 382:
    6326 #line 1522 "parser.yy" /* yacc.c:1646  */
    6327     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
    6328 #line 6329 "Parser/parser.cc" /* yacc.c:1646  */
     7098
     7099/* Line 1806 of yacc.c  */
     7100#line 1522 "parser.yy"
     7101    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    63297102    break;
    63307103
    63317104  case 383:
    6332 #line 1525 "parser.yy" /* yacc.c:1646  */
    6333     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
    6334 #line 6335 "Parser/parser.cc" /* yacc.c:1646  */
     7105
     7106/* Line 1806 of yacc.c  */
     7107#line 1525 "parser.yy"
     7108    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    63357109    break;
    63367110
    63377111  case 384:
    6338 #line 1528 "parser.yy" /* yacc.c:1646  */
    6339     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
    6340 #line 6341 "Parser/parser.cc" /* yacc.c:1646  */
     7112
     7113/* Line 1806 of yacc.c  */
     7114#line 1528 "parser.yy"
     7115    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    63417116    break;
    63427117
    63437118  case 386:
    6344 #line 1534 "parser.yy" /* yacc.c:1646  */
     7119
     7120/* Line 1806 of yacc.c  */
     7121#line 1534 "parser.yy"
    63457122    { (yyval.en) = 0; }
    6346 #line 6347 "Parser/parser.cc" /* yacc.c:1646  */
    63477123    break;
    63487124
    63497125  case 387:
    6350 #line 1536 "parser.yy" /* yacc.c:1646  */
    6351     { (yyval.en) = (yyvsp[0].en); }
    6352 #line 6353 "Parser/parser.cc" /* yacc.c:1646  */
     7126
     7127/* Line 1806 of yacc.c  */
     7128#line 1536 "parser.yy"
     7129    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    63537130    break;
    63547131
    63557132  case 388:
    6356 #line 1541 "parser.yy" /* yacc.c:1646  */
    6357     { (yyval.en) = (yyvsp[0].en); }
    6358 #line 6359 "Parser/parser.cc" /* yacc.c:1646  */
     7133
     7134/* Line 1806 of yacc.c  */
     7135#line 1541 "parser.yy"
     7136    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    63597137    break;
    63607138
    63617139  case 390:
    6362 #line 1550 "parser.yy" /* yacc.c:1646  */
    6363     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); }
    6364 #line 6365 "Parser/parser.cc" /* yacc.c:1646  */
     7140
     7141/* Line 1806 of yacc.c  */
     7142#line 1550 "parser.yy"
     7143    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    63657144    break;
    63667145
    63677146  case 391:
    6368 #line 1552 "parser.yy" /* yacc.c:1646  */
     7147
     7148/* Line 1806 of yacc.c  */
     7149#line 1552 "parser.yy"
    63697150    {
    6370                         typedefTable.makeTypedef( *(yyvsp[0].tok) );
    6371                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
     7151                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     7152                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
    63727153                }
    6373 #line 6374 "Parser/parser.cc" /* yacc.c:1646  */
    63747154    break;
    63757155
    63767156  case 392:
    6377 #line 1557 "parser.yy" /* yacc.c:1646  */
    6378     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
    6379 #line 6380 "Parser/parser.cc" /* yacc.c:1646  */
     7157
     7158/* Line 1806 of yacc.c  */
     7159#line 1557 "parser.yy"
     7160    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    63807161    break;
    63817162
    63827163  case 393:
    6383 #line 1559 "parser.yy" /* yacc.c:1646  */
    6384     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
    6385 #line 6386 "Parser/parser.cc" /* yacc.c:1646  */
     7164
     7165/* Line 1806 of yacc.c  */
     7166#line 1559 "parser.yy"
     7167    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    63867168    break;
    63877169
    63887170  case 394:
    6389 #line 1564 "parser.yy" /* yacc.c:1646  */
    6390     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
    6391 #line 6392 "Parser/parser.cc" /* yacc.c:1646  */
     7171
     7172/* Line 1806 of yacc.c  */
     7173#line 1564 "parser.yy"
     7174    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    63927175    break;
    63937176
    63947177  case 395:
    6395 #line 1566 "parser.yy" /* yacc.c:1646  */
    6396     { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
    6397 #line 6398 "Parser/parser.cc" /* yacc.c:1646  */
     7178
     7179/* Line 1806 of yacc.c  */
     7180#line 1566 "parser.yy"
     7181    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    63987182    break;
    63997183
    64007184  case 396:
    6401 #line 1571 "parser.yy" /* yacc.c:1646  */
     7185
     7186/* Line 1806 of yacc.c  */
     7187#line 1571 "parser.yy"
    64027188    { (yyval.en) = 0; }
    6403 #line 6404 "Parser/parser.cc" /* yacc.c:1646  */
    64047189    break;
    64057190
    64067191  case 397:
    6407 #line 1573 "parser.yy" /* yacc.c:1646  */
    6408     { (yyval.en) = (yyvsp[0].en); }
    6409 #line 6410 "Parser/parser.cc" /* yacc.c:1646  */
     7192
     7193/* Line 1806 of yacc.c  */
     7194#line 1573 "parser.yy"
     7195    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    64107196    break;
    64117197
    64127198  case 398:
    6413 #line 1580 "parser.yy" /* yacc.c:1646  */
     7199
     7200/* Line 1806 of yacc.c  */
     7201#line 1580 "parser.yy"
    64147202    { (yyval.decl) = 0; }
    6415 #line 6416 "Parser/parser.cc" /* yacc.c:1646  */
    64167203    break;
    64177204
    64187205  case 402:
    6419 #line 1588 "parser.yy" /* yacc.c:1646  */
    6420     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6421 #line 6422 "Parser/parser.cc" /* yacc.c:1646  */
     7206
     7207/* Line 1806 of yacc.c  */
     7208#line 1588 "parser.yy"
     7209    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64227210    break;
    64237211
    64247212  case 403:
    6425 #line 1590 "parser.yy" /* yacc.c:1646  */
    6426     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6427 #line 6428 "Parser/parser.cc" /* yacc.c:1646  */
     7213
     7214/* Line 1806 of yacc.c  */
     7215#line 1590 "parser.yy"
     7216    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64287217    break;
    64297218
    64307219  case 404:
    6431 #line 1592 "parser.yy" /* yacc.c:1646  */
    6432     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6433 #line 6434 "Parser/parser.cc" /* yacc.c:1646  */
     7220
     7221/* Line 1806 of yacc.c  */
     7222#line 1592 "parser.yy"
     7223    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64347224    break;
    64357225
    64367226  case 406:
    6437 #line 1600 "parser.yy" /* yacc.c:1646  */
    6438     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6439 #line 6440 "Parser/parser.cc" /* yacc.c:1646  */
     7227
     7228/* Line 1806 of yacc.c  */
     7229#line 1600 "parser.yy"
     7230    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64407231    break;
    64417232
    64427233  case 407:
    6443 #line 1602 "parser.yy" /* yacc.c:1646  */
    6444     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6445 #line 6446 "Parser/parser.cc" /* yacc.c:1646  */
     7234
     7235/* Line 1806 of yacc.c  */
     7236#line 1602 "parser.yy"
     7237    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64467238    break;
    64477239
    64487240  case 408:
    6449 #line 1604 "parser.yy" /* yacc.c:1646  */
    6450     { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
    6451 #line 6452 "Parser/parser.cc" /* yacc.c:1646  */
     7241
     7242/* Line 1806 of yacc.c  */
     7243#line 1604 "parser.yy"
     7244    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    64527245    break;
    64537246
    64547247  case 410:
    6455 #line 1610 "parser.yy" /* yacc.c:1646  */
    6456     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6457 #line 6458 "Parser/parser.cc" /* yacc.c:1646  */
     7248
     7249/* Line 1806 of yacc.c  */
     7250#line 1610 "parser.yy"
     7251    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64587252    break;
    64597253
    64607254  case 411:
    6461 #line 1615 "parser.yy" /* yacc.c:1646  */
     7255
     7256/* Line 1806 of yacc.c  */
     7257#line 1615 "parser.yy"
    64627258    { (yyval.decl) = 0; }
    6463 #line 6464 "Parser/parser.cc" /* yacc.c:1646  */
    64647259    break;
    64657260
    64667261  case 414:
    6467 #line 1622 "parser.yy" /* yacc.c:1646  */
    6468     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6469 #line 6470 "Parser/parser.cc" /* yacc.c:1646  */
     7262
     7263/* Line 1806 of yacc.c  */
     7264#line 1622 "parser.yy"
     7265    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64707266    break;
    64717267
    64727268  case 417:
    6473 #line 1629 "parser.yy" /* yacc.c:1646  */
    6474     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6475 #line 6476 "Parser/parser.cc" /* yacc.c:1646  */
     7269
     7270/* Line 1806 of yacc.c  */
     7271#line 1629 "parser.yy"
     7272    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64767273    break;
    64777274
    64787275  case 418:
    6479 #line 1631 "parser.yy" /* yacc.c:1646  */
    6480     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6481 #line 6482 "Parser/parser.cc" /* yacc.c:1646  */
     7276
     7277/* Line 1806 of yacc.c  */
     7278#line 1631 "parser.yy"
     7279    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64827280    break;
    64837281
    64847282  case 420:
    6485 #line 1640 "parser.yy" /* yacc.c:1646  */
    6486     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
    6487 #line 6488 "Parser/parser.cc" /* yacc.c:1646  */
     7283
     7284/* Line 1806 of yacc.c  */
     7285#line 1640 "parser.yy"
     7286    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    64887287    break;
    64897288
    64907289  case 421:
    6491 #line 1643 "parser.yy" /* yacc.c:1646  */
    6492     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
    6493 #line 6494 "Parser/parser.cc" /* yacc.c:1646  */
     7290
     7291/* Line 1806 of yacc.c  */
     7292#line 1643 "parser.yy"
     7293    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    64947294    break;
    64957295
    64967296  case 422:
    6497 #line 1645 "parser.yy" /* yacc.c:1646  */
    6498     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
    6499 #line 6500 "Parser/parser.cc" /* yacc.c:1646  */
     7297
     7298/* Line 1806 of yacc.c  */
     7299#line 1645 "parser.yy"
     7300    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    65007301    break;
    65017302
    65027303  case 427:
    6503 #line 1655 "parser.yy" /* yacc.c:1646  */
    6504     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6505 #line 6506 "Parser/parser.cc" /* yacc.c:1646  */
     7304
     7305/* Line 1806 of yacc.c  */
     7306#line 1655 "parser.yy"
     7307    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    65067308    break;
    65077309
    65087310  case 429:
    6509 #line 1661 "parser.yy" /* yacc.c:1646  */
     7311
     7312/* Line 1806 of yacc.c  */
     7313#line 1661 "parser.yy"
    65107314    {
    65117315                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6512                         (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
     7316                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    65137317                }
    6514 #line 6515 "Parser/parser.cc" /* yacc.c:1646  */
    65157318    break;
    65167319
    65177320  case 430:
    6518 #line 1666 "parser.yy" /* yacc.c:1646  */
     7321
     7322/* Line 1806 of yacc.c  */
     7323#line 1666 "parser.yy"
    65197324    {
    65207325                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6521                         (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
     7326                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    65227327                }
    6523 #line 6524 "Parser/parser.cc" /* yacc.c:1646  */
    65247328    break;
    65257329
    65267330  case 432:
    6527 #line 1675 "parser.yy" /* yacc.c:1646  */
    6528     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6529 #line 6530 "Parser/parser.cc" /* yacc.c:1646  */
     7331
     7332/* Line 1806 of yacc.c  */
     7333#line 1675 "parser.yy"
     7334    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65307335    break;
    65317336
    65327337  case 433:
    6533 #line 1684 "parser.yy" /* yacc.c:1646  */
    6534     { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
    6535 #line 6536 "Parser/parser.cc" /* yacc.c:1646  */
     7338
     7339/* Line 1806 of yacc.c  */
     7340#line 1684 "parser.yy"
     7341    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    65367342    break;
    65377343
    65387344  case 434:
    6539 #line 1686 "parser.yy" /* yacc.c:1646  */
    6540     { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
    6541 #line 6542 "Parser/parser.cc" /* yacc.c:1646  */
     7345
     7346/* Line 1806 of yacc.c  */
     7347#line 1686 "parser.yy"
     7348    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    65427349    break;
    65437350
    65447351  case 446:
    6545 #line 1711 "parser.yy" /* yacc.c:1646  */
    6546     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6547 #line 6548 "Parser/parser.cc" /* yacc.c:1646  */
     7352
     7353/* Line 1806 of yacc.c  */
     7354#line 1711 "parser.yy"
     7355    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65487356    break;
    65497357
    65507358  case 450:
    6551 #line 1719 "parser.yy" /* yacc.c:1646  */
    6552     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6553 #line 6554 "Parser/parser.cc" /* yacc.c:1646  */
     7359
     7360/* Line 1806 of yacc.c  */
     7361#line 1719 "parser.yy"
     7362    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65547363    break;
    65557364
    65567365  case 451:
    6557 #line 1724 "parser.yy" /* yacc.c:1646  */
     7366
     7367/* Line 1806 of yacc.c  */
     7368#line 1724 "parser.yy"
    65587369    { (yyval.in) = 0; }
    6559 #line 6560 "Parser/parser.cc" /* yacc.c:1646  */
    65607370    break;
    65617371
    65627372  case 452:
    6563 #line 1726 "parser.yy" /* yacc.c:1646  */
    6564     { (yyval.in) = (yyvsp[0].in); }
    6565 #line 6566 "Parser/parser.cc" /* yacc.c:1646  */
     7373
     7374/* Line 1806 of yacc.c  */
     7375#line 1726 "parser.yy"
     7376    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    65667377    break;
    65677378
    65687379  case 453:
    6569 #line 1728 "parser.yy" /* yacc.c:1646  */
    6570     { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
    6571 #line 6572 "Parser/parser.cc" /* yacc.c:1646  */
     7380
     7381/* Line 1806 of yacc.c  */
     7382#line 1728 "parser.yy"
     7383    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    65727384    break;
    65737385
    65747386  case 454:
    6575 #line 1732 "parser.yy" /* yacc.c:1646  */
    6576     { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
    6577 #line 6578 "Parser/parser.cc" /* yacc.c:1646  */
     7387
     7388/* Line 1806 of yacc.c  */
     7389#line 1732 "parser.yy"
     7390    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    65787391    break;
    65797392
    65807393  case 455:
    6581 #line 1733 "parser.yy" /* yacc.c:1646  */
    6582     { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
    6583 #line 6584 "Parser/parser.cc" /* yacc.c:1646  */
     7394
     7395/* Line 1806 of yacc.c  */
     7396#line 1733 "parser.yy"
     7397    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    65847398    break;
    65857399
    65867400  case 456:
    6587 #line 1738 "parser.yy" /* yacc.c:1646  */
     7401
     7402/* Line 1806 of yacc.c  */
     7403#line 1738 "parser.yy"
    65887404    { (yyval.in) = 0; }
    6589 #line 6590 "Parser/parser.cc" /* yacc.c:1646  */
    65907405    break;
    65917406
    65927407  case 458:
    6593 #line 1740 "parser.yy" /* yacc.c:1646  */
    6594     { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
    6595 #line 6596 "Parser/parser.cc" /* yacc.c:1646  */
     7408
     7409/* Line 1806 of yacc.c  */
     7410#line 1740 "parser.yy"
     7411    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    65967412    break;
    65977413
    65987414  case 459:
    6599 #line 1741 "parser.yy" /* yacc.c:1646  */
    6600     { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
    6601 #line 6602 "Parser/parser.cc" /* yacc.c:1646  */
     7415
     7416/* Line 1806 of yacc.c  */
     7417#line 1741 "parser.yy"
     7418    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    66027419    break;
    66037420
    66047421  case 460:
    6605 #line 1743 "parser.yy" /* yacc.c:1646  */
    6606     { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
    6607 #line 6608 "Parser/parser.cc" /* yacc.c:1646  */
     7422
     7423/* Line 1806 of yacc.c  */
     7424#line 1743 "parser.yy"
     7425    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    66087426    break;
    66097427
    66107428  case 462:
    6611 #line 1759 "parser.yy" /* yacc.c:1646  */
    6612     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
    6613 #line 6614 "Parser/parser.cc" /* yacc.c:1646  */
     7429
     7430/* Line 1806 of yacc.c  */
     7431#line 1759 "parser.yy"
     7432    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    66147433    break;
    66157434
    66167435  case 464:
    6617 #line 1765 "parser.yy" /* yacc.c:1646  */
    6618     { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
    6619 #line 6620 "Parser/parser.cc" /* yacc.c:1646  */
     7436
     7437/* Line 1806 of yacc.c  */
     7438#line 1765 "parser.yy"
     7439    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    66207440    break;
    66217441
    66227442  case 465:
    6623 #line 1771 "parser.yy" /* yacc.c:1646  */
    6624     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    6625 #line 6626 "Parser/parser.cc" /* yacc.c:1646  */
     7443
     7444/* Line 1806 of yacc.c  */
     7445#line 1771 "parser.yy"
     7446    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    66267447    break;
    66277448
    66287449  case 466:
    6629 #line 1774 "parser.yy" /* yacc.c:1646  */
    6630     { (yyval.en) = (yyvsp[-2].en); }
    6631 #line 6632 "Parser/parser.cc" /* yacc.c:1646  */
     7450
     7451/* Line 1806 of yacc.c  */
     7452#line 1774 "parser.yy"
     7453    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    66327454    break;
    66337455
    66347456  case 467:
    6635 #line 1776 "parser.yy" /* yacc.c:1646  */
    6636     { (yyval.en) = (yyvsp[-2].en); }
    6637 #line 6638 "Parser/parser.cc" /* yacc.c:1646  */
     7457
     7458/* Line 1806 of yacc.c  */
     7459#line 1776 "parser.yy"
     7460    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    66387461    break;
    66397462
    66407463  case 468:
    6641 #line 1778 "parser.yy" /* yacc.c:1646  */
    6642     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    6643 #line 6644 "Parser/parser.cc" /* yacc.c:1646  */
     7464
     7465/* Line 1806 of yacc.c  */
     7466#line 1778 "parser.yy"
     7467    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    66447468    break;
    66457469
    66467470  case 469:
    6647 #line 1780 "parser.yy" /* yacc.c:1646  */
    6648     { (yyval.en) = (yyvsp[-2].en); }
    6649 #line 6650 "Parser/parser.cc" /* yacc.c:1646  */
     7471
     7472/* Line 1806 of yacc.c  */
     7473#line 1780 "parser.yy"
     7474    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    66507475    break;
    66517476
    66527477  case 471:
    6653 #line 1804 "parser.yy" /* yacc.c:1646  */
    6654     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6655 #line 6656 "Parser/parser.cc" /* yacc.c:1646  */
     7478
     7479/* Line 1806 of yacc.c  */
     7480#line 1804 "parser.yy"
     7481    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66567482    break;
    66577483
    66587484  case 472:
    6659 #line 1806 "parser.yy" /* yacc.c:1646  */
    6660     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6661 #line 6662 "Parser/parser.cc" /* yacc.c:1646  */
     7485
     7486/* Line 1806 of yacc.c  */
     7487#line 1806 "parser.yy"
     7488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66627489    break;
    66637490
    66647491  case 473:
    6665 #line 1808 "parser.yy" /* yacc.c:1646  */
    6666     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6667 #line 6668 "Parser/parser.cc" /* yacc.c:1646  */
     7492
     7493/* Line 1806 of yacc.c  */
     7494#line 1808 "parser.yy"
     7495    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66687496    break;
    66697497
    66707498  case 475:
    6671 #line 1814 "parser.yy" /* yacc.c:1646  */
    6672     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6673 #line 6674 "Parser/parser.cc" /* yacc.c:1646  */
     7499
     7500/* Line 1806 of yacc.c  */
     7501#line 1814 "parser.yy"
     7502    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66747503    break;
    66757504
    66767505  case 476:
    6677 #line 1816 "parser.yy" /* yacc.c:1646  */
    6678     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6679 #line 6680 "Parser/parser.cc" /* yacc.c:1646  */
     7506
     7507/* Line 1806 of yacc.c  */
     7508#line 1816 "parser.yy"
     7509    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66807510    break;
    66817511
    66827512  case 477:
    6683 #line 1821 "parser.yy" /* yacc.c:1646  */
    6684     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
    6685 #line 6686 "Parser/parser.cc" /* yacc.c:1646  */
     7513
     7514/* Line 1806 of yacc.c  */
     7515#line 1821 "parser.yy"
     7516    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    66867517    break;
    66877518
    66887519  case 479:
    6689 #line 1827 "parser.yy" /* yacc.c:1646  */
    6690     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
    6691 #line 6692 "Parser/parser.cc" /* yacc.c:1646  */
     7520
     7521/* Line 1806 of yacc.c  */
     7522#line 1827 "parser.yy"
     7523    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    66927524    break;
    66937525
    66947526  case 480:
    6695 #line 1832 "parser.yy" /* yacc.c:1646  */
    6696     { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
    6697 #line 6698 "Parser/parser.cc" /* yacc.c:1646  */
     7527
     7528/* Line 1806 of yacc.c  */
     7529#line 1832 "parser.yy"
     7530    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    66987531    break;
    66997532
    67007533  case 481:
    6701 #line 1834 "parser.yy" /* yacc.c:1646  */
    6702     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
    6703 #line 6704 "Parser/parser.cc" /* yacc.c:1646  */
     7534
     7535/* Line 1806 of yacc.c  */
     7536#line 1834 "parser.yy"
     7537    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    67047538    break;
    67057539
    67067540  case 483:
    6707 #line 1840 "parser.yy" /* yacc.c:1646  */
     7541
     7542/* Line 1806 of yacc.c  */
     7543#line 1840 "parser.yy"
    67087544    { (yyval.tclass) = DeclarationNode::Type; }
    6709 #line 6710 "Parser/parser.cc" /* yacc.c:1646  */
    67107545    break;
    67117546
    67127547  case 484:
    6713 #line 1842 "parser.yy" /* yacc.c:1646  */
     7548
     7549/* Line 1806 of yacc.c  */
     7550#line 1842 "parser.yy"
    67147551    { (yyval.tclass) = DeclarationNode::Ftype; }
    6715 #line 6716 "Parser/parser.cc" /* yacc.c:1646  */
    67167552    break;
    67177553
    67187554  case 485:
    6719 #line 1844 "parser.yy" /* yacc.c:1646  */
     7555
     7556/* Line 1806 of yacc.c  */
     7557#line 1844 "parser.yy"
    67207558    { (yyval.tclass) = DeclarationNode::Dtype; }
    6721 #line 6722 "Parser/parser.cc" /* yacc.c:1646  */
    67227559    break;
    67237560
    67247561  case 486:
    6725 #line 1849 "parser.yy" /* yacc.c:1646  */
     7562
     7563/* Line 1806 of yacc.c  */
     7564#line 1849 "parser.yy"
    67267565    { (yyval.decl) = 0; }
    6727 #line 6728 "Parser/parser.cc" /* yacc.c:1646  */
    67287566    break;
    67297567
    67307568  case 487:
    6731 #line 1851 "parser.yy" /* yacc.c:1646  */
    6732     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6733 #line 6734 "Parser/parser.cc" /* yacc.c:1646  */
     7569
     7570/* Line 1806 of yacc.c  */
     7571#line 1851 "parser.yy"
     7572    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    67347573    break;
    67357574
    67367575  case 488:
    6737 #line 1856 "parser.yy" /* yacc.c:1646  */
     7576
     7577/* Line 1806 of yacc.c  */
     7578#line 1856 "parser.yy"
    67387579    {
    6739                         typedefTable.openTrait( *(yyvsp[-3].tok) );
    6740                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
     7580                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     7581                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
    67417582                }
    6742 #line 6743 "Parser/parser.cc" /* yacc.c:1646  */
    67437583    break;
    67447584
    67457585  case 489:
    6746 #line 1861 "parser.yy" /* yacc.c:1646  */
    6747     { (yyval.decl) = (yyvsp[-1].decl); }
    6748 #line 6749 "Parser/parser.cc" /* yacc.c:1646  */
     7586
     7587/* Line 1806 of yacc.c  */
     7588#line 1861 "parser.yy"
     7589    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    67497590    break;
    67507591
    67517592  case 490:
    6752 #line 1863 "parser.yy" /* yacc.c:1646  */
     7593
     7594/* Line 1806 of yacc.c  */
     7595#line 1863 "parser.yy"
    67537596    { (yyval.decl) = 0; }
    6754 #line 6755 "Parser/parser.cc" /* yacc.c:1646  */
    67557597    break;
    67567598
    67577599  case 491:
    6758 #line 1868 "parser.yy" /* yacc.c:1646  */
    6759     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
    6760 #line 6761 "Parser/parser.cc" /* yacc.c:1646  */
     7600
     7601/* Line 1806 of yacc.c  */
     7602#line 1868 "parser.yy"
     7603    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    67617604    break;
    67627605
    67637606  case 493:
    6764 #line 1871 "parser.yy" /* yacc.c:1646  */
    6765     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
    6766 #line 6767 "Parser/parser.cc" /* yacc.c:1646  */
     7607
     7608/* Line 1806 of yacc.c  */
     7609#line 1871 "parser.yy"
     7610    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    67677611    break;
    67687612
    67697613  case 494:
    6770 #line 1873 "parser.yy" /* yacc.c:1646  */
    6771     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
    6772 #line 6773 "Parser/parser.cc" /* yacc.c:1646  */
     7614
     7615/* Line 1806 of yacc.c  */
     7616#line 1873 "parser.yy"
     7617    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    67737618    break;
    67747619
    67757620  case 495:
    6776 #line 1878 "parser.yy" /* yacc.c:1646  */
    6777     { (yyval.decl) = (yyvsp[0].decl); }
    6778 #line 6779 "Parser/parser.cc" /* yacc.c:1646  */
     7621
     7622/* Line 1806 of yacc.c  */
     7623#line 1878 "parser.yy"
     7624    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    67797625    break;
    67807626
    67817627  case 496:
    6782 #line 1880 "parser.yy" /* yacc.c:1646  */
    6783     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
    6784 #line 6785 "Parser/parser.cc" /* yacc.c:1646  */
     7628
     7629/* Line 1806 of yacc.c  */
     7630#line 1880 "parser.yy"
     7631    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    67857632    break;
    67867633
    67877634  case 497:
    6788 #line 1882 "parser.yy" /* yacc.c:1646  */
    6789     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
    6790 #line 6791 "Parser/parser.cc" /* yacc.c:1646  */
     7635
     7636/* Line 1806 of yacc.c  */
     7637#line 1882 "parser.yy"
     7638    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    67917639    break;
    67927640
    67937641  case 498:
    6794 #line 1887 "parser.yy" /* yacc.c:1646  */
    6795     { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
    6796 #line 6797 "Parser/parser.cc" /* yacc.c:1646  */
     7642
     7643/* Line 1806 of yacc.c  */
     7644#line 1887 "parser.yy"
     7645    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    67977646    break;
    67987647
    67997648  case 499:
    6800 #line 1889 "parser.yy" /* yacc.c:1646  */
    6801     { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
    6802 #line 6803 "Parser/parser.cc" /* yacc.c:1646  */
     7649
     7650/* Line 1806 of yacc.c  */
     7651#line 1889 "parser.yy"
     7652    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    68037653    break;
    68047654
    68057655  case 500:
    6806 #line 1894 "parser.yy" /* yacc.c:1646  */
     7656
     7657/* Line 1806 of yacc.c  */
     7658#line 1894 "parser.yy"
    68077659    {
    6808                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
    6809                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
     7660                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     7661                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
    68107662                }
    6811 #line 6812 "Parser/parser.cc" /* yacc.c:1646  */
    68127663    break;
    68137664
    68147665  case 501:
    6815 #line 1899 "parser.yy" /* yacc.c:1646  */
     7666
     7667/* Line 1806 of yacc.c  */
     7668#line 1899 "parser.yy"
    68167669    {
    6817                         typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
    6818                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
     7670                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     7671                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
    68197672                }
    6820 #line 6821 "Parser/parser.cc" /* yacc.c:1646  */
    68217673    break;
    68227674
    68237675  case 502:
    6824 #line 1907 "parser.yy" /* yacc.c:1646  */
     7676
     7677/* Line 1806 of yacc.c  */
     7678#line 1907 "parser.yy"
    68257679    {
    6826                         typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
    6827                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
     7680                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     7681                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
    68287682                }
    6829 #line 6830 "Parser/parser.cc" /* yacc.c:1646  */
    68307683    break;
    68317684
    68327685  case 503:
    6833 #line 1912 "parser.yy" /* yacc.c:1646  */
     7686
     7687/* Line 1806 of yacc.c  */
     7688#line 1912 "parser.yy"
    68347689    {
    6835                         typedefTable.enterTrait( *(yyvsp[-6].tok) );
     7690                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
    68367691                        typedefTable.enterScope();
    68377692                }
    6838 #line 6839 "Parser/parser.cc" /* yacc.c:1646  */
    68397693    break;
    68407694
    68417695  case 504:
    6842 #line 1917 "parser.yy" /* yacc.c:1646  */
     7696
     7697/* Line 1806 of yacc.c  */
     7698#line 1917 "parser.yy"
    68437699    {
    68447700                        typedefTable.leaveTrait();
    6845                         typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
    6846                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
     7701                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
     7702                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
    68477703                }
    6848 #line 6849 "Parser/parser.cc" /* yacc.c:1646  */
    68497704    break;
    68507705
    68517706  case 506:
    6852 #line 1927 "parser.yy" /* yacc.c:1646  */
    6853     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    6854 #line 6855 "Parser/parser.cc" /* yacc.c:1646  */
     7707
     7708/* Line 1806 of yacc.c  */
     7709#line 1927 "parser.yy"
     7710    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    68557711    break;
    68567712
    68577713  case 509:
    6858 #line 1937 "parser.yy" /* yacc.c:1646  */
     7714
     7715/* Line 1806 of yacc.c  */
     7716#line 1937 "parser.yy"
    68597717    {
    68607718                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6861                         (yyval.decl) = (yyvsp[0].decl);
     7719                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    68627720                }
    6863 #line 6864 "Parser/parser.cc" /* yacc.c:1646  */
    68647721    break;
    68657722
    68667723  case 510:
    6867 #line 1942 "parser.yy" /* yacc.c:1646  */
     7724
     7725/* Line 1806 of yacc.c  */
     7726#line 1942 "parser.yy"
    68687727    {
    68697728                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6870                         (yyval.decl) = (yyvsp[0].decl);
     7729                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    68717730                }
    6872 #line 6873 "Parser/parser.cc" /* yacc.c:1646  */
    68737731    break;
    68747732
    68757733  case 511:
    6876 #line 1947 "parser.yy" /* yacc.c:1646  */
     7734
     7735/* Line 1806 of yacc.c  */
     7736#line 1947 "parser.yy"
    68777737    {
    6878                         typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
    6879                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     7738                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     7739                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    68807740                }
    6881 #line 6882 "Parser/parser.cc" /* yacc.c:1646  */
    68827741    break;
    68837742
    68847743  case 512:
    6885 #line 1955 "parser.yy" /* yacc.c:1646  */
     7744
     7745/* Line 1806 of yacc.c  */
     7746#line 1955 "parser.yy"
    68867747    {
    68877748                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6888                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
     7749                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
    68897750                }
    6890 #line 6891 "Parser/parser.cc" /* yacc.c:1646  */
    68917751    break;
    68927752
    68937753  case 513:
    6894 #line 1960 "parser.yy" /* yacc.c:1646  */
     7754
     7755/* Line 1806 of yacc.c  */
     7756#line 1960 "parser.yy"
    68957757    {
    68967758                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6897                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
     7759                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
    68987760                }
    6899 #line 6900 "Parser/parser.cc" /* yacc.c:1646  */
    69007761    break;
    69017762
    69027763  case 514:
    6903 #line 1970 "parser.yy" /* yacc.c:1646  */
     7764
     7765/* Line 1806 of yacc.c  */
     7766#line 1970 "parser.yy"
    69047767    {}
    6905 #line 6906 "Parser/parser.cc" /* yacc.c:1646  */
    69067768    break;
    69077769
    69087770  case 515:
    6909 #line 1972 "parser.yy" /* yacc.c:1646  */
    6910     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);    }
    6911 #line 6912 "Parser/parser.cc" /* yacc.c:1646  */
     7771
     7772/* Line 1806 of yacc.c  */
     7773#line 1972 "parser.yy"
     7774    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    69127775    break;
    69137776
    69147777  case 517:
    6915 #line 1978 "parser.yy" /* yacc.c:1646  */
    6916     { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6917 #line 6918 "Parser/parser.cc" /* yacc.c:1646  */
     7778
     7779/* Line 1806 of yacc.c  */
     7780#line 1978 "parser.yy"
     7781    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    69187782    break;
    69197783
    69207784  case 518:
    6921 #line 1983 "parser.yy" /* yacc.c:1646  */
     7785
     7786/* Line 1806 of yacc.c  */
     7787#line 1983 "parser.yy"
    69227788    { (yyval.decl) = 0; }
    6923 #line 6924 "Parser/parser.cc" /* yacc.c:1646  */
    69247789    break;
    69257790
    69267791  case 522:
    6927 #line 1991 "parser.yy" /* yacc.c:1646  */
     7792
     7793/* Line 1806 of yacc.c  */
     7794#line 1991 "parser.yy"
    69287795    {}
    6929 #line 6930 "Parser/parser.cc" /* yacc.c:1646  */
    69307796    break;
    69317797
    69327798  case 523:
    6933 #line 1993 "parser.yy" /* yacc.c:1646  */
     7799
     7800/* Line 1806 of yacc.c  */
     7801#line 1993 "parser.yy"
    69347802    {
    69357803                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    6936                         linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) );
     7804                        linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    69377805                }
    6938 #line 6939 "Parser/parser.cc" /* yacc.c:1646  */
    69397806    break;
    69407807
    69417808  case 524:
    6942 #line 1998 "parser.yy" /* yacc.c:1646  */
     7809
     7810/* Line 1806 of yacc.c  */
     7811#line 1998 "parser.yy"
    69437812    {
    69447813                        linkage = linkageStack.top();
    69457814                        linkageStack.pop();
    6946                         (yyval.decl) = (yyvsp[-1].decl);
     7815                        (yyval.decl) = (yyvsp[(5) - (6)].decl);
    69477816                }
    6948 #line 6949 "Parser/parser.cc" /* yacc.c:1646  */
    69497817    break;
    69507818
    69517819  case 525:
    6952 #line 2004 "parser.yy" /* yacc.c:1646  */
     7820
     7821/* Line 1806 of yacc.c  */
     7822#line 2004 "parser.yy"
    69537823    {   // mark all fields in list
    6954                         for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     7824                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    69557825                                iter->set_extension( true );
    6956                         (yyval.decl) = (yyvsp[0].decl);
     7826                        (yyval.decl) = (yyvsp[(2) - (2)].decl);
    69577827                }
    6958 #line 6959 "Parser/parser.cc" /* yacc.c:1646  */
    69597828    break;
    69607829
    69617830  case 527:
    6962 #line 2019 "parser.yy" /* yacc.c:1646  */
     7831
     7832/* Line 1806 of yacc.c  */
     7833#line 2019 "parser.yy"
    69637834    {
    69647835                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69657836                        typedefTable.leaveScope();
    6966                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
     7837                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    69677838                }
    6968 #line 6969 "Parser/parser.cc" /* yacc.c:1646  */
    69697839    break;
    69707840
    69717841  case 528:
    6972 #line 2025 "parser.yy" /* yacc.c:1646  */
     7842
     7843/* Line 1806 of yacc.c  */
     7844#line 2025 "parser.yy"
    69737845    {
    69747846                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69757847                        typedefTable.leaveScope();
    6976                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
     7848                        (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
    69777849                }
    6978 #line 6979 "Parser/parser.cc" /* yacc.c:1646  */
    69797850    break;
    69807851
    69817852  case 529:
    6982 #line 2034 "parser.yy" /* yacc.c:1646  */
     7853
     7854/* Line 1806 of yacc.c  */
     7855#line 2034 "parser.yy"
    69837856    {
    69847857                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69857858                        typedefTable.leaveScope();
    6986                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
     7859                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    69877860                }
    6988 #line 6989 "Parser/parser.cc" /* yacc.c:1646  */
    69897861    break;
    69907862
    69917863  case 530:
    6992 #line 2040 "parser.yy" /* yacc.c:1646  */
     7864
     7865/* Line 1806 of yacc.c  */
     7866#line 2040 "parser.yy"
    69937867    {
    69947868                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69957869                        typedefTable.leaveScope();
    6996                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
     7870                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
    69977871                }
    6998 #line 6999 "Parser/parser.cc" /* yacc.c:1646  */
    69997872    break;
    70007873
    70017874  case 531:
    7002 #line 2046 "parser.yy" /* yacc.c:1646  */
     7875
     7876/* Line 1806 of yacc.c  */
     7877#line 2046 "parser.yy"
    70037878    {
    70047879                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70057880                        typedefTable.leaveScope();
    7006                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
     7881                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    70077882                }
    7008 #line 7009 "Parser/parser.cc" /* yacc.c:1646  */
    70097883    break;
    70107884
    70117885  case 532:
    7012 #line 2052 "parser.yy" /* yacc.c:1646  */
     7886
     7887/* Line 1806 of yacc.c  */
     7888#line 2052 "parser.yy"
    70137889    {
    70147890                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70157891                        typedefTable.leaveScope();
    7016                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
     7892                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    70177893                }
    7018 #line 7019 "Parser/parser.cc" /* yacc.c:1646  */
    70197894    break;
    70207895
    70217896  case 533:
    7022 #line 2058 "parser.yy" /* yacc.c:1646  */
     7897
     7898/* Line 1806 of yacc.c  */
     7899#line 2058 "parser.yy"
    70237900    {
    70247901                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70257902                        typedefTable.leaveScope();
    7026                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
     7903                        (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
    70277904                }
    7028 #line 7029 "Parser/parser.cc" /* yacc.c:1646  */
    70297905    break;
    70307906
    70317907  case 534:
    7032 #line 2066 "parser.yy" /* yacc.c:1646  */
     7908
     7909/* Line 1806 of yacc.c  */
     7910#line 2066 "parser.yy"
    70337911    {
    70347912                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70357913                        typedefTable.leaveScope();
    7036                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
     7914                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
    70377915                }
    7038 #line 7039 "Parser/parser.cc" /* yacc.c:1646  */
    70397916    break;
    70407917
    70417918  case 535:
    7042 #line 2072 "parser.yy" /* yacc.c:1646  */
     7919
     7920/* Line 1806 of yacc.c  */
     7921#line 2072 "parser.yy"
    70437922    {
    70447923                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70457924                        typedefTable.leaveScope();
    7046                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
     7925                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    70477926                }
    7048 #line 7049 "Parser/parser.cc" /* yacc.c:1646  */
    70497927    break;
    70507928
    70517929  case 536:
    7052 #line 2080 "parser.yy" /* yacc.c:1646  */
     7930
     7931/* Line 1806 of yacc.c  */
     7932#line 2080 "parser.yy"
    70537933    {
    70547934                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70557935                        typedefTable.leaveScope();
    7056                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
     7936                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    70577937                }
    7058 #line 7059 "Parser/parser.cc" /* yacc.c:1646  */
    70597938    break;
    70607939
    70617940  case 537:
    7062 #line 2086 "parser.yy" /* yacc.c:1646  */
     7941
     7942/* Line 1806 of yacc.c  */
     7943#line 2086 "parser.yy"
    70637944    {
    70647945                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70657946                        typedefTable.leaveScope();
    7066                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
     7947                        (yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) );
    70677948                }
    7068 #line 7069 "Parser/parser.cc" /* yacc.c:1646  */
    70697949    break;
    70707950
    70717951  case 541:
    7072 #line 2101 "parser.yy" /* yacc.c:1646  */
    7073     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    7074 #line 7075 "Parser/parser.cc" /* yacc.c:1646  */
     7952
     7953/* Line 1806 of yacc.c  */
     7954#line 2101 "parser.yy"
     7955    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    70757956    break;
    70767957
    70777958  case 544:
    7078 #line 2111 "parser.yy" /* yacc.c:1646  */
     7959
     7960/* Line 1806 of yacc.c  */
     7961#line 2111 "parser.yy"
    70797962    { (yyval.decl) = 0; }
    7080 #line 7081 "Parser/parser.cc" /* yacc.c:1646  */
    70817963    break;
    70827964
    70837965  case 547:
    7084 #line 2118 "parser.yy" /* yacc.c:1646  */
    7085     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    7086 #line 7087 "Parser/parser.cc" /* yacc.c:1646  */
     7966
     7967/* Line 1806 of yacc.c  */
     7968#line 2118 "parser.yy"
     7969    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70877970    break;
    70887971
    70897972  case 548:
    7090 #line 2124 "parser.yy" /* yacc.c:1646  */
     7973
     7974/* Line 1806 of yacc.c  */
     7975#line 2124 "parser.yy"
    70917976    { (yyval.decl) = 0; }
    7092 #line 7093 "Parser/parser.cc" /* yacc.c:1646  */
    70937977    break;
    70947978
    70957979  case 554:
    7096 #line 2139 "parser.yy" /* yacc.c:1646  */
    7097     { delete (yyvsp[0].tok); }
    7098 #line 7099 "Parser/parser.cc" /* yacc.c:1646  */
     7980
     7981/* Line 1806 of yacc.c  */
     7982#line 2139 "parser.yy"
     7983    {}
    70997984    break;
    71007985
    71017986  case 555:
    7102 #line 2140 "parser.yy" /* yacc.c:1646  */
    7103     { delete (yyvsp[0].decl); }
    7104 #line 7105 "Parser/parser.cc" /* yacc.c:1646  */
     7987
     7988/* Line 1806 of yacc.c  */
     7989#line 2140 "parser.yy"
     7990    {}
    71057991    break;
    71067992
    71077993  case 556:
    7108 #line 2141 "parser.yy" /* yacc.c:1646  */
    7109     { delete (yyvsp[0].decl); }
    7110 #line 7111 "Parser/parser.cc" /* yacc.c:1646  */
     7994
     7995/* Line 1806 of yacc.c  */
     7996#line 2141 "parser.yy"
     7997    {}
    71117998    break;
    71127999
    71138000  case 557:
    7114 #line 2142 "parser.yy" /* yacc.c:1646  */
    7115     { delete (yyvsp[0].decl); }
    7116 #line 7117 "Parser/parser.cc" /* yacc.c:1646  */
     8001
     8002/* Line 1806 of yacc.c  */
     8003#line 2142 "parser.yy"
     8004    {}
    71178005    break;
    71188006
    71198007  case 558:
    7120 #line 2177 "parser.yy" /* yacc.c:1646  */
    7121     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7122 #line 7123 "Parser/parser.cc" /* yacc.c:1646  */
     8008
     8009/* Line 1806 of yacc.c  */
     8010#line 2177 "parser.yy"
     8011    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71238012    break;
    71248013
    71258014  case 560:
    7126 #line 2180 "parser.yy" /* yacc.c:1646  */
    7127     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7128 #line 7129 "Parser/parser.cc" /* yacc.c:1646  */
     8015
     8016/* Line 1806 of yacc.c  */
     8017#line 2180 "parser.yy"
     8018    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71298019    break;
    71308020
    71318021  case 561:
    7132 #line 2182 "parser.yy" /* yacc.c:1646  */
    7133     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7134 #line 7135 "Parser/parser.cc" /* yacc.c:1646  */
     8022
     8023/* Line 1806 of yacc.c  */
     8024#line 2182 "parser.yy"
     8025    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71358026    break;
    71368027
    71378028  case 562:
    7138 #line 2187 "parser.yy" /* yacc.c:1646  */
     8029
     8030/* Line 1806 of yacc.c  */
     8031#line 2187 "parser.yy"
    71398032    {
    7140                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7141                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8033                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8034                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    71428035                }
    7143 #line 7144 "Parser/parser.cc" /* yacc.c:1646  */
    71448036    break;
    71458037
    71468038  case 563:
    7147 #line 2192 "parser.yy" /* yacc.c:1646  */
    7148     { (yyval.decl) = (yyvsp[-1].decl); }
    7149 #line 7150 "Parser/parser.cc" /* yacc.c:1646  */
     8039
     8040/* Line 1806 of yacc.c  */
     8041#line 2192 "parser.yy"
     8042    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71508043    break;
    71518044
    71528045  case 564:
    7153 #line 2197 "parser.yy" /* yacc.c:1646  */
    7154     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7155 #line 7156 "Parser/parser.cc" /* yacc.c:1646  */
     8046
     8047/* Line 1806 of yacc.c  */
     8048#line 2197 "parser.yy"
     8049    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    71568050    break;
    71578051
    71588052  case 565:
    7159 #line 2199 "parser.yy" /* yacc.c:1646  */
    7160     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7161 #line 7162 "Parser/parser.cc" /* yacc.c:1646  */
     8053
     8054/* Line 1806 of yacc.c  */
     8055#line 2199 "parser.yy"
     8056    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    71628057    break;
    71638058
    71648059  case 566:
    7165 #line 2201 "parser.yy" /* yacc.c:1646  */
    7166     { (yyval.decl) = (yyvsp[-1].decl); }
    7167 #line 7168 "Parser/parser.cc" /* yacc.c:1646  */
     8060
     8061/* Line 1806 of yacc.c  */
     8062#line 2201 "parser.yy"
     8063    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71688064    break;
    71698065
    71708066  case 567:
    7171 #line 2206 "parser.yy" /* yacc.c:1646  */
    7172     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7173 #line 7174 "Parser/parser.cc" /* yacc.c:1646  */
     8067
     8068/* Line 1806 of yacc.c  */
     8069#line 2206 "parser.yy"
     8070    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    71748071    break;
    71758072
    71768073  case 568:
    7177 #line 2208 "parser.yy" /* yacc.c:1646  */
    7178     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7179 #line 7180 "Parser/parser.cc" /* yacc.c:1646  */
     8074
     8075/* Line 1806 of yacc.c  */
     8076#line 2208 "parser.yy"
     8077    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    71808078    break;
    71818079
    71828080  case 569:
    7183 #line 2210 "parser.yy" /* yacc.c:1646  */
    7184     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7185 #line 7186 "Parser/parser.cc" /* yacc.c:1646  */
     8081
     8082/* Line 1806 of yacc.c  */
     8083#line 2210 "parser.yy"
     8084    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    71868085    break;
    71878086
    71888087  case 570:
    7189 #line 2212 "parser.yy" /* yacc.c:1646  */
    7190     { (yyval.decl) = (yyvsp[-1].decl); }
    7191 #line 7192 "Parser/parser.cc" /* yacc.c:1646  */
     8088
     8089/* Line 1806 of yacc.c  */
     8090#line 2212 "parser.yy"
     8091    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71928092    break;
    71938093
    71948094  case 571:
    7195 #line 2217 "parser.yy" /* yacc.c:1646  */
    7196     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7197 #line 7198 "Parser/parser.cc" /* yacc.c:1646  */
     8095
     8096/* Line 1806 of yacc.c  */
     8097#line 2217 "parser.yy"
     8098    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    71988099    break;
    71998100
    72008101  case 572:
    7201 #line 2219 "parser.yy" /* yacc.c:1646  */
    7202     { (yyval.decl) = (yyvsp[-1].decl); }
    7203 #line 7204 "Parser/parser.cc" /* yacc.c:1646  */
     8102
     8103/* Line 1806 of yacc.c  */
     8104#line 2219 "parser.yy"
     8105    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72048106    break;
    72058107
    72068108  case 573:
    7207 #line 2228 "parser.yy" /* yacc.c:1646  */
    7208     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7209 #line 7210 "Parser/parser.cc" /* yacc.c:1646  */
     8109
     8110/* Line 1806 of yacc.c  */
     8111#line 2228 "parser.yy"
     8112    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72108113    break;
    72118114
    72128115  case 575:
    7213 #line 2231 "parser.yy" /* yacc.c:1646  */
    7214     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7215 #line 7216 "Parser/parser.cc" /* yacc.c:1646  */
     8116
     8117/* Line 1806 of yacc.c  */
     8118#line 2231 "parser.yy"
     8119    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72168120    break;
    72178121
    72188122  case 576:
    7219 #line 2236 "parser.yy" /* yacc.c:1646  */
    7220     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7221 #line 7222 "Parser/parser.cc" /* yacc.c:1646  */
     8123
     8124/* Line 1806 of yacc.c  */
     8125#line 2236 "parser.yy"
     8126    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    72228127    break;
    72238128
    72248129  case 577:
    7225 #line 2238 "parser.yy" /* yacc.c:1646  */
    7226     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7227 #line 7228 "Parser/parser.cc" /* yacc.c:1646  */
     8130
     8131/* Line 1806 of yacc.c  */
     8132#line 2238 "parser.yy"
     8133    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    72288134    break;
    72298135
    72308136  case 578:
    7231 #line 2240 "parser.yy" /* yacc.c:1646  */
    7232     { (yyval.decl) = (yyvsp[-1].decl); }
    7233 #line 7234 "Parser/parser.cc" /* yacc.c:1646  */
     8137
     8138/* Line 1806 of yacc.c  */
     8139#line 2240 "parser.yy"
     8140    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72348141    break;
    72358142
    72368143  case 579:
    7237 #line 2245 "parser.yy" /* yacc.c:1646  */
    7238     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7239 #line 7240 "Parser/parser.cc" /* yacc.c:1646  */
     8144
     8145/* Line 1806 of yacc.c  */
     8146#line 2245 "parser.yy"
     8147    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    72408148    break;
    72418149
    72428150  case 580:
    7243 #line 2247 "parser.yy" /* yacc.c:1646  */
    7244     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7245 #line 7246 "Parser/parser.cc" /* yacc.c:1646  */
     8151
     8152/* Line 1806 of yacc.c  */
     8153#line 2247 "parser.yy"
     8154    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    72468155    break;
    72478156
    72488157  case 581:
    7249 #line 2249 "parser.yy" /* yacc.c:1646  */
    7250     { (yyval.decl) = (yyvsp[-1].decl); }
    7251 #line 7252 "Parser/parser.cc" /* yacc.c:1646  */
     8158
     8159/* Line 1806 of yacc.c  */
     8160#line 2249 "parser.yy"
     8161    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72528162    break;
    72538163
    72548164  case 582:
    7255 #line 2254 "parser.yy" /* yacc.c:1646  */
    7256     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7257 #line 7258 "Parser/parser.cc" /* yacc.c:1646  */
     8165
     8166/* Line 1806 of yacc.c  */
     8167#line 2254 "parser.yy"
     8168    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    72588169    break;
    72598170
    72608171  case 583:
    7261 #line 2256 "parser.yy" /* yacc.c:1646  */
    7262     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7263 #line 7264 "Parser/parser.cc" /* yacc.c:1646  */
     8172
     8173/* Line 1806 of yacc.c  */
     8174#line 2256 "parser.yy"
     8175    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    72648176    break;
    72658177
    72668178  case 584:
    7267 #line 2258 "parser.yy" /* yacc.c:1646  */
    7268     { (yyval.decl) = (yyvsp[-1].decl); }
    7269 #line 7270 "Parser/parser.cc" /* yacc.c:1646  */
     8179
     8180/* Line 1806 of yacc.c  */
     8181#line 2258 "parser.yy"
     8182    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72708183    break;
    72718184
    72728185  case 588:
    7273 #line 2273 "parser.yy" /* yacc.c:1646  */
    7274     { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
    7275 #line 7276 "Parser/parser.cc" /* yacc.c:1646  */
     8186
     8187/* Line 1806 of yacc.c  */
     8188#line 2273 "parser.yy"
     8189    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    72768190    break;
    72778191
    72788192  case 589:
    7279 #line 2275 "parser.yy" /* yacc.c:1646  */
    7280     { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
    7281 #line 7282 "Parser/parser.cc" /* yacc.c:1646  */
     8193
     8194/* Line 1806 of yacc.c  */
     8195#line 2275 "parser.yy"
     8196    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    72828197    break;
    72838198
    72848199  case 590:
    7285 #line 2277 "parser.yy" /* yacc.c:1646  */
    7286     { (yyval.decl) = (yyvsp[-1].decl); }
    7287 #line 7288 "Parser/parser.cc" /* yacc.c:1646  */
     8200
     8201/* Line 1806 of yacc.c  */
     8202#line 2277 "parser.yy"
     8203    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72888204    break;
    72898205
    72908206  case 591:
    7291 #line 2282 "parser.yy" /* yacc.c:1646  */
    7292     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7293 #line 7294 "Parser/parser.cc" /* yacc.c:1646  */
     8207
     8208/* Line 1806 of yacc.c  */
     8209#line 2282 "parser.yy"
     8210    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    72948211    break;
    72958212
    72968213  case 592:
    7297 #line 2284 "parser.yy" /* yacc.c:1646  */
    7298     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7299 #line 7300 "Parser/parser.cc" /* yacc.c:1646  */
     8214
     8215/* Line 1806 of yacc.c  */
     8216#line 2284 "parser.yy"
     8217    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    73008218    break;
    73018219
    73028220  case 593:
    7303 #line 2286 "parser.yy" /* yacc.c:1646  */
    7304     { (yyval.decl) = (yyvsp[-1].decl); }
    7305 #line 7306 "Parser/parser.cc" /* yacc.c:1646  */
     8221
     8222/* Line 1806 of yacc.c  */
     8223#line 2286 "parser.yy"
     8224    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73068225    break;
    73078226
    73088227  case 594:
    7309 #line 2291 "parser.yy" /* yacc.c:1646  */
    7310     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7311 #line 7312 "Parser/parser.cc" /* yacc.c:1646  */
     8228
     8229/* Line 1806 of yacc.c  */
     8230#line 2291 "parser.yy"
     8231    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73128232    break;
    73138233
    73148234  case 595:
    7315 #line 2293 "parser.yy" /* yacc.c:1646  */
    7316     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7317 #line 7318 "Parser/parser.cc" /* yacc.c:1646  */
     8235
     8236/* Line 1806 of yacc.c  */
     8237#line 2293 "parser.yy"
     8238    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73188239    break;
    73198240
    73208241  case 596:
    7321 #line 2295 "parser.yy" /* yacc.c:1646  */
    7322     { (yyval.decl) = (yyvsp[-1].decl); }
    7323 #line 7324 "Parser/parser.cc" /* yacc.c:1646  */
     8242
     8243/* Line 1806 of yacc.c  */
     8244#line 2295 "parser.yy"
     8245    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73248246    break;
    73258247
    73268248  case 597:
    7327 #line 2310 "parser.yy" /* yacc.c:1646  */
    7328     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7329 #line 7330 "Parser/parser.cc" /* yacc.c:1646  */
     8249
     8250/* Line 1806 of yacc.c  */
     8251#line 2310 "parser.yy"
     8252    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73308253    break;
    73318254
    73328255  case 599:
    7333 #line 2313 "parser.yy" /* yacc.c:1646  */
    7334     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7335 #line 7336 "Parser/parser.cc" /* yacc.c:1646  */
     8256
     8257/* Line 1806 of yacc.c  */
     8258#line 2313 "parser.yy"
     8259    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73368260    break;
    73378261
    73388262  case 600:
    7339 #line 2315 "parser.yy" /* yacc.c:1646  */
    7340     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7341 #line 7342 "Parser/parser.cc" /* yacc.c:1646  */
     8263
     8264/* Line 1806 of yacc.c  */
     8265#line 2315 "parser.yy"
     8266    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73428267    break;
    73438268
    73448269  case 602:
    7345 #line 2321 "parser.yy" /* yacc.c:1646  */
    7346     { (yyval.decl) = (yyvsp[-1].decl); }
    7347 #line 7348 "Parser/parser.cc" /* yacc.c:1646  */
     8270
     8271/* Line 1806 of yacc.c  */
     8272#line 2321 "parser.yy"
     8273    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73488274    break;
    73498275
    73508276  case 603:
    7351 #line 2326 "parser.yy" /* yacc.c:1646  */
    7352     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7353 #line 7354 "Parser/parser.cc" /* yacc.c:1646  */
     8277
     8278/* Line 1806 of yacc.c  */
     8279#line 2326 "parser.yy"
     8280    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    73548281    break;
    73558282
    73568283  case 604:
    7357 #line 2328 "parser.yy" /* yacc.c:1646  */
    7358     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7359 #line 7360 "Parser/parser.cc" /* yacc.c:1646  */
     8284
     8285/* Line 1806 of yacc.c  */
     8286#line 2328 "parser.yy"
     8287    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    73608288    break;
    73618289
    73628290  case 605:
    7363 #line 2330 "parser.yy" /* yacc.c:1646  */
    7364     { (yyval.decl) = (yyvsp[-1].decl); }
    7365 #line 7366 "Parser/parser.cc" /* yacc.c:1646  */
     8291
     8292/* Line 1806 of yacc.c  */
     8293#line 2330 "parser.yy"
     8294    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73668295    break;
    73678296
    73688297  case 606:
    7369 #line 2335 "parser.yy" /* yacc.c:1646  */
    7370     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7371 #line 7372 "Parser/parser.cc" /* yacc.c:1646  */
     8298
     8299/* Line 1806 of yacc.c  */
     8300#line 2335 "parser.yy"
     8301    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    73728302    break;
    73738303
    73748304  case 607:
    7375 #line 2337 "parser.yy" /* yacc.c:1646  */
    7376     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7377 #line 7378 "Parser/parser.cc" /* yacc.c:1646  */
     8305
     8306/* Line 1806 of yacc.c  */
     8307#line 2337 "parser.yy"
     8308    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73788309    break;
    73798310
    73808311  case 608:
    7381 #line 2339 "parser.yy" /* yacc.c:1646  */
    7382     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7383 #line 7384 "Parser/parser.cc" /* yacc.c:1646  */
     8312
     8313/* Line 1806 of yacc.c  */
     8314#line 2339 "parser.yy"
     8315    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73848316    break;
    73858317
    73868318  case 609:
    7387 #line 2341 "parser.yy" /* yacc.c:1646  */
    7388     { (yyval.decl) = (yyvsp[-1].decl); }
    7389 #line 7390 "Parser/parser.cc" /* yacc.c:1646  */
     8319
     8320/* Line 1806 of yacc.c  */
     8321#line 2341 "parser.yy"
     8322    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73908323    break;
    73918324
    73928325  case 610:
    7393 #line 2346 "parser.yy" /* yacc.c:1646  */
    7394     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7395 #line 7396 "Parser/parser.cc" /* yacc.c:1646  */
     8326
     8327/* Line 1806 of yacc.c  */
     8328#line 2346 "parser.yy"
     8329    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    73968330    break;
    73978331
    73988332  case 611:
    7399 #line 2348 "parser.yy" /* yacc.c:1646  */
    7400     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7401 #line 7402 "Parser/parser.cc" /* yacc.c:1646  */
     8333
     8334/* Line 1806 of yacc.c  */
     8335#line 2348 "parser.yy"
     8336    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    74028337    break;
    74038338
    74048339  case 612:
    7405 #line 2350 "parser.yy" /* yacc.c:1646  */
    7406     { (yyval.decl) = (yyvsp[-1].decl); }
    7407 #line 7408 "Parser/parser.cc" /* yacc.c:1646  */
     8340
     8341/* Line 1806 of yacc.c  */
     8342#line 2350 "parser.yy"
     8343    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74088344    break;
    74098345
    74108346  case 613:
    7411 #line 2360 "parser.yy" /* yacc.c:1646  */
    7412     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7413 #line 7414 "Parser/parser.cc" /* yacc.c:1646  */
     8347
     8348/* Line 1806 of yacc.c  */
     8349#line 2360 "parser.yy"
     8350    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74148351    break;
    74158352
    74168353  case 615:
    7417 #line 2363 "parser.yy" /* yacc.c:1646  */
    7418     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7419 #line 7420 "Parser/parser.cc" /* yacc.c:1646  */
     8354
     8355/* Line 1806 of yacc.c  */
     8356#line 2363 "parser.yy"
     8357    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74208358    break;
    74218359
    74228360  case 616:
    7423 #line 2365 "parser.yy" /* yacc.c:1646  */
    7424     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7425 #line 7426 "Parser/parser.cc" /* yacc.c:1646  */
     8361
     8362/* Line 1806 of yacc.c  */
     8363#line 2365 "parser.yy"
     8364    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74268365    break;
    74278366
    74288367  case 617:
    7429 #line 2370 "parser.yy" /* yacc.c:1646  */
    7430     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7431 #line 7432 "Parser/parser.cc" /* yacc.c:1646  */
     8368
     8369/* Line 1806 of yacc.c  */
     8370#line 2370 "parser.yy"
     8371    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    74328372    break;
    74338373
    74348374  case 618:
    7435 #line 2372 "parser.yy" /* yacc.c:1646  */
    7436     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7437 #line 7438 "Parser/parser.cc" /* yacc.c:1646  */
     8375
     8376/* Line 1806 of yacc.c  */
     8377#line 2372 "parser.yy"
     8378    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    74388379    break;
    74398380
    74408381  case 619:
    7441 #line 2374 "parser.yy" /* yacc.c:1646  */
    7442     { (yyval.decl) = (yyvsp[-1].decl); }
    7443 #line 7444 "Parser/parser.cc" /* yacc.c:1646  */
     8382
     8383/* Line 1806 of yacc.c  */
     8384#line 2374 "parser.yy"
     8385    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74448386    break;
    74458387
    74468388  case 620:
    7447 #line 2379 "parser.yy" /* yacc.c:1646  */
    7448     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7449 #line 7450 "Parser/parser.cc" /* yacc.c:1646  */
     8389
     8390/* Line 1806 of yacc.c  */
     8391#line 2379 "parser.yy"
     8392    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    74508393    break;
    74518394
    74528395  case 621:
    7453 #line 2381 "parser.yy" /* yacc.c:1646  */
    7454     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7455 #line 7456 "Parser/parser.cc" /* yacc.c:1646  */
     8396
     8397/* Line 1806 of yacc.c  */
     8398#line 2381 "parser.yy"
     8399    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    74568400    break;
    74578401
    74588402  case 622:
    7459 #line 2383 "parser.yy" /* yacc.c:1646  */
    7460     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7461 #line 7462 "Parser/parser.cc" /* yacc.c:1646  */
     8403
     8404/* Line 1806 of yacc.c  */
     8405#line 2383 "parser.yy"
     8406    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    74628407    break;
    74638408
    74648409  case 623:
    7465 #line 2385 "parser.yy" /* yacc.c:1646  */
    7466     { (yyval.decl) = (yyvsp[-1].decl); }
    7467 #line 7468 "Parser/parser.cc" /* yacc.c:1646  */
     8410
     8411/* Line 1806 of yacc.c  */
     8412#line 2385 "parser.yy"
     8413    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74688414    break;
    74698415
    74708416  case 624:
    7471 #line 2390 "parser.yy" /* yacc.c:1646  */
    7472     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7473 #line 7474 "Parser/parser.cc" /* yacc.c:1646  */
     8417
     8418/* Line 1806 of yacc.c  */
     8419#line 2390 "parser.yy"
     8420    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    74748421    break;
    74758422
    74768423  case 625:
    7477 #line 2392 "parser.yy" /* yacc.c:1646  */
    7478     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7479 #line 7480 "Parser/parser.cc" /* yacc.c:1646  */
     8424
     8425/* Line 1806 of yacc.c  */
     8426#line 2392 "parser.yy"
     8427    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    74808428    break;
    74818429
    74828430  case 626:
    7483 #line 2394 "parser.yy" /* yacc.c:1646  */
    7484     { (yyval.decl) = (yyvsp[-1].decl); }
    7485 #line 7486 "Parser/parser.cc" /* yacc.c:1646  */
     8431
     8432/* Line 1806 of yacc.c  */
     8433#line 2394 "parser.yy"
     8434    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74868435    break;
    74878436
    74888437  case 627:
    7489 #line 2425 "parser.yy" /* yacc.c:1646  */
    7490     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7491 #line 7492 "Parser/parser.cc" /* yacc.c:1646  */
     8438
     8439/* Line 1806 of yacc.c  */
     8440#line 2425 "parser.yy"
     8441    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74928442    break;
    74938443
    74948444  case 629:
    7495 #line 2428 "parser.yy" /* yacc.c:1646  */
    7496     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7497 #line 7498 "Parser/parser.cc" /* yacc.c:1646  */
     8445
     8446/* Line 1806 of yacc.c  */
     8447#line 2428 "parser.yy"
     8448    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74988449    break;
    74998450
    75008451  case 630:
    7501 #line 2430 "parser.yy" /* yacc.c:1646  */
    7502     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7503 #line 7504 "Parser/parser.cc" /* yacc.c:1646  */
     8452
     8453/* Line 1806 of yacc.c  */
     8454#line 2430 "parser.yy"
     8455    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75048456    break;
    75058457
    75068458  case 631:
    7507 #line 2435 "parser.yy" /* yacc.c:1646  */
     8459
     8460/* Line 1806 of yacc.c  */
     8461#line 2435 "parser.yy"
    75088462    {
    7509                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7510                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8463                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8464                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    75118465                }
    7512 #line 7513 "Parser/parser.cc" /* yacc.c:1646  */
    75138466    break;
    75148467
    75158468  case 632:
    7516 #line 2440 "parser.yy" /* yacc.c:1646  */
     8469
     8470/* Line 1806 of yacc.c  */
     8471#line 2440 "parser.yy"
    75178472    {
    7518                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7519                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8473                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8474                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    75208475                }
    7521 #line 7522 "Parser/parser.cc" /* yacc.c:1646  */
    75228476    break;
    75238477
    75248478  case 633:
    7525 #line 2448 "parser.yy" /* yacc.c:1646  */
    7526     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7527 #line 7528 "Parser/parser.cc" /* yacc.c:1646  */
     8479
     8480/* Line 1806 of yacc.c  */
     8481#line 2448 "parser.yy"
     8482    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    75288483    break;
    75298484
    75308485  case 634:
    7531 #line 2450 "parser.yy" /* yacc.c:1646  */
    7532     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7533 #line 7534 "Parser/parser.cc" /* yacc.c:1646  */
     8486
     8487/* Line 1806 of yacc.c  */
     8488#line 2450 "parser.yy"
     8489    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    75348490    break;
    75358491
    75368492  case 635:
    7537 #line 2452 "parser.yy" /* yacc.c:1646  */
    7538     { (yyval.decl) = (yyvsp[-1].decl); }
    7539 #line 7540 "Parser/parser.cc" /* yacc.c:1646  */
     8493
     8494/* Line 1806 of yacc.c  */
     8495#line 2452 "parser.yy"
     8496    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    75408497    break;
    75418498
    75428499  case 636:
    7543 #line 2457 "parser.yy" /* yacc.c:1646  */
    7544     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7545 #line 7546 "Parser/parser.cc" /* yacc.c:1646  */
     8500
     8501/* Line 1806 of yacc.c  */
     8502#line 2457 "parser.yy"
     8503    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    75468504    break;
    75478505
    75488506  case 637:
    7549 #line 2459 "parser.yy" /* yacc.c:1646  */
    7550     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7551 #line 7552 "Parser/parser.cc" /* yacc.c:1646  */
     8507
     8508/* Line 1806 of yacc.c  */
     8509#line 2459 "parser.yy"
     8510    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    75528511    break;
    75538512
    75548513  case 638:
    7555 #line 2464 "parser.yy" /* yacc.c:1646  */
    7556     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7557 #line 7558 "Parser/parser.cc" /* yacc.c:1646  */
     8514
     8515/* Line 1806 of yacc.c  */
     8516#line 2464 "parser.yy"
     8517    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    75588518    break;
    75598519
    75608520  case 639:
    7561 #line 2466 "parser.yy" /* yacc.c:1646  */
    7562     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7563 #line 7564 "Parser/parser.cc" /* yacc.c:1646  */
     8521
     8522/* Line 1806 of yacc.c  */
     8523#line 2466 "parser.yy"
     8524    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    75648525    break;
    75658526
    75668527  case 641:
    7567 #line 2481 "parser.yy" /* yacc.c:1646  */
    7568     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7569 #line 7570 "Parser/parser.cc" /* yacc.c:1646  */
     8528
     8529/* Line 1806 of yacc.c  */
     8530#line 2481 "parser.yy"
     8531    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75708532    break;
    75718533
    75728534  case 642:
    7573 #line 2483 "parser.yy" /* yacc.c:1646  */
    7574     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7575 #line 7576 "Parser/parser.cc" /* yacc.c:1646  */
     8535
     8536/* Line 1806 of yacc.c  */
     8537#line 2483 "parser.yy"
     8538    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75768539    break;
    75778540
    75788541  case 643:
    7579 #line 2488 "parser.yy" /* yacc.c:1646  */
     8542
     8543/* Line 1806 of yacc.c  */
     8544#line 2488 "parser.yy"
    75808545    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7581 #line 7582 "Parser/parser.cc" /* yacc.c:1646  */
    75828546    break;
    75838547
    75848548  case 644:
    7585 #line 2490 "parser.yy" /* yacc.c:1646  */
    7586     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7587 #line 7588 "Parser/parser.cc" /* yacc.c:1646  */
     8549
     8550/* Line 1806 of yacc.c  */
     8551#line 2490 "parser.yy"
     8552    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    75888553    break;
    75898554
    75908555  case 645:
    7591 #line 2492 "parser.yy" /* yacc.c:1646  */
    7592     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7593 #line 7594 "Parser/parser.cc" /* yacc.c:1646  */
     8556
     8557/* Line 1806 of yacc.c  */
     8558#line 2492 "parser.yy"
     8559    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    75948560    break;
    75958561
    75968562  case 646:
    7597 #line 2494 "parser.yy" /* yacc.c:1646  */
    7598     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7599 #line 7600 "Parser/parser.cc" /* yacc.c:1646  */
     8563
     8564/* Line 1806 of yacc.c  */
     8565#line 2494 "parser.yy"
     8566    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    76008567    break;
    76018568
    76028569  case 647:
    7603 #line 2496 "parser.yy" /* yacc.c:1646  */
    7604     { (yyval.decl) = (yyvsp[-1].decl); }
    7605 #line 7606 "Parser/parser.cc" /* yacc.c:1646  */
     8570
     8571/* Line 1806 of yacc.c  */
     8572#line 2496 "parser.yy"
     8573    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76068574    break;
    76078575
    76088576  case 649:
    7609 #line 2502 "parser.yy" /* yacc.c:1646  */
    7610     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7611 #line 7612 "Parser/parser.cc" /* yacc.c:1646  */
     8577
     8578/* Line 1806 of yacc.c  */
     8579#line 2502 "parser.yy"
     8580    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    76128581    break;
    76138582
    76148583  case 650:
    7615 #line 2504 "parser.yy" /* yacc.c:1646  */
    7616     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7617 #line 7618 "Parser/parser.cc" /* yacc.c:1646  */
     8584
     8585/* Line 1806 of yacc.c  */
     8586#line 2504 "parser.yy"
     8587    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    76188588    break;
    76198589
    76208590  case 651:
    7621 #line 2506 "parser.yy" /* yacc.c:1646  */
    7622     { (yyval.decl) = (yyvsp[-1].decl); }
    7623 #line 7624 "Parser/parser.cc" /* yacc.c:1646  */
     8591
     8592/* Line 1806 of yacc.c  */
     8593#line 2506 "parser.yy"
     8594    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76248595    break;
    76258596
    76268597  case 652:
    7627 #line 2511 "parser.yy" /* yacc.c:1646  */
    7628     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
    7629 #line 7630 "Parser/parser.cc" /* yacc.c:1646  */
     8598
     8599/* Line 1806 of yacc.c  */
     8600#line 2511 "parser.yy"
     8601    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    76308602    break;
    76318603
    76328604  case 653:
    7633 #line 2513 "parser.yy" /* yacc.c:1646  */
    7634     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7635 #line 7636 "Parser/parser.cc" /* yacc.c:1646  */
     8605
     8606/* Line 1806 of yacc.c  */
     8607#line 2513 "parser.yy"
     8608    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    76368609    break;
    76378610
    76388611  case 654:
    7639 #line 2515 "parser.yy" /* yacc.c:1646  */
    7640     { (yyval.decl) = (yyvsp[-1].decl); }
    7641 #line 7642 "Parser/parser.cc" /* yacc.c:1646  */
     8612
     8613/* Line 1806 of yacc.c  */
     8614#line 2515 "parser.yy"
     8615    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76428616    break;
    76438617
    76448618  case 655:
    7645 #line 2521 "parser.yy" /* yacc.c:1646  */
     8619
     8620/* Line 1806 of yacc.c  */
     8621#line 2521 "parser.yy"
    76468622    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    7647 #line 7648 "Parser/parser.cc" /* yacc.c:1646  */
    76488623    break;
    76498624
    76508625  case 656:
    7651 #line 2523 "parser.yy" /* yacc.c:1646  */
    7652     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
    7653 #line 7654 "Parser/parser.cc" /* yacc.c:1646  */
     8626
     8627/* Line 1806 of yacc.c  */
     8628#line 2523 "parser.yy"
     8629    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    76548630    break;
    76558631
    76568632  case 658:
    7657 #line 2529 "parser.yy" /* yacc.c:1646  */
    7658     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
    7659 #line 7660 "Parser/parser.cc" /* yacc.c:1646  */
     8633
     8634/* Line 1806 of yacc.c  */
     8635#line 2529 "parser.yy"
     8636    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    76608637    break;
    76618638
    76628639  case 659:
    7663 #line 2531 "parser.yy" /* yacc.c:1646  */
     8640
     8641/* Line 1806 of yacc.c  */
     8642#line 2531 "parser.yy"
    76648643    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    7665 #line 7666 "Parser/parser.cc" /* yacc.c:1646  */
    76668644    break;
    76678645
    76688646  case 660:
    7669 #line 2533 "parser.yy" /* yacc.c:1646  */
    7670     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
    7671 #line 7672 "Parser/parser.cc" /* yacc.c:1646  */
     8647
     8648/* Line 1806 of yacc.c  */
     8649#line 2533 "parser.yy"
     8650    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    76728651    break;
    76738652
    76748653  case 661:
    7675 #line 2535 "parser.yy" /* yacc.c:1646  */
    7676     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    7677 #line 7678 "Parser/parser.cc" /* yacc.c:1646  */
     8654
     8655/* Line 1806 of yacc.c  */
     8656#line 2535 "parser.yy"
     8657    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    76788658    break;
    76798659
    76808660  case 663:
    7681 #line 2550 "parser.yy" /* yacc.c:1646  */
    7682     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7683 #line 7684 "Parser/parser.cc" /* yacc.c:1646  */
     8661
     8662/* Line 1806 of yacc.c  */
     8663#line 2550 "parser.yy"
     8664    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    76848665    break;
    76858666
    76868667  case 664:
    7687 #line 2552 "parser.yy" /* yacc.c:1646  */
    7688     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7689 #line 7690 "Parser/parser.cc" /* yacc.c:1646  */
     8668
     8669/* Line 1806 of yacc.c  */
     8670#line 2552 "parser.yy"
     8671    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    76908672    break;
    76918673
    76928674  case 665:
    7693 #line 2557 "parser.yy" /* yacc.c:1646  */
     8675
     8676/* Line 1806 of yacc.c  */
     8677#line 2557 "parser.yy"
    76948678    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7695 #line 7696 "Parser/parser.cc" /* yacc.c:1646  */
    76968679    break;
    76978680
    76988681  case 666:
    7699 #line 2559 "parser.yy" /* yacc.c:1646  */
    7700     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7701 #line 7702 "Parser/parser.cc" /* yacc.c:1646  */
     8682
     8683/* Line 1806 of yacc.c  */
     8684#line 2559 "parser.yy"
     8685    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    77028686    break;
    77038687
    77048688  case 667:
    7705 #line 2561 "parser.yy" /* yacc.c:1646  */
    7706     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7707 #line 7708 "Parser/parser.cc" /* yacc.c:1646  */
     8689
     8690/* Line 1806 of yacc.c  */
     8691#line 2561 "parser.yy"
     8692    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    77088693    break;
    77098694
    77108695  case 668:
    7711 #line 2563 "parser.yy" /* yacc.c:1646  */
    7712     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7713 #line 7714 "Parser/parser.cc" /* yacc.c:1646  */
     8696
     8697/* Line 1806 of yacc.c  */
     8698#line 2563 "parser.yy"
     8699    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    77148700    break;
    77158701
    77168702  case 669:
    7717 #line 2565 "parser.yy" /* yacc.c:1646  */
    7718     { (yyval.decl) = (yyvsp[-1].decl); }
    7719 #line 7720 "Parser/parser.cc" /* yacc.c:1646  */
     8703
     8704/* Line 1806 of yacc.c  */
     8705#line 2565 "parser.yy"
     8706    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77208707    break;
    77218708
    77228709  case 671:
    7723 #line 2571 "parser.yy" /* yacc.c:1646  */
    7724     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7725 #line 7726 "Parser/parser.cc" /* yacc.c:1646  */
     8710
     8711/* Line 1806 of yacc.c  */
     8712#line 2571 "parser.yy"
     8713    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    77268714    break;
    77278715
    77288716  case 672:
    7729 #line 2573 "parser.yy" /* yacc.c:1646  */
    7730     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7731 #line 7732 "Parser/parser.cc" /* yacc.c:1646  */
     8717
     8718/* Line 1806 of yacc.c  */
     8719#line 2573 "parser.yy"
     8720    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    77328721    break;
    77338722
    77348723  case 673:
    7735 #line 2575 "parser.yy" /* yacc.c:1646  */
    7736     { (yyval.decl) = (yyvsp[-1].decl); }
    7737 #line 7738 "Parser/parser.cc" /* yacc.c:1646  */
     8724
     8725/* Line 1806 of yacc.c  */
     8726#line 2575 "parser.yy"
     8727    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77388728    break;
    77398729
    77408730  case 674:
    7741 #line 2580 "parser.yy" /* yacc.c:1646  */
    7742     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
    7743 #line 7744 "Parser/parser.cc" /* yacc.c:1646  */
     8731
     8732/* Line 1806 of yacc.c  */
     8733#line 2580 "parser.yy"
     8734    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    77448735    break;
    77458736
    77468737  case 675:
    7747 #line 2582 "parser.yy" /* yacc.c:1646  */
    7748     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7749 #line 7750 "Parser/parser.cc" /* yacc.c:1646  */
     8738
     8739/* Line 1806 of yacc.c  */
     8740#line 2582 "parser.yy"
     8741    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    77508742    break;
    77518743
    77528744  case 676:
    7753 #line 2584 "parser.yy" /* yacc.c:1646  */
    7754     { (yyval.decl) = (yyvsp[-1].decl); }
    7755 #line 7756 "Parser/parser.cc" /* yacc.c:1646  */
     8745
     8746/* Line 1806 of yacc.c  */
     8747#line 2584 "parser.yy"
     8748    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77568749    break;
    77578750
    77588751  case 678:
    7759 #line 2591 "parser.yy" /* yacc.c:1646  */
    7760     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7761 #line 7762 "Parser/parser.cc" /* yacc.c:1646  */
     8752
     8753/* Line 1806 of yacc.c  */
     8754#line 2591 "parser.yy"
     8755    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    77628756    break;
    77638757
    77648758  case 680:
    7765 #line 2602 "parser.yy" /* yacc.c:1646  */
     8759
     8760/* Line 1806 of yacc.c  */
     8761#line 2602 "parser.yy"
    77668762    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    7767 #line 7768 "Parser/parser.cc" /* yacc.c:1646  */
    77688763    break;
    77698764
    77708765  case 681:
    7771 #line 2605 "parser.yy" /* yacc.c:1646  */
    7772     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
    7773 #line 7774 "Parser/parser.cc" /* yacc.c:1646  */
     8766
     8767/* Line 1806 of yacc.c  */
     8768#line 2605 "parser.yy"
     8769    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    77748770    break;
    77758771
    77768772  case 682:
    7777 #line 2607 "parser.yy" /* yacc.c:1646  */
    7778     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
    7779 #line 7780 "Parser/parser.cc" /* yacc.c:1646  */
     8773
     8774/* Line 1806 of yacc.c  */
     8775#line 2607 "parser.yy"
     8776    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    77808777    break;
    77818778
    77828779  case 683:
    7783 #line 2610 "parser.yy" /* yacc.c:1646  */
    7784     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
    7785 #line 7786 "Parser/parser.cc" /* yacc.c:1646  */
     8780
     8781/* Line 1806 of yacc.c  */
     8782#line 2610 "parser.yy"
     8783    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    77868784    break;
    77878785
    77888786  case 684:
    7789 #line 2612 "parser.yy" /* yacc.c:1646  */
    7790     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
    7791 #line 7792 "Parser/parser.cc" /* yacc.c:1646  */
     8787
     8788/* Line 1806 of yacc.c  */
     8789#line 2612 "parser.yy"
     8790    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    77928791    break;
    77938792
    77948793  case 685:
    7795 #line 2614 "parser.yy" /* yacc.c:1646  */
    7796     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
    7797 #line 7798 "Parser/parser.cc" /* yacc.c:1646  */
     8794
     8795/* Line 1806 of yacc.c  */
     8796#line 2614 "parser.yy"
     8797    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    77988798    break;
    77998799
    78008800  case 687:
    7801 #line 2628 "parser.yy" /* yacc.c:1646  */
    7802     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7803 #line 7804 "Parser/parser.cc" /* yacc.c:1646  */
     8801
     8802/* Line 1806 of yacc.c  */
     8803#line 2628 "parser.yy"
     8804    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78048805    break;
    78058806
    78068807  case 688:
    7807 #line 2630 "parser.yy" /* yacc.c:1646  */
    7808     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7809 #line 7810 "Parser/parser.cc" /* yacc.c:1646  */
     8808
     8809/* Line 1806 of yacc.c  */
     8810#line 2630 "parser.yy"
     8811    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78108812    break;
    78118813
    78128814  case 689:
    7813 #line 2635 "parser.yy" /* yacc.c:1646  */
     8815
     8816/* Line 1806 of yacc.c  */
     8817#line 2635 "parser.yy"
    78148818    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7815 #line 7816 "Parser/parser.cc" /* yacc.c:1646  */
    78168819    break;
    78178820
    78188821  case 690:
    7819 #line 2637 "parser.yy" /* yacc.c:1646  */
    7820     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7821 #line 7822 "Parser/parser.cc" /* yacc.c:1646  */
     8822
     8823/* Line 1806 of yacc.c  */
     8824#line 2637 "parser.yy"
     8825    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    78228826    break;
    78238827
    78248828  case 691:
    7825 #line 2639 "parser.yy" /* yacc.c:1646  */
    7826     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7827 #line 7828 "Parser/parser.cc" /* yacc.c:1646  */
     8829
     8830/* Line 1806 of yacc.c  */
     8831#line 2639 "parser.yy"
     8832    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    78288833    break;
    78298834
    78308835  case 692:
    7831 #line 2641 "parser.yy" /* yacc.c:1646  */
    7832     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7833 #line 7834 "Parser/parser.cc" /* yacc.c:1646  */
     8836
     8837/* Line 1806 of yacc.c  */
     8838#line 2641 "parser.yy"
     8839    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    78348840    break;
    78358841
    78368842  case 693:
    7837 #line 2643 "parser.yy" /* yacc.c:1646  */
    7838     { (yyval.decl) = (yyvsp[-1].decl); }
    7839 #line 7840 "Parser/parser.cc" /* yacc.c:1646  */
     8843
     8844/* Line 1806 of yacc.c  */
     8845#line 2643 "parser.yy"
     8846    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78408847    break;
    78418848
    78428849  case 695:
    7843 #line 2649 "parser.yy" /* yacc.c:1646  */
    7844     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7845 #line 7846 "Parser/parser.cc" /* yacc.c:1646  */
     8850
     8851/* Line 1806 of yacc.c  */
     8852#line 2649 "parser.yy"
     8853    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    78468854    break;
    78478855
    78488856  case 696:
    7849 #line 2651 "parser.yy" /* yacc.c:1646  */
    7850     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7851 #line 7852 "Parser/parser.cc" /* yacc.c:1646  */
     8857
     8858/* Line 1806 of yacc.c  */
     8859#line 2651 "parser.yy"
     8860    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    78528861    break;
    78538862
    78548863  case 697:
    7855 #line 2653 "parser.yy" /* yacc.c:1646  */
    7856     { (yyval.decl) = (yyvsp[-1].decl); }
    7857 #line 7858 "Parser/parser.cc" /* yacc.c:1646  */
     8864
     8865/* Line 1806 of yacc.c  */
     8866#line 2653 "parser.yy"
     8867    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78588868    break;
    78598869
    78608870  case 698:
    7861 #line 2658 "parser.yy" /* yacc.c:1646  */
    7862     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7863 #line 7864 "Parser/parser.cc" /* yacc.c:1646  */
     8871
     8872/* Line 1806 of yacc.c  */
     8873#line 2658 "parser.yy"
     8874    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    78648875    break;
    78658876
    78668877  case 699:
    7867 #line 2660 "parser.yy" /* yacc.c:1646  */
    7868     { (yyval.decl) = (yyvsp[-1].decl); }
    7869 #line 7870 "Parser/parser.cc" /* yacc.c:1646  */
     8878
     8879/* Line 1806 of yacc.c  */
     8880#line 2660 "parser.yy"
     8881    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78708882    break;
    78718883
    78728884  case 702:
    7873 #line 2670 "parser.yy" /* yacc.c:1646  */
    7874     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    7875 #line 7876 "Parser/parser.cc" /* yacc.c:1646  */
     8885
     8886/* Line 1806 of yacc.c  */
     8887#line 2670 "parser.yy"
     8888    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78768889    break;
    78778890
    78788891  case 705:
    7879 #line 2680 "parser.yy" /* yacc.c:1646  */
    7880     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7881 #line 7882 "Parser/parser.cc" /* yacc.c:1646  */
     8892
     8893/* Line 1806 of yacc.c  */
     8894#line 2680 "parser.yy"
     8895    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    78828896    break;
    78838897
    78848898  case 706:
    7885 #line 2682 "parser.yy" /* yacc.c:1646  */
    7886     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7887 #line 7888 "Parser/parser.cc" /* yacc.c:1646  */
     8899
     8900/* Line 1806 of yacc.c  */
     8901#line 2682 "parser.yy"
     8902    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    78888903    break;
    78898904
    78908905  case 707:
    7891 #line 2684 "parser.yy" /* yacc.c:1646  */
    7892     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7893 #line 7894 "Parser/parser.cc" /* yacc.c:1646  */
     8906
     8907/* Line 1806 of yacc.c  */
     8908#line 2684 "parser.yy"
     8909    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    78948910    break;
    78958911
    78968912  case 708:
    7897 #line 2686 "parser.yy" /* yacc.c:1646  */
    7898     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7899 #line 7900 "Parser/parser.cc" /* yacc.c:1646  */
     8913
     8914/* Line 1806 of yacc.c  */
     8915#line 2686 "parser.yy"
     8916    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    79008917    break;
    79018918
    79028919  case 709:
    7903 #line 2688 "parser.yy" /* yacc.c:1646  */
    7904     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7905 #line 7906 "Parser/parser.cc" /* yacc.c:1646  */
     8920
     8921/* Line 1806 of yacc.c  */
     8922#line 2688 "parser.yy"
     8923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    79068924    break;
    79078925
    79088926  case 710:
    7909 #line 2690 "parser.yy" /* yacc.c:1646  */
    7910     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7911 #line 7912 "Parser/parser.cc" /* yacc.c:1646  */
     8927
     8928/* Line 1806 of yacc.c  */
     8929#line 2690 "parser.yy"
     8930    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    79128931    break;
    79138932
    79148933  case 711:
    7915 #line 2697 "parser.yy" /* yacc.c:1646  */
    7916     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7917 #line 7918 "Parser/parser.cc" /* yacc.c:1646  */
     8934
     8935/* Line 1806 of yacc.c  */
     8936#line 2697 "parser.yy"
     8937    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79188938    break;
    79198939
    79208940  case 712:
    7921 #line 2699 "parser.yy" /* yacc.c:1646  */
    7922     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7923 #line 7924 "Parser/parser.cc" /* yacc.c:1646  */
     8941
     8942/* Line 1806 of yacc.c  */
     8943#line 2699 "parser.yy"
     8944    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79248945    break;
    79258946
    79268947  case 713:
    7927 #line 2701 "parser.yy" /* yacc.c:1646  */
    7928     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7929 #line 7930 "Parser/parser.cc" /* yacc.c:1646  */
     8948
     8949/* Line 1806 of yacc.c  */
     8950#line 2701 "parser.yy"
     8951    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79308952    break;
    79318953
    79328954  case 714:
    7933 #line 2703 "parser.yy" /* yacc.c:1646  */
    7934     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
    7935 #line 7936 "Parser/parser.cc" /* yacc.c:1646  */
     8955
     8956/* Line 1806 of yacc.c  */
     8957#line 2703 "parser.yy"
     8958    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    79368959    break;
    79378960
    79388961  case 715:
    7939 #line 2705 "parser.yy" /* yacc.c:1646  */
    7940     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7941 #line 7942 "Parser/parser.cc" /* yacc.c:1646  */
     8962
     8963/* Line 1806 of yacc.c  */
     8964#line 2705 "parser.yy"
     8965    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79428966    break;
    79438967
    79448968  case 716:
    7945 #line 2707 "parser.yy" /* yacc.c:1646  */
    7946     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7947 #line 7948 "Parser/parser.cc" /* yacc.c:1646  */
     8969
     8970/* Line 1806 of yacc.c  */
     8971#line 2707 "parser.yy"
     8972    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79488973    break;
    79498974
    79508975  case 717:
    7951 #line 2709 "parser.yy" /* yacc.c:1646  */
    7952     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7953 #line 7954 "Parser/parser.cc" /* yacc.c:1646  */
     8976
     8977/* Line 1806 of yacc.c  */
     8978#line 2709 "parser.yy"
     8979    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79548980    break;
    79558981
    79568982  case 718:
    7957 #line 2711 "parser.yy" /* yacc.c:1646  */
    7958     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7959 #line 7960 "Parser/parser.cc" /* yacc.c:1646  */
     8983
     8984/* Line 1806 of yacc.c  */
     8985#line 2711 "parser.yy"
     8986    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79608987    break;
    79618988
    79628989  case 719:
    7963 #line 2713 "parser.yy" /* yacc.c:1646  */
    7964     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
    7965 #line 7966 "Parser/parser.cc" /* yacc.c:1646  */
     8990
     8991/* Line 1806 of yacc.c  */
     8992#line 2713 "parser.yy"
     8993    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    79668994    break;
    79678995
    79688996  case 720:
    7969 #line 2715 "parser.yy" /* yacc.c:1646  */
    7970     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7971 #line 7972 "Parser/parser.cc" /* yacc.c:1646  */
     8997
     8998/* Line 1806 of yacc.c  */
     8999#line 2715 "parser.yy"
     9000    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79729001    break;
    79739002
    79749003  case 721:
    7975 #line 2720 "parser.yy" /* yacc.c:1646  */
    7976     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
    7977 #line 7978 "Parser/parser.cc" /* yacc.c:1646  */
     9004
     9005/* Line 1806 of yacc.c  */
     9006#line 2720 "parser.yy"
     9007    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    79789008    break;
    79799009
    79809010  case 722:
    7981 #line 2722 "parser.yy" /* yacc.c:1646  */
    7982     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
    7983 #line 7984 "Parser/parser.cc" /* yacc.c:1646  */
     9011
     9012/* Line 1806 of yacc.c  */
     9013#line 2722 "parser.yy"
     9014    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    79849015    break;
    79859016
    79869017  case 723:
    7987 #line 2727 "parser.yy" /* yacc.c:1646  */
    7988     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
    7989 #line 7990 "Parser/parser.cc" /* yacc.c:1646  */
     9018
     9019/* Line 1806 of yacc.c  */
     9020#line 2727 "parser.yy"
     9021    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    79909022    break;
    79919023
    79929024  case 724:
    7993 #line 2729 "parser.yy" /* yacc.c:1646  */
    7994     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
    7995 #line 7996 "Parser/parser.cc" /* yacc.c:1646  */
     9025
     9026/* Line 1806 of yacc.c  */
     9027#line 2729 "parser.yy"
     9028    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    79969029    break;
    79979030
    79989031  case 726:
    7999 #line 2756 "parser.yy" /* yacc.c:1646  */
    8000     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    8001 #line 8002 "Parser/parser.cc" /* yacc.c:1646  */
     9032
     9033/* Line 1806 of yacc.c  */
     9034#line 2756 "parser.yy"
     9035    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80029036    break;
    80039037
    80049038  case 730:
    8005 #line 2767 "parser.yy" /* yacc.c:1646  */
    8006     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8007 #line 8008 "Parser/parser.cc" /* yacc.c:1646  */
     9039
     9040/* Line 1806 of yacc.c  */
     9041#line 2767 "parser.yy"
     9042    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80089043    break;
    80099044
    80109045  case 731:
    8011 #line 2769 "parser.yy" /* yacc.c:1646  */
    8012     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8013 #line 8014 "Parser/parser.cc" /* yacc.c:1646  */
     9046
     9047/* Line 1806 of yacc.c  */
     9048#line 2769 "parser.yy"
     9049    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80149050    break;
    80159051
    80169052  case 732:
    8017 #line 2771 "parser.yy" /* yacc.c:1646  */
    8018     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8019 #line 8020 "Parser/parser.cc" /* yacc.c:1646  */
     9053
     9054/* Line 1806 of yacc.c  */
     9055#line 2771 "parser.yy"
     9056    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80209057    break;
    80219058
    80229059  case 733:
    8023 #line 2773 "parser.yy" /* yacc.c:1646  */
    8024     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8025 #line 8026 "Parser/parser.cc" /* yacc.c:1646  */
     9060
     9061/* Line 1806 of yacc.c  */
     9062#line 2773 "parser.yy"
     9063    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80269064    break;
    80279065
    80289066  case 734:
    8029 #line 2775 "parser.yy" /* yacc.c:1646  */
    8030     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8031 #line 8032 "Parser/parser.cc" /* yacc.c:1646  */
     9067
     9068/* Line 1806 of yacc.c  */
     9069#line 2775 "parser.yy"
     9070    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80329071    break;
    80339072
    80349073  case 735:
    8035 #line 2777 "parser.yy" /* yacc.c:1646  */
    8036     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8037 #line 8038 "Parser/parser.cc" /* yacc.c:1646  */
     9074
     9075/* Line 1806 of yacc.c  */
     9076#line 2777 "parser.yy"
     9077    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80389078    break;
    80399079
    80409080  case 736:
    8041 #line 2784 "parser.yy" /* yacc.c:1646  */
    8042     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8043 #line 8044 "Parser/parser.cc" /* yacc.c:1646  */
     9081
     9082/* Line 1806 of yacc.c  */
     9083#line 2784 "parser.yy"
     9084    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80449085    break;
    80459086
    80469087  case 737:
    8047 #line 2786 "parser.yy" /* yacc.c:1646  */
    8048     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8049 #line 8050 "Parser/parser.cc" /* yacc.c:1646  */
     9088
     9089/* Line 1806 of yacc.c  */
     9090#line 2786 "parser.yy"
     9091    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80509092    break;
    80519093
    80529094  case 738:
    8053 #line 2788 "parser.yy" /* yacc.c:1646  */
    8054     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    8055 #line 8056 "Parser/parser.cc" /* yacc.c:1646  */
     9095
     9096/* Line 1806 of yacc.c  */
     9097#line 2788 "parser.yy"
     9098    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    80569099    break;
    80579100
    80589101  case 739:
    8059 #line 2790 "parser.yy" /* yacc.c:1646  */
    8060     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8061 #line 8062 "Parser/parser.cc" /* yacc.c:1646  */
     9102
     9103/* Line 1806 of yacc.c  */
     9104#line 2790 "parser.yy"
     9105    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80629106    break;
    80639107
    80649108  case 740:
    8065 #line 2792 "parser.yy" /* yacc.c:1646  */
    8066     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8067 #line 8068 "Parser/parser.cc" /* yacc.c:1646  */
     9109
     9110/* Line 1806 of yacc.c  */
     9111#line 2792 "parser.yy"
     9112    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80689113    break;
    80699114
    80709115  case 741:
    8071 #line 2794 "parser.yy" /* yacc.c:1646  */
    8072     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    8073 #line 8074 "Parser/parser.cc" /* yacc.c:1646  */
     9116
     9117/* Line 1806 of yacc.c  */
     9118#line 2794 "parser.yy"
     9119    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    80749120    break;
    80759121
    80769122  case 742:
    8077 #line 2799 "parser.yy" /* yacc.c:1646  */
    8078     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
    8079 #line 8080 "Parser/parser.cc" /* yacc.c:1646  */
     9123
     9124/* Line 1806 of yacc.c  */
     9125#line 2799 "parser.yy"
     9126    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    80809127    break;
    80819128
    80829129  case 743:
    8083 #line 2804 "parser.yy" /* yacc.c:1646  */
    8084     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); }
    8085 #line 8086 "Parser/parser.cc" /* yacc.c:1646  */
     9130
     9131/* Line 1806 of yacc.c  */
     9132#line 2804 "parser.yy"
     9133    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    80869134    break;
    80879135
    80889136  case 744:
    8089 #line 2806 "parser.yy" /* yacc.c:1646  */
    8090     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
    8091 #line 8092 "Parser/parser.cc" /* yacc.c:1646  */
     9137
     9138/* Line 1806 of yacc.c  */
     9139#line 2806 "parser.yy"
     9140    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    80929141    break;
    80939142
    80949143  case 745:
    8095 #line 2808 "parser.yy" /* yacc.c:1646  */
    8096     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
    8097 #line 8098 "Parser/parser.cc" /* yacc.c:1646  */
     9144
     9145/* Line 1806 of yacc.c  */
     9146#line 2808 "parser.yy"
     9147    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    80989148    break;
    80999149
    81009150  case 748:
    8101 #line 2832 "parser.yy" /* yacc.c:1646  */
     9151
     9152/* Line 1806 of yacc.c  */
     9153#line 2832 "parser.yy"
    81029154    { (yyval.en) = 0; }
    8103 #line 8104 "Parser/parser.cc" /* yacc.c:1646  */
    81049155    break;
    81059156
    81069157  case 749:
    8107 #line 2834 "parser.yy" /* yacc.c:1646  */
    8108     { (yyval.en) = (yyvsp[0].en); }
    8109 #line 8110 "Parser/parser.cc" /* yacc.c:1646  */
    8110     break;
    8111 
    8112 
    8113 #line 8114 "Parser/parser.cc" /* yacc.c:1646  */
     9158
     9159/* Line 1806 of yacc.c  */
     9160#line 2834 "parser.yy"
     9161    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     9162    break;
     9163
     9164
     9165
     9166/* Line 1806 of yacc.c  */
     9167#line 9168 "Parser/parser.cc"
    81149168      default: break;
    81159169    }
     
    81339187  *++yyvsp = yyval;
    81349188
    8135   /* Now 'shift' the result of the reduction.  Determine what state
     9189  /* Now `shift' the result of the reduction.  Determine what state
    81369190     that goes to, based on the state we popped back to and the rule
    81379191     number reduced by.  */
     
    81489202
    81499203
    8150 /*--------------------------------------.
    8151 | yyerrlab -- here on detecting error. |
    8152 `--------------------------------------*/
     9204/*------------------------------------.
     9205| yyerrlab -- here on detecting error |
     9206`------------------------------------*/
    81539207yyerrlab:
    81549208  /* Make sure we have latest lookahead translation.  See comments at
     
    82019255    {
    82029256      /* If just tried and failed to reuse lookahead token after an
    8203         error, discard it.  */
     9257        error, discard it.  */
    82049258
    82059259      if (yychar <= YYEOF)
    8206         {
    8207           /* Return failure if at end of input.  */
    8208           if (yychar == YYEOF)
    8209             YYABORT;
    8210         }
     9260        {
     9261          /* Return failure if at end of input.  */
     9262          if (yychar == YYEOF)
     9263            YYABORT;
     9264        }
    82119265      else
    8212         {
    8213           yydestruct ("Error: discarding",
    8214                       yytoken, &yylval);
    8215           yychar = YYEMPTY;
    8216         }
     9266        {
     9267          yydestruct ("Error: discarding",
     9268                      yytoken, &yylval);
     9269          yychar = YYEMPTY;
     9270        }
    82179271    }
    82189272
     
    82339287     goto yyerrorlab;
    82349288
    8235   /* Do not reclaim the symbols of the rule whose action triggered
     9289  /* Do not reclaim the symbols of the rule which action triggered
    82369290     this YYERROR.  */
    82379291  YYPOPSTACK (yylen);
     
    82469300`-------------------------------------------------------------*/
    82479301yyerrlab1:
    8248   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     9302  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    82499303
    82509304  for (;;)
     
    82529306      yyn = yypact[yystate];
    82539307      if (!yypact_value_is_default (yyn))
    8254         {
    8255           yyn += YYTERROR;
    8256           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    8257             {
    8258               yyn = yytable[yyn];
    8259               if (0 < yyn)
    8260                 break;
    8261             }
    8262         }
     9308        {
     9309          yyn += YYTERROR;
     9310          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     9311            {
     9312              yyn = yytable[yyn];
     9313              if (0 < yyn)
     9314                break;
     9315            }
     9316        }
    82639317
    82649318      /* Pop the current state because it cannot handle the error token.  */
    82659319      if (yyssp == yyss)
    8266         YYABORT;
     9320        YYABORT;
    82679321
    82689322
    82699323      yydestruct ("Error: popping",
    8270                   yystos[yystate], yyvsp);
     9324                  yystos[yystate], yyvsp);
    82719325      YYPOPSTACK (1);
    82729326      yystate = *yyssp;
     
    82749328    }
    82759329
    8276   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    82779330  *++yyvsp = yylval;
    8278   YY_IGNORE_MAYBE_UNINITIALIZED_END
    82799331
    82809332
     
    83009352  goto yyreturn;
    83019353
    8302 #if !defined yyoverflow || YYERROR_VERBOSE
     9354#if !defined(yyoverflow) || YYERROR_VERBOSE
    83039355/*-------------------------------------------------.
    83049356| yyexhaustedlab -- memory exhaustion comes here.  |
     
    83199371                  yytoken, &yylval);
    83209372    }
    8321   /* Do not reclaim the symbols of the rule whose action triggered
     9373  /* Do not reclaim the symbols of the rule which action triggered
    83229374     this YYABORT or YYACCEPT.  */
    83239375  YYPOPSTACK (yylen);
     
    83269378    {
    83279379      yydestruct ("Cleanup: popping",
    8328                   yystos[*yyssp], yyvsp);
     9380                  yystos[*yyssp], yyvsp);
    83299381      YYPOPSTACK (1);
    83309382    }
     
    83379389    YYSTACK_FREE (yymsg);
    83389390#endif
    8339   return yyresult;
     9391  /* Make sure YYID is used.  */
     9392  return YYID (yyresult);
    83409393}
    8341 #line 2837 "parser.yy" /* yacc.c:1906  */
     9394
     9395
     9396
     9397/* Line 2067 of yacc.c  */
     9398#line 2837 "parser.yy"
    83429399
    83439400// ----end of grammar----
     
    83589415// compile-command: "make install" //
    83599416// End: //
     9417
Note: See TracChangeset for help on using the changeset viewer.