Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r4ed70597 r3b5e3aa  
    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
     
    7882#include "TypeData.h"
    7983#include "LinkageSpec.h"
     84using namespace std;
    8085
    8186extern DeclarationNode * parseTree;
     
    8388extern TypedefTable typedefTable;
    8489
    85 std::stack< LinkageSpec::Spec > linkageStack;
    86 
    87 void appendStr( std::string *to, std::string *from ) {
     90stack< LinkageSpec::Spec > linkageStack;
     91
     92void appendStr( string *to, string *from ) {
    8893        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    8994        to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
    9095} // appendStr
    9196
    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
     97
     98/* Line 268 of yacc.c  */
     99#line 100 "Parser/parser.cc"
     100
     101/* Enabling traces.  */
     102#ifndef YYDEBUG
     103# define YYDEBUG 1
     104#endif
    101105
    102106/* Enabling verbose error messages.  */
     
    108112#endif
    109113
    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
     114/* Enabling the token table.  */
     115#ifndef YYTOKEN_TABLE
     116# define YYTOKEN_TABLE 0
    117117#endif
    118 #if YYDEBUG
    119 extern int yydebug;
    120 #endif
    121 
    122 /* Token type.  */
     118
     119
     120/* Tokens.  */
    123121#ifndef YYTOKENTYPE
    124122# 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   };
     123   /* Put the tokens into the symbol table, so that GDB and other debuggers
     124      know about them.  */
     125   enum yytokentype {
     126     TYPEDEF = 258,
     127     AUTO = 259,
     128     EXTERN = 260,
     129     REGISTER = 261,
     130     STATIC = 262,
     131     INLINE = 263,
     132     FORTRAN = 264,
     133     CONST = 265,
     134     VOLATILE = 266,
     135     RESTRICT = 267,
     136     FORALL = 268,
     137     LVALUE = 269,
     138     VOID = 270,
     139     CHAR = 271,
     140     SHORT = 272,
     141     INT = 273,
     142     LONG = 274,
     143     FLOAT = 275,
     144     DOUBLE = 276,
     145     SIGNED = 277,
     146     UNSIGNED = 278,
     147     VALIST = 279,
     148     BOOL = 280,
     149     COMPLEX = 281,
     150     IMAGINARY = 282,
     151     TYPEOF = 283,
     152     LABEL = 284,
     153     ENUM = 285,
     154     STRUCT = 286,
     155     UNION = 287,
     156     OTYPE = 288,
     157     FTYPE = 289,
     158     DTYPE = 290,
     159     TRAIT = 291,
     160     SIZEOF = 292,
     161     OFFSETOF = 293,
     162     ATTRIBUTE = 294,
     163     EXTENSION = 295,
     164     IF = 296,
     165     ELSE = 297,
     166     SWITCH = 298,
     167     CASE = 299,
     168     DEFAULT = 300,
     169     DO = 301,
     170     WHILE = 302,
     171     FOR = 303,
     172     BREAK = 304,
     173     CONTINUE = 305,
     174     GOTO = 306,
     175     RETURN = 307,
     176     CHOOSE = 308,
     177     DISABLE = 309,
     178     ENABLE = 310,
     179     FALLTHRU = 311,
     180     TRY = 312,
     181     CATCH = 313,
     182     CATCHRESUME = 314,
     183     FINALLY = 315,
     184     THROW = 316,
     185     THROWRESUME = 317,
     186     AT = 318,
     187     ASM = 319,
     188     ALIGNAS = 320,
     189     ALIGNOF = 321,
     190     ATOMIC = 322,
     191     GENERIC = 323,
     192     NORETURN = 324,
     193     STATICASSERT = 325,
     194     THREADLOCAL = 326,
     195     IDENTIFIER = 327,
     196     QUOTED_IDENTIFIER = 328,
     197     TYPEDEFname = 329,
     198     TYPEGENname = 330,
     199     ATTR_IDENTIFIER = 331,
     200     ATTR_TYPEDEFname = 332,
     201     ATTR_TYPEGENname = 333,
     202     INTEGERconstant = 334,
     203     FLOATINGconstant = 335,
     204     CHARACTERconstant = 336,
     205     STRINGliteral = 337,
     206     ZERO = 338,
     207     ONE = 339,
     208     ARROW = 340,
     209     ICR = 341,
     210     DECR = 342,
     211     LS = 343,
     212     RS = 344,
     213     LE = 345,
     214     GE = 346,
     215     EQ = 347,
     216     NE = 348,
     217     ANDAND = 349,
     218     OROR = 350,
     219     ELLIPSIS = 351,
     220     MULTassign = 352,
     221     DIVassign = 353,
     222     MODassign = 354,
     223     PLUSassign = 355,
     224     MINUSassign = 356,
     225     LSassign = 357,
     226     RSassign = 358,
     227     ANDassign = 359,
     228     ERassign = 360,
     229     ORassign = 361,
     230     ATassign = 362,
     231     THEN = 363
     232   };
    234233#endif
    235234/* Tokens.  */
     
    341340#define THEN 363
    342341
    343 /* Value type.  */
     342
     343
     344
    344345#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    345 typedef union YYSTYPE YYSTYPE;
    346 union YYSTYPE
     346typedef union YYSTYPE
    347347{
    348 #line 115 "parser.yy" /* yacc.c:355  */
     348
     349/* Line 293 of yacc.c  */
     350#line 116 "parser.yy"
    349351
    350352        Token tok;
     
    363365        bool flag;
    364366
    365 #line 366 "Parser/parser.cc" /* yacc.c:355  */
    366 };
     367
     368
     369/* Line 293 of yacc.c  */
     370#line 371 "Parser/parser.cc"
     371} YYSTYPE;
    367372# define YYSTYPE_IS_TRIVIAL 1
     373# define yystype YYSTYPE /* obsolescent; will be withdrawn */
    368374# define YYSTYPE_IS_DECLARED 1
    369375#endif
    370376
    371377
    372 extern YYSTYPE yylval;
    373 
    374 int yyparse (void);
    375 
    376 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
    377 
    378378/* Copy the second part of user declarations.  */
    379379
    380 #line 381 "Parser/parser.cc" /* yacc.c:358  */
     380
     381/* Line 343 of yacc.c  */
     382#line 383 "Parser/parser.cc"
    381383
    382384#ifdef short
     
    392394#ifdef YYTYPE_INT8
    393395typedef YYTYPE_INT8 yytype_int8;
     396#elif (defined __STDC__ || defined __C99__FUNC__ \
     397     || defined __cplusplus || defined _MSC_VER)
     398typedef signed char yytype_int8;
    394399#else
    395 typedef signed char yytype_int8;
     400typedef short int yytype_int8;
    396401#endif
    397402
     
    413418# elif defined size_t
    414419#  define YYSIZE_T size_t
    415 # elif ! defined YYSIZE_T
     420# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     421     || defined __cplusplus || defined _MSC_VER)
    416422#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    417423#  define YYSIZE_T size_t
     
    427433#  if ENABLE_NLS
    428434#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    429 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
     435#   define YY_(msgid) dgettext ("bison-runtime", msgid)
    430436#  endif
    431437# endif
    432438# ifndef YY_
    433 #  define YY_(Msgid) Msgid
     439#  define YY_(msgid) msgid
    434440# endif
    435441#endif
    436442
    437 #ifndef YY_ATTRIBUTE
    438 # if (defined __GNUC__                                               \
    439       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
    440      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
    441 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
    442 # else
    443 #  define YY_ATTRIBUTE(Spec) /* empty */
    444 # endif
    445 #endif
    446 
    447 #ifndef YY_ATTRIBUTE_PURE
    448 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
    449 #endif
    450 
    451 #ifndef YY_ATTRIBUTE_UNUSED
    452 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
    453 #endif
    454 
    455 #if !defined _Noreturn \
    456      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
    457 # if defined _MSC_VER && 1200 <= _MSC_VER
    458 #  define _Noreturn __declspec (noreturn)
    459 # else
    460 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
    461 # endif
    462 #endif
    463 
    464443/* Suppress unused-variable warnings by "using" E.  */
    465444#if ! defined lint || defined __GNUC__
    466 # define YYUSE(E) ((void) (E))
     445# define YYUSE(e) ((void) (e))
    467446#else
    468 # define YYUSE(E) /* empty */
     447# define YYUSE(e) /* empty */
    469448#endif
    470449
    471 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
    472 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
    473 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
    474     _Pragma ("GCC diagnostic push") \
    475     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
    476     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
    477 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
    478     _Pragma ("GCC diagnostic pop")
     450/* Identity function, used to suppress warnings about constant conditions.  */
     451#ifndef lint
     452# define YYID(n) (n)
    479453#else
    480 # define YY_INITIAL_VALUE(Value) Value
     454#if (defined __STDC__ || defined __C99__FUNC__ \
     455     || defined __cplusplus || defined _MSC_VER)
     456static int
     457YYID (int yyi)
     458#else
     459static int
     460YYID (yyi)
     461    int yyi;
    481462#endif
    482 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    483 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    484 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
     463{
     464  return yyi;
     465}
    485466#endif
    486 #ifndef YY_INITIAL_VALUE
    487 # define YY_INITIAL_VALUE(Value) /* Nothing. */
    488 #endif
    489 
    490467
    491468#if ! defined yyoverflow || YYERROR_VERBOSE
     
    506483#   else
    507484#    define YYSTACK_ALLOC alloca
    508 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
     485#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     486     || defined __cplusplus || defined _MSC_VER)
    509487#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    510       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    511488#     ifndef EXIT_SUCCESS
    512489#      define EXIT_SUCCESS 0
     
    518495
    519496# ifdef YYSTACK_ALLOC
    520    /* Pacify GCC's 'empty if-body' warning.  */
    521 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
     497   /* Pacify GCC's `empty if-body' warning.  */
     498#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    522499#  ifndef YYSTACK_ALLOC_MAXIMUM
    523500    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    535512#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    536513       && ! ((defined YYMALLOC || defined malloc) \
    537              && (defined YYFREE || defined free)))
     514             && (defined YYFREE || defined free)))
    538515#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    539516#   ifndef EXIT_SUCCESS
     
    543520#  ifndef YYMALLOC
    544521#   define YYMALLOC malloc
    545 #   if ! defined malloc && ! defined EXIT_SUCCESS
     522#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     523     || defined __cplusplus || defined _MSC_VER)
    546524void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    547525#   endif
     
    549527#  ifndef YYFREE
    550528#   define YYFREE free
    551 #   if ! defined free && ! defined EXIT_SUCCESS
     529#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     530     || defined __cplusplus || defined _MSC_VER)
    552531void free (void *); /* INFRINGES ON USER NAME SPACE */
    553532#   endif
     
    559538#if (! defined yyoverflow \
    560539     && (! defined __cplusplus \
    561         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     540        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    562541
    563542/* A type that is properly aligned for any stack member.  */
     
    584563   stack.  Advance YYPTR to a properly aligned location for the next
    585564   stack.  */
    586 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    587     do                                                                  \
    588       {                                                                 \
    589         YYSIZE_T yynewbytes;                                            \
    590         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    591         Stack = &yyptr->Stack_alloc;                                    \
    592         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    593         yyptr += yynewbytes / sizeof (*yyptr);                          \
    594       }                                                                 \
    595     while (0)
     565# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     566    do                                                                  \
     567      {                                                                 \
     568        YYSIZE_T yynewbytes;                                            \
     569        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     570        Stack = &yyptr->Stack_alloc;                                    \
     571        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     572        yyptr += yynewbytes / sizeof (*yyptr);                          \
     573      }                                                                 \
     574    while (YYID (0))
    596575
    597576#endif
    598577
    599578#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    600 /* Copy COUNT objects from SRC to DST.  The source and destination do
     579/* Copy COUNT objects from FROM to TO.  The source and destination do
    601580   not overlap.  */
    602581# ifndef YYCOPY
    603582#  if defined __GNUC__ && 1 < __GNUC__
    604 #   define YYCOPY(Dst, Src, Count) \
    605       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
     583#   define YYCOPY(To, From, Count) \
     584      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    606585#  else
    607 #   define YYCOPY(Dst, Src, Count)              \
    608       do                                        \
    609         {                                       \
    610           YYSIZE_T yyi;                         \
    611           for (yyi = 0; yyi < (Count); yyi++)   \
    612             (Dst)[yyi] = (Src)[yyi];            \
    613         }                                       \
    614       while (0)
     586#   define YYCOPY(To, From, Count)              \
     587      do                                        \
     588        {                                       \
     589          YYSIZE_T yyi;                         \
     590          for (yyi = 0; yyi < (Count); yyi++)   \
     591            (To)[yyi] = (From)[yyi];            \
     592        }                                       \
     593      while (YYID (0))
    615594#  endif
    616595# endif
     
    628607/* YYNRULES -- Number of rules.  */
    629608#define YYNRULES  751
    630 /* YYNSTATES -- Number of states.  */
     609/* YYNRULES -- Number of states.  */
    631610#define YYNSTATES  1555
    632611
    633 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    634    by yylex, with out-of-bounds checking.  */
     612/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    635613#define YYUNDEFTOK  2
    636614#define YYMAXUTOK   363
    637615
    638 #define YYTRANSLATE(YYX)                                                \
     616#define YYTRANSLATE(YYX)                                                \
    639617  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    640618
    641 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    642    as returned by yylex, without out-of-bounds checking.  */
     619/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    643620static const yytype_uint8 yytranslate[] =
    644621{
     
    683660
    684661#if YYDEBUG
    685   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
     662/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
     663   YYRHS.  */
     664static const yytype_uint16 yyprhs[] =
     665{
     666       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
     667      17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
     668      38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
     669      86,    89,    92,   100,   105,   107,   111,   112,   114,   116,
     670     120,   122,   126,   134,   138,   146,   148,   150,   152,   155,
     671     158,   161,   164,   167,   170,   175,   178,   183,   190,   192,
     672     197,   202,   204,   206,   208,   210,   212,   214,   216,   221,
     673     226,   228,   232,   236,   240,   242,   246,   250,   252,   256,
     674     260,   262,   266,   270,   274,   278,   280,   284,   288,   290,
     675     294,   296,   300,   302,   306,   308,   312,   314,   318,   320,
     676     326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
     677     355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
     678     375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
     679     414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
     680     442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
     681     474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
     682     531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
     683     558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
     684     586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
     685     638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
     686     678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
     687     751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
     688     818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
     689     849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
     690     875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
     691     905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
     692     946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
     693    1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
     694    1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
     695    1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
     696    1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
     697    1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     698    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     699    1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
     700    1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
     701    1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
     702    1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
     703    1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
     704    1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
     705    1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
     706    1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
     707    1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
     708    1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
     709    1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
     710    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
     711    1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
     712    1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
     713    1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
     714    1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
     715    1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
     716    1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
     717    1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
     718    1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
     719    1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
     720    1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
     721    1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
     722    1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
     723    1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
     724    2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
     725    2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
     726    2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
     727    2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
     728    2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
     729    2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
     730    2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
     731    2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
     732    2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
     733    2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
     734    2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
     735    2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
     736    2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
     737    2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
     738    2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
     739    2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
     740    2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
     741    2714,  2715
     742};
     743
     744/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
     745static const yytype_int16 yyrhs[] =
     746{
     747     302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     748      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     749      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
     750      -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
     751     109,   170,   110,    -1,   109,   174,   110,    -1,   143,    -1,
     752     144,   111,   134,   165,   135,   112,    -1,   144,   109,   145,
     753     110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
     754     147,   135,   112,    -1,   144,    85,   139,    -1,   144,    85,
     755     111,   134,   147,   135,   112,    -1,   144,    86,    -1,   144,
     756      87,    -1,   109,   275,   110,   114,   279,   372,   115,    -1,
     757     144,   114,   145,   115,    -1,   146,    -1,   145,   116,   146,
     758      -1,    -1,   165,    -1,   148,    -1,   147,   116,   148,    -1,
     759     139,    -1,   139,   113,   148,    -1,   139,   113,   111,   134,
     760     147,   135,   112,    -1,   139,    85,   148,    -1,   139,    85,
     761     111,   134,   147,   135,   112,    -1,   144,    -1,   136,    -1,
     762     141,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
     763      -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
     764      37,   109,   275,   110,    -1,    66,   149,    -1,    66,   109,
     765     275,   110,    -1,    38,   109,   275,   116,   139,   110,    -1,
     766      76,    -1,    76,   109,   146,   110,    -1,    76,   109,   276,
     767     110,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
     768     121,    -1,   122,    -1,   149,    -1,   109,   275,   110,   152,
     769      -1,   109,   275,   110,   168,    -1,   152,    -1,   153,   117,
     770     152,    -1,   153,   123,   152,    -1,   153,   124,   152,    -1,
     771     153,    -1,   154,   119,   153,    -1,   154,   120,   153,    -1,
     772     154,    -1,   155,    88,   154,    -1,   155,    89,   154,    -1,
     773     155,    -1,   156,   125,   155,    -1,   156,   126,   155,    -1,
     774     156,    90,   155,    -1,   156,    91,   155,    -1,   156,    -1,
     775     157,    92,   156,    -1,   157,    93,   156,    -1,   157,    -1,
     776     158,   118,   157,    -1,   158,    -1,   159,   127,   158,    -1,
     777     159,    -1,   160,   128,   159,    -1,   160,    -1,   161,    94,
     778     160,    -1,   161,    -1,   162,    95,   161,    -1,   162,    -1,
     779     162,   129,   170,   130,   163,    -1,   162,   129,   130,   163,
     780      -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
     781      -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
     782      -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
     783      -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
     784      -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
     785     165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
     786      -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
     787      -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
     788      -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
     789     179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
     790     127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
     791     172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
     792     135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
     793      -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
     794      -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
     795     110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
     796      -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
     797     110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
     798     110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
     799     187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
     800      -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
     801      -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
     802     172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
     803     177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
     804     189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
     805      -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
     806     109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
     807     110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
     808     171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
     809     171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
     810      -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
     811      -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
     812     166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
     813     165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
     814      -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
     815      96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
     816      -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
     817      96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
     818     110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
     819     135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
     820     135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
     821     198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
     822      -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
     823     366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
     824     200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
     825     109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
     826     200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
     827     132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
     828     130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
     829      -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
     830     109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
     831     110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
     832      -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
     833      -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
     834      -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
     835     132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
     836     116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
     837      -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
     838     135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
     839     232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
     840      -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
     841     370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
     842     218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
     843     272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
     844      -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
     845     272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
     846     135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
     847     135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
     848     135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
     849     135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
     850     226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
     851     139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
     852     165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
     853     222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
     854     311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
     855     236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
     856     241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
     857      -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
     858      12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
     859     109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
     860     232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
     861      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
     862      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
     863      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     864      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
     865      -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
     866     234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
     867     239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
     868      -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
     869     109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
     870     109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
     871     234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
     872      -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
     873     234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
     874      -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
     875     248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
     876     114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
     877     115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
     878      -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
     879     132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
     880      -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
     881      -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
     882     254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
     883      -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
     884     114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
     885     274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
     886     258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
     887     261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
     888     263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
     889     116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
     890     267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
     891     116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
     892     263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
     893      -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
     894      -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
     895     134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
     896     272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
     897     270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
     898      -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
     899      -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
     900     137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
     901      75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
     902     226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
     903      -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
     904      -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
     905      -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
     906     280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
     907      -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
     908     135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
     909     134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
     910     147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
     911     234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
     912      -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
     913     373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
     914     288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
     915      34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
     916     110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
     917     134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
     918     110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
     919     292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
     920      -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
     921     131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
     922     110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
     923     115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
     924     114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
     925      -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
     926      -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
     927     309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
     928      -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
     929     213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
     930     114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
     931     174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
     932     225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
     933     174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
     934     208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
     935     327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
     936     174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
     937     164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
     938     313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
     939     315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
     940      -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
     941     234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
     942      -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
     943     319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
     944     109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
     945     349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
     946      -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
     947     109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
     948     312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
     949     325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
     950     110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
     951     325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
     952     110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
     953      -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
     954     110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
     955     327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
     956     109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
     957     109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
     958     312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
     959      -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
     960     110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
     961     109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
     962     109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
     963     134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
     964     312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
     965     150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
     966      -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
     967     338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
     968     134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
     969     264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
     970      -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
     971      -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
     972     109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
     973     355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
     974     342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
     975     347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
     976      -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
     977     110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
     978     347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
     979     264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
     980     135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
     981     111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
     982     112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
     983     134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
     984     112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
     985     150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
     986     351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
     987     110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
     988     110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
     989     110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
     990      -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
     991      -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
     992     228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
     993      -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
     994     134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
     995     312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
     996     150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
     997      -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
     998     110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
     999     109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
     1000     362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
     1001      -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
     1002      -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
     1003     361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
     1004     112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
     1005      -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
     1006     350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
     1007     111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
     1008     165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
     1009      -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
     1010      -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
     1011     150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
     1012     228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
     1013      -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
     1014     350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
     1015     368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
     1016      -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
     1017     260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
     1018      -1,    -1,   116,    -1,    -1,   131,   165,    -1
     1019};
     1020
     1021/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    6861022static const yytype_uint16 yyrline[] =
    6871023{
    688        0,   300,   300,   304,   311,   312,   313,   317,   318,   319,
    689      323,   324,   328,   329,   333,   334,   338,   342,   343,   354,
    690      356,   358,   360,   365,   366,   372,   376,   378,   379,   381,
    691      382,   384,   386,   388,   397,   398,   404,   405,   409,   410,
    692      414,   418,   420,   422,   424,   429,   432,   434,   436,   441,
    693      454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
    694      474,   481,   482,   488,   489,   490,   491,   495,   496,   498,
    695      503,   504,   506,   508,   513,   514,   516,   521,   522,   524,
    696      529,   530,   532,   534,   536,   541,   542,   544,   549,   550,
    697      555,   556,   561,   562,   567,   568,   573,   574,   579,   580,
    698      583,   585,   590,   595,   596,   598,   604,   605,   609,   610,
    699      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
    700      626,   628,   630,   632,   637,   638,   643,   644,   650,   651,
    701      657,   658,   659,   660,   661,   662,   663,   664,   665,   675,
    702      682,   684,   694,   695,   700,   702,   708,   710,   714,   715,
    703      720,   725,   728,   730,   732,   742,   744,   755,   756,   758,
    704      762,   764,   768,   769,   774,   775,   779,   784,   785,   789,
    705      791,   797,   798,   802,   804,   806,   808,   814,   815,   819,
    706      821,   826,   828,   830,   835,   837,   842,   844,   848,   851,
    707      855,   858,   862,   864,   866,   868,   873,   875,   877,   882,
    708      884,   886,   888,   890,   895,   897,   899,   901,   906,   918,
    709      919,   924,   926,   931,   935,   937,   939,   941,   943,   949,
    710      950,   956,   957,   961,   962,   967,   969,   975,   976,   978,
    711      983,   988,   998,  1000,  1004,  1005,  1010,  1012,  1016,  1017,
    712     1021,  1023,  1027,  1028,  1032,  1033,  1037,  1038,  1053,  1054,
    713     1055,  1056,  1057,  1061,  1066,  1073,  1083,  1088,  1093,  1101,
    714     1106,  1111,  1116,  1121,  1129,  1151,  1156,  1163,  1165,  1172,
    715     1177,  1182,  1193,  1198,  1203,  1208,  1213,  1222,  1227,  1235,
    716     1236,  1237,  1238,  1244,  1249,  1257,  1258,  1259,  1260,  1264,
    717     1265,  1266,  1267,  1272,  1273,  1282,  1283,  1288,  1289,  1294,
    718     1296,  1298,  1300,  1302,  1305,  1304,  1316,  1317,  1319,  1329,
    719     1330,  1335,  1337,  1339,  1341,  1343,  1346,  1348,  1351,  1356,
    720     1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,  1374,  1376,
    721     1378,  1380,  1386,  1387,  1389,  1391,  1393,  1398,  1399,  1405,
    722     1406,  1408,  1410,  1415,  1417,  1419,  1421,  1426,  1427,  1429,
    723     1431,  1436,  1437,  1439,  1444,  1445,  1447,  1449,  1454,  1456,
    724     1458,  1463,  1464,  1468,  1470,  1476,  1475,  1479,  1481,  1486,
    725     1488,  1494,  1495,  1500,  1501,  1503,  1504,  1513,  1514,  1516,
    726     1518,  1523,  1525,  1531,  1532,  1534,  1537,  1540,  1545,  1546,
    727     1551,  1556,  1560,  1562,  1568,  1567,  1574,  1576,  1582,  1583,
    728     1591,  1592,  1596,  1597,  1598,  1600,  1602,  1609,  1610,  1612,
    729     1614,  1619,  1620,  1626,  1627,  1631,  1632,  1637,  1638,  1639,
    730     1641,  1649,  1650,  1652,  1655,  1657,  1661,  1662,  1663,  1665,
    731     1667,  1671,  1676,  1684,  1685,  1694,  1696,  1701,  1702,  1703,
    732     1707,  1708,  1709,  1713,  1714,  1715,  1719,  1720,  1721,  1726,
    733     1727,  1728,  1729,  1735,  1736,  1738,  1743,  1744,  1749,  1750,
    734     1751,  1752,  1753,  1768,  1769,  1774,  1775,  1781,  1783,  1786,
    735     1788,  1790,  1813,  1814,  1816,  1818,  1823,  1824,  1826,  1831,
    736     1836,  1837,  1843,  1842,  1846,  1850,  1852,  1854,  1860,  1861,
    737     1866,  1871,  1873,  1878,  1880,  1881,  1883,  1888,  1890,  1892,
    738     1897,  1899,  1904,  1909,  1917,  1923,  1922,  1936,  1937,  1942,
    739     1943,  1947,  1952,  1957,  1965,  1970,  1981,  1982,  1987,  1988,
    740     1994,  1995,  1999,  2000,  2001,  2004,  2003,  2014,  2023,  2029,
    741     2035,  2044,  2050,  2056,  2062,  2068,  2076,  2082,  2090,  2096,
    742     2105,  2106,  2107,  2111,  2115,  2117,  2122,  2123,  2127,  2128,
    743     2133,  2139,  2140,  2143,  2145,  2146,  2150,  2151,  2152,  2153,
    744     2187,  2189,  2190,  2192,  2197,  2202,  2207,  2209,  2211,  2216,
    745     2218,  2220,  2222,  2227,  2229,  2238,  2240,  2241,  2246,  2248,
    746     2250,  2255,  2257,  2259,  2264,  2266,  2268,  2277,  2278,  2279,
    747     2283,  2285,  2287,  2292,  2294,  2296,  2301,  2303,  2305,  2320,
    748     2322,  2323,  2325,  2330,  2331,  2336,  2338,  2340,  2345,  2347,
    749     2349,  2351,  2356,  2358,  2360,  2370,  2372,  2373,  2375,  2380,
    750     2382,  2384,  2389,  2391,  2393,  2395,  2400,  2402,  2404,  2435,
    751     2437,  2438,  2440,  2445,  2450,  2458,  2460,  2462,  2467,  2469,
    752     2474,  2476,  2490,  2491,  2493,  2498,  2500,  2502,  2504,  2506,
    753     2511,  2512,  2514,  2516,  2521,  2523,  2525,  2531,  2533,  2535,
    754     2539,  2541,  2543,  2545,  2559,  2560,  2562,  2567,  2569,  2571,
    755     2573,  2575,  2580,  2581,  2583,  2585,  2590,  2592,  2594,  2600,
    756     2601,  2603,  2612,  2615,  2617,  2620,  2622,  2624,  2637,  2638,
    757     2640,  2645,  2647,  2649,  2651,  2653,  2658,  2659,  2661,  2663,
    758     2668,  2670,  2678,  2679,  2680,  2685,  2686,  2690,  2692,  2694,
    759     2696,  2698,  2700,  2707,  2709,  2711,  2713,  2715,  2717,  2719,
    760     2721,  2723,  2725,  2730,  2732,  2734,  2739,  2765,  2766,  2768,
    761     2772,  2773,  2777,  2779,  2781,  2783,  2785,  2787,  2794,  2796,
    762     2798,  2800,  2802,  2804,  2809,  2814,  2816,  2818,  2836,  2838,
    763     2843,  2844
     1024       0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
     1025     324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
     1026     357,   359,   361,   366,   367,   373,   377,   379,   380,   382,
     1027     383,   385,   387,   389,   398,   399,   405,   406,   410,   411,
     1028     415,   419,   421,   423,   425,   430,   433,   435,   437,   442,
     1029     455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
     1030     475,   482,   483,   489,   490,   491,   492,   496,   497,   499,
     1031     504,   505,   507,   509,   514,   515,   517,   522,   523,   525,
     1032     530,   531,   533,   535,   537,   542,   543,   545,   550,   551,
     1033     556,   557,   562,   563,   568,   569,   574,   575,   580,   581,
     1034     584,   586,   591,   596,   597,   599,   605,   606,   610,   611,
     1035     612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
     1036     627,   629,   631,   633,   638,   639,   644,   645,   651,   652,
     1037     658,   659,   660,   661,   662,   663,   664,   665,   666,   676,
     1038     683,   685,   695,   696,   701,   703,   709,   711,   715,   716,
     1039     721,   726,   729,   731,   733,   743,   745,   756,   757,   759,
     1040     763,   765,   769,   770,   775,   776,   780,   785,   786,   790,
     1041     792,   798,   799,   803,   805,   807,   809,   815,   816,   820,
     1042     822,   827,   829,   831,   836,   838,   843,   845,   849,   852,
     1043     856,   859,   863,   865,   867,   869,   874,   876,   878,   883,
     1044     885,   887,   889,   891,   896,   898,   900,   902,   907,   919,
     1045     920,   925,   927,   932,   936,   938,   940,   942,   944,   950,
     1046     951,   957,   958,   962,   963,   968,   970,   976,   977,   979,
     1047     984,   989,   999,  1001,  1005,  1006,  1011,  1013,  1017,  1018,
     1048    1022,  1024,  1028,  1029,  1033,  1034,  1038,  1039,  1054,  1055,
     1049    1056,  1057,  1058,  1062,  1067,  1074,  1084,  1089,  1094,  1102,
     1050    1107,  1112,  1117,  1122,  1130,  1152,  1157,  1164,  1166,  1173,
     1051    1178,  1183,  1194,  1199,  1204,  1209,  1214,  1223,  1228,  1236,
     1052    1237,  1238,  1239,  1245,  1250,  1258,  1259,  1260,  1261,  1265,
     1053    1266,  1267,  1268,  1273,  1274,  1283,  1284,  1289,  1290,  1295,
     1054    1297,  1299,  1301,  1303,  1306,  1305,  1317,  1318,  1320,  1330,
     1055    1331,  1336,  1338,  1340,  1342,  1344,  1347,  1349,  1352,  1357,
     1056    1359,  1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,
     1057    1379,  1381,  1387,  1388,  1390,  1392,  1394,  1399,  1400,  1406,
     1058    1407,  1409,  1411,  1416,  1418,  1420,  1422,  1427,  1428,  1430,
     1059    1432,  1437,  1438,  1440,  1445,  1446,  1448,  1450,  1455,  1457,
     1060    1459,  1464,  1465,  1469,  1471,  1477,  1476,  1480,  1482,  1487,
     1061    1489,  1495,  1496,  1501,  1502,  1504,  1505,  1514,  1515,  1517,
     1062    1519,  1524,  1526,  1532,  1533,  1535,  1538,  1541,  1546,  1547,
     1063    1552,  1557,  1561,  1563,  1569,  1568,  1575,  1577,  1583,  1584,
     1064    1592,  1593,  1597,  1598,  1599,  1601,  1603,  1610,  1611,  1613,
     1065    1615,  1620,  1621,  1627,  1628,  1632,  1633,  1638,  1639,  1640,
     1066    1642,  1650,  1651,  1653,  1656,  1658,  1662,  1663,  1664,  1666,
     1067    1668,  1672,  1677,  1685,  1686,  1695,  1697,  1702,  1703,  1704,
     1068    1708,  1709,  1710,  1714,  1715,  1716,  1720,  1721,  1722,  1727,
     1069    1728,  1729,  1730,  1736,  1737,  1739,  1744,  1745,  1750,  1751,
     1070    1752,  1753,  1754,  1769,  1770,  1775,  1776,  1782,  1784,  1787,
     1071    1789,  1791,  1814,  1815,  1817,  1819,  1824,  1825,  1827,  1832,
     1072    1837,  1838,  1844,  1843,  1847,  1851,  1853,  1855,  1861,  1862,
     1073    1867,  1872,  1874,  1879,  1881,  1882,  1884,  1889,  1891,  1893,
     1074    1898,  1900,  1905,  1910,  1918,  1924,  1923,  1937,  1938,  1943,
     1075    1944,  1948,  1953,  1958,  1966,  1971,  1982,  1983,  1988,  1989,
     1076    1995,  1996,  2000,  2001,  2002,  2005,  2004,  2015,  2024,  2030,
     1077    2036,  2045,  2051,  2057,  2063,  2069,  2077,  2083,  2091,  2097,
     1078    2106,  2107,  2108,  2112,  2116,  2118,  2123,  2124,  2128,  2129,
     1079    2134,  2140,  2141,  2144,  2146,  2147,  2151,  2152,  2153,  2154,
     1080    2188,  2190,  2191,  2193,  2198,  2203,  2208,  2210,  2212,  2217,
     1081    2219,  2221,  2223,  2228,  2230,  2239,  2241,  2242,  2247,  2249,
     1082    2251,  2256,  2258,  2260,  2265,  2267,  2269,  2278,  2279,  2280,
     1083    2284,  2286,  2288,  2293,  2295,  2297,  2302,  2304,  2306,  2321,
     1084    2323,  2324,  2326,  2331,  2332,  2337,  2339,  2341,  2346,  2348,
     1085    2350,  2352,  2357,  2359,  2361,  2371,  2373,  2374,  2376,  2381,
     1086    2383,  2385,  2390,  2392,  2394,  2396,  2401,  2403,  2405,  2436,
     1087    2438,  2439,  2441,  2446,  2451,  2459,  2461,  2463,  2468,  2470,
     1088    2475,  2477,  2491,  2492,  2494,  2499,  2501,  2503,  2505,  2507,
     1089    2512,  2513,  2515,  2517,  2522,  2524,  2526,  2532,  2534,  2536,
     1090    2540,  2542,  2544,  2546,  2560,  2561,  2563,  2568,  2570,  2572,
     1091    2574,  2576,  2581,  2582,  2584,  2586,  2591,  2593,  2595,  2601,
     1092    2602,  2604,  2613,  2616,  2618,  2621,  2623,  2625,  2638,  2639,
     1093    2641,  2646,  2648,  2650,  2652,  2654,  2659,  2660,  2662,  2664,
     1094    2669,  2671,  2679,  2680,  2681,  2686,  2687,  2691,  2693,  2695,
     1095    2697,  2699,  2701,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
     1096    2722,  2724,  2726,  2731,  2733,  2735,  2740,  2766,  2767,  2769,
     1097    2773,  2774,  2778,  2780,  2782,  2784,  2786,  2788,  2795,  2797,
     1098    2799,  2801,  2803,  2805,  2810,  2815,  2817,  2819,  2837,  2839,
     1099    2844,  2845
    7641100};
    7651101#endif
    7661102
    767 #if YYDEBUG || YYERROR_VERBOSE || 0
     1103#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    7681104/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    7691105   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    8741210  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    8751211  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    876   "comma_opt", "assignment_opt", YY_NULLPTR
     1212  "comma_opt", "assignment_opt", 0
    8771213};
    8781214#endif
    8791215
    8801216# ifdef YYPRINT
    881 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
    882    (internal) symbol number NUM (which must be that of a token).  */
     1217/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
     1218   token YYLEX-NUM.  */
    8831219static const yytype_uint16 yytoknum[] =
    8841220{
     
    9001236# endif
    9011237
     1238/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     1239static const yytype_uint16 yyr1[] =
     1240{
     1241       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1242     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
     1243     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
     1244     144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
     1245     148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
     1246     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     1247     149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
     1248     153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
     1249     156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
     1250     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
     1251     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
     1252     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
     1253     168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
     1254     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
     1255     174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
     1256     178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
     1257     181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
     1258     186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
     1259     190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
     1260     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
     1261     195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
     1262     198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
     1263     200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
     1264     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     1265     210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
     1266     214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
     1267     217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
     1268     220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
     1269     223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
     1270     226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
     1271     230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
     1272     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
     1273     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     1274     235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
     1275     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     1276     240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
     1277     243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
     1278     247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
     1279     250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
     1280     254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
     1281     260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
     1282     262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
     1283     266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
     1284     268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
     1285     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
     1286     276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
     1287     279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
     1288     282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
     1289     286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
     1290     291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
     1291     294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
     1292     299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
     1293     304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
     1294     307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
     1295     309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
     1296     314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
     1297     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1298     321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
     1299     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
     1300     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
     1301     331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
     1302     334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
     1303     337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
     1304     340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
     1305     344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
     1306     347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
     1307     350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
     1308     352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
     1309     355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
     1310     357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
     1311     360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
     1312     363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
     1313     364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
     1314     367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
     1315     369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
     1316     373,   373
     1317};
     1318
     1319/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
     1320static const yytype_uint8 yyr2[] =
     1321{
     1322       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     1323       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1324       1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
     1325       2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
     1326       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     1327       2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
     1328       4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
     1329       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     1330       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     1331       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     1332       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
     1333       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1334       2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
     1335       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     1336       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     1337       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     1338       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     1339       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     1340       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     1341       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     1342       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     1343       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     1344       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     1345       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     1346       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     1347       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     1348       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     1349       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     1350       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     1351       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     1352       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     1353       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1354       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1355       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     1356       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     1357       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     1358       2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
     1359       2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
     1360       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1361       2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
     1362       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     1363       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     1364       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     1365       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     1366       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1367       1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
     1368       2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
     1369       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1370       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1371       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1372       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1373       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1374       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1375       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1376       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1377       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     1378       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1379       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1380       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1381       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     1382       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1383       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1384       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1385       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1386       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1387       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1388       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1389       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1390       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1391       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1392       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1393       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1394       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1395       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1396       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1397       0,     2
     1398};
     1399
     1400/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
     1401   Performed when YYTABLE doesn't specify something else to do.  Zero
     1402   means the default is an error.  */
     1403static const yytype_uint16 yydefact[] =
     1404{
     1405     293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
     1406     300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
     1407     325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
     1408       0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
     1409       8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
     1410     524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
     1411       3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
     1412     306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
     1413     351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
     1414       0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
     1415     546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
     1416      12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
     1417     291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
     1418     444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
     1419     445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
     1420       0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
     1421     294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
     1422     253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
     1423       0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
     1424     561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
     1425     603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
     1426     260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
     1427     261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
     1428     334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
     1429     371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
     1430       1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
     1431     743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
     1432       2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
     1433       0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
     1434       6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
     1435      46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
     1436      74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
     1437     103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
     1438     580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
     1439       0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
     1440     294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
     1441     411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
     1442     430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
     1443     458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
     1444       2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
     1445       0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
     1446     453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
     1447     599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
     1448       0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
     1449     254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
     1450     282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
     1451     499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
     1452       2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
     1453       0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
     1454     750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
     1455     556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
     1456      48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
     1457       0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
     1458      31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
     1459     115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
     1460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1461       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1462     105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
     1463       2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
     1464     120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
     1465       0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
     1466     546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
     1467     679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
     1468     750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
     1469       0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
     1470     465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
     1471     574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
     1472       0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
     1473     258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
     1474       0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
     1475       3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
     1476       3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
     1477       0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
     1478     501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
     1479       0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
     1480       0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
     1481       2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
     1482      72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
     1483      86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
     1484     293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
     1485     293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
     1486     293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
     1487       0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
     1488     615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
     1489     632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
     1490     744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
     1491       3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
     1492     460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
     1493     273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
     1494     658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
     1495     538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
     1496     384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
     1497     293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
     1498       0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
     1499     488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
     1500       0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
     1501      59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
     1502     689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
     1503       0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
     1504     653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
     1505     293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
     1506     671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
     1507     424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
     1508     102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
     1509     244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
     1510     128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
     1511     130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
     1512     144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
     1513     539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
     1514     379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
     1515     668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
     1516     507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
     1517     221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
     1518       0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
     1519     101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
     1520       0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
     1521     673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
     1522     409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
     1523       0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
     1524     293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
     1525       0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
     1526     150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
     1527     612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
     1528     293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
     1529     224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
     1530       0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
     1531     724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
     1532     684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
     1533     469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
     1534     191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
     1535     199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
     1536       0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
     1537     510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
     1538     123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
     1539       3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
     1540       2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
     1541     128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
     1542       0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
     1543       2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
     1544       0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
     1545       0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
     1546       2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
     1547     293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
     1548       3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
     1549     159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
     1550       0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
     1551     229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
     1552       0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
     1553     200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
     1554       0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
     1555     293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
     1556     212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
     1557     169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
     1558       0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
     1559     178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
     1560     206,     3,     3,   205,   207
     1561};
     1562
     1563/* YYDEFGOTO[NTERM-NUM].  */
     1564static const yytype_int16 yydefgoto[] =
     1565{
     1566      -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
     1567     304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
     1568     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     1569     320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
     1570    1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
     1571    1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
     1572    1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
     1573     956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
     1574      51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
     1575      61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
     1576     352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
     1577     120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
     1578    1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
     1579     859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
     1580     135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
     1581      85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
     1582      88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
     1583      91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
     1584     125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
     1585     269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
     1586     197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
     1587     612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
     1588     617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
     1589     366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
     1590     570
     1591};
     1592
     1593/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     1594   STATE-NUM.  */
    9021595#define YYPACT_NINF -1323
    903 
    904 #define yypact_value_is_default(Yystate) \
    905   (!!((Yystate) == (-1323)))
    906 
    907 #define YYTABLE_NINF -522
    908 
    909 #define yytable_value_is_error(Yytable_value) \
    910   0
    911 
    912   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    913      STATE-NUM.  */
    9141596static const yytype_int16 yypact[] =
    9151597{
     
    10721754};
    10731755
    1074   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
    1075      Performed when YYTABLE does not specify something else to do.  Zero
    1076      means the default is an error.  */
    1077 static const yytype_uint16 yydefact[] =
    1078 {
    1079      293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
    1080      300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
    1081      325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
    1082        0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
    1083        8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
    1084      524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
    1085        3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
    1086      306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
    1087      351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
    1088        0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
    1089      546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
    1090       12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
    1091      291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
    1092      444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
    1093      445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
    1094        0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
    1095      294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
    1096      253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
    1097        0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
    1098      561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
    1099      603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
    1100      260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
    1101      261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
    1102      334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
    1103      371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
    1104        1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
    1105      743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
    1106        2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
    1107        0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
    1108        6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
    1109       46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
    1110       74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
    1111      103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
    1112      580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
    1113        0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
    1114      294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
    1115      411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
    1116      430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
    1117      458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
    1118        2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
    1119        0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
    1120      453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
    1121      599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
    1122        0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
    1123      254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
    1124      282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
    1125      499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
    1126        2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
    1127        0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
    1128      750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
    1129      556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
    1130       48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
    1131        0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
    1132       31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
    1133      115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
    1134        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1135        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1136      105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
    1137        2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
    1138      120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
    1139        0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
    1140      546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
    1141      679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
    1142      750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
    1143        0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
    1144      465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
    1145      574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
    1146        0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
    1147      258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
    1148        0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
    1149        3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
    1150        3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
    1151        0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
    1152      501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
    1153        0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
    1154        0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
    1155        2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
    1156       72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
    1157       86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
    1158      293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
    1159      293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
    1160      293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
    1161        0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
    1162      615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
    1163      632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
    1164      744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
    1165        3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
    1166      460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
    1167      273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
    1168      658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
    1169      538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
    1170      384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
    1171      293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
    1172        0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
    1173      488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
    1174        0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
    1175       59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
    1176      689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
    1177        0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
    1178      653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
    1179      293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
    1180      671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
    1181      424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
    1182      102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
    1183      244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
    1184      128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
    1185      130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
    1186      144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
    1187      539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
    1188      379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
    1189      668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
    1190      507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
    1191      221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
    1192        0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
    1193      101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
    1194        0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
    1195      673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
    1196      409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
    1197        0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
    1198      293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
    1199        0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
    1200      150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
    1201      612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
    1202      293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
    1203      224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
    1204        0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
    1205      724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
    1206      684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
    1207      469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
    1208      191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
    1209      199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
    1210        0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
    1211      510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
    1212      123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
    1213        3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
    1214        2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
    1215      128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
    1216        0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
    1217        2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
    1218        0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
    1219        0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
    1220        2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
    1221      293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
    1222        3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
    1223      159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
    1224        0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
    1225      229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
    1226        0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
    1227      200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
    1228        0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
    1229      293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
    1230      212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
    1231      169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
    1232        0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
    1233      178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
    1234      206,     3,     3,   205,   207
    1235 };
    1236 
    1237   /* YYPGOTO[NTERM-NUM].  */
     1756/* YYPGOTO[NTERM-NUM].  */
    12381757static const yytype_int16 yypgoto[] =
    12391758{
     
    12651784};
    12661785
    1267   /* YYDEFGOTO[NTERM-NUM].  */
    1268 static const yytype_int16 yydefgoto[] =
    1269 {
    1270       -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
    1271      304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
    1272      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
    1273      320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
    1274     1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
    1275     1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
    1276     1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
    1277      956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
    1278       51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
    1279       61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
    1280      352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
    1281      120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
    1282     1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
    1283      859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
    1284      135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
    1285       85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
    1286       88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
    1287       91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
    1288      125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
    1289      269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
    1290      197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
    1291      612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
    1292      617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
    1293      366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
    1294      570
    1295 };
    1296 
    1297   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
    1298      positive, shift that token.  If negative, reduce the rule whose
    1299      number is the opposite.  If YYTABLE_NINF, syntax error.  */
     1786/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
     1787   positive, shift that token.  If negative, reduce the rule which
     1788   number is the opposite.  If YYTABLE_NINF, syntax error.  */
     1789#define YYTABLE_NINF -522
    13001790static const yytype_int16 yytable[] =
    13011791{
     
    23892879};
    23902880
     2881#define yypact_value_is_default(yystate) \
     2882  ((yystate) == (-1323))
     2883
     2884#define yytable_value_is_error(yytable_value) \
     2885  YYID (0)
     2886
    23912887static const yytype_int16 yycheck[] =
    23922888{
     
    34803976};
    34813977
    3482   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3483      symbol of state STATE-NUM.  */
     3978/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3979   symbol of state STATE-NUM.  */
    34843980static const yytype_uint16 yystos[] =
    34853981{
     
    36424138};
    36434139
    3644   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    3645 static const yytype_uint16 yyr1[] =
    3646 {
    3647        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    3648      138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
    3649      143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
    3650      144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
    3651      148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
    3652      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
    3653      149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
    3654      153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
    3655      156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
    3656      159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
    3657      163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
    3658      167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
    3659      168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
    3660      172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
    3661      174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
    3662      178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
    3663      181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
    3664      186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
    3665      190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
    3666      193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
    3667      195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
    3668      198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
    3669      200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
    3670      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    3671      210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
    3672      214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
    3673      217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
    3674      220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
    3675      223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
    3676      226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
    3677      230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
    3678      233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
    3679      235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
    3680      235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
    3681      238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
    3682      240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
    3683      243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
    3684      247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
    3685      250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
    3686      254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
    3687      260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
    3688      262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
    3689      266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
    3690      268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
    3691      273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    3692      276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
    3693      279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
    3694      282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
    3695      286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
    3696      291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
    3697      294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
    3698      299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
    3699      304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
    3700      307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
    3701      309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
    3702      314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
    3703      318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
    3704      321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
    3705      324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    3706      328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    3707      331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
    3708      334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
    3709      337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
    3710      340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
    3711      344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
    3712      347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
    3713      350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
    3714      352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
    3715      355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
    3716      357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
    3717      360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
    3718      363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
    3719      364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
    3720      367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
    3721      369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
    3722      373,   373
    3723 };
    3724 
    3725   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
    3726 static const yytype_uint8 yyr2[] =
    3727 {
    3728        0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    3729        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    3730        1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
    3731        2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
    3732        1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
    3733        2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
    3734        4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
    3735        1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    3736        1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    3737        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    3738        4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
    3739        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3740        2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
    3741        1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
    3742        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    3743        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    3744        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    3745        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    3746        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    3747        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    3748        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    3749        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    3750        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    3751        1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
    3752        0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
    3753        3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
    3754        2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
    3755        2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
    3756        3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
    3757        1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
    3758        1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
    3759        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3760        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3761        1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
    3762        2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
    3763        3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
    3764        2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
    3765        2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
    3766        2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
    3767        2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
    3768        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    3769        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    3770        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    3771        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    3772        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    3773        1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
    3774        2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
    3775        7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
    3776        2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
    3777        5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
    3778        2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
    3779        3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
    3780        0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
    3781        4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
    3782        1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
    3783        6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
    3784        2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    3785        4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
    3786        3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
    3787        4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    3788        1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    3789        4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
    3790        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    3791        1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
    3792        6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
    3793        1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
    3794        5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
    3795        3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
    3796        2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
    3797        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    3798        8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
    3799        3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
    3800        4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
    3801        1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
    3802        2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
    3803        0,     2
    3804 };
    3805 
    3806 
    3807 #define yyerrok         (yyerrstatus = 0)
    3808 #define yyclearin       (yychar = YYEMPTY)
    3809 #define YYEMPTY         (-2)
    3810 #define YYEOF           0
    3811 
    3812 #define YYACCEPT        goto yyacceptlab
    3813 #define YYABORT         goto yyabortlab
    3814 #define YYERROR         goto yyerrorlab
    3815 
     4140#define yyerrok         (yyerrstatus = 0)
     4141#define yyclearin       (yychar = YYEMPTY)
     4142#define YYEMPTY         (-2)
     4143#define YYEOF           0
     4144
     4145#define YYACCEPT        goto yyacceptlab
     4146#define YYABORT         goto yyabortlab
     4147#define YYERROR         goto yyerrorlab
     4148
     4149
     4150/* Like YYERROR except do call yyerror.  This remains here temporarily
     4151   to ease the transition to the new meaning of YYERROR, for GCC.
     4152   Once GCC version 2 has supplanted version 1, this can go.  However,
     4153   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
     4154   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
     4155   discussed.  */
     4156
     4157#define YYFAIL          goto yyerrlab
     4158#if defined YYFAIL
     4159  /* This is here to suppress warnings from the GCC cpp's
     4160     -Wunused-macros.  Normally we don't worry about that warning, but
     4161     some users do, and we want to make it easy for users to remove
     4162     YYFAIL uses, which will produce warnings from Bison 2.5.  */
     4163#endif
    38164164
    38174165#define YYRECOVERING()  (!!yyerrstatus)
    38184166
    3819 #define YYBACKUP(Token, Value)                                  \
    3820 do                                                              \
    3821   if (yychar == YYEMPTY)                                        \
    3822     {                                                           \
    3823       yychar = (Token);                                         \
    3824       yylval = (Value);                                         \
    3825       YYPOPSTACK (yylen);                                       \
    3826       yystate = *yyssp;                                         \
    3827       goto yybackup;                                            \
    3828     }                                                           \
    3829   else                                                          \
    3830     {                                                           \
     4167#define YYBACKUP(Token, Value)                                  \
     4168do                                                              \
     4169  if (yychar == YYEMPTY && yylen == 1)                          \
     4170    {                                                           \
     4171      yychar = (Token);                                         \
     4172      yylval = (Value);                                         \
     4173      YYPOPSTACK (1);                                           \
     4174      goto yybackup;                                            \
     4175    }                                                           \
     4176  else                                                          \
     4177    {                                                           \
    38314178      yyerror (YY_("syntax error: cannot back up")); \
    3832       YYERROR;                                                  \
    3833     }                                                           \
    3834 while (0)
    3835 
    3836 /* Error token number */
    3837 #define YYTERROR        1
    3838 #define YYERRCODE       256
    3839 
    3840 
     4179      YYERROR;                                                  \
     4180    }                                                           \
     4181while (YYID (0))
     4182
     4183
     4184#define YYTERROR        1
     4185#define YYERRCODE       256
     4186
     4187
     4188/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
     4189   If N is 0, then set CURRENT to the empty location which ends
     4190   the previous symbol: RHS[0] (always defined).  */
     4191
     4192#define YYRHSLOC(Rhs, K) ((Rhs)[K])
     4193#ifndef YYLLOC_DEFAULT
     4194# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
     4195    do                                                                  \
     4196      if (YYID (N))                                                    \
     4197        {                                                               \
     4198          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
     4199          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
     4200          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
     4201          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
     4202        }                                                               \
     4203      else                                                              \
     4204        {                                                               \
     4205          (Current).first_line   = (Current).last_line   =              \
     4206            YYRHSLOC (Rhs, 0).last_line;                                \
     4207          (Current).first_column = (Current).last_column =              \
     4208            YYRHSLOC (Rhs, 0).last_column;                              \
     4209        }                                                               \
     4210    while (YYID (0))
     4211#endif
     4212
     4213
     4214/* This macro is provided for backward compatibility. */
     4215
     4216#ifndef YY_LOCATION_PRINT
     4217# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     4218#endif
     4219
     4220
     4221/* YYLEX -- calling `yylex' with the right arguments.  */
     4222
     4223#ifdef YYLEX_PARAM
     4224# define YYLEX yylex (YYLEX_PARAM)
     4225#else
     4226# define YYLEX yylex ()
     4227#endif
    38414228
    38424229/* Enable debugging if requested.  */
     
    38484235# endif
    38494236
    3850 # define YYDPRINTF(Args)                        \
    3851 do {                                            \
    3852   if (yydebug)                                  \
    3853     YYFPRINTF Args;                             \
    3854 } while (0)
    3855 
    3856 /* This macro is provided for backward compatibility. */
    3857 #ifndef YY_LOCATION_PRINT
    3858 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    3859 #endif
    3860 
    3861 
    3862 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    3863 do {                                                                      \
    3864   if (yydebug)                                                            \
    3865     {                                                                     \
    3866       YYFPRINTF (stderr, "%s ", Title);                                   \
    3867       yy_symbol_print (stderr,                                            \
    3868                   Type, Value); \
    3869       YYFPRINTF (stderr, "\n");                                           \
    3870     }                                                                     \
    3871 } while (0)
    3872 
    3873 
    3874 /*----------------------------------------.
    3875 | Print this symbol's value on YYOUTPUT.  |
    3876 `----------------------------------------*/
    3877 
     4237# define YYDPRINTF(Args)                        \
     4238do {                                            \
     4239  if (yydebug)                                  \
     4240    YYFPRINTF Args;                             \
     4241} while (YYID (0))
     4242
     4243# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     4244do {                                                                      \
     4245  if (yydebug)                                                            \
     4246    {                                                                     \
     4247      YYFPRINTF (stderr, "%s ", Title);                                   \
     4248      yy_symbol_print (stderr,                                            \
     4249                  Type, Value); \
     4250      YYFPRINTF (stderr, "\n");                                           \
     4251    }                                                                     \
     4252} while (YYID (0))
     4253
     4254
     4255/*--------------------------------.
     4256| Print this symbol on YYOUTPUT.  |
     4257`--------------------------------*/
     4258
     4259/*ARGSUSED*/
     4260#if (defined __STDC__ || defined __C99__FUNC__ \
     4261     || defined __cplusplus || defined _MSC_VER)
    38784262static void
    38794263yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     4264#else
     4265static void
     4266yy_symbol_value_print (yyoutput, yytype, yyvaluep)
     4267    FILE *yyoutput;
     4268    int yytype;
     4269    YYSTYPE const * const yyvaluep;
     4270#endif
    38804271{
    3881   FILE *yyo = yyoutput;
    3882   YYUSE (yyo);
    38834272  if (!yyvaluep)
    38844273    return;
     
    38864275  if (yytype < YYNTOKENS)
    38874276    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
     4277# else
     4278  YYUSE (yyoutput);
    38884279# endif
    3889   YYUSE (yytype);
     4280  switch (yytype)
     4281    {
     4282      default:
     4283        break;
     4284    }
    38904285}
    38914286
     
    38954290`--------------------------------*/
    38964291
     4292#if (defined __STDC__ || defined __C99__FUNC__ \
     4293     || defined __cplusplus || defined _MSC_VER)
    38974294static void
    38984295yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     4296#else
     4297static void
     4298yy_symbol_print (yyoutput, yytype, yyvaluep)
     4299    FILE *yyoutput;
     4300    int yytype;
     4301    YYSTYPE const * const yyvaluep;
     4302#endif
    38994303{
    3900   YYFPRINTF (yyoutput, "%s %s (",
    3901              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
     4304  if (yytype < YYNTOKENS)
     4305    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
     4306  else
     4307    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    39024308
    39034309  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    39104316`------------------------------------------------------------------*/
    39114317
     4318#if (defined __STDC__ || defined __C99__FUNC__ \
     4319     || defined __cplusplus || defined _MSC_VER)
    39124320static void
    39134321yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
     4322#else
     4323static void
     4324yy_stack_print (yybottom, yytop)
     4325    yytype_int16 *yybottom;
     4326    yytype_int16 *yytop;
     4327#endif
    39144328{
    39154329  YYFPRINTF (stderr, "Stack now");
     
    39224336}
    39234337
    3924 # define YY_STACK_PRINT(Bottom, Top)                            \
    3925 do {                                                            \
    3926   if (yydebug)                                                  \
    3927     yy_stack_print ((Bottom), (Top));                           \
    3928 } while (0)
     4338# define YY_STACK_PRINT(Bottom, Top)                            \
     4339do {                                                            \
     4340  if (yydebug)                                                  \
     4341    yy_stack_print ((Bottom), (Top));                           \
     4342} while (YYID (0))
    39294343
    39304344
     
    39334347`------------------------------------------------*/
    39344348
     4349#if (defined __STDC__ || defined __C99__FUNC__ \
     4350     || defined __cplusplus || defined _MSC_VER)
    39354351static void
    3936 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
     4352yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
     4353#else
     4354static void
     4355yy_reduce_print (yyvsp, yyrule)
     4356    YYSTYPE *yyvsp;
     4357    int yyrule;
     4358#endif
    39374359{
    3938   unsigned long int yylno = yyrline[yyrule];
    39394360  int yynrhs = yyr2[yyrule];
    39404361  int yyi;
     4362  unsigned long int yylno = yyrline[yyrule];
    39414363  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    3942              yyrule - 1, yylno);
     4364             yyrule - 1, yylno);
    39434365  /* The symbols being reduced.  */
    39444366  for (yyi = 0; yyi < yynrhs; yyi++)
    39454367    {
    39464368      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    3947       yy_symbol_print (stderr,
    3948                        yystos[yyssp[yyi + 1 - yynrhs]],
    3949                        &(yyvsp[(yyi + 1) - (yynrhs)])
    3950                                               );
     4369      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
     4370                       &(yyvsp[(yyi + 1) - (yynrhs)])
     4371                                       );
    39514372      YYFPRINTF (stderr, "\n");
    39524373    }
    39534374}
    39544375
    3955 # define YY_REDUCE_PRINT(Rule)          \
    3956 do {                                    \
    3957   if (yydebug)                          \
    3958     yy_reduce_print (yyssp, yyvsp, Rule); \
    3959 } while (0)
     4376# define YY_REDUCE_PRINT(Rule)          \
     4377do {                                    \
     4378  if (yydebug)                          \
     4379    yy_reduce_print (yyvsp, Rule); \
     4380} while (YYID (0))
    39604381
    39614382/* Nonzero means print parse trace.  It is left uninitialized so that
     
    39714392
    39724393/* YYINITDEPTH -- initial size of the parser's stacks.  */
    3973 #ifndef YYINITDEPTH
     4394#ifndef YYINITDEPTH
    39744395# define YYINITDEPTH 200
    39754396#endif
     
    39944415#  else
    39954416/* Return the length of YYSTR.  */
     4417#if (defined __STDC__ || defined __C99__FUNC__ \
     4418     || defined __cplusplus || defined _MSC_VER)
    39964419static YYSIZE_T
    39974420yystrlen (const char *yystr)
     4421#else
     4422static YYSIZE_T
     4423yystrlen (yystr)
     4424    const char *yystr;
     4425#endif
    39984426{
    39994427  YYSIZE_T yylen;
     
    40114439/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    40124440   YYDEST.  */
     4441#if (defined __STDC__ || defined __C99__FUNC__ \
     4442     || defined __cplusplus || defined _MSC_VER)
    40134443static char *
    40144444yystpcpy (char *yydest, const char *yysrc)
     4445#else
     4446static char *
     4447yystpcpy (yydest, yysrc)
     4448    char *yydest;
     4449    const char *yysrc;
     4450#endif
    40154451{
    40164452  char *yyd = yydest;
     
    40424478
    40434479      for (;;)
    4044         switch (*++yyp)
    4045           {
    4046           case '\'':
    4047           case ',':
    4048             goto do_not_strip_quotes;
    4049 
    4050           case '\\':
    4051             if (*++yyp != '\\')
    4052               goto do_not_strip_quotes;
    4053             /* Fall through.  */
    4054           default:
    4055             if (yyres)
    4056               yyres[yyn] = *yyp;
    4057             yyn++;
    4058             break;
    4059 
    4060           case '"':
    4061             if (yyres)
    4062               yyres[yyn] = '\0';
    4063             return yyn;
    4064           }
     4480        switch (*++yyp)
     4481          {
     4482          case '\'':
     4483          case ',':
     4484            goto do_not_strip_quotes;
     4485
     4486          case '\\':
     4487            if (*++yyp != '\\')
     4488              goto do_not_strip_quotes;
     4489            /* Fall through.  */
     4490          default:
     4491            if (yyres)
     4492              yyres[yyn] = *yyp;
     4493            yyn++;
     4494            break;
     4495
     4496          case '"':
     4497            if (yyres)
     4498              yyres[yyn] = '\0';
     4499            return yyn;
     4500          }
    40654501    do_not_strip_quotes: ;
    40664502    }
     
    40854521                yytype_int16 *yyssp, int yytoken)
    40864522{
    4087   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
     4523  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
    40884524  YYSIZE_T yysize = yysize0;
     4525  YYSIZE_T yysize1;
    40894526  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    40904527  /* Internationalized format string. */
    4091   const char *yyformat = YY_NULLPTR;
     4528  const char *yyformat = 0;
    40924529  /* Arguments of yyformat. */
    40934530  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    40974534
    40984535  /* There are many possibilities here to consider:
     4536     - Assume YYFAIL is not used.  It's too flawed to consider.  See
     4537       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
     4538       for details.  YYERROR is fine as it does not invoke this
     4539       function.
    40994540     - If this state is a consistent state with a default action, then
    41004541       the only way this function was invoked is if the default action
     
    41454586                  }
    41464587                yyarg[yycount++] = yytname[yyx];
    4147                 {
    4148                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
    4149                   if (! (yysize <= yysize1
    4150                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4151                     return 2;
    4152                   yysize = yysize1;
    4153                 }
     4588                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
     4589                if (! (yysize <= yysize1
     4590                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4591                  return 2;
     4592                yysize = yysize1;
    41544593              }
    41554594        }
     
    41714610    }
    41724611
    4173   {
    4174     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    4175     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4176       return 2;
    4177     yysize = yysize1;
    4178   }
     4612  yysize1 = yysize + yystrlen (yyformat);
     4613  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4614    return 2;
     4615  yysize = yysize1;
    41794616
    41804617  if (*yymsg_alloc < yysize)
     
    42134650`-----------------------------------------------*/
    42144651
     4652/*ARGSUSED*/
     4653#if (defined __STDC__ || defined __C99__FUNC__ \
     4654     || defined __cplusplus || defined _MSC_VER)
    42154655static void
    42164656yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
     4657#else
     4658static void
     4659yydestruct (yymsg, yytype, yyvaluep)
     4660    const char *yymsg;
     4661    int yytype;
     4662    YYSTYPE *yyvaluep;
     4663#endif
    42174664{
    42184665  YYUSE (yyvaluep);
     4666
    42194667  if (!yymsg)
    42204668    yymsg = "Deleting";
    42214669  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    42224670
    4223   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    4224   YYUSE (yytype);
    4225   YY_IGNORE_MAYBE_UNINITIALIZED_END
     4671  switch (yytype)
     4672    {
     4673
     4674      default:
     4675        break;
     4676    }
    42264677}
    42274678
    42284679
     4680/* Prevent warnings from -Wmissing-prototypes.  */
     4681#ifdef YYPARSE_PARAM
     4682#if defined __STDC__ || defined __cplusplus
     4683int yyparse (void *YYPARSE_PARAM);
     4684#else
     4685int yyparse ();
     4686#endif
     4687#else /* ! YYPARSE_PARAM */
     4688#if defined __STDC__ || defined __cplusplus
     4689int yyparse (void);
     4690#else
     4691int yyparse ();
     4692#endif
     4693#endif /* ! YYPARSE_PARAM */
    42294694
    42304695
     
    42344699/* The semantic value of the lookahead symbol.  */
    42354700YYSTYPE yylval;
     4701
    42364702/* Number of syntax errors so far.  */
    42374703int yynerrs;
     
    42424708`----------*/
    42434709
     4710#ifdef YYPARSE_PARAM
     4711#if (defined __STDC__ || defined __C99__FUNC__ \
     4712     || defined __cplusplus || defined _MSC_VER)
     4713int
     4714yyparse (void *YYPARSE_PARAM)
     4715#else
     4716int
     4717yyparse (YYPARSE_PARAM)
     4718    void *YYPARSE_PARAM;
     4719#endif
     4720#else /* ! YYPARSE_PARAM */
     4721#if (defined __STDC__ || defined __C99__FUNC__ \
     4722     || defined __cplusplus || defined _MSC_VER)
    42444723int
    42454724yyparse (void)
     4725#else
     4726int
     4727yyparse ()
     4728
     4729#endif
     4730#endif
    42464731{
    42474732    int yystate;
     
    42504735
    42514736    /* The stacks and their tools:
    4252        'yyss': related to states.
    4253        'yyvs': related to semantic values.
    4254 
    4255        Refer to the stacks through separate pointers, to allow yyoverflow
     4737       `yyss': related to states.
     4738       `yyvs': related to semantic values.
     4739
     4740       Refer to the stacks thru separate pointers, to allow yyoverflow
    42564741       to reallocate them elsewhere.  */
    42574742
     
    42714756  int yyresult;
    42724757  /* Lookahead token as an internal (translated) token number.  */
    4273   int yytoken = 0;
     4758  int yytoken;
    42744759  /* The variables used to return semantic value and location from the
    42754760     action routines.  */
     
    42894774  int yylen = 0;
    42904775
    4291   yyssp = yyss = yyssa;
    4292   yyvsp = yyvs = yyvsa;
     4776  yytoken = 0;
     4777  yyss = yyssa;
     4778  yyvs = yyvsa;
    42934779  yystacksize = YYINITDEPTH;
    42944780
     
    42994785  yynerrs = 0;
    43004786  yychar = YYEMPTY; /* Cause a token to be read.  */
     4787
     4788  /* Initialize stack pointers.
     4789     Waste one element of value and location stack
     4790     so that they stay on the same level as the state stack.
     4791     The wasted elements are never initialized.  */
     4792  yyssp = yyss;
     4793  yyvsp = yyvs;
     4794
    43014795  goto yysetstate;
    43024796
     
    43194813#ifdef yyoverflow
    43204814      {
    4321         /* Give user a chance to reallocate the stack.  Use copies of
    4322            these so that the &'s don't force the real ones into
    4323            memory.  */
    4324         YYSTYPE *yyvs1 = yyvs;
    4325         yytype_int16 *yyss1 = yyss;
    4326 
    4327         /* Each stack pointer address is followed by the size of the
    4328            data in use in that stack, in bytes.  This used to be a
    4329            conditional around just the two extra args, but that might
    4330            be undefined if yyoverflow is a macro.  */
    4331         yyoverflow (YY_("memory exhausted"),
    4332                     &yyss1, yysize * sizeof (*yyssp),
    4333                     &yyvs1, yysize * sizeof (*yyvsp),
    4334                     &yystacksize);
    4335 
    4336         yyss = yyss1;
    4337         yyvs = yyvs1;
     4815        /* Give user a chance to reallocate the stack.  Use copies of
     4816           these so that the &'s don't force the real ones into
     4817           memory.  */
     4818        YYSTYPE *yyvs1 = yyvs;
     4819        yytype_int16 *yyss1 = yyss;
     4820
     4821        /* Each stack pointer address is followed by the size of the
     4822           data in use in that stack, in bytes.  This used to be a
     4823           conditional around just the two extra args, but that might
     4824           be undefined if yyoverflow is a macro.  */
     4825        yyoverflow (YY_("memory exhausted"),
     4826                    &yyss1, yysize * sizeof (*yyssp),
     4827                    &yyvs1, yysize * sizeof (*yyvsp),
     4828                    &yystacksize);
     4829
     4830        yyss = yyss1;
     4831        yyvs = yyvs1;
    43384832      }
    43394833#else /* no yyoverflow */
     
    43434837      /* Extend the stack our own way.  */
    43444838      if (YYMAXDEPTH <= yystacksize)
    4345         goto yyexhaustedlab;
     4839        goto yyexhaustedlab;
    43464840      yystacksize *= 2;
    43474841      if (YYMAXDEPTH < yystacksize)
    4348         yystacksize = YYMAXDEPTH;
     4842        yystacksize = YYMAXDEPTH;
    43494843
    43504844      {
    4351         yytype_int16 *yyss1 = yyss;
    4352         union yyalloc *yyptr =
    4353           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4354         if (! yyptr)
    4355           goto yyexhaustedlab;
    4356         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4357         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
     4845        yytype_int16 *yyss1 = yyss;
     4846        union yyalloc *yyptr =
     4847          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
     4848        if (! yyptr)
     4849          goto yyexhaustedlab;
     4850        YYSTACK_RELOCATE (yyss_alloc, yyss);
     4851        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    43584852#  undef YYSTACK_RELOCATE
    4359         if (yyss1 != yyssa)
    4360           YYSTACK_FREE (yyss1);
     4853        if (yyss1 != yyssa)
     4854          YYSTACK_FREE (yyss1);
    43614855      }
    43624856# endif
     
    43674861
    43684862      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4369                   (unsigned long int) yystacksize));
     4863                  (unsigned long int) yystacksize));
    43704864
    43714865      if (yyss + yystacksize - 1 <= yyssp)
    4372         YYABORT;
     4866        YYABORT;
    43734867    }
    43744868
     
    43994893    {
    44004894      YYDPRINTF ((stderr, "Reading a token: "));
    4401       yychar = yylex ();
     4895      yychar = YYLEX;
    44024896    }
    44034897
     
    44394933
    44404934  yystate = yyn;
    4441   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    44424935  *++yyvsp = yylval;
    4443   YY_IGNORE_MAYBE_UNINITIALIZED_END
    44444936
    44454937  goto yynewstate;
     
    44644956
    44654957  /* If YYLEN is nonzero, implement the default value of the action:
    4466      '$$ = $1'.
     4958     `$$ = $1'.
    44674959
    44684960     Otherwise, the following line sets YYVAL to garbage.
     
    44784970    {
    44794971        case 2:
    4480 #line 300 "parser.yy" /* yacc.c:1646  */
     4972
     4973/* Line 1806 of yacc.c  */
     4974#line 301 "parser.yy"
    44814975    { typedefTable.enterScope(); }
    4482 #line 4483 "Parser/parser.cc" /* yacc.c:1646  */
    44834976    break;
    44844977
    44854978  case 3:
    4486 #line 304 "parser.yy" /* yacc.c:1646  */
     4979
     4980/* Line 1806 of yacc.c  */
     4981#line 305 "parser.yy"
    44874982    { typedefTable.leaveScope(); }
    4488 #line 4489 "Parser/parser.cc" /* yacc.c:1646  */
    44894983    break;
    44904984
    44914985  case 4:
    4492 #line 311 "parser.yy" /* yacc.c:1646  */
    4493     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); }
    4494 #line 4495 "Parser/parser.cc" /* yacc.c:1646  */
     4986
     4987/* Line 1806 of yacc.c  */
     4988#line 312 "parser.yy"
     4989    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    44954990    break;
    44964991
    44974992  case 5:
    4498 #line 312 "parser.yy" /* yacc.c:1646  */
    4499     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); }
    4500 #line 4501 "Parser/parser.cc" /* yacc.c:1646  */
     4993
     4994/* Line 1806 of yacc.c  */
     4995#line 313 "parser.yy"
     4996    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    45014997    break;
    45024998
    45034999  case 6:
    4504 #line 313 "parser.yy" /* yacc.c:1646  */
    4505     { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); }
    4506 #line 4507 "Parser/parser.cc" /* yacc.c:1646  */
     5000
     5001/* Line 1806 of yacc.c  */
     5002#line 314 "parser.yy"
     5003    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    45075004    break;
    45085005
    45095006  case 16:
    4510 #line 338 "parser.yy" /* yacc.c:1646  */
    4511     { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); }
    4512 #line 4513 "Parser/parser.cc" /* yacc.c:1646  */
     5007
     5008/* Line 1806 of yacc.c  */
     5009#line 339 "parser.yy"
     5010    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    45135011    break;
    45145012
    45155013  case 17:
    4516 #line 342 "parser.yy" /* yacc.c:1646  */
    4517     { (yyval.str) = (yyvsp[0].tok); }
    4518 #line 4519 "Parser/parser.cc" /* yacc.c:1646  */
     5014
     5015/* Line 1806 of yacc.c  */
     5016#line 343 "parser.yy"
     5017    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    45195018    break;
    45205019
    45215020  case 18:
    4522 #line 344 "parser.yy" /* yacc.c:1646  */
     5021
     5022/* Line 1806 of yacc.c  */
     5023#line 345 "parser.yy"
    45235024    {
    4524                         appendStr( (yyvsp[-1].str), (yyvsp[0].tok) );                                           // append 2nd juxtaposed string to 1st
    4525                         delete (yyvsp[0].tok);                                                                  // allocated by lexer
    4526                         (yyval.str) = (yyvsp[-1].str);                                                                  // conversion from tok to str
     5025                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     5026                        delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
     5027                        (yyval.str) = (yyvsp[(1) - (2)].str);                                                                   // conversion from tok to str
    45275028                }
    4528 #line 4529 "Parser/parser.cc" /* yacc.c:1646  */
    45295029    break;
    45305030
    45315031  case 19:
    4532 #line 355 "parser.yy" /* yacc.c:1646  */
    4533     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4534 #line 4535 "Parser/parser.cc" /* yacc.c:1646  */
     5032
     5033/* Line 1806 of yacc.c  */
     5034#line 356 "parser.yy"
     5035    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    45355036    break;
    45365037
    45375038  case 20:
    4538 #line 357 "parser.yy" /* yacc.c:1646  */
    4539     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4540 #line 4541 "Parser/parser.cc" /* yacc.c:1646  */
     5039
     5040/* Line 1806 of yacc.c  */
     5041#line 358 "parser.yy"
     5042    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    45415043    break;
    45425044
    45435045  case 21:
    4544 #line 359 "parser.yy" /* yacc.c:1646  */
    4545     { (yyval.en) = (yyvsp[-1].en); }
    4546 #line 4547 "Parser/parser.cc" /* yacc.c:1646  */
     5046
     5047/* Line 1806 of yacc.c  */
     5048#line 360 "parser.yy"
     5049    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    45475050    break;
    45485051
    45495052  case 22:
    4550 #line 361 "parser.yy" /* yacc.c:1646  */
    4551     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
    4552 #line 4553 "Parser/parser.cc" /* yacc.c:1646  */
     5053
     5054/* Line 1806 of yacc.c  */
     5055#line 362 "parser.yy"
     5056    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    45535057    break;
    45545058
    45555059  case 24:
    4556 #line 371 "parser.yy" /* yacc.c:1646  */
    4557     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); }
    4558 #line 4559 "Parser/parser.cc" /* yacc.c:1646  */
     5060
     5061/* Line 1806 of yacc.c  */
     5062#line 372 "parser.yy"
     5063    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    45595064    break;
    45605065
    45615066  case 25:
    4562 #line 373 "parser.yy" /* yacc.c:1646  */
    4563     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); }
    4564 #line 4565 "Parser/parser.cc" /* yacc.c:1646  */
     5067
     5068/* Line 1806 of yacc.c  */
     5069#line 374 "parser.yy"
     5070    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    45655071    break;
    45665072
    45675073  case 26:
    4568 #line 377 "parser.yy" /* yacc.c:1646  */
    4569     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
    4570 #line 4571 "Parser/parser.cc" /* yacc.c:1646  */
     5074
     5075/* Line 1806 of yacc.c  */
     5076#line 378 "parser.yy"
     5077    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    45715078    break;
    45725079
    45735080  case 28:
    4574 #line 380 "parser.yy" /* yacc.c:1646  */
    4575     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
    4576 #line 4577 "Parser/parser.cc" /* yacc.c:1646  */
     5081
     5082/* Line 1806 of yacc.c  */
     5083#line 381 "parser.yy"
     5084    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    45775085    break;
    45785086
    45795087  case 30:
    4580 #line 383 "parser.yy" /* yacc.c:1646  */
    4581     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); }
    4582 #line 4583 "Parser/parser.cc" /* yacc.c:1646  */
     5088
     5089/* Line 1806 of yacc.c  */
     5090#line 384 "parser.yy"
     5091    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    45835092    break;
    45845093
    45855094  case 31:
    4586 #line 385 "parser.yy" /* yacc.c:1646  */
    4587     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); }
    4588 #line 4589 "Parser/parser.cc" /* yacc.c:1646  */
     5095
     5096/* Line 1806 of yacc.c  */
     5097#line 386 "parser.yy"
     5098    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    45895099    break;
    45905100
    45915101  case 32:
    4592 #line 387 "parser.yy" /* yacc.c:1646  */
    4593     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); }
    4594 #line 4595 "Parser/parser.cc" /* yacc.c:1646  */
     5102
     5103/* Line 1806 of yacc.c  */
     5104#line 388 "parser.yy"
     5105    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    45955106    break;
    45965107
    45975108  case 33:
    4598 #line 389 "parser.yy" /* yacc.c:1646  */
     5109
     5110/* Line 1806 of yacc.c  */
     5111#line 390 "parser.yy"
    45995112    {
    46005113                        Token fn;
    4601                         fn.str = new std::string( "?{}" ); // location undefined
    4602                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );
     5114                        fn.str = new std::string( "?{}" );                      // location undefined - use location of '{'?
     5115                        (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) );
    46035116                }
    4604 #line 4605 "Parser/parser.cc" /* yacc.c:1646  */
    46055117    break;
    46065118
    46075119  case 35:
    4608 #line 399 "parser.yy" /* yacc.c:1646  */
    4609     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
    4610 #line 4611 "Parser/parser.cc" /* yacc.c:1646  */
     5120
     5121/* Line 1806 of yacc.c  */
     5122#line 400 "parser.yy"
     5123    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    46115124    break;
    46125125
    46135126  case 36:
    4614 #line 404 "parser.yy" /* yacc.c:1646  */
     5127
     5128/* Line 1806 of yacc.c  */
     5129#line 405 "parser.yy"
    46155130    { (yyval.en) = 0; }
    4616 #line 4617 "Parser/parser.cc" /* yacc.c:1646  */
    46175131    break;
    46185132
    46195133  case 39:
    4620 #line 410 "parser.yy" /* yacc.c:1646  */
    4621     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    4622 #line 4623 "Parser/parser.cc" /* yacc.c:1646  */
     5134
     5135/* Line 1806 of yacc.c  */
     5136#line 411 "parser.yy"
     5137    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    46235138    break;
    46245139
    46255140  case 40:
    4626 #line 415 "parser.yy" /* yacc.c:1646  */
    4627     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4628 #line 4629 "Parser/parser.cc" /* yacc.c:1646  */
     5141
     5142/* Line 1806 of yacc.c  */
     5143#line 416 "parser.yy"
     5144    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    46295145    break;
    46305146
    46315147  case 41:
    4632 #line 419 "parser.yy" /* yacc.c:1646  */
    4633     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
    4634 #line 4635 "Parser/parser.cc" /* yacc.c:1646  */
     5148
     5149/* Line 1806 of yacc.c  */
     5150#line 420 "parser.yy"
     5151    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    46355152    break;
    46365153
    46375154  case 42:
    4638 #line 421 "parser.yy" /* yacc.c:1646  */
    4639     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
    4640 #line 4641 "Parser/parser.cc" /* yacc.c:1646  */
     5155
     5156/* Line 1806 of yacc.c  */
     5157#line 422 "parser.yy"
     5158    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    46415159    break;
    46425160
    46435161  case 43:
    4644 #line 423 "parser.yy" /* yacc.c:1646  */
    4645     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
    4646 #line 4647 "Parser/parser.cc" /* yacc.c:1646  */
     5162
     5163/* Line 1806 of yacc.c  */
     5164#line 424 "parser.yy"
     5165    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    46475166    break;
    46485167
    46495168  case 44:
    4650 #line 425 "parser.yy" /* yacc.c:1646  */
    4651     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
    4652 #line 4653 "Parser/parser.cc" /* yacc.c:1646  */
     5169
     5170/* Line 1806 of yacc.c  */
     5171#line 426 "parser.yy"
     5172    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    46535173    break;
    46545174
    46555175  case 46:
    4656 #line 433 "parser.yy" /* yacc.c:1646  */
    4657     { (yyval.en) = (yyvsp[0].en); }
    4658 #line 4659 "Parser/parser.cc" /* yacc.c:1646  */
     5176
     5177/* Line 1806 of yacc.c  */
     5178#line 434 "parser.yy"
     5179    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    46595180    break;
    46605181
    46615182  case 47:
    4662 #line 435 "parser.yy" /* yacc.c:1646  */
    4663     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
    4664 #line 4665 "Parser/parser.cc" /* yacc.c:1646  */
     5183
     5184/* Line 1806 of yacc.c  */
     5185#line 436 "parser.yy"
     5186    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    46655187    break;
    46665188
    46675189  case 48:
    4668 #line 437 "parser.yy" /* yacc.c:1646  */
    4669     { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
    4670 #line 4671 "Parser/parser.cc" /* yacc.c:1646  */
     5190
     5191/* Line 1806 of yacc.c  */
     5192#line 438 "parser.yy"
     5193    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    46715194    break;
    46725195
    46735196  case 49:
    4674 #line 442 "parser.yy" /* yacc.c:1646  */
     5197
     5198/* Line 1806 of yacc.c  */
     5199#line 443 "parser.yy"
    46755200    {
    4676                         switch ( (yyvsp[-1].op) ) {
     5201                        switch ( (yyvsp[(1) - (2)].op) ) {
    46775202                          case OperKinds::AddressOf:
    4678                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
     5203                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
    46795204                                break;
    46805205                          case OperKinds::PointTo:
    4681                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
     5206                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
    46825207                                break;
    46835208                          default:
     
    46855210                        }
    46865211                }
    4687 #line 4688 "Parser/parser.cc" /* yacc.c:1646  */
    46885212    break;
    46895213
    46905214  case 50:
    4691 #line 455 "parser.yy" /* yacc.c:1646  */
    4692     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
    4693 #line 4694 "Parser/parser.cc" /* yacc.c:1646  */
     5215
     5216/* Line 1806 of yacc.c  */
     5217#line 456 "parser.yy"
     5218    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    46945219    break;
    46955220
    46965221  case 51:
    4697 #line 457 "parser.yy" /* yacc.c:1646  */
    4698     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
    4699 #line 4700 "Parser/parser.cc" /* yacc.c:1646  */
     5222
     5223/* Line 1806 of yacc.c  */
     5224#line 458 "parser.yy"
     5225    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    47005226    break;
    47015227
    47025228  case 52:
    4703 #line 459 "parser.yy" /* yacc.c:1646  */
    4704     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
    4705 #line 4706 "Parser/parser.cc" /* yacc.c:1646  */
     5229
     5230/* Line 1806 of yacc.c  */
     5231#line 460 "parser.yy"
     5232    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    47065233    break;
    47075234
    47085235  case 53:
    4709 #line 461 "parser.yy" /* yacc.c:1646  */
    4710     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
    4711 #line 4712 "Parser/parser.cc" /* yacc.c:1646  */
     5236
     5237/* Line 1806 of yacc.c  */
     5238#line 462 "parser.yy"
     5239    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    47125240    break;
    47135241
    47145242  case 54:
    4715 #line 463 "parser.yy" /* yacc.c:1646  */
    4716     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
    4717 #line 4718 "Parser/parser.cc" /* yacc.c:1646  */
     5243
     5244/* Line 1806 of yacc.c  */
     5245#line 464 "parser.yy"
     5246    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    47185247    break;
    47195248
    47205249  case 55:
    4721 #line 465 "parser.yy" /* yacc.c:1646  */
    4722     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
    4723 #line 4724 "Parser/parser.cc" /* yacc.c:1646  */
     5250
     5251/* Line 1806 of yacc.c  */
     5252#line 466 "parser.yy"
     5253    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    47245254    break;
    47255255
    47265256  case 56:
    4727 #line 467 "parser.yy" /* yacc.c:1646  */
    4728     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
    4729 #line 4730 "Parser/parser.cc" /* yacc.c:1646  */
     5257
     5258/* Line 1806 of yacc.c  */
     5259#line 468 "parser.yy"
     5260    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    47305261    break;
    47315262
    47325263  case 57:
    4733 #line 469 "parser.yy" /* yacc.c:1646  */
    4734     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
    4735 #line 4736 "Parser/parser.cc" /* yacc.c:1646  */
     5264
     5265/* Line 1806 of yacc.c  */
     5266#line 470 "parser.yy"
     5267    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    47365268    break;
    47375269
    47385270  case 58:
    4739 #line 471 "parser.yy" /* yacc.c:1646  */
    4740     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
    4741 #line 4742 "Parser/parser.cc" /* yacc.c:1646  */
     5271
     5272/* Line 1806 of yacc.c  */
     5273#line 472 "parser.yy"
     5274    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    47425275    break;
    47435276
    47445277  case 59:
    4745 #line 473 "parser.yy" /* yacc.c:1646  */
    4746     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
    4747 #line 4748 "Parser/parser.cc" /* yacc.c:1646  */
     5278
     5279/* Line 1806 of yacc.c  */
     5280#line 474 "parser.yy"
     5281    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    47485282    break;
    47495283
    47505284  case 60:
    4751 #line 475 "parser.yy" /* yacc.c:1646  */
    4752     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
    4753 #line 4754 "Parser/parser.cc" /* yacc.c:1646  */
     5285
     5286/* Line 1806 of yacc.c  */
     5287#line 476 "parser.yy"
     5288    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    47545289    break;
    47555290
    47565291  case 61:
    4757 #line 481 "parser.yy" /* yacc.c:1646  */
     5292
     5293/* Line 1806 of yacc.c  */
     5294#line 482 "parser.yy"
    47585295    { (yyval.op) = OperKinds::PointTo; }
    4759 #line 4760 "Parser/parser.cc" /* yacc.c:1646  */
    47605296    break;
    47615297
    47625298  case 62:
    4763 #line 482 "parser.yy" /* yacc.c:1646  */
     5299
     5300/* Line 1806 of yacc.c  */
     5301#line 483 "parser.yy"
    47645302    { (yyval.op) = OperKinds::AddressOf; }
    4765 #line 4766 "Parser/parser.cc" /* yacc.c:1646  */
    47665303    break;
    47675304
    47685305  case 63:
    4769 #line 488 "parser.yy" /* yacc.c:1646  */
     5306
     5307/* Line 1806 of yacc.c  */
     5308#line 489 "parser.yy"
    47705309    { (yyval.op) = OperKinds::UnPlus; }
    4771 #line 4772 "Parser/parser.cc" /* yacc.c:1646  */
    47725310    break;
    47735311
    47745312  case 64:
    4775 #line 489 "parser.yy" /* yacc.c:1646  */
     5313
     5314/* Line 1806 of yacc.c  */
     5315#line 490 "parser.yy"
    47765316    { (yyval.op) = OperKinds::UnMinus; }
    4777 #line 4778 "Parser/parser.cc" /* yacc.c:1646  */
    47785317    break;
    47795318
    47805319  case 65:
    4781 #line 490 "parser.yy" /* yacc.c:1646  */
     5320
     5321/* Line 1806 of yacc.c  */
     5322#line 491 "parser.yy"
    47825323    { (yyval.op) = OperKinds::Neg; }
    4783 #line 4784 "Parser/parser.cc" /* yacc.c:1646  */
    47845324    break;
    47855325
    47865326  case 66:
    4787 #line 491 "parser.yy" /* yacc.c:1646  */
     5327
     5328/* Line 1806 of yacc.c  */
     5329#line 492 "parser.yy"
    47885330    { (yyval.op) = OperKinds::BitNeg; }
    4789 #line 4790 "Parser/parser.cc" /* yacc.c:1646  */
    47905331    break;
    47915332
    47925333  case 68:
    4793 #line 497 "parser.yy" /* yacc.c:1646  */
    4794     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
    4795 #line 4796 "Parser/parser.cc" /* yacc.c:1646  */
     5334
     5335/* Line 1806 of yacc.c  */
     5336#line 498 "parser.yy"
     5337    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    47965338    break;
    47975339
    47985340  case 69:
    4799 #line 499 "parser.yy" /* yacc.c:1646  */
    4800     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
    4801 #line 4802 "Parser/parser.cc" /* yacc.c:1646  */
     5341
     5342/* Line 1806 of yacc.c  */
     5343#line 500 "parser.yy"
     5344    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    48025345    break;
    48035346
    48045347  case 71:
    4805 #line 505 "parser.yy" /* yacc.c:1646  */
    4806     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4807 #line 4808 "Parser/parser.cc" /* yacc.c:1646  */
     5348
     5349/* Line 1806 of yacc.c  */
     5350#line 506 "parser.yy"
     5351    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48085352    break;
    48095353
    48105354  case 72:
    4811 #line 507 "parser.yy" /* yacc.c:1646  */
    4812     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4813 #line 4814 "Parser/parser.cc" /* yacc.c:1646  */
     5355
     5356/* Line 1806 of yacc.c  */
     5357#line 508 "parser.yy"
     5358    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48145359    break;
    48155360
    48165361  case 73:
    4817 #line 509 "parser.yy" /* yacc.c:1646  */
    4818     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4819 #line 4820 "Parser/parser.cc" /* yacc.c:1646  */
     5362
     5363/* Line 1806 of yacc.c  */
     5364#line 510 "parser.yy"
     5365    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48205366    break;
    48215367
    48225368  case 75:
    4823 #line 515 "parser.yy" /* yacc.c:1646  */
    4824     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4825 #line 4826 "Parser/parser.cc" /* yacc.c:1646  */
     5369
     5370/* Line 1806 of yacc.c  */
     5371#line 516 "parser.yy"
     5372    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48265373    break;
    48275374
    48285375  case 76:
    4829 #line 517 "parser.yy" /* yacc.c:1646  */
    4830     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4831 #line 4832 "Parser/parser.cc" /* yacc.c:1646  */
     5376
     5377/* Line 1806 of yacc.c  */
     5378#line 518 "parser.yy"
     5379    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48325380    break;
    48335381
    48345382  case 78:
    4835 #line 523 "parser.yy" /* yacc.c:1646  */
    4836     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4837 #line 4838 "Parser/parser.cc" /* yacc.c:1646  */
     5383
     5384/* Line 1806 of yacc.c  */
     5385#line 524 "parser.yy"
     5386    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48385387    break;
    48395388
    48405389  case 79:
    4841 #line 525 "parser.yy" /* yacc.c:1646  */
    4842     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4843 #line 4844 "Parser/parser.cc" /* yacc.c:1646  */
     5390
     5391/* Line 1806 of yacc.c  */
     5392#line 526 "parser.yy"
     5393    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48445394    break;
    48455395
    48465396  case 81:
    4847 #line 531 "parser.yy" /* yacc.c:1646  */
    4848     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4849 #line 4850 "Parser/parser.cc" /* yacc.c:1646  */
     5397
     5398/* Line 1806 of yacc.c  */
     5399#line 532 "parser.yy"
     5400    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48505401    break;
    48515402
    48525403  case 82:
    4853 #line 533 "parser.yy" /* yacc.c:1646  */
    4854     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4855 #line 4856 "Parser/parser.cc" /* yacc.c:1646  */
     5404
     5405/* Line 1806 of yacc.c  */
     5406#line 534 "parser.yy"
     5407    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48565408    break;
    48575409
    48585410  case 83:
    4859 #line 535 "parser.yy" /* yacc.c:1646  */
    4860     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4861 #line 4862 "Parser/parser.cc" /* yacc.c:1646  */
     5411
     5412/* Line 1806 of yacc.c  */
     5413#line 536 "parser.yy"
     5414    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48625415    break;
    48635416
    48645417  case 84:
    4865 #line 537 "parser.yy" /* yacc.c:1646  */
    4866     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4867 #line 4868 "Parser/parser.cc" /* yacc.c:1646  */
     5418
     5419/* Line 1806 of yacc.c  */
     5420#line 538 "parser.yy"
     5421    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48685422    break;
    48695423
    48705424  case 86:
    4871 #line 543 "parser.yy" /* yacc.c:1646  */
    4872     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4873 #line 4874 "Parser/parser.cc" /* yacc.c:1646  */
     5425
     5426/* Line 1806 of yacc.c  */
     5427#line 544 "parser.yy"
     5428    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48745429    break;
    48755430
    48765431  case 87:
    4877 #line 545 "parser.yy" /* yacc.c:1646  */
    4878     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4879 #line 4880 "Parser/parser.cc" /* yacc.c:1646  */
     5432
     5433/* Line 1806 of yacc.c  */
     5434#line 546 "parser.yy"
     5435    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48805436    break;
    48815437
    48825438  case 89:
    4883 #line 551 "parser.yy" /* yacc.c:1646  */
    4884     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4885 #line 4886 "Parser/parser.cc" /* yacc.c:1646  */
     5439
     5440/* Line 1806 of yacc.c  */
     5441#line 552 "parser.yy"
     5442    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48865443    break;
    48875444
    48885445  case 91:
    4889 #line 557 "parser.yy" /* yacc.c:1646  */
    4890     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4891 #line 4892 "Parser/parser.cc" /* yacc.c:1646  */
     5446
     5447/* Line 1806 of yacc.c  */
     5448#line 558 "parser.yy"
     5449    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48925450    break;
    48935451
    48945452  case 93:
    4895 #line 563 "parser.yy" /* yacc.c:1646  */
    4896     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4897 #line 4898 "Parser/parser.cc" /* yacc.c:1646  */
     5453
     5454/* Line 1806 of yacc.c  */
     5455#line 564 "parser.yy"
     5456    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48985457    break;
    48995458
    49005459  case 95:
    4901 #line 569 "parser.yy" /* yacc.c:1646  */
    4902     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
    4903 #line 4904 "Parser/parser.cc" /* yacc.c:1646  */
     5460
     5461/* Line 1806 of yacc.c  */
     5462#line 570 "parser.yy"
     5463    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    49045464    break;
    49055465
    49065466  case 97:
    4907 #line 575 "parser.yy" /* yacc.c:1646  */
    4908     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
    4909 #line 4910 "Parser/parser.cc" /* yacc.c:1646  */
     5467
     5468/* Line 1806 of yacc.c  */
     5469#line 576 "parser.yy"
     5470    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    49105471    break;
    49115472
    49125473  case 99:
    4913 #line 581 "parser.yy" /* yacc.c:1646  */
    4914     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4915 #line 4916 "Parser/parser.cc" /* yacc.c:1646  */
     5474
     5475/* Line 1806 of yacc.c  */
     5476#line 582 "parser.yy"
     5477    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    49165478    break;
    49175479
    49185480  case 100:
    4919 #line 584 "parser.yy" /* yacc.c:1646  */
    4920     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
    4921 #line 4922 "Parser/parser.cc" /* yacc.c:1646  */
     5481
     5482/* Line 1806 of yacc.c  */
     5483#line 585 "parser.yy"
     5484    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    49225485    break;
    49235486
    49245487  case 101:
    4925 #line 586 "parser.yy" /* yacc.c:1646  */
    4926     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4927 #line 4928 "Parser/parser.cc" /* yacc.c:1646  */
     5488
     5489/* Line 1806 of yacc.c  */
     5490#line 587 "parser.yy"
     5491    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    49285492    break;
    49295493
    49305494  case 104:
    4931 #line 597 "parser.yy" /* yacc.c:1646  */
    4932     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4933 #line 4934 "Parser/parser.cc" /* yacc.c:1646  */
     5495
     5496/* Line 1806 of yacc.c  */
     5497#line 598 "parser.yy"
     5498    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    49345499    break;
    49355500
    49365501  case 105:
    4937 #line 599 "parser.yy" /* yacc.c:1646  */
    4938     { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); }
    4939 #line 4940 "Parser/parser.cc" /* yacc.c:1646  */
     5502
     5503/* Line 1806 of yacc.c  */
     5504#line 600 "parser.yy"
     5505    { (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) ) ); }
    49405506    break;
    49415507
    49425508  case 106:
    4943 #line 604 "parser.yy" /* yacc.c:1646  */
     5509
     5510/* Line 1806 of yacc.c  */
     5511#line 605 "parser.yy"
    49445512    { (yyval.en) = nullptr; }
    4945 #line 4946 "Parser/parser.cc" /* yacc.c:1646  */
    49465513    break;
    49475514
    49485515  case 108:
    4949 #line 609 "parser.yy" /* yacc.c:1646  */
     5516
     5517/* Line 1806 of yacc.c  */
     5518#line 610 "parser.yy"
    49505519    { (yyval.op) = OperKinds::Assign; }
    4951 #line 4952 "Parser/parser.cc" /* yacc.c:1646  */
    49525520    break;
    49535521
    49545522  case 109:
    4955 #line 610 "parser.yy" /* yacc.c:1646  */
     5523
     5524/* Line 1806 of yacc.c  */
     5525#line 611 "parser.yy"
    49565526    { (yyval.op) = OperKinds::AtAssn; }
    4957 #line 4958 "Parser/parser.cc" /* yacc.c:1646  */
    49585527    break;
    49595528
    49605529  case 110:
    4961 #line 611 "parser.yy" /* yacc.c:1646  */
     5530
     5531/* Line 1806 of yacc.c  */
     5532#line 612 "parser.yy"
    49625533    { (yyval.op) = OperKinds::MulAssn; }
    4963 #line 4964 "Parser/parser.cc" /* yacc.c:1646  */
    49645534    break;
    49655535
    49665536  case 111:
    4967 #line 612 "parser.yy" /* yacc.c:1646  */
     5537
     5538/* Line 1806 of yacc.c  */
     5539#line 613 "parser.yy"
    49685540    { (yyval.op) = OperKinds::DivAssn; }
    4969 #line 4970 "Parser/parser.cc" /* yacc.c:1646  */
    49705541    break;
    49715542
    49725543  case 112:
    4973 #line 613 "parser.yy" /* yacc.c:1646  */
     5544
     5545/* Line 1806 of yacc.c  */
     5546#line 614 "parser.yy"
    49745547    { (yyval.op) = OperKinds::ModAssn; }
    4975 #line 4976 "Parser/parser.cc" /* yacc.c:1646  */
    49765548    break;
    49775549
    49785550  case 113:
    4979 #line 614 "parser.yy" /* yacc.c:1646  */
     5551
     5552/* Line 1806 of yacc.c  */
     5553#line 615 "parser.yy"
    49805554    { (yyval.op) = OperKinds::PlusAssn; }
    4981 #line 4982 "Parser/parser.cc" /* yacc.c:1646  */
    49825555    break;
    49835556
    49845557  case 114:
    4985 #line 615 "parser.yy" /* yacc.c:1646  */
     5558
     5559/* Line 1806 of yacc.c  */
     5560#line 616 "parser.yy"
    49865561    { (yyval.op) = OperKinds::MinusAssn; }
    4987 #line 4988 "Parser/parser.cc" /* yacc.c:1646  */
    49885562    break;
    49895563
    49905564  case 115:
    4991 #line 616 "parser.yy" /* yacc.c:1646  */
     5565
     5566/* Line 1806 of yacc.c  */
     5567#line 617 "parser.yy"
    49925568    { (yyval.op) = OperKinds::LSAssn; }
    4993 #line 4994 "Parser/parser.cc" /* yacc.c:1646  */
    49945569    break;
    49955570
    49965571  case 116:
    4997 #line 617 "parser.yy" /* yacc.c:1646  */
     5572
     5573/* Line 1806 of yacc.c  */
     5574#line 618 "parser.yy"
    49985575    { (yyval.op) = OperKinds::RSAssn; }
    4999 #line 5000 "Parser/parser.cc" /* yacc.c:1646  */
    50005576    break;
    50015577
    50025578  case 117:
    5003 #line 618 "parser.yy" /* yacc.c:1646  */
     5579
     5580/* Line 1806 of yacc.c  */
     5581#line 619 "parser.yy"
    50045582    { (yyval.op) = OperKinds::AndAssn; }
    5005 #line 5006 "Parser/parser.cc" /* yacc.c:1646  */
    50065583    break;
    50075584
    50085585  case 118:
    5009 #line 619 "parser.yy" /* yacc.c:1646  */
     5586
     5587/* Line 1806 of yacc.c  */
     5588#line 620 "parser.yy"
    50105589    { (yyval.op) = OperKinds::ERAssn; }
    5011 #line 5012 "Parser/parser.cc" /* yacc.c:1646  */
    50125590    break;
    50135591
    50145592  case 119:
    5015 #line 620 "parser.yy" /* yacc.c:1646  */
     5593
     5594/* Line 1806 of yacc.c  */
     5595#line 621 "parser.yy"
    50165596    { (yyval.op) = OperKinds::OrAssn; }
    5017 #line 5018 "Parser/parser.cc" /* yacc.c:1646  */
    50185597    break;
    50195598
    50205599  case 120:
    5021 #line 627 "parser.yy" /* yacc.c:1646  */
     5600
     5601/* Line 1806 of yacc.c  */
     5602#line 628 "parser.yy"
    50225603    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    5023 #line 5024 "Parser/parser.cc" /* yacc.c:1646  */
    50245604    break;
    50255605
    50265606  case 121:
    5027 #line 629 "parser.yy" /* yacc.c:1646  */
    5028     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); }
    5029 #line 5030 "Parser/parser.cc" /* yacc.c:1646  */
     5607
     5608/* Line 1806 of yacc.c  */
     5609#line 630 "parser.yy"
     5610    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    50305611    break;
    50315612
    50325613  case 122:
    5033 #line 631 "parser.yy" /* yacc.c:1646  */
    5034     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
    5035 #line 5036 "Parser/parser.cc" /* yacc.c:1646  */
     5614
     5615/* Line 1806 of yacc.c  */
     5616#line 632 "parser.yy"
     5617    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    50365618    break;
    50375619
    50385620  case 123:
    5039 #line 633 "parser.yy" /* yacc.c:1646  */
    5040     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
    5041 #line 5042 "Parser/parser.cc" /* yacc.c:1646  */
     5621
     5622/* Line 1806 of yacc.c  */
     5623#line 634 "parser.yy"
     5624    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    50425625    break;
    50435626
    50445627  case 125:
    5045 #line 639 "parser.yy" /* yacc.c:1646  */
    5046     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    5047 #line 5048 "Parser/parser.cc" /* yacc.c:1646  */
     5628
     5629/* Line 1806 of yacc.c  */
     5630#line 640 "parser.yy"
     5631    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    50485632    break;
    50495633
    50505634  case 127:
    5051 #line 645 "parser.yy" /* yacc.c:1646  */
    5052     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    5053 #line 5054 "Parser/parser.cc" /* yacc.c:1646  */
     5635
     5636/* Line 1806 of yacc.c  */
     5637#line 646 "parser.yy"
     5638    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    50545639    break;
    50555640
    50565641  case 128:
    5057 #line 650 "parser.yy" /* yacc.c:1646  */
     5642
     5643/* Line 1806 of yacc.c  */
     5644#line 651 "parser.yy"
    50585645    { (yyval.en) = 0; }
    5059 #line 5060 "Parser/parser.cc" /* yacc.c:1646  */
    50605646    break;
    50615647
    50625648  case 132:
    5063 #line 659 "parser.yy" /* yacc.c:1646  */
    5064     { (yyval.sn) = (yyvsp[0].sn); }
    5065 #line 5066 "Parser/parser.cc" /* yacc.c:1646  */
     5649
     5650/* Line 1806 of yacc.c  */
     5651#line 660 "parser.yy"
     5652    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    50665653    break;
    50675654
    50685655  case 138:
    5069 #line 666 "parser.yy" /* yacc.c:1646  */
     5656
     5657/* Line 1806 of yacc.c  */
     5658#line 667 "parser.yy"
    50705659    {
    50715660                        Token fn;
    5072                         fn.str = new std::string( "^?{}" ); // location undefined
    5073                         (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
     5661                        fn.str = new string( "^?{}" );                          // location undefined
     5662                        (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) ) ) ) ) );
    50745663                }
    5075 #line 5076 "Parser/parser.cc" /* yacc.c:1646  */
    50765664    break;
    50775665
    50785666  case 139:
    5079 #line 676 "parser.yy" /* yacc.c:1646  */
     5667
     5668/* Line 1806 of yacc.c  */
     5669#line 677 "parser.yy"
    50805670    {
    5081                         (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
     5671                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
    50825672                }
    5083 #line 5084 "Parser/parser.cc" /* yacc.c:1646  */
    50845673    break;
    50855674
    50865675  case 140:
    5087 #line 683 "parser.yy" /* yacc.c:1646  */
     5676
     5677/* Line 1806 of yacc.c  */
     5678#line 684 "parser.yy"
    50885679    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    5089 #line 5090 "Parser/parser.cc" /* yacc.c:1646  */
    50905680    break;
    50915681
    50925682  case 141:
    5093 #line 690 "parser.yy" /* yacc.c:1646  */
    5094     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
    5095 #line 5096 "Parser/parser.cc" /* yacc.c:1646  */
     5683
     5684/* Line 1806 of yacc.c  */
     5685#line 691 "parser.yy"
     5686    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    50965687    break;
    50975688
    50985689  case 143:
    5099 #line 696 "parser.yy" /* yacc.c:1646  */
    5100     { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
    5101 #line 5102 "Parser/parser.cc" /* yacc.c:1646  */
     5690
     5691/* Line 1806 of yacc.c  */
     5692#line 697 "parser.yy"
     5693    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    51025694    break;
    51035695
    51045696  case 144:
    5105 #line 701 "parser.yy" /* yacc.c:1646  */
    5106     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
    5107 #line 5108 "Parser/parser.cc" /* yacc.c:1646  */
     5697
     5698/* Line 1806 of yacc.c  */
     5699#line 702 "parser.yy"
     5700    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    51085701    break;
    51095702
    51105703  case 145:
    5111 #line 703 "parser.yy" /* yacc.c:1646  */
     5704
     5705/* Line 1806 of yacc.c  */
     5706#line 704 "parser.yy"
    51125707    {   // mark all fields in list
    5113                         for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5708                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    51145709                                iter->set_extension( true );
    5115                         (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
     5710                        (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
    51165711                }
    5117 #line 5118 "Parser/parser.cc" /* yacc.c:1646  */
    51185712    break;
    51195713
    51205714  case 146:
    5121 #line 709 "parser.yy" /* yacc.c:1646  */
    5122     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
    5123 #line 5124 "Parser/parser.cc" /* yacc.c:1646  */
     5715
     5716/* Line 1806 of yacc.c  */
     5717#line 710 "parser.yy"
     5718    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    51245719    break;
    51255720
    51265721  case 149:
    5127 #line 716 "parser.yy" /* yacc.c:1646  */
    5128     { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
    5129 #line 5130 "Parser/parser.cc" /* yacc.c:1646  */
     5722
     5723/* Line 1806 of yacc.c  */
     5724#line 717 "parser.yy"
     5725    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    51305726    break;
    51315727
    51325728  case 150:
    5133 #line 721 "parser.yy" /* yacc.c:1646  */
    5134     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
    5135 #line 5136 "Parser/parser.cc" /* yacc.c:1646  */
     5729
     5730/* Line 1806 of yacc.c  */
     5731#line 722 "parser.yy"
     5732    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    51365733    break;
    51375734
    51385735  case 151:
    5139 #line 727 "parser.yy" /* yacc.c:1646  */
    5140     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
    5141 #line 5142 "Parser/parser.cc" /* yacc.c:1646  */
     5736
     5737/* Line 1806 of yacc.c  */
     5738#line 728 "parser.yy"
     5739    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    51425740    break;
    51435741
    51445742  case 152:
    5145 #line 729 "parser.yy" /* yacc.c:1646  */
    5146     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
    5147 #line 5148 "Parser/parser.cc" /* yacc.c:1646  */
     5743
     5744/* Line 1806 of yacc.c  */
     5745#line 730 "parser.yy"
     5746    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    51485747    break;
    51495748
    51505749  case 153:
    5151 #line 731 "parser.yy" /* yacc.c:1646  */
    5152     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5153 #line 5154 "Parser/parser.cc" /* yacc.c:1646  */
     5750
     5751/* Line 1806 of yacc.c  */
     5752#line 732 "parser.yy"
     5753    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    51545754    break;
    51555755
    51565756  case 154:
    5157 #line 733 "parser.yy" /* yacc.c:1646  */
     5757
     5758/* Line 1806 of yacc.c  */
     5759#line 734 "parser.yy"
    51585760    {
    5159                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5761                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    51605762                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    51615763                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    51635765                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    51645766                        // statement.
    5165                         (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
     5767                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    51665768                }
    5167 #line 5168 "Parser/parser.cc" /* yacc.c:1646  */
    51685769    break;
    51695770
    51705771  case 155:
    5171 #line 743 "parser.yy" /* yacc.c:1646  */
    5172     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5173 #line 5174 "Parser/parser.cc" /* yacc.c:1646  */
     5772
     5773/* Line 1806 of yacc.c  */
     5774#line 744 "parser.yy"
     5775    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    51745776    break;
    51755777
    51765778  case 156:
    5177 #line 745 "parser.yy" /* yacc.c:1646  */
     5779
     5780/* Line 1806 of yacc.c  */
     5781#line 746 "parser.yy"
    51785782    {
    5179                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    5180                         (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
     5783                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5784                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    51815785                }
    5182 #line 5183 "Parser/parser.cc" /* yacc.c:1646  */
    51835786    break;
    51845787
    51855788  case 157:
    5186 #line 755 "parser.yy" /* yacc.c:1646  */
    5187     { (yyval.en) = (yyvsp[0].en); }
    5188 #line 5189 "Parser/parser.cc" /* yacc.c:1646  */
     5789
     5790/* Line 1806 of yacc.c  */
     5791#line 756 "parser.yy"
     5792    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51895793    break;
    51905794
    51915795  case 158:
    5192 #line 757 "parser.yy" /* yacc.c:1646  */
    5193     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    5194 #line 5195 "Parser/parser.cc" /* yacc.c:1646  */
     5796
     5797/* Line 1806 of yacc.c  */
     5798#line 758 "parser.yy"
     5799    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    51955800    break;
    51965801
    51975802  case 160:
    5198 #line 762 "parser.yy" /* yacc.c:1646  */
    5199     { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
    5200 #line 5201 "Parser/parser.cc" /* yacc.c:1646  */
     5803
     5804/* Line 1806 of yacc.c  */
     5805#line 763 "parser.yy"
     5806    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    52015807    break;
    52025808
    52035809  case 161:
    5204 #line 764 "parser.yy" /* yacc.c:1646  */
    5205     { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
    5206 #line 5207 "Parser/parser.cc" /* yacc.c:1646  */
     5810
     5811/* Line 1806 of yacc.c  */
     5812#line 765 "parser.yy"
     5813    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    52075814    break;
    52085815
    52095816  case 162:
    5210 #line 768 "parser.yy" /* yacc.c:1646  */
    5211     { (yyval.sn) = (yyvsp[-1].sn); }
    5212 #line 5213 "Parser/parser.cc" /* yacc.c:1646  */
     5817
     5818/* Line 1806 of yacc.c  */
     5819#line 769 "parser.yy"
     5820    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    52135821    break;
    52145822
    52155823  case 163:
    5216 #line 769 "parser.yy" /* yacc.c:1646  */
     5824
     5825/* Line 1806 of yacc.c  */
     5826#line 770 "parser.yy"
    52175827    { (yyval.sn) = new StatementNode( build_default() ); }
    5218 #line 5219 "Parser/parser.cc" /* yacc.c:1646  */
    52195828    break;
    52205829
    52215830  case 165:
    5222 #line 775 "parser.yy" /* yacc.c:1646  */
    5223     { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
    5224 #line 5225 "Parser/parser.cc" /* yacc.c:1646  */
     5831
     5832/* Line 1806 of yacc.c  */
     5833#line 776 "parser.yy"
     5834    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    52255835    break;
    52265836
    52275837  case 166:
    5228 #line 779 "parser.yy" /* yacc.c:1646  */
    5229     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
    5230 #line 5231 "Parser/parser.cc" /* yacc.c:1646  */
     5838
     5839/* Line 1806 of yacc.c  */
     5840#line 780 "parser.yy"
     5841    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    52315842    break;
    52325843
    52335844  case 167:
    5234 #line 784 "parser.yy" /* yacc.c:1646  */
     5845
     5846/* Line 1806 of yacc.c  */
     5847#line 785 "parser.yy"
    52355848    { (yyval.sn) = 0; }
    5236 #line 5237 "Parser/parser.cc" /* yacc.c:1646  */
    52375849    break;
    52385850
    52395851  case 169:
    5240 #line 790 "parser.yy" /* yacc.c:1646  */
    5241     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
    5242 #line 5243 "Parser/parser.cc" /* yacc.c:1646  */
     5852
     5853/* Line 1806 of yacc.c  */
     5854#line 791 "parser.yy"
     5855    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    52435856    break;
    52445857
    52455858  case 170:
    5246 #line 792 "parser.yy" /* yacc.c:1646  */
    5247     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
    5248 #line 5249 "Parser/parser.cc" /* yacc.c:1646  */
     5859
     5860/* Line 1806 of yacc.c  */
     5861#line 793 "parser.yy"
     5862    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    52495863    break;
    52505864
    52515865  case 171:
    5252 #line 797 "parser.yy" /* yacc.c:1646  */
     5866
     5867/* Line 1806 of yacc.c  */
     5868#line 798 "parser.yy"
    52535869    { (yyval.sn) = 0; }
    5254 #line 5255 "Parser/parser.cc" /* yacc.c:1646  */
    52555870    break;
    52565871
    52575872  case 173:
    5258 #line 803 "parser.yy" /* yacc.c:1646  */
    5259     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
    5260 #line 5261 "Parser/parser.cc" /* yacc.c:1646  */
     5873
     5874/* Line 1806 of yacc.c  */
     5875#line 804 "parser.yy"
     5876    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    52615877    break;
    52625878
    52635879  case 174:
    5264 #line 805 "parser.yy" /* yacc.c:1646  */
    5265     { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
    5266 #line 5267 "Parser/parser.cc" /* yacc.c:1646  */
     5880
     5881/* Line 1806 of yacc.c  */
     5882#line 806 "parser.yy"
     5883    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    52675884    break;
    52685885
    52695886  case 175:
    5270 #line 807 "parser.yy" /* yacc.c:1646  */
    5271     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
    5272 #line 5273 "Parser/parser.cc" /* yacc.c:1646  */
     5887
     5888/* Line 1806 of yacc.c  */
     5889#line 808 "parser.yy"
     5890    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    52735891    break;
    52745892
    52755893  case 176:
    5276 #line 809 "parser.yy" /* yacc.c:1646  */
    5277     { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); }
    5278 #line 5279 "Parser/parser.cc" /* yacc.c:1646  */
     5894
     5895/* Line 1806 of yacc.c  */
     5896#line 810 "parser.yy"
     5897    { (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) ) ) ) ) ) ); }
    52795898    break;
    52805899
    52815900  case 177:
    5282 #line 814 "parser.yy" /* yacc.c:1646  */
     5901
     5902/* Line 1806 of yacc.c  */
     5903#line 815 "parser.yy"
    52835904    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    5284 #line 5285 "Parser/parser.cc" /* yacc.c:1646  */
    52855905    break;
    52865906
    52875907  case 179:
    5288 #line 820 "parser.yy" /* yacc.c:1646  */
     5908
     5909/* Line 1806 of yacc.c  */
     5910#line 821 "parser.yy"
    52895911    { (yyval.sn) = 0; }
    5290 #line 5291 "Parser/parser.cc" /* yacc.c:1646  */
    52915912    break;
    52925913
    52935914  case 180:
    5294 #line 822 "parser.yy" /* yacc.c:1646  */
     5915
     5916/* Line 1806 of yacc.c  */
     5917#line 823 "parser.yy"
    52955918    { (yyval.sn) = 0; }
    5296 #line 5297 "Parser/parser.cc" /* yacc.c:1646  */
    52975919    break;
    52985920
    52995921  case 181:
    5300 #line 827 "parser.yy" /* yacc.c:1646  */
    5301     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5302 #line 5303 "Parser/parser.cc" /* yacc.c:1646  */
     5922
     5923/* Line 1806 of yacc.c  */
     5924#line 828 "parser.yy"
     5925    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    53035926    break;
    53045927
    53055928  case 182:
    5306 #line 829 "parser.yy" /* yacc.c:1646  */
    5307     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); }
    5308 #line 5309 "Parser/parser.cc" /* yacc.c:1646  */
     5929
     5930/* Line 1806 of yacc.c  */
     5931#line 830 "parser.yy"
     5932    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    53095933    break;
    53105934
    53115935  case 183:
    5312 #line 831 "parser.yy" /* yacc.c:1646  */
    5313     { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
    5314 #line 5315 "Parser/parser.cc" /* yacc.c:1646  */
     5936
     5937/* Line 1806 of yacc.c  */
     5938#line 832 "parser.yy"
     5939    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    53155940    break;
    53165941
    53175942  case 184:
    5318 #line 836 "parser.yy" /* yacc.c:1646  */
    5319     { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
    5320 #line 5321 "Parser/parser.cc" /* yacc.c:1646  */
     5943
     5944/* Line 1806 of yacc.c  */
     5945#line 837 "parser.yy"
     5946    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    53215947    break;
    53225948
    53235949  case 185:
    5324 #line 838 "parser.yy" /* yacc.c:1646  */
    5325     { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
    5326 #line 5327 "Parser/parser.cc" /* yacc.c:1646  */
     5950
     5951/* Line 1806 of yacc.c  */
     5952#line 839 "parser.yy"
     5953    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    53275954    break;
    53285955
    53295956  case 186:
    5330 #line 843 "parser.yy" /* yacc.c:1646  */
    5331     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); }
    5332 #line 5333 "Parser/parser.cc" /* yacc.c:1646  */
     5957
     5958/* Line 1806 of yacc.c  */
     5959#line 844 "parser.yy"
     5960    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    53335961    break;
    53345962
    53355963  case 187:
    5336 #line 847 "parser.yy" /* yacc.c:1646  */
    5337     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
    5338 #line 5339 "Parser/parser.cc" /* yacc.c:1646  */
     5964
     5965/* Line 1806 of yacc.c  */
     5966#line 848 "parser.yy"
     5967    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    53395968    break;
    53405969
    53415970  case 188:
    5342 #line 850 "parser.yy" /* yacc.c:1646  */
     5971
     5972/* Line 1806 of yacc.c  */
     5973#line 851 "parser.yy"
    53435974    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    5344 #line 5345 "Parser/parser.cc" /* yacc.c:1646  */
    53455975    break;
    53465976
    53475977  case 189:
    5348 #line 854 "parser.yy" /* yacc.c:1646  */
    5349     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); }
    5350 #line 5351 "Parser/parser.cc" /* yacc.c:1646  */
     5978
     5979/* Line 1806 of yacc.c  */
     5980#line 855 "parser.yy"
     5981    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    53515982    break;
    53525983
    53535984  case 190:
    5354 #line 857 "parser.yy" /* yacc.c:1646  */
     5985
     5986/* Line 1806 of yacc.c  */
     5987#line 858 "parser.yy"
    53555988    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    5356 #line 5357 "Parser/parser.cc" /* yacc.c:1646  */
    53575989    break;
    53585990
    53595991  case 191:
    5360 #line 861 "parser.yy" /* yacc.c:1646  */
    5361     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); }
    5362 #line 5363 "Parser/parser.cc" /* yacc.c:1646  */
     5992
     5993/* Line 1806 of yacc.c  */
     5994#line 862 "parser.yy"
     5995    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    53635996    break;
    53645997
    53655998  case 192:
    5366 #line 863 "parser.yy" /* yacc.c:1646  */
    5367     { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
    5368 #line 5369 "Parser/parser.cc" /* yacc.c:1646  */
     5999
     6000/* Line 1806 of yacc.c  */
     6001#line 864 "parser.yy"
     6002    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    53696003    break;
    53706004
    53716005  case 193:
    5372 #line 865 "parser.yy" /* yacc.c:1646  */
    5373     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
    5374 #line 5375 "Parser/parser.cc" /* yacc.c:1646  */
     6006
     6007/* Line 1806 of yacc.c  */
     6008#line 866 "parser.yy"
     6009    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    53756010    break;
    53766011
    53776012  case 194:
    5378 #line 867 "parser.yy" /* yacc.c:1646  */
    5379     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
    5380 #line 5381 "Parser/parser.cc" /* yacc.c:1646  */
     6013
     6014/* Line 1806 of yacc.c  */
     6015#line 868 "parser.yy"
     6016    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    53816017    break;
    53826018
    53836019  case 195:
    5384 #line 869 "parser.yy" /* yacc.c:1646  */
    5385     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
    5386 #line 5387 "Parser/parser.cc" /* yacc.c:1646  */
     6020
     6021/* Line 1806 of yacc.c  */
     6022#line 870 "parser.yy"
     6023    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    53876024    break;
    53886025
    53896026  case 196:
    5390 #line 874 "parser.yy" /* yacc.c:1646  */
    5391     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
    5392 #line 5393 "Parser/parser.cc" /* yacc.c:1646  */
     6027
     6028/* Line 1806 of yacc.c  */
     6029#line 875 "parser.yy"
     6030    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    53936031    break;
    53946032
    53956033  case 197:
    5396 #line 876 "parser.yy" /* yacc.c:1646  */
    5397     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
    5398 #line 5399 "Parser/parser.cc" /* yacc.c:1646  */
     6034
     6035/* Line 1806 of yacc.c  */
     6036#line 877 "parser.yy"
     6037    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    53996038    break;
    54006039
    54016040  case 198:
    5402 #line 878 "parser.yy" /* yacc.c:1646  */
    5403     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
    5404 #line 5405 "Parser/parser.cc" /* yacc.c:1646  */
     6041
     6042/* Line 1806 of yacc.c  */
     6043#line 879 "parser.yy"
     6044    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    54056045    break;
    54066046
    54076047  case 200:
    5408 #line 885 "parser.yy" /* yacc.c:1646  */
    5409     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
    5410 #line 5411 "Parser/parser.cc" /* yacc.c:1646  */
     6048
     6049/* Line 1806 of yacc.c  */
     6050#line 886 "parser.yy"
     6051    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    54116052    break;
    54126053
    54136054  case 201:
    5414 #line 887 "parser.yy" /* yacc.c:1646  */
    5415     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
    5416 #line 5417 "Parser/parser.cc" /* yacc.c:1646  */
     6055
     6056/* Line 1806 of yacc.c  */
     6057#line 888 "parser.yy"
     6058    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    54176059    break;
    54186060
    54196061  case 202:
    5420 #line 889 "parser.yy" /* yacc.c:1646  */
    5421     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
    5422 #line 5423 "Parser/parser.cc" /* yacc.c:1646  */
     6062
     6063/* Line 1806 of yacc.c  */
     6064#line 890 "parser.yy"
     6065    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    54236066    break;
    54246067
    54256068  case 203:
    5426 #line 891 "parser.yy" /* yacc.c:1646  */
    5427     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
    5428 #line 5429 "Parser/parser.cc" /* yacc.c:1646  */
     6069
     6070/* Line 1806 of yacc.c  */
     6071#line 892 "parser.yy"
     6072    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    54296073    break;
    54306074
    54316075  case 204:
    5432 #line 896 "parser.yy" /* yacc.c:1646  */
    5433     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
    5434 #line 5435 "Parser/parser.cc" /* yacc.c:1646  */
     6076
     6077/* Line 1806 of yacc.c  */
     6078#line 897 "parser.yy"
     6079    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    54356080    break;
    54366081
    54376082  case 205:
    5438 #line 898 "parser.yy" /* yacc.c:1646  */
    5439     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
    5440 #line 5441 "Parser/parser.cc" /* yacc.c:1646  */
     6083
     6084/* Line 1806 of yacc.c  */
     6085#line 899 "parser.yy"
     6086    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    54416087    break;
    54426088
    54436089  case 206:
    5444 #line 900 "parser.yy" /* yacc.c:1646  */
    5445     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
    5446 #line 5447 "Parser/parser.cc" /* yacc.c:1646  */
     6090
     6091/* Line 1806 of yacc.c  */
     6092#line 901 "parser.yy"
     6093    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    54476094    break;
    54486095
    54496096  case 207:
    5450 #line 902 "parser.yy" /* yacc.c:1646  */
    5451     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
    5452 #line 5453 "Parser/parser.cc" /* yacc.c:1646  */
     6097
     6098/* Line 1806 of yacc.c  */
     6099#line 903 "parser.yy"
     6100    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    54536101    break;
    54546102
    54556103  case 208:
    5456 #line 907 "parser.yy" /* yacc.c:1646  */
     6104
     6105/* Line 1806 of yacc.c  */
     6106#line 908 "parser.yy"
    54576107    {
    5458                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
     6108                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
    54596109                }
    5460 #line 5461 "Parser/parser.cc" /* yacc.c:1646  */
    54616110    break;
    54626111
    54636112  case 210:
    5464 #line 920 "parser.yy" /* yacc.c:1646  */
     6113
     6114/* Line 1806 of yacc.c  */
     6115#line 921 "parser.yy"
    54656116    {
    54666117                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5467                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
     6118                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
    54686119                }
    5469 #line 5470 "Parser/parser.cc" /* yacc.c:1646  */
    54706120    break;
    54716121
    54726122  case 211:
    5473 #line 925 "parser.yy" /* yacc.c:1646  */
    5474     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    5475 #line 5476 "Parser/parser.cc" /* yacc.c:1646  */
     6123
     6124/* Line 1806 of yacc.c  */
     6125#line 926 "parser.yy"
     6126    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    54766127    break;
    54776128
    54786129  case 212:
    5479 #line 927 "parser.yy" /* yacc.c:1646  */
     6130
     6131/* Line 1806 of yacc.c  */
     6132#line 928 "parser.yy"
    54806133    {
    54816134                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5482                         (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
     6135                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
    54836136                }
    5484 #line 5485 "Parser/parser.cc" /* yacc.c:1646  */
    54856137    break;
    54866138
    54876139  case 214:
    5488 #line 936 "parser.yy" /* yacc.c:1646  */
    5489     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
    5490 #line 5491 "Parser/parser.cc" /* yacc.c:1646  */
     6140
     6141/* Line 1806 of yacc.c  */
     6142#line 937 "parser.yy"
     6143    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    54916144    break;
    54926145
    54936146  case 215:
    5494 #line 938 "parser.yy" /* yacc.c:1646  */
    5495     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
    5496 #line 5497 "Parser/parser.cc" /* yacc.c:1646  */
     6147
     6148/* Line 1806 of yacc.c  */
     6149#line 939 "parser.yy"
     6150    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    54976151    break;
    54986152
    54996153  case 216:
    5500 #line 940 "parser.yy" /* yacc.c:1646  */
    5501     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    5502 #line 5503 "Parser/parser.cc" /* yacc.c:1646  */
     6154
     6155/* Line 1806 of yacc.c  */
     6156#line 941 "parser.yy"
     6157    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    55036158    break;
    55046159
    55056160  case 217:
    5506 #line 942 "parser.yy" /* yacc.c:1646  */
    5507     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    5508 #line 5509 "Parser/parser.cc" /* yacc.c:1646  */
     6161
     6162/* Line 1806 of yacc.c  */
     6163#line 943 "parser.yy"
     6164    { (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) ) ); }
    55096165    break;
    55106166
    55116167  case 218:
    5512 #line 944 "parser.yy" /* yacc.c:1646  */
    5513     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
    5514 #line 5515 "Parser/parser.cc" /* yacc.c:1646  */
     6168
     6169/* Line 1806 of yacc.c  */
     6170#line 945 "parser.yy"
     6171    { (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) ) ); }
    55156172    break;
    55166173
    55176174  case 219:
    5518 #line 949 "parser.yy" /* yacc.c:1646  */
     6175
     6176/* Line 1806 of yacc.c  */
     6177#line 950 "parser.yy"
    55196178    { (yyval.flag) = false; }
    5520 #line 5521 "Parser/parser.cc" /* yacc.c:1646  */
    55216179    break;
    55226180
    55236181  case 220:
    5524 #line 951 "parser.yy" /* yacc.c:1646  */
     6182
     6183/* Line 1806 of yacc.c  */
     6184#line 952 "parser.yy"
    55256185    { (yyval.flag) = true; }
    5526 #line 5527 "Parser/parser.cc" /* yacc.c:1646  */
    55276186    break;
    55286187
    55296188  case 221:
    5530 #line 956 "parser.yy" /* yacc.c:1646  */
     6189
     6190/* Line 1806 of yacc.c  */
     6191#line 957 "parser.yy"
    55316192    { (yyval.en) = 0; }
    5532 #line 5533 "Parser/parser.cc" /* yacc.c:1646  */
    55336193    break;
    55346194
    55356195  case 224:
    5536 #line 963 "parser.yy" /* yacc.c:1646  */
    5537     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    5538 #line 5539 "Parser/parser.cc" /* yacc.c:1646  */
     6196
     6197/* Line 1806 of yacc.c  */
     6198#line 964 "parser.yy"
     6199    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    55396200    break;
    55406201
    55416202  case 225:
    5542 #line 968 "parser.yy" /* yacc.c:1646  */
    5543     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
    5544 #line 5545 "Parser/parser.cc" /* yacc.c:1646  */
     6203
     6204/* Line 1806 of yacc.c  */
     6205#line 969 "parser.yy"
     6206    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    55456207    break;
    55466208
    55476209  case 226:
    5548 #line 970 "parser.yy" /* yacc.c:1646  */
    5549     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
    5550 #line 5551 "Parser/parser.cc" /* yacc.c:1646  */
     6210
     6211/* Line 1806 of yacc.c  */
     6212#line 971 "parser.yy"
     6213    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    55516214    break;
    55526215
    55536216  case 227:
    5554 #line 975 "parser.yy" /* yacc.c:1646  */
     6217
     6218/* Line 1806 of yacc.c  */
     6219#line 976 "parser.yy"
    55556220    { (yyval.en) = 0; }
    5556 #line 5557 "Parser/parser.cc" /* yacc.c:1646  */
    55576221    break;
    55586222
    55596223  case 228:
    5560 #line 977 "parser.yy" /* yacc.c:1646  */
    5561     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
    5562 #line 5563 "Parser/parser.cc" /* yacc.c:1646  */
     6224
     6225/* Line 1806 of yacc.c  */
     6226#line 978 "parser.yy"
     6227    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    55636228    break;
    55646229
    55656230  case 229:
    5566 #line 979 "parser.yy" /* yacc.c:1646  */
    5567     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
    5568 #line 5569 "Parser/parser.cc" /* yacc.c:1646  */
     6231
     6232/* Line 1806 of yacc.c  */
     6233#line 980 "parser.yy"
     6234    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    55696235    break;
    55706236
    55716237  case 230:
    5572 #line 984 "parser.yy" /* yacc.c:1646  */
     6238
     6239/* Line 1806 of yacc.c  */
     6240#line 985 "parser.yy"
    55736241    {
    5574                         (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) );
    5575                         delete (yyvsp[0].tok);                                                                  // allocated by lexer
     6242                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     6243                        delete (yyvsp[(1) - (1)].tok);                                                                  // allocated by lexer
    55766244                }
    5577 #line 5578 "Parser/parser.cc" /* yacc.c:1646  */
    55786245    break;
    55796246
    55806247  case 231:
    5581 #line 989 "parser.yy" /* yacc.c:1646  */
     6248
     6249/* Line 1806 of yacc.c  */
     6250#line 990 "parser.yy"
    55826251    {
    5583                         (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );
    5584                         delete (yyvsp[0].tok);                                                                  // allocated by lexer
     6252                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     6253                        delete (yyvsp[(3) - (3)].tok);                                                                  // allocated by lexer
    55856254                }
    5586 #line 5587 "Parser/parser.cc" /* yacc.c:1646  */
    55876255    break;
    55886256
    55896257  case 232:
    5590 #line 999 "parser.yy" /* yacc.c:1646  */
     6258
     6259/* Line 1806 of yacc.c  */
     6260#line 1000 "parser.yy"
    55916261    { (yyval.decl) = 0; }
    5592 #line 5593 "Parser/parser.cc" /* yacc.c:1646  */
    55936262    break;
    55946263
    55956264  case 235:
    5596 #line 1006 "parser.yy" /* yacc.c:1646  */
    5597     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    5598 #line 5599 "Parser/parser.cc" /* yacc.c:1646  */
     6265
     6266/* Line 1806 of yacc.c  */
     6267#line 1007 "parser.yy"
     6268    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    55996269    break;
    56006270
    56016271  case 236:
    5602 #line 1011 "parser.yy" /* yacc.c:1646  */
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1012 "parser.yy"
    56036275    { (yyval.decl) = 0; }
    5604 #line 5605 "Parser/parser.cc" /* yacc.c:1646  */
    56056276    break;
    56066277
    56076278  case 239:
    5608 #line 1018 "parser.yy" /* yacc.c:1646  */
    5609     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    5610 #line 5611 "Parser/parser.cc" /* yacc.c:1646  */
     6279
     6280/* Line 1806 of yacc.c  */
     6281#line 1019 "parser.yy"
     6282    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    56116283    break;
    56126284
    56136285  case 244:
    5614 #line 1032 "parser.yy" /* yacc.c:1646  */
     6286
     6287/* Line 1806 of yacc.c  */
     6288#line 1033 "parser.yy"
    56156289    {}
    5616 #line 5617 "Parser/parser.cc" /* yacc.c:1646  */
    56176290    break;
    56186291
    56196292  case 245:
    5620 #line 1033 "parser.yy" /* yacc.c:1646  */
     6293
     6294/* Line 1806 of yacc.c  */
     6295#line 1034 "parser.yy"
    56216296    {}
    5622 #line 5623 "Parser/parser.cc" /* yacc.c:1646  */
    56236297    break;
    56246298
    56256299  case 253:
    5626 #line 1062 "parser.yy" /* yacc.c:1646  */
     6300
     6301/* Line 1806 of yacc.c  */
     6302#line 1063 "parser.yy"
    56276303    {
    56286304                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5629                         (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
     6305                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
    56306306                }
    5631 #line 5632 "Parser/parser.cc" /* yacc.c:1646  */
    56326307    break;
    56336308
    56346309  case 254:
    5635 #line 1069 "parser.yy" /* yacc.c:1646  */
     6310
     6311/* Line 1806 of yacc.c  */
     6312#line 1070 "parser.yy"
    56366313    {
    56376314                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5638                         (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
     6315                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
    56396316                }
    5640 #line 5641 "Parser/parser.cc" /* yacc.c:1646  */
    56416317    break;
    56426318
    56436319  case 255:
    5644 #line 1074 "parser.yy" /* yacc.c:1646  */
     6320
     6321/* Line 1806 of yacc.c  */
     6322#line 1075 "parser.yy"
    56456323    {
    5646                         typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
    5647                         (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
     6324                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     6325                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
    56486326                }
    5649 #line 5650 "Parser/parser.cc" /* yacc.c:1646  */
    56506327    break;
    56516328
    56526329  case 256:
    5653 #line 1084 "parser.yy" /* yacc.c:1646  */
     6330
     6331/* Line 1806 of yacc.c  */
     6332#line 1085 "parser.yy"
    56546333    {
    5655                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5656                         (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     6334                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     6335                        (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
    56576336                }
    5658 #line 5659 "Parser/parser.cc" /* yacc.c:1646  */
    56596337    break;
    56606338
    56616339  case 257:
    5662 #line 1089 "parser.yy" /* yacc.c:1646  */
     6340
     6341/* Line 1806 of yacc.c  */
     6342#line 1090 "parser.yy"
    56636343    {
    5664                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5665                         (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     6344                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     6345                        (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
    56666346                }
    5667 #line 5668 "Parser/parser.cc" /* yacc.c:1646  */
    56686347    break;
    56696348
    56706349  case 258:
    5671 #line 1094 "parser.yy" /* yacc.c:1646  */
     6350
     6351/* Line 1806 of yacc.c  */
     6352#line 1095 "parser.yy"
    56726353    {
    5673                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5674                         (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
     6354                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     6355                        (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
    56756356                }
    5676 #line 5677 "Parser/parser.cc" /* yacc.c:1646  */
    56776357    break;
    56786358
    56796359  case 259:
    5680 #line 1102 "parser.yy" /* yacc.c:1646  */
     6360
     6361/* Line 1806 of yacc.c  */
     6362#line 1103 "parser.yy"
    56816363    {
    56826364                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5683                         (yyval.decl) = (yyvsp[0].decl);
     6365                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    56846366                }
    5685 #line 5686 "Parser/parser.cc" /* yacc.c:1646  */
    56866367    break;
    56876368
    56886369  case 260:
    5689 #line 1107 "parser.yy" /* yacc.c:1646  */
     6370
     6371/* Line 1806 of yacc.c  */
     6372#line 1108 "parser.yy"
    56906373    {
    56916374                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5692                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
     6375                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
    56936376                }
    5694 #line 5695 "Parser/parser.cc" /* yacc.c:1646  */
    56956377    break;
    56966378
    56976379  case 261:
    5698 #line 1112 "parser.yy" /* yacc.c:1646  */
     6380
     6381/* Line 1806 of yacc.c  */
     6382#line 1113 "parser.yy"
    56996383    {
    57006384                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5701                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
     6385                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
    57026386                }
    5703 #line 5704 "Parser/parser.cc" /* yacc.c:1646  */
    57046387    break;
    57056388
    57066389  case 262:
    5707 #line 1117 "parser.yy" /* yacc.c:1646  */
     6390
     6391/* Line 1806 of yacc.c  */
     6392#line 1118 "parser.yy"
    57086393    {
    57096394                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5710                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
     6395                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
    57116396                }
    5712 #line 5713 "Parser/parser.cc" /* yacc.c:1646  */
    57136397    break;
    57146398
    57156399  case 263:
    5716 #line 1122 "parser.yy" /* yacc.c:1646  */
     6400
     6401/* Line 1806 of yacc.c  */
     6402#line 1123 "parser.yy"
    57176403    {
    5718                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
    5719                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6404                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     6405                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    57206406                }
    5721 #line 5722 "Parser/parser.cc" /* yacc.c:1646  */
    57226407    break;
    57236408
    57246409  case 264:
    5725 #line 1130 "parser.yy" /* yacc.c:1646  */
     6410
     6411/* Line 1806 of yacc.c  */
     6412#line 1131 "parser.yy"
    57266413    {
    5727                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
     6414                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
    57286415                }
    5729 #line 5730 "Parser/parser.cc" /* yacc.c:1646  */
    57306416    break;
    57316417
    57326418  case 265:
    5733 #line 1153 "parser.yy" /* yacc.c:1646  */
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1154 "parser.yy"
    57346422    {
    5735                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
     6423                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    57366424                }
    5737 #line 5738 "Parser/parser.cc" /* yacc.c:1646  */
    57386425    break;
    57396426
    57406427  case 266:
    5741 #line 1157 "parser.yy" /* yacc.c:1646  */
     6428
     6429/* Line 1806 of yacc.c  */
     6430#line 1158 "parser.yy"
    57426431    {
    5743                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
     6432                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    57446433                }
    5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646  */
    57466434    break;
    57476435
    57486436  case 267:
    5749 #line 1164 "parser.yy" /* yacc.c:1646  */
    5750     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
    5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646  */
     6437
     6438/* Line 1806 of yacc.c  */
     6439#line 1165 "parser.yy"
     6440    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    57526441    break;
    57536442
    57546443  case 268:
    5755 #line 1168 "parser.yy" /* yacc.c:1646  */
    5756     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
    5757 #line 5758 "Parser/parser.cc" /* yacc.c:1646  */
     6444
     6445/* Line 1806 of yacc.c  */
     6446#line 1169 "parser.yy"
     6447    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    57586448    break;
    57596449
    57606450  case 269:
    5761 #line 1173 "parser.yy" /* yacc.c:1646  */
     6451
     6452/* Line 1806 of yacc.c  */
     6453#line 1174 "parser.yy"
    57626454    {
    57636455                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5764                         (yyval.decl) = (yyvsp[0].decl)->addTypedef();
     6456                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    57656457                }
    5766 #line 5767 "Parser/parser.cc" /* yacc.c:1646  */
    57676458    break;
    57686459
    57696460  case 270:
    5770 #line 1178 "parser.yy" /* yacc.c:1646  */
     6461
     6462/* Line 1806 of yacc.c  */
     6463#line 1179 "parser.yy"
    57716464    {
    57726465                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5773                         (yyval.decl) = (yyvsp[0].decl)->addTypedef();
     6466                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    57746467                }
    5775 #line 5776 "Parser/parser.cc" /* yacc.c:1646  */
    57766468    break;
    57776469
    57786470  case 271:
    5779 #line 1183 "parser.yy" /* yacc.c:1646  */
     6471
     6472/* Line 1806 of yacc.c  */
     6473#line 1184 "parser.yy"
    57806474    {
    5781                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
    5782                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6475                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     6476                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    57836477                }
    5784 #line 5785 "Parser/parser.cc" /* yacc.c:1646  */
    57856478    break;
    57866479
    57876480  case 272:
    5788 #line 1194 "parser.yy" /* yacc.c:1646  */
     6481
     6482/* Line 1806 of yacc.c  */
     6483#line 1195 "parser.yy"
    57896484    {
    57906485                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5791                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
     6486                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
    57926487                }
    5793 #line 5794 "Parser/parser.cc" /* yacc.c:1646  */
    57946488    break;
    57956489
    57966490  case 273:
    5797 #line 1199 "parser.yy" /* yacc.c:1646  */
     6491
     6492/* Line 1806 of yacc.c  */
     6493#line 1200 "parser.yy"
    57986494    {
    57996495                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5800                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
     6496                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
    58016497                }
    5802 #line 5803 "Parser/parser.cc" /* yacc.c:1646  */
    58036498    break;
    58046499
    58056500  case 274:
    5806 #line 1204 "parser.yy" /* yacc.c:1646  */
     6501
     6502/* Line 1806 of yacc.c  */
     6503#line 1205 "parser.yy"
    58076504    {
    58086505                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5809                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
     6506                        (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
    58106507                }
    5811 #line 5812 "Parser/parser.cc" /* yacc.c:1646  */
    58126508    break;
    58136509
    58146510  case 275:
    5815 #line 1209 "parser.yy" /* yacc.c:1646  */
     6511
     6512/* Line 1806 of yacc.c  */
     6513#line 1210 "parser.yy"
    58166514    {
    58176515                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5818                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
     6516                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
    58196517                }
    5820 #line 5821 "Parser/parser.cc" /* yacc.c:1646  */
    58216518    break;
    58226519
    58236520  case 276:
    5824 #line 1214 "parser.yy" /* yacc.c:1646  */
     6521
     6522/* Line 1806 of yacc.c  */
     6523#line 1215 "parser.yy"
    58256524    {
    58266525                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5827                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
     6526                        (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
    58286527                }
    5829 #line 5830 "Parser/parser.cc" /* yacc.c:1646  */
    58306528    break;
    58316529
    58326530  case 277:
    5833 #line 1223 "parser.yy" /* yacc.c:1646  */
     6531
     6532/* Line 1806 of yacc.c  */
     6533#line 1224 "parser.yy"
    58346534    {
    5835                         typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
     6535                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
    58366536                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    58376537                }
    5838 #line 5839 "Parser/parser.cc" /* yacc.c:1646  */
    58396538    break;
    58406539
    58416540  case 278:
    5842 #line 1228 "parser.yy" /* yacc.c:1646  */
     6541
     6542/* Line 1806 of yacc.c  */
     6543#line 1229 "parser.yy"
    58436544    {
    5844                         typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
     6545                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
    58456546                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    58466547                }
    5847 #line 5848 "Parser/parser.cc" /* yacc.c:1646  */
    58486548    break;
    58496549
    58506550  case 283:
    5851 #line 1245 "parser.yy" /* yacc.c:1646  */
     6551
     6552/* Line 1806 of yacc.c  */
     6553#line 1246 "parser.yy"
    58526554    {
    58536555                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5854                         (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
     6556                        (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
    58556557                }
    5856 #line 5857 "Parser/parser.cc" /* yacc.c:1646  */
    58576558    break;
    58586559
    58596560  case 284:
    5860 #line 1250 "parser.yy" /* yacc.c:1646  */
     6561
     6562/* Line 1806 of yacc.c  */
     6563#line 1251 "parser.yy"
    58616564    {
    58626565                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5863                         (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
     6566                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
    58646567                }
    5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646  */
    58666568    break;
    58676569
    58686570  case 293:
    5869 #line 1272 "parser.yy" /* yacc.c:1646  */
     6571
     6572/* Line 1806 of yacc.c  */
     6573#line 1273 "parser.yy"
    58706574    { (yyval.decl) = 0; }
    5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646  */
    58726575    break;
    58736576
    58746577  case 296:
    5875 #line 1284 "parser.yy" /* yacc.c:1646  */
    5876     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646  */
     6578
     6579/* Line 1806 of yacc.c  */
     6580#line 1285 "parser.yy"
     6581    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    58786582    break;
    58796583
    58806584  case 299:
    5881 #line 1295 "parser.yy" /* yacc.c:1646  */
     6585
     6586/* Line 1806 of yacc.c  */
     6587#line 1296 "parser.yy"
    58826588    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646  */
    58846589    break;
    58856590
    58866591  case 300:
    5887 #line 1297 "parser.yy" /* yacc.c:1646  */
     6592
     6593/* Line 1806 of yacc.c  */
     6594#line 1298 "parser.yy"
    58886595    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646  */
    58906596    break;
    58916597
    58926598  case 301:
    5893 #line 1299 "parser.yy" /* yacc.c:1646  */
     6599
     6600/* Line 1806 of yacc.c  */
     6601#line 1300 "parser.yy"
    58946602    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646  */
    58966603    break;
    58976604
    58986605  case 302:
    5899 #line 1301 "parser.yy" /* yacc.c:1646  */
     6606
     6607/* Line 1806 of yacc.c  */
     6608#line 1302 "parser.yy"
    59006609    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646  */
    59026610    break;
    59036611
    59046612  case 303:
    5905 #line 1303 "parser.yy" /* yacc.c:1646  */
     6613
     6614/* Line 1806 of yacc.c  */
     6615#line 1304 "parser.yy"
    59066616    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    5907 #line 5908 "Parser/parser.cc" /* yacc.c:1646  */
    59086617    break;
    59096618
    59106619  case 304:
    5911 #line 1305 "parser.yy" /* yacc.c:1646  */
     6620
     6621/* Line 1806 of yacc.c  */
     6622#line 1306 "parser.yy"
    59126623    {
    59136624                        typedefTable.enterScope();
    59146625                }
    5915 #line 5916 "Parser/parser.cc" /* yacc.c:1646  */
    59166626    break;
    59176627
    59186628  case 305:
    5919 #line 1309 "parser.yy" /* yacc.c:1646  */
     6629
     6630/* Line 1806 of yacc.c  */
     6631#line 1310 "parser.yy"
    59206632    {
    59216633                        typedefTable.leaveScope();
    5922                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
     6634                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
    59236635                }
    5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646  */
    59256636    break;
    59266637
    59276638  case 307:
    5928 #line 1318 "parser.yy" /* yacc.c:1646  */
    5929     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646  */
     6639
     6640/* Line 1806 of yacc.c  */
     6641#line 1319 "parser.yy"
     6642    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    59316643    break;
    59326644
    59336645  case 308:
    5934 #line 1320 "parser.yy" /* yacc.c:1646  */
    5935     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646  */
     6646
     6647/* Line 1806 of yacc.c  */
     6648#line 1321 "parser.yy"
     6649    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    59376650    break;
    59386651
    59396652  case 310:
    5940 #line 1331 "parser.yy" /* yacc.c:1646  */
    5941     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646  */
     6653
     6654/* Line 1806 of yacc.c  */
     6655#line 1332 "parser.yy"
     6656    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    59436657    break;
    59446658
    59456659  case 311:
    5946 #line 1336 "parser.yy" /* yacc.c:1646  */
     6660
     6661/* Line 1806 of yacc.c  */
     6662#line 1337 "parser.yy"
    59476663    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646  */
    59496664    break;
    59506665
    59516666  case 312:
    5952 #line 1338 "parser.yy" /* yacc.c:1646  */
     6667
     6668/* Line 1806 of yacc.c  */
     6669#line 1339 "parser.yy"
    59536670    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646  */
    59556671    break;
    59566672
    59576673  case 313:
    5958 #line 1340 "parser.yy" /* yacc.c:1646  */
     6674
     6675/* Line 1806 of yacc.c  */
     6676#line 1341 "parser.yy"
    59596677    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646  */
    59616678    break;
    59626679
    59636680  case 314:
    5964 #line 1342 "parser.yy" /* yacc.c:1646  */
     6681
     6682/* Line 1806 of yacc.c  */
     6683#line 1343 "parser.yy"
    59656684    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646  */
    59676685    break;
    59686686
    59696687  case 315:
    5970 #line 1345 "parser.yy" /* yacc.c:1646  */
     6688
     6689/* Line 1806 of yacc.c  */
     6690#line 1346 "parser.yy"
    59716691    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646  */
    59736692    break;
    59746693
    59756694  case 316:
    5976 #line 1347 "parser.yy" /* yacc.c:1646  */
     6695
     6696/* Line 1806 of yacc.c  */
     6697#line 1348 "parser.yy"
    59776698    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646  */
    59796699    break;
    59806700
    59816701  case 317:
    5982 #line 1350 "parser.yy" /* yacc.c:1646  */
     6702
     6703/* Line 1806 of yacc.c  */
     6704#line 1351 "parser.yy"
    59836705    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646  */
    59856706    break;
    59866707
    59876708  case 318:
    5988 #line 1352 "parser.yy" /* yacc.c:1646  */
     6709
     6710/* Line 1806 of yacc.c  */
     6711#line 1353 "parser.yy"
    59896712    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646  */
    59916713    break;
    59926714
    59936715  case 319:
    5994 #line 1357 "parser.yy" /* yacc.c:1646  */
     6716
     6717/* Line 1806 of yacc.c  */
     6718#line 1358 "parser.yy"
    59956719    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646  */
    59976720    break;
    59986721
    59996722  case 320:
    6000 #line 1359 "parser.yy" /* yacc.c:1646  */
     6723
     6724/* Line 1806 of yacc.c  */
     6725#line 1360 "parser.yy"
    60016726    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646  */
    60036727    break;
    60046728
    60056729  case 321:
    6006 #line 1361 "parser.yy" /* yacc.c:1646  */
     6730
     6731/* Line 1806 of yacc.c  */
     6732#line 1362 "parser.yy"
    60076733    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646  */
    60096734    break;
    60106735
    60116736  case 322:
    6012 #line 1363 "parser.yy" /* yacc.c:1646  */
     6737
     6738/* Line 1806 of yacc.c  */
     6739#line 1364 "parser.yy"
    60136740    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646  */
    60156741    break;
    60166742
    60176743  case 323:
    6018 #line 1365 "parser.yy" /* yacc.c:1646  */
    6019     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646  */
     6744
     6745/* Line 1806 of yacc.c  */
     6746#line 1366 "parser.yy"
     6747    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    60216748    break;
    60226749
    60236750  case 324:
    6024 #line 1367 "parser.yy" /* yacc.c:1646  */
    6025     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646  */
     6751
     6752/* Line 1806 of yacc.c  */
     6753#line 1368 "parser.yy"
     6754    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    60276755    break;
    60286756
    60296757  case 325:
    6030 #line 1369 "parser.yy" /* yacc.c:1646  */
    6031     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646  */
     6758
     6759/* Line 1806 of yacc.c  */
     6760#line 1370 "parser.yy"
     6761    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    60336762    break;
    60346763
    60356764  case 326:
    6036 #line 1371 "parser.yy" /* yacc.c:1646  */
    6037     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646  */
     6765
     6766/* Line 1806 of yacc.c  */
     6767#line 1372 "parser.yy"
     6768    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    60396769    break;
    60406770
    60416771  case 327:
    6042 #line 1373 "parser.yy" /* yacc.c:1646  */
     6772
     6773/* Line 1806 of yacc.c  */
     6774#line 1374 "parser.yy"
    60436775    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646  */
    60456776    break;
    60466777
    60476778  case 328:
    6048 #line 1375 "parser.yy" /* yacc.c:1646  */
     6779
     6780/* Line 1806 of yacc.c  */
     6781#line 1376 "parser.yy"
    60496782    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646  */
    60516783    break;
    60526784
    60536785  case 329:
    6054 #line 1377 "parser.yy" /* yacc.c:1646  */
    6055     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646  */
     6786
     6787/* Line 1806 of yacc.c  */
     6788#line 1378 "parser.yy"
     6789    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    60576790    break;
    60586791
    60596792  case 330:
    6060 #line 1379 "parser.yy" /* yacc.c:1646  */
    6061     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646  */
     6793
     6794/* Line 1806 of yacc.c  */
     6795#line 1380 "parser.yy"
     6796    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    60636797    break;
    60646798
    60656799  case 331:
    6066 #line 1381 "parser.yy" /* yacc.c:1646  */
     6800
     6801/* Line 1806 of yacc.c  */
     6802#line 1382 "parser.yy"
    60676803    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646  */
    60696804    break;
    60706805
    60716806  case 333:
    6072 #line 1388 "parser.yy" /* yacc.c:1646  */
    6073     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646  */
     6807
     6808/* Line 1806 of yacc.c  */
     6809#line 1389 "parser.yy"
     6810    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    60756811    break;
    60766812
    60776813  case 334:
    6078 #line 1390 "parser.yy" /* yacc.c:1646  */
    6079     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646  */
     6814
     6815/* Line 1806 of yacc.c  */
     6816#line 1391 "parser.yy"
     6817    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    60816818    break;
    60826819
    60836820  case 335:
    6084 #line 1392 "parser.yy" /* yacc.c:1646  */
    6085     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646  */
     6821
     6822/* Line 1806 of yacc.c  */
     6823#line 1393 "parser.yy"
     6824    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    60876825    break;
    60886826
    60896827  case 336:
    6090 #line 1394 "parser.yy" /* yacc.c:1646  */
    6091     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
    6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646  */
     6828
     6829/* Line 1806 of yacc.c  */
     6830#line 1395 "parser.yy"
     6831    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    60936832    break;
    60946833
    60956834  case 338:
    6096 #line 1400 "parser.yy" /* yacc.c:1646  */
    6097     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646  */
     6835
     6836/* Line 1806 of yacc.c  */
     6837#line 1401 "parser.yy"
     6838    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    60996839    break;
    61006840
    61016841  case 340:
    6102 #line 1407 "parser.yy" /* yacc.c:1646  */
    6103     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646  */
     6842
     6843/* Line 1806 of yacc.c  */
     6844#line 1408 "parser.yy"
     6845    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61056846    break;
    61066847
    61076848  case 341:
    6108 #line 1409 "parser.yy" /* yacc.c:1646  */
    6109     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646  */
     6849
     6850/* Line 1806 of yacc.c  */
     6851#line 1410 "parser.yy"
     6852    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61116853    break;
    61126854
    61136855  case 342:
    6114 #line 1411 "parser.yy" /* yacc.c:1646  */
    6115     { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
    6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646  */
     6856
     6857/* Line 1806 of yacc.c  */
     6858#line 1412 "parser.yy"
     6859    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    61176860    break;
    61186861
    61196862  case 343:
    6120 #line 1416 "parser.yy" /* yacc.c:1646  */
    6121     { (yyval.decl) = (yyvsp[-1].decl); }
    6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646  */
     6863
     6864/* Line 1806 of yacc.c  */
     6865#line 1417 "parser.yy"
     6866    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    61236867    break;
    61246868
    61256869  case 344:
    6126 #line 1418 "parser.yy" /* yacc.c:1646  */
    6127     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
    6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646  */
     6870
     6871/* Line 1806 of yacc.c  */
     6872#line 1419 "parser.yy"
     6873    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    61296874    break;
    61306875
    61316876  case 345:
    6132 #line 1420 "parser.yy" /* yacc.c:1646  */
    6133     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
    6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646  */
     6877
     6878/* Line 1806 of yacc.c  */
     6879#line 1421 "parser.yy"
     6880    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    61356881    break;
    61366882
    61376883  case 346:
    6138 #line 1422 "parser.yy" /* yacc.c:1646  */
    6139     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
    6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646  */
     6884
     6885/* Line 1806 of yacc.c  */
     6886#line 1423 "parser.yy"
     6887    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    61416888    break;
    61426889
    61436890  case 348:
    6144 #line 1428 "parser.yy" /* yacc.c:1646  */
    6145     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646  */
     6891
     6892/* Line 1806 of yacc.c  */
     6893#line 1429 "parser.yy"
     6894    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61476895    break;
    61486896
    61496897  case 349:
    6150 #line 1430 "parser.yy" /* yacc.c:1646  */
    6151     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646  */
     6898
     6899/* Line 1806 of yacc.c  */
     6900#line 1431 "parser.yy"
     6901    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61536902    break;
    61546903
    61556904  case 350:
    6156 #line 1432 "parser.yy" /* yacc.c:1646  */
    6157     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646  */
     6905
     6906/* Line 1806 of yacc.c  */
     6907#line 1433 "parser.yy"
     6908    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61596909    break;
    61606910
    61616911  case 352:
    6162 #line 1438 "parser.yy" /* yacc.c:1646  */
    6163     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646  */
     6912
     6913/* Line 1806 of yacc.c  */
     6914#line 1439 "parser.yy"
     6915    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61656916    break;
    61666917
    61676918  case 353:
    6168 #line 1440 "parser.yy" /* yacc.c:1646  */
    6169     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646  */
     6919
     6920/* Line 1806 of yacc.c  */
     6921#line 1441 "parser.yy"
     6922    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61716923    break;
    61726924
    61736925  case 355:
    6174 #line 1446 "parser.yy" /* yacc.c:1646  */
    6175     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646  */
     6926
     6927/* Line 1806 of yacc.c  */
     6928#line 1447 "parser.yy"
     6929    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61776930    break;
    61786931
    61796932  case 356:
    6180 #line 1448 "parser.yy" /* yacc.c:1646  */
    6181     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6182 #line 6183 "Parser/parser.cc" /* yacc.c:1646  */
     6933
     6934/* Line 1806 of yacc.c  */
     6935#line 1449 "parser.yy"
     6936    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61836937    break;
    61846938
    61856939  case 357:
    6186 #line 1450 "parser.yy" /* yacc.c:1646  */
    6187     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6188 #line 6189 "Parser/parser.cc" /* yacc.c:1646  */
     6940
     6941/* Line 1806 of yacc.c  */
     6942#line 1451 "parser.yy"
     6943    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61896944    break;
    61906945
    61916946  case 358:
    6192 #line 1455 "parser.yy" /* yacc.c:1646  */
    6193     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
    6194 #line 6195 "Parser/parser.cc" /* yacc.c:1646  */
     6947
     6948/* Line 1806 of yacc.c  */
     6949#line 1456 "parser.yy"
     6950    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    61956951    break;
    61966952
    61976953  case 359:
    6198 #line 1457 "parser.yy" /* yacc.c:1646  */
    6199     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
    6200 #line 6201 "Parser/parser.cc" /* yacc.c:1646  */
     6954
     6955/* Line 1806 of yacc.c  */
     6956#line 1458 "parser.yy"
     6957    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    62016958    break;
    62026959
    62036960  case 360:
    6204 #line 1459 "parser.yy" /* yacc.c:1646  */
    6205     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6206 #line 6207 "Parser/parser.cc" /* yacc.c:1646  */
     6961
     6962/* Line 1806 of yacc.c  */
     6963#line 1460 "parser.yy"
     6964    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    62076965    break;
    62086966
    62096967  case 363:
    6210 #line 1469 "parser.yy" /* yacc.c:1646  */
    6211     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); }
    6212 #line 6213 "Parser/parser.cc" /* yacc.c:1646  */
     6968
     6969/* Line 1806 of yacc.c  */
     6970#line 1470 "parser.yy"
     6971    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    62136972    break;
    62146973
    62156974  case 364:
    6216 #line 1471 "parser.yy" /* yacc.c:1646  */
     6975
     6976/* Line 1806 of yacc.c  */
     6977#line 1472 "parser.yy"
    62176978    {
    6218                         typedefTable.makeTypedef( *(yyvsp[0].tok) );
    6219                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false );
     6979                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     6980                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false );
    62206981                }
    6221 #line 6222 "Parser/parser.cc" /* yacc.c:1646  */
    62226982    break;
    62236983
    62246984  case 365:
    6225 #line 1476 "parser.yy" /* yacc.c:1646  */
    6226     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
    6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646  */
     6985
     6986/* Line 1806 of yacc.c  */
     6987#line 1477 "parser.yy"
     6988    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    62286989    break;
    62296990
    62306991  case 366:
    6231 #line 1478 "parser.yy" /* yacc.c:1646  */
    6232     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); }
    6233 #line 6234 "Parser/parser.cc" /* yacc.c:1646  */
     6992
     6993/* Line 1806 of yacc.c  */
     6994#line 1479 "parser.yy"
     6995    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    62346996    break;
    62356997
    62366998  case 367:
    6237 #line 1480 "parser.yy" /* yacc.c:1646  */
    6238     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
    6239 #line 6240 "Parser/parser.cc" /* yacc.c:1646  */
     6999
     7000/* Line 1806 of yacc.c  */
     7001#line 1481 "parser.yy"
     7002    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    62407003    break;
    62417004
    62427005  case 368:
    6243 #line 1482 "parser.yy" /* yacc.c:1646  */
    6244     { (yyval.decl) = (yyvsp[0].decl); }
    6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646  */
     7006
     7007/* Line 1806 of yacc.c  */
     7008#line 1483 "parser.yy"
     7009    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    62467010    break;
    62477011
    62487012  case 369:
    6249 #line 1487 "parser.yy" /* yacc.c:1646  */
     7013
     7014/* Line 1806 of yacc.c  */
     7015#line 1488 "parser.yy"
    62507016    { (yyval.aggKey) = DeclarationNode::Struct; }
    6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646  */
    62527017    break;
    62537018
    62547019  case 370:
    6255 #line 1489 "parser.yy" /* yacc.c:1646  */
     7020
     7021/* Line 1806 of yacc.c  */
     7022#line 1490 "parser.yy"
    62567023    { (yyval.aggKey) = DeclarationNode::Union; }
    6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646  */
    62587024    break;
    62597025
    62607026  case 371:
    6261 #line 1494 "parser.yy" /* yacc.c:1646  */
     7027
     7028/* Line 1806 of yacc.c  */
     7029#line 1495 "parser.yy"
    62627030    { (yyval.decl) = 0; }
    6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646  */
    62647031    break;
    62657032
    62667033  case 372:
    6267 #line 1496 "parser.yy" /* yacc.c:1646  */
    6268     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6269 #line 6270 "Parser/parser.cc" /* yacc.c:1646  */
     7034
     7035/* Line 1806 of yacc.c  */
     7036#line 1497 "parser.yy"
     7037    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    62707038    break;
    62717039
    62727040  case 374:
    6273 #line 1502 "parser.yy" /* yacc.c:1646  */
    6274     { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
    6275 #line 6276 "Parser/parser.cc" /* yacc.c:1646  */
     7041
     7042/* Line 1806 of yacc.c  */
     7043#line 1503 "parser.yy"
     7044    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    62767045    break;
    62777046
    62787047  case 376:
    6279 #line 1505 "parser.yy" /* yacc.c:1646  */
     7048
     7049/* Line 1806 of yacc.c  */
     7050#line 1506 "parser.yy"
    62807051    {   // mark all fields in list
    6281                         for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     7052                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    62827053                                iter->set_extension( true );
    6283                         (yyval.decl) = (yyvsp[-1].decl);
     7054                        (yyval.decl) = (yyvsp[(2) - (3)].decl);
    62847055                }
    6285 #line 6286 "Parser/parser.cc" /* yacc.c:1646  */
    62867056    break;
    62877057
    62887058  case 378:
    6289 #line 1515 "parser.yy" /* yacc.c:1646  */
    6290     { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
    6291 #line 6292 "Parser/parser.cc" /* yacc.c:1646  */
     7059
     7060/* Line 1806 of yacc.c  */
     7061#line 1516 "parser.yy"
     7062    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    62927063    break;
    62937064
    62947065  case 379:
    6295 #line 1517 "parser.yy" /* yacc.c:1646  */
    6296     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
    6297 #line 6298 "Parser/parser.cc" /* yacc.c:1646  */
     7066
     7067/* Line 1806 of yacc.c  */
     7068#line 1518 "parser.yy"
     7069    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    62987070    break;
    62997071
    63007072  case 380:
    6301 #line 1519 "parser.yy" /* yacc.c:1646  */
    6302     { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
    6303 #line 6304 "Parser/parser.cc" /* yacc.c:1646  */
     7073
     7074/* Line 1806 of yacc.c  */
     7075#line 1520 "parser.yy"
     7076    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    63047077    break;
    63057078
    63067079  case 381:
    6307 #line 1524 "parser.yy" /* yacc.c:1646  */
    6308     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6309 #line 6310 "Parser/parser.cc" /* yacc.c:1646  */
     7080
     7081/* Line 1806 of yacc.c  */
     7082#line 1525 "parser.yy"
     7083    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    63107084    break;
    63117085
    63127086  case 382:
    6313 #line 1526 "parser.yy" /* yacc.c:1646  */
    6314     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
    6315 #line 6316 "Parser/parser.cc" /* yacc.c:1646  */
     7087
     7088/* Line 1806 of yacc.c  */
     7089#line 1527 "parser.yy"
     7090    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    63167091    break;
    63177092
    63187093  case 383:
    6319 #line 1531 "parser.yy" /* yacc.c:1646  */
     7094
     7095/* Line 1806 of yacc.c  */
     7096#line 1532 "parser.yy"
    63207097    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646  */
    63227098    break;
    63237099
    63247100  case 384:
    6325 #line 1533 "parser.yy" /* yacc.c:1646  */
    6326     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
    6327 #line 6328 "Parser/parser.cc" /* yacc.c:1646  */
     7101
     7102/* Line 1806 of yacc.c  */
     7103#line 1534 "parser.yy"
     7104    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    63287105    break;
    63297106
    63307107  case 385:
    6331 #line 1536 "parser.yy" /* yacc.c:1646  */
    6332     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
    6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646  */
     7108
     7109/* Line 1806 of yacc.c  */
     7110#line 1537 "parser.yy"
     7111    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    63347112    break;
    63357113
    63367114  case 386:
    6337 #line 1539 "parser.yy" /* yacc.c:1646  */
    6338     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
    6339 #line 6340 "Parser/parser.cc" /* yacc.c:1646  */
     7115
     7116/* Line 1806 of yacc.c  */
     7117#line 1540 "parser.yy"
     7118    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    63407119    break;
    63417120
    63427121  case 388:
    6343 #line 1545 "parser.yy" /* yacc.c:1646  */
     7122
     7123/* Line 1806 of yacc.c  */
     7124#line 1546 "parser.yy"
    63447125    { (yyval.en) = 0; }
    6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646  */
    63467126    break;
    63477127
    63487128  case 389:
    6349 #line 1547 "parser.yy" /* yacc.c:1646  */
    6350     { (yyval.en) = (yyvsp[0].en); }
    6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646  */
     7129
     7130/* Line 1806 of yacc.c  */
     7131#line 1548 "parser.yy"
     7132    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    63527133    break;
    63537134
    63547135  case 390:
    6355 #line 1552 "parser.yy" /* yacc.c:1646  */
    6356     { (yyval.en) = (yyvsp[0].en); }
    6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646  */
     7136
     7137/* Line 1806 of yacc.c  */
     7138#line 1553 "parser.yy"
     7139    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    63587140    break;
    63597141
    63607142  case 392:
    6361 #line 1561 "parser.yy" /* yacc.c:1646  */
    6362     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); }
    6363 #line 6364 "Parser/parser.cc" /* yacc.c:1646  */
     7143
     7144/* Line 1806 of yacc.c  */
     7145#line 1562 "parser.yy"
     7146    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    63647147    break;
    63657148
    63667149  case 393:
    6367 #line 1563 "parser.yy" /* yacc.c:1646  */
     7150
     7151/* Line 1806 of yacc.c  */
     7152#line 1564 "parser.yy"
    63687153    {
    6369                         typedefTable.makeTypedef( *(yyvsp[0].tok) );
    6370                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
     7154                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     7155                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
    63717156                }
    6372 #line 6373 "Parser/parser.cc" /* yacc.c:1646  */
    63737157    break;
    63747158
    63757159  case 394:
    6376 #line 1568 "parser.yy" /* yacc.c:1646  */
    6377     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
    6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646  */
     7160
     7161/* Line 1806 of yacc.c  */
     7162#line 1569 "parser.yy"
     7163    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    63797164    break;
    63807165
    63817166  case 395:
    6382 #line 1570 "parser.yy" /* yacc.c:1646  */
    6383     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
    6384 #line 6385 "Parser/parser.cc" /* yacc.c:1646  */
     7167
     7168/* Line 1806 of yacc.c  */
     7169#line 1571 "parser.yy"
     7170    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    63857171    break;
    63867172
    63877173  case 396:
    6388 #line 1575 "parser.yy" /* yacc.c:1646  */
    6389     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
    6390 #line 6391 "Parser/parser.cc" /* yacc.c:1646  */
     7174
     7175/* Line 1806 of yacc.c  */
     7176#line 1576 "parser.yy"
     7177    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    63917178    break;
    63927179
    63937180  case 397:
    6394 #line 1577 "parser.yy" /* yacc.c:1646  */
    6395     { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
    6396 #line 6397 "Parser/parser.cc" /* yacc.c:1646  */
     7181
     7182/* Line 1806 of yacc.c  */
     7183#line 1578 "parser.yy"
     7184    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    63977185    break;
    63987186
    63997187  case 398:
    6400 #line 1582 "parser.yy" /* yacc.c:1646  */
     7188
     7189/* Line 1806 of yacc.c  */
     7190#line 1583 "parser.yy"
    64017191    { (yyval.en) = 0; }
    6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646  */
    64037192    break;
    64047193
    64057194  case 399:
    6406 #line 1584 "parser.yy" /* yacc.c:1646  */
    6407     { (yyval.en) = (yyvsp[0].en); }
    6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646  */
     7195
     7196/* Line 1806 of yacc.c  */
     7197#line 1585 "parser.yy"
     7198    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    64097199    break;
    64107200
    64117201  case 400:
    6412 #line 1591 "parser.yy" /* yacc.c:1646  */
     7202
     7203/* Line 1806 of yacc.c  */
     7204#line 1592 "parser.yy"
    64137205    { (yyval.decl) = 0; }
    6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646  */
    64157206    break;
    64167207
    64177208  case 404:
    6418 #line 1599 "parser.yy" /* yacc.c:1646  */
    6419     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6420 #line 6421 "Parser/parser.cc" /* yacc.c:1646  */
     7209
     7210/* Line 1806 of yacc.c  */
     7211#line 1600 "parser.yy"
     7212    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64217213    break;
    64227214
    64237215  case 405:
    6424 #line 1601 "parser.yy" /* yacc.c:1646  */
    6425     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646  */
     7216
     7217/* Line 1806 of yacc.c  */
     7218#line 1602 "parser.yy"
     7219    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64277220    break;
    64287221
    64297222  case 406:
    6430 #line 1603 "parser.yy" /* yacc.c:1646  */
    6431     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646  */
     7223
     7224/* Line 1806 of yacc.c  */
     7225#line 1604 "parser.yy"
     7226    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64337227    break;
    64347228
    64357229  case 408:
    6436 #line 1611 "parser.yy" /* yacc.c:1646  */
    6437     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646  */
     7230
     7231/* Line 1806 of yacc.c  */
     7232#line 1612 "parser.yy"
     7233    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64397234    break;
    64407235
    64417236  case 409:
    6442 #line 1613 "parser.yy" /* yacc.c:1646  */
    6443     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6444 #line 6445 "Parser/parser.cc" /* yacc.c:1646  */
     7237
     7238/* Line 1806 of yacc.c  */
     7239#line 1614 "parser.yy"
     7240    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64457241    break;
    64467242
    64477243  case 410:
    6448 #line 1615 "parser.yy" /* yacc.c:1646  */
    6449     { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
    6450 #line 6451 "Parser/parser.cc" /* yacc.c:1646  */
     7244
     7245/* Line 1806 of yacc.c  */
     7246#line 1616 "parser.yy"
     7247    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    64517248    break;
    64527249
    64537250  case 412:
    6454 #line 1621 "parser.yy" /* yacc.c:1646  */
    6455     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6456 #line 6457 "Parser/parser.cc" /* yacc.c:1646  */
     7251
     7252/* Line 1806 of yacc.c  */
     7253#line 1622 "parser.yy"
     7254    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64577255    break;
    64587256
    64597257  case 413:
    6460 #line 1626 "parser.yy" /* yacc.c:1646  */
     7258
     7259/* Line 1806 of yacc.c  */
     7260#line 1627 "parser.yy"
    64617261    { (yyval.decl) = 0; }
    6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646  */
    64637262    break;
    64647263
    64657264  case 416:
    6466 #line 1633 "parser.yy" /* yacc.c:1646  */
    6467     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646  */
     7265
     7266/* Line 1806 of yacc.c  */
     7267#line 1634 "parser.yy"
     7268    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64697269    break;
    64707270
    64717271  case 419:
    6472 #line 1640 "parser.yy" /* yacc.c:1646  */
    6473     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646  */
     7272
     7273/* Line 1806 of yacc.c  */
     7274#line 1641 "parser.yy"
     7275    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64757276    break;
    64767277
    64777278  case 420:
    6478 #line 1642 "parser.yy" /* yacc.c:1646  */
    6479     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6480 #line 6481 "Parser/parser.cc" /* yacc.c:1646  */
     7279
     7280/* Line 1806 of yacc.c  */
     7281#line 1643 "parser.yy"
     7282    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64817283    break;
    64827284
    64837285  case 422:
    6484 #line 1651 "parser.yy" /* yacc.c:1646  */
    6485     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
    6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646  */
     7286
     7287/* Line 1806 of yacc.c  */
     7288#line 1652 "parser.yy"
     7289    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    64877290    break;
    64887291
    64897292  case 423:
    6490 #line 1654 "parser.yy" /* yacc.c:1646  */
    6491     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
    6492 #line 6493 "Parser/parser.cc" /* yacc.c:1646  */
     7293
     7294/* Line 1806 of yacc.c  */
     7295#line 1655 "parser.yy"
     7296    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    64937297    break;
    64947298
    64957299  case 424:
    6496 #line 1656 "parser.yy" /* yacc.c:1646  */
    6497     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
    6498 #line 6499 "Parser/parser.cc" /* yacc.c:1646  */
     7300
     7301/* Line 1806 of yacc.c  */
     7302#line 1657 "parser.yy"
     7303    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    64997304    break;
    65007305
    65017306  case 429:
    6502 #line 1666 "parser.yy" /* yacc.c:1646  */
    6503     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6504 #line 6505 "Parser/parser.cc" /* yacc.c:1646  */
     7307
     7308/* Line 1806 of yacc.c  */
     7309#line 1667 "parser.yy"
     7310    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    65057311    break;
    65067312
    65077313  case 431:
    6508 #line 1672 "parser.yy" /* yacc.c:1646  */
     7314
     7315/* Line 1806 of yacc.c  */
     7316#line 1673 "parser.yy"
    65097317    {
    65107318                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6511                         (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
     7319                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    65127320                }
    6513 #line 6514 "Parser/parser.cc" /* yacc.c:1646  */
    65147321    break;
    65157322
    65167323  case 432:
    6517 #line 1677 "parser.yy" /* yacc.c:1646  */
     7324
     7325/* Line 1806 of yacc.c  */
     7326#line 1678 "parser.yy"
    65187327    {
    65197328                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6520                         (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
     7329                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    65217330                }
    6522 #line 6523 "Parser/parser.cc" /* yacc.c:1646  */
    65237331    break;
    65247332
    65257333  case 434:
    6526 #line 1686 "parser.yy" /* yacc.c:1646  */
    6527     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6528 #line 6529 "Parser/parser.cc" /* yacc.c:1646  */
     7334
     7335/* Line 1806 of yacc.c  */
     7336#line 1687 "parser.yy"
     7337    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65297338    break;
    65307339
    65317340  case 435:
    6532 #line 1695 "parser.yy" /* yacc.c:1646  */
    6533     { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
    6534 #line 6535 "Parser/parser.cc" /* yacc.c:1646  */
     7341
     7342/* Line 1806 of yacc.c  */
     7343#line 1696 "parser.yy"
     7344    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    65357345    break;
    65367346
    65377347  case 436:
    6538 #line 1697 "parser.yy" /* yacc.c:1646  */
    6539     { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
    6540 #line 6541 "Parser/parser.cc" /* yacc.c:1646  */
     7348
     7349/* Line 1806 of yacc.c  */
     7350#line 1698 "parser.yy"
     7351    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    65417352    break;
    65427353
    65437354  case 448:
    6544 #line 1722 "parser.yy" /* yacc.c:1646  */
    6545     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646  */
     7355
     7356/* Line 1806 of yacc.c  */
     7357#line 1723 "parser.yy"
     7358    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65477359    break;
    65487360
    65497361  case 452:
    6550 #line 1730 "parser.yy" /* yacc.c:1646  */
    6551     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6552 #line 6553 "Parser/parser.cc" /* yacc.c:1646  */
     7362
     7363/* Line 1806 of yacc.c  */
     7364#line 1731 "parser.yy"
     7365    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65537366    break;
    65547367
    65557368  case 453:
    6556 #line 1735 "parser.yy" /* yacc.c:1646  */
     7369
     7370/* Line 1806 of yacc.c  */
     7371#line 1736 "parser.yy"
    65577372    { (yyval.in) = 0; }
    6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646  */
    65597373    break;
    65607374
    65617375  case 454:
    6562 #line 1737 "parser.yy" /* yacc.c:1646  */
    6563     { (yyval.in) = (yyvsp[0].in); }
    6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646  */
     7376
     7377/* Line 1806 of yacc.c  */
     7378#line 1738 "parser.yy"
     7379    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    65657380    break;
    65667381
    65677382  case 455:
    6568 #line 1739 "parser.yy" /* yacc.c:1646  */
    6569     { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
    6570 #line 6571 "Parser/parser.cc" /* yacc.c:1646  */
     7383
     7384/* Line 1806 of yacc.c  */
     7385#line 1740 "parser.yy"
     7386    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    65717387    break;
    65727388
    65737389  case 456:
    6574 #line 1743 "parser.yy" /* yacc.c:1646  */
    6575     { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
    6576 #line 6577 "Parser/parser.cc" /* yacc.c:1646  */
     7390
     7391/* Line 1806 of yacc.c  */
     7392#line 1744 "parser.yy"
     7393    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    65777394    break;
    65787395
    65797396  case 457:
    6580 #line 1744 "parser.yy" /* yacc.c:1646  */
    6581     { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
    6582 #line 6583 "Parser/parser.cc" /* yacc.c:1646  */
     7397
     7398/* Line 1806 of yacc.c  */
     7399#line 1745 "parser.yy"
     7400    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    65837401    break;
    65847402
    65857403  case 458:
    6586 #line 1749 "parser.yy" /* yacc.c:1646  */
     7404
     7405/* Line 1806 of yacc.c  */
     7406#line 1750 "parser.yy"
    65877407    { (yyval.in) = 0; }
    6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646  */
    65897408    break;
    65907409
    65917410  case 460:
    6592 #line 1751 "parser.yy" /* yacc.c:1646  */
    6593     { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
    6594 #line 6595 "Parser/parser.cc" /* yacc.c:1646  */
     7411
     7412/* Line 1806 of yacc.c  */
     7413#line 1752 "parser.yy"
     7414    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    65957415    break;
    65967416
    65977417  case 461:
    6598 #line 1752 "parser.yy" /* yacc.c:1646  */
    6599     { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
    6600 #line 6601 "Parser/parser.cc" /* yacc.c:1646  */
     7418
     7419/* Line 1806 of yacc.c  */
     7420#line 1753 "parser.yy"
     7421    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    66017422    break;
    66027423
    66037424  case 462:
    6604 #line 1754 "parser.yy" /* yacc.c:1646  */
    6605     { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
    6606 #line 6607 "Parser/parser.cc" /* yacc.c:1646  */
     7425
     7426/* Line 1806 of yacc.c  */
     7427#line 1755 "parser.yy"
     7428    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    66077429    break;
    66087430
    66097431  case 464:
    6610 #line 1770 "parser.yy" /* yacc.c:1646  */
    6611     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
    6612 #line 6613 "Parser/parser.cc" /* yacc.c:1646  */
     7432
     7433/* Line 1806 of yacc.c  */
     7434#line 1771 "parser.yy"
     7435    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    66137436    break;
    66147437
    66157438  case 466:
    6616 #line 1776 "parser.yy" /* yacc.c:1646  */
    6617     { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
    6618 #line 6619 "Parser/parser.cc" /* yacc.c:1646  */
     7439
     7440/* Line 1806 of yacc.c  */
     7441#line 1777 "parser.yy"
     7442    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    66197443    break;
    66207444
    66217445  case 467:
    6622 #line 1782 "parser.yy" /* yacc.c:1646  */
    6623     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    6624 #line 6625 "Parser/parser.cc" /* yacc.c:1646  */
     7446
     7447/* Line 1806 of yacc.c  */
     7448#line 1783 "parser.yy"
     7449    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    66257450    break;
    66267451
    66277452  case 468:
    6628 #line 1785 "parser.yy" /* yacc.c:1646  */
    6629     { (yyval.en) = (yyvsp[-2].en); }
    6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646  */
     7453
     7454/* Line 1806 of yacc.c  */
     7455#line 1786 "parser.yy"
     7456    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    66317457    break;
    66327458
    66337459  case 469:
    6634 #line 1787 "parser.yy" /* yacc.c:1646  */
    6635     { (yyval.en) = (yyvsp[-2].en); }
    6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646  */
     7460
     7461/* Line 1806 of yacc.c  */
     7462#line 1788 "parser.yy"
     7463    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    66377464    break;
    66387465
    66397466  case 470:
    6640 #line 1789 "parser.yy" /* yacc.c:1646  */
    6641     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    6642 #line 6643 "Parser/parser.cc" /* yacc.c:1646  */
     7467
     7468/* Line 1806 of yacc.c  */
     7469#line 1790 "parser.yy"
     7470    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    66437471    break;
    66447472
    66457473  case 471:
    6646 #line 1791 "parser.yy" /* yacc.c:1646  */
    6647     { (yyval.en) = (yyvsp[-2].en); }
    6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646  */
     7474
     7475/* Line 1806 of yacc.c  */
     7476#line 1792 "parser.yy"
     7477    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    66497478    break;
    66507479
    66517480  case 473:
    6652 #line 1815 "parser.yy" /* yacc.c:1646  */
    6653     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6654 #line 6655 "Parser/parser.cc" /* yacc.c:1646  */
     7481
     7482/* Line 1806 of yacc.c  */
     7483#line 1816 "parser.yy"
     7484    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66557485    break;
    66567486
    66577487  case 474:
    6658 #line 1817 "parser.yy" /* yacc.c:1646  */
    6659     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6660 #line 6661 "Parser/parser.cc" /* yacc.c:1646  */
     7488
     7489/* Line 1806 of yacc.c  */
     7490#line 1818 "parser.yy"
     7491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66617492    break;
    66627493
    66637494  case 475:
    6664 #line 1819 "parser.yy" /* yacc.c:1646  */
    6665     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6666 #line 6667 "Parser/parser.cc" /* yacc.c:1646  */
     7495
     7496/* Line 1806 of yacc.c  */
     7497#line 1820 "parser.yy"
     7498    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66677499    break;
    66687500
    66697501  case 477:
    6670 #line 1825 "parser.yy" /* yacc.c:1646  */
    6671     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6672 #line 6673 "Parser/parser.cc" /* yacc.c:1646  */
     7502
     7503/* Line 1806 of yacc.c  */
     7504#line 1826 "parser.yy"
     7505    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66737506    break;
    66747507
    66757508  case 478:
    6676 #line 1827 "parser.yy" /* yacc.c:1646  */
    6677     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6678 #line 6679 "Parser/parser.cc" /* yacc.c:1646  */
     7509
     7510/* Line 1806 of yacc.c  */
     7511#line 1828 "parser.yy"
     7512    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66797513    break;
    66807514
    66817515  case 479:
    6682 #line 1832 "parser.yy" /* yacc.c:1646  */
    6683     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
    6684 #line 6685 "Parser/parser.cc" /* yacc.c:1646  */
     7516
     7517/* Line 1806 of yacc.c  */
     7518#line 1833 "parser.yy"
     7519    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    66857520    break;
    66867521
    66877522  case 481:
    6688 #line 1838 "parser.yy" /* yacc.c:1646  */
    6689     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
    6690 #line 6691 "Parser/parser.cc" /* yacc.c:1646  */
     7523
     7524/* Line 1806 of yacc.c  */
     7525#line 1839 "parser.yy"
     7526    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    66917527    break;
    66927528
    66937529  case 482:
    6694 #line 1843 "parser.yy" /* yacc.c:1646  */
    6695     { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
    6696 #line 6697 "Parser/parser.cc" /* yacc.c:1646  */
     7530
     7531/* Line 1806 of yacc.c  */
     7532#line 1844 "parser.yy"
     7533    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    66977534    break;
    66987535
    66997536  case 483:
    6700 #line 1845 "parser.yy" /* yacc.c:1646  */
    6701     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
    6702 #line 6703 "Parser/parser.cc" /* yacc.c:1646  */
     7537
     7538/* Line 1806 of yacc.c  */
     7539#line 1846 "parser.yy"
     7540    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    67037541    break;
    67047542
    67057543  case 485:
    6706 #line 1851 "parser.yy" /* yacc.c:1646  */
    6707     { (yyval.tclass) = DeclarationNode::Type; }
    6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646  */
     7544
     7545/* Line 1806 of yacc.c  */
     7546#line 1852 "parser.yy"
     7547    { (yyval.tclass) = DeclarationNode::Otype; }
    67097548    break;
    67107549
    67117550  case 486:
    6712 #line 1853 "parser.yy" /* yacc.c:1646  */
     7551
     7552/* Line 1806 of yacc.c  */
     7553#line 1854 "parser.yy"
    67137554    { (yyval.tclass) = DeclarationNode::Ftype; }
    6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646  */
    67157555    break;
    67167556
    67177557  case 487:
    6718 #line 1855 "parser.yy" /* yacc.c:1646  */
     7558
     7559/* Line 1806 of yacc.c  */
     7560#line 1856 "parser.yy"
    67197561    { (yyval.tclass) = DeclarationNode::Dtype; }
    6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646  */
    67217562    break;
    67227563
    67237564  case 488:
    6724 #line 1860 "parser.yy" /* yacc.c:1646  */
     7565
     7566/* Line 1806 of yacc.c  */
     7567#line 1861 "parser.yy"
    67257568    { (yyval.decl) = 0; }
    6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646  */
    67277569    break;
    67287570
    67297571  case 489:
    6730 #line 1862 "parser.yy" /* yacc.c:1646  */
    6731     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6732 #line 6733 "Parser/parser.cc" /* yacc.c:1646  */
     7572
     7573/* Line 1806 of yacc.c  */
     7574#line 1863 "parser.yy"
     7575    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    67337576    break;
    67347577
    67357578  case 490:
    6736 #line 1867 "parser.yy" /* yacc.c:1646  */
     7579
     7580/* Line 1806 of yacc.c  */
     7581#line 1868 "parser.yy"
    67377582    {
    6738                         typedefTable.openTrait( *(yyvsp[-3].tok) );
    6739                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
     7583                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     7584                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
    67407585                }
    6741 #line 6742 "Parser/parser.cc" /* yacc.c:1646  */
    67427586    break;
    67437587
    67447588  case 491:
    6745 #line 1872 "parser.yy" /* yacc.c:1646  */
    6746     { (yyval.decl) = (yyvsp[-1].decl); }
    6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646  */
     7589
     7590/* Line 1806 of yacc.c  */
     7591#line 1873 "parser.yy"
     7592    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    67487593    break;
    67497594
    67507595  case 492:
    6751 #line 1874 "parser.yy" /* yacc.c:1646  */
     7596
     7597/* Line 1806 of yacc.c  */
     7598#line 1875 "parser.yy"
    67527599    { (yyval.decl) = 0; }
    6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646  */
    67547600    break;
    67557601
    67567602  case 493:
    6757 #line 1879 "parser.yy" /* yacc.c:1646  */
    6758     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
    6759 #line 6760 "Parser/parser.cc" /* yacc.c:1646  */
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1880 "parser.yy"
     7606    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    67607607    break;
    67617608
    67627609  case 495:
    6763 #line 1882 "parser.yy" /* yacc.c:1646  */
    6764     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
    6765 #line 6766 "Parser/parser.cc" /* yacc.c:1646  */
     7610
     7611/* Line 1806 of yacc.c  */
     7612#line 1883 "parser.yy"
     7613    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    67667614    break;
    67677615
    67687616  case 496:
    6769 #line 1884 "parser.yy" /* yacc.c:1646  */
    6770     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
    6771 #line 6772 "Parser/parser.cc" /* yacc.c:1646  */
     7617
     7618/* Line 1806 of yacc.c  */
     7619#line 1885 "parser.yy"
     7620    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    67727621    break;
    67737622
    67747623  case 497:
    6775 #line 1889 "parser.yy" /* yacc.c:1646  */
    6776     { (yyval.decl) = (yyvsp[0].decl); }
    6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646  */
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1890 "parser.yy"
     7627    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    67787628    break;
    67797629
    67807630  case 498:
    6781 #line 1891 "parser.yy" /* yacc.c:1646  */
    6782     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
    6783 #line 6784 "Parser/parser.cc" /* yacc.c:1646  */
     7631
     7632/* Line 1806 of yacc.c  */
     7633#line 1892 "parser.yy"
     7634    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    67847635    break;
    67857636
    67867637  case 499:
    6787 #line 1893 "parser.yy" /* yacc.c:1646  */
    6788     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
    6789 #line 6790 "Parser/parser.cc" /* yacc.c:1646  */
     7638
     7639/* Line 1806 of yacc.c  */
     7640#line 1894 "parser.yy"
     7641    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    67907642    break;
    67917643
    67927644  case 500:
    6793 #line 1898 "parser.yy" /* yacc.c:1646  */
    6794     { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
    6795 #line 6796 "Parser/parser.cc" /* yacc.c:1646  */
     7645
     7646/* Line 1806 of yacc.c  */
     7647#line 1899 "parser.yy"
     7648    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    67967649    break;
    67977650
    67987651  case 501:
    6799 #line 1900 "parser.yy" /* yacc.c:1646  */
    6800     { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
    6801 #line 6802 "Parser/parser.cc" /* yacc.c:1646  */
     7652
     7653/* Line 1806 of yacc.c  */
     7654#line 1901 "parser.yy"
     7655    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    68027656    break;
    68037657
    68047658  case 502:
    6805 #line 1905 "parser.yy" /* yacc.c:1646  */
     7659
     7660/* Line 1806 of yacc.c  */
     7661#line 1906 "parser.yy"
    68067662    {
    6807                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
    6808                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
     7663                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     7664                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
    68097665                }
    6810 #line 6811 "Parser/parser.cc" /* yacc.c:1646  */
    68117666    break;
    68127667
    68137668  case 503:
    6814 #line 1910 "parser.yy" /* yacc.c:1646  */
     7669
     7670/* Line 1806 of yacc.c  */
     7671#line 1911 "parser.yy"
    68157672    {
    6816                         typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
    6817                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
     7673                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     7674                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
    68187675                }
    6819 #line 6820 "Parser/parser.cc" /* yacc.c:1646  */
    68207676    break;
    68217677
    68227678  case 504:
    6823 #line 1918 "parser.yy" /* yacc.c:1646  */
     7679
     7680/* Line 1806 of yacc.c  */
     7681#line 1919 "parser.yy"
    68247682    {
    6825                         typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
    6826                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
     7683                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     7684                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
    68277685                }
    6828 #line 6829 "Parser/parser.cc" /* yacc.c:1646  */
    68297686    break;
    68307687
    68317688  case 505:
    6832 #line 1923 "parser.yy" /* yacc.c:1646  */
     7689
     7690/* Line 1806 of yacc.c  */
     7691#line 1924 "parser.yy"
    68337692    {
    6834                         typedefTable.enterTrait( *(yyvsp[-6].tok) );
     7693                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
    68357694                        typedefTable.enterScope();
    68367695                }
    6837 #line 6838 "Parser/parser.cc" /* yacc.c:1646  */
    68387696    break;
    68397697
    68407698  case 506:
    6841 #line 1928 "parser.yy" /* yacc.c:1646  */
     7699
     7700/* Line 1806 of yacc.c  */
     7701#line 1929 "parser.yy"
    68427702    {
    68437703                        typedefTable.leaveTrait();
    6844                         typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
    6845                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
     7704                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
     7705                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
    68467706                }
    6847 #line 6848 "Parser/parser.cc" /* yacc.c:1646  */
    68487707    break;
    68497708
    68507709  case 508:
    6851 #line 1938 "parser.yy" /* yacc.c:1646  */
    6852     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    6853 #line 6854 "Parser/parser.cc" /* yacc.c:1646  */
     7710
     7711/* Line 1806 of yacc.c  */
     7712#line 1939 "parser.yy"
     7713    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    68547714    break;
    68557715
    68567716  case 511:
    6857 #line 1948 "parser.yy" /* yacc.c:1646  */
     7717
     7718/* Line 1806 of yacc.c  */
     7719#line 1949 "parser.yy"
    68587720    {
    68597721                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6860                         (yyval.decl) = (yyvsp[0].decl);
     7722                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    68617723                }
    6862 #line 6863 "Parser/parser.cc" /* yacc.c:1646  */
    68637724    break;
    68647725
    68657726  case 512:
    6866 #line 1953 "parser.yy" /* yacc.c:1646  */
     7727
     7728/* Line 1806 of yacc.c  */
     7729#line 1954 "parser.yy"
    68677730    {
    68687731                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6869                         (yyval.decl) = (yyvsp[0].decl);
     7732                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    68707733                }
    6871 #line 6872 "Parser/parser.cc" /* yacc.c:1646  */
    68727734    break;
    68737735
    68747736  case 513:
    6875 #line 1958 "parser.yy" /* yacc.c:1646  */
     7737
     7738/* Line 1806 of yacc.c  */
     7739#line 1959 "parser.yy"
    68767740    {
    6877                         typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
    6878                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     7741                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     7742                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    68797743                }
    6880 #line 6881 "Parser/parser.cc" /* yacc.c:1646  */
    68817744    break;
    68827745
    68837746  case 514:
    6884 #line 1966 "parser.yy" /* yacc.c:1646  */
     7747
     7748/* Line 1806 of yacc.c  */
     7749#line 1967 "parser.yy"
    68857750    {
    68867751                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6887                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
     7752                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
    68887753                }
    6889 #line 6890 "Parser/parser.cc" /* yacc.c:1646  */
    68907754    break;
    68917755
    68927756  case 515:
    6893 #line 1971 "parser.yy" /* yacc.c:1646  */
     7757
     7758/* Line 1806 of yacc.c  */
     7759#line 1972 "parser.yy"
    68947760    {
    68957761                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6896                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
     7762                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
    68977763                }
    6898 #line 6899 "Parser/parser.cc" /* yacc.c:1646  */
    68997764    break;
    69007765
    69017766  case 516:
    6902 #line 1981 "parser.yy" /* yacc.c:1646  */
     7767
     7768/* Line 1806 of yacc.c  */
     7769#line 1982 "parser.yy"
    69037770    {}
    6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646  */
    69057771    break;
    69067772
    69077773  case 517:
    6908 #line 1983 "parser.yy" /* yacc.c:1646  */
    6909     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);    }
    6910 #line 6911 "Parser/parser.cc" /* yacc.c:1646  */
     7774
     7775/* Line 1806 of yacc.c  */
     7776#line 1984 "parser.yy"
     7777    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    69117778    break;
    69127779
    69137780  case 519:
    6914 #line 1989 "parser.yy" /* yacc.c:1646  */
    6915     { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6916 #line 6917 "Parser/parser.cc" /* yacc.c:1646  */
     7781
     7782/* Line 1806 of yacc.c  */
     7783#line 1990 "parser.yy"
     7784    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    69177785    break;
    69187786
    69197787  case 520:
    6920 #line 1994 "parser.yy" /* yacc.c:1646  */
     7788
     7789/* Line 1806 of yacc.c  */
     7790#line 1995 "parser.yy"
    69217791    { (yyval.decl) = 0; }
    6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646  */
    69237792    break;
    69247793
    69257794  case 524:
    6926 #line 2002 "parser.yy" /* yacc.c:1646  */
     7795
     7796/* Line 1806 of yacc.c  */
     7797#line 2003 "parser.yy"
    69277798    {}
    6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646  */
    69297799    break;
    69307800
    69317801  case 525:
    6932 #line 2004 "parser.yy" /* yacc.c:1646  */
     7802
     7803/* Line 1806 of yacc.c  */
     7804#line 2005 "parser.yy"
    69337805    {
    69347806                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    6935                         linkage = LinkageSpec::fromString( *(yyvsp[0].tok) );
     7807                        linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    69367808                }
    6937 #line 6938 "Parser/parser.cc" /* yacc.c:1646  */
    69387809    break;
    69397810
    69407811  case 526:
    6941 #line 2009 "parser.yy" /* yacc.c:1646  */
     7812
     7813/* Line 1806 of yacc.c  */
     7814#line 2010 "parser.yy"
    69427815    {
    69437816                        linkage = linkageStack.top();
    69447817                        linkageStack.pop();
    6945                         (yyval.decl) = (yyvsp[-1].decl);
     7818                        (yyval.decl) = (yyvsp[(5) - (6)].decl);
    69467819                }
    6947 #line 6948 "Parser/parser.cc" /* yacc.c:1646  */
    69487820    break;
    69497821
    69507822  case 527:
    6951 #line 2015 "parser.yy" /* yacc.c:1646  */
     7823
     7824/* Line 1806 of yacc.c  */
     7825#line 2016 "parser.yy"
    69527826    {   // mark all fields in list
    6953                         for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     7827                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    69547828                                iter->set_extension( true );
    6955                         (yyval.decl) = (yyvsp[0].decl);
     7829                        (yyval.decl) = (yyvsp[(2) - (2)].decl);
    69567830                }
    6957 #line 6958 "Parser/parser.cc" /* yacc.c:1646  */
    69587831    break;
    69597832
    69607833  case 529:
    6961 #line 2030 "parser.yy" /* yacc.c:1646  */
     7834
     7835/* Line 1806 of yacc.c  */
     7836#line 2031 "parser.yy"
    69627837    {
    69637838                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69647839                        typedefTable.leaveScope();
    6965                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
     7840                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    69667841                }
    6967 #line 6968 "Parser/parser.cc" /* yacc.c:1646  */
    69687842    break;
    69697843
    69707844  case 530:
    6971 #line 2036 "parser.yy" /* yacc.c:1646  */
     7845
     7846/* Line 1806 of yacc.c  */
     7847#line 2037 "parser.yy"
    69727848    {
    69737849                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69747850                        typedefTable.leaveScope();
    6975                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
     7851                        (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
    69767852                }
    6977 #line 6978 "Parser/parser.cc" /* yacc.c:1646  */
    69787853    break;
    69797854
    69807855  case 531:
    6981 #line 2045 "parser.yy" /* yacc.c:1646  */
     7856
     7857/* Line 1806 of yacc.c  */
     7858#line 2046 "parser.yy"
    69827859    {
    69837860                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69847861                        typedefTable.leaveScope();
    6985                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
     7862                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    69867863                }
    6987 #line 6988 "Parser/parser.cc" /* yacc.c:1646  */
    69887864    break;
    69897865
    69907866  case 532:
    6991 #line 2051 "parser.yy" /* yacc.c:1646  */
     7867
     7868/* Line 1806 of yacc.c  */
     7869#line 2052 "parser.yy"
    69927870    {
    69937871                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69947872                        typedefTable.leaveScope();
    6995                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
     7873                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
    69967874                }
    6997 #line 6998 "Parser/parser.cc" /* yacc.c:1646  */
    69987875    break;
    69997876
    70007877  case 533:
    7001 #line 2057 "parser.yy" /* yacc.c:1646  */
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2058 "parser.yy"
    70027881    {
    70037882                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70047883                        typedefTable.leaveScope();
    7005                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
     7884                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    70067885                }
    7007 #line 7008 "Parser/parser.cc" /* yacc.c:1646  */
    70087886    break;
    70097887
    70107888  case 534:
    7011 #line 2063 "parser.yy" /* yacc.c:1646  */
     7889
     7890/* Line 1806 of yacc.c  */
     7891#line 2064 "parser.yy"
    70127892    {
    70137893                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70147894                        typedefTable.leaveScope();
    7015                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
     7895                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    70167896                }
    7017 #line 7018 "Parser/parser.cc" /* yacc.c:1646  */
    70187897    break;
    70197898
    70207899  case 535:
    7021 #line 2069 "parser.yy" /* yacc.c:1646  */
     7900
     7901/* Line 1806 of yacc.c  */
     7902#line 2070 "parser.yy"
    70227903    {
    70237904                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70247905                        typedefTable.leaveScope();
    7025                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
     7906                        (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
    70267907                }
    7027 #line 7028 "Parser/parser.cc" /* yacc.c:1646  */
    70287908    break;
    70297909
    70307910  case 536:
    7031 #line 2077 "parser.yy" /* yacc.c:1646  */
     7911
     7912/* Line 1806 of yacc.c  */
     7913#line 2078 "parser.yy"
    70327914    {
    70337915                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70347916                        typedefTable.leaveScope();
    7035                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
     7917                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
    70367918                }
    7037 #line 7038 "Parser/parser.cc" /* yacc.c:1646  */
    70387919    break;
    70397920
    70407921  case 537:
    7041 #line 2083 "parser.yy" /* yacc.c:1646  */
     7922
     7923/* Line 1806 of yacc.c  */
     7924#line 2084 "parser.yy"
    70427925    {
    70437926                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70447927                        typedefTable.leaveScope();
    7045                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
     7928                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    70467929                }
    7047 #line 7048 "Parser/parser.cc" /* yacc.c:1646  */
    70487930    break;
    70497931
    70507932  case 538:
    7051 #line 2091 "parser.yy" /* yacc.c:1646  */
     7933
     7934/* Line 1806 of yacc.c  */
     7935#line 2092 "parser.yy"
    70527936    {
    70537937                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70547938                        typedefTable.leaveScope();
    7055                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
     7939                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    70567940                }
    7057 #line 7058 "Parser/parser.cc" /* yacc.c:1646  */
    70587941    break;
    70597942
    70607943  case 539:
    7061 #line 2097 "parser.yy" /* yacc.c:1646  */
     7944
     7945/* Line 1806 of yacc.c  */
     7946#line 2098 "parser.yy"
    70627947    {
    70637948                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70647949                        typedefTable.leaveScope();
    7065                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
     7950                        (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) );
    70667951                }
    7067 #line 7068 "Parser/parser.cc" /* yacc.c:1646  */
    70687952    break;
    70697953
    70707954  case 543:
    7071 #line 2112 "parser.yy" /* yacc.c:1646  */
    7072     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    7073 #line 7074 "Parser/parser.cc" /* yacc.c:1646  */
     7955
     7956/* Line 1806 of yacc.c  */
     7957#line 2113 "parser.yy"
     7958    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    70747959    break;
    70757960
    70767961  case 545:
    7077 #line 2117 "parser.yy" /* yacc.c:1646  */
    7078     { delete (yyvsp[-2].str); }
    7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646  */
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2118 "parser.yy"
     7965    { delete (yyvsp[(3) - (5)].str); }
    70807966    break;
    70817967
    70827968  case 546:
    7083 #line 2122 "parser.yy" /* yacc.c:1646  */
     7969
     7970/* Line 1806 of yacc.c  */
     7971#line 2123 "parser.yy"
    70847972    { (yyval.decl) = 0; }
    7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646  */
    70867973    break;
    70877974
    70887975  case 549:
    7089 #line 2129 "parser.yy" /* yacc.c:1646  */
    7090     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    7091 #line 7092 "Parser/parser.cc" /* yacc.c:1646  */
     7976
     7977/* Line 1806 of yacc.c  */
     7978#line 2130 "parser.yy"
     7979    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70927980    break;
    70937981
    70947982  case 550:
    7095 #line 2135 "parser.yy" /* yacc.c:1646  */
     7983
     7984/* Line 1806 of yacc.c  */
     7985#line 2136 "parser.yy"
    70967986    { (yyval.decl) = 0; }
    7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646  */
    70987987    break;
    70997988
    71007989  case 555:
    7101 #line 2146 "parser.yy" /* yacc.c:1646  */
    7102     { delete (yyvsp[-1].en); }
    7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646  */
     7990
     7991/* Line 1806 of yacc.c  */
     7992#line 2147 "parser.yy"
     7993    { delete (yyvsp[(3) - (4)].en); }
    71047994    break;
    71057995
    71067996  case 556:
    7107 #line 2150 "parser.yy" /* yacc.c:1646  */
    7108     { delete (yyvsp[0].tok); }
    7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646  */
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2151 "parser.yy"
     8000    { delete (yyvsp[(1) - (1)].tok); }
    71108001    break;
    71118002
    71128003  case 557:
    7113 #line 2151 "parser.yy" /* yacc.c:1646  */
    7114     { delete (yyvsp[0].decl); }
    7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646  */
     8004
     8005/* Line 1806 of yacc.c  */
     8006#line 2152 "parser.yy"
     8007    { delete (yyvsp[(1) - (1)].decl); }
    71168008    break;
    71178009
    71188010  case 558:
    7119 #line 2152 "parser.yy" /* yacc.c:1646  */
    7120     { delete (yyvsp[0].decl); }
    7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646  */
     8011
     8012/* Line 1806 of yacc.c  */
     8013#line 2153 "parser.yy"
     8014    { delete (yyvsp[(1) - (1)].decl); }
    71228015    break;
    71238016
    71248017  case 559:
    7125 #line 2153 "parser.yy" /* yacc.c:1646  */
    7126     { delete (yyvsp[0].decl); }
    7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646  */
     8018
     8019/* Line 1806 of yacc.c  */
     8020#line 2154 "parser.yy"
     8021    { delete (yyvsp[(1) - (1)].decl); }
    71288022    break;
    71298023
    71308024  case 560:
    7131 #line 2188 "parser.yy" /* yacc.c:1646  */
    7132     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646  */
     8025
     8026/* Line 1806 of yacc.c  */
     8027#line 2189 "parser.yy"
     8028    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71348029    break;
    71358030
    71368031  case 562:
    7137 #line 2191 "parser.yy" /* yacc.c:1646  */
    7138     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7139 #line 7140 "Parser/parser.cc" /* yacc.c:1646  */
     8032
     8033/* Line 1806 of yacc.c  */
     8034#line 2192 "parser.yy"
     8035    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71408036    break;
    71418037
    71428038  case 563:
    7143 #line 2193 "parser.yy" /* yacc.c:1646  */
    7144     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7145 #line 7146 "Parser/parser.cc" /* yacc.c:1646  */
     8039
     8040/* Line 1806 of yacc.c  */
     8041#line 2194 "parser.yy"
     8042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71468043    break;
    71478044
    71488045  case 564:
    7149 #line 2198 "parser.yy" /* yacc.c:1646  */
     8046
     8047/* Line 1806 of yacc.c  */
     8048#line 2199 "parser.yy"
    71508049    {
    7151                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7152                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8050                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8051                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    71538052                }
    7154 #line 7155 "Parser/parser.cc" /* yacc.c:1646  */
    71558053    break;
    71568054
    71578055  case 565:
    7158 #line 2203 "parser.yy" /* yacc.c:1646  */
    7159     { (yyval.decl) = (yyvsp[-1].decl); }
    7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646  */
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2204 "parser.yy"
     8059    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71618060    break;
    71628061
    71638062  case 566:
    7164 #line 2208 "parser.yy" /* yacc.c:1646  */
    7165     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7166 #line 7167 "Parser/parser.cc" /* yacc.c:1646  */
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2209 "parser.yy"
     8066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    71678067    break;
    71688068
    71698069  case 567:
    7170 #line 2210 "parser.yy" /* yacc.c:1646  */
    7171     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7172 #line 7173 "Parser/parser.cc" /* yacc.c:1646  */
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2211 "parser.yy"
     8073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    71738074    break;
    71748075
    71758076  case 568:
    7176 #line 2212 "parser.yy" /* yacc.c:1646  */
    7177     { (yyval.decl) = (yyvsp[-1].decl); }
    7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646  */
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2213 "parser.yy"
     8080    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71798081    break;
    71808082
    71818083  case 569:
    7182 #line 2217 "parser.yy" /* yacc.c:1646  */
    7183     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7184 #line 7185 "Parser/parser.cc" /* yacc.c:1646  */
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2218 "parser.yy"
     8087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    71858088    break;
    71868089
    71878090  case 570:
    7188 #line 2219 "parser.yy" /* yacc.c:1646  */
    7189     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646  */
     8091
     8092/* Line 1806 of yacc.c  */
     8093#line 2220 "parser.yy"
     8094    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    71918095    break;
    71928096
    71938097  case 571:
    7194 #line 2221 "parser.yy" /* yacc.c:1646  */
    7195     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7196 #line 7197 "Parser/parser.cc" /* yacc.c:1646  */
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2222 "parser.yy"
     8101    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    71978102    break;
    71988103
    71998104  case 572:
    7200 #line 2223 "parser.yy" /* yacc.c:1646  */
    7201     { (yyval.decl) = (yyvsp[-1].decl); }
    7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646  */
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2224 "parser.yy"
     8108    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72038109    break;
    72048110
    72058111  case 573:
    7206 #line 2228 "parser.yy" /* yacc.c:1646  */
    7207     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7208 #line 7209 "Parser/parser.cc" /* yacc.c:1646  */
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2229 "parser.yy"
     8115    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    72098116    break;
    72108117
    72118118  case 574:
    7212 #line 2230 "parser.yy" /* yacc.c:1646  */
    7213     { (yyval.decl) = (yyvsp[-1].decl); }
    7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646  */
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2231 "parser.yy"
     8122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72158123    break;
    72168124
    72178125  case 575:
    7218 #line 2239 "parser.yy" /* yacc.c:1646  */
    7219     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646  */
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2240 "parser.yy"
     8129    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72218130    break;
    72228131
    72238132  case 577:
    7224 #line 2242 "parser.yy" /* yacc.c:1646  */
    7225     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7226 #line 7227 "Parser/parser.cc" /* yacc.c:1646  */
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2243 "parser.yy"
     8136    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72278137    break;
    72288138
    72298139  case 578:
    7230 #line 2247 "parser.yy" /* yacc.c:1646  */
    7231     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7232 #line 7233 "Parser/parser.cc" /* yacc.c:1646  */
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2248 "parser.yy"
     8143    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    72338144    break;
    72348145
    72358146  case 579:
    7236 #line 2249 "parser.yy" /* yacc.c:1646  */
    7237     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7238 #line 7239 "Parser/parser.cc" /* yacc.c:1646  */
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2250 "parser.yy"
     8150    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    72398151    break;
    72408152
    72418153  case 580:
    7242 #line 2251 "parser.yy" /* yacc.c:1646  */
    7243     { (yyval.decl) = (yyvsp[-1].decl); }
    7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646  */
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2252 "parser.yy"
     8157    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72458158    break;
    72468159
    72478160  case 581:
    7248 #line 2256 "parser.yy" /* yacc.c:1646  */
    7249     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7250 #line 7251 "Parser/parser.cc" /* yacc.c:1646  */
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2257 "parser.yy"
     8164    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    72518165    break;
    72528166
    72538167  case 582:
    7254 #line 2258 "parser.yy" /* yacc.c:1646  */
    7255     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7256 #line 7257 "Parser/parser.cc" /* yacc.c:1646  */
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2259 "parser.yy"
     8171    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    72578172    break;
    72588173
    72598174  case 583:
    7260 #line 2260 "parser.yy" /* yacc.c:1646  */
    7261     { (yyval.decl) = (yyvsp[-1].decl); }
    7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646  */
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2261 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72638179    break;
    72648180
    72658181  case 584:
    7266 #line 2265 "parser.yy" /* yacc.c:1646  */
    7267     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646  */
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2266 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    72698186    break;
    72708187
    72718188  case 585:
    7272 #line 2267 "parser.yy" /* yacc.c:1646  */
    7273     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7274 #line 7275 "Parser/parser.cc" /* yacc.c:1646  */
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2268 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    72758193    break;
    72768194
    72778195  case 586:
    7278 #line 2269 "parser.yy" /* yacc.c:1646  */
    7279     { (yyval.decl) = (yyvsp[-1].decl); }
    7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646  */
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2270 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72818200    break;
    72828201
    72838202  case 590:
    7284 #line 2284 "parser.yy" /* yacc.c:1646  */
    7285     { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
    7286 #line 7287 "Parser/parser.cc" /* yacc.c:1646  */
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2285 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    72878207    break;
    72888208
    72898209  case 591:
    7290 #line 2286 "parser.yy" /* yacc.c:1646  */
    7291     { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
    7292 #line 7293 "Parser/parser.cc" /* yacc.c:1646  */
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2287 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    72938214    break;
    72948215
    72958216  case 592:
    7296 #line 2288 "parser.yy" /* yacc.c:1646  */
    7297     { (yyval.decl) = (yyvsp[-1].decl); }
    7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646  */
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2289 "parser.yy"
     8220    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72998221    break;
    73008222
    73018223  case 593:
    7302 #line 2293 "parser.yy" /* yacc.c:1646  */
    7303     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7304 #line 7305 "Parser/parser.cc" /* yacc.c:1646  */
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2294 "parser.yy"
     8227    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    73058228    break;
    73068229
    73078230  case 594:
    7308 #line 2295 "parser.yy" /* yacc.c:1646  */
    7309     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7310 #line 7311 "Parser/parser.cc" /* yacc.c:1646  */
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2296 "parser.yy"
     8234    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    73118235    break;
    73128236
    73138237  case 595:
    7314 #line 2297 "parser.yy" /* yacc.c:1646  */
    7315     { (yyval.decl) = (yyvsp[-1].decl); }
    7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646  */
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2298 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73178242    break;
    73188243
    73198244  case 596:
    7320 #line 2302 "parser.yy" /* yacc.c:1646  */
    7321     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646  */
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2303 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73238249    break;
    73248250
    73258251  case 597:
    7326 #line 2304 "parser.yy" /* yacc.c:1646  */
    7327     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7328 #line 7329 "Parser/parser.cc" /* yacc.c:1646  */
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2305 "parser.yy"
     8255    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73298256    break;
    73308257
    73318258  case 598:
    7332 #line 2306 "parser.yy" /* yacc.c:1646  */
    7333     { (yyval.decl) = (yyvsp[-1].decl); }
    7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646  */
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2307 "parser.yy"
     8262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73358263    break;
    73368264
    73378265  case 599:
    7338 #line 2321 "parser.yy" /* yacc.c:1646  */
    7339     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646  */
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2322 "parser.yy"
     8269    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73418270    break;
    73428271
    73438272  case 601:
    7344 #line 2324 "parser.yy" /* yacc.c:1646  */
    7345     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7346 #line 7347 "Parser/parser.cc" /* yacc.c:1646  */
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2325 "parser.yy"
     8276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73478277    break;
    73488278
    73498279  case 602:
    7350 #line 2326 "parser.yy" /* yacc.c:1646  */
    7351     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7352 #line 7353 "Parser/parser.cc" /* yacc.c:1646  */
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2327 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73538284    break;
    73548285
    73558286  case 604:
    7356 #line 2332 "parser.yy" /* yacc.c:1646  */
    7357     { (yyval.decl) = (yyvsp[-1].decl); }
    7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646  */
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2333 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73598291    break;
    73608292
    73618293  case 605:
    7362 #line 2337 "parser.yy" /* yacc.c:1646  */
    7363     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7364 #line 7365 "Parser/parser.cc" /* yacc.c:1646  */
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2338 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    73658298    break;
    73668299
    73678300  case 606:
    7368 #line 2339 "parser.yy" /* yacc.c:1646  */
    7369     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7370 #line 7371 "Parser/parser.cc" /* yacc.c:1646  */
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2340 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    73718305    break;
    73728306
    73738307  case 607:
    7374 #line 2341 "parser.yy" /* yacc.c:1646  */
    7375     { (yyval.decl) = (yyvsp[-1].decl); }
    7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646  */
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2342 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73778312    break;
    73788313
    73798314  case 608:
    7380 #line 2346 "parser.yy" /* yacc.c:1646  */
    7381     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7382 #line 7383 "Parser/parser.cc" /* yacc.c:1646  */
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2347 "parser.yy"
     8318    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    73838319    break;
    73848320
    73858321  case 609:
    7386 #line 2348 "parser.yy" /* yacc.c:1646  */
    7387     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646  */
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2349 "parser.yy"
     8325    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73898326    break;
    73908327
    73918328  case 610:
    7392 #line 2350 "parser.yy" /* yacc.c:1646  */
    7393     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7394 #line 7395 "Parser/parser.cc" /* yacc.c:1646  */
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2351 "parser.yy"
     8332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73958333    break;
    73968334
    73978335  case 611:
    7398 #line 2352 "parser.yy" /* yacc.c:1646  */
    7399     { (yyval.decl) = (yyvsp[-1].decl); }
    7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646  */
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2353 "parser.yy"
     8339    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74018340    break;
    74028341
    74038342  case 612:
    7404 #line 2357 "parser.yy" /* yacc.c:1646  */
    7405     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7406 #line 7407 "Parser/parser.cc" /* yacc.c:1646  */
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2358 "parser.yy"
     8346    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    74078347    break;
    74088348
    74098349  case 613:
    7410 #line 2359 "parser.yy" /* yacc.c:1646  */
    7411     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7412 #line 7413 "Parser/parser.cc" /* yacc.c:1646  */
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2360 "parser.yy"
     8353    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    74138354    break;
    74148355
    74158356  case 614:
    7416 #line 2361 "parser.yy" /* yacc.c:1646  */
    7417     { (yyval.decl) = (yyvsp[-1].decl); }
    7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646  */
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2362 "parser.yy"
     8360    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74198361    break;
    74208362
    74218363  case 615:
    7422 #line 2371 "parser.yy" /* yacc.c:1646  */
    7423     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646  */
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2372 "parser.yy"
     8367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74258368    break;
    74268369
    74278370  case 617:
    7428 #line 2374 "parser.yy" /* yacc.c:1646  */
    7429     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7430 #line 7431 "Parser/parser.cc" /* yacc.c:1646  */
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2375 "parser.yy"
     8374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74318375    break;
    74328376
    74338377  case 618:
    7434 #line 2376 "parser.yy" /* yacc.c:1646  */
    7435     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7436 #line 7437 "Parser/parser.cc" /* yacc.c:1646  */
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2377 "parser.yy"
     8381    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74378382    break;
    74388383
    74398384  case 619:
    7440 #line 2381 "parser.yy" /* yacc.c:1646  */
    7441     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7442 #line 7443 "Parser/parser.cc" /* yacc.c:1646  */
     8385
     8386/* Line 1806 of yacc.c  */
     8387#line 2382 "parser.yy"
     8388    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    74438389    break;
    74448390
    74458391  case 620:
    7446 #line 2383 "parser.yy" /* yacc.c:1646  */
    7447     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7448 #line 7449 "Parser/parser.cc" /* yacc.c:1646  */
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2384 "parser.yy"
     8395    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    74498396    break;
    74508397
    74518398  case 621:
    7452 #line 2385 "parser.yy" /* yacc.c:1646  */
    7453     { (yyval.decl) = (yyvsp[-1].decl); }
    7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646  */
     8399
     8400/* Line 1806 of yacc.c  */
     8401#line 2386 "parser.yy"
     8402    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74558403    break;
    74568404
    74578405  case 622:
    7458 #line 2390 "parser.yy" /* yacc.c:1646  */
    7459     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7460 #line 7461 "Parser/parser.cc" /* yacc.c:1646  */
     8406
     8407/* Line 1806 of yacc.c  */
     8408#line 2391 "parser.yy"
     8409    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    74618410    break;
    74628411
    74638412  case 623:
    7464 #line 2392 "parser.yy" /* yacc.c:1646  */
    7465     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646  */
     8413
     8414/* Line 1806 of yacc.c  */
     8415#line 2393 "parser.yy"
     8416    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    74678417    break;
    74688418
    74698419  case 624:
    7470 #line 2394 "parser.yy" /* yacc.c:1646  */
    7471     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7472 #line 7473 "Parser/parser.cc" /* yacc.c:1646  */
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2395 "parser.yy"
     8423    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    74738424    break;
    74748425
    74758426  case 625:
    7476 #line 2396 "parser.yy" /* yacc.c:1646  */
    7477     { (yyval.decl) = (yyvsp[-1].decl); }
    7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646  */
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2397 "parser.yy"
     8430    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74798431    break;
    74808432
    74818433  case 626:
    7482 #line 2401 "parser.yy" /* yacc.c:1646  */
    7483     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7484 #line 7485 "Parser/parser.cc" /* yacc.c:1646  */
     8434
     8435/* Line 1806 of yacc.c  */
     8436#line 2402 "parser.yy"
     8437    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    74858438    break;
    74868439
    74878440  case 627:
    7488 #line 2403 "parser.yy" /* yacc.c:1646  */
    7489     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7490 #line 7491 "Parser/parser.cc" /* yacc.c:1646  */
     8441
     8442/* Line 1806 of yacc.c  */
     8443#line 2404 "parser.yy"
     8444    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    74918445    break;
    74928446
    74938447  case 628:
    7494 #line 2405 "parser.yy" /* yacc.c:1646  */
    7495     { (yyval.decl) = (yyvsp[-1].decl); }
    7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646  */
     8448
     8449/* Line 1806 of yacc.c  */
     8450#line 2406 "parser.yy"
     8451    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74978452    break;
    74988453
    74998454  case 629:
    7500 #line 2436 "parser.yy" /* yacc.c:1646  */
    7501     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646  */
     8455
     8456/* Line 1806 of yacc.c  */
     8457#line 2437 "parser.yy"
     8458    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75038459    break;
    75048460
    75058461  case 631:
    7506 #line 2439 "parser.yy" /* yacc.c:1646  */
    7507     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7508 #line 7509 "Parser/parser.cc" /* yacc.c:1646  */
     8462
     8463/* Line 1806 of yacc.c  */
     8464#line 2440 "parser.yy"
     8465    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75098466    break;
    75108467
    75118468  case 632:
    7512 #line 2441 "parser.yy" /* yacc.c:1646  */
    7513     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7514 #line 7515 "Parser/parser.cc" /* yacc.c:1646  */
     8469
     8470/* Line 1806 of yacc.c  */
     8471#line 2442 "parser.yy"
     8472    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75158473    break;
    75168474
    75178475  case 633:
    7518 #line 2446 "parser.yy" /* yacc.c:1646  */
     8476
     8477/* Line 1806 of yacc.c  */
     8478#line 2447 "parser.yy"
    75198479    {
    7520                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7521                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8480                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8481                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    75228482                }
    7523 #line 7524 "Parser/parser.cc" /* yacc.c:1646  */
    75248483    break;
    75258484
    75268485  case 634:
    7527 #line 2451 "parser.yy" /* yacc.c:1646  */
     8486
     8487/* Line 1806 of yacc.c  */
     8488#line 2452 "parser.yy"
    75288489    {
    7529                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7530                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8490                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8491                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    75318492                }
    7532 #line 7533 "Parser/parser.cc" /* yacc.c:1646  */
    75338493    break;
    75348494
    75358495  case 635:
    7536 #line 2459 "parser.yy" /* yacc.c:1646  */
    7537     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7538 #line 7539 "Parser/parser.cc" /* yacc.c:1646  */
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2460 "parser.yy"
     8499    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    75398500    break;
    75408501
    75418502  case 636:
    7542 #line 2461 "parser.yy" /* yacc.c:1646  */
    7543     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7544 #line 7545 "Parser/parser.cc" /* yacc.c:1646  */
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2462 "parser.yy"
     8506    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    75458507    break;
    75468508
    75478509  case 637:
    7548 #line 2463 "parser.yy" /* yacc.c:1646  */
    7549     { (yyval.decl) = (yyvsp[-1].decl); }
    7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646  */
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2464 "parser.yy"
     8513    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    75518514    break;
    75528515
    75538516  case 638:
    7554 #line 2468 "parser.yy" /* yacc.c:1646  */
    7555     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7556 #line 7557 "Parser/parser.cc" /* yacc.c:1646  */
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2469 "parser.yy"
     8520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    75578521    break;
    75588522
    75598523  case 639:
    7560 #line 2470 "parser.yy" /* yacc.c:1646  */
    7561     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7562 #line 7563 "Parser/parser.cc" /* yacc.c:1646  */
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2471 "parser.yy"
     8527    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    75638528    break;
    75648529
    75658530  case 640:
    7566 #line 2475 "parser.yy" /* yacc.c:1646  */
    7567     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7568 #line 7569 "Parser/parser.cc" /* yacc.c:1646  */
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2476 "parser.yy"
     8534    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    75698535    break;
    75708536
    75718537  case 641:
    7572 #line 2477 "parser.yy" /* yacc.c:1646  */
    7573     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7574 #line 7575 "Parser/parser.cc" /* yacc.c:1646  */
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2478 "parser.yy"
     8541    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    75758542    break;
    75768543
    75778544  case 643:
    7578 #line 2492 "parser.yy" /* yacc.c:1646  */
    7579     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646  */
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2493 "parser.yy"
     8548    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75818549    break;
    75828550
    75838551  case 644:
    7584 #line 2494 "parser.yy" /* yacc.c:1646  */
    7585     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7586 #line 7587 "Parser/parser.cc" /* yacc.c:1646  */
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2495 "parser.yy"
     8555    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75878556    break;
    75888557
    75898558  case 645:
    7590 #line 2499 "parser.yy" /* yacc.c:1646  */
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2500 "parser.yy"
    75918562    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646  */
    75938563    break;
    75948564
    75958565  case 646:
    7596 #line 2501 "parser.yy" /* yacc.c:1646  */
    7597     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7598 #line 7599 "Parser/parser.cc" /* yacc.c:1646  */
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2502 "parser.yy"
     8569    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    75998570    break;
    76008571
    76018572  case 647:
    7602 #line 2503 "parser.yy" /* yacc.c:1646  */
    7603     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7604 #line 7605 "Parser/parser.cc" /* yacc.c:1646  */
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2504 "parser.yy"
     8576    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    76058577    break;
    76068578
    76078579  case 648:
    7608 #line 2505 "parser.yy" /* yacc.c:1646  */
    7609     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7610 #line 7611 "Parser/parser.cc" /* yacc.c:1646  */
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2506 "parser.yy"
     8583    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    76118584    break;
    76128585
    76138586  case 649:
    7614 #line 2507 "parser.yy" /* yacc.c:1646  */
    7615     { (yyval.decl) = (yyvsp[-1].decl); }
    7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646  */
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2508 "parser.yy"
     8590    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76178591    break;
    76188592
    76198593  case 651:
    7620 #line 2513 "parser.yy" /* yacc.c:1646  */
    7621     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646  */
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2514 "parser.yy"
     8597    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    76238598    break;
    76248599
    76258600  case 652:
    7626 #line 2515 "parser.yy" /* yacc.c:1646  */
    7627     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7628 #line 7629 "Parser/parser.cc" /* yacc.c:1646  */
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2516 "parser.yy"
     8604    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    76298605    break;
    76308606
    76318607  case 653:
    7632 #line 2517 "parser.yy" /* yacc.c:1646  */
    7633     { (yyval.decl) = (yyvsp[-1].decl); }
    7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646  */
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2518 "parser.yy"
     8611    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76358612    break;
    76368613
    76378614  case 654:
    7638 #line 2522 "parser.yy" /* yacc.c:1646  */
    7639     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
    7640 #line 7641 "Parser/parser.cc" /* yacc.c:1646  */
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2523 "parser.yy"
     8618    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    76418619    break;
    76428620
    76438621  case 655:
    7644 #line 2524 "parser.yy" /* yacc.c:1646  */
    7645     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7646 #line 7647 "Parser/parser.cc" /* yacc.c:1646  */
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2525 "parser.yy"
     8625    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    76478626    break;
    76488627
    76498628  case 656:
    7650 #line 2526 "parser.yy" /* yacc.c:1646  */
    7651     { (yyval.decl) = (yyvsp[-1].decl); }
    7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646  */
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2527 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76538633    break;
    76548634
    76558635  case 657:
    7656 #line 2532 "parser.yy" /* yacc.c:1646  */
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2533 "parser.yy"
    76578639    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646  */
    76598640    break;
    76608641
    76618642  case 658:
    7662 #line 2534 "parser.yy" /* yacc.c:1646  */
    7663     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
    7664 #line 7665 "Parser/parser.cc" /* yacc.c:1646  */
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2535 "parser.yy"
     8646    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    76658647    break;
    76668648
    76678649  case 660:
    7668 #line 2540 "parser.yy" /* yacc.c:1646  */
    7669     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
    7670 #line 7671 "Parser/parser.cc" /* yacc.c:1646  */
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2541 "parser.yy"
     8653    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    76718654    break;
    76728655
    76738656  case 661:
    7674 #line 2542 "parser.yy" /* yacc.c:1646  */
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2543 "parser.yy"
    76758660    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646  */
    76778661    break;
    76788662
    76798663  case 662:
    7680 #line 2544 "parser.yy" /* yacc.c:1646  */
    7681     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
    7682 #line 7683 "Parser/parser.cc" /* yacc.c:1646  */
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2545 "parser.yy"
     8667    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    76838668    break;
    76848669
    76858670  case 663:
    7686 #line 2546 "parser.yy" /* yacc.c:1646  */
    7687     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    7688 #line 7689 "Parser/parser.cc" /* yacc.c:1646  */
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2547 "parser.yy"
     8674    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    76898675    break;
    76908676
    76918677  case 665:
    7692 #line 2561 "parser.yy" /* yacc.c:1646  */
    7693     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646  */
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2562 "parser.yy"
     8681    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    76958682    break;
    76968683
    76978684  case 666:
    7698 #line 2563 "parser.yy" /* yacc.c:1646  */
    7699     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7700 #line 7701 "Parser/parser.cc" /* yacc.c:1646  */
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2564 "parser.yy"
     8688    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77018689    break;
    77028690
    77038691  case 667:
    7704 #line 2568 "parser.yy" /* yacc.c:1646  */
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2569 "parser.yy"
    77058695    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646  */
    77078696    break;
    77088697
    77098698  case 668:
    7710 #line 2570 "parser.yy" /* yacc.c:1646  */
    7711     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7712 #line 7713 "Parser/parser.cc" /* yacc.c:1646  */
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2571 "parser.yy"
     8702    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    77138703    break;
    77148704
    77158705  case 669:
    7716 #line 2572 "parser.yy" /* yacc.c:1646  */
    7717     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7718 #line 7719 "Parser/parser.cc" /* yacc.c:1646  */
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2573 "parser.yy"
     8709    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    77198710    break;
    77208711
    77218712  case 670:
    7722 #line 2574 "parser.yy" /* yacc.c:1646  */
    7723     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7724 #line 7725 "Parser/parser.cc" /* yacc.c:1646  */
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2575 "parser.yy"
     8716    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    77258717    break;
    77268718
    77278719  case 671:
    7728 #line 2576 "parser.yy" /* yacc.c:1646  */
    7729     { (yyval.decl) = (yyvsp[-1].decl); }
    7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646  */
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2577 "parser.yy"
     8723    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77318724    break;
    77328725
    77338726  case 673:
    7734 #line 2582 "parser.yy" /* yacc.c:1646  */
    7735     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646  */
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2583 "parser.yy"
     8730    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    77378731    break;
    77388732
    77398733  case 674:
    7740 #line 2584 "parser.yy" /* yacc.c:1646  */
    7741     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7742 #line 7743 "Parser/parser.cc" /* yacc.c:1646  */
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2585 "parser.yy"
     8737    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    77438738    break;
    77448739
    77458740  case 675:
    7746 #line 2586 "parser.yy" /* yacc.c:1646  */
    7747     { (yyval.decl) = (yyvsp[-1].decl); }
    7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646  */
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2587 "parser.yy"
     8744    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77498745    break;
    77508746
    77518747  case 676:
    7752 #line 2591 "parser.yy" /* yacc.c:1646  */
    7753     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
    7754 #line 7755 "Parser/parser.cc" /* yacc.c:1646  */
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2592 "parser.yy"
     8751    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    77558752    break;
    77568753
    77578754  case 677:
    7758 #line 2593 "parser.yy" /* yacc.c:1646  */
    7759     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7760 #line 7761 "Parser/parser.cc" /* yacc.c:1646  */
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2594 "parser.yy"
     8758    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    77618759    break;
    77628760
    77638761  case 678:
    7764 #line 2595 "parser.yy" /* yacc.c:1646  */
    7765     { (yyval.decl) = (yyvsp[-1].decl); }
    7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646  */
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2596 "parser.yy"
     8765    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77678766    break;
    77688767
    77698768  case 680:
    7770 #line 2602 "parser.yy" /* yacc.c:1646  */
    7771     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7772 #line 7773 "Parser/parser.cc" /* yacc.c:1646  */
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2603 "parser.yy"
     8772    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    77738773    break;
    77748774
    77758775  case 682:
    7776 #line 2613 "parser.yy" /* yacc.c:1646  */
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2614 "parser.yy"
    77778779    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646  */
    77798780    break;
    77808781
    77818782  case 683:
    7782 #line 2616 "parser.yy" /* yacc.c:1646  */
    7783     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
    7784 #line 7785 "Parser/parser.cc" /* yacc.c:1646  */
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2617 "parser.yy"
     8786    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    77858787    break;
    77868788
    77878789  case 684:
    7788 #line 2618 "parser.yy" /* yacc.c:1646  */
    7789     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
    7790 #line 7791 "Parser/parser.cc" /* yacc.c:1646  */
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2619 "parser.yy"
     8793    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    77918794    break;
    77928795
    77938796  case 685:
    7794 #line 2621 "parser.yy" /* yacc.c:1646  */
    7795     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
    7796 #line 7797 "Parser/parser.cc" /* yacc.c:1646  */
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2622 "parser.yy"
     8800    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    77978801    break;
    77988802
    77998803  case 686:
    7800 #line 2623 "parser.yy" /* yacc.c:1646  */
    7801     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
    7802 #line 7803 "Parser/parser.cc" /* yacc.c:1646  */
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2624 "parser.yy"
     8807    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    78038808    break;
    78048809
    78058810  case 687:
    7806 #line 2625 "parser.yy" /* yacc.c:1646  */
    7807     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
    7808 #line 7809 "Parser/parser.cc" /* yacc.c:1646  */
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2626 "parser.yy"
     8814    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    78098815    break;
    78108816
    78118817  case 689:
    7812 #line 2639 "parser.yy" /* yacc.c:1646  */
    7813     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646  */
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2640 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78158822    break;
    78168823
    78178824  case 690:
    7818 #line 2641 "parser.yy" /* yacc.c:1646  */
    7819     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7820 #line 7821 "Parser/parser.cc" /* yacc.c:1646  */
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2642 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78218829    break;
    78228830
    78238831  case 691:
    7824 #line 2646 "parser.yy" /* yacc.c:1646  */
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2647 "parser.yy"
    78258835    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646  */
    78278836    break;
    78288837
    78298838  case 692:
    7830 #line 2648 "parser.yy" /* yacc.c:1646  */
    7831     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7832 #line 7833 "Parser/parser.cc" /* yacc.c:1646  */
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2649 "parser.yy"
     8842    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    78338843    break;
    78348844
    78358845  case 693:
    7836 #line 2650 "parser.yy" /* yacc.c:1646  */
    7837     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7838 #line 7839 "Parser/parser.cc" /* yacc.c:1646  */
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2651 "parser.yy"
     8849    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    78398850    break;
    78408851
    78418852  case 694:
    7842 #line 2652 "parser.yy" /* yacc.c:1646  */
    7843     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7844 #line 7845 "Parser/parser.cc" /* yacc.c:1646  */
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2653 "parser.yy"
     8856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    78458857    break;
    78468858
    78478859  case 695:
    7848 #line 2654 "parser.yy" /* yacc.c:1646  */
    7849     { (yyval.decl) = (yyvsp[-1].decl); }
    7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646  */
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2655 "parser.yy"
     8863    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78518864    break;
    78528865
    78538866  case 697:
    7854 #line 2660 "parser.yy" /* yacc.c:1646  */
    7855     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646  */
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2661 "parser.yy"
     8870    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    78578871    break;
    78588872
    78598873  case 698:
    7860 #line 2662 "parser.yy" /* yacc.c:1646  */
    7861     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7862 #line 7863 "Parser/parser.cc" /* yacc.c:1646  */
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2663 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    78638878    break;
    78648879
    78658880  case 699:
    7866 #line 2664 "parser.yy" /* yacc.c:1646  */
    7867     { (yyval.decl) = (yyvsp[-1].decl); }
    7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646  */
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2665 "parser.yy"
     8884    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78698885    break;
    78708886
    78718887  case 700:
    7872 #line 2669 "parser.yy" /* yacc.c:1646  */
    7873     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7874 #line 7875 "Parser/parser.cc" /* yacc.c:1646  */
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2670 "parser.yy"
     8891    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    78758892    break;
    78768893
    78778894  case 701:
    7878 #line 2671 "parser.yy" /* yacc.c:1646  */
    7879     { (yyval.decl) = (yyvsp[-1].decl); }
    7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646  */
     8895
     8896/* Line 1806 of yacc.c  */
     8897#line 2672 "parser.yy"
     8898    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78818899    break;
    78828900
    78838901  case 704:
    7884 #line 2681 "parser.yy" /* yacc.c:1646  */
    7885     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    7886 #line 7887 "Parser/parser.cc" /* yacc.c:1646  */
     8902
     8903/* Line 1806 of yacc.c  */
     8904#line 2682 "parser.yy"
     8905    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78878906    break;
    78888907
    78898908  case 707:
    7890 #line 2691 "parser.yy" /* yacc.c:1646  */
    7891     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7892 #line 7893 "Parser/parser.cc" /* yacc.c:1646  */
     8909
     8910/* Line 1806 of yacc.c  */
     8911#line 2692 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    78938913    break;
    78948914
    78958915  case 708:
    7896 #line 2693 "parser.yy" /* yacc.c:1646  */
    7897     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7898 #line 7899 "Parser/parser.cc" /* yacc.c:1646  */
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2694 "parser.yy"
     8919    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    78998920    break;
    79008921
    79018922  case 709:
    7902 #line 2695 "parser.yy" /* yacc.c:1646  */
    7903     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7904 #line 7905 "Parser/parser.cc" /* yacc.c:1646  */
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2696 "parser.yy"
     8926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    79058927    break;
    79068928
    79078929  case 710:
    7908 #line 2697 "parser.yy" /* yacc.c:1646  */
    7909     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7910 #line 7911 "Parser/parser.cc" /* yacc.c:1646  */
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2698 "parser.yy"
     8933    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    79118934    break;
    79128935
    79138936  case 711:
    7914 #line 2699 "parser.yy" /* yacc.c:1646  */
    7915     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7916 #line 7917 "Parser/parser.cc" /* yacc.c:1646  */
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2700 "parser.yy"
     8940    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    79178941    break;
    79188942
    79198943  case 712:
    7920 #line 2701 "parser.yy" /* yacc.c:1646  */
    7921     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7922 #line 7923 "Parser/parser.cc" /* yacc.c:1646  */
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2702 "parser.yy"
     8947    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    79238948    break;
    79248949
    79258950  case 713:
    7926 #line 2708 "parser.yy" /* yacc.c:1646  */
    7927     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7928 #line 7929 "Parser/parser.cc" /* yacc.c:1646  */
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2709 "parser.yy"
     8954    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79298955    break;
    79308956
    79318957  case 714:
    7932 #line 2710 "parser.yy" /* yacc.c:1646  */
    7933     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646  */
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2711 "parser.yy"
     8961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79358962    break;
    79368963
    79378964  case 715:
    7938 #line 2712 "parser.yy" /* yacc.c:1646  */
    7939     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7940 #line 7941 "Parser/parser.cc" /* yacc.c:1646  */
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2713 "parser.yy"
     8968    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79418969    break;
    79428970
    79438971  case 716:
    7944 #line 2714 "parser.yy" /* yacc.c:1646  */
    7945     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
    7946 #line 7947 "Parser/parser.cc" /* yacc.c:1646  */
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2715 "parser.yy"
     8975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    79478976    break;
    79488977
    79498978  case 717:
    7950 #line 2716 "parser.yy" /* yacc.c:1646  */
    7951     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7952 #line 7953 "Parser/parser.cc" /* yacc.c:1646  */
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2717 "parser.yy"
     8982    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79538983    break;
    79548984
    79558985  case 718:
    7956 #line 2718 "parser.yy" /* yacc.c:1646  */
    7957     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7958 #line 7959 "Parser/parser.cc" /* yacc.c:1646  */
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2719 "parser.yy"
     8989    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79598990    break;
    79608991
    79618992  case 719:
    7962 #line 2720 "parser.yy" /* yacc.c:1646  */
    7963     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646  */
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2721 "parser.yy"
     8996    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79658997    break;
    79668998
    79678999  case 720:
    7968 #line 2722 "parser.yy" /* yacc.c:1646  */
    7969     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7970 #line 7971 "Parser/parser.cc" /* yacc.c:1646  */
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2723 "parser.yy"
     9003    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79719004    break;
    79729005
    79739006  case 721:
    7974 #line 2724 "parser.yy" /* yacc.c:1646  */
    7975     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
    7976 #line 7977 "Parser/parser.cc" /* yacc.c:1646  */
     9007
     9008/* Line 1806 of yacc.c  */
     9009#line 2725 "parser.yy"
     9010    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    79779011    break;
    79789012
    79799013  case 722:
    7980 #line 2726 "parser.yy" /* yacc.c:1646  */
    7981     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7982 #line 7983 "Parser/parser.cc" /* yacc.c:1646  */
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2727 "parser.yy"
     9017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79839018    break;
    79849019
    79859020  case 723:
    7986 #line 2731 "parser.yy" /* yacc.c:1646  */
    7987     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
    7988 #line 7989 "Parser/parser.cc" /* yacc.c:1646  */
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2732 "parser.yy"
     9024    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    79899025    break;
    79909026
    79919027  case 724:
    7992 #line 2733 "parser.yy" /* yacc.c:1646  */
    7993     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
    7994 #line 7995 "Parser/parser.cc" /* yacc.c:1646  */
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2734 "parser.yy"
     9031    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    79959032    break;
    79969033
    79979034  case 725:
    7998 #line 2738 "parser.yy" /* yacc.c:1646  */
    7999     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
    8000 #line 8001 "Parser/parser.cc" /* yacc.c:1646  */
     9035
     9036/* Line 1806 of yacc.c  */
     9037#line 2739 "parser.yy"
     9038    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    80019039    break;
    80029040
    80039041  case 726:
    8004 #line 2740 "parser.yy" /* yacc.c:1646  */
    8005     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
    8006 #line 8007 "Parser/parser.cc" /* yacc.c:1646  */
     9042
     9043/* Line 1806 of yacc.c  */
     9044#line 2741 "parser.yy"
     9045    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    80079046    break;
    80089047
    80099048  case 728:
    8010 #line 2767 "parser.yy" /* yacc.c:1646  */
    8011     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    8012 #line 8013 "Parser/parser.cc" /* yacc.c:1646  */
     9049
     9050/* Line 1806 of yacc.c  */
     9051#line 2768 "parser.yy"
     9052    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80139053    break;
    80149054
    80159055  case 732:
    8016 #line 2778 "parser.yy" /* yacc.c:1646  */
    8017     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8018 #line 8019 "Parser/parser.cc" /* yacc.c:1646  */
     9056
     9057/* Line 1806 of yacc.c  */
     9058#line 2779 "parser.yy"
     9059    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80199060    break;
    80209061
    80219062  case 733:
    8022 #line 2780 "parser.yy" /* yacc.c:1646  */
    8023     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8024 #line 8025 "Parser/parser.cc" /* yacc.c:1646  */
     9063
     9064/* Line 1806 of yacc.c  */
     9065#line 2781 "parser.yy"
     9066    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80259067    break;
    80269068
    80279069  case 734:
    8028 #line 2782 "parser.yy" /* yacc.c:1646  */
    8029     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8030 #line 8031 "Parser/parser.cc" /* yacc.c:1646  */
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2783 "parser.yy"
     9073    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80319074    break;
    80329075
    80339076  case 735:
    8034 #line 2784 "parser.yy" /* yacc.c:1646  */
    8035     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8036 #line 8037 "Parser/parser.cc" /* yacc.c:1646  */
     9077
     9078/* Line 1806 of yacc.c  */
     9079#line 2785 "parser.yy"
     9080    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80379081    break;
    80389082
    80399083  case 736:
    8040 #line 2786 "parser.yy" /* yacc.c:1646  */
    8041     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8042 #line 8043 "Parser/parser.cc" /* yacc.c:1646  */
     9084
     9085/* Line 1806 of yacc.c  */
     9086#line 2787 "parser.yy"
     9087    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80439088    break;
    80449089
    80459090  case 737:
    8046 #line 2788 "parser.yy" /* yacc.c:1646  */
    8047     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8048 #line 8049 "Parser/parser.cc" /* yacc.c:1646  */
     9091
     9092/* Line 1806 of yacc.c  */
     9093#line 2789 "parser.yy"
     9094    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80499095    break;
    80509096
    80519097  case 738:
    8052 #line 2795 "parser.yy" /* yacc.c:1646  */
    8053     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646  */
     9098
     9099/* Line 1806 of yacc.c  */
     9100#line 2796 "parser.yy"
     9101    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    80559102    break;
    80569103
    80579104  case 739:
    8058 #line 2797 "parser.yy" /* yacc.c:1646  */
    8059     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646  */
     9105
     9106/* Line 1806 of yacc.c  */
     9107#line 2798 "parser.yy"
     9108    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    80619109    break;
    80629110
    80639111  case 740:
    8064 #line 2799 "parser.yy" /* yacc.c:1646  */
    8065     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646  */
     9112
     9113/* Line 1806 of yacc.c  */
     9114#line 2800 "parser.yy"
     9115    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    80679116    break;
    80689117
    80699118  case 741:
    8070 #line 2801 "parser.yy" /* yacc.c:1646  */
    8071     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8072 #line 8073 "Parser/parser.cc" /* yacc.c:1646  */
     9119
     9120/* Line 1806 of yacc.c  */
     9121#line 2802 "parser.yy"
     9122    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    80739123    break;
    80749124
    80759125  case 742:
    8076 #line 2803 "parser.yy" /* yacc.c:1646  */
    8077     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8078 #line 8079 "Parser/parser.cc" /* yacc.c:1646  */
     9126
     9127/* Line 1806 of yacc.c  */
     9128#line 2804 "parser.yy"
     9129    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    80799130    break;
    80809131
    80819132  case 743:
    8082 #line 2805 "parser.yy" /* yacc.c:1646  */
    8083     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    8084 #line 8085 "Parser/parser.cc" /* yacc.c:1646  */
     9133
     9134/* Line 1806 of yacc.c  */
     9135#line 2806 "parser.yy"
     9136    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    80859137    break;
    80869138
    80879139  case 744:
    8088 #line 2810 "parser.yy" /* yacc.c:1646  */
    8089     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
    8090 #line 8091 "Parser/parser.cc" /* yacc.c:1646  */
     9140
     9141/* Line 1806 of yacc.c  */
     9142#line 2811 "parser.yy"
     9143    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    80919144    break;
    80929145
    80939146  case 745:
    8094 #line 2815 "parser.yy" /* yacc.c:1646  */
    8095     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); }
    8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646  */
     9147
     9148/* Line 1806 of yacc.c  */
     9149#line 2816 "parser.yy"
     9150    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    80979151    break;
    80989152
    80999153  case 746:
    8100 #line 2817 "parser.yy" /* yacc.c:1646  */
    8101     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
    8102 #line 8103 "Parser/parser.cc" /* yacc.c:1646  */
     9154
     9155/* Line 1806 of yacc.c  */
     9156#line 2818 "parser.yy"
     9157    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    81039158    break;
    81049159
    81059160  case 747:
    8106 #line 2819 "parser.yy" /* yacc.c:1646  */
    8107     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
    8108 #line 8109 "Parser/parser.cc" /* yacc.c:1646  */
     9161
     9162/* Line 1806 of yacc.c  */
     9163#line 2820 "parser.yy"
     9164    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    81099165    break;
    81109166
    81119167  case 750:
    8112 #line 2843 "parser.yy" /* yacc.c:1646  */
     9168
     9169/* Line 1806 of yacc.c  */
     9170#line 2844 "parser.yy"
    81139171    { (yyval.en) = 0; }
    8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646  */
    81159172    break;
    81169173
    81179174  case 751:
    8118 #line 2845 "parser.yy" /* yacc.c:1646  */
    8119     { (yyval.en) = (yyvsp[0].en); }
    8120 #line 8121 "Parser/parser.cc" /* yacc.c:1646  */
    8121     break;
    8122 
    8123 
    8124 #line 8125 "Parser/parser.cc" /* yacc.c:1646  */
     9175
     9176/* Line 1806 of yacc.c  */
     9177#line 2846 "parser.yy"
     9178    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     9179    break;
     9180
     9181
     9182
     9183/* Line 1806 of yacc.c  */
     9184#line 9185 "Parser/parser.cc"
    81259185      default: break;
    81269186    }
     
    81449204  *++yyvsp = yyval;
    81459205
    8146   /* Now 'shift' the result of the reduction.  Determine what state
     9206  /* Now `shift' the result of the reduction.  Determine what state
    81479207     that goes to, based on the state we popped back to and the rule
    81489208     number reduced by.  */
     
    81599219
    81609220
    8161 /*--------------------------------------.
    8162 | yyerrlab -- here on detecting error. |
    8163 `--------------------------------------*/
     9221/*------------------------------------.
     9222| yyerrlab -- here on detecting error |
     9223`------------------------------------*/
    81649224yyerrlab:
    81659225  /* Make sure we have latest lookahead translation.  See comments at
     
    82129272    {
    82139273      /* If just tried and failed to reuse lookahead token after an
    8214         error, discard it.  */
     9274        error, discard it.  */
    82159275
    82169276      if (yychar <= YYEOF)
    8217         {
    8218           /* Return failure if at end of input.  */
    8219           if (yychar == YYEOF)
    8220             YYABORT;
    8221         }
     9277        {
     9278          /* Return failure if at end of input.  */
     9279          if (yychar == YYEOF)
     9280            YYABORT;
     9281        }
    82229282      else
    8223         {
    8224           yydestruct ("Error: discarding",
    8225                       yytoken, &yylval);
    8226           yychar = YYEMPTY;
    8227         }
     9283        {
     9284          yydestruct ("Error: discarding",
     9285                      yytoken, &yylval);
     9286          yychar = YYEMPTY;
     9287        }
    82289288    }
    82299289
     
    82449304     goto yyerrorlab;
    82459305
    8246   /* Do not reclaim the symbols of the rule whose action triggered
     9306  /* Do not reclaim the symbols of the rule which action triggered
    82479307     this YYERROR.  */
    82489308  YYPOPSTACK (yylen);
     
    82579317`-------------------------------------------------------------*/
    82589318yyerrlab1:
    8259   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     9319  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    82609320
    82619321  for (;;)
     
    82639323      yyn = yypact[yystate];
    82649324      if (!yypact_value_is_default (yyn))
    8265         {
    8266           yyn += YYTERROR;
    8267           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    8268             {
    8269               yyn = yytable[yyn];
    8270               if (0 < yyn)
    8271                 break;
    8272             }
    8273         }
     9325        {
     9326          yyn += YYTERROR;
     9327          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     9328            {
     9329              yyn = yytable[yyn];
     9330              if (0 < yyn)
     9331                break;
     9332            }
     9333        }
    82749334
    82759335      /* Pop the current state because it cannot handle the error token.  */
    82769336      if (yyssp == yyss)
    8277         YYABORT;
     9337        YYABORT;
    82789338
    82799339
    82809340      yydestruct ("Error: popping",
    8281                   yystos[yystate], yyvsp);
     9341                  yystos[yystate], yyvsp);
    82829342      YYPOPSTACK (1);
    82839343      yystate = *yyssp;
     
    82859345    }
    82869346
    8287   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    82889347  *++yyvsp = yylval;
    8289   YY_IGNORE_MAYBE_UNINITIALIZED_END
    82909348
    82919349
     
    83119369  goto yyreturn;
    83129370
    8313 #if !defined yyoverflow || YYERROR_VERBOSE
     9371#if !defined(yyoverflow) || YYERROR_VERBOSE
    83149372/*-------------------------------------------------.
    83159373| yyexhaustedlab -- memory exhaustion comes here.  |
     
    83309388                  yytoken, &yylval);
    83319389    }
    8332   /* Do not reclaim the symbols of the rule whose action triggered
     9390  /* Do not reclaim the symbols of the rule which action triggered
    83339391     this YYABORT or YYACCEPT.  */
    83349392  YYPOPSTACK (yylen);
     
    83379395    {
    83389396      yydestruct ("Cleanup: popping",
    8339                   yystos[*yyssp], yyvsp);
     9397                  yystos[*yyssp], yyvsp);
    83409398      YYPOPSTACK (1);
    83419399    }
     
    83489406    YYSTACK_FREE (yymsg);
    83499407#endif
    8350   return yyresult;
     9408  /* Make sure YYID is used.  */
     9409  return YYID (yyresult);
    83519410}
    8352 #line 2848 "parser.yy" /* yacc.c:1906  */
     9411
     9412
     9413
     9414/* Line 2067 of yacc.c  */
     9415#line 2849 "parser.yy"
    83539416
    83549417// ----end of grammar----
     
    83579420
    83589421void yyerror( const char * ) {
    8359         std::cout << "Error ";
     9422        cout << "Error ";
    83609423        if ( yyfilename ) {
    8361                 std::cout << "in file " << yyfilename << " ";
     9424                cout << "in file " << yyfilename << " ";
    83629425        } // if
    8363         std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
     9426        cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl;
    83649427}
    83659428
     
    83699432// compile-command: "make install" //
    83709433// End: //
     9434
Note: See TracChangeset for help on using the changeset viewer.