Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r3b5e3aa r4ed70597  
    1 /* A Bison parser, made by GNU Bison 2.5.  */
     1/* A Bison parser, made by GNU Bison 3.0.2.  */
    22
    33/* Bison implementation for Yacc-like parsers in C
    4    
    5       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    6    
     4
     5   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
     6
    77   This program is free software: you can redistribute it and/or modify
    88   it under the terms of the GNU General Public License as published by
    99   the Free Software Foundation, either version 3 of the License, or
    1010   (at your option) any later version.
    11    
     11
    1212   This program is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1515   GNU General Public License for more details.
    16    
     16
    1717   You should have received a copy of the GNU General Public License
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     
    2727   Bison output files to be licensed under the GNU General Public
    2828   License without this special exception.
    29    
     29
    3030   This special exception was added by the Free Software Foundation in
    3131   version 2.2 of Bison.  */
     
    4545
    4646/* Bison version.  */
    47 #define YYBISON_VERSION "2.5"
     47#define YYBISON_VERSION "3.0.2"
    4848
    4949/* Skeleton name.  */
     
    5959#define YYPULL 1
    6060
    61 /* Using locations.  */
    62 #define YYLSP_NEEDED 0
    6361
    6462
    6563
    6664/* Copy the first part of user declarations.  */
    67 
    68 /* Line 268 of yacc.c  */
    69 #line 42 "parser.yy"
     65#line 42 "parser.yy" /* yacc.c:339  */
    7066
    7167#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    8278#include "TypeData.h"
    8379#include "LinkageSpec.h"
    84 using namespace std;
    8580
    8681extern DeclarationNode * parseTree;
     
    8883extern TypedefTable typedefTable;
    8984
    90 stack< LinkageSpec::Spec > linkageStack;
    91 
    92 void appendStr( string *to, string *from ) {
     85std::stack< LinkageSpec::Spec > linkageStack;
     86
     87void appendStr( std::string *to, std::string *from ) {
    9388        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    9489        to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
    9590} // appendStr
    9691
    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
     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
    105101
    106102/* Enabling verbose error messages.  */
     
    112108#endif
    113109
    114 /* Enabling the token table.  */
    115 #ifndef YYTOKEN_TABLE
    116 # define YYTOKEN_TABLE 0
     110/* In a future release of Bison, this section will be replaced
     111   by #include "y.tab.h".  */
     112#ifndef YY_YY_Y_TAB_H_INCLUDED
     113# define YY_YY_Y_TAB_H_INCLUDED
     114/* Debug traces.  */
     115#ifndef YYDEBUG
     116# define YYDEBUG 1
    117117#endif
    118 
    119 
    120 /* Tokens.  */
     118#if YYDEBUG
     119extern int yydebug;
     120#endif
     121
     122/* Token type.  */
    121123#ifndef YYTOKENTYPE
    122124# define YYTOKENTYPE
    123    /* Put the tokens into the symbol table, so that GDB and other debuggers
    124       know about them.  */
    125    enum yytokentype {
    126      TYPEDEF = 258,
    127      AUTO = 259,
    128      EXTERN = 260,
    129      REGISTER = 261,
    130      STATIC = 262,
    131      INLINE = 263,
    132      FORTRAN = 264,
    133      CONST = 265,
    134      VOLATILE = 266,
    135      RESTRICT = 267,
    136      FORALL = 268,
    137      LVALUE = 269,
    138      VOID = 270,
    139      CHAR = 271,
    140      SHORT = 272,
    141      INT = 273,
    142      LONG = 274,
    143      FLOAT = 275,
    144      DOUBLE = 276,
    145      SIGNED = 277,
    146      UNSIGNED = 278,
    147      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    };
     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  };
    233234#endif
    234235/* Tokens.  */
     
    340341#define THEN 363
    341342
    342 
    343 
    344 
     343/* Value type.  */
    345344#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    346 typedef union YYSTYPE
     345typedef union YYSTYPE YYSTYPE;
     346union YYSTYPE
    347347{
    348 
    349 /* Line 293 of yacc.c  */
    350 #line 116 "parser.yy"
     348#line 115 "parser.yy" /* yacc.c:355  */
    351349
    352350        Token tok;
     
    365363        bool flag;
    366364
    367 
    368 
    369 /* Line 293 of yacc.c  */
    370 #line 371 "Parser/parser.cc"
    371 } YYSTYPE;
     365#line 366 "Parser/parser.cc" /* yacc.c:355  */
     366};
    372367# define YYSTYPE_IS_TRIVIAL 1
    373 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    374368# define YYSTYPE_IS_DECLARED 1
    375369#endif
    376370
    377371
     372extern YYSTYPE yylval;
     373
     374int yyparse (void);
     375
     376#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
     377
    378378/* Copy the second part of user declarations.  */
    379379
    380 
    381 /* Line 343 of yacc.c  */
    382 #line 383 "Parser/parser.cc"
     380#line 381 "Parser/parser.cc" /* yacc.c:358  */
    383381
    384382#ifdef short
     
    394392#ifdef YYTYPE_INT8
    395393typedef YYTYPE_INT8 yytype_int8;
    396 #elif (defined __STDC__ || defined __C99__FUNC__ \
    397      || defined __cplusplus || defined _MSC_VER)
     394#else
    398395typedef signed char yytype_int8;
    399 #else
    400 typedef short int yytype_int8;
    401396#endif
    402397
     
    418413# elif defined size_t
    419414#  define YYSIZE_T size_t
    420 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    421      || defined __cplusplus || defined _MSC_VER)
     415# elif ! defined YYSIZE_T
    422416#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    423417#  define YYSIZE_T size_t
     
    433427#  if ENABLE_NLS
    434428#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    435 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     429#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    436430#  endif
    437431# endif
    438432# ifndef YY_
    439 #  define YY_(msgid) msgid
     433#  define YY_(Msgid) Msgid
    440434# endif
    441435#endif
    442436
     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
    443464/* Suppress unused-variable warnings by "using" E.  */
    444465#if ! defined lint || defined __GNUC__
    445 # define YYUSE(e) ((void) (e))
     466# define YYUSE(E) ((void) (E))
    446467#else
    447 # define YYUSE(e) /* empty */
     468# define YYUSE(E) /* empty */
    448469#endif
    449470
    450 /* Identity function, used to suppress warnings about constant conditions.  */
    451 #ifndef lint
    452 # define YYID(n) (n)
     471#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
     472/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
     473# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
     474    _Pragma ("GCC diagnostic push") \
     475    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
     476    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
     477# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
     478    _Pragma ("GCC diagnostic pop")
    453479#else
    454 #if (defined __STDC__ || defined __C99__FUNC__ \
    455      || defined __cplusplus || defined _MSC_VER)
    456 static int
    457 YYID (int yyi)
    458 #else
    459 static int
    460 YYID (yyi)
    461     int yyi;
     480# define YY_INITIAL_VALUE(Value) Value
    462481#endif
    463 {
    464   return yyi;
    465 }
     482#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     483# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     484# define YY_IGNORE_MAYBE_UNINITIALIZED_END
    466485#endif
     486#ifndef YY_INITIAL_VALUE
     487# define YY_INITIAL_VALUE(Value) /* Nothing. */
     488#endif
     489
    467490
    468491#if ! defined yyoverflow || YYERROR_VERBOSE
     
    483506#   else
    484507#    define YYSTACK_ALLOC alloca
    485 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    486      || defined __cplusplus || defined _MSC_VER)
     508#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    487509#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     510      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    488511#     ifndef EXIT_SUCCESS
    489512#      define EXIT_SUCCESS 0
     
    495518
    496519# ifdef YYSTACK_ALLOC
    497    /* Pacify GCC's `empty if-body' warning.  */
    498 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     520   /* Pacify GCC's 'empty if-body' warning.  */
     521#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    499522#  ifndef YYSTACK_ALLOC_MAXIMUM
    500523    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    512535#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    513536       && ! ((defined YYMALLOC || defined malloc) \
    514              && (defined YYFREE || defined free)))
     537             && (defined YYFREE || defined free)))
    515538#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    516539#   ifndef EXIT_SUCCESS
     
    520543#  ifndef YYMALLOC
    521544#   define YYMALLOC malloc
    522 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    523      || defined __cplusplus || defined _MSC_VER)
     545#   if ! defined malloc && ! defined EXIT_SUCCESS
    524546void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    525547#   endif
     
    527549#  ifndef YYFREE
    528550#   define YYFREE free
    529 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    530      || defined __cplusplus || defined _MSC_VER)
     551#   if ! defined free && ! defined EXIT_SUCCESS
    531552void free (void *); /* INFRINGES ON USER NAME SPACE */
    532553#   endif
     
    538559#if (! defined yyoverflow \
    539560     && (! defined __cplusplus \
    540         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     561        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    541562
    542563/* A type that is properly aligned for any stack member.  */
     
    563584   stack.  Advance YYPTR to a properly aligned location for the next
    564585   stack.  */
    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))
     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)
    575596
    576597#endif
    577598
    578599#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    579 /* Copy COUNT objects from FROM to TO.  The source and destination do
     600/* Copy COUNT objects from SRC to DST.  The source and destination do
    580601   not overlap.  */
    581602# ifndef YYCOPY
    582603#  if defined __GNUC__ && 1 < __GNUC__
    583 #   define YYCOPY(To, From, Count) \
    584       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     604#   define YYCOPY(Dst, Src, Count) \
     605      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    585606#  else
    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))
     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)
    594615#  endif
    595616# endif
     
    607628/* YYNRULES -- Number of rules.  */
    608629#define YYNRULES  751
    609 /* YYNRULES -- Number of states.  */
     630/* YYNSTATES -- Number of states.  */
    610631#define YYNSTATES  1555
    611632
    612 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     633/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
     634   by yylex, with out-of-bounds checking.  */
    613635#define YYUNDEFTOK  2
    614636#define YYMAXUTOK   363
    615637
    616 #define YYTRANSLATE(YYX)                                                \
     638#define YYTRANSLATE(YYX)                                                \
    617639  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    618640
    619 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     641/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
     642   as returned by yylex, without out-of-bounds checking.  */
    620643static const yytype_uint8 yytranslate[] =
    621644{
     
    660683
    661684#if YYDEBUG
    662 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    663    YYRHS.  */
    664 static 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.  */
    745 static 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.  */
     685  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    1022686static const yytype_uint16 yyrline[] =
    1023687{
    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
     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
    1100764};
    1101765#endif
    1102766
    1103 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
     767#if YYDEBUG || YYERROR_VERBOSE || 0
    1104768/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    1105769   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    1210874  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    1211875  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    1212   "comma_opt", "assignment_opt", 0
     876  "comma_opt", "assignment_opt", YY_NULLPTR
    1213877};
    1214878#endif
    1215879
    1216880# ifdef YYPRINT
    1217 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1218    token YYLEX-NUM.  */
     881/* YYTOKNUM[NUM] -- (External) token number corresponding to the
     882   (internal) symbol number NUM (which must be that of a token).  */
    1219883static const yytype_uint16 yytoknum[] =
    1220884{
     
    1236900# endif
    1237901
    1238 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1239 static const yytype_uint16 yyr1[] =
     902#define YYPACT_NINF -1323
     903
     904#define yypact_value_is_default(Yystate) \
     905  (!!((Yystate) == (-1323)))
     906
     907#define YYTABLE_NINF -522
     908
     909#define yytable_value_is_error(Yytable_value) \
     910  0
     911
     912  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     913     STATE-NUM.  */
     914static const yytype_int16 yypact[] =
    1240915{
    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
     916    7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
     917   -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     918   -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
     919     733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
     920   -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
     921   -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
     922   -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
     923    1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
     924   -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
     925     616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
     926      85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
     927   -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
     928     844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
     929     608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
     930   -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
     931     717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
     932    5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
     933   -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
     934     534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
     935   -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
     936   -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
     937   -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
     938   -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
     939    5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
     940   -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
     941   -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
     942   -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
     943   -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
     944     922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
     945   -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
     946   -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
     947     756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
     948   -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
     949   -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
     950     990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
     951    8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
     952   -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
     953   -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
     954    5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     955   -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
     956     992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
     957     229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
     958   -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
     959    1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
     960   -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
     961   -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
     962   -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
     963    1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
     964    4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
     965     962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
     966   -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
     967   -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
     968    1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
     969   -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
     970   -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
     971   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
     972   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
     973   -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
     974   -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
     975    5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
     976    1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
     977     132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
     978     985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
     979     962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
     980    5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
     981   -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
     982   -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
     983     285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
     984   -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
     985     538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
     986   -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
     987   -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
     988    5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
     989   -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
     990    1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
     991     682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
     992   -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
     993   -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
     994     411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
     995    9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
     996    9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
     997    6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
     998    1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
     999   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1000   -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
     1001   -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
     1002   -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
     1003   -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
     1004   -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
     1005    1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
     1006   -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
     1007   -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
     1008    8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
     1009    1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
     1010   -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
     1011    1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
     1012   -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
     1013   -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
     1014     631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
     1015     985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
     1016    9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
     1017     861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
     1018   -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
     1019     685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
     1020   -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
     1021   10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
     1022   -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1023   -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
     1024   -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
     1025   -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
     1026    1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
     1027   -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
     1028      94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
     1029    1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
     1030   -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
     1031    1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
     1032   -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
     1033   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
     1034    1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
     1035    9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
     1036    1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
     1037   -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
     1038   -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
     1039    9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
     1040   -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
     1041     509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
     1042   -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
     1043   -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
     1044   -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
     1045   -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
     1046     834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
     1047    1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
     1048   -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
     1049   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1050   -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
     1051   -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
     1052   10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
     1053    1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
     1054    1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
     1055    1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
     1056    1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
     1057   -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
     1058    9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
     1059    1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
     1060   -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
     1061     285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
     1062   -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
     1063   10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
     1064   -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
     1065    1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
     1066    6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
     1067   -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
     1068    9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
     1069     285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
     1070   -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
     1071   -1323, -1323, -1323, -1323, -1323
    13171072};
    13181073
    1319 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1320 static 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.  */
     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.  */
    14031077static const yytype_uint16 yydefact[] =
    14041078{
     
    15611235};
    15621236
    1563 /* YYDEFGOTO[NTERM-NUM].  */
     1237  /* YYPGOTO[NTERM-NUM].  */
     1238static const yytype_int16 yypgoto[] =
     1239{
     1240   -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
     1241   -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
     1242     423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
     1243    -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
     1244   -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
     1245   -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
     1246   -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
     1247     482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
     1248    -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
     1249     -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
     1250      54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
     1251    2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
     1252     699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
     1253      34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
     1254   -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
     1255   -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
     1256   -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
     1257    1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
     1258   -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
     1259       7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
     1260    -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
     1261   -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
     1262    -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
     1263    -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
     1264    -397
     1265};
     1266
     1267  /* YYDEFGOTO[NTERM-NUM].  */
    15641268static const yytype_int16 yydefgoto[] =
    15651269{
     
    15911295};
    15921296
    1593 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1594    STATE-NUM.  */
    1595 #define YYPACT_NINF -1323
    1596 static const yytype_int16 yypact[] =
    1597 {
    1598     7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
    1599    -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1600    -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
    1601      733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
    1602    -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
    1603    -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
    1604    -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
    1605     1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
    1606    -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
    1607      616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
    1608       85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
    1609    -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
    1610      844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
    1611      608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
    1612    -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
    1613      717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
    1614     5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
    1615    -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
    1616      534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
    1617    -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
    1618    -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
    1619    -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
    1620    -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
    1621     5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
    1622    -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
    1623    -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
    1624    -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
    1625    -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
    1626      922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
    1627    -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
    1628    -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
    1629      756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
    1630    -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
    1631    -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
    1632      990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
    1633     8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
    1634    -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
    1635    -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
    1636     5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1637    -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
    1638      992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
    1639      229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
    1640    -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
    1641     1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
    1642    -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
    1643    -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
    1644    -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
    1645     1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
    1646     4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
    1647      962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
    1648    -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
    1649    -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
    1650     1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
    1651    -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
    1652    -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
    1653    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
    1654    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
    1655    -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
    1656    -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
    1657     5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
    1658     1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
    1659      132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
    1660      985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
    1661      962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
    1662     5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
    1663    -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
    1664    -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
    1665      285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
    1666    -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
    1667      538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
    1668    -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
    1669    -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
    1670     5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
    1671    -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
    1672     1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
    1673      682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
    1674    -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
    1675    -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
    1676      411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
    1677     9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
    1678     9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
    1679     6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
    1680     1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
    1681    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1682    -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
    1683    -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
    1684    -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
    1685    -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
    1686    -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
    1687     1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
    1688    -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
    1689    -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
    1690     8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
    1691     1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
    1692    -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
    1693     1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
    1694    -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
    1695    -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
    1696      631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
    1697      985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
    1698     9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
    1699      861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
    1700    -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
    1701      685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
    1702    -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
    1703    10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
    1704    -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1705    -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
    1706    -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
    1707    -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
    1708     1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
    1709    -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
    1710       94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
    1711     1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
    1712    -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
    1713     1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
    1714    -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
    1715    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
    1716     1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
    1717     9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
    1718     1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
    1719    -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
    1720    -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
    1721     9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
    1722    -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
    1723      509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
    1724    -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
    1725    -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
    1726    -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
    1727    -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
    1728      834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
    1729     1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
    1730    -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
    1731    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1732    -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
    1733    -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
    1734    10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
    1735     1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
    1736     1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
    1737     1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
    1738     1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
    1739    -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
    1740     9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
    1741     1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
    1742    -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
    1743      285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
    1744    -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
    1745    10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
    1746    -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
    1747     1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
    1748     6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
    1749    -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
    1750     9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
    1751      285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
    1752    -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
    1753    -1323, -1323, -1323, -1323, -1323
    1754 };
    1755 
    1756 /* YYPGOTO[NTERM-NUM].  */
    1757 static const yytype_int16 yypgoto[] =
    1758 {
    1759    -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
    1760    -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
    1761      423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
    1762     -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
    1763    -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
    1764    -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
    1765    -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
    1766      482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
    1767     -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
    1768      -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
    1769       54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
    1770     2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
    1771      699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
    1772       34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
    1773    -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
    1774    -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
    1775    -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
    1776     1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
    1777    -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
    1778        7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
    1779     -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
    1780    -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
    1781     -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
    1782     -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
    1783     -397
    1784 };
    1785 
    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
     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.  */
    17901300static const yytype_int16 yytable[] =
    17911301{
     
    28792389};
    28802390
    2881 #define yypact_value_is_default(yystate) \
    2882   ((yystate) == (-1323))
    2883 
    2884 #define yytable_value_is_error(yytable_value) \
    2885   YYID (0)
    2886 
    28872391static const yytype_int16 yycheck[] =
    28882392{
     
    39763480};
    39773481
    3978 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3979    symbol of state STATE-NUM.  */
     3482  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3483     symbol of state STATE-NUM.  */
    39803484static const yytype_uint16 yystos[] =
    39813485{
     
    41383642};
    41393643
    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
     3644  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     3645static const yytype_uint16 yyr1[] =
     3646{
     3647       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     3648     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
     3649     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
     3650     144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
     3651     148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
     3652     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     3653     149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
     3654     153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
     3655     156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
     3656     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
     3657     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
     3658     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
     3659     168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
     3660     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
     3661     174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
     3662     178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
     3663     181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
     3664     186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
     3665     190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
     3666     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
     3667     195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
     3668     198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
     3669     200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
     3670     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     3671     210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
     3672     214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
     3673     217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
     3674     220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
     3675     223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
     3676     226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
     3677     230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
     3678     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
     3679     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     3680     235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
     3681     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     3682     240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
     3683     243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
     3684     247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
     3685     250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
     3686     254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
     3687     260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
     3688     262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
     3689     266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
     3690     268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
     3691     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
     3692     276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
     3693     279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
     3694     282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
     3695     286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
     3696     291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
     3697     294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
     3698     299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
     3699     304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
     3700     307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
     3701     309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
     3702     314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
     3703     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     3704     321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
     3705     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
     3706     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
     3707     331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
     3708     334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
     3709     337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
     3710     340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
     3711     344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
     3712     347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
     3713     350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
     3714     352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
     3715     355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
     3716     357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
     3717     360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
     3718     363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
     3719     364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
     3720     367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
     3721     369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
     3722     373,   373
     3723};
     3724
     3725  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
     3726static const yytype_uint8 yyr2[] =
     3727{
     3728       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     3729       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     3730       1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
     3731       2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
     3732       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     3733       2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
     3734       4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
     3735       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     3736       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     3737       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     3738       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
     3739       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3740       2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
     3741       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     3742       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     3743       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     3744       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     3745       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     3746       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     3747       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     3748       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     3749       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     3750       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     3751       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     3752       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     3753       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     3754       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     3755       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     3756       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     3757       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     3758       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     3759       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3760       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3761       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     3762       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     3763       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     3764       2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
     3765       2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
     3766       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     3767       2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
     3768       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     3769       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     3770       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     3771       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     3772       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     3773       1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
     3774       2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
     3775       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     3776       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     3777       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     3778       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     3779       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     3780       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     3781       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     3782       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     3783       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     3784       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     3785       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     3786       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     3787       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     3788       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     3789       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     3790       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     3791       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     3792       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     3793       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     3794       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     3795       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     3796       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     3797       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     3798       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     3799       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     3800       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     3801       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     3802       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     3803       0,     2
     3804};
     3805
     3806
     3807#define yyerrok         (yyerrstatus = 0)
     3808#define yyclearin       (yychar = YYEMPTY)
     3809#define YYEMPTY         (-2)
     3810#define YYEOF           0
     3811
     3812#define YYACCEPT        goto yyacceptlab
     3813#define YYABORT         goto yyabortlab
     3814#define YYERROR         goto yyerrorlab
     3815
    41643816
    41653817#define YYRECOVERING()  (!!yyerrstatus)
    41663818
    4167 #define YYBACKUP(Token, Value)                                  \
    4168 do                                                              \
    4169   if (yychar == YYEMPTY && yylen == 1)                          \
    4170     {                                                           \
    4171       yychar = (Token);                                         \
    4172       yylval = (Value);                                         \
    4173       YYPOPSTACK (1);                                           \
    4174       goto yybackup;                                            \
    4175     }                                                           \
    4176   else                                                          \
    4177     {                                                           \
     3819#define YYBACKUP(Token, Value)                                  \
     3820do                                                              \
     3821  if (yychar == YYEMPTY)                                        \
     3822    {                                                           \
     3823      yychar = (Token);                                         \
     3824      yylval = (Value);                                         \
     3825      YYPOPSTACK (yylen);                                       \
     3826      yystate = *yyssp;                                         \
     3827      goto yybackup;                                            \
     3828    }                                                           \
     3829  else                                                          \
     3830    {                                                           \
    41783831      yyerror (YY_("syntax error: cannot back up")); \
    4179       YYERROR;                                                  \
    4180     }                                                           \
    4181 while (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
     3832      YYERROR;                                                  \
     3833    }                                                           \
     3834while (0)
     3835
     3836/* Error token number */
     3837#define YYTERROR        1
     3838#define YYERRCODE       256
     3839
     3840
    42283841
    42293842/* Enable debugging if requested.  */
     
    42353848# endif
    42363849
    4237 # define YYDPRINTF(Args)                        \
    4238 do {                                            \
    4239   if (yydebug)                                  \
    4240     YYFPRINTF Args;                             \
    4241 } while (YYID (0))
    4242 
    4243 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    4244 do {                                                                      \
    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)
     3850# define YYDPRINTF(Args)                        \
     3851do {                                            \
     3852  if (yydebug)                                  \
     3853    YYFPRINTF Args;                             \
     3854} while (0)
     3855
     3856/* This macro is provided for backward compatibility. */
     3857#ifndef YY_LOCATION_PRINT
     3858# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     3859#endif
     3860
     3861
     3862# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     3863do {                                                                      \
     3864  if (yydebug)                                                            \
     3865    {                                                                     \
     3866      YYFPRINTF (stderr, "%s ", Title);                                   \
     3867      yy_symbol_print (stderr,                                            \
     3868                  Type, Value); \
     3869      YYFPRINTF (stderr, "\n");                                           \
     3870    }                                                                     \
     3871} while (0)
     3872
     3873
     3874/*----------------------------------------.
     3875| Print this symbol's value on YYOUTPUT.  |
     3876`----------------------------------------*/
     3877
    42623878static void
    42633879yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4264 #else
    4265 static void
    4266 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    4267     FILE *yyoutput;
    4268     int yytype;
    4269     YYSTYPE const * const yyvaluep;
    4270 #endif
    42713880{
     3881  FILE *yyo = yyoutput;
     3882  YYUSE (yyo);
    42723883  if (!yyvaluep)
    42733884    return;
     
    42753886  if (yytype < YYNTOKENS)
    42763887    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    4277 # else
    4278   YYUSE (yyoutput);
    42793888# endif
    4280   switch (yytype)
    4281     {
    4282       default:
    4283         break;
    4284     }
     3889  YYUSE (yytype);
    42853890}
    42863891
     
    42903895`--------------------------------*/
    42913896
    4292 #if (defined __STDC__ || defined __C99__FUNC__ \
    4293      || defined __cplusplus || defined _MSC_VER)
    42943897static void
    42953898yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4296 #else
    4297 static void
    4298 yy_symbol_print (yyoutput, yytype, yyvaluep)
    4299     FILE *yyoutput;
    4300     int yytype;
    4301     YYSTYPE const * const yyvaluep;
    4302 #endif
    43033899{
    4304   if (yytype < YYNTOKENS)
    4305     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    4306   else
    4307     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
     3900  YYFPRINTF (yyoutput, "%s %s (",
     3901             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
    43083902
    43093903  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    43163910`------------------------------------------------------------------*/
    43173911
    4318 #if (defined __STDC__ || defined __C99__FUNC__ \
    4319      || defined __cplusplus || defined _MSC_VER)
    43203912static void
    43213913yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    4322 #else
    4323 static void
    4324 yy_stack_print (yybottom, yytop)
    4325     yytype_int16 *yybottom;
    4326     yytype_int16 *yytop;
    4327 #endif
    43283914{
    43293915  YYFPRINTF (stderr, "Stack now");
     
    43363922}
    43373923
    4338 # define YY_STACK_PRINT(Bottom, Top)                            \
    4339 do {                                                            \
    4340   if (yydebug)                                                  \
    4341     yy_stack_print ((Bottom), (Top));                           \
    4342 } while (YYID (0))
     3924# define YY_STACK_PRINT(Bottom, Top)                            \
     3925do {                                                            \
     3926  if (yydebug)                                                  \
     3927    yy_stack_print ((Bottom), (Top));                           \
     3928} while (0)
    43433929
    43443930
     
    43473933`------------------------------------------------*/
    43483934
    4349 #if (defined __STDC__ || defined __C99__FUNC__ \
    4350      || defined __cplusplus || defined _MSC_VER)
    43513935static void
    4352 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    4353 #else
    4354 static void
    4355 yy_reduce_print (yyvsp, yyrule)
    4356     YYSTYPE *yyvsp;
    4357     int yyrule;
    4358 #endif
     3936yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
    43593937{
     3938  unsigned long int yylno = yyrline[yyrule];
    43603939  int yynrhs = yyr2[yyrule];
    43613940  int yyi;
    4362   unsigned long int yylno = yyrline[yyrule];
    43633941  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    4364              yyrule - 1, yylno);
     3942             yyrule - 1, yylno);
    43653943  /* The symbols being reduced.  */
    43663944  for (yyi = 0; yyi < yynrhs; yyi++)
    43673945    {
    43683946      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    4369       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    4370                        &(yyvsp[(yyi + 1) - (yynrhs)])
    4371                                        );
     3947      yy_symbol_print (stderr,
     3948                       yystos[yyssp[yyi + 1 - yynrhs]],
     3949                       &(yyvsp[(yyi + 1) - (yynrhs)])
     3950                                              );
    43723951      YYFPRINTF (stderr, "\n");
    43733952    }
    43743953}
    43753954
    4376 # define YY_REDUCE_PRINT(Rule)          \
    4377 do {                                    \
    4378   if (yydebug)                          \
    4379     yy_reduce_print (yyvsp, Rule); \
    4380 } while (YYID (0))
     3955# define YY_REDUCE_PRINT(Rule)          \
     3956do {                                    \
     3957  if (yydebug)                          \
     3958    yy_reduce_print (yyssp, yyvsp, Rule); \
     3959} while (0)
    43813960
    43823961/* Nonzero means print parse trace.  It is left uninitialized so that
     
    43923971
    43933972/* YYINITDEPTH -- initial size of the parser's stacks.  */
    4394 #ifndef YYINITDEPTH
     3973#ifndef YYINITDEPTH
    43953974# define YYINITDEPTH 200
    43963975#endif
     
    44153994#  else
    44163995/* Return the length of YYSTR.  */
    4417 #if (defined __STDC__ || defined __C99__FUNC__ \
    4418      || defined __cplusplus || defined _MSC_VER)
    44193996static YYSIZE_T
    44203997yystrlen (const char *yystr)
    4421 #else
    4422 static YYSIZE_T
    4423 yystrlen (yystr)
    4424     const char *yystr;
    4425 #endif
    44263998{
    44273999  YYSIZE_T yylen;
     
    44394011/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    44404012   YYDEST.  */
    4441 #if (defined __STDC__ || defined __C99__FUNC__ \
    4442      || defined __cplusplus || defined _MSC_VER)
    44434013static char *
    44444014yystpcpy (char *yydest, const char *yysrc)
    4445 #else
    4446 static char *
    4447 yystpcpy (yydest, yysrc)
    4448     char *yydest;
    4449     const char *yysrc;
    4450 #endif
    44514015{
    44524016  char *yyd = yydest;
     
    44784042
    44794043      for (;;)
    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           }
     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          }
    45014065    do_not_strip_quotes: ;
    45024066    }
     
    45214085                yytype_int16 *yyssp, int yytoken)
    45224086{
    4523   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
     4087  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    45244088  YYSIZE_T yysize = yysize0;
    4525   YYSIZE_T yysize1;
    45264089  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    45274090  /* Internationalized format string. */
    4528   const char *yyformat = 0;
     4091  const char *yyformat = YY_NULLPTR;
    45294092  /* Arguments of yyformat. */
    45304093  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    45344097
    45354098  /* 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.
    45404099     - If this state is a consistent state with a default action, then
    45414100       the only way this function was invoked is if the default action
     
    45864145                  }
    45874146                yyarg[yycount++] = yytname[yyx];
    4588                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    4589                 if (! (yysize <= yysize1
    4590                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4591                   return 2;
    4592                 yysize = yysize1;
     4147                {
     4148                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
     4149                  if (! (yysize <= yysize1
     4150                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4151                    return 2;
     4152                  yysize = yysize1;
     4153                }
    45934154              }
    45944155        }
     
    46104171    }
    46114172
    4612   yysize1 = yysize + yystrlen (yyformat);
    4613   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4614     return 2;
    4615   yysize = yysize1;
     4173  {
     4174    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
     4175    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4176      return 2;
     4177    yysize = yysize1;
     4178  }
    46164179
    46174180  if (*yymsg_alloc < yysize)
     
    46504213`-----------------------------------------------*/
    46514214
    4652 /*ARGSUSED*/
    4653 #if (defined __STDC__ || defined __C99__FUNC__ \
    4654      || defined __cplusplus || defined _MSC_VER)
    46554215static void
    46564216yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    4657 #else
    4658 static void
    4659 yydestruct (yymsg, yytype, yyvaluep)
    4660     const char *yymsg;
    4661     int yytype;
    4662     YYSTYPE *yyvaluep;
    4663 #endif
    46644217{
    46654218  YYUSE (yyvaluep);
    4666 
    46674219  if (!yymsg)
    46684220    yymsg = "Deleting";
    46694221  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    46704222
    4671   switch (yytype)
    4672     {
    4673 
    4674       default:
    4675         break;
    4676     }
     4223  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     4224  YYUSE (yytype);
     4225  YY_IGNORE_MAYBE_UNINITIALIZED_END
    46774226}
    46784227
    46794228
    4680 /* Prevent warnings from -Wmissing-prototypes.  */
    4681 #ifdef YYPARSE_PARAM
    4682 #if defined __STDC__ || defined __cplusplus
    4683 int yyparse (void *YYPARSE_PARAM);
    4684 #else
    4685 int yyparse ();
    4686 #endif
    4687 #else /* ! YYPARSE_PARAM */
    4688 #if defined __STDC__ || defined __cplusplus
    4689 int yyparse (void);
    4690 #else
    4691 int yyparse ();
    4692 #endif
    4693 #endif /* ! YYPARSE_PARAM */
    46944229
    46954230
     
    46994234/* The semantic value of the lookahead symbol.  */
    47004235YYSTYPE yylval;
    4701 
    47024236/* Number of syntax errors so far.  */
    47034237int yynerrs;
     
    47084242`----------*/
    47094243
    4710 #ifdef YYPARSE_PARAM
    4711 #if (defined __STDC__ || defined __C99__FUNC__ \
    4712      || defined __cplusplus || defined _MSC_VER)
    4713 int
    4714 yyparse (void *YYPARSE_PARAM)
    4715 #else
    4716 int
    4717 yyparse (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)
    47234244int
    47244245yyparse (void)
    4725 #else
    4726 int
    4727 yyparse ()
    4728 
    4729 #endif
    4730 #endif
    47314246{
    47324247    int yystate;
     
    47354250
    47364251    /* The stacks and their tools:
    4737        `yyss': related to states.
    4738        `yyvs': related to semantic values.
    4739 
    4740        Refer to the stacks thru separate pointers, to allow yyoverflow
     4252       'yyss': related to states.
     4253       'yyvs': related to semantic values.
     4254
     4255       Refer to the stacks through separate pointers, to allow yyoverflow
    47414256       to reallocate them elsewhere.  */
    47424257
     
    47564271  int yyresult;
    47574272  /* Lookahead token as an internal (translated) token number.  */
    4758   int yytoken;
     4273  int yytoken = 0;
    47594274  /* The variables used to return semantic value and location from the
    47604275     action routines.  */
     
    47744289  int yylen = 0;
    47754290
    4776   yytoken = 0;
    4777   yyss = yyssa;
    4778   yyvs = yyvsa;
     4291  yyssp = yyss = yyssa;
     4292  yyvsp = yyvs = yyvsa;
    47794293  yystacksize = YYINITDEPTH;
    47804294
     
    47854299  yynerrs = 0;
    47864300  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 
    47954301  goto yysetstate;
    47964302
     
    48134319#ifdef yyoverflow
    48144320      {
    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;
     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;
    48324338      }
    48334339#else /* no yyoverflow */
     
    48374343      /* Extend the stack our own way.  */
    48384344      if (YYMAXDEPTH <= yystacksize)
    4839         goto yyexhaustedlab;
     4345        goto yyexhaustedlab;
    48404346      yystacksize *= 2;
    48414347      if (YYMAXDEPTH < yystacksize)
    4842         yystacksize = YYMAXDEPTH;
     4348        yystacksize = YYMAXDEPTH;
    48434349
    48444350      {
    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);
     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);
    48524358#  undef YYSTACK_RELOCATE
    4853         if (yyss1 != yyssa)
    4854           YYSTACK_FREE (yyss1);
     4359        if (yyss1 != yyssa)
     4360          YYSTACK_FREE (yyss1);
    48554361      }
    48564362# endif
     
    48614367
    48624368      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4863                   (unsigned long int) yystacksize));
     4369                  (unsigned long int) yystacksize));
    48644370
    48654371      if (yyss + yystacksize - 1 <= yyssp)
    4866         YYABORT;
     4372        YYABORT;
    48674373    }
    48684374
     
    48934399    {
    48944400      YYDPRINTF ((stderr, "Reading a token: "));
    4895       yychar = YYLEX;
     4401      yychar = yylex ();
    48964402    }
    48974403
     
    49334439
    49344440  yystate = yyn;
     4441  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    49354442  *++yyvsp = yylval;
     4443  YY_IGNORE_MAYBE_UNINITIALIZED_END
    49364444
    49374445  goto yynewstate;
     
    49564464
    49574465  /* If YYLEN is nonzero, implement the default value of the action:
    4958      `$$ = $1'.
     4466     '$$ = $1'.
    49594467
    49604468     Otherwise, the following line sets YYVAL to garbage.
     
    49704478    {
    49714479        case 2:
    4972 
    4973 /* Line 1806 of yacc.c  */
    4974 #line 301 "parser.yy"
     4480#line 300 "parser.yy" /* yacc.c:1646  */
    49754481    { typedefTable.enterScope(); }
     4482#line 4483 "Parser/parser.cc" /* yacc.c:1646  */
    49764483    break;
    49774484
    49784485  case 3:
    4979 
    4980 /* Line 1806 of yacc.c  */
    4981 #line 305 "parser.yy"
     4486#line 304 "parser.yy" /* yacc.c:1646  */
    49824487    { typedefTable.leaveScope(); }
     4488#line 4489 "Parser/parser.cc" /* yacc.c:1646  */
    49834489    break;
    49844490
    49854491  case 4:
    4986 
    4987 /* Line 1806 of yacc.c  */
    4988 #line 312 "parser.yy"
    4989     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4492#line 311 "parser.yy" /* yacc.c:1646  */
     4493    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); }
     4494#line 4495 "Parser/parser.cc" /* yacc.c:1646  */
    49904495    break;
    49914496
    49924497  case 5:
    4993 
    4994 /* Line 1806 of yacc.c  */
    4995 #line 313 "parser.yy"
    4996     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4498#line 312 "parser.yy" /* yacc.c:1646  */
     4499    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); }
     4500#line 4501 "Parser/parser.cc" /* yacc.c:1646  */
    49974501    break;
    49984502
    49994503  case 6:
    5000 
    5001 /* Line 1806 of yacc.c  */
    5002 #line 314 "parser.yy"
    5003     { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
     4504#line 313 "parser.yy" /* yacc.c:1646  */
     4505    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); }
     4506#line 4507 "Parser/parser.cc" /* yacc.c:1646  */
    50044507    break;
    50054508
    50064509  case 16:
    5007 
    5008 /* Line 1806 of yacc.c  */
    5009 #line 339 "parser.yy"
    5010     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     4510#line 338 "parser.yy" /* yacc.c:1646  */
     4511    { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); }
     4512#line 4513 "Parser/parser.cc" /* yacc.c:1646  */
    50114513    break;
    50124514
    50134515  case 17:
    5014 
    5015 /* Line 1806 of yacc.c  */
    5016 #line 343 "parser.yy"
    5017     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     4516#line 342 "parser.yy" /* yacc.c:1646  */
     4517    { (yyval.str) = (yyvsp[0].tok); }
     4518#line 4519 "Parser/parser.cc" /* yacc.c:1646  */
    50184519    break;
    50194520
    50204521  case 18:
    5021 
    5022 /* Line 1806 of yacc.c  */
    5023 #line 345 "parser.yy"
    5024     {
    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
     4522#line 344 "parser.yy" /* yacc.c:1646  */
     4523    {
     4524                        appendStr( (yyvsp[-1].str), (yyvsp[0].tok) );                                           // append 2nd juxtaposed string to 1st
     4525                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
     4526                        (yyval.str) = (yyvsp[-1].str);                                                                  // conversion from tok to str
    50284527                }
     4528#line 4529 "Parser/parser.cc" /* yacc.c:1646  */
    50294529    break;
    50304530
    50314531  case 19:
    5032 
    5033 /* Line 1806 of yacc.c  */
    5034 #line 356 "parser.yy"
    5035     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4532#line 355 "parser.yy" /* yacc.c:1646  */
     4533    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4534#line 4535 "Parser/parser.cc" /* yacc.c:1646  */
    50364535    break;
    50374536
    50384537  case 20:
    5039 
    5040 /* Line 1806 of yacc.c  */
    5041 #line 358 "parser.yy"
    5042     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4538#line 357 "parser.yy" /* yacc.c:1646  */
     4539    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4540#line 4541 "Parser/parser.cc" /* yacc.c:1646  */
    50434541    break;
    50444542
    50454543  case 21:
    5046 
    5047 /* Line 1806 of yacc.c  */
    5048 #line 360 "parser.yy"
    5049     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     4544#line 359 "parser.yy" /* yacc.c:1646  */
     4545    { (yyval.en) = (yyvsp[-1].en); }
     4546#line 4547 "Parser/parser.cc" /* yacc.c:1646  */
    50504547    break;
    50514548
    50524549  case 22:
    5053 
    5054 /* Line 1806 of yacc.c  */
    5055 #line 362 "parser.yy"
    5056     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
     4550#line 361 "parser.yy" /* yacc.c:1646  */
     4551    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
     4552#line 4553 "Parser/parser.cc" /* yacc.c:1646  */
    50574553    break;
    50584554
    50594555  case 24:
    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) ) ); }
     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  */
    50644559    break;
    50654560
    50664561  case 25:
    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) ) ); }
     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  */
    50714565    break;
    50724566
    50734567  case 26:
    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) ) ) ); }
     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  */
    50784571    break;
    50794572
    50804573  case 28:
    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) ) ) ); }
     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  */
    50854577    break;
    50864578
    50874579  case 30:
    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) ) ); }
     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  */
    50924583    break;
    50934584
    50944585  case 31:
    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) ) ); }
     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  */
    50994589    break;
    51004590
    51014591  case 32:
    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 ) ) ); }
     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  */
    51064595    break;
    51074596
    51084597  case 33:
    5109 
    5110 /* Line 1806 of yacc.c  */
    5111 #line 390 "parser.yy"
     4598#line 389 "parser.yy" /* yacc.c:1646  */
    51124599    {
    51134600                        Token fn;
    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) ) ) ) );
     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) ) ) );
    51164603                }
     4604#line 4605 "Parser/parser.cc" /* yacc.c:1646  */
    51174605    break;
    51184606
    51194607  case 35:
    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) )); }
     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  */
    51244611    break;
    51254612
    51264613  case 36:
    5127 
    5128 /* Line 1806 of yacc.c  */
    5129 #line 405 "parser.yy"
     4614#line 404 "parser.yy" /* yacc.c:1646  */
    51304615    { (yyval.en) = 0; }
     4616#line 4617 "Parser/parser.cc" /* yacc.c:1646  */
    51314617    break;
    51324618
    51334619  case 39:
    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) ); }
     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  */
    51384623    break;
    51394624
    51404625  case 40:
    5141 
    5142 /* Line 1806 of yacc.c  */
    5143 #line 416 "parser.yy"
    5144     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4626#line 415 "parser.yy" /* yacc.c:1646  */
     4627    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
     4628#line 4629 "Parser/parser.cc" /* yacc.c:1646  */
    51454629    break;
    51464630
    51474631  case 41:
    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) ) ) ); }
     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  */
    51524635    break;
    51534636
    51544637  case 42:
    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) ) ) ); }
     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  */
    51594641    break;
    51604642
    51614643  case 43:
    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) ) ) ); }
     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  */
    51664647    break;
    51674648
    51684649  case 44:
    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) ) ) ); }
     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  */
    51734653    break;
    51744654
    51754655  case 46:
    5176 
    5177 /* Line 1806 of yacc.c  */
    5178 #line 434 "parser.yy"
    5179     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     4656#line 433 "parser.yy" /* yacc.c:1646  */
     4657    { (yyval.en) = (yyvsp[0].en); }
     4658#line 4659 "Parser/parser.cc" /* yacc.c:1646  */
    51804659    break;
    51814660
    51824661  case 47:
    5183 
    5184 /* Line 1806 of yacc.c  */
    5185 #line 436 "parser.yy"
    5186     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     4662#line 435 "parser.yy" /* yacc.c:1646  */
     4663    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     4664#line 4665 "Parser/parser.cc" /* yacc.c:1646  */
    51874665    break;
    51884666
    51894667  case 48:
    5190 
    5191 /* Line 1806 of yacc.c  */
    5192 #line 438 "parser.yy"
    5193     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     4668#line 437 "parser.yy" /* yacc.c:1646  */
     4669    { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
     4670#line 4671 "Parser/parser.cc" /* yacc.c:1646  */
    51944671    break;
    51954672
    51964673  case 49:
    5197 
    5198 /* Line 1806 of yacc.c  */
    5199 #line 443 "parser.yy"
    5200     {
    5201                         switch ( (yyvsp[(1) - (2)].op) ) {
     4674#line 442 "parser.yy" /* yacc.c:1646  */
     4675    {
     4676                        switch ( (yyvsp[-1].op) ) {
    52024677                          case OperKinds::AddressOf:
    5203                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     4678                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
    52044679                                break;
    52054680                          case OperKinds::PointTo:
    5206                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     4681                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
    52074682                                break;
    52084683                          default:
     
    52104685                        }
    52114686                }
     4687#line 4688 "Parser/parser.cc" /* yacc.c:1646  */
    52124688    break;
    52134689
    52144690  case 50:
    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) ) ); }
     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  */
    52194694    break;
    52204695
    52214696  case 51:
    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) ) ); }
     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  */
    52264700    break;
    52274701
    52284702  case 52:
    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) ) ); }
     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  */
    52334706    break;
    52344707
    52354708  case 53:
    5236 
    5237 /* Line 1806 of yacc.c  */
    5238 #line 462 "parser.yy"
    5239     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4709#line 461 "parser.yy" /* yacc.c:1646  */
     4710    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
     4711#line 4712 "Parser/parser.cc" /* yacc.c:1646  */
    52404712    break;
    52414713
    52424714  case 54:
    5243 
    5244 /* Line 1806 of yacc.c  */
    5245 #line 464 "parser.yy"
    5246     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4715#line 463 "parser.yy" /* yacc.c:1646  */
     4716    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
     4717#line 4718 "Parser/parser.cc" /* yacc.c:1646  */
    52474718    break;
    52484719
    52494720  case 55:
    5250 
    5251 /* Line 1806 of yacc.c  */
    5252 #line 466 "parser.yy"
    5253     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     4721#line 465 "parser.yy" /* yacc.c:1646  */
     4722    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
     4723#line 4724 "Parser/parser.cc" /* yacc.c:1646  */
    52544724    break;
    52554725
    52564726  case 56:
    5257 
    5258 /* Line 1806 of yacc.c  */
    5259 #line 468 "parser.yy"
    5260     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     4727#line 467 "parser.yy" /* yacc.c:1646  */
     4728    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
     4729#line 4730 "Parser/parser.cc" /* yacc.c:1646  */
    52614730    break;
    52624731
    52634732  case 57:
    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) ) ) ); }
     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  */
    52684736    break;
    52694737
    52704738  case 58:
    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 ) ); }
     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  */
    52754742    break;
    52764743
    52774744  case 59:
    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) ) ); }
     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  */
    52824748    break;
    52834749
    52844750  case 60:
    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) ) ); }
     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  */
    52894754    break;
    52904755
    52914756  case 61:
    5292 
    5293 /* Line 1806 of yacc.c  */
    5294 #line 482 "parser.yy"
     4757#line 481 "parser.yy" /* yacc.c:1646  */
    52954758    { (yyval.op) = OperKinds::PointTo; }
     4759#line 4760 "Parser/parser.cc" /* yacc.c:1646  */
    52964760    break;
    52974761
    52984762  case 62:
    5299 
    5300 /* Line 1806 of yacc.c  */
    5301 #line 483 "parser.yy"
     4763#line 482 "parser.yy" /* yacc.c:1646  */
    53024764    { (yyval.op) = OperKinds::AddressOf; }
     4765#line 4766 "Parser/parser.cc" /* yacc.c:1646  */
    53034766    break;
    53044767
    53054768  case 63:
    5306 
    5307 /* Line 1806 of yacc.c  */
    5308 #line 489 "parser.yy"
     4769#line 488 "parser.yy" /* yacc.c:1646  */
    53094770    { (yyval.op) = OperKinds::UnPlus; }
     4771#line 4772 "Parser/parser.cc" /* yacc.c:1646  */
    53104772    break;
    53114773
    53124774  case 64:
    5313 
    5314 /* Line 1806 of yacc.c  */
    5315 #line 490 "parser.yy"
     4775#line 489 "parser.yy" /* yacc.c:1646  */
    53164776    { (yyval.op) = OperKinds::UnMinus; }
     4777#line 4778 "Parser/parser.cc" /* yacc.c:1646  */
    53174778    break;
    53184779
    53194780  case 65:
    5320 
    5321 /* Line 1806 of yacc.c  */
    5322 #line 491 "parser.yy"
     4781#line 490 "parser.yy" /* yacc.c:1646  */
    53234782    { (yyval.op) = OperKinds::Neg; }
     4783#line 4784 "Parser/parser.cc" /* yacc.c:1646  */
    53244784    break;
    53254785
    53264786  case 66:
    5327 
    5328 /* Line 1806 of yacc.c  */
    5329 #line 492 "parser.yy"
     4787#line 491 "parser.yy" /* yacc.c:1646  */
    53304788    { (yyval.op) = OperKinds::BitNeg; }
     4789#line 4790 "Parser/parser.cc" /* yacc.c:1646  */
    53314790    break;
    53324791
    53334792  case 68:
    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) ) ); }
     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  */
    53384796    break;
    53394797
    53404798  case 69:
    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) ) ); }
     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  */
    53454802    break;
    53464803
    53474804  case 71:
    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) ) ); }
     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  */
    53524808    break;
    53534809
    53544810  case 72:
    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) ) ); }
     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  */
    53594814    break;
    53604815
    53614816  case 73:
    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) ) ); }
     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  */
    53664820    break;
    53674821
    53684822  case 75:
    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) ) ); }
     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  */
    53734826    break;
    53744827
    53754828  case 76:
    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) ) ); }
     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  */
    53804832    break;
    53814833
    53824834  case 78:
    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) ) ); }
     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  */
    53874838    break;
    53884839
    53894840  case 79:
    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) ) ); }
     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  */
    53944844    break;
    53954845
    53964846  case 81:
    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) ) ); }
     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  */
    54014850    break;
    54024851
    54034852  case 82:
    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) ) ); }
     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  */
    54084856    break;
    54094857
    54104858  case 83:
    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) ) ); }
     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  */
    54154862    break;
    54164863
    54174864  case 84:
    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) ) ); }
     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  */
    54224868    break;
    54234869
    54244870  case 86:
    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) ) ); }
     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  */
    54294874    break;
    54304875
    54314876  case 87:
    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) ) ); }
     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  */
    54364880    break;
    54374881
    54384882  case 89:
    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) ) ); }
     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  */
    54434886    break;
    54444887
    54454888  case 91:
    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) ) ); }
     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  */
    54504892    break;
    54514893
    54524894  case 93:
    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) ) ); }
     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  */
    54574898    break;
    54584899
    54594900  case 95:
    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 ) ); }
     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  */
    54644904    break;
    54654905
    54664906  case 97:
    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 ) ); }
     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  */
    54714910    break;
    54724911
    54734912  case 99:
    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) ) ); }
     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  */
    54784916    break;
    54794917
    54804918  case 100:
    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) ) ); }
     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  */
    54854922    break;
    54864923
    54874924  case 101:
    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) ) ); }
     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  */
    54924928    break;
    54934929
    54944930  case 104:
    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) ) ); }
     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  */
    54994934    break;
    55004935
    55014936  case 105:
    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) ) ); }
     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  */
    55064940    break;
    55074941
    55084942  case 106:
    5509 
    5510 /* Line 1806 of yacc.c  */
    5511 #line 605 "parser.yy"
     4943#line 604 "parser.yy" /* yacc.c:1646  */
    55124944    { (yyval.en) = nullptr; }
     4945#line 4946 "Parser/parser.cc" /* yacc.c:1646  */
    55134946    break;
    55144947
    55154948  case 108:
    5516 
    5517 /* Line 1806 of yacc.c  */
    5518 #line 610 "parser.yy"
     4949#line 609 "parser.yy" /* yacc.c:1646  */
    55194950    { (yyval.op) = OperKinds::Assign; }
     4951#line 4952 "Parser/parser.cc" /* yacc.c:1646  */
    55204952    break;
    55214953
    55224954  case 109:
    5523 
    5524 /* Line 1806 of yacc.c  */
    5525 #line 611 "parser.yy"
     4955#line 610 "parser.yy" /* yacc.c:1646  */
    55264956    { (yyval.op) = OperKinds::AtAssn; }
     4957#line 4958 "Parser/parser.cc" /* yacc.c:1646  */
    55274958    break;
    55284959
    55294960  case 110:
    5530 
    5531 /* Line 1806 of yacc.c  */
    5532 #line 612 "parser.yy"
     4961#line 611 "parser.yy" /* yacc.c:1646  */
    55334962    { (yyval.op) = OperKinds::MulAssn; }
     4963#line 4964 "Parser/parser.cc" /* yacc.c:1646  */
    55344964    break;
    55354965
    55364966  case 111:
    5537 
    5538 /* Line 1806 of yacc.c  */
    5539 #line 613 "parser.yy"
     4967#line 612 "parser.yy" /* yacc.c:1646  */
    55404968    { (yyval.op) = OperKinds::DivAssn; }
     4969#line 4970 "Parser/parser.cc" /* yacc.c:1646  */
    55414970    break;
    55424971
    55434972  case 112:
    5544 
    5545 /* Line 1806 of yacc.c  */
    5546 #line 614 "parser.yy"
     4973#line 613 "parser.yy" /* yacc.c:1646  */
    55474974    { (yyval.op) = OperKinds::ModAssn; }
     4975#line 4976 "Parser/parser.cc" /* yacc.c:1646  */
    55484976    break;
    55494977
    55504978  case 113:
    5551 
    5552 /* Line 1806 of yacc.c  */
    5553 #line 615 "parser.yy"
     4979#line 614 "parser.yy" /* yacc.c:1646  */
    55544980    { (yyval.op) = OperKinds::PlusAssn; }
     4981#line 4982 "Parser/parser.cc" /* yacc.c:1646  */
    55554982    break;
    55564983
    55574984  case 114:
    5558 
    5559 /* Line 1806 of yacc.c  */
    5560 #line 616 "parser.yy"
     4985#line 615 "parser.yy" /* yacc.c:1646  */
    55614986    { (yyval.op) = OperKinds::MinusAssn; }
     4987#line 4988 "Parser/parser.cc" /* yacc.c:1646  */
    55624988    break;
    55634989
    55644990  case 115:
    5565 
    5566 /* Line 1806 of yacc.c  */
    5567 #line 617 "parser.yy"
     4991#line 616 "parser.yy" /* yacc.c:1646  */
    55684992    { (yyval.op) = OperKinds::LSAssn; }
     4993#line 4994 "Parser/parser.cc" /* yacc.c:1646  */
    55694994    break;
    55704995
    55714996  case 116:
    5572 
    5573 /* Line 1806 of yacc.c  */
    5574 #line 618 "parser.yy"
     4997#line 617 "parser.yy" /* yacc.c:1646  */
    55754998    { (yyval.op) = OperKinds::RSAssn; }
     4999#line 5000 "Parser/parser.cc" /* yacc.c:1646  */
    55765000    break;
    55775001
    55785002  case 117:
    5579 
    5580 /* Line 1806 of yacc.c  */
    5581 #line 619 "parser.yy"
     5003#line 618 "parser.yy" /* yacc.c:1646  */
    55825004    { (yyval.op) = OperKinds::AndAssn; }
     5005#line 5006 "Parser/parser.cc" /* yacc.c:1646  */
    55835006    break;
    55845007
    55855008  case 118:
    5586 
    5587 /* Line 1806 of yacc.c  */
    5588 #line 620 "parser.yy"
     5009#line 619 "parser.yy" /* yacc.c:1646  */
    55895010    { (yyval.op) = OperKinds::ERAssn; }
     5011#line 5012 "Parser/parser.cc" /* yacc.c:1646  */
    55905012    break;
    55915013
    55925014  case 119:
    5593 
    5594 /* Line 1806 of yacc.c  */
    5595 #line 621 "parser.yy"
     5015#line 620 "parser.yy" /* yacc.c:1646  */
    55965016    { (yyval.op) = OperKinds::OrAssn; }
     5017#line 5018 "Parser/parser.cc" /* yacc.c:1646  */
    55975018    break;
    55985019
    55995020  case 120:
    5600 
    5601 /* Line 1806 of yacc.c  */
    5602 #line 628 "parser.yy"
     5021#line 627 "parser.yy" /* yacc.c:1646  */
    56035022    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5023#line 5024 "Parser/parser.cc" /* yacc.c:1646  */
    56045024    break;
    56055025
    56065026  case 121:
    5607 
    5608 /* Line 1806 of yacc.c  */
    5609 #line 630 "parser.yy"
    5610     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5027#line 629 "parser.yy" /* yacc.c:1646  */
     5028    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); }
     5029#line 5030 "Parser/parser.cc" /* yacc.c:1646  */
    56115030    break;
    56125031
    56135032  case 122:
    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) ) ) ); }
     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  */
    56185036    break;
    56195037
    56205038  case 123:
    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) ) ) ); }
     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  */
    56255042    break;
    56265043
    56275044  case 125:
    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) ); }
     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  */
    56325048    break;
    56335049
    56345050  case 127:
    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) ) ); }
     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  */
    56395054    break;
    56405055
    56415056  case 128:
    5642 
    5643 /* Line 1806 of yacc.c  */
    5644 #line 651 "parser.yy"
     5057#line 650 "parser.yy" /* yacc.c:1646  */
    56455058    { (yyval.en) = 0; }
     5059#line 5060 "Parser/parser.cc" /* yacc.c:1646  */
    56465060    break;
    56475061
    56485062  case 132:
    5649 
    5650 /* Line 1806 of yacc.c  */
    5651 #line 660 "parser.yy"
    5652     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5063#line 659 "parser.yy" /* yacc.c:1646  */
     5064    { (yyval.sn) = (yyvsp[0].sn); }
     5065#line 5066 "Parser/parser.cc" /* yacc.c:1646  */
    56535066    break;
    56545067
    56555068  case 138:
    5656 
    5657 /* Line 1806 of yacc.c  */
    5658 #line 667 "parser.yy"
     5069#line 666 "parser.yy" /* yacc.c:1646  */
    56595070    {
    56605071                        Token fn;
    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) ) ) ) ) );
     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) ) ) ) ) );
    56635074                }
     5075#line 5076 "Parser/parser.cc" /* yacc.c:1646  */
    56645076    break;
    56655077
    56665078  case 139:
    5667 
    5668 /* Line 1806 of yacc.c  */
    5669 #line 677 "parser.yy"
    5670     {
    5671                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5079#line 676 "parser.yy" /* yacc.c:1646  */
     5080    {
     5081                        (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
    56725082                }
     5083#line 5084 "Parser/parser.cc" /* yacc.c:1646  */
    56735084    break;
    56745085
    56755086  case 140:
    5676 
    5677 /* Line 1806 of yacc.c  */
    5678 #line 684 "parser.yy"
     5087#line 683 "parser.yy" /* yacc.c:1646  */
    56795088    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5089#line 5090 "Parser/parser.cc" /* yacc.c:1646  */
    56805090    break;
    56815091
    56825092  case 141:
    5683 
    5684 /* Line 1806 of yacc.c  */
    5685 #line 691 "parser.yy"
    5686     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5093#line 690 "parser.yy" /* yacc.c:1646  */
     5094    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
     5095#line 5096 "Parser/parser.cc" /* yacc.c:1646  */
    56875096    break;
    56885097
    56895098  case 143:
    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); } }
     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  */
    56945102    break;
    56955103
    56965104  case 144:
    5697 
    5698 /* Line 1806 of yacc.c  */
    5699 #line 702 "parser.yy"
    5700     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5105#line 701 "parser.yy" /* yacc.c:1646  */
     5106    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5107#line 5108 "Parser/parser.cc" /* yacc.c:1646  */
    57015108    break;
    57025109
    57035110  case 145:
    5704 
    5705 /* Line 1806 of yacc.c  */
    5706 #line 704 "parser.yy"
     5111#line 703 "parser.yy" /* yacc.c:1646  */
    57075112    {   // mark all fields in list
    5708                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5113                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    57095114                                iter->set_extension( true );
    5710                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
     5115                        (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
    57115116                }
     5117#line 5118 "Parser/parser.cc" /* yacc.c:1646  */
    57125118    break;
    57135119
    57145120  case 146:
    5715 
    5716 /* Line 1806 of yacc.c  */
    5717 #line 710 "parser.yy"
    5718     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5121#line 709 "parser.yy" /* yacc.c:1646  */
     5122    { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
     5123#line 5124 "Parser/parser.cc" /* yacc.c:1646  */
    57195124    break;
    57205125
    57215126  case 149:
    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); } }
     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  */
    57265130    break;
    57275131
    57285132  case 150:
    5729 
    5730 /* Line 1806 of yacc.c  */
    5731 #line 722 "parser.yy"
    5732     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5133#line 721 "parser.yy" /* yacc.c:1646  */
     5134    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
     5135#line 5136 "Parser/parser.cc" /* yacc.c:1646  */
    57335136    break;
    57345137
    57355138  case 151:
    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 ) ); }
     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  */
    57405142    break;
    57415143
    57425144  case 152:
    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) ) ); }
     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  */
    57475148    break;
    57485149
    57495150  case 153:
    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) ) ); }
     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  */
    57545154    break;
    57555155
    57565156  case 154:
    5757 
    5758 /* Line 1806 of yacc.c  */
    5759 #line 734 "parser.yy"
    5760     {
    5761                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5157#line 733 "parser.yy" /* yacc.c:1646  */
     5158    {
     5159                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    57625160                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    57635161                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    57655163                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57665164                        // statement.
    5767                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5165                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57685166                }
     5167#line 5168 "Parser/parser.cc" /* yacc.c:1646  */
    57695168    break;
    57705169
    57715170  case 155:
    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) ) ); }
     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  */
    57765174    break;
    57775175
    57785176  case 156:
    5779 
    5780 /* Line 1806 of yacc.c  */
    5781 #line 746 "parser.yy"
    5782     {
    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;
     5177#line 745 "parser.yy" /* yacc.c:1646  */
     5178    {
     5179                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5180                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57855181                }
     5182#line 5183 "Parser/parser.cc" /* yacc.c:1646  */
    57865183    break;
    57875184
    57885185  case 157:
    5789 
    5790 /* Line 1806 of yacc.c  */
    5791 #line 756 "parser.yy"
    5792     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5186#line 755 "parser.yy" /* yacc.c:1646  */
     5187    { (yyval.en) = (yyvsp[0].en); }
     5188#line 5189 "Parser/parser.cc" /* yacc.c:1646  */
    57935189    break;
    57945190
    57955191  case 158:
    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) ) ); }
     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  */
    58005195    break;
    58015196
    58025197  case 160:
    5803 
    5804 /* Line 1806 of yacc.c  */
    5805 #line 763 "parser.yy"
    5806     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5198#line 762 "parser.yy" /* yacc.c:1646  */
     5199    { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
     5200#line 5201 "Parser/parser.cc" /* yacc.c:1646  */
    58075201    break;
    58085202
    58095203  case 161:
    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) ) ) ) ); }
     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  */
    58145207    break;
    58155208
    58165209  case 162:
    5817 
    5818 /* Line 1806 of yacc.c  */
    5819 #line 769 "parser.yy"
    5820     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5210#line 768 "parser.yy" /* yacc.c:1646  */
     5211    { (yyval.sn) = (yyvsp[-1].sn); }
     5212#line 5213 "Parser/parser.cc" /* yacc.c:1646  */
    58215213    break;
    58225214
    58235215  case 163:
    5824 
    5825 /* Line 1806 of yacc.c  */
    5826 #line 770 "parser.yy"
     5216#line 769 "parser.yy" /* yacc.c:1646  */
    58275217    { (yyval.sn) = new StatementNode( build_default() ); }
     5218#line 5219 "Parser/parser.cc" /* yacc.c:1646  */
    58285219    break;
    58295220
    58305221  case 165:
    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) )); }
     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  */
    58355225    break;
    58365226
    58375227  case 166:
    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) ) ) ); }
     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  */
    58425231    break;
    58435232
    58445233  case 167:
    5845 
    5846 /* Line 1806 of yacc.c  */
    5847 #line 785 "parser.yy"
     5234#line 784 "parser.yy" /* yacc.c:1646  */
    58485235    { (yyval.sn) = 0; }
     5236#line 5237 "Parser/parser.cc" /* yacc.c:1646  */
    58495237    break;
    58505238
    58515239  case 169:
    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) ) ) ); }
     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  */
    58565243    break;
    58575244
    58585245  case 170:
    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) ) ) ) ) ); }
     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  */
    58635249    break;
    58645250
    58655251  case 171:
    5866 
    5867 /* Line 1806 of yacc.c  */
    5868 #line 798 "parser.yy"
     5252#line 797 "parser.yy" /* yacc.c:1646  */
    58695253    { (yyval.sn) = 0; }
     5254#line 5255 "Parser/parser.cc" /* yacc.c:1646  */
    58705255    break;
    58715256
    58725257  case 173:
    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) ); }
     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  */
    58775261    break;
    58785262
    58795263  case 174:
    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) ) ) ) ); }
     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  */
    58845267    break;
    58855268
    58865269  case 175:
    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) ))); }
     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  */
    58915273    break;
    58925274
    58935275  case 176:
    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) ) ) ) ) ) ); }
     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  */
    58985279    break;
    58995280
    59005281  case 177:
    5901 
    5902 /* Line 1806 of yacc.c  */
    5903 #line 815 "parser.yy"
     5282#line 814 "parser.yy" /* yacc.c:1646  */
    59045283    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5284#line 5285 "Parser/parser.cc" /* yacc.c:1646  */
    59055285    break;
    59065286
    59075287  case 179:
    5908 
    5909 /* Line 1806 of yacc.c  */
    5910 #line 821 "parser.yy"
     5288#line 820 "parser.yy" /* yacc.c:1646  */
    59115289    { (yyval.sn) = 0; }
     5290#line 5291 "Parser/parser.cc" /* yacc.c:1646  */
    59125291    break;
    59135292
    59145293  case 180:
    5915 
    5916 /* Line 1806 of yacc.c  */
    5917 #line 823 "parser.yy"
     5294#line 822 "parser.yy" /* yacc.c:1646  */
    59185295    { (yyval.sn) = 0; }
     5296#line 5297 "Parser/parser.cc" /* yacc.c:1646  */
    59195297    break;
    59205298
    59215299  case 181:
    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) ) ); }
     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  */
    59265303    break;
    59275304
    59285305  case 182:
    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 ) ); }
     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  */
    59335309    break;
    59345310
    59355311  case 183:
    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) ) ); }
     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  */
    59405315    break;
    59415316
    59425317  case 184:
    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) ); }
     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  */
    59475321    break;
    59485322
    59495323  case 185:
    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) ); }
     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  */
    59545327    break;
    59555328
    59565329  case 186:
    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 ) ); }
     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  */
    59615333    break;
    59625334
    59635335  case 187:
    5964 
    5965 /* Line 1806 of yacc.c  */
    5966 #line 848 "parser.yy"
    5967     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5336#line 847 "parser.yy" /* yacc.c:1646  */
     5337    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
     5338#line 5339 "Parser/parser.cc" /* yacc.c:1646  */
    59685339    break;
    59695340
    59705341  case 188:
    5971 
    5972 /* Line 1806 of yacc.c  */
    5973 #line 851 "parser.yy"
     5342#line 850 "parser.yy" /* yacc.c:1646  */
    59745343    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5344#line 5345 "Parser/parser.cc" /* yacc.c:1646  */
    59755345    break;
    59765346
    59775347  case 189:
    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 ) ); }
     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  */
    59825351    break;
    59835352
    59845353  case 190:
    5985 
    5986 /* Line 1806 of yacc.c  */
    5987 #line 858 "parser.yy"
     5354#line 857 "parser.yy" /* yacc.c:1646  */
    59885355    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5356#line 5357 "Parser/parser.cc" /* yacc.c:1646  */
    59895357    break;
    59905358
    59915359  case 191:
    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 ) ); }
     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  */
    59965363    break;
    59975364
    59985365  case 192:
    5999 
    6000 /* Line 1806 of yacc.c  */
    6001 #line 864 "parser.yy"
    6002     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5366#line 863 "parser.yy" /* yacc.c:1646  */
     5367    { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
     5368#line 5369 "Parser/parser.cc" /* yacc.c:1646  */
    60035369    break;
    60045370
    60055371  case 193:
    6006 
    6007 /* Line 1806 of yacc.c  */
    6008 #line 866 "parser.yy"
    6009     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5372#line 865 "parser.yy" /* yacc.c:1646  */
     5373    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5374#line 5375 "Parser/parser.cc" /* yacc.c:1646  */
    60105375    break;
    60115376
    60125377  case 194:
    6013 
    6014 /* Line 1806 of yacc.c  */
    6015 #line 868 "parser.yy"
    6016     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5378#line 867 "parser.yy" /* yacc.c:1646  */
     5379    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
     5380#line 5381 "Parser/parser.cc" /* yacc.c:1646  */
    60175381    break;
    60185382
    60195383  case 195:
    6020 
    6021 /* Line 1806 of yacc.c  */
    6022 #line 870 "parser.yy"
    6023     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     5384#line 869 "parser.yy" /* yacc.c:1646  */
     5385    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
     5386#line 5387 "Parser/parser.cc" /* yacc.c:1646  */
    60245387    break;
    60255388
    60265389  case 196:
    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 ) ); }
     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  */
    60315393    break;
    60325394
    60335395  case 197:
    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) ) ); }
     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  */
    60385399    break;
    60395400
    60405401  case 198:
    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) ) ); }
     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  */
    60455405    break;
    60465406
    60475407  case 200:
    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 ) ); }
     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  */
    60525411    break;
    60535412
    60545413  case 201:
    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 ) ) ); }
     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  */
    60595417    break;
    60605418
    60615419  case 202:
    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 ) ); }
     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  */
    60665423    break;
    60675424
    60685425  case 203:
    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 ) ) ); }
     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  */
    60735429    break;
    60745430
    60755431  case 204:
    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) ) ); }
     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  */
    60805435    break;
    60815436
    60825437  case 205:
    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) ) ) ); }
     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  */
    60875441    break;
    60885442
    60895443  case 206:
    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) ) ); }
     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  */
    60945447    break;
    60955448
    60965449  case 207:
    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) ) ) ); }
     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  */
    61015453    break;
    61025454
    61035455  case 208:
    6104 
    6105 /* Line 1806 of yacc.c  */
    6106 #line 908 "parser.yy"
    6107     {
    6108                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     5456#line 907 "parser.yy" /* yacc.c:1646  */
     5457    {
     5458                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
    61095459                }
     5460#line 5461 "Parser/parser.cc" /* yacc.c:1646  */
    61105461    break;
    61115462
    61125463  case 210:
    6113 
    6114 /* Line 1806 of yacc.c  */
    6115 #line 921 "parser.yy"
     5464#line 920 "parser.yy" /* yacc.c:1646  */
    61165465    {
    61175466                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6118                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     5467                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    61195468                }
     5469#line 5470 "Parser/parser.cc" /* yacc.c:1646  */
    61205470    break;
    61215471
    61225472  case 211:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 926 "parser.yy"
    6126     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     5473#line 925 "parser.yy" /* yacc.c:1646  */
     5474    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
     5475#line 5476 "Parser/parser.cc" /* yacc.c:1646  */
    61275476    break;
    61285477
    61295478  case 212:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 928 "parser.yy"
     5479#line 927 "parser.yy" /* yacc.c:1646  */
    61335480    {
    61345481                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6135                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
     5482                        (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
    61365483                }
     5484#line 5485 "Parser/parser.cc" /* yacc.c:1646  */
    61375485    break;
    61385486
    61395487  case 214:
    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 ) ); }
     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  */
    61445491    break;
    61455492
    61465493  case 215:
    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) ) ); }
     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  */
    61515497    break;
    61525498
    61535499  case 216:
    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) ) ); }
     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  */
    61585503    break;
    61595504
    61605505  case 217:
    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) ) ); }
     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  */
    61655509    break;
    61665510
    61675511  case 218:
    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) ) ); }
     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  */
    61725515    break;
    61735516
    61745517  case 219:
    6175 
    6176 /* Line 1806 of yacc.c  */
    6177 #line 950 "parser.yy"
     5518#line 949 "parser.yy" /* yacc.c:1646  */
    61785519    { (yyval.flag) = false; }
     5520#line 5521 "Parser/parser.cc" /* yacc.c:1646  */
    61795521    break;
    61805522
    61815523  case 220:
    6182 
    6183 /* Line 1806 of yacc.c  */
    6184 #line 952 "parser.yy"
     5524#line 951 "parser.yy" /* yacc.c:1646  */
    61855525    { (yyval.flag) = true; }
     5526#line 5527 "Parser/parser.cc" /* yacc.c:1646  */
    61865527    break;
    61875528
    61885529  case 221:
    6189 
    6190 /* Line 1806 of yacc.c  */
    6191 #line 957 "parser.yy"
     5530#line 956 "parser.yy" /* yacc.c:1646  */
    61925531    { (yyval.en) = 0; }
     5532#line 5533 "Parser/parser.cc" /* yacc.c:1646  */
    61935533    break;
    61945534
    61955535  case 224:
    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) ); }
     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  */
    62005539    break;
    62015540
    62025541  case 225:
    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) ) ); }
     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  */
    62075545    break;
    62085546
    62095547  case 226:
    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) ) ); }
     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  */
    62145551    break;
    62155552
    62165553  case 227:
    6217 
    6218 /* Line 1806 of yacc.c  */
    6219 #line 976 "parser.yy"
     5554#line 975 "parser.yy" /* yacc.c:1646  */
    62205555    { (yyval.en) = 0; }
     5556#line 5557 "Parser/parser.cc" /* yacc.c:1646  */
    62215557    break;
    62225558
    62235559  case 228:
    6224 
    6225 /* Line 1806 of yacc.c  */
    6226 #line 978 "parser.yy"
    6227     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5560#line 977 "parser.yy" /* yacc.c:1646  */
     5561    { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
     5562#line 5563 "Parser/parser.cc" /* yacc.c:1646  */
    62285563    break;
    62295564
    62305565  case 229:
    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) ) ); }
     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  */
    62355569    break;
    62365570
    62375571  case 230:
    6238 
    6239 /* Line 1806 of yacc.c  */
    6240 #line 985 "parser.yy"
    6241     {
    6242                         (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
    6243                         delete (yyvsp[(1) - (1)].tok);                                                                  // allocated by lexer
     5572#line 984 "parser.yy" /* yacc.c:1646  */
     5573    {
     5574                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) );
     5575                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62445576                }
     5577#line 5578 "Parser/parser.cc" /* yacc.c:1646  */
    62455578    break;
    62465579
    62475580  case 231:
    6248 
    6249 /* Line 1806 of yacc.c  */
    6250 #line 990 "parser.yy"
    6251     {
    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
     5581#line 989 "parser.yy" /* yacc.c:1646  */
     5582    {
     5583                        (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );
     5584                        delete (yyvsp[0].tok);                                                                  // allocated by lexer
    62545585                }
     5586#line 5587 "Parser/parser.cc" /* yacc.c:1646  */
    62555587    break;
    62565588
    62575589  case 232:
    6258 
    6259 /* Line 1806 of yacc.c  */
    6260 #line 1000 "parser.yy"
     5590#line 999 "parser.yy" /* yacc.c:1646  */
    62615591    { (yyval.decl) = 0; }
     5592#line 5593 "Parser/parser.cc" /* yacc.c:1646  */
    62625593    break;
    62635594
    62645595  case 235:
    6265 
    6266 /* Line 1806 of yacc.c  */
    6267 #line 1007 "parser.yy"
    6268     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5596#line 1006 "parser.yy" /* yacc.c:1646  */
     5597    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5598#line 5599 "Parser/parser.cc" /* yacc.c:1646  */
    62695599    break;
    62705600
    62715601  case 236:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 1012 "parser.yy"
     5602#line 1011 "parser.yy" /* yacc.c:1646  */
    62755603    { (yyval.decl) = 0; }
     5604#line 5605 "Parser/parser.cc" /* yacc.c:1646  */
    62765605    break;
    62775606
    62785607  case 239:
    6279 
    6280 /* Line 1806 of yacc.c  */
    6281 #line 1019 "parser.yy"
    6282     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     5608#line 1018 "parser.yy" /* yacc.c:1646  */
     5609    { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
     5610#line 5611 "Parser/parser.cc" /* yacc.c:1646  */
    62835611    break;
    62845612
    62855613  case 244:
    6286 
    6287 /* Line 1806 of yacc.c  */
    6288 #line 1033 "parser.yy"
     5614#line 1032 "parser.yy" /* yacc.c:1646  */
    62895615    {}
     5616#line 5617 "Parser/parser.cc" /* yacc.c:1646  */
    62905617    break;
    62915618
    62925619  case 245:
    6293 
    6294 /* Line 1806 of yacc.c  */
    6295 #line 1034 "parser.yy"
     5620#line 1033 "parser.yy" /* yacc.c:1646  */
    62965621    {}
     5622#line 5623 "Parser/parser.cc" /* yacc.c:1646  */
    62975623    break;
    62985624
    62995625  case 253:
    6300 
    6301 /* Line 1806 of yacc.c  */
    6302 #line 1063 "parser.yy"
     5626#line 1062 "parser.yy" /* yacc.c:1646  */
    63035627    {
    63045628                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6305                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     5629                        (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
    63065630                }
     5631#line 5632 "Parser/parser.cc" /* yacc.c:1646  */
    63075632    break;
    63085633
    63095634  case 254:
    6310 
    6311 /* Line 1806 of yacc.c  */
    6312 #line 1070 "parser.yy"
     5635#line 1069 "parser.yy" /* yacc.c:1646  */
    63135636    {
    63145637                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6315                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     5638                        (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
    63165639                }
     5640#line 5641 "Parser/parser.cc" /* yacc.c:1646  */
    63175641    break;
    63185642
    63195643  case 255:
    6320 
    6321 /* Line 1806 of yacc.c  */
    6322 #line 1075 "parser.yy"
    6323     {
    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) ) );
     5644#line 1074 "parser.yy" /* yacc.c:1646  */
     5645    {
     5646                        typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
     5647                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
    63265648                }
     5649#line 5650 "Parser/parser.cc" /* yacc.c:1646  */
    63275650    break;
    63285651
    63295652  case 256:
    6330 
    6331 /* Line 1806 of yacc.c  */
    6332 #line 1085 "parser.yy"
    6333     {
    6334                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6335                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5653#line 1084 "parser.yy" /* yacc.c:1646  */
     5654    {
     5655                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5656                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63365657                }
     5658#line 5659 "Parser/parser.cc" /* yacc.c:1646  */
    63375659    break;
    63385660
    63395661  case 257:
    6340 
    6341 /* Line 1806 of yacc.c  */
    6342 #line 1090 "parser.yy"
    6343     {
    6344                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6345                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5662#line 1089 "parser.yy" /* yacc.c:1646  */
     5663    {
     5664                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5665                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
    63465666                }
     5667#line 5668 "Parser/parser.cc" /* yacc.c:1646  */
    63475668    break;
    63485669
    63495670  case 258:
    6350 
    6351 /* Line 1806 of yacc.c  */
    6352 #line 1095 "parser.yy"
    6353     {
    6354                         typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
    6355                         (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
     5671#line 1094 "parser.yy" /* yacc.c:1646  */
     5672    {
     5673                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5674                        (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
    63565675                }
     5676#line 5677 "Parser/parser.cc" /* yacc.c:1646  */
    63575677    break;
    63585678
    63595679  case 259:
    6360 
    6361 /* Line 1806 of yacc.c  */
    6362 #line 1103 "parser.yy"
     5680#line 1102 "parser.yy" /* yacc.c:1646  */
    63635681    {
    63645682                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6365                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     5683                        (yyval.decl) = (yyvsp[0].decl);
    63665684                }
     5685#line 5686 "Parser/parser.cc" /* yacc.c:1646  */
    63675686    break;
    63685687
    63695688  case 260:
    6370 
    6371 /* Line 1806 of yacc.c  */
    6372 #line 1108 "parser.yy"
     5689#line 1107 "parser.yy" /* yacc.c:1646  */
    63735690    {
    63745691                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6375                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5692                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63765693                }
     5694#line 5695 "Parser/parser.cc" /* yacc.c:1646  */
    63775695    break;
    63785696
    63795697  case 261:
    6380 
    6381 /* Line 1806 of yacc.c  */
    6382 #line 1113 "parser.yy"
     5698#line 1112 "parser.yy" /* yacc.c:1646  */
    63835699    {
    63845700                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6385                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5701                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63865702                }
     5703#line 5704 "Parser/parser.cc" /* yacc.c:1646  */
    63875704    break;
    63885705
    63895706  case 262:
    6390 
    6391 /* Line 1806 of yacc.c  */
    6392 #line 1118 "parser.yy"
     5707#line 1117 "parser.yy" /* yacc.c:1646  */
    63935708    {
    63945709                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6395                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
     5710                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
    63965711                }
     5712#line 5713 "Parser/parser.cc" /* yacc.c:1646  */
    63975713    break;
    63985714
    63995715  case 263:
    6400 
    6401 /* Line 1806 of yacc.c  */
    6402 #line 1123 "parser.yy"
    6403     {
    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) ) );
     5716#line 1122 "parser.yy" /* yacc.c:1646  */
     5717    {
     5718                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
     5719                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64065720                }
     5721#line 5722 "Parser/parser.cc" /* yacc.c:1646  */
    64075722    break;
    64085723
    64095724  case 264:
    6410 
    6411 /* Line 1806 of yacc.c  */
    6412 #line 1131 "parser.yy"
    6413     {
    6414                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     5725#line 1130 "parser.yy" /* yacc.c:1646  */
     5726    {
     5727                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
    64155728                }
     5729#line 5730 "Parser/parser.cc" /* yacc.c:1646  */
    64165730    break;
    64175731
    64185732  case 265:
    6419 
    6420 /* Line 1806 of yacc.c  */
    6421 #line 1154 "parser.yy"
    6422     {
    6423                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5733#line 1153 "parser.yy" /* yacc.c:1646  */
     5734    {
     5735                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64245736                }
     5737#line 5738 "Parser/parser.cc" /* yacc.c:1646  */
    64255738    break;
    64265739
    64275740  case 266:
    6428 
    6429 /* Line 1806 of yacc.c  */
    6430 #line 1158 "parser.yy"
    6431     {
    6432                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5741#line 1157 "parser.yy" /* yacc.c:1646  */
     5742    {
     5743                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64335744                }
     5745#line 5746 "Parser/parser.cc" /* yacc.c:1646  */
    64345746    break;
    64355747
    64365748  case 267:
    6437 
    6438 /* Line 1806 of yacc.c  */
    6439 #line 1165 "parser.yy"
    6440     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     5749#line 1164 "parser.yy" /* yacc.c:1646  */
     5750    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     5751#line 5752 "Parser/parser.cc" /* yacc.c:1646  */
    64415752    break;
    64425753
    64435754  case 268:
    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) ) ); }
     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  */
    64485758    break;
    64495759
    64505760  case 269:
    6451 
    6452 /* Line 1806 of yacc.c  */
    6453 #line 1174 "parser.yy"
     5761#line 1173 "parser.yy" /* yacc.c:1646  */
    64545762    {
    64555763                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6456                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5764                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64575765                }
     5766#line 5767 "Parser/parser.cc" /* yacc.c:1646  */
    64585767    break;
    64595768
    64605769  case 270:
    6461 
    6462 /* Line 1806 of yacc.c  */
    6463 #line 1179 "parser.yy"
     5770#line 1178 "parser.yy" /* yacc.c:1646  */
    64645771    {
    64655772                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6466                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5773                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64675774                }
     5775#line 5776 "Parser/parser.cc" /* yacc.c:1646  */
    64685776    break;
    64695777
    64705778  case 271:
    6471 
    6472 /* Line 1806 of yacc.c  */
    6473 #line 1184 "parser.yy"
    6474     {
    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) ) );
     5779#line 1183 "parser.yy" /* yacc.c:1646  */
     5780    {
     5781                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     5782                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64775783                }
     5784#line 5785 "Parser/parser.cc" /* yacc.c:1646  */
    64785785    break;
    64795786
    64805787  case 272:
    6481 
    6482 /* Line 1806 of yacc.c  */
    6483 #line 1195 "parser.yy"
     5788#line 1194 "parser.yy" /* yacc.c:1646  */
    64845789    {
    64855790                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6486                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
     5791                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
    64875792                }
     5793#line 5794 "Parser/parser.cc" /* yacc.c:1646  */
    64885794    break;
    64895795
    64905796  case 273:
    6491 
    6492 /* Line 1806 of yacc.c  */
    6493 #line 1200 "parser.yy"
     5797#line 1199 "parser.yy" /* yacc.c:1646  */
    64945798    {
    64955799                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6496                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
     5800                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
    64975801                }
     5802#line 5803 "Parser/parser.cc" /* yacc.c:1646  */
    64985803    break;
    64995804
    65005805  case 274:
    6501 
    6502 /* Line 1806 of yacc.c  */
    6503 #line 1205 "parser.yy"
     5806#line 1204 "parser.yy" /* yacc.c:1646  */
    65045807    {
    65055808                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6506                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
     5809                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
    65075810                }
     5811#line 5812 "Parser/parser.cc" /* yacc.c:1646  */
    65085812    break;
    65095813
    65105814  case 275:
    6511 
    6512 /* Line 1806 of yacc.c  */
    6513 #line 1210 "parser.yy"
     5815#line 1209 "parser.yy" /* yacc.c:1646  */
    65145816    {
    65155817                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6516                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
     5818                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
    65175819                }
     5820#line 5821 "Parser/parser.cc" /* yacc.c:1646  */
    65185821    break;
    65195822
    65205823  case 276:
    6521 
    6522 /* Line 1806 of yacc.c  */
    6523 #line 1215 "parser.yy"
     5824#line 1214 "parser.yy" /* yacc.c:1646  */
    65245825    {
    65255826                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6526                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
     5827                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
    65275828                }
     5829#line 5830 "Parser/parser.cc" /* yacc.c:1646  */
    65285830    break;
    65295831
    65305832  case 277:
    6531 
    6532 /* Line 1806 of yacc.c  */
    6533 #line 1224 "parser.yy"
    6534     {
    6535                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     5833#line 1223 "parser.yy" /* yacc.c:1646  */
     5834    {
     5835                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65365836                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65375837                }
     5838#line 5839 "Parser/parser.cc" /* yacc.c:1646  */
    65385839    break;
    65395840
    65405841  case 278:
    6541 
    6542 /* Line 1806 of yacc.c  */
    6543 #line 1229 "parser.yy"
    6544     {
    6545                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     5842#line 1228 "parser.yy" /* yacc.c:1646  */
     5843    {
     5844                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65465845                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65475846                }
     5847#line 5848 "Parser/parser.cc" /* yacc.c:1646  */
    65485848    break;
    65495849
    65505850  case 283:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1246 "parser.yy"
     5851#line 1245 "parser.yy" /* yacc.c:1646  */
    65545852    {
    65555853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6556                         (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
     5854                        (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
    65575855                }
     5856#line 5857 "Parser/parser.cc" /* yacc.c:1646  */
    65585857    break;
    65595858
    65605859  case 284:
    6561 
    6562 /* Line 1806 of yacc.c  */
    6563 #line 1251 "parser.yy"
     5860#line 1250 "parser.yy" /* yacc.c:1646  */
    65645861    {
    65655862                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6566                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
     5863                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
    65675864                }
     5865#line 5866 "Parser/parser.cc" /* yacc.c:1646  */
    65685866    break;
    65695867
    65705868  case 293:
    6571 
    6572 /* Line 1806 of yacc.c  */
    6573 #line 1273 "parser.yy"
     5869#line 1272 "parser.yy" /* yacc.c:1646  */
    65745870    { (yyval.decl) = 0; }
     5871#line 5872 "Parser/parser.cc" /* yacc.c:1646  */
    65755872    break;
    65765873
    65775874  case 296:
    6578 
    6579 /* Line 1806 of yacc.c  */
    6580 #line 1285 "parser.yy"
    6581     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5875#line 1284 "parser.yy" /* yacc.c:1646  */
     5876    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5877#line 5878 "Parser/parser.cc" /* yacc.c:1646  */
    65825878    break;
    65835879
    65845880  case 299:
    6585 
    6586 /* Line 1806 of yacc.c  */
    6587 #line 1296 "parser.yy"
     5881#line 1295 "parser.yy" /* yacc.c:1646  */
    65885882    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5883#line 5884 "Parser/parser.cc" /* yacc.c:1646  */
    65895884    break;
    65905885
    65915886  case 300:
    6592 
    6593 /* Line 1806 of yacc.c  */
    6594 #line 1298 "parser.yy"
     5887#line 1297 "parser.yy" /* yacc.c:1646  */
    65955888    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5889#line 5890 "Parser/parser.cc" /* yacc.c:1646  */
    65965890    break;
    65975891
    65985892  case 301:
    6599 
    6600 /* Line 1806 of yacc.c  */
    6601 #line 1300 "parser.yy"
     5893#line 1299 "parser.yy" /* yacc.c:1646  */
    66025894    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5895#line 5896 "Parser/parser.cc" /* yacc.c:1646  */
    66035896    break;
    66045897
    66055898  case 302:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1302 "parser.yy"
     5899#line 1301 "parser.yy" /* yacc.c:1646  */
    66095900    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5901#line 5902 "Parser/parser.cc" /* yacc.c:1646  */
    66105902    break;
    66115903
    66125904  case 303:
    6613 
    6614 /* Line 1806 of yacc.c  */
    6615 #line 1304 "parser.yy"
     5905#line 1303 "parser.yy" /* yacc.c:1646  */
    66165906    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     5907#line 5908 "Parser/parser.cc" /* yacc.c:1646  */
    66175908    break;
    66185909
    66195910  case 304:
    6620 
    6621 /* Line 1806 of yacc.c  */
    6622 #line 1306 "parser.yy"
     5911#line 1305 "parser.yy" /* yacc.c:1646  */
    66235912    {
    66245913                        typedefTable.enterScope();
    66255914                }
     5915#line 5916 "Parser/parser.cc" /* yacc.c:1646  */
    66265916    break;
    66275917
    66285918  case 305:
    6629 
    6630 /* Line 1806 of yacc.c  */
    6631 #line 1310 "parser.yy"
     5919#line 1309 "parser.yy" /* yacc.c:1646  */
    66325920    {
    66335921                        typedefTable.leaveScope();
    6634                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
     5922                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
    66355923                }
     5924#line 5925 "Parser/parser.cc" /* yacc.c:1646  */
    66365925    break;
    66375926
    66385927  case 307:
    6639 
    6640 /* Line 1806 of yacc.c  */
    6641 #line 1319 "parser.yy"
    6642     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5928#line 1318 "parser.yy" /* yacc.c:1646  */
     5929    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5930#line 5931 "Parser/parser.cc" /* yacc.c:1646  */
    66435931    break;
    66445932
    66455933  case 308:
    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) ); }
     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  */
    66505937    break;
    66515938
    66525939  case 310:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1332 "parser.yy"
    6656     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5940#line 1331 "parser.yy" /* yacc.c:1646  */
     5941    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     5942#line 5943 "Parser/parser.cc" /* yacc.c:1646  */
    66575943    break;
    66585944
    66595945  case 311:
    6660 
    6661 /* Line 1806 of yacc.c  */
    6662 #line 1337 "parser.yy"
     5946#line 1336 "parser.yy" /* yacc.c:1646  */
    66635947    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5948#line 5949 "Parser/parser.cc" /* yacc.c:1646  */
    66645949    break;
    66655950
    66665951  case 312:
    6667 
    6668 /* Line 1806 of yacc.c  */
    6669 #line 1339 "parser.yy"
     5952#line 1338 "parser.yy" /* yacc.c:1646  */
    66705953    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5954#line 5955 "Parser/parser.cc" /* yacc.c:1646  */
    66715955    break;
    66725956
    66735957  case 313:
    6674 
    6675 /* Line 1806 of yacc.c  */
    6676 #line 1341 "parser.yy"
     5958#line 1340 "parser.yy" /* yacc.c:1646  */
    66775959    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5960#line 5961 "Parser/parser.cc" /* yacc.c:1646  */
    66785961    break;
    66795962
    66805963  case 314:
    6681 
    6682 /* Line 1806 of yacc.c  */
    6683 #line 1343 "parser.yy"
     5964#line 1342 "parser.yy" /* yacc.c:1646  */
    66845965    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5966#line 5967 "Parser/parser.cc" /* yacc.c:1646  */
    66855967    break;
    66865968
    66875969  case 315:
    6688 
    6689 /* Line 1806 of yacc.c  */
    6690 #line 1346 "parser.yy"
     5970#line 1345 "parser.yy" /* yacc.c:1646  */
    66915971    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     5972#line 5973 "Parser/parser.cc" /* yacc.c:1646  */
    66925973    break;
    66935974
    66945975  case 316:
    6695 
    6696 /* Line 1806 of yacc.c  */
    6697 #line 1348 "parser.yy"
     5976#line 1347 "parser.yy" /* yacc.c:1646  */
    66985977    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5978#line 5979 "Parser/parser.cc" /* yacc.c:1646  */
    66995979    break;
    67005980
    67015981  case 317:
    6702 
    6703 /* Line 1806 of yacc.c  */
    6704 #line 1351 "parser.yy"
     5982#line 1350 "parser.yy" /* yacc.c:1646  */
    67055983    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     5984#line 5985 "Parser/parser.cc" /* yacc.c:1646  */
    67065985    break;
    67075986
    67085987  case 318:
    6709 
    6710 /* Line 1806 of yacc.c  */
    6711 #line 1353 "parser.yy"
     5988#line 1352 "parser.yy" /* yacc.c:1646  */
    67125989    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5990#line 5991 "Parser/parser.cc" /* yacc.c:1646  */
    67135991    break;
    67145992
    67155993  case 319:
    6716 
    6717 /* Line 1806 of yacc.c  */
    6718 #line 1358 "parser.yy"
     5994#line 1357 "parser.yy" /* yacc.c:1646  */
    67195995    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     5996#line 5997 "Parser/parser.cc" /* yacc.c:1646  */
    67205997    break;
    67215998
    67225999  case 320:
    6723 
    6724 /* Line 1806 of yacc.c  */
    6725 #line 1360 "parser.yy"
     6000#line 1359 "parser.yy" /* yacc.c:1646  */
    67266001    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6002#line 6003 "Parser/parser.cc" /* yacc.c:1646  */
    67276003    break;
    67286004
    67296005  case 321:
    6730 
    6731 /* Line 1806 of yacc.c  */
    6732 #line 1362 "parser.yy"
     6006#line 1361 "parser.yy" /* yacc.c:1646  */
    67336007    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6008#line 6009 "Parser/parser.cc" /* yacc.c:1646  */
    67346009    break;
    67356010
    67366011  case 322:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1364 "parser.yy"
     6012#line 1363 "parser.yy" /* yacc.c:1646  */
    67406013    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6014#line 6015 "Parser/parser.cc" /* yacc.c:1646  */
    67416015    break;
    67426016
    67436017  case 323:
    6744 
    6745 /* Line 1806 of yacc.c  */
    6746 #line 1366 "parser.yy"
    6747     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6018#line 1365 "parser.yy" /* yacc.c:1646  */
     6019    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6020#line 6021 "Parser/parser.cc" /* yacc.c:1646  */
    67486021    break;
    67496022
    67506023  case 324:
    6751 
    6752 /* Line 1806 of yacc.c  */
    6753 #line 1368 "parser.yy"
    6754     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6024#line 1367 "parser.yy" /* yacc.c:1646  */
     6025    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6026#line 6027 "Parser/parser.cc" /* yacc.c:1646  */
    67556027    break;
    67566028
    67576029  case 325:
    6758 
    6759 /* Line 1806 of yacc.c  */
    6760 #line 1370 "parser.yy"
    6761     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6030#line 1369 "parser.yy" /* yacc.c:1646  */
     6031    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6032#line 6033 "Parser/parser.cc" /* yacc.c:1646  */
    67626033    break;
    67636034
    67646035  case 326:
    6765 
    6766 /* Line 1806 of yacc.c  */
    6767 #line 1372 "parser.yy"
    6768     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6036#line 1371 "parser.yy" /* yacc.c:1646  */
     6037    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6038#line 6039 "Parser/parser.cc" /* yacc.c:1646  */
    67696039    break;
    67706040
    67716041  case 327:
    6772 
    6773 /* Line 1806 of yacc.c  */
    6774 #line 1374 "parser.yy"
     6042#line 1373 "parser.yy" /* yacc.c:1646  */
    67756043    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6044#line 6045 "Parser/parser.cc" /* yacc.c:1646  */
    67766045    break;
    67776046
    67786047  case 328:
    6779 
    6780 /* Line 1806 of yacc.c  */
    6781 #line 1376 "parser.yy"
     6048#line 1375 "parser.yy" /* yacc.c:1646  */
    67826049    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6050#line 6051 "Parser/parser.cc" /* yacc.c:1646  */
    67836051    break;
    67846052
    67856053  case 329:
    6786 
    6787 /* Line 1806 of yacc.c  */
    6788 #line 1378 "parser.yy"
    6789     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6054#line 1377 "parser.yy" /* yacc.c:1646  */
     6055    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6056#line 6057 "Parser/parser.cc" /* yacc.c:1646  */
    67906057    break;
    67916058
    67926059  case 330:
    6793 
    6794 /* Line 1806 of yacc.c  */
    6795 #line 1380 "parser.yy"
    6796     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6060#line 1379 "parser.yy" /* yacc.c:1646  */
     6061    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6062#line 6063 "Parser/parser.cc" /* yacc.c:1646  */
    67976063    break;
    67986064
    67996065  case 331:
    6800 
    6801 /* Line 1806 of yacc.c  */
    6802 #line 1382 "parser.yy"
     6066#line 1381 "parser.yy" /* yacc.c:1646  */
    68036067    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6068#line 6069 "Parser/parser.cc" /* yacc.c:1646  */
    68046069    break;
    68056070
    68066071  case 333:
    6807 
    6808 /* Line 1806 of yacc.c  */
    6809 #line 1389 "parser.yy"
    6810     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6072#line 1388 "parser.yy" /* yacc.c:1646  */
     6073    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6074#line 6075 "Parser/parser.cc" /* yacc.c:1646  */
    68116075    break;
    68126076
    68136077  case 334:
    6814 
    6815 /* Line 1806 of yacc.c  */
    6816 #line 1391 "parser.yy"
    6817     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6078#line 1390 "parser.yy" /* yacc.c:1646  */
     6079    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6080#line 6081 "Parser/parser.cc" /* yacc.c:1646  */
    68186081    break;
    68196082
    68206083  case 335:
    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) ); }
     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  */
    68256087    break;
    68266088
    68276089  case 336:
    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) ); }
     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  */
    68326093    break;
    68336094
    68346095  case 338:
    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) ); }
     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  */
    68396099    break;
    68406100
    68416101  case 340:
    6842 
    6843 /* Line 1806 of yacc.c  */
    6844 #line 1408 "parser.yy"
    6845     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6102#line 1407 "parser.yy" /* yacc.c:1646  */
     6103    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6104#line 6105 "Parser/parser.cc" /* yacc.c:1646  */
    68466105    break;
    68476106
    68486107  case 341:
    6849 
    6850 /* Line 1806 of yacc.c  */
    6851 #line 1410 "parser.yy"
    6852     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6108#line 1409 "parser.yy" /* yacc.c:1646  */
     6109    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6110#line 6111 "Parser/parser.cc" /* yacc.c:1646  */
    68536111    break;
    68546112
    68556113  case 342:
    6856 
    6857 /* Line 1806 of yacc.c  */
    6858 #line 1412 "parser.yy"
    6859     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6114#line 1411 "parser.yy" /* yacc.c:1646  */
     6115    { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
     6116#line 6117 "Parser/parser.cc" /* yacc.c:1646  */
    68606117    break;
    68616118
    68626119  case 343:
    6863 
    6864 /* Line 1806 of yacc.c  */
    6865 #line 1417 "parser.yy"
    6866     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6120#line 1416 "parser.yy" /* yacc.c:1646  */
     6121    { (yyval.decl) = (yyvsp[-1].decl); }
     6122#line 6123 "Parser/parser.cc" /* yacc.c:1646  */
    68676123    break;
    68686124
    68696125  case 344:
    6870 
    6871 /* Line 1806 of yacc.c  */
    6872 #line 1419 "parser.yy"
    6873     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6126#line 1418 "parser.yy" /* yacc.c:1646  */
     6127    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
     6128#line 6129 "Parser/parser.cc" /* yacc.c:1646  */
    68746129    break;
    68756130
    68766131  case 345:
    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) ); }
     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  */
    68816135    break;
    68826136
    68836137  case 346:
    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) ); }
     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  */
    68886141    break;
    68896142
    68906143  case 348:
    6891 
    6892 /* Line 1806 of yacc.c  */
    6893 #line 1429 "parser.yy"
    6894     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6144#line 1428 "parser.yy" /* yacc.c:1646  */
     6145    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6146#line 6147 "Parser/parser.cc" /* yacc.c:1646  */
    68956147    break;
    68966148
    68976149  case 349:
    6898 
    6899 /* Line 1806 of yacc.c  */
    6900 #line 1431 "parser.yy"
    6901     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6150#line 1430 "parser.yy" /* yacc.c:1646  */
     6151    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6152#line 6153 "Parser/parser.cc" /* yacc.c:1646  */
    69026153    break;
    69036154
    69046155  case 350:
    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) ); }
     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  */
    69096159    break;
    69106160
    69116161  case 352:
    6912 
    6913 /* Line 1806 of yacc.c  */
    6914 #line 1439 "parser.yy"
    6915     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6162#line 1438 "parser.yy" /* yacc.c:1646  */
     6163    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6164#line 6165 "Parser/parser.cc" /* yacc.c:1646  */
    69166165    break;
    69176166
    69186167  case 353:
    6919 
    6920 /* Line 1806 of yacc.c  */
    6921 #line 1441 "parser.yy"
    6922     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6168#line 1440 "parser.yy" /* yacc.c:1646  */
     6169    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     6170#line 6171 "Parser/parser.cc" /* yacc.c:1646  */
    69236171    break;
    69246172
    69256173  case 355:
    6926 
    6927 /* Line 1806 of yacc.c  */
    6928 #line 1447 "parser.yy"
    6929     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6174#line 1446 "parser.yy" /* yacc.c:1646  */
     6175    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     6176#line 6177 "Parser/parser.cc" /* yacc.c:1646  */
    69306177    break;
    69316178
    69326179  case 356:
    6933 
    6934 /* Line 1806 of yacc.c  */
    6935 #line 1449 "parser.yy"
    6936     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    69376183    break;
    69386184
    69396185  case 357:
    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) ); }
     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  */
    69446189    break;
    69456190
    69466191  case 358:
    6947 
    6948 /* Line 1806 of yacc.c  */
    6949 #line 1456 "parser.yy"
    6950     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     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  */
    69516195    break;
    69526196
    69536197  case 359:
    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) ); }
     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  */
    69586201    break;
    69596202
    69606203  case 360:
    6961 
    6962 /* Line 1806 of yacc.c  */
    6963 #line 1460 "parser.yy"
    6964     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    69656207    break;
    69666208
    69676209  case 363:
    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 ); }
     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  */
    69726213    break;
    69736214
    69746215  case 364:
    6975 
    6976 /* Line 1806 of yacc.c  */
    6977 #line 1472 "parser.yy"
    6978     {
    6979                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    6980                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false );
     6216#line 1471 "parser.yy" /* yacc.c:1646  */
     6217    {
     6218                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6219                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false );
    69816220                }
     6221#line 6222 "Parser/parser.cc" /* yacc.c:1646  */
    69826222    break;
    69836223
    69846224  case 365:
    6985 
    6986 /* Line 1806 of yacc.c  */
    6987 #line 1477 "parser.yy"
    6988     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6225#line 1476 "parser.yy" /* yacc.c:1646  */
     6226    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6227#line 6228 "Parser/parser.cc" /* yacc.c:1646  */
    69896228    break;
    69906229
    69916230  case 366:
    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 ); }
     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  */
    69966234    break;
    69976235
    69986236  case 367:
    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 ); }
     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  */
    70036240    break;
    70046241
    70056242  case 368:
    7006 
    7007 /* Line 1806 of yacc.c  */
    7008 #line 1483 "parser.yy"
    7009     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6243#line 1482 "parser.yy" /* yacc.c:1646  */
     6244    { (yyval.decl) = (yyvsp[0].decl); }
     6245#line 6246 "Parser/parser.cc" /* yacc.c:1646  */
    70106246    break;
    70116247
    70126248  case 369:
    7013 
    7014 /* Line 1806 of yacc.c  */
    7015 #line 1488 "parser.yy"
     6249#line 1487 "parser.yy" /* yacc.c:1646  */
    70166250    { (yyval.aggKey) = DeclarationNode::Struct; }
     6251#line 6252 "Parser/parser.cc" /* yacc.c:1646  */
    70176252    break;
    70186253
    70196254  case 370:
    7020 
    7021 /* Line 1806 of yacc.c  */
    7022 #line 1490 "parser.yy"
     6255#line 1489 "parser.yy" /* yacc.c:1646  */
    70236256    { (yyval.aggKey) = DeclarationNode::Union; }
     6257#line 6258 "Parser/parser.cc" /* yacc.c:1646  */
    70246258    break;
    70256259
    70266260  case 371:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1495 "parser.yy"
     6261#line 1494 "parser.yy" /* yacc.c:1646  */
    70306262    { (yyval.decl) = 0; }
     6263#line 6264 "Parser/parser.cc" /* yacc.c:1646  */
    70316264    break;
    70326265
    70336266  case 372:
    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); }
     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  */
    70386270    break;
    70396271
    70406272  case 374:
    7041 
    7042 /* Line 1806 of yacc.c  */
    7043 #line 1503 "parser.yy"
    7044     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     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  */
    70456276    break;
    70466277
    70476278  case 376:
    7048 
    7049 /* Line 1806 of yacc.c  */
    7050 #line 1506 "parser.yy"
     6279#line 1505 "parser.yy" /* yacc.c:1646  */
    70516280    {   // mark all fields in list
    7052                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6281                        for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    70536282                                iter->set_extension( true );
    7054                         (yyval.decl) = (yyvsp[(2) - (3)].decl);
     6283                        (yyval.decl) = (yyvsp[-1].decl);
    70556284                }
     6285#line 6286 "Parser/parser.cc" /* yacc.c:1646  */
    70566286    break;
    70576287
    70586288  case 378:
    7059 
    7060 /* Line 1806 of yacc.c  */
    7061 #line 1516 "parser.yy"
    7062     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     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  */
    70636292    break;
    70646293
    70656294  case 379:
    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) ) ); }
     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  */
    70706298    break;
    70716299
    70726300  case 380:
    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 ) ); }
     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  */
    70776304    break;
    70786305
    70796306  case 381:
    7080 
    7081 /* Line 1806 of yacc.c  */
    7082 #line 1525 "parser.yy"
    7083     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     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  */
    70846310    break;
    70856311
    70866312  case 382:
    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) ) ); }
     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  */
    70916316    break;
    70926317
    70936318  case 383:
    7094 
    7095 /* Line 1806 of yacc.c  */
    7096 #line 1532 "parser.yy"
     6319#line 1531 "parser.yy" /* yacc.c:1646  */
    70976320    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     6321#line 6322 "Parser/parser.cc" /* yacc.c:1646  */
    70986322    break;
    70996323
    71006324  case 384:
    7101 
    7102 /* Line 1806 of yacc.c  */
    7103 #line 1534 "parser.yy"
    7104     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     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  */
    71056328    break;
    71066329
    71076330  case 385:
    7108 
    7109 /* Line 1806 of yacc.c  */
    7110 #line 1537 "parser.yy"
    7111     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     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  */
    71126334    break;
    71136335
    71146336  case 386:
    7115 
    7116 /* Line 1806 of yacc.c  */
    7117 #line 1540 "parser.yy"
    7118     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     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  */
    71196340    break;
    71206341
    71216342  case 388:
    7122 
    7123 /* Line 1806 of yacc.c  */
    7124 #line 1546 "parser.yy"
     6343#line 1545 "parser.yy" /* yacc.c:1646  */
    71256344    { (yyval.en) = 0; }
     6345#line 6346 "Parser/parser.cc" /* yacc.c:1646  */
    71266346    break;
    71276347
    71286348  case 389:
    7129 
    7130 /* Line 1806 of yacc.c  */
    7131 #line 1548 "parser.yy"
    7132     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     6349#line 1547 "parser.yy" /* yacc.c:1646  */
     6350    { (yyval.en) = (yyvsp[0].en); }
     6351#line 6352 "Parser/parser.cc" /* yacc.c:1646  */
    71336352    break;
    71346353
    71356354  case 390:
    7136 
    7137 /* Line 1806 of yacc.c  */
    7138 #line 1553 "parser.yy"
    7139     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6355#line 1552 "parser.yy" /* yacc.c:1646  */
     6356    { (yyval.en) = (yyvsp[0].en); }
     6357#line 6358 "Parser/parser.cc" /* yacc.c:1646  */
    71406358    break;
    71416359
    71426360  case 392:
    7143 
    7144 /* Line 1806 of yacc.c  */
    7145 #line 1562 "parser.yy"
    7146     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     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  */
    71476364    break;
    71486365
    71496366  case 393:
    7150 
    7151 /* Line 1806 of yacc.c  */
    7152 #line 1564 "parser.yy"
    7153     {
    7154                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    7155                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
     6367#line 1563 "parser.yy" /* yacc.c:1646  */
     6368    {
     6369                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6370                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
    71566371                }
     6372#line 6373 "Parser/parser.cc" /* yacc.c:1646  */
    71576373    break;
    71586374
    71596375  case 394:
    7160 
    7161 /* Line 1806 of yacc.c  */
    7162 #line 1569 "parser.yy"
    7163     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6376#line 1568 "parser.yy" /* yacc.c:1646  */
     6377    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6378#line 6379 "Parser/parser.cc" /* yacc.c:1646  */
    71646379    break;
    71656380
    71666381  case 395:
    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) ); }
     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  */
    71716385    break;
    71726386
    71736387  case 396:
    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) ); }
     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  */
    71786391    break;
    71796392
    71806393  case 397:
    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) ) ); }
     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  */
    71856397    break;
    71866398
    71876399  case 398:
    7188 
    7189 /* Line 1806 of yacc.c  */
    7190 #line 1583 "parser.yy"
     6400#line 1582 "parser.yy" /* yacc.c:1646  */
    71916401    { (yyval.en) = 0; }
     6402#line 6403 "Parser/parser.cc" /* yacc.c:1646  */
    71926403    break;
    71936404
    71946405  case 399:
    7195 
    7196 /* Line 1806 of yacc.c  */
    7197 #line 1585 "parser.yy"
    7198     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6406#line 1584 "parser.yy" /* yacc.c:1646  */
     6407    { (yyval.en) = (yyvsp[0].en); }
     6408#line 6409 "Parser/parser.cc" /* yacc.c:1646  */
    71996409    break;
    72006410
    72016411  case 400:
    7202 
    7203 /* Line 1806 of yacc.c  */
    7204 #line 1592 "parser.yy"
     6412#line 1591 "parser.yy" /* yacc.c:1646  */
    72056413    { (yyval.decl) = 0; }
     6414#line 6415 "Parser/parser.cc" /* yacc.c:1646  */
    72066415    break;
    72076416
    72086417  case 404:
    7209 
    7210 /* Line 1806 of yacc.c  */
    7211 #line 1600 "parser.yy"
    7212     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     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  */
    72136421    break;
    72146422
    72156423  case 405:
    7216 
    7217 /* Line 1806 of yacc.c  */
    7218 #line 1602 "parser.yy"
    7219     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6424#line 1601 "parser.yy" /* yacc.c:1646  */
     6425    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6426#line 6427 "Parser/parser.cc" /* yacc.c:1646  */
    72206427    break;
    72216428
    72226429  case 406:
    7223 
    7224 /* Line 1806 of yacc.c  */
    7225 #line 1604 "parser.yy"
    7226     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6430#line 1603 "parser.yy" /* yacc.c:1646  */
     6431    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6432#line 6433 "Parser/parser.cc" /* yacc.c:1646  */
    72276433    break;
    72286434
    72296435  case 408:
    7230 
    7231 /* Line 1806 of yacc.c  */
    7232 #line 1612 "parser.yy"
    7233     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     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  */
    72346439    break;
    72356440
    72366441  case 409:
    7237 
    7238 /* Line 1806 of yacc.c  */
    7239 #line 1614 "parser.yy"
    7240     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     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  */
    72416445    break;
    72426446
    72436447  case 410:
    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) ); }
     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  */
    72486451    break;
    72496452
    72506453  case 412:
    7251 
    7252 /* Line 1806 of yacc.c  */
    7253 #line 1622 "parser.yy"
    7254     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     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  */
    72556457    break;
    72566458
    72576459  case 413:
    7258 
    7259 /* Line 1806 of yacc.c  */
    7260 #line 1627 "parser.yy"
     6460#line 1626 "parser.yy" /* yacc.c:1646  */
    72616461    { (yyval.decl) = 0; }
     6462#line 6463 "Parser/parser.cc" /* yacc.c:1646  */
    72626463    break;
    72636464
    72646465  case 416:
    7265 
    7266 /* Line 1806 of yacc.c  */
    7267 #line 1634 "parser.yy"
    7268     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     6466#line 1633 "parser.yy" /* yacc.c:1646  */
     6467    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
     6468#line 6469 "Parser/parser.cc" /* yacc.c:1646  */
    72696469    break;
    72706470
    72716471  case 419:
    7272 
    7273 /* Line 1806 of yacc.c  */
    7274 #line 1641 "parser.yy"
    7275     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     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  */
    72766475    break;
    72776476
    72786477  case 420:
    7279 
    7280 /* Line 1806 of yacc.c  */
    7281 #line 1643 "parser.yy"
    7282     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     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  */
    72836481    break;
    72846482
    72856483  case 422:
    7286 
    7287 /* Line 1806 of yacc.c  */
    7288 #line 1652 "parser.yy"
    7289     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     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  */
    72906487    break;
    72916488
    72926489  case 423:
    7293 
    7294 /* Line 1806 of yacc.c  */
    7295 #line 1655 "parser.yy"
    7296     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     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  */
    72976493    break;
    72986494
    72996495  case 424:
    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) ); }
     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  */
    73046499    break;
    73056500
    73066501  case 429:
    7307 
    7308 /* Line 1806 of yacc.c  */
    7309 #line 1667 "parser.yy"
    7310     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    73116505    break;
    73126506
    73136507  case 431:
    7314 
    7315 /* Line 1806 of yacc.c  */
    7316 #line 1673 "parser.yy"
     6508#line 1672 "parser.yy" /* yacc.c:1646  */
    73176509    {
    73186510                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7319                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6511                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73206512                }
     6513#line 6514 "Parser/parser.cc" /* yacc.c:1646  */
    73216514    break;
    73226515
    73236516  case 432:
    7324 
    7325 /* Line 1806 of yacc.c  */
    7326 #line 1678 "parser.yy"
     6517#line 1677 "parser.yy" /* yacc.c:1646  */
    73276518    {
    73286519                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    7329                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6520                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    73306521                }
     6522#line 6523 "Parser/parser.cc" /* yacc.c:1646  */
    73316523    break;
    73326524
    73336525  case 434:
    7334 
    7335 /* Line 1806 of yacc.c  */
    7336 #line 1687 "parser.yy"
    7337     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     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  */
    73386529    break;
    73396530
    73406531  case 435:
    7341 
    7342 /* Line 1806 of yacc.c  */
    7343 #line 1696 "parser.yy"
    7344     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     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  */
    73456535    break;
    73466536
    73476537  case 436:
    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) ) ); }
     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  */
    73526541    break;
    73536542
    73546543  case 448:
    7355 
    7356 /* Line 1806 of yacc.c  */
    7357 #line 1723 "parser.yy"
    7358     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     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  */
    73596547    break;
    73606548
    73616549  case 452:
    7362 
    7363 /* Line 1806 of yacc.c  */
    7364 #line 1731 "parser.yy"
    7365     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     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  */
    73666553    break;
    73676554
    73686555  case 453:
    7369 
    7370 /* Line 1806 of yacc.c  */
    7371 #line 1736 "parser.yy"
     6556#line 1735 "parser.yy" /* yacc.c:1646  */
    73726557    { (yyval.in) = 0; }
     6558#line 6559 "Parser/parser.cc" /* yacc.c:1646  */
    73736559    break;
    73746560
    73756561  case 454:
    7376 
    7377 /* Line 1806 of yacc.c  */
    7378 #line 1738 "parser.yy"
    7379     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     6562#line 1737 "parser.yy" /* yacc.c:1646  */
     6563    { (yyval.in) = (yyvsp[0].in); }
     6564#line 6565 "Parser/parser.cc" /* yacc.c:1646  */
    73806565    break;
    73816566
    73826567  case 455:
    7383 
    7384 /* Line 1806 of yacc.c  */
    7385 #line 1740 "parser.yy"
    7386     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     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  */
    73876571    break;
    73886572
    73896573  case 456:
    7390 
    7391 /* Line 1806 of yacc.c  */
    7392 #line 1744 "parser.yy"
    7393     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     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  */
    73946577    break;
    73956578
    73966579  case 457:
    7397 
    7398 /* Line 1806 of yacc.c  */
    7399 #line 1745 "parser.yy"
    7400     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     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  */
    74016583    break;
    74026584
    74036585  case 458:
    7404 
    7405 /* Line 1806 of yacc.c  */
    7406 #line 1750 "parser.yy"
     6586#line 1749 "parser.yy" /* yacc.c:1646  */
    74076587    { (yyval.in) = 0; }
     6588#line 6589 "Parser/parser.cc" /* yacc.c:1646  */
    74086589    break;
    74096590
    74106591  case 460:
    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) ); }
     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  */
    74156595    break;
    74166596
    74176597  case 461:
    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) ) ); }
     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  */
    74226601    break;
    74236602
    74246603  case 462:
    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) ) ) ); }
     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  */
    74296607    break;
    74306608
    74316609  case 464:
    7432 
    7433 /* Line 1806 of yacc.c  */
    7434 #line 1771 "parser.yy"
    7435     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     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  */
    74366613    break;
    74376614
    74386615  case 466:
    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) ) ); }
     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  */
    74436619    break;
    74446620
    74456621  case 467:
    7446 
    7447 /* Line 1806 of yacc.c  */
    7448 #line 1783 "parser.yy"
    7449     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     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  */
    74506625    break;
    74516626
    74526627  case 468:
    7453 
    7454 /* Line 1806 of yacc.c  */
    7455 #line 1786 "parser.yy"
    7456     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6628#line 1785 "parser.yy" /* yacc.c:1646  */
     6629    { (yyval.en) = (yyvsp[-2].en); }
     6630#line 6631 "Parser/parser.cc" /* yacc.c:1646  */
    74576631    break;
    74586632
    74596633  case 469:
    7460 
    7461 /* Line 1806 of yacc.c  */
    7462 #line 1788 "parser.yy"
    7463     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     6634#line 1787 "parser.yy" /* yacc.c:1646  */
     6635    { (yyval.en) = (yyvsp[-2].en); }
     6636#line 6637 "Parser/parser.cc" /* yacc.c:1646  */
    74646637    break;
    74656638
    74666639  case 470:
    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) ) ); }
     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  */
    74716643    break;
    74726644
    74736645  case 471:
    7474 
    7475 /* Line 1806 of yacc.c  */
    7476 #line 1792 "parser.yy"
    7477     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     6646#line 1791 "parser.yy" /* yacc.c:1646  */
     6647    { (yyval.en) = (yyvsp[-2].en); }
     6648#line 6649 "Parser/parser.cc" /* yacc.c:1646  */
    74786649    break;
    74796650
    74806651  case 473:
    7481 
    7482 /* Line 1806 of yacc.c  */
    7483 #line 1816 "parser.yy"
    7484     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    74856655    break;
    74866656
    74876657  case 474:
    7488 
    7489 /* Line 1806 of yacc.c  */
    7490 #line 1818 "parser.yy"
    7491     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    74926661    break;
    74936662
    74946663  case 475:
    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) ); }
     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  */
    74996667    break;
    75006668
    75016669  case 477:
    7502 
    7503 /* Line 1806 of yacc.c  */
    7504 #line 1826 "parser.yy"
    7505     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    75066673    break;
    75076674
    75086675  case 478:
    7509 
    7510 /* Line 1806 of yacc.c  */
    7511 #line 1828 "parser.yy"
    7512     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    75136679    break;
    75146680
    75156681  case 479:
    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) ); }
     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  */
    75206685    break;
    75216686
    75226687  case 481:
    7523 
    7524 /* Line 1806 of yacc.c  */
    7525 #line 1839 "parser.yy"
    7526     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     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  */
    75276691    break;
    75286692
    75296693  case 482:
    7530 
    7531 /* Line 1806 of yacc.c  */
    7532 #line 1844 "parser.yy"
    7533     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     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  */
    75346697    break;
    75356698
    75366699  case 483:
    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) ); }
     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  */
    75416703    break;
    75426704
    75436705  case 485:
    7544 
    7545 /* Line 1806 of yacc.c  */
    7546 #line 1852 "parser.yy"
    7547     { (yyval.tclass) = DeclarationNode::Otype; }
     6706#line 1851 "parser.yy" /* yacc.c:1646  */
     6707    { (yyval.tclass) = DeclarationNode::Type; }
     6708#line 6709 "Parser/parser.cc" /* yacc.c:1646  */
    75486709    break;
    75496710
    75506711  case 486:
    7551 
    7552 /* Line 1806 of yacc.c  */
    7553 #line 1854 "parser.yy"
     6712#line 1853 "parser.yy" /* yacc.c:1646  */
    75546713    { (yyval.tclass) = DeclarationNode::Ftype; }
     6714#line 6715 "Parser/parser.cc" /* yacc.c:1646  */
    75556715    break;
    75566716
    75576717  case 487:
    7558 
    7559 /* Line 1806 of yacc.c  */
    7560 #line 1856 "parser.yy"
     6718#line 1855 "parser.yy" /* yacc.c:1646  */
    75616719    { (yyval.tclass) = DeclarationNode::Dtype; }
     6720#line 6721 "Parser/parser.cc" /* yacc.c:1646  */
    75626721    break;
    75636722
    75646723  case 488:
    7565 
    7566 /* Line 1806 of yacc.c  */
    7567 #line 1861 "parser.yy"
     6724#line 1860 "parser.yy" /* yacc.c:1646  */
    75686725    { (yyval.decl) = 0; }
     6726#line 6727 "Parser/parser.cc" /* yacc.c:1646  */
    75696727    break;
    75706728
    75716729  case 489:
    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); }
     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  */
    75766733    break;
    75776734
    75786735  case 490:
    7579 
    7580 /* Line 1806 of yacc.c  */
    7581 #line 1868 "parser.yy"
    7582     {
    7583                         typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
    7584                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     6736#line 1867 "parser.yy" /* yacc.c:1646  */
     6737    {
     6738                        typedefTable.openTrait( *(yyvsp[-3].tok) );
     6739                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
    75856740                }
     6741#line 6742 "Parser/parser.cc" /* yacc.c:1646  */
    75866742    break;
    75876743
    75886744  case 491:
    7589 
    7590 /* Line 1806 of yacc.c  */
    7591 #line 1873 "parser.yy"
    7592     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     6745#line 1872 "parser.yy" /* yacc.c:1646  */
     6746    { (yyval.decl) = (yyvsp[-1].decl); }
     6747#line 6748 "Parser/parser.cc" /* yacc.c:1646  */
    75936748    break;
    75946749
    75956750  case 492:
    7596 
    7597 /* Line 1806 of yacc.c  */
    7598 #line 1875 "parser.yy"
     6751#line 1874 "parser.yy" /* yacc.c:1646  */
    75996752    { (yyval.decl) = 0; }
     6753#line 6754 "Parser/parser.cc" /* yacc.c:1646  */
    76006754    break;
    76016755
    76026756  case 493:
    7603 
    7604 /* Line 1806 of yacc.c  */
    7605 #line 1880 "parser.yy"
    7606     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     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  */
    76076760    break;
    76086761
    76096762  case 495:
    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) ) ) ) ); }
     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  */
    76146766    break;
    76156767
    76166768  case 496:
    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) )); }
     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  */
    76216772    break;
    76226773
    76236774  case 497:
    7624 
    7625 /* Line 1806 of yacc.c  */
    7626 #line 1890 "parser.yy"
    7627     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6775#line 1889 "parser.yy" /* yacc.c:1646  */
     6776    { (yyval.decl) = (yyvsp[0].decl); }
     6777#line 6778 "Parser/parser.cc" /* yacc.c:1646  */
    76286778    break;
    76296779
    76306780  case 498:
    7631 
    7632 /* Line 1806 of yacc.c  */
    7633 #line 1892 "parser.yy"
    7634     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     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  */
    76356784    break;
    76366785
    76376786  case 499:
    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) ) ); }
     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  */
    76426790    break;
    76436791
    76446792  case 500:
    7645 
    7646 /* Line 1806 of yacc.c  */
    7647 #line 1899 "parser.yy"
    7648     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     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  */
    76496796    break;
    76506797
    76516798  case 501:
    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) ); }
     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  */
    76566802    break;
    76576803
    76586804  case 502:
    7659 
    7660 /* Line 1806 of yacc.c  */
    7661 #line 1906 "parser.yy"
    7662     {
    7663                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
    7664                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
     6805#line 1905 "parser.yy" /* yacc.c:1646  */
     6806    {
     6807                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     6808                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
    76656809                }
     6810#line 6811 "Parser/parser.cc" /* yacc.c:1646  */
    76666811    break;
    76676812
    76686813  case 503:
    7669 
    7670 /* Line 1806 of yacc.c  */
    7671 #line 1911 "parser.yy"
    7672     {
    7673                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
    7674                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
     6814#line 1910 "parser.yy" /* yacc.c:1646  */
     6815    {
     6816                        typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
     6817                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
    76756818                }
     6819#line 6820 "Parser/parser.cc" /* yacc.c:1646  */
    76766820    break;
    76776821
    76786822  case 504:
    7679 
    7680 /* Line 1806 of yacc.c  */
    7681 #line 1919 "parser.yy"
    7682     {
    7683                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7684                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
     6823#line 1918 "parser.yy" /* yacc.c:1646  */
     6824    {
     6825                        typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
     6826                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
    76856827                }
     6828#line 6829 "Parser/parser.cc" /* yacc.c:1646  */
    76866829    break;
    76876830
    76886831  case 505:
    7689 
    7690 /* Line 1806 of yacc.c  */
    7691 #line 1924 "parser.yy"
    7692     {
    7693                         typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     6832#line 1923 "parser.yy" /* yacc.c:1646  */
     6833    {
     6834                        typedefTable.enterTrait( *(yyvsp[-6].tok) );
    76946835                        typedefTable.enterScope();
    76956836                }
     6837#line 6838 "Parser/parser.cc" /* yacc.c:1646  */
    76966838    break;
    76976839
    76986840  case 506:
    7699 
    7700 /* Line 1806 of yacc.c  */
    7701 #line 1929 "parser.yy"
     6841#line 1928 "parser.yy" /* yacc.c:1646  */
    77026842    {
    77036843                        typedefTable.leaveTrait();
    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) );
     6844                        typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
     6845                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
    77066846                }
     6847#line 6848 "Parser/parser.cc" /* yacc.c:1646  */
    77076848    break;
    77086849
    77096850  case 508:
    7710 
    7711 /* Line 1806 of yacc.c  */
    7712 #line 1939 "parser.yy"
    7713     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     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  */
    77146854    break;
    77156855
    77166856  case 511:
    7717 
    7718 /* Line 1806 of yacc.c  */
    7719 #line 1949 "parser.yy"
     6857#line 1948 "parser.yy" /* yacc.c:1646  */
    77206858    {
    77216859                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7722                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6860                        (yyval.decl) = (yyvsp[0].decl);
    77236861                }
     6862#line 6863 "Parser/parser.cc" /* yacc.c:1646  */
    77246863    break;
    77256864
    77266865  case 512:
    7727 
    7728 /* Line 1806 of yacc.c  */
    7729 #line 1954 "parser.yy"
     6866#line 1953 "parser.yy" /* yacc.c:1646  */
    77306867    {
    77316868                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7732                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6869                        (yyval.decl) = (yyvsp[0].decl);
    77336870                }
     6871#line 6872 "Parser/parser.cc" /* yacc.c:1646  */
    77346872    break;
    77356873
    77366874  case 513:
    7737 
    7738 /* Line 1806 of yacc.c  */
    7739 #line 1959 "parser.yy"
    7740     {
    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) ) );
     6875#line 1958 "parser.yy" /* yacc.c:1646  */
     6876    {
     6877                        typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
     6878                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    77436879                }
     6880#line 6881 "Parser/parser.cc" /* yacc.c:1646  */
    77446881    break;
    77456882
    77466883  case 514:
    7747 
    7748 /* Line 1806 of yacc.c  */
    7749 #line 1967 "parser.yy"
     6884#line 1966 "parser.yy" /* yacc.c:1646  */
    77506885    {
    77516886                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7752                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     6887                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    77536888                }
     6889#line 6890 "Parser/parser.cc" /* yacc.c:1646  */
    77546890    break;
    77556891
    77566892  case 515:
    7757 
    7758 /* Line 1806 of yacc.c  */
    7759 #line 1972 "parser.yy"
     6893#line 1971 "parser.yy" /* yacc.c:1646  */
    77606894    {
    77616895                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7762                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
     6896                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
    77636897                }
     6898#line 6899 "Parser/parser.cc" /* yacc.c:1646  */
    77646899    break;
    77656900
    77666901  case 516:
    7767 
    7768 /* Line 1806 of yacc.c  */
    7769 #line 1982 "parser.yy"
     6902#line 1981 "parser.yy" /* yacc.c:1646  */
    77706903    {}
     6904#line 6905 "Parser/parser.cc" /* yacc.c:1646  */
    77716905    break;
    77726906
    77736907  case 517:
    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);    }
     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  */
    77786911    break;
    77796912
    77806913  case 519:
    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); }
     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  */
    77856917    break;
    77866918
    77876919  case 520:
    7788 
    7789 /* Line 1806 of yacc.c  */
    7790 #line 1995 "parser.yy"
     6920#line 1994 "parser.yy" /* yacc.c:1646  */
    77916921    { (yyval.decl) = 0; }
     6922#line 6923 "Parser/parser.cc" /* yacc.c:1646  */
    77926923    break;
    77936924
    77946925  case 524:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 2003 "parser.yy"
     6926#line 2002 "parser.yy" /* yacc.c:1646  */
    77986927    {}
     6928#line 6929 "Parser/parser.cc" /* yacc.c:1646  */
    77996929    break;
    78006930
    78016931  case 525:
    7802 
    7803 /* Line 1806 of yacc.c  */
    7804 #line 2005 "parser.yy"
     6932#line 2004 "parser.yy" /* yacc.c:1646  */
    78056933    {
    78066934                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7807                         linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
     6935                        linkage = LinkageSpec::fromString( *(yyvsp[0].tok) );
    78086936                }
     6937#line 6938 "Parser/parser.cc" /* yacc.c:1646  */
    78096938    break;
    78106939
    78116940  case 526:
    7812 
    7813 /* Line 1806 of yacc.c  */
    7814 #line 2010 "parser.yy"
     6941#line 2009 "parser.yy" /* yacc.c:1646  */
    78156942    {
    78166943                        linkage = linkageStack.top();
    78176944                        linkageStack.pop();
    7818                         (yyval.decl) = (yyvsp[(5) - (6)].decl);
     6945                        (yyval.decl) = (yyvsp[-1].decl);
    78196946                }
     6947#line 6948 "Parser/parser.cc" /* yacc.c:1646  */
    78206948    break;
    78216949
    78226950  case 527:
    7823 
    7824 /* Line 1806 of yacc.c  */
    7825 #line 2016 "parser.yy"
     6951#line 2015 "parser.yy" /* yacc.c:1646  */
    78266952    {   // mark all fields in list
    7827                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6953                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    78286954                                iter->set_extension( true );
    7829                         (yyval.decl) = (yyvsp[(2) - (2)].decl);
     6955                        (yyval.decl) = (yyvsp[0].decl);
    78306956                }
     6957#line 6958 "Parser/parser.cc" /* yacc.c:1646  */
    78316958    break;
    78326959
    78336960  case 529:
    7834 
    7835 /* Line 1806 of yacc.c  */
    7836 #line 2031 "parser.yy"
     6961#line 2030 "parser.yy" /* yacc.c:1646  */
    78376962    {
    78386963                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78396964                        typedefTable.leaveScope();
    7840                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6965                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78416966                }
     6967#line 6968 "Parser/parser.cc" /* yacc.c:1646  */
    78426968    break;
    78436969
    78446970  case 530:
    7845 
    7846 /* Line 1806 of yacc.c  */
    7847 #line 2037 "parser.yy"
     6971#line 2036 "parser.yy" /* yacc.c:1646  */
    78486972    {
    78496973                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78506974                        typedefTable.leaveScope();
    7851                         (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
     6975                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
    78526976                }
     6977#line 6978 "Parser/parser.cc" /* yacc.c:1646  */
    78536978    break;
    78546979
    78556980  case 531:
    7856 
    7857 /* Line 1806 of yacc.c  */
    7858 #line 2046 "parser.yy"
     6981#line 2045 "parser.yy" /* yacc.c:1646  */
    78596982    {
    78606983                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78616984                        typedefTable.leaveScope();
    7862                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6985                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78636986                }
     6987#line 6988 "Parser/parser.cc" /* yacc.c:1646  */
    78646988    break;
    78656989
    78666990  case 532:
    7867 
    7868 /* Line 1806 of yacc.c  */
    7869 #line 2052 "parser.yy"
     6991#line 2051 "parser.yy" /* yacc.c:1646  */
    78706992    {
    78716993                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78726994                        typedefTable.leaveScope();
    7873                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
     6995                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
    78746996                }
     6997#line 6998 "Parser/parser.cc" /* yacc.c:1646  */
    78756998    break;
    78766999
    78777000  case 533:
    7878 
    7879 /* Line 1806 of yacc.c  */
    7880 #line 2058 "parser.yy"
     7001#line 2057 "parser.yy" /* yacc.c:1646  */
    78817002    {
    78827003                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78837004                        typedefTable.leaveScope();
    7884                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7005                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    78857006                }
     7007#line 7008 "Parser/parser.cc" /* yacc.c:1646  */
    78867008    break;
    78877009
    78887010  case 534:
    7889 
    7890 /* Line 1806 of yacc.c  */
    7891 #line 2064 "parser.yy"
     7011#line 2063 "parser.yy" /* yacc.c:1646  */
    78927012    {
    78937013                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78947014                        typedefTable.leaveScope();
    7895                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7015                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    78967016                }
     7017#line 7018 "Parser/parser.cc" /* yacc.c:1646  */
    78977018    break;
    78987019
    78997020  case 535:
    7900 
    7901 /* Line 1806 of yacc.c  */
    7902 #line 2070 "parser.yy"
     7021#line 2069 "parser.yy" /* yacc.c:1646  */
    79037022    {
    79047023                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79057024                        typedefTable.leaveScope();
    7906                         (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
     7025                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
    79077026                }
     7027#line 7028 "Parser/parser.cc" /* yacc.c:1646  */
    79087028    break;
    79097029
    79107030  case 536:
    7911 
    7912 /* Line 1806 of yacc.c  */
    7913 #line 2078 "parser.yy"
     7031#line 2077 "parser.yy" /* yacc.c:1646  */
    79147032    {
    79157033                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79167034                        typedefTable.leaveScope();
    7917                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
     7035                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
    79187036                }
     7037#line 7038 "Parser/parser.cc" /* yacc.c:1646  */
    79197038    break;
    79207039
    79217040  case 537:
    7922 
    7923 /* Line 1806 of yacc.c  */
    7924 #line 2084 "parser.yy"
     7041#line 2083 "parser.yy" /* yacc.c:1646  */
    79257042    {
    79267043                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79277044                        typedefTable.leaveScope();
    7928                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7045                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79297046                }
     7047#line 7048 "Parser/parser.cc" /* yacc.c:1646  */
    79307048    break;
    79317049
    79327050  case 538:
    7933 
    7934 /* Line 1806 of yacc.c  */
    7935 #line 2092 "parser.yy"
     7051#line 2091 "parser.yy" /* yacc.c:1646  */
    79367052    {
    79377053                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79387054                        typedefTable.leaveScope();
    7939                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7055                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79407056                }
     7057#line 7058 "Parser/parser.cc" /* yacc.c:1646  */
    79417058    break;
    79427059
    79437060  case 539:
    7944 
    7945 /* Line 1806 of yacc.c  */
    7946 #line 2098 "parser.yy"
     7061#line 2097 "parser.yy" /* yacc.c:1646  */
    79477062    {
    79487063                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79497064                        typedefTable.leaveScope();
    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) );
     7065                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
    79517066                }
     7067#line 7068 "Parser/parser.cc" /* yacc.c:1646  */
    79527068    break;
    79537069
    79547070  case 543:
    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) ) ); }
     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  */
    79597074    break;
    79607075
    79617076  case 545:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2118 "parser.yy"
    7965     { delete (yyvsp[(3) - (5)].str); }
     7077#line 2117 "parser.yy" /* yacc.c:1646  */
     7078    { delete (yyvsp[-2].str); }
     7079#line 7080 "Parser/parser.cc" /* yacc.c:1646  */
    79667080    break;
    79677081
    79687082  case 546:
    7969 
    7970 /* Line 1806 of yacc.c  */
    7971 #line 2123 "parser.yy"
     7083#line 2122 "parser.yy" /* yacc.c:1646  */
    79727084    { (yyval.decl) = 0; }
     7085#line 7086 "Parser/parser.cc" /* yacc.c:1646  */
    79737086    break;
    79747087
    79757088  case 549:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 2130 "parser.yy"
    7979     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    79807092    break;
    79817093
    79827094  case 550:
    7983 
    7984 /* Line 1806 of yacc.c  */
    7985 #line 2136 "parser.yy"
     7095#line 2135 "parser.yy" /* yacc.c:1646  */
    79867096    { (yyval.decl) = 0; }
     7097#line 7098 "Parser/parser.cc" /* yacc.c:1646  */
    79877098    break;
    79887099
    79897100  case 555:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 2147 "parser.yy"
    7993     { delete (yyvsp[(3) - (4)].en); }
     7101#line 2146 "parser.yy" /* yacc.c:1646  */
     7102    { delete (yyvsp[-1].en); }
     7103#line 7104 "Parser/parser.cc" /* yacc.c:1646  */
    79947104    break;
    79957105
    79967106  case 556:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2151 "parser.yy"
    8000     { delete (yyvsp[(1) - (1)].tok); }
     7107#line 2150 "parser.yy" /* yacc.c:1646  */
     7108    { delete (yyvsp[0].tok); }
     7109#line 7110 "Parser/parser.cc" /* yacc.c:1646  */
    80017110    break;
    80027111
    80037112  case 557:
    8004 
    8005 /* Line 1806 of yacc.c  */
    8006 #line 2152 "parser.yy"
    8007     { delete (yyvsp[(1) - (1)].decl); }
     7113#line 2151 "parser.yy" /* yacc.c:1646  */
     7114    { delete (yyvsp[0].decl); }
     7115#line 7116 "Parser/parser.cc" /* yacc.c:1646  */
    80087116    break;
    80097117
    80107118  case 558:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2153 "parser.yy"
    8014     { delete (yyvsp[(1) - (1)].decl); }
     7119#line 2152 "parser.yy" /* yacc.c:1646  */
     7120    { delete (yyvsp[0].decl); }
     7121#line 7122 "Parser/parser.cc" /* yacc.c:1646  */
    80157122    break;
    80167123
    80177124  case 559:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2154 "parser.yy"
    8021     { delete (yyvsp[(1) - (1)].decl); }
     7125#line 2153 "parser.yy" /* yacc.c:1646  */
     7126    { delete (yyvsp[0].decl); }
     7127#line 7128 "Parser/parser.cc" /* yacc.c:1646  */
    80227128    break;
    80237129
    80247130  case 560:
    8025 
    8026 /* Line 1806 of yacc.c  */
    8027 #line 2189 "parser.yy"
    8028     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    80297134    break;
    80307135
    80317136  case 562:
    8032 
    8033 /* Line 1806 of yacc.c  */
    8034 #line 2192 "parser.yy"
    8035     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    80367140    break;
    80377141
    80387142  case 563:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2194 "parser.yy"
    8042     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    80437146    break;
    80447147
    80457148  case 564:
    8046 
    8047 /* Line 1806 of yacc.c  */
    8048 #line 2199 "parser.yy"
    8049     {
    8050                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8051                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7149#line 2198 "parser.yy" /* yacc.c:1646  */
     7150    {
     7151                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7152                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    80527153                }
     7154#line 7155 "Parser/parser.cc" /* yacc.c:1646  */
    80537155    break;
    80547156
    80557157  case 565:
    8056 
    8057 /* Line 1806 of yacc.c  */
    8058 #line 2204 "parser.yy"
    8059     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7158#line 2203 "parser.yy" /* yacc.c:1646  */
     7159    { (yyval.decl) = (yyvsp[-1].decl); }
     7160#line 7161 "Parser/parser.cc" /* yacc.c:1646  */
    80607161    break;
    80617162
    80627163  case 566:
    8063 
    8064 /* Line 1806 of yacc.c  */
    8065 #line 2209 "parser.yy"
    8066     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    80677167    break;
    80687168
    80697169  case 567:
    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) ) ); }
     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  */
    80747173    break;
    80757174
    80767175  case 568:
    8077 
    8078 /* Line 1806 of yacc.c  */
    8079 #line 2213 "parser.yy"
    8080     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7176#line 2212 "parser.yy" /* yacc.c:1646  */
     7177    { (yyval.decl) = (yyvsp[-1].decl); }
     7178#line 7179 "Parser/parser.cc" /* yacc.c:1646  */
    80817179    break;
    80827180
    80837181  case 569:
    8084 
    8085 /* Line 1806 of yacc.c  */
    8086 #line 2218 "parser.yy"
    8087     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     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  */
    80887185    break;
    80897186
    80907187  case 570:
    8091 
    8092 /* Line 1806 of yacc.c  */
    8093 #line 2220 "parser.yy"
    8094     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    80957191    break;
    80967192
    80977193  case 571:
    8098 
    8099 /* Line 1806 of yacc.c  */
    8100 #line 2222 "parser.yy"
    8101     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    81027197    break;
    81037198
    81047199  case 572:
    8105 
    8106 /* Line 1806 of yacc.c  */
    8107 #line 2224 "parser.yy"
    8108     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7200#line 2223 "parser.yy" /* yacc.c:1646  */
     7201    { (yyval.decl) = (yyvsp[-1].decl); }
     7202#line 7203 "Parser/parser.cc" /* yacc.c:1646  */
    81097203    break;
    81107204
    81117205  case 573:
    8112 
    8113 /* Line 1806 of yacc.c  */
    8114 #line 2229 "parser.yy"
    8115     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    81167209    break;
    81177210
    81187211  case 574:
    8119 
    8120 /* Line 1806 of yacc.c  */
    8121 #line 2231 "parser.yy"
    8122     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7212#line 2230 "parser.yy" /* yacc.c:1646  */
     7213    { (yyval.decl) = (yyvsp[-1].decl); }
     7214#line 7215 "Parser/parser.cc" /* yacc.c:1646  */
    81237215    break;
    81247216
    81257217  case 575:
    8126 
    8127 /* Line 1806 of yacc.c  */
    8128 #line 2240 "parser.yy"
    8129     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    81307221    break;
    81317222
    81327223  case 577:
    8133 
    8134 /* Line 1806 of yacc.c  */
    8135 #line 2243 "parser.yy"
    8136     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    81377227    break;
    81387228
    81397229  case 578:
    8140 
    8141 /* Line 1806 of yacc.c  */
    8142 #line 2248 "parser.yy"
    8143     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     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  */
    81447233    break;
    81457234
    81467235  case 579:
    8147 
    8148 /* Line 1806 of yacc.c  */
    8149 #line 2250 "parser.yy"
    8150     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    81517239    break;
    81527240
    81537241  case 580:
    8154 
    8155 /* Line 1806 of yacc.c  */
    8156 #line 2252 "parser.yy"
    8157     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7242#line 2251 "parser.yy" /* yacc.c:1646  */
     7243    { (yyval.decl) = (yyvsp[-1].decl); }
     7244#line 7245 "Parser/parser.cc" /* yacc.c:1646  */
    81587245    break;
    81597246
    81607247  case 581:
    8161 
    8162 /* Line 1806 of yacc.c  */
    8163 #line 2257 "parser.yy"
    8164     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    81657251    break;
    81667252
    81677253  case 582:
    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) ) ); }
     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  */
    81727257    break;
    81737258
    81747259  case 583:
    8175 
    8176 /* Line 1806 of yacc.c  */
    8177 #line 2261 "parser.yy"
    8178     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7260#line 2260 "parser.yy" /* yacc.c:1646  */
     7261    { (yyval.decl) = (yyvsp[-1].decl); }
     7262#line 7263 "Parser/parser.cc" /* yacc.c:1646  */
    81797263    break;
    81807264
    81817265  case 584:
    8182 
    8183 /* Line 1806 of yacc.c  */
    8184 #line 2266 "parser.yy"
    8185     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    81867269    break;
    81877270
    81887271  case 585:
    8189 
    8190 /* Line 1806 of yacc.c  */
    8191 #line 2268 "parser.yy"
    8192     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    81937275    break;
    81947276
    81957277  case 586:
    8196 
    8197 /* Line 1806 of yacc.c  */
    8198 #line 2270 "parser.yy"
    8199     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7278#line 2269 "parser.yy" /* yacc.c:1646  */
     7279    { (yyval.decl) = (yyvsp[-1].decl); }
     7280#line 7281 "Parser/parser.cc" /* yacc.c:1646  */
    82007281    break;
    82017282
    82027283  case 590:
    8203 
    8204 /* Line 1806 of yacc.c  */
    8205 #line 2285 "parser.yy"
    8206     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     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  */
    82077287    break;
    82087288
    82097289  case 591:
    8210 
    8211 /* Line 1806 of yacc.c  */
    8212 #line 2287 "parser.yy"
    8213     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     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  */
    82147293    break;
    82157294
    82167295  case 592:
    8217 
    8218 /* Line 1806 of yacc.c  */
    8219 #line 2289 "parser.yy"
    8220     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7296#line 2288 "parser.yy" /* yacc.c:1646  */
     7297    { (yyval.decl) = (yyvsp[-1].decl); }
     7298#line 7299 "Parser/parser.cc" /* yacc.c:1646  */
    82217299    break;
    82227300
    82237301  case 593:
    8224 
    8225 /* Line 1806 of yacc.c  */
    8226 #line 2294 "parser.yy"
    8227     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    82287305    break;
    82297306
    82307307  case 594:
    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) ) ); }
     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  */
    82357311    break;
    82367312
    82377313  case 595:
    8238 
    8239 /* Line 1806 of yacc.c  */
    8240 #line 2298 "parser.yy"
    8241     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7314#line 2297 "parser.yy" /* yacc.c:1646  */
     7315    { (yyval.decl) = (yyvsp[-1].decl); }
     7316#line 7317 "Parser/parser.cc" /* yacc.c:1646  */
    82427317    break;
    82437318
    82447319  case 596:
    8245 
    8246 /* Line 1806 of yacc.c  */
    8247 #line 2303 "parser.yy"
    8248     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    82497323    break;
    82507324
    82517325  case 597:
    8252 
    8253 /* Line 1806 of yacc.c  */
    8254 #line 2305 "parser.yy"
    8255     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    82567329    break;
    82577330
    82587331  case 598:
    8259 
    8260 /* Line 1806 of yacc.c  */
    8261 #line 2307 "parser.yy"
    8262     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7332#line 2306 "parser.yy" /* yacc.c:1646  */
     7333    { (yyval.decl) = (yyvsp[-1].decl); }
     7334#line 7335 "Parser/parser.cc" /* yacc.c:1646  */
    82637335    break;
    82647336
    82657337  case 599:
    8266 
    8267 /* Line 1806 of yacc.c  */
    8268 #line 2322 "parser.yy"
    8269     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    82707341    break;
    82717342
    82727343  case 601:
    8273 
    8274 /* Line 1806 of yacc.c  */
    8275 #line 2325 "parser.yy"
    8276     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    82777347    break;
    82787348
    82797349  case 602:
    8280 
    8281 /* Line 1806 of yacc.c  */
    8282 #line 2327 "parser.yy"
    8283     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    82847353    break;
    82857354
    82867355  case 604:
    8287 
    8288 /* Line 1806 of yacc.c  */
    8289 #line 2333 "parser.yy"
    8290     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7356#line 2332 "parser.yy" /* yacc.c:1646  */
     7357    { (yyval.decl) = (yyvsp[-1].decl); }
     7358#line 7359 "Parser/parser.cc" /* yacc.c:1646  */
    82917359    break;
    82927360
    82937361  case 605:
    8294 
    8295 /* Line 1806 of yacc.c  */
    8296 #line 2338 "parser.yy"
    8297     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    82987365    break;
    82997366
    83007367  case 606:
    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) ) ); }
     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  */
    83057371    break;
    83067372
    83077373  case 607:
    8308 
    8309 /* Line 1806 of yacc.c  */
    8310 #line 2342 "parser.yy"
    8311     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7374#line 2341 "parser.yy" /* yacc.c:1646  */
     7375    { (yyval.decl) = (yyvsp[-1].decl); }
     7376#line 7377 "Parser/parser.cc" /* yacc.c:1646  */
    83127377    break;
    83137378
    83147379  case 608:
    8315 
    8316 /* Line 1806 of yacc.c  */
    8317 #line 2347 "parser.yy"
    8318     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     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  */
    83197383    break;
    83207384
    83217385  case 609:
    8322 
    8323 /* Line 1806 of yacc.c  */
    8324 #line 2349 "parser.yy"
    8325     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    83267389    break;
    83277390
    83287391  case 610:
    8329 
    8330 /* Line 1806 of yacc.c  */
    8331 #line 2351 "parser.yy"
    8332     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    83337395    break;
    83347396
    83357397  case 611:
    8336 
    8337 /* Line 1806 of yacc.c  */
    8338 #line 2353 "parser.yy"
    8339     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7398#line 2352 "parser.yy" /* yacc.c:1646  */
     7399    { (yyval.decl) = (yyvsp[-1].decl); }
     7400#line 7401 "Parser/parser.cc" /* yacc.c:1646  */
    83407401    break;
    83417402
    83427403  case 612:
    8343 
    8344 /* Line 1806 of yacc.c  */
    8345 #line 2358 "parser.yy"
    8346     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     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  */
    83477407    break;
    83487408
    83497409  case 613:
    8350 
    8351 /* Line 1806 of yacc.c  */
    8352 #line 2360 "parser.yy"
    8353     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    83547413    break;
    83557414
    83567415  case 614:
    8357 
    8358 /* Line 1806 of yacc.c  */
    8359 #line 2362 "parser.yy"
    8360     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7416#line 2361 "parser.yy" /* yacc.c:1646  */
     7417    { (yyval.decl) = (yyvsp[-1].decl); }
     7418#line 7419 "Parser/parser.cc" /* yacc.c:1646  */
    83617419    break;
    83627420
    83637421  case 615:
    8364 
    8365 /* Line 1806 of yacc.c  */
    8366 #line 2372 "parser.yy"
    8367     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    83687425    break;
    83697426
    83707427  case 617:
    8371 
    8372 /* Line 1806 of yacc.c  */
    8373 #line 2375 "parser.yy"
    8374     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    83757431    break;
    83767432
    83777433  case 618:
    8378 
    8379 /* Line 1806 of yacc.c  */
    8380 #line 2377 "parser.yy"
    8381     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    83827437    break;
    83837438
    83847439  case 619:
    8385 
    8386 /* Line 1806 of yacc.c  */
    8387 #line 2382 "parser.yy"
    8388     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    83897443    break;
    83907444
    83917445  case 620:
    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) ) ); }
     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  */
    83967449    break;
    83977450
    83987451  case 621:
    8399 
    8400 /* Line 1806 of yacc.c  */
    8401 #line 2386 "parser.yy"
    8402     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7452#line 2385 "parser.yy" /* yacc.c:1646  */
     7453    { (yyval.decl) = (yyvsp[-1].decl); }
     7454#line 7455 "Parser/parser.cc" /* yacc.c:1646  */
    84037455    break;
    84047456
    84057457  case 622:
    8406 
    8407 /* Line 1806 of yacc.c  */
    8408 #line 2391 "parser.yy"
    8409     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     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  */
    84107461    break;
    84117462
    84127463  case 623:
    8413 
    8414 /* Line 1806 of yacc.c  */
    8415 #line 2393 "parser.yy"
    8416     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    84177467    break;
    84187468
    84197469  case 624:
    8420 
    8421 /* Line 1806 of yacc.c  */
    8422 #line 2395 "parser.yy"
    8423     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    84247473    break;
    84257474
    84267475  case 625:
    8427 
    8428 /* Line 1806 of yacc.c  */
    8429 #line 2397 "parser.yy"
    8430     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7476#line 2396 "parser.yy" /* yacc.c:1646  */
     7477    { (yyval.decl) = (yyvsp[-1].decl); }
     7478#line 7479 "Parser/parser.cc" /* yacc.c:1646  */
    84317479    break;
    84327480
    84337481  case 626:
    8434 
    8435 /* Line 1806 of yacc.c  */
    8436 #line 2402 "parser.yy"
    8437     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     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  */
    84387485    break;
    84397486
    84407487  case 627:
    8441 
    8442 /* Line 1806 of yacc.c  */
    8443 #line 2404 "parser.yy"
    8444     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    84457491    break;
    84467492
    84477493  case 628:
    8448 
    8449 /* Line 1806 of yacc.c  */
    8450 #line 2406 "parser.yy"
    8451     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7494#line 2405 "parser.yy" /* yacc.c:1646  */
     7495    { (yyval.decl) = (yyvsp[-1].decl); }
     7496#line 7497 "Parser/parser.cc" /* yacc.c:1646  */
    84527497    break;
    84537498
    84547499  case 629:
    8455 
    8456 /* Line 1806 of yacc.c  */
    8457 #line 2437 "parser.yy"
    8458     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    84597503    break;
    84607504
    84617505  case 631:
    8462 
    8463 /* Line 1806 of yacc.c  */
    8464 #line 2440 "parser.yy"
    8465     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    84667509    break;
    84677510
    84687511  case 632:
    8469 
    8470 /* Line 1806 of yacc.c  */
    8471 #line 2442 "parser.yy"
    8472     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    84737515    break;
    84747516
    84757517  case 633:
    8476 
    8477 /* Line 1806 of yacc.c  */
    8478 #line 2447 "parser.yy"
    8479     {
    8480                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8481                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7518#line 2446 "parser.yy" /* yacc.c:1646  */
     7519    {
     7520                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7521                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    84827522                }
     7523#line 7524 "Parser/parser.cc" /* yacc.c:1646  */
    84837524    break;
    84847525
    84857526  case 634:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2452 "parser.yy"
    8489     {
    8490                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8491                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7527#line 2451 "parser.yy" /* yacc.c:1646  */
     7528    {
     7529                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7530                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    84927531                }
     7532#line 7533 "Parser/parser.cc" /* yacc.c:1646  */
    84937533    break;
    84947534
    84957535  case 635:
    8496 
    8497 /* Line 1806 of yacc.c  */
    8498 #line 2460 "parser.yy"
    8499     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    85007539    break;
    85017540
    85027541  case 636:
    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) ) ); }
     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  */
    85077545    break;
    85087546
    85097547  case 637:
    8510 
    8511 /* Line 1806 of yacc.c  */
    8512 #line 2464 "parser.yy"
    8513     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7548#line 2463 "parser.yy" /* yacc.c:1646  */
     7549    { (yyval.decl) = (yyvsp[-1].decl); }
     7550#line 7551 "Parser/parser.cc" /* yacc.c:1646  */
    85147551    break;
    85157552
    85167553  case 638:
    8517 
    8518 /* Line 1806 of yacc.c  */
    8519 #line 2469 "parser.yy"
    8520     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     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  */
    85217557    break;
    85227558
    85237559  case 639:
    8524 
    8525 /* Line 1806 of yacc.c  */
    8526 #line 2471 "parser.yy"
    8527     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    85287563    break;
    85297564
    85307565  case 640:
    8531 
    8532 /* Line 1806 of yacc.c  */
    8533 #line 2476 "parser.yy"
    8534     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     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  */
    85357569    break;
    85367570
    85377571  case 641:
    8538 
    8539 /* Line 1806 of yacc.c  */
    8540 #line 2478 "parser.yy"
    8541     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    85427575    break;
    85437576
    85447577  case 643:
    8545 
    8546 /* Line 1806 of yacc.c  */
    8547 #line 2493 "parser.yy"
    8548     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    85497581    break;
    85507582
    85517583  case 644:
    8552 
    8553 /* Line 1806 of yacc.c  */
    8554 #line 2495 "parser.yy"
    8555     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    85567587    break;
    85577588
    85587589  case 645:
    8559 
    8560 /* Line 1806 of yacc.c  */
    8561 #line 2500 "parser.yy"
     7590#line 2499 "parser.yy" /* yacc.c:1646  */
    85627591    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7592#line 7593 "Parser/parser.cc" /* yacc.c:1646  */
    85637593    break;
    85647594
    85657595  case 646:
    8566 
    8567 /* Line 1806 of yacc.c  */
    8568 #line 2502 "parser.yy"
    8569     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     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  */
    85707599    break;
    85717600
    85727601  case 647:
    8573 
    8574 /* Line 1806 of yacc.c  */
    8575 #line 2504 "parser.yy"
    8576     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    85777605    break;
    85787606
    85797607  case 648:
    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) ) ); }
     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  */
    85847611    break;
    85857612
    85867613  case 649:
    8587 
    8588 /* Line 1806 of yacc.c  */
    8589 #line 2508 "parser.yy"
    8590     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7614#line 2507 "parser.yy" /* yacc.c:1646  */
     7615    { (yyval.decl) = (yyvsp[-1].decl); }
     7616#line 7617 "Parser/parser.cc" /* yacc.c:1646  */
    85917617    break;
    85927618
    85937619  case 651:
    8594 
    8595 /* Line 1806 of yacc.c  */
    8596 #line 2514 "parser.yy"
    8597     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    85987623    break;
    85997624
    86007625  case 652:
    8601 
    8602 /* Line 1806 of yacc.c  */
    8603 #line 2516 "parser.yy"
    8604     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    86057629    break;
    86067630
    86077631  case 653:
    8608 
    8609 /* Line 1806 of yacc.c  */
    8610 #line 2518 "parser.yy"
    8611     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7632#line 2517 "parser.yy" /* yacc.c:1646  */
     7633    { (yyval.decl) = (yyvsp[-1].decl); }
     7634#line 7635 "Parser/parser.cc" /* yacc.c:1646  */
    86127635    break;
    86137636
    86147637  case 654:
    8615 
    8616 /* Line 1806 of yacc.c  */
    8617 #line 2523 "parser.yy"
    8618     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     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  */
    86197641    break;
    86207642
    86217643  case 655:
    8622 
    8623 /* Line 1806 of yacc.c  */
    8624 #line 2525 "parser.yy"
    8625     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    86267647    break;
    86277648
    86287649  case 656:
    8629 
    8630 /* Line 1806 of yacc.c  */
    8631 #line 2527 "parser.yy"
    8632     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7650#line 2526 "parser.yy" /* yacc.c:1646  */
     7651    { (yyval.decl) = (yyvsp[-1].decl); }
     7652#line 7653 "Parser/parser.cc" /* yacc.c:1646  */
    86337653    break;
    86347654
    86357655  case 657:
    8636 
    8637 /* Line 1806 of yacc.c  */
    8638 #line 2533 "parser.yy"
     7656#line 2532 "parser.yy" /* yacc.c:1646  */
    86397657    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7658#line 7659 "Parser/parser.cc" /* yacc.c:1646  */
    86407659    break;
    86417660
    86427661  case 658:
    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) ); }
     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  */
    86477665    break;
    86487666
    86497667  case 660:
    8650 
    8651 /* Line 1806 of yacc.c  */
    8652 #line 2541 "parser.yy"
    8653     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     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  */
    86547671    break;
    86557672
    86567673  case 661:
    8657 
    8658 /* Line 1806 of yacc.c  */
    8659 #line 2543 "parser.yy"
     7674#line 2542 "parser.yy" /* yacc.c:1646  */
    86607675    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     7676#line 7677 "Parser/parser.cc" /* yacc.c:1646  */
    86617677    break;
    86627678
    86637679  case 662:
    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 ) ); }
     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  */
    86687683    break;
    86697684
    86707685  case 663:
    8671 
    8672 /* Line 1806 of yacc.c  */
    8673 #line 2547 "parser.yy"
    8674     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     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  */
    86757689    break;
    86767690
    86777691  case 665:
    8678 
    8679 /* Line 1806 of yacc.c  */
    8680 #line 2562 "parser.yy"
    8681     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    86827695    break;
    86837696
    86847697  case 666:
    8685 
    8686 /* Line 1806 of yacc.c  */
    8687 #line 2564 "parser.yy"
    8688     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    86897701    break;
    86907702
    86917703  case 667:
    8692 
    8693 /* Line 1806 of yacc.c  */
    8694 #line 2569 "parser.yy"
     7704#line 2568 "parser.yy" /* yacc.c:1646  */
    86957705    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7706#line 7707 "Parser/parser.cc" /* yacc.c:1646  */
    86967707    break;
    86977708
    86987709  case 668:
    8699 
    8700 /* Line 1806 of yacc.c  */
    8701 #line 2571 "parser.yy"
    8702     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     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  */
    87037713    break;
    87047714
    87057715  case 669:
    8706 
    8707 /* Line 1806 of yacc.c  */
    8708 #line 2573 "parser.yy"
    8709     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    87107719    break;
    87117720
    87127721  case 670:
    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) ) ); }
     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  */
    87177725    break;
    87187726
    87197727  case 671:
    8720 
    8721 /* Line 1806 of yacc.c  */
    8722 #line 2577 "parser.yy"
    8723     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7728#line 2576 "parser.yy" /* yacc.c:1646  */
     7729    { (yyval.decl) = (yyvsp[-1].decl); }
     7730#line 7731 "Parser/parser.cc" /* yacc.c:1646  */
    87247731    break;
    87257732
    87267733  case 673:
    8727 
    8728 /* Line 1806 of yacc.c  */
    8729 #line 2583 "parser.yy"
    8730     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    87317737    break;
    87327738
    87337739  case 674:
    8734 
    8735 /* Line 1806 of yacc.c  */
    8736 #line 2585 "parser.yy"
    8737     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    87387743    break;
    87397744
    87407745  case 675:
    8741 
    8742 /* Line 1806 of yacc.c  */
    8743 #line 2587 "parser.yy"
    8744     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7746#line 2586 "parser.yy" /* yacc.c:1646  */
     7747    { (yyval.decl) = (yyvsp[-1].decl); }
     7748#line 7749 "Parser/parser.cc" /* yacc.c:1646  */
    87457749    break;
    87467750
    87477751  case 676:
    8748 
    8749 /* Line 1806 of yacc.c  */
    8750 #line 2592 "parser.yy"
    8751     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     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  */
    87527755    break;
    87537756
    87547757  case 677:
    8755 
    8756 /* Line 1806 of yacc.c  */
    8757 #line 2594 "parser.yy"
    8758     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    87597761    break;
    87607762
    87617763  case 678:
    8762 
    8763 /* Line 1806 of yacc.c  */
    8764 #line 2596 "parser.yy"
    8765     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7764#line 2595 "parser.yy" /* yacc.c:1646  */
     7765    { (yyval.decl) = (yyvsp[-1].decl); }
     7766#line 7767 "Parser/parser.cc" /* yacc.c:1646  */
    87667767    break;
    87677768
    87687769  case 680:
    8769 
    8770 /* Line 1806 of yacc.c  */
    8771 #line 2603 "parser.yy"
    8772     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     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  */
    87737773    break;
    87747774
    87757775  case 682:
    8776 
    8777 /* Line 1806 of yacc.c  */
    8778 #line 2614 "parser.yy"
     7776#line 2613 "parser.yy" /* yacc.c:1646  */
    87797777    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7778#line 7779 "Parser/parser.cc" /* yacc.c:1646  */
    87807779    break;
    87817780
    87827781  case 683:
    8783 
    8784 /* Line 1806 of yacc.c  */
    8785 #line 2617 "parser.yy"
    8786     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     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  */
    87877785    break;
    87887786
    87897787  case 684:
    8790 
    8791 /* Line 1806 of yacc.c  */
    8792 #line 2619 "parser.yy"
    8793     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     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  */
    87947791    break;
    87957792
    87967793  case 685:
    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 ); }
     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  */
    88017797    break;
    88027798
    88037799  case 686:
    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 ); }
     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  */
    88087803    break;
    88097804
    88107805  case 687:
    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 ); }
     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  */
    88157809    break;
    88167810
    88177811  case 689:
    8818 
    8819 /* Line 1806 of yacc.c  */
    8820 #line 2640 "parser.yy"
    8821     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    88227815    break;
    88237816
    88247817  case 690:
    8825 
    8826 /* Line 1806 of yacc.c  */
    8827 #line 2642 "parser.yy"
    8828     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    88297821    break;
    88307822
    88317823  case 691:
    8832 
    8833 /* Line 1806 of yacc.c  */
    8834 #line 2647 "parser.yy"
     7824#line 2646 "parser.yy" /* yacc.c:1646  */
    88357825    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7826#line 7827 "Parser/parser.cc" /* yacc.c:1646  */
    88367827    break;
    88377828
    88387829  case 692:
    8839 
    8840 /* Line 1806 of yacc.c  */
    8841 #line 2649 "parser.yy"
    8842     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     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  */
    88437833    break;
    88447834
    88457835  case 693:
    8846 
    8847 /* Line 1806 of yacc.c  */
    8848 #line 2651 "parser.yy"
    8849     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    88507839    break;
    88517840
    88527841  case 694:
    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) ) ); }
     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  */
    88577845    break;
    88587846
    88597847  case 695:
    8860 
    8861 /* Line 1806 of yacc.c  */
    8862 #line 2655 "parser.yy"
    8863     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7848#line 2654 "parser.yy" /* yacc.c:1646  */
     7849    { (yyval.decl) = (yyvsp[-1].decl); }
     7850#line 7851 "Parser/parser.cc" /* yacc.c:1646  */
    88647851    break;
    88657852
    88667853  case 697:
    8867 
    8868 /* Line 1806 of yacc.c  */
    8869 #line 2661 "parser.yy"
    8870     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    88717857    break;
    88727858
    88737859  case 698:
    8874 
    8875 /* Line 1806 of yacc.c  */
    8876 #line 2663 "parser.yy"
    8877     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     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  */
    88787863    break;
    88797864
    88807865  case 699:
    8881 
    8882 /* Line 1806 of yacc.c  */
    8883 #line 2665 "parser.yy"
    8884     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7866#line 2664 "parser.yy" /* yacc.c:1646  */
     7867    { (yyval.decl) = (yyvsp[-1].decl); }
     7868#line 7869 "Parser/parser.cc" /* yacc.c:1646  */
    88857869    break;
    88867870
    88877871  case 700:
    8888 
    8889 /* Line 1806 of yacc.c  */
    8890 #line 2670 "parser.yy"
    8891     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     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  */
    88927875    break;
    88937876
    88947877  case 701:
    8895 
    8896 /* Line 1806 of yacc.c  */
    8897 #line 2672 "parser.yy"
    8898     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7878#line 2671 "parser.yy" /* yacc.c:1646  */
     7879    { (yyval.decl) = (yyvsp[-1].decl); }
     7880#line 7881 "Parser/parser.cc" /* yacc.c:1646  */
    88997881    break;
    89007882
    89017883  case 704:
    8902 
    8903 /* Line 1806 of yacc.c  */
    8904 #line 2682 "parser.yy"
    8905     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    89067887    break;
    89077888
    89087889  case 707:
    8909 
    8910 /* Line 1806 of yacc.c  */
    8911 #line 2692 "parser.yy"
    8912     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    89137893    break;
    89147894
    89157895  case 708:
    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) ) ); }
     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  */
    89207899    break;
    89217900
    89227901  case 709:
    8923 
    8924 /* Line 1806 of yacc.c  */
    8925 #line 2696 "parser.yy"
    8926     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    89277905    break;
    89287906
    89297907  case 710:
    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) ) ); }
     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  */
    89347911    break;
    89357912
    89367913  case 711:
    8937 
    8938 /* Line 1806 of yacc.c  */
    8939 #line 2700 "parser.yy"
    8940     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    89417917    break;
    89427918
    89437919  case 712:
    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) ) ); }
     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  */
    89487923    break;
    89497924
    89507925  case 713:
    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 ) ); }
     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  */
    89557929    break;
    89567930
    89577931  case 714:
    8958 
    8959 /* Line 1806 of yacc.c  */
    8960 #line 2711 "parser.yy"
    8961     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     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  */
    89627935    break;
    89637936
    89647937  case 715:
    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 ) ); }
     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  */
    89697941    break;
    89707942
    89717943  case 716:
    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) ); }
     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  */
    89767947    break;
    89777948
    89787949  case 717:
    8979 
    8980 /* Line 1806 of yacc.c  */
    8981 #line 2717 "parser.yy"
    8982     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     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  */
    89837953    break;
    89847954
    89857955  case 718:
    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 ) ); }
     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  */
    89907959    break;
    89917960
    89927961  case 719:
    8993 
    8994 /* Line 1806 of yacc.c  */
    8995 #line 2721 "parser.yy"
    8996     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     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  */
    89977965    break;
    89987966
    89997967  case 720:
    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 ) ); }
     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  */
    90047971    break;
    90057972
    90067973  case 721:
    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) ); }
     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  */
    90117977    break;
    90127978
    90137979  case 722:
    9014 
    9015 /* Line 1806 of yacc.c  */
    9016 #line 2727 "parser.yy"
    9017     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     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  */
    90187983    break;
    90197984
    90207985  case 723:
    9021 
    9022 /* Line 1806 of yacc.c  */
    9023 #line 2732 "parser.yy"
    9024     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     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  */
    90257989    break;
    90267990
    90277991  case 724:
    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 ); }
     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  */
    90327995    break;
    90337996
    90347997  case 725:
    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 ); }
     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  */
    90398001    break;
    90408002
    90418003  case 726:
    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 ); }
     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  */
    90468007    break;
    90478008
    90488009  case 728:
    9049 
    9050 /* Line 1806 of yacc.c  */
    9051 #line 2768 "parser.yy"
    9052     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    90538013    break;
    90548014
    90558015  case 732:
    9056 
    9057 /* Line 1806 of yacc.c  */
    9058 #line 2779 "parser.yy"
    9059     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    90608019    break;
    90618020
    90628021  case 733:
    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) ) ); }
     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  */
    90678025    break;
    90688026
    90698027  case 734:
    9070 
    9071 /* Line 1806 of yacc.c  */
    9072 #line 2783 "parser.yy"
    9073     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    90748031    break;
    90758032
    90768033  case 735:
    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) ) ); }
     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  */
    90818037    break;
    90828038
    90838039  case 736:
    9084 
    9085 /* Line 1806 of yacc.c  */
    9086 #line 2787 "parser.yy"
    9087     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     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  */
    90888043    break;
    90898044
    90908045  case 737:
    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) ) ); }
     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  */
    90958049    break;
    90968050
    90978051  case 738:
    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 ) ); }
     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  */
    91028055    break;
    91038056
    91048057  case 739:
    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 ) ); }
     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  */
    91098061    break;
    91108062
    91118063  case 740:
    9112 
    9113 /* Line 1806 of yacc.c  */
    9114 #line 2800 "parser.yy"
    9115     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     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  */
    91168067    break;
    91178068
    91188069  case 741:
    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 ) ); }
     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  */
    91238073    break;
    91248074
    91258075  case 742:
    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 ) ); }
     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  */
    91308079    break;
    91318080
    91328081  case 743:
    9133 
    9134 /* Line 1806 of yacc.c  */
    9135 #line 2806 "parser.yy"
    9136     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     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  */
    91378085    break;
    91388086
    91398087  case 744:
    9140 
    9141 /* Line 1806 of yacc.c  */
    9142 #line 2811 "parser.yy"
    9143     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     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  */
    91448091    break;
    91458092
    91468093  case 745:
    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 ); }
     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  */
    91518097    break;
    91528098
    91538099  case 746:
    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 ); }
     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  */
    91588103    break;
    91598104
    91608105  case 747:
    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 ); }
     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  */
    91658109    break;
    91668110
    91678111  case 750:
    9168 
    9169 /* Line 1806 of yacc.c  */
    9170 #line 2844 "parser.yy"
     8112#line 2843 "parser.yy" /* yacc.c:1646  */
    91718113    { (yyval.en) = 0; }
     8114#line 8115 "Parser/parser.cc" /* yacc.c:1646  */
    91728115    break;
    91738116
    91748117  case 751:
    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"
     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  */
    91858125      default: break;
    91868126    }
     
    92048144  *++yyvsp = yyval;
    92058145
    9206   /* Now `shift' the result of the reduction.  Determine what state
     8146  /* Now 'shift' the result of the reduction.  Determine what state
    92078147     that goes to, based on the state we popped back to and the rule
    92088148     number reduced by.  */
     
    92198159
    92208160
    9221 /*------------------------------------.
    9222 | yyerrlab -- here on detecting error |
    9223 `------------------------------------*/
     8161/*--------------------------------------.
     8162| yyerrlab -- here on detecting error. |
     8163`--------------------------------------*/
    92248164yyerrlab:
    92258165  /* Make sure we have latest lookahead translation.  See comments at
     
    92728212    {
    92738213      /* If just tried and failed to reuse lookahead token after an
    9274         error, discard it.  */
     8214        error, discard it.  */
    92758215
    92768216      if (yychar <= YYEOF)
    9277         {
    9278           /* Return failure if at end of input.  */
    9279           if (yychar == YYEOF)
    9280             YYABORT;
    9281         }
     8217        {
     8218          /* Return failure if at end of input.  */
     8219          if (yychar == YYEOF)
     8220            YYABORT;
     8221        }
    92828222      else
    9283         {
    9284           yydestruct ("Error: discarding",
    9285                       yytoken, &yylval);
    9286           yychar = YYEMPTY;
    9287         }
     8223        {
     8224          yydestruct ("Error: discarding",
     8225                      yytoken, &yylval);
     8226          yychar = YYEMPTY;
     8227        }
    92888228    }
    92898229
     
    93048244     goto yyerrorlab;
    93058245
    9306   /* Do not reclaim the symbols of the rule which action triggered
     8246  /* Do not reclaim the symbols of the rule whose action triggered
    93078247     this YYERROR.  */
    93088248  YYPOPSTACK (yylen);
     
    93178257`-------------------------------------------------------------*/
    93188258yyerrlab1:
    9319   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     8259  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    93208260
    93218261  for (;;)
     
    93238263      yyn = yypact[yystate];
    93248264      if (!yypact_value_is_default (yyn))
    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         }
     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        }
    93348274
    93358275      /* Pop the current state because it cannot handle the error token.  */
    93368276      if (yyssp == yyss)
    9337         YYABORT;
     8277        YYABORT;
    93388278
    93398279
    93408280      yydestruct ("Error: popping",
    9341                   yystos[yystate], yyvsp);
     8281                  yystos[yystate], yyvsp);
    93428282      YYPOPSTACK (1);
    93438283      yystate = *yyssp;
     
    93458285    }
    93468286
     8287  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    93478288  *++yyvsp = yylval;
     8289  YY_IGNORE_MAYBE_UNINITIALIZED_END
    93488290
    93498291
     
    93698311  goto yyreturn;
    93708312
    9371 #if !defined(yyoverflow) || YYERROR_VERBOSE
     8313#if !defined yyoverflow || YYERROR_VERBOSE
    93728314/*-------------------------------------------------.
    93738315| yyexhaustedlab -- memory exhaustion comes here.  |
     
    93888330                  yytoken, &yylval);
    93898331    }
    9390   /* Do not reclaim the symbols of the rule which action triggered
     8332  /* Do not reclaim the symbols of the rule whose action triggered
    93918333     this YYABORT or YYACCEPT.  */
    93928334  YYPOPSTACK (yylen);
     
    93958337    {
    93968338      yydestruct ("Cleanup: popping",
    9397                   yystos[*yyssp], yyvsp);
     8339                  yystos[*yyssp], yyvsp);
    93988340      YYPOPSTACK (1);
    93998341    }
     
    94068348    YYSTACK_FREE (yymsg);
    94078349#endif
    9408   /* Make sure YYID is used.  */
    9409   return YYID (yyresult);
     8350  return yyresult;
    94108351}
    9411 
    9412 
    9413 
    9414 /* Line 2067 of yacc.c  */
    9415 #line 2849 "parser.yy"
     8352#line 2848 "parser.yy" /* yacc.c:1906  */
    94168353
    94178354// ----end of grammar----
     
    94208357
    94218358void yyerror( const char * ) {
    9422         cout << "Error ";
     8359        std::cout << "Error ";
    94238360        if ( yyfilename ) {
    9424                 cout << "in file " << yyfilename << " ";
     8361                std::cout << "in file " << yyfilename << " ";
    94258362        } // if
    9426         cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl;
     8363        std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
    94278364}
    94288365
     
    94328369// compile-command: "make install" //
    94338370// End: //
    9434 
Note: See TracChangeset for help on using the changeset viewer.