diff --git a/doc/ReleaseNotes b/doc/ReleaseNotes index 94ebbe4e9e..ad90def34b 100644 --- a/doc/ReleaseNotes +++ b/doc/ReleaseNotes @@ -27,6 +27,7 @@ This issue fixes several bugs that were still found in 1.9.2. * Support uint8 index buffers in DX9 * Fix occasional frame lag when loading a big model asynchronously * Fix race condition reading string config var +* Fix interrogate parsing issue with "const static" ------------------------ RELEASE 1.9.2 ------------------------ diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index 3eb1fb147d..8a02d61218 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.7" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -63,15 +63,12 @@ #define yyparse cppyyparse #define yylex cppyylex #define yyerror cppyyerror -#define yylval cppyylval -#define yychar cppyychar #define yydebug cppyydebug #define yynerrs cppyynerrs -#define yylloc cppyylloc + /* Copy the first part of user declarations. */ -/* Line 371 of yacc.c */ -#line 6 "dtool/src/cppparser/cppBison.yxx" +#line 6 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:339 */ #include "cppBisonDefs.h" @@ -260,14 +257,13 @@ pop_struct() { } -/* Line 371 of yacc.c */ -#line 265 "built/tmp/cppBison.yxx.c" +#line 261 "built/tmp/cppBison.yxx.c" /* yacc.c:339 */ -# ifndef YY_NULL +# ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# define YY_NULLPTR nullptr # else -# define YY_NULL 0 +# define YY_NULLPTR 0 # endif # endif @@ -283,7 +279,7 @@ pop_struct() { by #include "cppBison.yxx.h". */ #ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED # define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED -/* Enabling traces. */ +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -291,117 +287,116 @@ pop_struct() { extern int cppyydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - REAL = 258, - INTEGER = 259, - CHAR_TOK = 260, - STRING = 261, - SIMPLE_IDENTIFIER = 262, - IDENTIFIER = 263, - TYPENAME_IDENTIFIER = 264, - SCOPING = 265, - TYPEDEFNAME = 266, - ELLIPSIS = 267, - OROR = 268, - ANDAND = 269, - EQCOMPARE = 270, - NECOMPARE = 271, - LECOMPARE = 272, - GECOMPARE = 273, - LSHIFT = 274, - RSHIFT = 275, - POINTSAT_STAR = 276, - DOT_STAR = 277, - UNARY = 278, - UNARY_NOT = 279, - UNARY_NEGATE = 280, - UNARY_MINUS = 281, - UNARY_STAR = 282, - UNARY_REF = 283, - POINTSAT = 284, - SCOPE = 285, - PLUSPLUS = 286, - MINUSMINUS = 287, - TIMESEQUAL = 288, - DIVIDEEQUAL = 289, - MODEQUAL = 290, - PLUSEQUAL = 291, - MINUSEQUAL = 292, - OREQUAL = 293, - ANDEQUAL = 294, - XOREQUAL = 295, - LSHIFTEQUAL = 296, - RSHIFTEQUAL = 297, - KW_BEGIN_PUBLISH = 298, - KW_BLOCKING = 299, - KW_BOOL = 300, - KW_CATCH = 301, - KW_CHAR = 302, - KW_CHAR16_T = 303, - KW_CHAR32_T = 304, - KW_CLASS = 305, - KW_CONST = 306, - KW_DELETE = 307, - KW_DOUBLE = 308, - KW_DYNAMIC_CAST = 309, - KW_ELSE = 310, - KW_END_PUBLISH = 311, - KW_ENUM = 312, - KW_EXTENSION = 313, - KW_EXTERN = 314, - KW_EXPLICIT = 315, - KW_PUBLISHED = 316, - KW_FALSE = 317, - KW_FLOAT = 318, - KW_FRIEND = 319, - KW_FOR = 320, - KW_GOTO = 321, - KW_IF = 322, - KW_INLINE = 323, - KW_INT = 324, - KW_LONG = 325, - KW_LONGLONG = 326, - KW_MAKE_PROPERTY = 327, - KW_MAKE_SEQ = 328, - KW_MUTABLE = 329, - KW_NAMESPACE = 330, - KW_NEW = 331, - KW_NOEXCEPT = 332, - KW_OPERATOR = 333, - KW_PRIVATE = 334, - KW_PROTECTED = 335, - KW_PUBLIC = 336, - KW_REGISTER = 337, - KW_RETURN = 338, - KW_SHORT = 339, - KW_SIGNED = 340, - KW_SIZEOF = 341, - KW_STATIC = 342, - KW_STATIC_CAST = 343, - KW_STRUCT = 344, - KW_TEMPLATE = 345, - KW_THROW = 346, - KW_TRUE = 347, - KW_TRY = 348, - KW_TYPEDEF = 349, - KW_TYPENAME = 350, - KW_UNION = 351, - KW_UNSIGNED = 352, - KW_USING = 353, - KW_VIRTUAL = 354, - KW_VOID = 355, - KW_VOLATILE = 356, - KW_WCHAR_T = 357, - KW_WHILE = 358, - START_CPP = 359, - START_CONST_EXPR = 360, - START_TYPE = 361 - }; + enum yytokentype + { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + STRING = 261, + SIMPLE_IDENTIFIER = 262, + IDENTIFIER = 263, + TYPENAME_IDENTIFIER = 264, + SCOPING = 265, + TYPEDEFNAME = 266, + ELLIPSIS = 267, + OROR = 268, + ANDAND = 269, + EQCOMPARE = 270, + NECOMPARE = 271, + LECOMPARE = 272, + GECOMPARE = 273, + LSHIFT = 274, + RSHIFT = 275, + POINTSAT_STAR = 276, + DOT_STAR = 277, + UNARY = 278, + UNARY_NOT = 279, + UNARY_NEGATE = 280, + UNARY_MINUS = 281, + UNARY_STAR = 282, + UNARY_REF = 283, + POINTSAT = 284, + SCOPE = 285, + PLUSPLUS = 286, + MINUSMINUS = 287, + TIMESEQUAL = 288, + DIVIDEEQUAL = 289, + MODEQUAL = 290, + PLUSEQUAL = 291, + MINUSEQUAL = 292, + OREQUAL = 293, + ANDEQUAL = 294, + XOREQUAL = 295, + LSHIFTEQUAL = 296, + RSHIFTEQUAL = 297, + KW_BEGIN_PUBLISH = 298, + KW_BLOCKING = 299, + KW_BOOL = 300, + KW_CATCH = 301, + KW_CHAR = 302, + KW_CHAR16_T = 303, + KW_CHAR32_T = 304, + KW_CLASS = 305, + KW_CONST = 306, + KW_DELETE = 307, + KW_DOUBLE = 308, + KW_DYNAMIC_CAST = 309, + KW_ELSE = 310, + KW_END_PUBLISH = 311, + KW_ENUM = 312, + KW_EXTENSION = 313, + KW_EXTERN = 314, + KW_EXPLICIT = 315, + KW_PUBLISHED = 316, + KW_FALSE = 317, + KW_FLOAT = 318, + KW_FRIEND = 319, + KW_FOR = 320, + KW_GOTO = 321, + KW_IF = 322, + KW_INLINE = 323, + KW_INT = 324, + KW_LONG = 325, + KW_LONGLONG = 326, + KW_MAKE_PROPERTY = 327, + KW_MAKE_SEQ = 328, + KW_MUTABLE = 329, + KW_NAMESPACE = 330, + KW_NEW = 331, + KW_NOEXCEPT = 332, + KW_OPERATOR = 333, + KW_PRIVATE = 334, + KW_PROTECTED = 335, + KW_PUBLIC = 336, + KW_REGISTER = 337, + KW_RETURN = 338, + KW_SHORT = 339, + KW_SIGNED = 340, + KW_SIZEOF = 341, + KW_STATIC = 342, + KW_STATIC_CAST = 343, + KW_STRUCT = 344, + KW_TEMPLATE = 345, + KW_THROW = 346, + KW_TRUE = 347, + KW_TRY = 348, + KW_TYPEDEF = 349, + KW_TYPENAME = 350, + KW_UNION = 351, + KW_UNSIGNED = 352, + KW_USING = 353, + KW_VIRTUAL = 354, + KW_VOID = 355, + KW_VOLATILE = 356, + KW_WCHAR_T = 357, + KW_WHILE = 358, + START_CPP = 359, + START_CONST_EXPR = 360, + START_TYPE = 361 + }; #endif /* Tokens. */ #define REAL 258 @@ -509,48 +504,31 @@ extern int cppyydebug; #define START_CONST_EXPR 360 #define START_TYPE 361 +/* Value type. */ - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int cppyyparse (void *YYPARSE_PARAM); -#else -int cppyyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus + int cppyyparse (void); -#else -int cppyyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ #endif /* !YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 390 of yacc.c */ -#line 554 "built/tmp/cppBison.yxx.c" +#line 532 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ #ifdef short # undef short @@ -564,11 +542,8 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -588,8 +563,7 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -611,6 +585,33 @@ typedef short int yytype_int16; # endif #endif +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -618,23 +619,25 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(N) (N) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + #if ! defined yyoverflow || YYERROR_VERBOSE @@ -653,8 +656,7 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -666,8 +668,8 @@ YYID (yyi) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -683,7 +685,7 @@ YYID (yyi) # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -691,15 +693,13 @@ YYID (yyi) # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -709,8 +709,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ - && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ + && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -736,16 +736,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -764,7 +764,7 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -772,25 +772,27 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 73 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3646 +#define YYLAST 3624 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 131 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 93 +#define YYNNTS 88 /* YYNRULES -- Number of rules. */ -#define YYNRULES 550 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 995 +#define YYNRULES 542 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 977 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 361 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -833,304 +835,64 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 6, 9, 12, 14, 17, 20, 22, - 26, 31, 32, 38, 40, 42, 44, 46, 48, 50, - 53, 55, 57, 60, 63, 66, 69, 77, 87, 97, - 98, 102, 104, 107, 111, 114, 117, 120, 123, 126, - 129, 132, 135, 138, 140, 144, 148, 149, 154, 155, - 161, 164, 169, 172, 177, 178, 183, 184, 190, 194, - 197, 202, 205, 210, 211, 218, 219, 226, 227, 235, - 236, 247, 248, 260, 261, 270, 271, 281, 283, 285, - 287, 290, 295, 301, 303, 305, 307, 309, 311, 313, - 315, 317, 319, 321, 323, 325, 327, 329, 331, 333, - 335, 337, 339, 341, 343, 345, 347, 349, 351, 353, - 355, 357, 359, 361, 363, 365, 367, 369, 371, 374, - 377, 379, 381, 383, 385, 386, 393, 395, 397, 399, - 403, 406, 411, 414, 419, 423, 428, 430, 432, 434, - 436, 439, 442, 445, 448, 451, 455, 460, 464, 468, - 469, 476, 478, 480, 482, 486, 489, 491, 495, 497, - 500, 502, 505, 507, 511, 517, 521, 526, 528, 530, - 533, 535, 539, 543, 549, 553, 557, 562, 564, 566, - 568, 570, 573, 576, 579, 582, 586, 591, 593, 595, - 597, 600, 603, 606, 609, 613, 618, 626, 630, 632, - 635, 638, 641, 644, 648, 653, 661, 663, 665, 668, - 670, 672, 674, 677, 682, 684, 686, 689, 691, 693, - 695, 698, 703, 706, 708, 710, 713, 716, 719, 722, - 726, 727, 733, 734, 742, 744, 746, 749, 753, 756, - 759, 762, 766, 770, 774, 778, 782, 786, 791, 796, - 799, 803, 805, 807, 809, 811, 815, 821, 823, 826, - 831, 833, 835, 837, 839, 840, 847, 852, 855, 859, - 861, 863, 865, 867, 869, 871, 873, 875, 877, 879, - 881, 883, 885, 887, 890, 893, 896, 899, 901, 904, - 906, 910, 913, 915, 916, 919, 921, 924, 926, 928, - 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, - 950, 952, 954, 956, 958, 960, 962, 964, 966, 968, - 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, - 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, - 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, - 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, - 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, - 1070, 1072, 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088, - 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, - 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1128, - 1130, 1132, 1134, 1136, 1138, 1142, 1144, 1146, 1148, 1150, - 1152, 1156, 1158, 1163, 1171, 1179, 1184, 1187, 1190, 1193, - 1196, 1199, 1203, 1207, 1211, 1215, 1219, 1223, 1227, 1231, - 1235, 1239, 1243, 1247, 1251, 1255, 1259, 1263, 1269, 1274, - 1279, 1283, 1287, 1291, 1295, 1297, 1302, 1310, 1318, 1323, - 1328, 1333, 1338, 1343, 1348, 1353, 1358, 1363, 1368, 1373, - 1378, 1383, 1388, 1391, 1397, 1400, 1403, 1406, 1409, 1412, - 1416, 1420, 1424, 1428, 1432, 1436, 1440, 1444, 1448, 1452, - 1456, 1460, 1464, 1468, 1472, 1476, 1480, 1484, 1490, 1495, - 1500, 1504, 1508, 1512, 1516, 1518, 1520, 1522, 1524, 1526, - 1528, 1530, 1532, 1537, 1545, 1553, 1558, 1561, 1567, 1570, - 1573, 1576, 1579, 1583, 1587, 1591, 1595, 1599, 1603, 1607, - 1611, 1615, 1619, 1623, 1627, 1631, 1635, 1639, 1643, 1647, - 1651, 1657, 1662, 1667, 1671, 1675, 1679, 1683, 1685, 1687, - 1689, 1691, 1693, 1695, 1697, 1700, 1703, 1705, 1707, 1709, - 1712 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 132, 0, -1, 104, 133, -1, 105, 216, -1, 106, - 186, -1, 223, -1, 133, 109, -1, 133, 138, -1, - 135, -1, 134, 108, 135, -1, 221, 125, 213, 127, - -1, -1, 141, 107, 137, 133, 128, -1, 142, -1, - 164, -1, 136, -1, 201, -1, 203, -1, 139, -1, - 94, 148, -1, 43, -1, 56, -1, 61, 110, -1, - 81, 110, -1, 80, 110, -1, 79, 110, -1, 72, - 125, 8, 108, 8, 127, 109, -1, 72, 125, 8, - 108, 8, 108, 8, 127, 109, -1, 73, 125, 221, - 108, 221, 108, 221, 127, 109, -1, -1, 64, 140, - 138, -1, 223, -1, 141, 59, -1, 141, 59, 222, - -1, 141, 87, -1, 141, 68, -1, 141, 99, -1, - 141, 60, -1, 141, 101, -1, 141, 74, -1, 141, - 82, -1, 141, 44, -1, 141, 58, -1, 143, -1, - 141, 184, 109, -1, 141, 153, 176, -1, -1, 141, - 184, 144, 146, -1, -1, 141, 51, 183, 145, 147, - -1, 170, 176, -1, 170, 175, 108, 146, -1, 170, - 176, -1, 170, 175, 108, 147, -1, -1, 141, 184, - 149, 151, -1, -1, 141, 51, 183, 150, 152, -1, - 141, 153, 176, -1, 170, 176, -1, 170, 175, 108, - 151, -1, 170, 176, -1, 170, 175, 108, 152, -1, - -1, 8, 125, 154, 172, 127, 161, -1, -1, 9, - 125, 155, 172, 127, 161, -1, -1, 123, 221, 125, - 156, 172, 127, 161, -1, -1, 9, 125, 120, 170, - 127, 125, 157, 172, 127, 161, -1, -1, 9, 125, - 10, 120, 170, 127, 125, 158, 172, 127, 161, -1, - -1, 78, 183, 180, 125, 159, 172, 127, 161, -1, - -1, 78, 51, 183, 180, 125, 160, 172, 127, 161, - -1, 8, -1, 223, -1, 51, -1, 161, 77, -1, - 161, 91, 125, 127, -1, 161, 91, 125, 221, 127, - -1, 129, -1, 123, -1, 120, -1, 121, -1, 122, - -1, 118, -1, 119, -1, 113, -1, 115, -1, 114, - -1, 13, -1, 14, -1, 15, -1, 16, -1, 17, - -1, 18, -1, 116, -1, 117, -1, 19, -1, 20, - -1, 111, -1, 108, -1, 31, -1, 32, -1, 33, - -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, - -1, 39, -1, 40, -1, 41, -1, 42, -1, 29, - -1, 126, 130, -1, 125, 127, -1, 76, -1, 52, - -1, 142, -1, 164, -1, -1, 90, 165, 116, 166, - 117, 163, -1, 223, -1, 167, -1, 168, -1, 167, - 108, 168, -1, 50, 221, -1, 50, 221, 111, 186, - -1, 95, 221, -1, 95, 221, 111, 186, -1, 169, - 181, 174, -1, 51, 169, 181, 174, -1, 204, -1, - 8, -1, 9, -1, 221, -1, 78, 162, -1, 51, - 170, -1, 120, 170, -1, 115, 170, -1, 14, 170, - -1, 10, 120, 170, -1, 170, 126, 212, 130, -1, - 170, 110, 4, -1, 125, 170, 127, -1, -1, 170, - 125, 171, 172, 127, 161, -1, 223, -1, 12, -1, - 173, -1, 173, 108, 12, -1, 173, 12, -1, 179, - -1, 173, 108, 179, -1, 223, -1, 111, 215, -1, - 223, -1, 111, 216, -1, 109, -1, 107, 208, 128, - -1, 110, 134, 107, 208, 128, -1, 111, 216, 109, - -1, 111, 107, 177, 128, -1, 223, -1, 178, -1, - 178, 108, -1, 216, -1, 107, 177, 128, -1, 178, - 108, 216, -1, 178, 108, 107, 177, 128, -1, 183, - 181, 175, -1, 8, 181, 175, -1, 51, 183, 181, - 175, -1, 218, -1, 223, -1, 8, -1, 9, -1, - 51, 180, -1, 120, 180, -1, 115, 180, -1, 14, - 180, -1, 10, 120, 180, -1, 180, 126, 212, 130, - -1, 223, -1, 8, -1, 9, -1, 51, 181, -1, - 120, 181, -1, 115, 181, -1, 14, 181, -1, 10, - 120, 181, -1, 181, 126, 212, 130, -1, 125, 181, - 127, 125, 172, 127, 161, -1, 125, 181, 127, -1, - 223, -1, 51, 182, -1, 120, 182, -1, 115, 182, - -1, 14, 182, -1, 10, 120, 182, -1, 182, 126, - 212, 130, -1, 125, 182, 127, 125, 172, 127, 161, - -1, 204, -1, 9, -1, 95, 221, -1, 187, -1, - 189, -1, 194, -1, 200, 221, -1, 199, 221, 110, - 196, -1, 204, -1, 9, -1, 95, 221, -1, 187, - -1, 189, -1, 194, -1, 200, 221, -1, 199, 221, - 110, 196, -1, 199, 221, -1, 204, -1, 9, -1, - 95, 221, -1, 200, 221, -1, 199, 221, -1, 183, - 182, -1, 51, 183, 182, -1, -1, 200, 107, 188, - 133, 128, -1, -1, 200, 221, 190, 191, 107, 133, - 128, -1, 223, -1, 192, -1, 110, 193, -1, 192, - 108, 193, -1, 81, 220, -1, 80, 220, -1, 79, - 220, -1, 99, 81, 220, -1, 99, 80, 220, -1, - 99, 79, 220, -1, 81, 99, 220, -1, 80, 99, - 220, -1, 79, 99, 220, -1, 195, 107, 198, 128, - -1, 199, 221, 110, 196, -1, 199, 221, -1, 199, - 110, 196, -1, 199, -1, 205, -1, 9, -1, 223, - -1, 197, 221, 108, -1, 197, 221, 111, 216, 108, - -1, 197, -1, 197, 221, -1, 197, 221, 111, 216, - -1, 57, -1, 50, -1, 89, -1, 96, -1, -1, - 75, 221, 107, 202, 133, 128, -1, 75, 107, 133, - 128, -1, 98, 221, -1, 98, 75, 221, -1, 205, - -1, 206, -1, 207, -1, 45, -1, 47, -1, 102, - -1, 48, -1, 49, -1, 84, -1, 70, -1, 71, - -1, 97, -1, 85, -1, 69, -1, 84, 205, -1, - 70, 205, -1, 97, 205, -1, 85, 205, -1, 63, - -1, 70, 63, -1, 53, -1, 70, 70, 63, -1, - 70, 53, -1, 100, -1, -1, 209, 210, -1, 223, - -1, 210, 211, -1, 3, -1, 4, -1, 6, -1, - 5, -1, 8, -1, 9, -1, 10, -1, 7, -1, - 12, -1, 13, -1, 14, -1, 15, -1, 16, -1, - 17, -1, 18, -1, 19, -1, 20, -1, 21, -1, - 22, -1, 29, -1, 30, -1, 31, -1, 32, -1, - 33, -1, 34, -1, 35, -1, 36, -1, 37, -1, - 38, -1, 39, -1, 40, -1, 41, -1, 42, -1, - 45, -1, 46, -1, 47, -1, 48, -1, 49, -1, - 50, -1, 51, -1, 52, -1, 53, -1, 54, -1, - 55, -1, 57, -1, 59, -1, 60, -1, 62, -1, - 63, -1, 64, -1, 65, -1, 66, -1, 67, -1, - 68, -1, 69, -1, 70, -1, 74, -1, 75, -1, - 76, -1, 78, -1, 79, -1, 80, -1, 81, -1, - 61, -1, 82, -1, 83, -1, 84, -1, 85, -1, - 86, -1, 87, -1, 88, -1, 89, -1, 91, -1, - 92, -1, 93, -1, 94, -1, 95, -1, 96, -1, - 97, -1, 98, -1, 99, -1, 100, -1, 101, -1, - 102, -1, 103, -1, 118, -1, 119, -1, 120, -1, - 121, -1, 115, -1, 113, -1, 114, -1, 129, -1, - 123, -1, 111, -1, 122, -1, 116, -1, 117, -1, - 125, -1, 127, -1, 124, -1, 108, -1, 109, -1, - 110, -1, 126, -1, 130, -1, 112, -1, 107, 210, - 128, -1, 223, -1, 216, -1, 223, -1, 214, -1, - 216, -1, 214, 108, 216, -1, 217, -1, 125, 186, - 127, 215, -1, 88, 116, 186, 117, 125, 214, 127, - -1, 54, 116, 186, 117, 125, 214, 127, -1, 86, - 125, 186, 127, -1, 129, 215, -1, 123, 215, -1, - 119, 215, -1, 120, 215, -1, 115, 215, -1, 215, - 120, 215, -1, 215, 121, 215, -1, 215, 122, 215, - -1, 215, 118, 215, -1, 215, 119, 215, -1, 215, - 113, 215, -1, 215, 114, 215, -1, 215, 115, 215, - -1, 215, 13, 215, -1, 215, 14, 215, -1, 215, - 15, 215, -1, 215, 16, 215, -1, 215, 17, 215, - -1, 215, 18, 215, -1, 215, 19, 215, -1, 215, - 20, 215, -1, 215, 112, 215, 110, 215, -1, 215, - 126, 216, 130, -1, 215, 125, 214, 127, -1, 215, - 125, 127, -1, 215, 124, 215, -1, 215, 29, 215, - -1, 125, 214, 127, -1, 217, -1, 125, 186, 127, - 216, -1, 88, 116, 186, 117, 125, 214, 127, -1, - 54, 116, 186, 117, 125, 214, 127, -1, 9, 125, - 213, 127, -1, 69, 125, 213, 127, -1, 47, 125, - 213, 127, -1, 102, 125, 213, 127, -1, 48, 125, - 213, 127, -1, 49, 125, 213, 127, -1, 45, 125, - 213, 127, -1, 84, 125, 213, 127, -1, 70, 125, - 213, 127, -1, 97, 125, 213, 127, -1, 85, 125, - 213, 127, -1, 63, 125, 213, 127, -1, 53, 125, - 213, 127, -1, 86, 125, 186, 127, -1, 76, 185, - -1, 76, 185, 125, 213, 127, -1, 129, 216, -1, - 123, 216, -1, 119, 216, -1, 120, 216, -1, 115, - 216, -1, 216, 120, 216, -1, 216, 121, 216, -1, - 216, 122, 216, -1, 216, 118, 216, -1, 216, 119, - 216, -1, 216, 113, 216, -1, 216, 114, 216, -1, - 216, 115, 216, -1, 216, 13, 216, -1, 216, 14, - 216, -1, 216, 15, 216, -1, 216, 16, 216, -1, - 216, 17, 216, -1, 216, 18, 216, -1, 216, 116, - 216, -1, 216, 117, 216, -1, 216, 19, 216, -1, - 216, 20, 216, -1, 216, 112, 216, 110, 216, -1, - 216, 126, 216, 130, -1, 216, 125, 214, 127, -1, - 216, 125, 127, -1, 216, 124, 216, -1, 216, 29, - 216, -1, 125, 214, 127, -1, 4, -1, 92, -1, - 62, -1, 5, -1, 3, -1, 222, -1, 8, -1, - 219, -1, 125, 186, 127, 216, -1, 88, 116, 186, - 117, 125, 214, 127, -1, 54, 116, 186, 117, 125, - 214, 127, -1, 86, 125, 186, 127, -1, 76, 185, - -1, 76, 185, 125, 213, 127, -1, 129, 216, -1, - 123, 216, -1, 119, 216, -1, 115, 216, -1, 218, - 120, 216, -1, 218, 121, 216, -1, 218, 122, 216, - -1, 218, 118, 216, -1, 218, 119, 216, -1, 218, - 113, 216, -1, 218, 114, 216, -1, 218, 115, 216, - -1, 218, 13, 216, -1, 218, 14, 216, -1, 218, - 15, 216, -1, 218, 16, 216, -1, 218, 17, 216, - -1, 218, 18, 216, -1, 218, 116, 216, -1, 218, - 117, 216, -1, 218, 19, 216, -1, 218, 20, 216, - -1, 218, 112, 216, 110, 216, -1, 218, 126, 216, - 130, -1, 218, 125, 214, 127, -1, 218, 125, 127, - -1, 218, 124, 216, -1, 218, 29, 216, -1, 125, - 214, 127, -1, 4, -1, 92, -1, 62, -1, 5, - -1, 3, -1, 222, -1, 221, -1, 200, 221, -1, - 95, 221, -1, 8, -1, 9, -1, 6, -1, 222, - 6, -1, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 386, 386, 387, 391, 398, 399, 400, 404, 405, 409, 422, 421, 433, 434, 435, 436, 437, 438, 439, 440, 453, 462, 466, 474, 478, 482, 493, 514, 523, - 522, 537, 541, 545, 556, 560, 564, 568, 572, 576, - 580, 584, 588, 595, 599, 608, 620, 619, 635, 634, - 652, 660, 671, 680, 694, 693, 709, 708, 719, 734, - 740, 749, 756, 769, 768, 791, 790, 815, 814, 845, - 844, 860, 859, 877, 876, 908, 907, 933, 946, 950, - 954, 958, 962, 969, 973, 977, 981, 985, 989, 993, - 997, 1001, 1005, 1009, 1013, 1017, 1021, 1025, 1029, 1033, - 1037, 1041, 1045, 1049, 1053, 1057, 1061, 1065, 1069, 1073, - 1077, 1081, 1085, 1089, 1093, 1097, 1101, 1105, 1109, 1113, - 1117, 1121, 1128, 1129, 1134, 1133, 1144, 1145, 1149, 1155, - 1164, 1168, 1172, 1176, 1180, 1186, 1196, 1200, 1205, 1214, - 1218, 1232, 1237, 1242, 1247, 1252, 1257, 1262, 1267, 1273, - 1272, 1294, 1298, 1303, 1307, 1312, 1320, 1325, 1333, 1337, - 1344, 1348, 1355, 1359, 1363, 1367, 1371, 1378, 1379, 1380, - 1384, 1387, 1388, 1389, 1393, 1398, 1406, 1412, 1422, 1426, - 1430, 1434, 1439, 1444, 1449, 1454, 1459, 1467, 1471, 1475, - 1479, 1484, 1489, 1494, 1499, 1504, 1509, 1515, 1523, 1527, - 1532, 1537, 1542, 1547, 1552, 1557, 1566, 1570, 1575, 1579, - 1583, 1587, 1591, 1607, 1626, 1630, 1635, 1639, 1643, 1647, - 1651, 1667, 1683, 1704, 1708, 1713, 1717, 1733, 1752, 1758, - 1769, 1768, 1793, 1792, 1822, 1823, 1827, 1828, 1832, 1836, - 1840, 1844, 1848, 1852, 1856, 1860, 1864, 1871, 1879, 1883, - 1887, 1891, 1898, 1902, 1909, 1910, 1916, 1924, 1925, 1931, - 1940, 1947, 1951, 1955, 1963, 1962, 1984, 1988, 1994, 2003, - 2004, 2005, 2009, 2013, 2017, 2021, 2025, 2029, 2034, 2039, - 2044, 2049, 2054, 2058, 2063, 2072, 2077, 2085, 2089, 2094, - 2098, 2103, 2111, 2121, 2121, 2131, 2132, 2136, 2137, 2138, - 2139, 2140, 2141, 2142, 2143, 2144, 2144, 2144, 2145, 2145, - 2145, 2145, 2146, 2146, 2146, 2146, 2146, 2147, 2147, 2147, - 2148, 2148, 2148, 2148, 2148, 2149, 2149, 2149, 2149, 2149, - 2150, 2150, 2151, 2151, 2151, 2152, 2152, 2153, 2153, 2153, - 2153, 2153, 2154, 2154, 2154, 2155, 2155, 2155, 2155, 2155, - 2155, 2156, 2156, 2156, 2156, 2157, 2157, 2157, 2157, 2158, - 2158, 2158, 2158, 2159, 2159, 2159, 2159, 2160, 2160, 2160, - 2160, 2160, 2161, 2161, 2161, 2161, 2161, 2162, 2162, 2162, - 2162, 2162, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, - 2165, 2165, 2165, 2166, 2166, 2166, 2166, 2166, 2166, 2166, - 2166, 2166, 2166, 2167, 2167, 2171, 2175, 2182, 2186, 2193, - 2197, 2204, 2208, 2212, 2216, 2220, 2224, 2228, 2232, 2244, - 2248, 2252, 2256, 2260, 2264, 2268, 2272, 2276, 2280, 2284, - 2288, 2292, 2296, 2300, 2304, 2308, 2312, 2316, 2320, 2324, - 2328, 2332, 2336, 2340, 2348, 2352, 2356, 2360, 2364, 2371, - 2377, 2383, 2389, 2395, 2401, 2407, 2414, 2421, 2428, 2435, - 2441, 2447, 2451, 2455, 2459, 2463, 2467, 2479, 2483, 2487, - 2491, 2495, 2499, 2503, 2507, 2511, 2515, 2519, 2523, 2527, - 2531, 2535, 2539, 2543, 2547, 2551, 2555, 2559, 2563, 2567, - 2571, 2575, 2579, 2583, 2590, 2594, 2598, 2602, 2606, 2610, - 2614, 2628, 2632, 2636, 2640, 2644, 2648, 2652, 2656, 2660, - 2664, 2676, 2680, 2684, 2688, 2692, 2696, 2700, 2704, 2708, - 2712, 2716, 2720, 2724, 2728, 2732, 2736, 2740, 2744, 2748, - 2752, 2756, 2760, 2764, 2768, 2772, 2776, 2783, 2787, 2791, - 2795, 2799, 2803, 2810, 2818, 2826, 2849, 2853, 2860, 2864, - 2870 + 522, 537, 541, 546, 550, 561, 565, 569, 573, 577, + 581, 585, 589, 593, 601, 600, 615, 624, 638, 649, + 664, 663, 678, 693, 702, 717, 716, 739, 738, 763, + 762, 793, 792, 808, 807, 825, 824, 856, 855, 881, + 894, 898, 902, 906, 910, 917, 921, 925, 929, 933, + 937, 941, 945, 949, 953, 957, 961, 965, 969, 973, + 977, 981, 985, 989, 993, 997, 1001, 1005, 1009, 1013, + 1017, 1021, 1025, 1029, 1033, 1037, 1041, 1045, 1049, 1053, + 1057, 1061, 1065, 1069, 1076, 1077, 1082, 1081, 1092, 1093, + 1097, 1103, 1112, 1116, 1120, 1124, 1128, 1134, 1144, 1148, + 1153, 1162, 1166, 1180, 1185, 1190, 1195, 1200, 1205, 1210, + 1215, 1221, 1220, 1242, 1246, 1251, 1255, 1260, 1268, 1273, + 1281, 1285, 1292, 1296, 1303, 1307, 1311, 1315, 1319, 1326, + 1327, 1328, 1332, 1335, 1336, 1337, 1341, 1346, 1354, 1360, + 1370, 1374, 1378, 1382, 1387, 1392, 1397, 1402, 1407, 1415, + 1419, 1423, 1427, 1432, 1437, 1442, 1447, 1452, 1457, 1463, + 1471, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1514, 1518, + 1523, 1527, 1531, 1535, 1539, 1555, 1574, 1578, 1583, 1587, + 1591, 1595, 1599, 1615, 1631, 1652, 1656, 1661, 1665, 1681, + 1700, 1706, 1717, 1716, 1741, 1740, 1770, 1771, 1775, 1776, + 1780, 1784, 1788, 1792, 1796, 1800, 1804, 1808, 1812, 1819, + 1827, 1831, 1835, 1839, 1846, 1850, 1857, 1858, 1864, 1872, + 1873, 1879, 1888, 1895, 1899, 1903, 1911, 1910, 1932, 1936, + 1942, 1951, 1952, 1953, 1957, 1961, 1965, 1969, 1973, 1977, + 1982, 1987, 1992, 1997, 2002, 2006, 2011, 2020, 2025, 2033, + 2037, 2042, 2046, 2051, 2059, 2069, 2069, 2079, 2080, 2084, + 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2092, 2092, + 2093, 2093, 2093, 2093, 2094, 2094, 2094, 2094, 2094, 2095, + 2095, 2095, 2096, 2096, 2096, 2096, 2096, 2097, 2097, 2097, + 2097, 2097, 2098, 2098, 2099, 2099, 2099, 2100, 2100, 2101, + 2101, 2101, 2101, 2101, 2102, 2102, 2102, 2103, 2103, 2103, + 2103, 2103, 2103, 2104, 2104, 2104, 2104, 2105, 2105, 2105, + 2105, 2106, 2106, 2106, 2106, 2107, 2107, 2107, 2107, 2108, + 2108, 2108, 2108, 2108, 2109, 2109, 2109, 2109, 2109, 2110, + 2110, 2110, 2110, 2110, 2113, 2113, 2113, 2113, 2113, 2113, + 2113, 2113, 2113, 2113, 2113, 2114, 2114, 2114, 2114, 2114, + 2114, 2114, 2114, 2114, 2114, 2115, 2115, 2119, 2123, 2130, + 2134, 2141, 2145, 2152, 2156, 2160, 2164, 2168, 2172, 2176, + 2180, 2192, 2196, 2200, 2204, 2208, 2212, 2216, 2220, 2224, + 2228, 2232, 2236, 2240, 2244, 2248, 2252, 2256, 2260, 2264, + 2268, 2272, 2276, 2280, 2284, 2288, 2296, 2300, 2304, 2308, + 2312, 2319, 2325, 2331, 2337, 2343, 2349, 2355, 2362, 2369, + 2376, 2383, 2389, 2395, 2399, 2403, 2407, 2411, 2415, 2427, + 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459, 2463, 2467, + 2471, 2475, 2479, 2483, 2487, 2491, 2495, 2499, 2503, 2507, + 2511, 2515, 2519, 2523, 2527, 2531, 2538, 2542, 2546, 2550, + 2554, 2558, 2562, 2576, 2580, 2584, 2588, 2592, 2596, 2600, + 2604, 2608, 2612, 2624, 2628, 2632, 2636, 2640, 2644, 2648, + 2652, 2656, 2660, 2664, 2668, 2672, 2676, 2680, 2684, 2688, + 2692, 2696, 2700, 2704, 2708, 2712, 2716, 2720, 2724, 2731, + 2735, 2739, 2743, 2747, 2751, 2758, 2766, 2774, 2797, 2801, + 2808, 2812, 2818 }; #endif @@ -1165,37 +927,35 @@ static const char *const yytname[] = "']'", "$accept", "grammar", "cpp", "constructor_inits", "constructor_init", "extern_c", "$@1", "declaration", "friend_declaration", "$@2", "storage_class", "type_like_declaration", - "multiple_var_declaration", "$@3", "$@4", - "multiple_instance_identifiers", "multiple_const_instance_identifiers", - "typedef_declaration", "$@5", "$@6", "typedef_instance_identifiers", - "typedef_const_instance_identifiers", "function_prototype", "$@7", "$@8", - "$@9", "$@10", "$@11", "$@12", "$@13", "function_post", + "$@3", "multiple_instance_identifiers", "typedef_declaration", "$@4", + "typedef_instance_identifiers", "function_prototype", "$@5", "$@6", + "$@7", "$@8", "$@9", "$@10", "$@11", "function_post", "function_operator", "more_template_declaration", "template_declaration", - "$@14", "template_formal_parameters", + "$@12", "template_formal_parameters", "template_nonempty_formal_parameters", "template_formal_parameter", - "template_formal_parameter_type", "instance_identifier", "$@15", + "template_formal_parameter_type", "instance_identifier", "$@13", "formal_parameter_list", "formal_parameters", "template_parameter_maybe_initialize", "maybe_initialize", "maybe_initialize_or_function_body", "structure_init", "structure_init_body", "formal_parameter", "not_paren_formal_parameter_identifier", "formal_parameter_identifier", "empty_instance_identifier", "type", "type_decl", "predefined_type", - "full_type", "anonymous_struct", "$@16", "named_struct", "$@17", + "full_type", "anonymous_struct", "$@14", "named_struct", "$@15", "maybe_class_derivation", "class_derivation", "base_specification", "enum", "enum_decl", "enum_element_type", "enum_body_trailing_comma", "enum_body", "enum_keyword", "struct_keyword", "namespace_declaration", - "$@18", "using_declaration", "simple_type", "simple_int_type", - "simple_float_type", "simple_void_type", "code", "$@19", "code_block", + "$@16", "using_declaration", "simple_type", "simple_int_type", + "simple_float_type", "simple_void_type", "code", "$@17", "code_block", "element", "optional_const_expr", "optional_const_expr_comma", "const_expr_comma", "no_angle_bracket_const_expr", "const_expr", "const_operand", "formal_const_expr", "formal_const_operand", - "class_derivation_name", "name", "string", "empty", YY_NULL + "class_derivation_name", "name", "string", "empty", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -1215,856 +975,736 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 131, 132, 132, 132, 133, 133, 133, 134, 134, - 135, 137, 136, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 140, - 139, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 142, 142, 142, 144, 143, 145, 143, - 146, 146, 147, 147, 149, 148, 150, 148, 148, 151, - 151, 152, 152, 154, 153, 155, 153, 156, 153, 157, - 153, 158, 153, 159, 153, 160, 153, 153, 161, 161, - 161, 161, 161, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 163, 163, 165, 164, 166, 166, 167, 167, - 168, 168, 168, 168, 168, 168, 169, 169, 169, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, - 170, 172, 172, 172, 172, 172, 173, 173, 174, 174, - 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, - 178, 178, 178, 178, 179, 179, 179, 179, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, - 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, - 183, 183, 183, 183, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 185, 185, 185, 185, 185, 186, 186, - 188, 187, 190, 189, 191, 191, 192, 192, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 194, 195, 195, - 195, 195, 196, 196, 197, 197, 197, 198, 198, 198, - 199, 200, 200, 200, 202, 201, 201, 203, 203, 204, - 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, - 205, 205, 205, 205, 205, 205, 205, 206, 206, 206, - 206, 206, 207, 209, 208, 210, 210, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 212, 212, 213, 213, 214, - 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, - 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, - 219, 219, 219, 220, 220, 220, 221, 221, 222, 222, - 223 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, - 4, 0, 5, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 2, 2, 2, 2, 7, 9, 9, 0, - 3, 1, 2, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 3, 3, 0, 4, 0, 5, - 2, 4, 2, 4, 0, 4, 0, 5, 3, 2, - 4, 2, 4, 0, 6, 0, 6, 0, 7, 0, - 10, 0, 11, 0, 8, 0, 9, 1, 1, 1, - 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 0, 6, 1, 1, 1, 3, - 2, 4, 2, 4, 3, 4, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 3, 4, 3, 3, 0, - 6, 1, 1, 1, 3, 2, 1, 3, 1, 2, - 1, 2, 1, 3, 5, 3, 4, 1, 1, 2, - 1, 3, 3, 5, 3, 3, 4, 1, 1, 1, - 1, 2, 2, 2, 2, 3, 4, 1, 1, 1, - 2, 2, 2, 2, 3, 4, 7, 3, 1, 2, - 2, 2, 2, 3, 4, 7, 1, 1, 2, 1, - 1, 1, 2, 4, 1, 1, 2, 1, 1, 1, - 2, 4, 2, 1, 1, 2, 2, 2, 2, 3, - 0, 5, 0, 7, 1, 1, 2, 3, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 4, 4, 2, - 3, 1, 1, 1, 1, 3, 5, 1, 2, 4, - 1, 1, 1, 1, 0, 6, 4, 2, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, - 3, 2, 1, 0, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 1, 4, 7, 7, 4, 2, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, - 3, 3, 3, 3, 1, 4, 7, 7, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 2, 5, 2, 2, 2, 2, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, - 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 7, 7, 4, 2, 5, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, - 0 -}; - -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 0, 550, 0, 0, 0, 550, 5, 498, 494, 497, - 548, 500, 0, 0, 0, 0, 0, 0, 0, 496, - 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 444, 499, - 207, 272, 273, 275, 276, 261, 0, 289, 260, 287, - 282, 278, 279, 277, 281, 262, 0, 263, 280, 292, - 274, 550, 4, 209, 210, 211, 0, 251, 0, 206, - 269, 270, 271, 1, 20, 21, 0, 29, 0, 0, - 0, 0, 0, 0, 124, 550, 0, 6, 15, 7, - 18, 0, 13, 43, 14, 16, 17, 31, 550, 550, - 550, 550, 550, 550, 0, 550, 550, 550, 224, 0, - 462, 0, 0, 223, 550, 550, 0, 0, 550, 550, - 468, 466, 467, 465, 207, 272, 273, 275, 276, 289, - 287, 282, 278, 277, 281, 280, 274, 0, 0, 409, - 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 549, 550, 291, 288, 278, 284, - 278, 283, 286, 546, 547, 208, 285, 0, 550, 550, - 550, 550, 550, 228, 198, 550, 0, 249, 230, 212, - 22, 550, 0, 0, 550, 0, 25, 24, 23, 0, - 0, 19, 0, 267, 77, 215, 41, 0, 42, 32, - 37, 35, 39, 0, 40, 34, 0, 36, 38, 11, - 0, 0, 46, 217, 218, 219, 251, 0, 214, 0, - 408, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 225, 550, 227, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 493, 477, 478, 479, 480, 481, 482, - 485, 486, 492, 0, 474, 475, 476, 483, 484, 472, - 473, 469, 470, 471, 491, 490, 0, 0, 229, 290, - 550, 202, 199, 201, 200, 0, 550, 257, 0, 254, - 253, 250, 252, 0, 550, 550, 30, 0, 0, 550, - 264, 550, 0, 0, 54, 268, 63, 65, 48, 33, - 0, 550, 216, 550, 0, 293, 162, 0, 0, 45, - 44, 0, 222, 220, 448, 454, 450, 452, 453, 460, - 0, 459, 449, 456, 0, 455, 458, 461, 0, 457, - 451, 445, 410, 0, 489, 488, 203, 0, 0, 406, - 405, 258, 247, 213, 550, 0, 0, 235, 234, 0, - 0, 266, 550, 137, 138, 0, 0, 0, 0, 127, - 128, 550, 136, 126, 56, 58, 0, 550, 0, 0, - 550, 0, 550, 179, 180, 0, 550, 550, 550, 550, - 0, 178, 550, 67, 0, 550, 0, 8, 0, 550, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 550, - 139, 0, 0, 463, 0, 487, 550, 204, 255, 0, - 231, 0, 0, 0, 0, 236, 550, 0, 0, 0, - 550, 130, 550, 132, 550, 0, 188, 189, 0, 550, - 550, 550, 550, 550, 550, 187, 0, 55, 550, 541, - 537, 540, 550, 152, 0, 0, 539, 0, 0, 0, - 538, 0, 0, 0, 0, 0, 0, 153, 156, 550, - 177, 501, 542, 151, 0, 0, 0, 49, 550, 0, - 550, 184, 181, 183, 182, 73, 550, 12, 550, 163, - 294, 295, 293, 0, 550, 550, 0, 168, 170, 167, - 165, 0, 144, 141, 93, 94, 95, 96, 97, 98, - 101, 102, 117, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 121, 120, 104, 103, 90, - 92, 91, 99, 100, 88, 89, 85, 86, 87, 84, - 0, 0, 83, 140, 143, 142, 0, 0, 0, 149, - 550, 0, 50, 160, 221, 0, 0, 0, 259, 0, - 0, 0, 240, 543, 0, 239, 0, 238, 0, 0, - 0, 550, 237, 0, 0, 0, 265, 0, 550, 0, - 0, 122, 125, 123, 129, 550, 193, 190, 192, 191, - 0, 0, 550, 134, 158, 57, 550, 0, 59, 550, - 550, 0, 506, 0, 0, 511, 510, 509, 0, 0, - 508, 550, 155, 0, 550, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 550, 0, 52, 75, 185, 550, 0, 0, 297, - 298, 300, 299, 304, 301, 302, 303, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 360, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 550, 398, 399, 400, 391, 403, - 387, 388, 386, 393, 394, 382, 383, 384, 385, 392, - 390, 397, 395, 401, 396, 389, 402, 296, 0, 9, - 0, 0, 166, 169, 145, 119, 118, 148, 147, 161, - 550, 0, 0, 447, 446, 550, 256, 545, 246, 544, - 245, 244, 243, 242, 241, 233, 0, 26, 0, 131, - 135, 133, 194, 197, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 159, 411, 0, 0, 61, 0, 0, - 175, 550, 0, 550, 0, 0, 0, 536, 79, 64, - 78, 154, 157, 174, 520, 521, 522, 523, 524, 525, - 528, 529, 535, 0, 517, 518, 519, 526, 527, 515, - 516, 512, 513, 514, 534, 533, 0, 0, 0, 69, - 66, 0, 550, 0, 186, 550, 0, 164, 10, 171, - 550, 172, 0, 146, 51, 205, 0, 0, 550, 0, - 0, 0, 420, 418, 419, 417, 0, 0, 416, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 195, 0, 60, 161, 176, 0, 0, 505, 0, 502, - 80, 0, 0, 532, 531, 71, 550, 53, 0, 550, - 68, 404, 0, 550, 27, 28, 0, 0, 0, 0, - 0, 443, 429, 430, 431, 432, 433, 434, 435, 436, - 442, 0, 426, 427, 428, 424, 425, 421, 422, 423, - 441, 440, 0, 0, 62, 0, 507, 0, 0, 530, - 550, 0, 550, 74, 173, 150, 550, 0, 415, 0, - 412, 0, 439, 438, 0, 0, 81, 0, 0, 550, - 76, 196, 0, 0, 437, 504, 503, 82, 550, 70, - 0, 0, 72, 414, 413 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 4, 5, 396, 397, 88, 313, 89, 90, 191, - 91, 92, 93, 321, 381, 408, 477, 201, 376, 446, - 447, 595, 221, 377, 380, 488, 916, 960, 646, 852, - 819, 543, 582, 94, 199, 368, 369, 370, 371, 409, - 770, 466, 467, 593, 551, 319, 496, 497, 468, 390, - 444, 183, 61, 222, 110, 62, 63, 294, 64, 295, - 356, 357, 425, 65, 66, 291, 287, 288, 67, 68, - 95, 362, 96, 69, 70, 71, 72, 394, 395, 490, - 757, 348, 229, 230, 803, 139, 38, 470, 471, 562, - 410, 39, 231 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -490 -static const yytype_int16 yypact[] = -{ - 202, -490, 2072, 3155, 52, 3007, -490, -490, -490, -490, - -490, -490, -60, -44, -28, -16, 10, 37, -3, -490, - 43, 46, 51, 3267, 57, 67, 75, 22, -490, 93, - 113, 2072, 2072, 2072, 2072, 1232, 2072, 2714, -490, 114, - -490, -490, -490, -490, -490, -490, 3323, -490, -490, -490, - -490, 1593, -490, 1773, 1773, -490, 84, -490, 1773, -490, - -490, 119, -490, -490, -490, -490, 139, 102, 15, -490, - -490, -490, -490, -490, -490, -490, 143, -490, 124, 142, - 29, 178, 182, 185, -490, -490, 62, -490, -490, -490, - -490, 2409, -490, -490, -490, -490, -490, -490, 2072, 2072, - 2072, 2072, 2072, 2072, 3155, 2072, 2072, 2072, -490, 84, - 146, 84, 84, -490, 2072, 2072, 3155, 3155, 2072, 2072, - 49, 49, 49, 49, -60, -44, -28, -16, 10, 37, - 43, 46, 2043, 2336, 3256, 3516, 113, 174, -92, 2714, - 49, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, - 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, - 2072, 2072, 1532, 2072, -490, 119, -490, -490, 1683, -490, - 1773, -490, -490, -490, -490, -490, -490, 191, 119, 119, - 119, 119, 119, 196, -490, -490, 3200, 207, -490, -21, - -490, 3548, 316, 84, -490, 225, -490, -490, -490, 217, - 2476, -490, 84, -490, 213, 223, -490, 3323, -490, 345, - -490, -490, -490, 3211, -490, -490, 84, -490, -490, -490, - 84, 218, 246, -490, -490, -490, 102, 15, -490, 229, - 249, -490, 233, 247, 262, 263, 265, 245, 266, 268, - 269, -490, 2072, -490, -490, 270, 276, 282, 293, 289, - 295, 2072, 2072, -490, 1249, 821, 3055, 3055, 627, 627, - 388, 388, -490, 2566, 2134, 2876, 664, 627, 627, 280, - 280, 49, 49, 49, -490, -490, -68, 2164, 196, -490, - 119, 196, 196, 196, 196, 4, 2072, 84, 292, -490, - -490, -490, -490, 3200, -490, 314, -490, 318, 324, 3360, - -490, 3061, 3323, 218, -490, -490, -490, 12, -490, 114, - 3323, 222, -490, -490, 309, -490, -490, 84, 1622, -490, - -490, 206, 17, -21, -490, -490, -490, -490, -490, -490, - 311, -490, -490, -490, 325, -490, -490, -490, 328, -490, - -490, 49, 2714, 2072, -490, -490, 196, 329, 326, 2714, - -490, 58, -490, 351, 3387, 161, 352, 356, -490, 452, - 84, -490, -490, -490, -490, 84, 2327, 84, 349, 359, - -490, 219, -490, -490, -490, -490, 206, 1332, 350, 206, - 1332, 206, 222, -490, -490, 353, 222, 222, 222, 222, - 71, -490, 3414, -490, 341, -490, 148, -490, 346, 1712, - 2633, 355, 206, 206, 2326, 206, 206, 206, -490, 165, - -490, 3200, 2072, -490, 2072, 2714, 1332, -490, -490, 2072, - -490, 665, 867, 1201, 235, -490, -490, 161, -61, 364, - 3441, 365, 219, 367, 390, 3061, -490, -490, 361, 219, - 219, 219, 219, 219, -101, -490, 206, -490, 165, -490, - -490, -490, 219, -490, 3323, 366, -490, 3267, 368, 374, - -490, 2072, 2072, 2072, 1232, 2072, 357, 6, -490, 219, - 2747, -490, 114, -490, 206, 177, 371, -490, 165, 156, - 222, 373, 373, 373, 373, -490, 2072, -490, 1332, -490, - 1104, -490, -490, 84, 2072, 1712, 363, 392, 2714, -490, - -490, 206, 194, 194, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - 375, 381, -490, -490, 194, 194, 239, 79, 1622, -490, - 2072, 395, -490, -490, 351, -54, -33, 377, 2680, 84, - 332, 84, -490, -490, 332, -490, 332, -490, 332, 332, - 332, 3468, -490, 507, 407, 84, -490, 3155, -101, 3155, - 2543, -490, -490, -490, -490, 219, 393, 393, 393, 393, - 209, 1468, 2072, -490, -490, -490, 165, 410, -490, -35, - 219, 3155, 396, 3155, 3155, 49, 49, 49, 398, 13, - 49, 469, -490, 1432, -35, 2072, 2072, 2072, 2072, 2072, - 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, - 2072, 2072, 2072, 2072, 2072, 2072, 1802, 2072, 242, 519, - 408, 469, 426, -490, -490, 373, 1332, 405, 409, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, 411, -490, - 413, 414, -490, 1892, 194, -490, -490, -490, -490, 2633, - 1332, 415, 206, -490, -490, 469, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, 416, -490, 419, -490, - -490, -490, 393, 422, 425, 427, 438, 1468, 1468, 1468, - 1468, 1232, 1468, 2861, -490, 428, 430, -490, 206, 2072, - -490, -35, 439, 2072, 437, 449, 2072, -490, -490, 27, - -490, -490, -490, -490, 1249, 821, 3055, 3055, 627, 627, - 388, 388, -490, 2697, 2134, 2876, 664, 627, 627, 280, - 280, 49, 49, 49, -490, -490, 90, 2189, 442, -490, - 27, 206, 1332, 445, -490, 469, 976, -490, -490, -490, - 1712, 2714, 446, -490, -490, 27, 465, 466, 1332, 3155, - 3155, 3155, 221, 221, 221, 221, 454, 96, 221, 1468, - 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, - 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1982, 2072, - -490, 206, -490, 2714, -490, 451, 455, -490, 458, 49, - -490, 460, 2072, -490, -490, -490, 1332, -490, 459, 469, - 27, -490, 468, 469, -490, -490, 461, 476, 473, 486, - 1468, -490, 1449, 2891, 3073, 3073, 1485, 1485, 533, 533, - -490, 2828, 2906, 2940, 3018, 406, 406, 221, 221, 221, - -490, -490, 118, 2208, -490, 2072, -490, 2072, 59, 2714, - 1332, 477, 469, 27, -490, 27, 469, 481, -490, 482, - 221, 1468, -490, -490, 127, 151, -490, 484, 487, 469, - 27, 27, 2072, 2072, 2861, -490, -490, -490, 469, 27, - 169, 172, 27, -490, -490 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -490, -490, -179, -490, 116, -490, -490, 447, -490, -490, - -76, 205, -490, -490, -490, -136, -209, -490, -490, -490, - -165, -252, 464, -490, -490, -490, -490, -490, -490, -490, - -318, -490, -490, 231, -490, -490, -490, 234, 300, -307, - -490, -363, -490, 94, -393, -283, -489, -490, 55, -281, - -413, 83, -5, 471, 220, -14, -88, -490, -84, -490, - -490, -490, 248, -83, -490, -288, -490, -490, -11, -9, - -490, -490, -490, -12, 609, -490, -490, 184, -490, -56, - -490, -473, -57, -34, 1, 0, -62, -490, -490, -359, - 157, -158, -1 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -250 -static const yytype_int16 yytable[] = -{ - 6, 138, 37, 223, 97, 353, 761, 224, 225, 200, - 591, 113, 111, 647, 112, 299, 252, 476, 612, 578, - 375, 137, 378, 173, 174, 592, 586, 587, 588, 589, - 590, 120, 121, 122, 123, 253, 140, 173, 174, 599, - 252, 165, 232, 233, 234, 235, 236, 573, 238, 239, - 240, 309, 73, 557, 252, 597, 614, 245, 246, 344, - 184, 249, 250, 565, 567, 98, 574, 173, 174, 448, - 173, 174, 475, 773, 478, 252, 809, 771, 149, 228, - 226, 99, 227, 768, 97, 642, -232, 173, 174, -232, - 237, 592, 173, 174, 774, 502, 503, 100, 544, 545, - 546, 479, 247, 248, 910, 481, 482, 483, 484, 101, - 173, 174, 223, 104, 613, 354, 224, 225, 911, 805, - 164, 252, 188, 554, -249, 648, 552, 411, 276, 177, - 286, 347, 379, 178, 392, 102, 194, 202, 117, 596, - 817, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 103, 277, 184, 598, 418, 638, 105, 419, - 179, 106, 792, 161, 162, 163, 107, 184, 184, 184, - 184, 184, 114, 430, 289, 334, 976, 811, 228, 226, - 97, 227, 115, 6, 764, 643, 485, 486, 252, 645, - 116, 778, 308, 806, 252, 780, 810, 781, 311, 782, - 783, 784, 186, 175, 173, 174, 401, 913, 118, 472, - 402, 823, 472, 931, 187, 189, 252, 436, 437, 438, - 383, 384, 385, 439, 180, 252, 386, 195, 119, 181, - 421, 422, 423, 203, 182, 972, 185, 571, 278, 192, - 887, 341, 342, 190, 985, 492, 493, 403, 472, 252, - 424, 281, 282, 283, 284, 285, 241, 193, 243, 244, - 440, 242, 315, 387, 316, 547, 548, 252, 986, 184, - 252, 644, 486, 853, 404, 350, 349, 639, 196, 372, - 549, 550, 197, 6, 358, 198, 993, 374, 97, 994, - 373, 251, 549, 550, 640, 382, 1, 2, 3, 149, - 391, 280, 6, 807, 568, 569, 570, 293, 400, 549, - 550, 405, 286, 850, 297, 315, 406, 316, 317, 318, - 472, 407, 300, 301, 441, 592, 793, 388, 306, 442, - 173, 174, 389, 415, 443, 897, 898, 899, 307, 639, - 298, 10, 639, 97, 372, 320, 324, 252, 580, 305, - 325, 6, 330, 346, 549, 550, 767, 549, 550, 848, - 445, 922, 469, 312, 326, 469, 473, 314, 555, 473, - 556, 391, 45, 322, 323, 391, 391, 391, 391, 327, - 328, 97, 329, 331, 491, 332, 333, 335, 499, 498, - 158, 159, 160, 336, 161, 162, 163, 862, 553, 337, - 338, 469, 561, 561, 561, 473, 339, 149, 904, 558, - 352, 55, 340, 372, 355, 6, 359, 559, 57, 97, - 609, 445, 360, 97, 393, 887, 412, 760, 445, 445, - 445, 445, 445, 594, 351, 113, 111, 553, 112, 600, - 608, 445, 413, 414, 416, 472, 417, 865, -248, 426, - 428, 605, 606, 607, 427, 610, 434, 435, 445, 489, - 474, 494, 575, 480, 398, 501, 577, 553, 579, 391, - 84, 585, 601, 469, 611, 350, 349, 473, 472, 918, - 604, 762, 223, 603, 499, 498, 224, 225, 641, 486, - 763, 448, 765, 772, 775, 926, 156, 157, 158, 159, - 160, 766, 161, 162, 163, 786, 787, 429, 808, 592, - 818, 813, 431, 768, 433, 816, 894, 895, 896, 804, - 897, 898, 899, 849, 851, 854, 855, 920, 901, 857, - 858, 869, 859, 866, 478, 863, 867, 868, 769, 350, - 349, 561, 870, 961, 871, 561, 905, 561, 900, 561, - 561, 561, 887, 789, 907, 791, 908, 915, 228, 226, - 97, 227, 919, 923, 924, 925, 955, 594, 563, 563, - 563, 930, 956, 957, 445, 958, 962, 812, 966, 814, - 815, 350, 349, 967, 596, 553, 964, 978, 553, 445, - 968, 963, 846, 969, 979, 965, 982, 983, 469, 759, - 820, 987, 472, 553, 988, 824, 825, 826, 827, 828, - 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 840, 841, 842, 843, 844, 864, 847, 296, 581, - 820, 469, 917, 902, 980, 473, 147, 148, 981, 954, - 398, 892, 893, 894, 895, 896, 149, 897, 898, 899, - 169, 989, 171, 172, 303, 583, 432, 176, 822, 584, - 992, 304, 790, 173, 174, 572, 758, 602, 856, 143, - 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 149, 472, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, - 472, 0, 0, 0, 0, 45, 777, 563, 779, 0, - 0, 563, 0, 563, 0, 563, 563, 563, 0, 0, - 0, 0, 788, 491, 0, 804, 804, 804, 804, 0, - 804, 169, 171, 172, 176, 156, 157, 158, 159, 160, - 0, 161, 162, 163, 55, 0, 906, 0, 472, 0, - 559, 57, 0, 861, 560, 469, 0, 877, 0, 473, - 0, 0, 0, 0, 820, 0, 0, 169, 0, 169, - 154, 155, 156, 157, 158, 159, 160, 876, 161, 162, - 163, 0, 0, 0, 0, 292, 0, 0, 872, 873, - 874, 875, 472, 878, 0, 0, 0, 0, 0, 903, - 553, 0, 0, 0, 0, 0, 909, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 143, 144, 145, 146, - 147, 148, 0, 0, 0, 0, 0, 469, 0, 0, - 149, 473, 0, 0, 820, 927, 928, 929, 0, 499, - 498, 0, 0, 469, 952, 0, 0, 473, 804, 0, - 0, 0, 0, 0, 0, 173, 174, 0, 0, 0, - 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, - 942, 943, 944, 945, 946, 947, 948, 949, 950, 953, - 0, 0, 292, 0, 0, 0, 0, 0, 0, 804, - 0, 469, 959, 0, 0, 473, 0, 45, 820, 0, - 0, 974, 820, 975, 0, 0, 0, 0, 0, 0, - 0, 970, 0, 0, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 0, 161, 162, 163, 990, 991, - 0, 0, 0, 0, 0, 469, 55, 0, 0, 473, - 0, 820, 559, 57, 0, 820, 564, 0, 0, 0, - 0, 0, 984, 0, 0, 0, 0, 0, 820, 649, - 650, 651, 652, 653, 654, 655, 656, 820, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 0, - 0, 0, 0, 0, 0, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 0, - 292, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 0, 693, 0, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 0, 0, 0, - 706, 707, 708, 0, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 0, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 0, 0, 0, 734, 735, 736, 737, 738, 739, 740, - 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, - 751, 752, 753, 754, 921, 755, 756, 649, 650, 651, - 652, 653, 654, 655, 656, 977, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 0, 0, 0, - 0, 0, 0, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 0, 0, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 0, 693, 0, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 0, 0, 0, 706, 707, - 708, 0, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 0, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 0, 173, - 174, 734, 735, 736, 737, 738, 739, 740, 741, 742, - 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, - 753, 754, 0, 755, 756, 7, 8, 9, 10, 0, - 11, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, - 0, 0, 0, 0, 0, 0, 0, 125, 149, 126, - 127, 128, 45, 46, 0, 129, 18, 0, 0, 48, - 55, 0, 0, 0, 19, 130, 559, 57, 0, 0, - 566, 131, 132, 52, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 133, 134, 26, 0, - 27, 55, 0, 0, 28, 0, 0, 56, 57, 135, - 0, 0, 59, 0, 136, 449, 450, 451, 10, 0, - 452, 40, 0, 0, 453, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 0, 35, 0, 0, - 0, 36, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 0, 161, 162, 163, 0, 41, 0, 42, - 43, 44, 45, 454, 0, 47, 455, 0, 0, 48, - 0, 0, 0, 0, 456, 49, 0, 0, 0, 0, - 0, 50, 51, 52, 0, 0, 0, 0, 457, 0, - 0, 0, 0, 0, 0, 0, 53, 54, 458, 0, - 459, 55, 0, 0, 460, 0, 0, 56, 57, 58, - 0, 0, 59, 0, 60, 449, 450, 451, 10, 0, - 452, 40, 0, 0, 821, 0, 0, 461, 0, 0, - 0, 462, 0, 0, 0, 463, 0, 464, 0, 0, - 0, 465, 0, 880, 881, 882, 883, 884, 885, 886, - 0, 7, 8, 9, 10, 0, 11, 41, 887, 42, - 43, 44, 45, 454, 0, 47, 455, 0, 0, 48, - 0, 0, 0, 0, 456, 49, 0, 0, 0, 0, - 0, 50, 51, 52, 885, 886, 0, 0, 457, 0, - 0, 0, 0, 0, 887, 0, 53, 54, 458, 0, - 459, 55, 794, 0, 460, 0, 0, 56, 57, 58, - 19, 0, 59, 0, 60, 7, 8, 9, 10, 0, - 11, 12, 0, 0, 0, 0, 0, 461, 0, 0, - 0, 462, 0, 0, 795, 463, 796, 464, 0, 0, - 28, 465, 889, 890, 891, 0, 0, 892, 893, 894, - 895, 896, 0, 897, 898, 899, 0, 13, 0, 14, - 15, 16, 0, 797, 0, 17, 18, 798, 799, 0, - 0, 800, 0, 801, 19, 20, 0, 802, 0, 0, - 0, 21, 22, 892, 893, 894, 895, 896, 23, 897, - 898, 899, 0, 0, 0, 0, 24, 25, 26, 0, - 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, - 11, 12, 0, 0, 30, 0, 0, 0, 41, 0, - 42, 43, 44, 0, 0, 0, 166, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 167, 35, 0, 275, - 0, 36, 50, 168, 52, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, - 58, 21, 22, 0, 0, 60, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, - 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, - 11, 12, 0, 0, 30, 0, 0, 0, 41, 399, - 42, 43, 44, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 279, 35, 0, 0, - 0, 36, 50, 170, 52, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, - 58, 21, 22, 0, 0, 60, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, - 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, - 11, 12, 0, 0, 30, 0, 0, 0, 41, 495, - 42, 43, 44, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 0, 35, 0, 0, - 0, 36, 50, 170, 52, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, - 58, 21, 22, 0, 0, 60, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, - 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, - 11, 12, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 0, 35, 0, 845, - 0, 36, 0, 0, 0, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, - 0, 21, 22, 0, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, - 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, - 11, 12, 0, 0, 30, 0, 0, 0, 0, 860, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 0, 35, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, - 0, 21, 22, 0, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, - 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, - 11, 12, 0, 0, 30, 0, 0, 0, 41, 0, - 42, 43, 44, 0, 0, 0, 166, 31, 0, 0, - 0, 32, 33, 0, 0, 34, 167, 35, 0, 951, - 0, 36, 50, 168, 52, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, - 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, - 58, 21, 22, 0, 0, 60, 0, 0, 23, 143, - 144, 145, 146, 147, 148, 0, 24, 25, 26, 0, - 27, 0, 0, 149, 28, 0, 0, 0, 107, 29, - 0, 0, 0, 0, 30, 0, 0, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 0, 31, 0, 0, - 0, 32, 33, 149, 0, 34, 0, 35, 0, 0, - 0, 36, 141, 142, 143, 144, 145, 146, 147, 148, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, - 0, 141, 142, 143, 144, 145, 146, 147, 148, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 0, 161, 162, - 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 0, 161, 162, - 163, 0, 0, 0, 345, 0, 0, 0, 0, 0, - 0, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 0, 161, 162, 163, 0, 0, 0, 914, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 0, 161, 162, 163, 363, 364, 0, 973, 504, - 505, 506, 507, 508, 509, 510, 511, 0, 0, 0, - 0, 0, 0, 0, 0, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 0, - 0, 0, 41, 0, 42, 43, 44, 0, 525, 0, - 47, 41, 0, 42, 43, 44, 0, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 50, 51, 52, 0, - 0, 0, 526, 0, 0, 50, 170, 52, 0, 0, - 0, 53, 54, 0, 0, 0, 0, 204, 205, 0, - 53, 54, 0, 0, 58, 0, 0, 59, 0, 60, - 0, 0, 0, 58, 527, 0, 0, 528, 60, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 0, 540, 541, 206, 41, 542, 42, 43, 44, 45, - 207, 114, 47, 0, 0, 0, 48, 208, 209, 210, - 0, 0, 49, 0, 0, 0, 0, 211, 50, 51, - 52, 0, 0, 212, 204, 205, 0, 213, 0, 0, - 0, 214, 0, 53, 54, 0, 215, 0, 55, 0, - 0, 0, 0, 0, 216, 57, 58, 0, 217, 59, - 218, 60, 0, 0, 0, 0, 219, 0, 0, 0, - 206, 41, 0, 42, 43, 44, 45, 302, 0, 47, - 0, 0, 220, 48, 208, 209, 210, 0, 0, 49, - 0, 0, 0, 0, 211, 50, 51, 52, 0, 0, - 212, 204, 205, 0, 213, 0, 0, 0, 214, 0, - 53, 54, 0, 215, 0, 55, 0, 0, 0, 0, - 0, 216, 57, 58, 0, 217, 59, 218, 60, 141, - 142, 143, 144, 145, 146, 147, 148, 206, 41, 0, - 42, 43, 44, 45, 207, 149, 47, 0, 0, 220, - 48, 208, 209, 210, 0, 0, 49, 0, 0, 0, - 0, 211, 50, 51, 52, 0, 0, 212, 0, 0, - 0, 213, 0, 0, 0, 214, 0, 53, 54, 0, - 215, 0, 55, 0, 0, 0, 0, 0, 216, 57, - 58, 0, 217, 59, 218, 60, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 149, 0, 0, 0, 220, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 343, 0, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 0, - 161, 162, 163, 141, 142, 143, 144, 145, 146, 147, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 149, - 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, - 0, 0, 500, 149, 0, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 0, 161, 162, 163, - 615, 616, 617, 618, 619, 620, 621, 622, 0, 0, - 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, - 0, 0, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 0, 161, 162, 163, 912, 0, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 0, 161, 162, 163, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 0, 161, 162, - 163, 879, 880, 881, 882, 883, 884, 885, 886, 0, - 0, 0, 0, 0, 0, 0, 0, 887, 0, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 0, 635, 636, 637, 879, 880, 881, 882, 883, 884, - 885, 886, 0, 0, 0, 0, 0, 0, 0, 0, - 887, 143, 144, 145, 146, 147, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 881, 882, 883, 884, - 885, 886, 0, 0, 0, 0, 0, 0, 0, 0, - 887, 881, 882, 883, 884, 885, 886, 0, 0, 0, - 0, 0, 0, 0, 0, 887, 0, 0, 971, 0, - 888, 889, 890, 891, 0, 0, 892, 893, 894, 895, - 896, 0, 897, 898, 899, 881, 882, 883, 884, 885, - 886, 0, 0, 0, 0, 0, 0, 0, 0, 887, - 0, 0, 0, 888, 889, 890, 891, 0, 0, 892, - 893, 894, 895, 896, 0, 897, 898, 899, 0, 0, - 0, 153, 154, 155, 156, 157, 158, 159, 160, 0, - 161, 162, 163, 0, 889, 890, 891, -2, 0, 892, - 893, 894, 895, 896, 0, 897, 898, 899, 0, 0, - 890, 891, 0, 0, 892, 893, 894, 895, 896, 0, - 897, 898, 899, 881, 882, 883, 884, 885, 886, 0, - 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, - 74, 0, 0, 0, 0, 891, 0, 0, 892, 893, - 894, 895, 896, 75, 897, 898, 899, 0, 76, 363, - 364, 77, 145, 146, 147, 148, 0, 0, 0, 78, - 79, 0, 80, 0, 149, 0, 81, 82, 83, 0, - 883, 884, 885, 886, 0, 0, 0, 84, 0, 0, - 0, 85, 887, 0, 0, 86, 41, 0, 42, 43, - 44, 365, 366, 0, 47, 0, 87, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 892, 893, 894, 895, - 896, 0, 897, 898, 899, 53, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 367, 0, 58, 0, - 0, 59, 0, 60, 40, 0, 0, 0, 0, 0, - 0, 154, 155, 156, 157, 158, 159, 160, 0, 161, - 162, 163, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 892, 893, 894, 895, 896, 0, 897, 898, 899, - 41, 0, 42, 43, 44, 45, 46, 0, 47, 290, - 0, 0, 48, 0, 0, 0, 0, 0, 49, 0, - 40, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 54, 0, 0, 0, 55, 41, 0, 42, 43, 44, - 56, 57, 58, 0, 0, 59, 41, 60, 42, 43, - 44, 45, 310, 0, 47, 0, 0, 0, 48, 50, - 170, 52, 0, 0, 49, 0, 108, 0, 0, 0, - 50, 51, 52, 0, 53, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 54, 58, 0, 0, - 55, 41, 60, 42, 43, 44, 56, 57, 58, 0, - 0, 59, 41, 60, 42, 43, 44, 45, 0, 0, - 47, 0, 0, 0, 48, 50, 170, 52, 0, 0, - 49, 0, 40, 0, 0, 0, 50, 51, 52, 0, - 53, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 54, 58, 0, 0, 55, 0, 60, 0, - 0, 0, 109, 57, 58, 0, 0, 59, 41, 60, - 42, 43, 44, 45, 0, 0, 47, 0, 0, 0, - 48, 115, 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 74, 0, 0, 0, 53, 54, 0, - 0, 0, 55, 0, 0, 0, 75, 0, 56, 57, - 58, 76, 0, 59, 77, 60, 0, 0, 0, 0, - 74, 0, 78, 79, 0, 80, 0, 0, 0, 81, - 82, 83, 0, 75, 0, 0, 0, 0, 76, 0, - 84, 77, 0, 0, 85, 0, 0, 74, 86, 78, - 79, 0, 80, 0, 0, 0, 81, 82, 83, 87, - 75, 0, 0, 0, 0, 76, 0, 84, 77, 0, - 0, 85, 0, 0, 74, 86, 78, 79, 361, 80, - 0, 0, 0, 81, 82, 83, 87, 75, 0, 0, - 0, 0, 76, 0, 84, 77, 0, 0, 85, 0, - 0, 74, 86, 78, 79, 420, 80, 0, 0, 0, - 81, 82, 83, 87, 75, 0, 0, 0, 0, 76, - 0, 84, 77, 0, 0, 85, 0, 0, 0, 86, - 78, 79, 487, 80, 0, 0, 0, 81, 82, 83, - 87, 0, 0, 0, 0, 0, 0, 0, 84, 0, - 0, 41, 85, 42, 43, 44, 86, 0, 0, 576, - 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, - 0, 0, 0, 0, 0, 50, 170, 52, 0, 0, - 0, 74, 0, 0, 0, 0, 785, 0, 0, 0, - 53, 54, 0, 0, 75, 0, 0, 0, 0, 76, - 0, 0, 77, 58, 0, 0, 0, 0, 60, 0, - 78, 79, 0, 80, 0, 0, 0, 81, 82, 83, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, - 0, 118, 85, 0, 0, 0, 86 -}; +#define YYPACT_NINF -603 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-490))) + (!!((Yystate) == (-603))) + +#define YYTABLE_NINF -242 #define yytable_value_is_error(Yytable_value) \ - YYID (0) + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + 225, -603, 2053, 3183, 23, 3073, -603, -603, -603, -603, + -603, -603, -97, -74, -61, -33, -22, -20, -2, -603, + 7, 14, 48, 3295, 56, 63, 66, 78, -603, 91, + 94, 2053, 2053, 2053, 2053, 908, 2053, 2621, -603, 219, + -603, -603, -603, -603, -603, -603, 3351, -603, -603, -603, + -603, 1574, -603, 1284, 1284, -603, 326, -603, 1284, -603, + -603, 124, -603, -603, -603, -603, 123, 60, 1, -603, + -603, -603, -603, -603, -603, -603, 122, -603, 125, 127, + 64, 160, 162, 167, -603, -603, 27, -603, -603, -603, + -603, 2390, -603, -603, -603, -603, -603, 2053, 2053, 2053, + 2053, 2053, 2053, 3183, 2053, 2053, 2053, -603, 326, 149, + 326, 326, -603, 2053, 2053, 3183, 3183, 2053, 2053, 164, + 164, 164, 164, -97, -74, -61, -33, -22, -20, 7, + 14, 2024, 2317, 3054, 3228, 94, 153, -83, 2621, 164, + 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, + 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, + 2053, 1513, 2053, -603, 124, -603, -603, 1664, -603, 1284, + -603, -603, -603, -603, -603, -603, 165, 124, 124, 124, + 124, 124, 170, -603, -603, 3117, 181, -603, -14, -603, + 3523, 286, 326, -603, 191, -603, -603, -603, 192, 2457, + -603, 326, -603, 198, 207, -603, -603, -603, 310, -603, + -603, -603, 3239, -603, -603, 326, -603, -603, -603, 326, + 312, 228, -603, -603, -603, 60, 1, -603, 214, 240, + -603, 224, 226, 242, 260, 269, 249, 273, 275, 282, + -603, 2053, -603, -603, 291, 298, 300, 313, 302, 304, + 2053, 2053, -603, 1330, 2115, 812, 812, 378, 378, 193, + 193, -603, 2547, 2800, 2815, 2942, 378, 378, 139, 139, + 164, 164, 164, -603, -603, -37, 2145, 170, -603, 124, + 170, 170, 170, 170, 235, 2053, 326, 315, -603, -603, + -603, -603, 3117, -603, 322, -603, 336, 338, 3388, -603, + 3127, 312, -603, -603, -603, 24, 219, 3351, 44, -603, + -603, 323, -603, -603, 326, 1603, -603, -603, 232, 80, + -14, -603, -603, -603, -603, -603, -603, 327, -603, -603, + -603, 320, -603, -603, -603, 328, -603, -603, 164, 2621, + 2053, -603, -603, 170, 330, 321, 2621, -603, 37, -603, + 349, 3415, 2, 350, 352, -603, 450, 326, -603, -603, + -603, -603, 326, 2308, 326, 344, 355, -603, 403, -603, + -603, -603, 232, 1313, 345, 232, 1313, 44, -603, -603, + 346, 44, 44, 44, 44, 248, -603, 3442, -603, 339, + -603, 271, -603, 353, 1693, 2568, 360, 232, 232, 2307, + 232, 232, 232, -603, 365, -603, 3117, 2053, -603, 2053, + 2621, 1313, -603, -603, 2053, -603, 132, 530, 767, 335, + -603, -603, 2, -30, 356, 3469, 372, 403, 376, 405, + 3127, -603, -603, 385, 403, 403, 403, 403, 403, -70, + -603, -603, 365, -603, -603, -603, 403, -603, 3351, 390, + -603, 3295, 382, 393, -603, 2053, 2053, 2053, 908, 2053, + 386, 9, -603, 403, 2735, -603, 219, -603, 232, 176, + 392, 259, 44, 391, 391, 391, 391, -603, 2053, -603, + 1313, -603, 1184, -603, -603, 326, 2053, 1693, 394, 412, + 2621, -603, -603, 232, 266, 266, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, 397, 396, -603, -603, 266, 266, 218, 142, + 1603, -603, 2053, 413, -603, -603, 349, -29, -23, 402, + 2587, 326, 546, 326, -603, -603, 546, -603, 546, -603, + 546, 546, 546, 3496, -603, 522, 422, 326, -603, 3183, + -70, 3183, 2457, -603, -603, -603, -603, 403, 406, 406, + 406, 406, 278, 699, 2053, -603, -603, 426, -603, -5, + 403, 3183, 410, 3183, 3183, 164, 164, 164, 409, -8, + 164, 486, -603, 1413, -5, 2053, 2053, 2053, 2053, 2053, + 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, + 2053, 2053, 2053, 2053, 2053, 2053, 1783, 2053, 229, 536, + 418, 486, -603, 391, 1313, 414, 419, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, -603, -603, 417, -603, 429, 425, + -603, 1873, 266, -603, -603, -603, -603, 2568, 1313, 427, + 232, -603, -603, 486, -603, -603, -603, -603, -603, -603, + -603, -603, -603, -603, 433, -603, 437, -603, -603, -603, + 406, 440, 451, 441, 452, 699, 699, 699, 699, 908, + 699, 2769, -603, 442, 232, 2053, -603, -5, 453, 2053, + 446, 457, 2053, -603, -603, 3, -603, -603, -603, -603, + 1330, 2115, 812, 812, 378, 378, 193, 193, -603, 2604, + 2800, 2815, 2942, 378, 378, 139, 139, 164, 164, 164, + -603, -603, 35, 2170, 454, -603, 3, 1313, 448, -603, + 486, 1056, -603, -603, -603, 1693, 2621, 455, -603, -603, + 3, 469, 472, 1313, 3183, 3183, 3183, 239, 239, 239, + 239, 458, 58, 239, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 1963, 2053, -603, -603, 2621, -603, 462, + 465, -603, 468, 164, -603, 479, 2053, -603, -603, -603, + 1313, 484, 486, 3, -603, 485, 486, -603, -603, 497, + 495, 500, 506, 699, -603, 2785, 2927, 532, 532, 496, + 496, 569, 569, -603, 2752, 2957, 2972, 2987, 200, 200, + 239, 239, 239, -603, -603, 116, 2189, 2053, -603, 2053, + 30, 2621, 1313, 504, 486, 3, -603, 3, 486, 515, + -603, 518, 239, 699, -603, -603, 118, 146, -603, 528, + 554, 486, 3, 3, 2053, 2053, 2769, -603, -603, -603, + 486, 3, 154, 168, 3, -603, -603 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 542, 0, 0, 0, 542, 5, 490, 486, 489, + 540, 492, 0, 0, 0, 0, 0, 0, 0, 488, + 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 436, 491, + 199, 264, 265, 267, 268, 253, 0, 281, 252, 279, + 274, 270, 271, 269, 273, 254, 0, 255, 272, 284, + 266, 542, 4, 201, 202, 203, 0, 243, 0, 198, + 261, 262, 263, 1, 20, 21, 0, 29, 0, 0, + 0, 0, 0, 0, 116, 542, 0, 6, 15, 7, + 18, 0, 13, 14, 16, 17, 31, 542, 542, 542, + 542, 542, 542, 0, 542, 542, 542, 216, 0, 454, + 0, 0, 215, 542, 542, 0, 0, 542, 542, 460, + 458, 459, 457, 199, 264, 265, 267, 268, 281, 279, + 274, 270, 269, 273, 272, 266, 0, 0, 401, 456, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 541, 542, 283, 280, 270, 276, 270, + 275, 278, 538, 539, 200, 277, 0, 542, 542, 542, + 542, 542, 220, 190, 542, 0, 241, 222, 204, 22, + 542, 0, 0, 542, 0, 25, 24, 23, 0, 0, + 19, 0, 259, 69, 207, 42, 32, 43, 33, 38, + 36, 40, 0, 41, 35, 0, 37, 39, 11, 0, + 0, 44, 209, 210, 211, 243, 0, 206, 0, 400, + 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 217, 542, 219, 218, 0, 0, 0, 0, 0, 0, + 0, 0, 485, 469, 470, 471, 472, 473, 474, 477, + 478, 484, 0, 466, 467, 468, 475, 476, 464, 465, + 461, 462, 463, 483, 482, 0, 0, 221, 282, 542, + 194, 191, 193, 192, 0, 542, 249, 0, 246, 245, + 242, 244, 0, 542, 542, 30, 0, 0, 542, 256, + 542, 0, 50, 260, 55, 57, 34, 0, 542, 208, + 542, 0, 285, 154, 0, 0, 47, 46, 0, 214, + 212, 440, 446, 442, 444, 445, 452, 0, 451, 441, + 448, 0, 447, 450, 453, 0, 449, 443, 437, 402, + 0, 481, 480, 195, 0, 0, 398, 397, 250, 239, + 205, 542, 0, 0, 227, 226, 0, 0, 258, 542, + 129, 130, 0, 0, 0, 0, 119, 120, 542, 128, + 118, 52, 0, 542, 0, 0, 542, 542, 171, 172, + 0, 542, 542, 542, 542, 0, 170, 542, 59, 0, + 542, 0, 8, 0, 542, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 542, 131, 0, 0, 455, 0, + 479, 542, 196, 247, 0, 223, 0, 0, 0, 0, + 228, 542, 0, 0, 0, 542, 122, 542, 124, 542, + 0, 180, 181, 0, 542, 542, 542, 542, 542, 542, + 179, 51, 542, 533, 529, 532, 542, 144, 0, 0, + 531, 0, 0, 0, 530, 0, 0, 0, 0, 0, + 0, 145, 148, 542, 169, 493, 534, 143, 0, 0, + 0, 0, 542, 176, 173, 175, 174, 65, 542, 12, + 542, 155, 286, 287, 285, 0, 542, 542, 0, 160, + 162, 159, 157, 0, 136, 133, 85, 86, 87, 88, + 89, 90, 93, 94, 109, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 113, 112, 96, + 95, 82, 84, 83, 91, 92, 80, 81, 77, 78, + 79, 76, 0, 0, 75, 132, 135, 134, 0, 0, + 0, 141, 542, 0, 48, 152, 213, 0, 0, 0, + 251, 0, 0, 0, 232, 535, 0, 231, 0, 230, + 0, 0, 0, 542, 229, 0, 0, 0, 257, 0, + 542, 0, 0, 114, 117, 115, 121, 542, 185, 182, + 184, 183, 0, 0, 542, 126, 150, 0, 53, 542, + 542, 0, 498, 0, 0, 503, 502, 501, 0, 0, + 500, 542, 147, 0, 542, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 542, 67, 177, 542, 0, 0, 289, 290, 292, + 291, 296, 293, 294, 295, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 352, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 542, 390, 391, 392, 383, 395, 379, 380, + 378, 385, 386, 374, 375, 376, 377, 384, 382, 389, + 387, 393, 388, 381, 394, 288, 0, 9, 0, 0, + 158, 161, 137, 111, 110, 140, 139, 153, 542, 0, + 0, 439, 438, 542, 248, 537, 238, 536, 237, 236, + 235, 234, 233, 225, 0, 26, 0, 123, 127, 125, + 186, 189, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 151, 403, 0, 0, 0, 167, 542, 0, 542, + 0, 0, 0, 528, 71, 56, 70, 146, 149, 166, + 512, 513, 514, 515, 516, 517, 520, 521, 527, 0, + 509, 510, 511, 518, 519, 507, 508, 504, 505, 506, + 526, 525, 0, 0, 0, 61, 58, 542, 0, 178, + 542, 0, 156, 10, 163, 542, 164, 0, 138, 49, + 197, 0, 0, 542, 0, 0, 0, 412, 410, 411, + 409, 0, 0, 408, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 54, 153, 168, 0, + 0, 497, 0, 494, 72, 0, 0, 524, 523, 63, + 542, 0, 542, 60, 396, 0, 542, 27, 28, 0, + 0, 0, 0, 0, 435, 421, 422, 423, 424, 425, + 426, 427, 428, 434, 0, 418, 419, 420, 416, 417, + 413, 414, 415, 433, 432, 0, 0, 0, 499, 0, + 0, 522, 542, 0, 542, 66, 165, 142, 542, 0, + 407, 0, 404, 0, 431, 430, 0, 0, 73, 0, + 0, 542, 68, 188, 0, 0, 429, 496, 495, 74, + 542, 62, 0, 0, 64, 406, 405 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -603, -603, -173, -603, 174, -603, -603, 507, -603, -603, + -80, 256, -603, -64, -603, -603, -108, 499, -603, -603, + -603, -603, -603, -603, -603, -602, -603, -603, 270, -603, + -603, -603, 279, 348, -335, -603, -352, -603, 131, -420, + -268, -485, -603, 105, -307, -311, -132, -40, 514, 263, + 15, -90, -603, -88, -603, -603, -603, 293, -84, -603, + -284, -603, -603, 19, 76, -603, -603, -603, 38, 102, + -603, -603, 236, -603, -3, -603, -435, -87, -19, 13, + 55, -141, -603, -603, -305, 491, -153, -1 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 4, 5, 391, 392, 88, 310, 89, 90, 190, + 91, 92, 318, 403, 200, 372, 441, 220, 373, 376, + 480, 900, 942, 634, 837, 805, 535, 574, 93, 198, + 365, 366, 367, 368, 404, 758, 460, 461, 585, 543, + 316, 488, 489, 462, 385, 439, 182, 61, 221, 109, + 62, 63, 293, 64, 294, 353, 354, 420, 65, 66, + 290, 286, 287, 67, 68, 94, 359, 95, 69, 70, + 71, 72, 389, 390, 482, 745, 345, 228, 229, 791, + 138, 38, 464, 465, 554, 405, 39, 230 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 6, 222, 749, 223, 96, 199, 164, 224, 350, 172, + 173, 231, 232, 233, 234, 235, 137, 237, 238, 239, + 298, 602, 587, 73, 470, 251, 244, 245, 97, 836, + 248, 249, 277, 371, 374, 172, 173, 442, 172, 173, + 469, 583, 110, 635, 252, 280, 281, 282, 283, 284, + 136, 98, 378, 379, 380, 306, 584, 37, 381, 549, + 183, 112, 494, 495, 99, 536, 537, 538, 172, 173, + 471, 251, 172, 173, 473, 474, 475, 476, 565, 251, + 894, 416, 417, 418, 96, 251, 119, 120, 121, 122, + 341, 139, 100, -224, 895, 382, -224, 566, 761, 111, + 251, 419, 201, 101, 762, 102, 795, 759, 187, 222, + 225, 223, 557, 559, 103, 224, 570, 603, 236, 803, + 351, 584, 546, 578, 579, 580, 581, 582, 636, 227, + 246, 247, 104, 628, 176, 589, 544, 387, 177, 105, + 172, 173, 275, 251, 375, 413, 756, 343, 414, 793, + 172, 173, 604, 168, 331, 170, 171, 958, 752, 383, + 175, 850, 897, 183, 384, 633, 251, 226, 148, 796, + 185, 193, 308, 106, 588, 178, 183, 183, 183, 183, + 183, 113, 45, 288, 809, 914, 425, -241, 114, 96, + 406, 115, 6, 148, 116, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 117, 276, 225, 118, + 466, 55, 148, 466, 251, 163, 251, 551, 57, 872, + 184, 552, 189, 168, 170, 171, 175, 227, 903, 179, + 172, 173, 396, 954, 180, 967, 397, 766, 563, 181, + 191, 768, 192, 769, 251, 770, 771, 772, 466, 157, + 158, 159, 251, 160, 161, 162, 780, 377, 872, 168, + 195, 168, 196, 968, 241, 226, 251, 197, 183, 797, + 250, 975, 838, 398, 347, 279, 629, 291, 160, 161, + 162, 292, 6, 355, 296, 976, 285, 96, 299, 370, + 945, 541, 542, 630, 947, 338, 339, 386, 300, 6, + 399, 155, 156, 157, 158, 159, 10, 160, 161, 162, + 879, 880, 881, 304, 882, 883, 884, 466, 629, 1, + 2, 3, 305, 463, 172, 173, 463, 317, 369, 629, + 346, 321, 962, 541, 542, 755, 963, 400, 251, 572, + 96, 322, 401, 323, 541, 542, 834, 402, 6, 971, + 905, 285, 344, 882, 883, 884, 327, 440, 974, 324, + 395, 463, 467, 477, 478, 467, 386, 888, 484, 485, + 386, 386, 386, 386, 632, 478, 96, 325, 547, 483, + 548, 541, 542, 491, 291, 410, 326, 146, 147, 748, + 328, 369, 329, 545, 584, 781, 847, 148, 590, 330, + 467, 431, 432, 433, 560, 561, 562, 434, 332, 312, + 6, 313, 314, 315, 96, 333, 440, 334, 96, 336, + 335, 337, 352, 440, 440, 440, 440, 440, 586, 599, + 463, 545, 792, 349, 356, 440, 357, 408, 388, 490, + 466, 412, 407, 409, 435, 411, -240, 421, 423, 442, + 422, 429, 440, 430, 567, 468, 472, 481, 369, 550, + 110, 386, 312, 598, 313, 539, 540, 347, 486, 467, + 493, 466, 222, 569, 223, 901, 491, 571, 224, 112, + 541, 542, 553, 553, 553, 84, 155, 156, 157, 158, + 159, 909, 160, 161, 162, 577, 591, 593, 291, 594, + 595, 596, 597, 601, 600, 870, 871, 478, 436, 631, + 751, 760, 750, 437, 753, 872, 754, 111, 438, 763, + 774, 775, 584, 346, 794, 799, 802, 804, 172, 173, + 756, 347, 490, 835, 839, 842, 840, 174, 943, 868, + 869, 870, 871, 844, 172, 173, 843, 848, 186, 188, + 851, 872, 96, 463, 852, 853, 855, 854, 856, 586, + 889, 194, 885, 891, 892, 902, 440, 202, 907, 899, + 45, 908, 906, 347, 777, 913, 779, 937, 545, 440, + 960, 225, 938, 939, 463, 757, 45, 346, 872, 240, + 806, 242, 243, 545, 940, 466, 798, 832, 800, 801, + 227, 944, 949, 946, 877, 878, 879, 880, 881, 55, + 882, 883, 884, 951, 948, 551, 57, 950, 553, 556, + 806, 961, 553, 467, 553, 55, 553, 553, 553, 346, + 964, 551, 57, 965, 792, 792, 792, 792, 226, 792, + 877, 878, 879, 880, 881, 969, 882, 883, 884, 747, + 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, + 830, 970, 833, 297, 466, 573, 886, 877, 878, 879, + 880, 881, 303, 882, 883, 884, 849, 295, 301, 575, + 466, 778, 7, 8, 9, 10, 309, 11, 808, 576, + 311, 427, 890, 302, 592, 564, 319, 320, 463, 841, + 746, 483, 0, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 0, 0, 0, 0, 0, 466, 0, 0, + 0, 0, 0, 782, 0, 0, 0, 467, 0, 0, + 0, 19, 806, 0, 0, 0, 0, 0, 0, 0, + 862, 0, 792, 0, 0, 172, 173, 348, 0, 0, + 0, 0, 0, 0, 0, 783, 0, 784, 0, 466, + 0, 28, 0, 0, 0, 0, 545, 463, 857, 858, + 859, 860, 0, 863, 861, 393, 846, 0, 0, 0, + 0, 0, 792, 463, 785, 0, 0, 45, 786, 787, + 0, 0, 788, 0, 789, 0, 0, 0, 790, 144, + 145, 146, 147, 0, 0, 0, 467, 0, 0, 806, + 0, 148, 0, 0, 491, 0, 0, 0, 424, 0, + 887, 0, 467, 426, 0, 428, 55, 893, 0, 0, + 463, 0, 551, 57, 935, 0, 558, 0, 0, 910, + 911, 912, 0, 0, 0, 0, 0, 915, 916, 917, + 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, + 928, 929, 930, 931, 932, 933, 0, 0, 0, 467, + 490, 806, 463, 0, 0, 806, 0, 555, 555, 555, + 0, 7, 8, 9, 10, 0, 11, 123, 956, 0, + 957, 0, 0, 0, 0, 0, 952, 0, 153, 154, + 155, 156, 157, 158, 159, 0, 160, 161, 162, 936, + 0, 467, 0, 806, 0, 972, 973, 806, 0, 0, + 0, 941, 0, 124, 0, 125, 126, 127, 45, 46, + 806, 128, 18, 0, 0, 48, 966, 0, 0, 806, + 19, 129, 0, 0, 0, 0, 393, 130, 131, 52, + 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, + 0, 0, 132, 133, 26, 0, 27, 55, 0, 0, + 28, 0, 0, 56, 57, 134, 0, 0, 59, 0, + 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, + 393, 34, 0, 35, 0, 0, 0, 36, 0, 0, + 0, 0, 765, 555, 767, 0, 0, 555, 0, 555, + 0, 555, 555, 555, 0, 0, 0, 0, 776, 637, + 638, 639, 640, 641, 642, 643, 644, 0, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 0, + 0, 0, 0, 0, 0, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 0, + 0, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 0, 681, 0, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 0, 0, 0, + 694, 695, 696, 0, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 0, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 0, 0, 0, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 904, 743, 744, 637, 638, 639, + 640, 641, 642, 643, 644, 0, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 0, 0, 0, + 0, 0, 0, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 0, 0, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 0, 681, 0, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 0, 0, 0, 694, 695, + 696, 0, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 0, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 0, 0, + 0, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 0, 743, 744, 0, 443, 444, 445, 10, + 0, 446, 40, 0, 0, 447, 0, 0, 0, 41, + 0, 42, 43, 44, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 0, 0, 50, 169, 52, 0, 0, 41, 148, + 42, 43, 44, 45, 448, 0, 47, 449, 53, 54, + 48, 0, 0, 0, 0, 450, 49, 0, 0, 0, + 0, 58, 50, 51, 52, 0, 60, 0, 0, 451, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 452, + 0, 453, 55, 0, 0, 454, 0, 0, 56, 57, + 58, 0, 0, 59, 0, 60, 443, 444, 445, 10, + 0, 446, 40, 0, 0, 807, 0, 0, 455, 0, + 0, 959, 456, 0, 0, 0, 457, 0, 458, 0, + 0, 0, 459, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 0, 160, 161, 162, 0, 41, 0, + 42, 43, 44, 45, 448, 0, 47, 449, 0, 0, + 48, 0, 0, 0, 0, 450, 49, 0, 0, 0, + 0, 0, 50, 51, 52, 0, 0, 0, 0, 451, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 452, + 0, 453, 55, 0, 0, 454, 0, 0, 56, 57, + 58, 0, 0, 59, 0, 60, 7, 8, 9, 10, + 0, 11, 12, 0, 0, 0, 0, 0, 455, 0, + 0, 0, 456, 0, 0, 0, 457, 0, 458, 0, + 0, 0, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 0, 0, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 28, 7, 8, 9, 10, + 29, 11, 12, 0, 0, 30, 0, 0, 0, 41, + 0, 42, 43, 44, 0, 0, 0, 165, 31, 0, + 0, 0, 32, 33, 0, 0, 34, 166, 35, 0, + 274, 0, 36, 50, 167, 52, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 53, 54, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 58, 21, 22, 0, 0, 60, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 28, 7, 8, 9, 10, + 29, 11, 12, 0, 0, 30, 0, 0, 0, 41, + 394, 42, 43, 44, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 0, 34, 278, 35, 0, + 0, 0, 36, 50, 169, 52, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 53, 54, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 58, 21, 22, 0, 0, 60, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 28, 7, 8, 9, 10, + 29, 11, 12, 0, 0, 30, 0, 0, 0, 0, + 487, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 0, 34, 0, 35, 0, + 0, 0, 36, 0, 0, 0, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 0, 0, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 28, 7, 8, 9, 10, + 29, 11, 12, 0, 0, 30, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 0, 34, 0, 35, 0, + 831, 0, 36, 0, 0, 0, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 0, 0, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 28, 7, 8, 9, 10, + 29, 11, 12, 0, 0, 30, 0, 0, 0, 0, + 845, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 0, 34, 0, 35, 0, + 0, 0, 36, 0, 0, 0, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 0, 0, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 28, 7, 8, 9, 10, + 29, 11, 12, 0, 0, 30, 0, 0, 0, 41, + 0, 42, 43, 44, 0, 0, 0, 165, 31, 0, + 0, 0, 32, 33, 0, 0, 34, 166, 35, 0, + 934, 0, 36, 50, 167, 52, 0, 0, 13, 0, + 14, 15, 16, 0, 0, 0, 17, 18, 53, 54, + 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, + 0, 58, 21, 22, 0, 0, 60, 0, 0, 23, + 142, 143, 144, 145, 146, 147, 0, 24, 25, 26, + 0, 27, 0, 0, 148, 28, 0, 0, 0, 106, + 29, 0, 0, 0, 0, 30, 0, 0, 140, 141, + 142, 143, 144, 145, 146, 147, 0, 0, 31, 0, + 0, 0, 32, 33, 148, 0, 34, 0, 35, 0, + 0, 0, 36, 140, 141, 142, 143, 144, 145, 146, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 0, 0, 140, 141, 142, 143, 144, 145, 146, 147, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 0, 160, + 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 0, 160, + 161, 162, 0, 0, 0, 342, 0, 0, 0, 0, + 0, 0, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 0, 160, 161, 162, 0, 0, 0, + 898, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 0, 160, 161, 162, 360, 361, 0, 955, + 496, 497, 498, 499, 500, 501, 502, 503, 0, 0, + 0, 0, 0, 0, 0, 0, 504, 0, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 0, 0, 0, 41, 0, 42, 43, 44, 0, 517, + 0, 47, 41, 0, 42, 43, 44, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 50, 51, 52, + 0, 0, 0, 518, 0, 0, 50, 169, 52, 0, + 0, 0, 53, 54, 0, 0, 0, 0, 203, 204, + 0, 53, 54, 0, 0, 58, 0, 0, 59, 0, + 60, 0, 0, 0, 58, 519, 0, 0, 520, 60, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 0, 532, 533, 205, 41, 534, 42, 43, 44, + 45, 206, 113, 47, 0, 0, 0, 48, 207, 208, + 209, 0, 0, 49, 0, 0, 0, 0, 210, 50, + 51, 52, 0, 0, 211, 203, 204, 0, 212, 0, + 0, 0, 213, 0, 53, 54, 0, 214, 0, 55, + 0, 0, 0, 0, 0, 215, 57, 58, 0, 216, + 59, 217, 60, 0, 0, 0, 0, 218, 0, 0, + 0, 205, 41, 0, 42, 43, 44, 45, 206, 0, + 47, 0, 0, 219, 48, 207, 208, 209, 0, 0, + 49, 0, 0, 0, 0, 210, 50, 51, 52, 0, + 0, 211, 0, 0, 0, 212, 0, 0, 0, 213, + 0, 53, 54, 0, 214, 0, 55, 0, 0, 0, + 0, 0, 215, 57, 58, 0, 216, 59, 217, 60, + 140, 141, 142, 143, 144, 145, 146, 147, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 219, 140, 141, 142, 143, 144, 145, 146, 147, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, + 140, 141, 142, 143, 144, 145, 146, 147, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 140, 141, 142, + 143, 144, 145, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 140, 141, 142, 143, 144, 145, + 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 148, 0, 0, 0, 0, 0, 0, 340, 0, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 0, 160, 161, 162, 0, 0, 0, 492, 0, 0, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 0, 160, 161, 162, 764, 0, 0, 0, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 0, 160, 161, 162, 896, 0, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 0, 160, 161, + 162, 0, 0, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 0, 160, 161, 162, 605, 606, + 607, 608, 609, 610, 611, 612, 0, 0, 0, 0, + 0, 0, 0, 0, 613, 864, 865, 866, 867, 868, + 869, 870, 871, 0, 0, 0, 0, 0, 0, 0, + 0, 872, 864, 865, 866, 867, 868, 869, 870, 871, + 0, 0, 0, 0, 0, 0, 0, 0, 872, 865, + 866, 867, 868, 869, 870, 871, 0, 0, 0, 0, + 0, 0, 0, 0, 872, 142, 143, 144, 145, 146, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 142, 143, 144, 145, 146, 147, 0, 0, 0, 0, + 0, 0, 0, 0, 148, 0, 0, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 0, 625, + 626, 627, 953, 0, 873, 874, 875, 876, 0, 0, + 877, 878, 879, 880, 881, 0, 882, 883, 884, 0, + 0, 873, 874, 875, 876, 0, 0, 877, 878, 879, + 880, 881, 0, 882, 883, 884, 0, 0, 874, 875, + 876, 0, 0, 877, 878, 879, 880, 881, 0, 882, + 883, 884, 0, 0, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 0, 160, 161, 162, 0, 0, 0, + 152, 153, 154, 155, 156, 157, 158, 159, 0, 160, + 161, 162, 866, 867, 868, 869, 870, 871, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 142, 143, 144, + 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 148, 866, 867, 868, 869, 870, 871, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 866, 867, 868, + 869, 870, 871, 0, 0, 0, 0, 0, 0, 0, + 0, 872, 866, 867, 868, 869, 870, 871, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 874, 875, 876, 0, 0, 877, 878, 879, 880, 881, + 0, 882, 883, 884, 0, 0, 0, 0, 153, 154, + 155, 156, 157, 158, 159, 0, 160, 161, 162, 0, + 0, 875, 876, -2, 0, 877, 878, 879, 880, 881, + 0, 882, 883, 884, 0, 0, 0, 876, 0, 0, + 877, 878, 879, 880, 881, 0, 882, 883, 884, 41, + 0, 42, 43, 44, 0, 877, 878, 879, 880, 881, + 0, 882, 883, 884, 0, 0, 74, 0, 0, 0, + 0, 0, 0, 50, 169, 52, 289, 0, 0, 75, + 0, 0, 0, 0, 76, 360, 361, 77, 53, 54, + 0, 0, 0, 0, 0, 78, 79, 0, 80, 0, + 0, 58, 81, 82, 83, 0, 60, 0, 0, 0, + 0, 0, 41, 84, 42, 43, 44, 85, 0, 0, + 0, 86, 41, 0, 42, 43, 44, 362, 363, 114, + 47, 0, 87, 0, 0, 0, 50, 169, 52, 0, + 49, 0, 40, 0, 0, 0, 50, 51, 52, 0, + 0, 53, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 54, 0, 58, 0, 0, 0, 0, 60, + 0, 0, 364, 0, 58, 0, 0, 59, 41, 60, + 42, 43, 44, 45, 46, 0, 47, 0, 0, 0, + 48, 0, 0, 0, 0, 0, 49, 0, 40, 0, + 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, + 0, 0, 55, 41, 0, 42, 43, 44, 56, 57, + 58, 0, 0, 59, 41, 60, 42, 43, 44, 45, + 307, 0, 47, 0, 0, 0, 48, 50, 169, 52, + 0, 0, 49, 0, 107, 0, 0, 0, 50, 51, + 52, 0, 53, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 54, 58, 0, 0, 55, 0, + 60, 0, 0, 0, 56, 57, 58, 0, 0, 59, + 41, 60, 42, 43, 44, 45, 0, 0, 47, 0, + 0, 0, 48, 117, 0, 0, 0, 0, 49, 0, + 40, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 108, 57, 58, 0, 0, 59, 41, 60, 42, 43, + 44, 45, 0, 0, 47, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, + 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 74, 0, 0, 0, 53, 54, 0, 0, 0, + 55, 0, 0, 0, 75, 0, 56, 57, 58, 76, + 0, 59, 77, 60, 0, 0, 0, 0, 74, 0, + 78, 79, 0, 80, 0, 0, 0, 81, 82, 83, + 0, 75, 0, 0, 0, 0, 76, 0, 84, 77, + 0, 0, 85, 0, 0, 74, 86, 78, 79, 0, + 80, 0, 0, 0, 81, 82, 83, 87, 75, 0, + 0, 0, 0, 76, 0, 84, 77, 0, 0, 85, + 0, 0, 74, 86, 78, 79, 358, 80, 0, 0, + 0, 81, 82, 83, 87, 75, 0, 0, 0, 0, + 76, 0, 84, 77, 0, 0, 85, 0, 0, 74, + 86, 78, 79, 415, 80, 0, 0, 0, 81, 82, + 83, 87, 75, 0, 0, 0, 0, 76, 0, 84, + 77, 0, 0, 85, 0, 0, 74, 86, 78, 79, + 479, 80, 0, 0, 0, 81, 82, 83, 87, 75, + 0, 0, 0, 0, 76, 0, 84, 77, 0, 0, + 85, 0, 0, 0, 86, 78, 79, 568, 80, 0, + 0, 0, 81, 82, 83, 87, 0, 0, 0, 0, + 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, + 0, 86, 0, 0, 773 +}; static const yytype_int16 yycheck[] = { - 1, 35, 2, 91, 5, 293, 495, 91, 91, 85, - 111, 23, 23, 486, 23, 194, 108, 380, 12, 432, - 303, 35, 10, 8, 9, 126, 439, 440, 441, 442, - 443, 31, 32, 33, 34, 127, 36, 8, 9, 452, - 108, 46, 99, 100, 101, 102, 103, 108, 105, 106, - 107, 209, 0, 416, 108, 448, 469, 114, 115, 127, - 61, 118, 119, 422, 423, 125, 127, 8, 9, 376, - 8, 9, 379, 127, 381, 108, 111, 550, 29, 91, - 91, 125, 91, 4, 85, 478, 107, 8, 9, 110, - 104, 126, 8, 9, 127, 402, 403, 125, 405, 406, - 407, 382, 116, 117, 77, 386, 387, 388, 389, 125, - 8, 9, 200, 116, 108, 294, 200, 200, 91, 592, - 6, 108, 107, 411, 107, 488, 409, 110, 162, 10, - 126, 127, 120, 14, 313, 125, 107, 75, 116, 446, - 127, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 125, 163, 165, 448, 108, 474, 125, 111, - 51, 125, 585, 124, 125, 126, 125, 178, 179, 180, - 181, 182, 125, 362, 185, 242, 127, 600, 200, 200, - 191, 200, 125, 194, 501, 478, 125, 126, 108, 480, - 125, 560, 207, 596, 108, 564, 599, 566, 213, 568, - 569, 570, 110, 56, 8, 9, 10, 127, 125, 377, - 14, 614, 380, 127, 67, 68, 108, 8, 9, 10, - 8, 9, 10, 14, 115, 108, 14, 80, 125, 120, - 79, 80, 81, 86, 125, 127, 107, 426, 165, 125, - 29, 251, 252, 110, 127, 107, 108, 51, 416, 108, - 99, 178, 179, 180, 181, 182, 109, 125, 111, 112, - 51, 125, 107, 51, 109, 110, 111, 108, 127, 280, - 108, 125, 126, 646, 78, 286, 286, 110, 110, 301, - 125, 126, 110, 294, 295, 110, 127, 302, 299, 127, - 301, 127, 125, 126, 127, 310, 104, 105, 106, 29, - 311, 120, 313, 596, 79, 80, 81, 110, 318, 125, - 126, 115, 126, 641, 8, 107, 120, 109, 110, 111, - 488, 125, 107, 116, 115, 126, 127, 115, 125, 120, - 8, 9, 120, 343, 125, 124, 125, 126, 125, 110, - 193, 6, 110, 354, 366, 109, 127, 108, 434, 202, - 127, 362, 117, 280, 125, 126, 127, 125, 126, 127, - 371, 860, 377, 216, 127, 380, 377, 220, 412, 380, - 414, 382, 50, 226, 227, 386, 387, 388, 389, 127, - 127, 392, 127, 127, 395, 127, 127, 127, 399, 399, - 120, 121, 122, 127, 124, 125, 126, 770, 409, 127, - 117, 416, 421, 422, 423, 416, 127, 29, 811, 419, - 128, 89, 127, 435, 110, 426, 108, 95, 96, 430, - 464, 432, 108, 434, 125, 29, 125, 494, 439, 440, - 441, 442, 443, 444, 287, 457, 457, 448, 457, 454, - 464, 452, 127, 125, 125, 613, 130, 775, 107, 107, - 8, 461, 462, 463, 108, 465, 117, 108, 469, 128, - 120, 125, 108, 120, 317, 120, 111, 478, 111, 480, - 90, 120, 116, 488, 127, 486, 486, 488, 646, 852, - 116, 128, 580, 125, 495, 495, 580, 580, 127, 126, - 108, 808, 127, 108, 127, 868, 118, 119, 120, 121, - 122, 130, 124, 125, 126, 8, 109, 360, 108, 126, - 51, 125, 365, 4, 367, 127, 120, 121, 122, 591, - 124, 125, 126, 125, 108, 130, 127, 855, 108, 128, - 127, 116, 128, 127, 851, 130, 127, 125, 548, 550, - 550, 560, 125, 916, 116, 564, 117, 566, 130, 568, - 569, 570, 29, 577, 127, 579, 117, 125, 580, 580, - 571, 580, 127, 127, 109, 109, 125, 578, 421, 422, - 423, 127, 127, 125, 585, 125, 127, 601, 127, 603, - 604, 592, 592, 117, 901, 596, 128, 960, 599, 600, - 127, 919, 636, 117, 127, 923, 125, 125, 613, 493, - 611, 127, 770, 614, 127, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 772, 637, 191, 434, - 641, 646, 851, 808, 962, 646, 19, 20, 966, 901, - 493, 118, 119, 120, 121, 122, 29, 124, 125, 126, - 51, 979, 53, 54, 200, 434, 366, 58, 613, 435, - 988, 200, 578, 8, 9, 427, 492, 457, 734, 15, - 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, - -1, -1, -1, 29, 852, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 547, -1, -1, -1, -1, -1, - 868, -1, -1, -1, -1, 50, 559, 560, 561, -1, - -1, 564, -1, 566, -1, 568, 569, 570, -1, -1, - -1, -1, 575, 734, -1, 797, 798, 799, 800, -1, - 802, 132, 133, 134, 135, 118, 119, 120, 121, 122, - -1, 124, 125, 126, 89, -1, 813, -1, 916, -1, - 95, 96, -1, 763, 99, 770, -1, 801, -1, 770, - -1, -1, -1, -1, 775, -1, -1, 168, -1, 170, - 116, 117, 118, 119, 120, 121, 122, 801, 124, 125, - 126, -1, -1, -1, -1, 186, -1, -1, 797, 798, - 799, 800, 960, 802, -1, -1, -1, -1, -1, 809, - 811, -1, -1, -1, -1, -1, 816, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, 852, -1, -1, - 29, 852, -1, -1, 855, 869, 870, 871, -1, 860, - 860, -1, -1, 868, 898, -1, -1, 868, 930, -1, - -1, -1, -1, -1, -1, 8, 9, -1, -1, -1, - 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 899, - -1, -1, 293, -1, -1, -1, -1, -1, -1, 971, - -1, 916, 912, -1, -1, 916, -1, 50, 919, -1, - -1, 955, 923, 957, -1, -1, -1, -1, -1, -1, - -1, 930, -1, -1, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, -1, 124, 125, 126, 982, 983, - -1, -1, -1, -1, -1, 960, 89, -1, -1, 960, - -1, 962, 95, 96, -1, 966, 99, -1, -1, -1, - -1, -1, 971, -1, -1, -1, -1, -1, 979, 3, - 4, 5, 6, 7, 8, 9, 10, 988, 12, 13, + 1, 91, 487, 91, 5, 85, 46, 91, 292, 8, + 9, 98, 99, 100, 101, 102, 35, 104, 105, 106, + 193, 12, 442, 0, 376, 108, 113, 114, 125, 631, + 117, 118, 164, 301, 10, 8, 9, 372, 8, 9, + 375, 111, 23, 478, 127, 177, 178, 179, 180, 181, + 35, 125, 8, 9, 10, 208, 126, 2, 14, 411, + 61, 23, 397, 398, 125, 400, 401, 402, 8, 9, + 377, 108, 8, 9, 381, 382, 383, 384, 108, 108, + 77, 79, 80, 81, 85, 108, 31, 32, 33, 34, + 127, 36, 125, 107, 91, 51, 110, 127, 127, 23, + 108, 99, 75, 125, 127, 125, 111, 542, 107, 199, + 91, 199, 417, 418, 116, 199, 427, 108, 103, 127, + 293, 126, 406, 434, 435, 436, 437, 438, 480, 91, + 115, 116, 125, 468, 10, 446, 404, 310, 14, 125, + 8, 9, 161, 108, 120, 108, 4, 279, 111, 584, + 8, 9, 463, 51, 241, 53, 54, 127, 493, 115, + 58, 763, 127, 164, 120, 472, 108, 91, 29, 589, + 110, 107, 212, 125, 442, 51, 177, 178, 179, 180, + 181, 125, 50, 184, 604, 127, 359, 107, 125, 190, + 110, 125, 193, 29, 116, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 125, 162, 199, 125, + 373, 89, 29, 376, 108, 6, 108, 95, 96, 29, + 107, 99, 110, 131, 132, 133, 134, 199, 840, 115, + 8, 9, 10, 127, 120, 127, 14, 552, 421, 125, + 125, 556, 125, 558, 108, 560, 561, 562, 411, 120, + 121, 122, 108, 124, 125, 126, 577, 307, 29, 167, + 110, 169, 110, 127, 125, 199, 108, 110, 279, 590, + 127, 127, 634, 51, 285, 120, 110, 185, 124, 125, + 126, 110, 293, 294, 8, 127, 126, 298, 107, 300, + 902, 125, 126, 127, 906, 250, 251, 308, 116, 310, + 78, 118, 119, 120, 121, 122, 6, 124, 125, 126, + 120, 121, 122, 125, 124, 125, 126, 480, 110, 104, + 105, 106, 125, 373, 8, 9, 376, 109, 300, 110, + 285, 127, 944, 125, 126, 127, 948, 115, 108, 429, + 351, 127, 120, 127, 125, 126, 127, 125, 359, 961, + 845, 126, 127, 124, 125, 126, 117, 368, 970, 127, + 315, 411, 373, 125, 126, 376, 377, 797, 107, 108, + 381, 382, 383, 384, 125, 126, 387, 127, 407, 390, + 409, 125, 126, 394, 292, 340, 127, 19, 20, 486, + 127, 363, 127, 404, 126, 127, 758, 29, 448, 127, + 411, 8, 9, 10, 79, 80, 81, 14, 127, 107, + 421, 109, 110, 111, 425, 127, 427, 127, 429, 127, + 117, 127, 110, 434, 435, 436, 437, 438, 439, 458, + 480, 442, 583, 128, 108, 446, 108, 127, 125, 394, + 603, 130, 125, 125, 51, 125, 107, 107, 8, 794, + 108, 117, 463, 108, 108, 120, 120, 128, 430, 414, + 451, 472, 107, 458, 109, 110, 111, 478, 125, 480, + 120, 634, 572, 111, 572, 837, 487, 111, 572, 451, + 125, 126, 416, 417, 418, 90, 118, 119, 120, 121, + 122, 853, 124, 125, 126, 120, 116, 125, 406, 116, + 455, 456, 457, 127, 459, 19, 20, 126, 115, 127, + 108, 108, 128, 120, 127, 29, 130, 451, 125, 127, + 8, 109, 126, 478, 108, 125, 127, 51, 8, 9, + 4, 542, 487, 125, 130, 128, 127, 56, 900, 17, + 18, 19, 20, 128, 8, 9, 127, 130, 67, 68, + 127, 29, 563, 603, 127, 125, 125, 116, 116, 570, + 117, 80, 130, 127, 117, 127, 577, 86, 109, 125, + 50, 109, 127, 584, 569, 127, 571, 125, 589, 590, + 942, 572, 127, 125, 634, 540, 50, 542, 29, 108, + 601, 110, 111, 604, 125, 758, 591, 626, 593, 594, + 572, 127, 117, 128, 118, 119, 120, 121, 122, 89, + 124, 125, 126, 117, 127, 95, 96, 127, 552, 99, + 631, 127, 556, 634, 558, 89, 560, 561, 562, 584, + 125, 95, 96, 125, 785, 786, 787, 788, 572, 790, + 118, 119, 120, 121, 122, 127, 124, 125, 126, 485, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 127, 627, 192, 837, 429, 794, 118, 119, 120, + 121, 122, 201, 124, 125, 126, 760, 190, 199, 429, + 853, 570, 3, 4, 5, 6, 215, 8, 603, 430, + 219, 363, 799, 199, 451, 422, 225, 226, 758, 722, + 484, 722, -1, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, + 881, 882, -1, -1, -1, -1, -1, 900, -1, -1, + -1, -1, -1, 54, -1, -1, -1, 758, -1, -1, + -1, 62, 763, -1, -1, -1, -1, -1, -1, -1, + 789, -1, 913, -1, -1, 8, 9, 286, -1, -1, + -1, -1, -1, -1, -1, 86, -1, 88, -1, 942, + -1, 92, -1, -1, -1, -1, 797, 837, 785, 786, + 787, 788, -1, 790, 789, 314, 751, -1, -1, -1, + -1, -1, 953, 853, 115, -1, -1, 50, 119, 120, + -1, -1, 123, -1, 125, -1, -1, -1, 129, 17, + 18, 19, 20, -1, -1, -1, 837, -1, -1, 840, + -1, 29, -1, -1, 845, -1, -1, -1, 357, -1, + 795, -1, 853, 362, -1, 364, 89, 802, -1, -1, + 900, -1, 95, 96, 883, -1, 99, -1, -1, 854, + 855, 856, -1, -1, -1, -1, -1, 864, 865, 866, + 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, + 877, 878, 879, 880, 881, 882, -1, -1, -1, 900, + 845, 902, 942, -1, -1, 906, -1, 416, 417, 418, + -1, 3, 4, 5, 6, -1, 8, 9, 937, -1, + 939, -1, -1, -1, -1, -1, 913, -1, 116, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 884, + -1, 942, -1, 944, -1, 964, 965, 948, -1, -1, + -1, 896, -1, 45, -1, 47, 48, 49, 50, 51, + 961, 53, 54, -1, -1, 57, 953, -1, -1, 970, + 62, 63, -1, -1, -1, -1, 485, 69, 70, 71, + -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, + 92, -1, -1, 95, 96, 97, -1, -1, 100, -1, + 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 115, -1, -1, -1, 119, 120, -1, + 539, 123, -1, 125, -1, -1, -1, 129, -1, -1, + -1, -1, 551, 552, 553, -1, -1, 556, -1, 558, + -1, 560, 561, 562, -1, -1, -1, -1, 567, 3, + 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, -1, - 411, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, -1, 74, 75, 76, -1, 78, 79, 80, 81, 82, 83, @@ -2073,7 +1713,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 3, 4, 5, - 6, 7, 8, 9, 10, 958, 12, 13, 14, 15, + 6, 7, 8, 9, 10, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, -1, -1, 45, @@ -2082,383 +1722,477 @@ static const yytype_int16 yycheck[] = 66, 67, 68, 69, 70, -1, -1, -1, 74, 75, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, -1, 8, - 9, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, -1, 129, 130, 3, 4, 5, 6, -1, - 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, 45, 29, 47, - 48, 49, 50, 51, -1, 53, 54, -1, -1, 57, - 89, -1, -1, -1, 62, 63, 95, 96, -1, -1, - 99, 69, 70, 71, -1, -1, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, 89, -1, -1, 92, -1, -1, 95, 96, 97, - -1, -1, 100, -1, 102, 3, 4, 5, 6, -1, - 8, 9, -1, -1, 12, -1, -1, 115, -1, -1, - -1, 119, 120, -1, -1, 123, -1, 125, -1, -1, - -1, 129, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, -1, 124, 125, 126, -1, 45, -1, 47, - 48, 49, 50, 51, -1, 53, 54, -1, -1, 57, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - -1, 69, 70, 71, -1, -1, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, 89, -1, -1, 92, -1, -1, 95, 96, 97, - -1, -1, 100, -1, 102, 3, 4, 5, 6, -1, - 8, 9, -1, -1, 12, -1, -1, 115, -1, -1, - -1, 119, -1, -1, -1, 123, -1, 125, -1, -1, - -1, 129, -1, 14, 15, 16, 17, 18, 19, 20, - -1, 3, 4, 5, 6, -1, 8, 45, 29, 47, - 48, 49, 50, 51, -1, 53, 54, -1, -1, 57, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - -1, 69, 70, 71, 19, 20, -1, -1, 76, -1, - -1, -1, -1, -1, 29, -1, 84, 85, 86, -1, - 88, 89, 54, -1, 92, -1, -1, 95, 96, 97, - 62, -1, 100, -1, 102, 3, 4, 5, 6, -1, - 8, 9, -1, -1, -1, -1, -1, 115, -1, -1, - -1, 119, -1, -1, 86, 123, 88, 125, -1, -1, - 92, 129, 113, 114, 115, -1, -1, 118, 119, 120, - 121, 122, -1, 124, 125, 126, -1, 45, -1, 47, - 48, 49, -1, 115, -1, 53, 54, 119, 120, -1, - -1, 123, -1, 125, 62, 63, -1, 129, -1, -1, - -1, 69, 70, 118, 119, 120, 121, 122, 76, 124, - 125, 126, -1, -1, -1, -1, 84, 85, 86, -1, - 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, - 8, 9, -1, -1, 102, -1, -1, -1, 45, -1, - 47, 48, 49, -1, -1, -1, 53, 115, -1, -1, - -1, 119, 120, -1, -1, 123, 63, 125, -1, 127, - -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - 97, 69, 70, -1, -1, 102, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, - 8, 9, -1, -1, 102, -1, -1, -1, 45, 107, - 47, 48, 49, -1, -1, -1, -1, 115, -1, -1, - -1, 119, 120, -1, -1, 123, 63, 125, -1, -1, - -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - 97, 69, 70, -1, -1, 102, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, - 8, 9, -1, -1, 102, -1, -1, -1, 45, 107, - 47, 48, 49, -1, -1, -1, -1, 115, -1, -1, - -1, 119, 120, -1, -1, 123, -1, 125, -1, -1, - -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - 97, 69, 70, -1, -1, 102, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, - 8, 9, -1, -1, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, - -1, 119, 120, -1, -1, 123, -1, 125, -1, 127, - -1, 129, -1, -1, -1, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - -1, 69, 70, -1, -1, -1, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, - 8, 9, -1, -1, 102, -1, -1, -1, -1, 107, - -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, - -1, 119, 120, -1, -1, 123, -1, 125, -1, -1, - -1, 129, -1, -1, -1, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - -1, 69, 70, -1, -1, -1, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, - 8, 9, -1, -1, 102, -1, -1, -1, 45, -1, - 47, 48, 49, -1, -1, -1, 53, 115, -1, -1, - -1, 119, 120, -1, -1, 123, 63, 125, -1, 127, - -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, - 97, 69, 70, -1, -1, 102, -1, -1, 76, 15, - 16, 17, 18, 19, 20, -1, 84, 85, 86, -1, - 88, -1, -1, 29, 92, -1, -1, -1, 125, 97, - -1, -1, -1, -1, 102, -1, -1, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, 115, -1, -1, - -1, 119, 120, 29, -1, 123, -1, 125, -1, -1, - -1, 129, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, - 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, - 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, - 126, -1, -1, -1, 130, -1, -1, -1, -1, -1, - -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, -1, 124, 125, 126, -1, -1, -1, 130, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, -1, 124, 125, 126, 8, 9, -1, 130, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, -1, 29, -1, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, -1, - -1, -1, 45, -1, 47, 48, 49, -1, 52, -1, - 53, 45, -1, 47, 48, 49, -1, -1, -1, -1, - 63, -1, -1, -1, -1, -1, 69, 70, 71, -1, - -1, -1, 76, -1, -1, 69, 70, 71, -1, -1, - -1, 84, 85, -1, -1, -1, -1, 8, 9, -1, - 84, 85, -1, -1, 97, -1, -1, 100, -1, 102, - -1, -1, -1, 97, 108, -1, -1, 111, 102, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - -1, 125, 126, 44, 45, 129, 47, 48, 49, 50, - 51, 125, 53, -1, -1, -1, 57, 58, 59, 60, - -1, -1, 63, -1, -1, -1, -1, 68, 69, 70, - 71, -1, -1, 74, 8, 9, -1, 78, -1, -1, - -1, 82, -1, 84, 85, -1, 87, -1, 89, -1, - -1, -1, -1, -1, 95, 96, 97, -1, 99, 100, - 101, 102, -1, -1, -1, -1, 107, -1, -1, -1, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - -1, -1, 123, 57, 58, 59, 60, -1, -1, 63, - -1, -1, -1, -1, 68, 69, 70, 71, -1, -1, - 74, 8, 9, -1, 78, -1, -1, -1, 82, -1, - 84, 85, -1, 87, -1, 89, -1, -1, -1, -1, - -1, 95, 96, 97, -1, 99, 100, 101, 102, 13, - 14, 15, 16, 17, 18, 19, 20, 44, 45, -1, - 47, 48, 49, 50, 51, 29, 53, -1, -1, 123, - 57, 58, 59, 60, -1, -1, 63, -1, -1, -1, - -1, 68, 69, 70, 71, -1, -1, 74, -1, -1, - -1, 78, -1, -1, -1, 82, -1, 84, 85, -1, - 87, -1, 89, -1, -1, -1, -1, -1, 95, 96, - 97, -1, 99, 100, 101, 102, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 123, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 110, -1, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, - 124, 125, 126, 13, 14, 15, 16, 17, 18, 19, + 126, 127, -1, 129, 130, -1, 3, 4, 5, 6, + -1, 8, 9, -1, -1, 12, -1, -1, -1, 45, + -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, + 20, -1, -1, 69, 70, 71, -1, -1, 45, 29, + 47, 48, 49, 50, 51, -1, 53, 54, 84, 85, + 57, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, 97, 69, 70, 71, -1, 102, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, 89, -1, -1, 92, -1, -1, 95, 96, + 97, -1, -1, 100, -1, 102, 3, 4, 5, 6, + -1, 8, 9, -1, -1, 12, -1, -1, 115, -1, + -1, 940, 119, -1, -1, -1, 123, -1, 125, -1, + -1, -1, 129, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, -1, 45, -1, + 47, 48, 49, 50, 51, -1, 53, 54, -1, -1, + 57, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, -1, 69, 70, 71, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, 89, -1, -1, 92, -1, -1, 95, 96, + 97, -1, -1, 100, -1, 102, 3, 4, 5, 6, + -1, 8, 9, -1, -1, -1, -1, -1, 115, -1, + -1, -1, 119, -1, -1, -1, 123, -1, 125, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, -1, 69, 70, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, -1, -1, -1, 92, 3, 4, 5, 6, + 97, 8, 9, -1, -1, 102, -1, -1, -1, 45, + -1, 47, 48, 49, -1, -1, -1, 53, 115, -1, + -1, -1, 119, 120, -1, -1, 123, 63, 125, -1, + 127, -1, 129, 69, 70, 71, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, 84, 85, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, 97, 69, 70, -1, -1, 102, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, -1, -1, -1, 92, 3, 4, 5, 6, + 97, 8, 9, -1, -1, 102, -1, -1, -1, 45, + 107, 47, 48, 49, -1, -1, -1, -1, 115, -1, + -1, -1, 119, 120, -1, -1, 123, 63, 125, -1, + -1, -1, 129, 69, 70, 71, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, 84, 85, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, 97, 69, 70, -1, -1, 102, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, -1, -1, -1, 92, 3, 4, 5, 6, + 97, 8, 9, -1, -1, 102, -1, -1, -1, -1, + 107, -1, -1, -1, -1, -1, -1, -1, 115, -1, + -1, -1, 119, 120, -1, -1, 123, -1, 125, -1, + -1, -1, 129, -1, -1, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, -1, 69, 70, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, -1, -1, -1, 92, 3, 4, 5, 6, + 97, 8, 9, -1, -1, 102, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, + -1, -1, 119, 120, -1, -1, 123, -1, 125, -1, + 127, -1, 129, -1, -1, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, -1, 69, 70, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, -1, -1, -1, 92, 3, 4, 5, 6, + 97, 8, 9, -1, -1, 102, -1, -1, -1, -1, + 107, -1, -1, -1, -1, -1, -1, -1, 115, -1, + -1, -1, 119, 120, -1, -1, 123, -1, 125, -1, + -1, -1, 129, -1, -1, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, -1, 69, 70, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + -1, 88, -1, -1, -1, 92, 3, 4, 5, 6, + 97, 8, 9, -1, -1, 102, -1, -1, -1, 45, + -1, 47, 48, 49, -1, -1, -1, 53, 115, -1, + -1, -1, 119, 120, -1, -1, 123, 63, 125, -1, + 127, -1, 129, 69, 70, 71, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 54, 84, 85, + -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, + -1, 97, 69, 70, -1, -1, 102, -1, -1, 76, + 15, 16, 17, 18, 19, 20, -1, 84, 85, 86, + -1, 88, -1, -1, 29, 92, -1, -1, -1, 125, + 97, -1, -1, -1, -1, 102, -1, -1, 13, 14, + 15, 16, 17, 18, 19, 20, -1, -1, 115, -1, + -1, -1, 119, 120, 29, -1, 123, -1, 125, -1, + -1, -1, 129, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, + -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, -1, -1, -1, + 130, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 8, 9, -1, 130, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + -1, -1, -1, 45, -1, 47, 48, 49, -1, 52, + -1, 53, 45, -1, 47, 48, 49, -1, -1, -1, + -1, 63, -1, -1, -1, -1, -1, 69, 70, 71, + -1, -1, -1, 76, -1, -1, 69, 70, 71, -1, + -1, -1, 84, 85, -1, -1, -1, -1, 8, 9, + -1, 84, 85, -1, -1, 97, -1, -1, 100, -1, + 102, -1, -1, -1, 97, 108, -1, -1, 111, 102, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, -1, 125, 126, 44, 45, 129, 47, 48, 49, + 50, 51, 125, 53, -1, -1, -1, 57, 58, 59, + 60, -1, -1, 63, -1, -1, -1, -1, 68, 69, + 70, 71, -1, -1, 74, 8, 9, -1, 78, -1, + -1, -1, 82, -1, 84, 85, -1, 87, -1, 89, + -1, -1, -1, -1, -1, 95, 96, 97, -1, 99, + 100, 101, 102, -1, -1, -1, -1, 107, -1, -1, + -1, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, -1, -1, 123, 57, 58, 59, 60, -1, -1, + 63, -1, -1, -1, -1, 68, 69, 70, 71, -1, + -1, 74, -1, -1, -1, 78, -1, -1, -1, 82, + -1, 84, 85, -1, 87, -1, 89, -1, -1, -1, + -1, -1, 95, 96, 97, -1, 99, 100, 101, 102, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + 123, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, - -1, -1, 109, 29, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, -1, - -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, -1, 124, 125, 126, 110, -1, 112, + -1, -1, -1, 29, 13, 14, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + 29, -1, -1, -1, -1, -1, -1, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - -1, 124, 125, 126, -1, -1, 112, 113, 114, 115, + -1, 124, 125, 126, -1, -1, -1, 109, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, -1, 124, 125, 126, 108, -1, -1, -1, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, - 126, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - -1, 124, 125, 126, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, -1, 29, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, -1, 29, -1, -1, 110, -1, - 112, 113, 114, 115, -1, -1, 118, 119, 120, 121, - 122, -1, 124, 125, 126, 15, 16, 17, 18, 19, + 126, -1, -1, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, 13, 14, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 13, 14, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 14, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 112, 113, 114, 115, -1, -1, 118, - 119, 120, 121, 122, -1, 124, 125, 126, -1, -1, - -1, 115, 116, 117, 118, 119, 120, 121, 122, -1, - 124, 125, 126, -1, 113, 114, 115, 0, -1, 118, - 119, 120, 121, 122, -1, 124, 125, 126, -1, -1, - 114, 115, -1, -1, 118, 119, 120, 121, 122, -1, - 124, 125, 126, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, - 43, -1, -1, -1, -1, 115, -1, -1, 118, 119, - 120, 121, 122, 56, 124, 125, 126, -1, 61, 8, - 9, 64, 17, 18, 19, 20, -1, -1, -1, 72, - 73, -1, 75, -1, 29, -1, 79, 80, 81, -1, - 17, 18, 19, 20, -1, -1, -1, 90, -1, -1, - -1, 94, 29, -1, -1, 98, 45, -1, 47, 48, - 49, 50, 51, -1, 53, -1, 109, -1, -1, -1, - -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, - 69, 70, 71, -1, -1, -1, 118, 119, 120, 121, - 122, -1, 124, 125, 126, 84, 85, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 95, -1, 97, -1, - -1, 100, -1, 102, 9, -1, -1, -1, -1, -1, - -1, 116, 117, 118, 119, 120, 121, 122, -1, 124, - 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 118, 119, 120, 121, 122, -1, 124, 125, 126, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 9, - -1, -1, 57, -1, -1, -1, -1, -1, 63, -1, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, 29, -1, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 110, -1, 112, 113, 114, 115, -1, -1, + 118, 119, 120, 121, 122, -1, 124, 125, 126, -1, + -1, 112, 113, 114, 115, -1, -1, 118, 119, 120, + 121, 122, -1, 124, 125, 126, -1, -1, 113, 114, + 115, -1, -1, 118, 119, 120, 121, 122, -1, 124, + 125, 126, -1, -1, 114, 115, 116, 117, 118, 119, + 120, 121, 122, -1, 124, 125, 126, -1, -1, -1, + 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, + 125, 126, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, 29, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, 29, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 113, 114, 115, -1, -1, 118, 119, 120, 121, 122, + -1, 124, 125, 126, -1, -1, -1, -1, 116, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, -1, + -1, 114, 115, 0, -1, 118, 119, 120, 121, 122, + -1, 124, 125, 126, -1, -1, -1, 115, -1, -1, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 45, + -1, 47, 48, 49, -1, 118, 119, 120, 121, 122, + -1, 124, 125, 126, -1, -1, 43, -1, -1, -1, + -1, -1, -1, 69, 70, 71, 9, -1, -1, 56, + -1, -1, -1, -1, 61, 8, 9, 64, 84, 85, + -1, -1, -1, -1, -1, 72, 73, -1, 75, -1, + -1, 97, 79, 80, 81, -1, 102, -1, -1, -1, + -1, -1, 45, 90, 47, 48, 49, 94, -1, -1, + -1, 98, 45, -1, 47, 48, 49, 50, 51, 125, + 53, -1, 109, -1, -1, -1, 69, 70, 71, -1, + 63, -1, 9, -1, -1, -1, 69, 70, 71, -1, + -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, -1, 97, -1, -1, -1, -1, 102, + -1, -1, 95, -1, 97, -1, -1, 100, 45, 102, + 47, 48, 49, 50, 51, -1, 53, -1, -1, -1, + 57, -1, -1, -1, -1, -1, 63, -1, 9, -1, + -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, 89, 45, -1, 47, 48, 49, 95, 96, + 97, -1, -1, 100, 45, 102, 47, 48, 49, 50, + 51, -1, 53, -1, -1, -1, 57, 69, 70, 71, + -1, -1, 63, -1, 9, -1, -1, -1, 69, 70, + 71, -1, 84, 85, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 97, -1, -1, 89, -1, + 102, -1, -1, -1, 95, 96, 97, -1, -1, 100, + 45, 102, 47, 48, 49, 50, -1, -1, 53, -1, + -1, -1, 57, 125, -1, -1, -1, -1, 63, -1, 9, -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, 89, 45, -1, 47, 48, 49, + 85, -1, -1, -1, 89, -1, -1, -1, -1, -1, 95, 96, 97, -1, -1, 100, 45, 102, 47, 48, - 49, 50, 51, -1, 53, -1, -1, -1, 57, 69, - 70, 71, -1, -1, 63, -1, 9, -1, -1, -1, - 69, 70, 71, -1, 84, 85, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, 97, -1, -1, - 89, 45, 102, 47, 48, 49, 95, 96, 97, -1, - -1, 100, 45, 102, 47, 48, 49, 50, -1, -1, - 53, -1, -1, -1, 57, 69, 70, 71, -1, -1, - 63, -1, 9, -1, -1, -1, 69, 70, 71, -1, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 97, -1, -1, 89, -1, 102, -1, - -1, -1, 95, 96, 97, -1, -1, 100, 45, 102, - 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, - 57, 125, -1, -1, -1, -1, 63, -1, -1, -1, - -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, 84, 85, -1, - -1, -1, 89, -1, -1, -1, 56, -1, 95, 96, - 97, 61, -1, 100, 64, 102, -1, -1, -1, -1, - 43, -1, 72, 73, -1, 75, -1, -1, -1, 79, - 80, 81, -1, 56, -1, -1, -1, -1, 61, -1, - 90, 64, -1, -1, 94, -1, -1, 43, 98, 72, - 73, -1, 75, -1, -1, -1, 79, 80, 81, 109, - 56, -1, -1, -1, -1, 61, -1, 90, 64, -1, - -1, 94, -1, -1, 43, 98, 72, 73, 128, 75, - -1, -1, -1, 79, 80, 81, 109, 56, -1, -1, - -1, -1, 61, -1, 90, 64, -1, -1, 94, -1, - -1, 43, 98, 72, 73, 128, 75, -1, -1, -1, - 79, 80, 81, 109, 56, -1, -1, -1, -1, 61, - -1, 90, 64, -1, -1, 94, -1, -1, -1, 98, - 72, 73, 128, 75, -1, -1, -1, 79, 80, 81, - 109, -1, -1, -1, -1, -1, -1, -1, 90, -1, - -1, 45, 94, 47, 48, 49, 98, -1, -1, 128, - -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, - -1, -1, -1, -1, -1, 69, 70, 71, -1, -1, - -1, 43, -1, -1, -1, -1, 128, -1, -1, -1, - 84, 85, -1, -1, 56, -1, -1, -1, -1, 61, - -1, -1, 64, 97, -1, -1, -1, -1, 102, -1, + 49, 50, -1, -1, 53, -1, -1, -1, 57, -1, + -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, 43, -1, -1, -1, 84, 85, -1, -1, -1, + 89, -1, -1, -1, 56, -1, 95, 96, 97, 61, + -1, 100, 64, 102, -1, -1, -1, -1, 43, -1, 72, 73, -1, 75, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, - -1, 125, 94, -1, -1, -1, 98 + -1, 56, -1, -1, -1, -1, 61, -1, 90, 64, + -1, -1, 94, -1, -1, 43, 98, 72, 73, -1, + 75, -1, -1, -1, 79, 80, 81, 109, 56, -1, + -1, -1, -1, 61, -1, 90, 64, -1, -1, 94, + -1, -1, 43, 98, 72, 73, 128, 75, -1, -1, + -1, 79, 80, 81, 109, 56, -1, -1, -1, -1, + 61, -1, 90, 64, -1, -1, 94, -1, -1, 43, + 98, 72, 73, 128, 75, -1, -1, -1, 79, 80, + 81, 109, 56, -1, -1, -1, -1, 61, -1, 90, + 64, -1, -1, 94, -1, -1, 43, 98, 72, 73, + 128, 75, -1, -1, -1, 79, 80, 81, 109, 56, + -1, -1, -1, -1, 61, -1, 90, 64, -1, -1, + 94, -1, -1, -1, 98, 72, 73, 128, 75, -1, + -1, -1, 79, 80, 81, 109, -1, -1, -1, -1, + -1, -1, -1, 90, -1, -1, -1, 94, -1, -1, + -1, 98, -1, -1, 128 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 104, 105, 106, 132, 133, 223, 3, 4, 5, + 0, 104, 105, 106, 132, 133, 218, 3, 4, 5, 6, 8, 9, 45, 47, 48, 49, 53, 54, 62, 63, 69, 70, 76, 84, 85, 86, 88, 92, 97, - 102, 115, 119, 120, 123, 125, 129, 216, 217, 222, + 102, 115, 119, 120, 123, 125, 129, 211, 212, 217, 9, 45, 47, 48, 49, 50, 51, 53, 57, 63, 69, 70, 71, 84, 85, 89, 95, 96, 97, 100, - 102, 183, 186, 187, 189, 194, 195, 199, 200, 204, - 205, 206, 207, 0, 43, 56, 61, 64, 72, 73, + 102, 178, 181, 182, 184, 189, 190, 194, 195, 199, + 200, 201, 202, 0, 43, 56, 61, 64, 72, 73, 75, 79, 80, 81, 90, 94, 98, 109, 136, 138, - 139, 141, 142, 143, 164, 201, 203, 223, 125, 125, - 125, 125, 125, 125, 116, 125, 125, 125, 9, 95, - 185, 199, 200, 204, 125, 125, 125, 116, 125, 125, - 216, 216, 216, 216, 9, 45, 47, 48, 49, 53, - 63, 69, 70, 84, 85, 97, 102, 186, 214, 216, - 216, 13, 14, 15, 16, 17, 18, 19, 20, 29, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 124, 125, 126, 6, 183, 53, 63, 70, 205, - 70, 205, 205, 8, 9, 221, 205, 10, 14, 51, - 115, 120, 125, 182, 223, 107, 110, 221, 107, 221, - 110, 140, 125, 125, 107, 221, 110, 110, 110, 165, - 141, 148, 75, 221, 8, 9, 44, 51, 58, 59, - 60, 68, 74, 78, 82, 87, 95, 99, 101, 107, - 123, 153, 184, 187, 189, 194, 199, 200, 204, 213, - 214, 223, 213, 213, 213, 213, 213, 186, 213, 213, - 213, 221, 125, 221, 221, 213, 213, 186, 186, 213, - 213, 127, 108, 127, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 127, 214, 216, 182, 63, - 120, 182, 182, 182, 182, 182, 126, 197, 198, 223, - 9, 196, 205, 110, 188, 190, 138, 8, 221, 133, - 107, 116, 51, 153, 184, 221, 125, 125, 183, 222, - 51, 183, 221, 137, 221, 107, 109, 110, 111, 176, - 109, 144, 221, 221, 127, 127, 127, 127, 127, 127, - 117, 127, 127, 127, 213, 127, 127, 127, 117, 127, - 127, 216, 216, 110, 127, 130, 182, 127, 212, 216, - 223, 221, 128, 196, 133, 110, 191, 192, 223, 108, - 108, 128, 202, 8, 9, 50, 51, 95, 166, 167, - 168, 169, 204, 223, 183, 176, 149, 154, 10, 120, - 155, 145, 183, 8, 9, 10, 14, 51, 115, 120, - 180, 223, 133, 125, 208, 209, 134, 135, 221, 107, - 216, 10, 14, 51, 78, 115, 120, 125, 146, 170, - 221, 110, 125, 127, 125, 216, 125, 130, 108, 111, - 128, 79, 80, 81, 99, 193, 107, 108, 8, 221, - 133, 221, 169, 221, 117, 108, 8, 9, 10, 14, - 51, 115, 120, 125, 181, 223, 150, 151, 170, 3, - 4, 5, 8, 12, 51, 54, 62, 76, 86, 88, - 92, 115, 119, 123, 125, 129, 172, 173, 179, 183, - 218, 219, 222, 223, 120, 170, 172, 147, 170, 180, - 120, 180, 180, 180, 180, 125, 126, 128, 156, 128, - 210, 223, 107, 108, 125, 107, 177, 178, 216, 223, - 109, 120, 170, 170, 13, 14, 15, 16, 17, 18, - 19, 20, 29, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 52, 76, 108, 111, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 125, 126, 129, 162, 170, 170, 170, 110, 111, 125, - 126, 175, 176, 223, 196, 214, 214, 172, 216, 95, - 99, 200, 220, 221, 99, 220, 99, 220, 79, 80, - 81, 133, 193, 108, 127, 108, 128, 111, 181, 111, - 141, 142, 163, 164, 168, 120, 181, 181, 181, 181, - 181, 111, 126, 174, 223, 152, 170, 175, 176, 181, - 183, 116, 185, 125, 116, 216, 216, 216, 186, 214, - 216, 127, 12, 108, 181, 13, 14, 15, 16, 17, - 18, 19, 20, 29, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 124, 125, 126, 170, 110, - 127, 127, 175, 176, 125, 180, 159, 212, 172, 3, - 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 57, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 74, 75, 76, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 107, 108, 109, 110, 111, 112, + 139, 141, 142, 159, 196, 198, 218, 125, 125, 125, + 125, 125, 125, 116, 125, 125, 125, 9, 95, 180, + 194, 195, 199, 125, 125, 125, 116, 125, 125, 211, + 211, 211, 211, 9, 45, 47, 48, 49, 53, 63, + 69, 70, 84, 85, 97, 102, 181, 209, 211, 211, + 13, 14, 15, 16, 17, 18, 19, 20, 29, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 129, 130, 211, 208, 135, - 213, 177, 128, 108, 170, 127, 130, 127, 4, 216, - 171, 212, 108, 127, 127, 127, 108, 221, 220, 221, - 220, 220, 220, 220, 220, 128, 8, 109, 221, 186, - 174, 186, 181, 127, 54, 86, 88, 115, 119, 120, - 123, 125, 129, 215, 217, 212, 175, 176, 108, 111, - 175, 181, 186, 125, 186, 186, 127, 127, 51, 161, - 223, 12, 179, 175, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 127, 214, 216, 127, 125, - 161, 108, 160, 172, 130, 127, 210, 128, 127, 128, - 107, 216, 172, 130, 146, 161, 127, 127, 125, 116, - 125, 116, 215, 215, 215, 215, 186, 214, 215, 13, - 14, 15, 16, 17, 18, 19, 20, 29, 112, 113, - 114, 115, 118, 119, 120, 121, 122, 124, 125, 126, - 130, 108, 151, 216, 175, 117, 213, 127, 117, 216, - 77, 91, 110, 127, 130, 125, 157, 147, 172, 127, - 161, 128, 177, 127, 109, 109, 172, 186, 186, 186, - 127, 127, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 127, 214, 216, 152, 125, 127, 125, 125, 216, - 158, 172, 127, 161, 128, 161, 127, 117, 127, 117, - 215, 110, 127, 130, 214, 214, 127, 221, 172, 127, - 161, 161, 125, 125, 215, 127, 127, 127, 127, 161, - 214, 214, 161, 127, 127 + 124, 125, 126, 6, 178, 53, 63, 70, 200, 70, + 200, 200, 8, 9, 216, 200, 10, 14, 51, 115, + 120, 125, 177, 218, 107, 110, 216, 107, 216, 110, + 140, 125, 125, 107, 216, 110, 110, 110, 160, 141, + 145, 75, 216, 8, 9, 44, 51, 58, 59, 60, + 68, 74, 78, 82, 87, 95, 99, 101, 107, 123, + 148, 179, 182, 184, 189, 194, 195, 199, 208, 209, + 218, 208, 208, 208, 208, 208, 181, 208, 208, 208, + 216, 125, 216, 216, 208, 208, 181, 181, 208, 208, + 127, 108, 127, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 127, 209, 211, 177, 63, 120, + 177, 177, 177, 177, 177, 126, 192, 193, 218, 9, + 191, 200, 110, 183, 185, 138, 8, 216, 133, 107, + 116, 148, 179, 216, 125, 125, 217, 51, 178, 216, + 137, 216, 107, 109, 110, 111, 171, 109, 143, 216, + 216, 127, 127, 127, 127, 127, 127, 117, 127, 127, + 127, 208, 127, 127, 127, 117, 127, 127, 211, 211, + 110, 127, 130, 177, 127, 207, 211, 218, 216, 128, + 191, 133, 110, 186, 187, 218, 108, 108, 128, 197, + 8, 9, 50, 51, 95, 161, 162, 163, 164, 199, + 218, 171, 146, 149, 10, 120, 150, 178, 8, 9, + 10, 14, 51, 115, 120, 175, 218, 133, 125, 203, + 204, 134, 135, 216, 107, 211, 10, 14, 51, 78, + 115, 120, 125, 144, 165, 216, 110, 125, 127, 125, + 211, 125, 130, 108, 111, 128, 79, 80, 81, 99, + 188, 107, 108, 8, 216, 133, 216, 164, 216, 117, + 108, 8, 9, 10, 14, 51, 115, 120, 125, 176, + 218, 147, 165, 3, 4, 5, 8, 12, 51, 54, + 62, 76, 86, 88, 92, 115, 119, 123, 125, 129, + 167, 168, 174, 178, 213, 214, 217, 218, 120, 165, + 167, 175, 120, 175, 175, 175, 175, 125, 126, 128, + 151, 128, 205, 218, 107, 108, 125, 107, 172, 173, + 211, 218, 109, 120, 165, 165, 13, 14, 15, 16, + 17, 18, 19, 20, 29, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 52, 76, 108, + 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 125, 126, 129, 157, 165, 165, 165, 110, + 111, 125, 126, 170, 171, 218, 191, 209, 209, 167, + 211, 95, 99, 195, 215, 216, 99, 215, 99, 215, + 79, 80, 81, 133, 188, 108, 127, 108, 128, 111, + 176, 111, 141, 142, 158, 159, 163, 120, 176, 176, + 176, 176, 176, 111, 126, 169, 218, 170, 171, 176, + 178, 116, 180, 125, 116, 211, 211, 211, 181, 209, + 211, 127, 12, 108, 176, 13, 14, 15, 16, 17, + 18, 19, 20, 29, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 124, 125, 126, 165, 110, + 127, 127, 125, 175, 154, 207, 167, 3, 4, 5, + 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 57, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 74, 75, 76, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 129, 130, 206, 203, 135, 208, 172, + 128, 108, 165, 127, 130, 127, 4, 211, 166, 207, + 108, 127, 127, 127, 108, 216, 215, 216, 215, 215, + 215, 215, 215, 128, 8, 109, 216, 181, 169, 181, + 176, 127, 54, 86, 88, 115, 119, 120, 123, 125, + 129, 210, 212, 207, 108, 111, 170, 176, 181, 125, + 181, 181, 127, 127, 51, 156, 218, 12, 174, 170, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 127, 209, 211, 127, 125, 156, 155, 167, 130, + 127, 205, 128, 127, 128, 107, 211, 167, 130, 144, + 156, 127, 127, 125, 116, 125, 116, 210, 210, 210, + 210, 181, 209, 210, 13, 14, 15, 16, 17, 18, + 19, 20, 29, 112, 113, 114, 115, 118, 119, 120, + 121, 122, 124, 125, 126, 130, 147, 211, 170, 117, + 208, 127, 117, 211, 77, 91, 110, 127, 130, 125, + 152, 167, 127, 156, 128, 172, 127, 109, 109, 167, + 181, 181, 181, 127, 127, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 127, 209, 211, 125, 127, 125, + 125, 211, 153, 167, 127, 156, 128, 156, 127, 117, + 127, 117, 210, 110, 127, 130, 209, 209, 127, 216, + 167, 127, 156, 156, 125, 125, 210, 127, 127, 127, + 127, 156, 209, 209, 156, 127, 127 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 131, 132, 132, 132, 133, 133, 133, 134, 134, + 135, 137, 136, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 140, + 139, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 143, 142, 142, 142, 144, 144, + 146, 145, 145, 147, 147, 149, 148, 150, 148, 151, + 148, 152, 148, 153, 148, 154, 148, 155, 148, 148, + 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 158, 158, 160, 159, 161, 161, + 162, 162, 163, 163, 163, 163, 163, 163, 164, 164, + 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 166, 165, 167, 167, 167, 167, 167, 168, 168, + 169, 169, 170, 170, 171, 171, 171, 171, 171, 172, + 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, + 175, 175, 175, 175, 175, 175, 175, 175, 175, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, + 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, + 181, 181, 183, 182, 185, 184, 186, 186, 187, 187, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 189, + 190, 190, 190, 190, 191, 191, 192, 192, 192, 193, + 193, 193, 194, 195, 195, 195, 197, 196, 196, 198, + 198, 199, 199, 199, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 201, + 201, 201, 201, 201, 202, 204, 203, 205, 205, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 207, 207, 208, + 208, 209, 209, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 212, 212, 212, 212, + 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, + 214, 214, 214, 214, 214, 215, 215, 215, 216, 216, + 217, 217, 218 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, + 4, 0, 5, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 2, 2, 2, 2, 7, 9, 9, 0, + 3, 1, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 4, 3, 3, 2, 4, + 0, 4, 3, 2, 4, 0, 6, 0, 6, 0, + 7, 0, 10, 0, 11, 0, 8, 0, 9, 1, + 1, 1, 2, 4, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 1, 1, 0, 6, 1, 1, + 1, 3, 2, 4, 2, 4, 3, 4, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 3, 4, 3, + 3, 0, 6, 1, 1, 1, 3, 2, 1, 3, + 1, 2, 1, 2, 1, 3, 5, 3, 4, 1, + 1, 2, 1, 3, 3, 5, 3, 3, 4, 1, + 1, 1, 1, 2, 2, 2, 2, 3, 4, 1, + 1, 1, 2, 2, 2, 2, 3, 4, 7, 3, + 1, 2, 2, 2, 2, 3, 4, 7, 1, 1, + 2, 1, 1, 1, 2, 4, 1, 1, 2, 1, + 1, 1, 2, 4, 2, 1, 1, 2, 2, 2, + 2, 3, 0, 5, 0, 7, 1, 1, 2, 3, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, + 4, 2, 3, 1, 1, 1, 1, 3, 5, 1, + 2, 4, 1, 1, 1, 1, 0, 6, 4, 2, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, + 2, 1, 3, 2, 1, 0, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 1, 1, 3, 1, 4, 7, 7, 4, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, + 4, 4, 3, 3, 3, 3, 1, 4, 7, 7, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 2, 5, 2, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, + 4, 4, 3, 3, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 4, 7, 7, 4, 2, 5, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 5, 4, 4, 3, 3, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 2, 0 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2475,13 +2209,13 @@ do \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) + YYERROR; \ + } \ +while (0) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. @@ -2491,7 +2225,7 @@ while (YYID (0)) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ - if (YYID (N)) \ + if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ @@ -2505,12 +2239,27 @@ while (YYID (0)) (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ - while (YYID (0)) + while (0) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + + /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ @@ -2520,36 +2269,28 @@ while (YYID (0)) /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ -__attribute__((__unused__)) -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +YY_ATTRIBUTE_UNUSED static unsigned yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) -#else -static unsigned -yy_location_print_ (yyo, yylocp) - FILE *yyo; - YYLTYPE const * const yylocp; -#endif { unsigned res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { - res += fprintf (yyo, "%d", yylocp->first_line); + res += YYFPRINTF (yyo, "%d", yylocp->first_line); if (0 <= yylocp->first_column) - res += fprintf (yyo, ".%d", yylocp->first_column); + res += YYFPRINTF (yyo, ".%d", yylocp->first_column); } if (0 <= yylocp->last_line) { if (yylocp->first_line < yylocp->last_line) { - res += fprintf (yyo, "-%d", yylocp->last_line); + res += YYFPRINTF (yyo, "-%d", yylocp->last_line); if (0 <= end_col) - res += fprintf (yyo, ".%d", end_col); + res += YYFPRINTF (yyo, ".%d", end_col); } else if (0 <= end_col && yylocp->first_column < end_col) - res += fprintf (yyo, "-%d", end_col); + res += YYFPRINTF (yyo, "-%d", end_col); } return res; } @@ -2563,73 +2304,35 @@ yy_location_print_ (yyo, yylocp) #endif -/* YYLEX -- calling `yylex' with the right arguments. */ -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval, &yylloc) -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, Location); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, Location); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); + YYUSE (yylocationp); if (!yyvaluep) return; - YYUSE (yylocationp); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -2637,23 +2340,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); YY_LOCATION_PRINT (yyoutput, *yylocationp); YYFPRINTF (yyoutput, ": "); @@ -2666,16 +2357,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2686,50 +2369,42 @@ yy_stack_print (yybottom, yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yylsp, yyrule) - YYSTYPE *yyvsp; - YYLTYPE *yylsp; - int yyrule; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , &(yylsp[(yyi + 1) - (yynrhs)]) ); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , &(yylsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, yylsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2743,7 +2418,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -2766,15 +2441,8 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -2790,16 +2458,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -2829,27 +2489,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -2872,11 +2532,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULL; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -2884,10 +2544,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -2937,7 +2593,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -3004,33 +2660,18 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) -#else -static void -yydestruct (yymsg, yytype, yyvaluep, yylocationp) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; - YYLTYPE *yylocationp; -#endif { YYUSE (yyvaluep); YYUSE (yylocationp); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3040,66 +2681,27 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { /* The lookahead symbol. */ int yychar; -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else +/* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -static YYSTYPE yyval_default; -# define YY_INITIAL_VALUE(Value) = Value -#endif +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + +/* Location data for the lookahead symbol. */ static YYLTYPE yyloc_default # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); - -/* Location data for the lookahead symbol. */ YYLTYPE yylloc = yyloc_default; - /* Number of syntax errors so far. */ int yynerrs; @@ -3108,9 +2710,9 @@ YYLTYPE yylloc = yyloc_default; int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - `yyls': related to locations. + 'yyss': related to states. + 'yyvs': related to semantic values. + 'yyls': related to locations. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3189,26 +2791,26 @@ YYLTYPE yylloc = yyloc_default; #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - YYLTYPE *yyls1 = yyls; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + YYLTYPE *yyls1 = yyls; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yyls1, yysize * sizeof (*yylsp), + &yystacksize); - yyls = yyls1; - yyss = yyss1; - yyvs = yyvs1; + yyls = yyls1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3216,23 +2818,23 @@ YYLTYPE yylloc = yyloc_default; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); - YYSTACK_RELOCATE (yyls_alloc, yyls); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3242,10 +2844,10 @@ YYLTYPE yylloc = yyloc_default; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3274,7 +2876,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, &yylloc); } if (yychar <= YYEOF) @@ -3339,7 +2941,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3354,49 +2956,48 @@ yyreduce: switch (yyn) { case 3: -/* Line 1792 of yacc.c */ -#line 388 "dtool/src/cppparser/cppBison.yxx" +#line 388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_expr = (yyvsp[(2) - (2)].u.expr); + current_expr = (yyvsp[0].u.expr); } +#line 2964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 4: -/* Line 1792 of yacc.c */ -#line 392 "dtool/src/cppparser/cppBison.yxx" +#line 392 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_type = (yyvsp[(2) - (2)].u.type); + current_type = (yyvsp[0].u.type); } +#line 2972 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 10: -/* Line 1792 of yacc.c */ -#line 410 "dtool/src/cppparser/cppBison.yxx" +#line 410 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - delete (yyvsp[(3) - (4)].u.expr); + delete (yyvsp[-1].u.expr); } +#line 2980 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 11: -/* Line 1792 of yacc.c */ -#line 422 "dtool/src/cppparser/cppBison.yxx" +#line 422 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | - ((yyvsp[(1) - (2)].u.integer) & CPPInstance::SC_c_binding)); + ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } +#line 2989 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 12: -/* Line 1792 of yacc.c */ -#line 427 "dtool/src/cppparser/cppBison.yxx" +#line 427 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 2997 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 20: -/* Line 1792 of yacc.c */ -#line 441 "dtool/src/cppparser/cppBison.yxx" +#line 441 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3405,36 +3006,36 @@ yyreduce: } publish_previous = current_scope->get_current_vis(); - publish_loc = (yylsp[(1) - (1)]); + publish_loc = (yylsp[0]); publish_nest_level++; current_scope->set_current_vis(V_published); } +#line 3014 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 21: -/* Line 1792 of yacc.c */ -#line 454 "dtool/src/cppparser/cppBison.yxx" +#line 454 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 1) { - yyerror("Unmatched __end_publish", (yylsp[(1) - (1)])); + yyerror("Unmatched __end_publish", (yylsp[0])); } else { current_scope->set_current_vis(publish_previous); } publish_nest_level = 0; } +#line 3027 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 22: -/* Line 1792 of yacc.c */ -#line 463 "dtool/src/cppparser/cppBison.yxx" +#line 463 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_published); } +#line 3035 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 23: -/* Line 1792 of yacc.c */ -#line 467 "dtool/src/cppparser/cppBison.yxx" +#line 467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -3442,572 +3043,499 @@ yyreduce: current_scope->set_current_vis(V_public); } } +#line 3047 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 24: -/* Line 1792 of yacc.c */ -#line 475 "dtool/src/cppparser/cppBison.yxx" +#line 475 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_protected); } +#line 3055 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 25: -/* Line 1792 of yacc.c */ -#line 479 "dtool/src/cppparser/cppBison.yxx" +#line 479 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_private); } +#line 3063 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 26: -/* Line 1792 of yacc.c */ -#line 483 "dtool/src/cppparser/cppBison.yxx" +#line 483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *getter = (yyvsp[(5) - (7)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(5) - (7)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (7)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); } - CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[(3) - (7)].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[(1) - (7)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (7)])); + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-4].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[-6]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-6])); } +#line 3078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 27: -/* Line 1792 of yacc.c */ -#line 494 "dtool/src/cppparser/cppBison.yxx" +#line 494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *getter = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (9)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-8])); } else { - CPPDeclaration *setter = (yyvsp[(7) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *setter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); CPPFunctionGroup *setter_func = NULL; if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid setter: " + (yyvsp[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (9)])); + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-8])); } else { setter_func = setter->as_function_group(); } - CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[(3) - (9)].u.identifier), getter->as_function_group(), - setter_func, current_scope, (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (9)])); + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-6].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-8]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } +#line 3103 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 28: -/* Line 1792 of yacc.c */ -#line 515 "dtool/src/cppparser/cppBison.yxx" +#line 515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[(3) - (9)].u.identifier)->get_simple_name(), (yyvsp[(5) - (9)].u.identifier)->get_simple_name(), (yyvsp[(7) - (9)].u.identifier)->get_simple_name(), (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[(1) - (9)])); + CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[-6].u.identifier)->get_simple_name(), (yyvsp[-4].u.identifier)->get_simple_name(), (yyvsp[-2].u.identifier)->get_simple_name(), (yylsp[-8]).file); + current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } +#line 3112 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 29: -/* Line 1792 of yacc.c */ -#line 523 "dtool/src/cppparser/cppBison.yxx" +#line 523 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } +#line 3122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 30: -/* Line 1792 of yacc.c */ -#line 529 "dtool/src/cppparser/cppBison.yxx" +#line 529 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete current_scope; pop_scope(); } +#line 3131 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 31: -/* Line 1792 of yacc.c */ -#line 538 "dtool/src/cppparser/cppBison.yxx" +#line 538 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } +#line 3139 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 32: -/* Line 1792 of yacc.c */ -#line 542 "dtool/src/cppparser/cppBison.yxx" +#line 542 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_extern; + // This isn't really a storage class, but it helps with parsing. + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_const; } +#line 3148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 33: -/* Line 1792 of yacc.c */ -#line 546 "dtool/src/cppparser/cppBison.yxx" +#line 547 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (3)].u.integer) | (int)CPPInstance::SC_extern; - if ((yyvsp[(3) - (3)].str) == "C") { - (yyval.u.integer) |= (int)CPPInstance::SC_c_binding; - } else if ((yyvsp[(3) - (3)].str) == "C++") { - (yyval.u.integer) &= ~(int)CPPInstance::SC_c_binding; - } else { - yywarning("Ignoring unknown linkage type \"" + (yyvsp[(3) - (3)].str) + "\"", (yylsp[(3) - (3)])); - } + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_extern; } +#line 3156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 34: -/* Line 1792 of yacc.c */ -#line 557 "dtool/src/cppparser/cppBison.yxx" +#line 551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_static; + (yyval.u.integer) = (yyvsp[-2].u.integer) | (int)CPPInstance::SC_extern; + if ((yyvsp[0].str) == "C") { + (yyval.u.integer) |= (int)CPPInstance::SC_c_binding; + } else if ((yyvsp[0].str) == "C++") { + (yyval.u.integer) &= ~(int)CPPInstance::SC_c_binding; + } else { + yywarning("Ignoring unknown linkage type \"" + (yyvsp[0].str) + "\"", (yylsp[0])); + } } +#line 3171 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 35: -/* Line 1792 of yacc.c */ -#line 561 "dtool/src/cppparser/cppBison.yxx" +#line 562 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_inline; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_static; } +#line 3179 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 36: -/* Line 1792 of yacc.c */ -#line 565 "dtool/src/cppparser/cppBison.yxx" +#line 566 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_virtual; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_inline; } +#line 3187 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 37: -/* Line 1792 of yacc.c */ -#line 569 "dtool/src/cppparser/cppBison.yxx" +#line 570 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_explicit; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_virtual; } +#line 3195 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 38: -/* Line 1792 of yacc.c */ -#line 573 "dtool/src/cppparser/cppBison.yxx" +#line 574 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_volatile; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_explicit; } +#line 3203 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 39: -/* Line 1792 of yacc.c */ -#line 577 "dtool/src/cppparser/cppBison.yxx" +#line 578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_mutable; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_volatile; } +#line 3211 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 40: -/* Line 1792 of yacc.c */ -#line 581 "dtool/src/cppparser/cppBison.yxx" +#line 582 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_register; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_mutable; } +#line 3219 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 41: -/* Line 1792 of yacc.c */ -#line 585 "dtool/src/cppparser/cppBison.yxx" +#line 586 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_blocking; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_register; } +#line 3227 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 42: -/* Line 1792 of yacc.c */ -#line 589 "dtool/src/cppparser/cppBison.yxx" +#line 590 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_extension; + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_blocking; } +#line 3235 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 43: -/* Line 1792 of yacc.c */ -#line 596 "dtool/src/cppparser/cppBison.yxx" +#line 594 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - /* multiple_var_declaration adds itself to the scope. */ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_extension; } +#line 3243 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 44: -/* Line 1792 of yacc.c */ -#line 600 "dtool/src/cppparser/cppBison.yxx" +#line 601 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // We don't need to push/pop type, because we can't nest + // multiple_var_declarations. + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; + } else { + current_type = (yyvsp[0].u.decl)->as_type(); + } + push_storage_class((yyvsp[-1].u.integer)); +} +#line 3258 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 45: +#line 612 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + pop_storage_class(); +} +#line 3266 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 46: +#line 616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't really care about the storage class here. In fact, it's // not actually legal to define a class or struct using a particular // storage class, but we require it just to help yacc out in its // parsing. - current_scope->add_declaration((yyvsp[(2) - (3)].u.decl), global_scope, current_lexer, (yylsp[(2) - (3)])); -} - break; - - case 45: -/* Line 1792 of yacc.c */ -#line 609 "dtool/src/cppparser/cppBison.yxx" - { - if ((yyvsp[(2) - (3)].u.instance) != (CPPInstance *)NULL) { - (yyvsp[(2) - (3)].u.instance)->_storage_class |= (current_storage_class | (yyvsp[(1) - (3)].u.integer)); - current_scope->add_declaration((yyvsp[(2) - (3)].u.instance), global_scope, current_lexer, (yylsp[(2) - (3)])); - (yyvsp[(2) - (3)].u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); - } -} - break; - - case 46: -/* Line 1792 of yacc.c */ -#line 620 "dtool/src/cppparser/cppBison.yxx" - { - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - if ((yyvsp[(2) - (2)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type_declaration()->_type; - } else { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type(); - } - push_storage_class((yyvsp[(1) - (2)].u.integer)); + current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } +#line 3279 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 47: -/* Line 1792 of yacc.c */ -#line 631 "dtool/src/cppparser/cppBison.yxx" +#line 625 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - pop_storage_class(); + if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { + (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); + current_scope->add_declaration((yyvsp[-1].u.instance), global_scope, current_lexer, (yylsp[-1])); + (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); + } } +#line 3291 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 48: -/* Line 1792 of yacc.c */ -#line 635 "dtool/src/cppparser/cppBison.yxx" +#line 639 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - current_type = (yyvsp[(3) - (3)].u.type); - push_storage_class((yyvsp[(1) - (3)].u.integer)); + if (current_storage_class & CPPInstance::SC_const) { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + } + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), + current_storage_class, + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } +#line 3306 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 49: -/* Line 1792 of yacc.c */ -#line 642 "dtool/src/cppparser/cppBison.yxx" +#line 650 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - pop_storage_class(); + if (current_storage_class & CPPInstance::SC_const) { + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); + } + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), + current_storage_class, + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } +#line 3321 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 50: -/* Line 1792 of yacc.c */ -#line 653 "dtool/src/cppparser/cppBison.yxx" +#line 664 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), - current_storage_class, - (yylsp[(1) - (2)]).file); - inst->set_initializer((yyvsp[(2) - (2)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); + // We don't need to push/pop type, because we can't nest + // multiple_var_declarations. + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; + } else { + current_type = (yyvsp[0].u.decl)->as_type(); + } + push_storage_class((yyvsp[-1].u.integer)); } +#line 3336 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 51: -/* Line 1792 of yacc.c */ -#line 661 "dtool/src/cppparser/cppBison.yxx" +#line 675 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), - current_storage_class, - (yylsp[(1) - (4)]).file); - inst->set_initializer((yyvsp[(2) - (4)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (4)])); + pop_storage_class(); } +#line 3344 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 52: -/* Line 1792 of yacc.c */ -#line 672 "dtool/src/cppparser/cppBison.yxx" +#line 679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), - current_storage_class, - (yylsp[(1) - (2)]).file); - inst->set_initializer((yyvsp[(2) - (2)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); -} - break; - - case 53: -/* Line 1792 of yacc.c */ -#line 681 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), - current_storage_class, - (yylsp[(1) - (4)]).file); - inst->set_initializer((yyvsp[(2) - (4)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (4)])); -} - break; - - case 54: -/* Line 1792 of yacc.c */ -#line 694 "dtool/src/cppparser/cppBison.yxx" - { - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - if ((yyvsp[(2) - (2)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type_declaration()->_type; - } else { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type(); - } - push_storage_class((yyvsp[(1) - (2)].u.integer)); -} - break; - - case 55: -/* Line 1792 of yacc.c */ -#line 705 "dtool/src/cppparser/cppBison.yxx" - { - pop_storage_class(); -} - break; - - case 56: -/* Line 1792 of yacc.c */ -#line 709 "dtool/src/cppparser/cppBison.yxx" - { - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - current_type = (yyvsp[(3) - (3)].u.type); - push_storage_class((yyvsp[(1) - (3)].u.integer)); -} - break; - - case 57: -/* Line 1792 of yacc.c */ -#line 716 "dtool/src/cppparser/cppBison.yxx" - { - pop_storage_class(); -} - break; - - case 58: -/* Line 1792 of yacc.c */ -#line 720 "dtool/src/cppparser/cppBison.yxx" - { - if ((yyvsp[(2) - (3)].u.instance) != (CPPDeclaration *)NULL) { - CPPInstance *inst = (yyvsp[(2) - (3)].u.instance)->as_instance(); + if ((yyvsp[-1].u.instance) != (CPPDeclaration *)NULL) { + CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); if (inst != (CPPInstance *)NULL) { - inst->_storage_class |= (current_storage_class | (yyvsp[(1) - (3)].u.integer)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(2) - (3)])); + inst->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); CPPTypedefType *typedef_type = new CPPTypedefType(inst->_type, inst->_ident, current_scope); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[(2) - (3)])); + current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[-1])); } } } +#line 3360 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 53: +#line 694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + if (current_storage_class & CPPInstance::SC_const) { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + } + CPPType *target_type = current_type; + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-1].u.inst_ident), current_scope, (yylsp[-1]).file); + current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[-1])); +} +#line 3373 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 54: +#line 703 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + if (current_storage_class & CPPInstance::SC_const) { + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); + } + CPPType *target_type = current_type; + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-3].u.inst_ident), current_scope, (yylsp[-3]).file); + current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[-3])); +} +#line 3386 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 55: +#line 717 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); +} +#line 3394 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 56: +#line 721 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + pop_scope(); + CPPType *type; + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { + // This is a constructor, and has no return. + type = new CPPSimpleType(CPPSimpleType::T_void); + } else { + // This isn't a constructor, so it has an implicit return type of + // int. + type = new CPPSimpleType(CPPSimpleType::T_int); + } + + CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); + + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); +} +#line 3416 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 57: +#line 739 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); +} +#line 3424 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 58: +#line 743 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + pop_scope(); + CPPType *type; + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { + // This is a constructor, and has no return. + type = new CPPSimpleType(CPPSimpleType::T_void); + } else { + // This isn't a constructor, so it has an implicit return type of + // int. + type = new CPPSimpleType(CPPSimpleType::T_int); + } + + CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); + + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); +} +#line 3446 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 59: -/* Line 1792 of yacc.c */ -#line 735 "dtool/src/cppparser/cppBison.yxx" +#line 763 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[(1) - (2)])); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 3454 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 60: -/* Line 1792 of yacc.c */ -#line 741 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[(1) - (4)])); -} - break; - - case 61: -/* Line 1792 of yacc.c */ -#line 750 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[(1) - (2)])); -} - break; - - case 62: -/* Line 1792 of yacc.c */ -#line 757 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, (yylsp[(1) - (4)])); -} - break; - - case 63: -/* Line 1792 of yacc.c */ -#line 769 "dtool/src/cppparser/cppBison.yxx" - { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); -} - break; - - case 64: -/* Line 1792 of yacc.c */ -#line 773 "dtool/src/cppparser/cppBison.yxx" +#line 767 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - CPPType *type; - if ((yyvsp[(1) - (6)].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { - // This is a constructor, and has no return. - type = new CPPSimpleType(CPPSimpleType::T_void); - } else { - // This isn't a constructor, so it has an implicit return type of - // int. - type = new CPPSimpleType(CPPSimpleType::T_int); - } - - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[(1) - (6)].u.identifier)); - ii->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); - - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (6)]).file); -} - break; - - case 65: -/* Line 1792 of yacc.c */ -#line 791 "dtool/src/cppparser/cppBison.yxx" - { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); -} - break; - - case 66: -/* Line 1792 of yacc.c */ -#line 795 "dtool/src/cppparser/cppBison.yxx" - { - pop_scope(); - CPPType *type; - if ((yyvsp[(1) - (6)].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { - // This is a constructor, and has no return. - type = new CPPSimpleType(CPPSimpleType::T_void); - } else { - // This isn't a constructor, so it has an implicit return type of - // int. - type = new CPPSimpleType(CPPSimpleType::T_int); - } - - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[(1) - (6)].u.identifier)); - ii->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); - - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (6)]).file); -} - break; - - case 67: -/* Line 1792 of yacc.c */ -#line 815 "dtool/src/cppparser/cppBison.yxx" - { - push_scope((yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope)); -} - break; - - case 68: -/* Line 1792 of yacc.c */ -#line 819 "dtool/src/cppparser/cppBison.yxx" - { - pop_scope(); - if ((yyvsp[(2) - (7)].u.identifier)->is_scoped()) { - yyerror("Invalid destructor name: ~" + (yyvsp[(2) - (7)].u.identifier)->get_fully_scoped_name(), (yylsp[(2) - (7)])); + if ((yyvsp[-5].u.identifier)->is_scoped()) { + yyerror("Invalid destructor name: ~" + (yyvsp[-5].u.identifier)->get_fully_scoped_name(), (yylsp[-5])); } else { CPPIdentifier *ident = - new CPPIdentifier("~" + (yyvsp[(2) - (7)].u.identifier)->get_simple_name(), (yylsp[(2) - (7)]).file); - delete (yyvsp[(2) - (7)].u.identifier); + new CPPIdentifier("~" + (yyvsp[-5].u.identifier)->get_simple_name(), (yylsp[-5]).file); + delete (yyvsp[-5].u.identifier); CPPType *type; type = new CPPSimpleType(CPPSimpleType::T_void); CPPInstanceIdentifier *ii = new CPPInstanceIdentifier(ident); - ii->add_func_modifier((yyvsp[(5) - (7)].u.param_list), (yyvsp[(7) - (7)].u.integer)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(2) - (7)]).file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } +#line 3477 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 69: -/* Line 1792 of yacc.c */ -#line 845 "dtool/src/cppparser/cppBison.yxx" + case 61: +#line 793 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(4) - (6)].u.inst_ident)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 3485 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 70: -/* Line 1792 of yacc.c */ -#line 849 "dtool/src/cppparser/cppBison.yxx" + case 62: +#line 797 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - CPPType *type = (yyvsp[(1) - (10)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-9].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert(type != NULL); - CPPInstanceIdentifier *ii = (yyvsp[(4) - (10)].u.inst_ident); + CPPInstanceIdentifier *ii = (yyvsp[-6].u.inst_ident); ii->add_modifier(IIT_pointer); - ii->add_func_modifier((yyvsp[(8) - (10)].u.param_list), (yyvsp[(10) - (10)].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (10)]).file); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-9]).file); } +#line 3500 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 71: -/* Line 1792 of yacc.c */ -#line 860 "dtool/src/cppparser/cppBison.yxx" + case 63: +#line 808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(5) - (7)].u.inst_ident)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 3508 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 72: -/* Line 1792 of yacc.c */ -#line 864 "dtool/src/cppparser/cppBison.yxx" + case 64: +#line 812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - CPPType *type = (yyvsp[(1) - (11)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert(type != NULL); - CPPInstanceIdentifier *ii = (yyvsp[(5) - (11)].u.inst_ident); - ii->add_scoped_pointer_modifier((yyvsp[(3) - (11)].u.identifier)); - ii->add_func_modifier((yyvsp[(9) - (11)].u.param_list), (yyvsp[(11) - (11)].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (11)]).file); + CPPInstanceIdentifier *ii = (yyvsp[-6].u.inst_ident); + ii->add_scoped_pointer_modifier((yyvsp[-8].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-10]).file); } +#line 3523 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 73: -/* Line 1792 of yacc.c */ -#line 877 "dtool/src/cppparser/cppBison.yxx" + case 65: +#line 825 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (4)].u.identifier) != NULL) { - push_scope((yyvsp[(1) - (4)].u.identifier)->get_scope(current_scope, global_scope)); + if ((yyvsp[-3].u.identifier) != NULL) { + push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } } +#line 3533 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 74: -/* Line 1792 of yacc.c */ -#line 883 "dtool/src/cppparser/cppBison.yxx" + case 66: +#line 831 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (8)].u.identifier) != NULL) { + if ((yyvsp[-7].u.identifier) != NULL) { pop_scope(); } @@ -4020,3116 +3548,3116 @@ yyreduce: // We give typecast operators the name "operator typecast ", // where is a simple name of the type to be typecast. Use // the method's return type to determine the full type description. - string name = "operator typecast " + (yyvsp[(2) - (8)].u.type)->get_simple_name(); - CPPIdentifier *ident = (yyvsp[(1) - (8)].u.identifier); + string name = "operator typecast " + (yyvsp[-6].u.type)->get_simple_name(); + CPPIdentifier *ident = (yyvsp[-7].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier(name, (yylsp[(1) - (8)]).file); + ident = new CPPIdentifier(name, (yylsp[-7]).file); } else { ident->add_name(name); } (yyval.u.instance) = CPPInstance::make_typecast_function - (new CPPInstance((yyvsp[(2) - (8)].u.type), (yyvsp[(3) - (8)].u.inst_ident), 0, (yylsp[(3) - (8)]).file), ident, (yyvsp[(6) - (8)].u.param_list), (yyvsp[(8) - (8)].u.integer)); + (new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } +#line 3562 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 75: -/* Line 1792 of yacc.c */ -#line 908 "dtool/src/cppparser/cppBison.yxx" + case 67: +#line 856 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (5)].u.identifier) != NULL) { - push_scope((yyvsp[(1) - (5)].u.identifier)->get_scope(current_scope, global_scope)); + if ((yyvsp[-4].u.identifier) != NULL) { + push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } } +#line 3572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 76: -/* Line 1792 of yacc.c */ -#line 914 "dtool/src/cppparser/cppBison.yxx" + case 68: +#line 862 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (9)].u.identifier) != NULL) { + if ((yyvsp[-8].u.identifier) != NULL) { pop_scope(); } - CPPIdentifier *ident = (yyvsp[(1) - (9)].u.identifier); + CPPIdentifier *ident = (yyvsp[-8].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator typecast", (yylsp[(1) - (9)]).file); + ident = new CPPIdentifier("operator typecast", (yylsp[-8]).file); } else { ident->add_name("operator typecast"); } - (yyvsp[(4) - (9)].u.inst_ident)->add_modifier(IIT_const); + (yyvsp[-5].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = CPPInstance::make_typecast_function - (new CPPInstance((yyvsp[(3) - (9)].u.type), (yyvsp[(4) - (9)].u.inst_ident), 0, (yylsp[(4) - (9)]).file), ident, (yyvsp[(7) - (9)].u.param_list), (yyvsp[(9) - (9)].u.integer)); + (new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } +#line 3592 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 77: -/* Line 1792 of yacc.c */ -#line 934 "dtool/src/cppparser/cppBison.yxx" + case 69: +#line 882 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *decl = - (yyvsp[(1) - (1)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (decl != (CPPDeclaration *)NULL) { (yyval.u.instance) = decl->as_instance(); } else { (yyval.u.instance) = (CPPInstance *)NULL; } } +#line 3606 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 78: -/* Line 1792 of yacc.c */ -#line 947 "dtool/src/cppparser/cppBison.yxx" + case 70: +#line 895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } +#line 3614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 79: -/* Line 1792 of yacc.c */ -#line 951 "dtool/src/cppparser/cppBison.yxx" + case 71: +#line 899 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_const_method; } +#line 3622 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 80: -/* Line 1792 of yacc.c */ -#line 955 "dtool/src/cppparser/cppBison.yxx" + case 72: +#line 903 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; } +#line 3630 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 81: -/* Line 1792 of yacc.c */ -#line 959 "dtool/src/cppparser/cppBison.yxx" + case 73: +#line 907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (4)].u.integer); + (yyval.u.integer) = (yyvsp[-3].u.integer); } +#line 3638 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 82: -/* Line 1792 of yacc.c */ -#line 963 "dtool/src/cppparser/cppBison.yxx" + case 74: +#line 911 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (5)].u.integer); + (yyval.u.integer) = (yyvsp[-4].u.integer); } +#line 3646 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 83: -/* Line 1792 of yacc.c */ -#line 970 "dtool/src/cppparser/cppBison.yxx" + case 75: +#line 918 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "!"; } +#line 3654 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 84: -/* Line 1792 of yacc.c */ -#line 974 "dtool/src/cppparser/cppBison.yxx" + case 76: +#line 922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "~"; } +#line 3662 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 85: -/* Line 1792 of yacc.c */ -#line 978 "dtool/src/cppparser/cppBison.yxx" + case 77: +#line 926 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "*"; } +#line 3670 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 86: -/* Line 1792 of yacc.c */ -#line 982 "dtool/src/cppparser/cppBison.yxx" + case 78: +#line 930 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "/"; } +#line 3678 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 87: -/* Line 1792 of yacc.c */ -#line 986 "dtool/src/cppparser/cppBison.yxx" + case 79: +#line 934 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "%"; } +#line 3686 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 88: -/* Line 1792 of yacc.c */ -#line 990 "dtool/src/cppparser/cppBison.yxx" + case 80: +#line 938 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "+"; } +#line 3694 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 89: -/* Line 1792 of yacc.c */ -#line 994 "dtool/src/cppparser/cppBison.yxx" + case 81: +#line 942 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "-"; } +#line 3702 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 90: -/* Line 1792 of yacc.c */ -#line 998 "dtool/src/cppparser/cppBison.yxx" + case 82: +#line 946 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "|"; } +#line 3710 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 91: -/* Line 1792 of yacc.c */ -#line 1002 "dtool/src/cppparser/cppBison.yxx" + case 83: +#line 950 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&"; } +#line 3718 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 92: -/* Line 1792 of yacc.c */ -#line 1006 "dtool/src/cppparser/cppBison.yxx" + case 84: +#line 954 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "^"; } +#line 3726 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 93: -/* Line 1792 of yacc.c */ -#line 1010 "dtool/src/cppparser/cppBison.yxx" + case 85: +#line 958 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "||"; } +#line 3734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 94: -/* Line 1792 of yacc.c */ -#line 1014 "dtool/src/cppparser/cppBison.yxx" + case 86: +#line 962 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&&"; } +#line 3742 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 95: -/* Line 1792 of yacc.c */ -#line 1018 "dtool/src/cppparser/cppBison.yxx" + case 87: +#line 966 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "=="; } +#line 3750 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 96: -/* Line 1792 of yacc.c */ -#line 1022 "dtool/src/cppparser/cppBison.yxx" + case 88: +#line 970 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "!="; } +#line 3758 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 97: -/* Line 1792 of yacc.c */ -#line 1026 "dtool/src/cppparser/cppBison.yxx" + case 89: +#line 974 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<="; } +#line 3766 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 98: -/* Line 1792 of yacc.c */ -#line 1030 "dtool/src/cppparser/cppBison.yxx" + case 90: +#line 978 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">="; } +#line 3774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 99: -/* Line 1792 of yacc.c */ -#line 1034 "dtool/src/cppparser/cppBison.yxx" + case 91: +#line 982 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<"; } +#line 3782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 100: -/* Line 1792 of yacc.c */ -#line 1038 "dtool/src/cppparser/cppBison.yxx" + case 92: +#line 986 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">"; } +#line 3790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 101: -/* Line 1792 of yacc.c */ -#line 1042 "dtool/src/cppparser/cppBison.yxx" + case 93: +#line 990 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<<"; } +#line 3798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 102: -/* Line 1792 of yacc.c */ -#line 1046 "dtool/src/cppparser/cppBison.yxx" + case 94: +#line 994 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">>"; } +#line 3806 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 103: -/* Line 1792 of yacc.c */ -#line 1050 "dtool/src/cppparser/cppBison.yxx" + case 95: +#line 998 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "="; } +#line 3814 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 104: -/* Line 1792 of yacc.c */ -#line 1054 "dtool/src/cppparser/cppBison.yxx" + case 96: +#line 1002 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ","; } +#line 3822 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 105: -/* Line 1792 of yacc.c */ -#line 1058 "dtool/src/cppparser/cppBison.yxx" + case 97: +#line 1006 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "++"; } +#line 3830 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 106: -/* Line 1792 of yacc.c */ -#line 1062 "dtool/src/cppparser/cppBison.yxx" + case 98: +#line 1010 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "--"; } +#line 3838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 107: -/* Line 1792 of yacc.c */ -#line 1066 "dtool/src/cppparser/cppBison.yxx" + case 99: +#line 1014 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "*="; } +#line 3846 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 108: -/* Line 1792 of yacc.c */ -#line 1070 "dtool/src/cppparser/cppBison.yxx" + case 100: +#line 1018 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "/="; } +#line 3854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 109: -/* Line 1792 of yacc.c */ -#line 1074 "dtool/src/cppparser/cppBison.yxx" + case 101: +#line 1022 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "%="; } +#line 3862 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 110: -/* Line 1792 of yacc.c */ -#line 1078 "dtool/src/cppparser/cppBison.yxx" + case 102: +#line 1026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "+="; } +#line 3870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 111: -/* Line 1792 of yacc.c */ -#line 1082 "dtool/src/cppparser/cppBison.yxx" + case 103: +#line 1030 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "-="; } +#line 3878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 112: -/* Line 1792 of yacc.c */ -#line 1086 "dtool/src/cppparser/cppBison.yxx" + case 104: +#line 1034 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "|="; } +#line 3886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 113: -/* Line 1792 of yacc.c */ -#line 1090 "dtool/src/cppparser/cppBison.yxx" + case 105: +#line 1038 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&="; } +#line 3894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 114: -/* Line 1792 of yacc.c */ -#line 1094 "dtool/src/cppparser/cppBison.yxx" + case 106: +#line 1042 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "^="; } +#line 3902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 115: -/* Line 1792 of yacc.c */ -#line 1098 "dtool/src/cppparser/cppBison.yxx" + case 107: +#line 1046 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<<="; } +#line 3910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 116: -/* Line 1792 of yacc.c */ -#line 1102 "dtool/src/cppparser/cppBison.yxx" + case 108: +#line 1050 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">>="; } +#line 3918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 117: -/* Line 1792 of yacc.c */ -#line 1106 "dtool/src/cppparser/cppBison.yxx" + case 109: +#line 1054 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "->"; } +#line 3926 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 118: -/* Line 1792 of yacc.c */ -#line 1110 "dtool/src/cppparser/cppBison.yxx" + case 110: +#line 1058 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "[]"; } +#line 3934 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 119: -/* Line 1792 of yacc.c */ -#line 1114 "dtool/src/cppparser/cppBison.yxx" + case 111: +#line 1062 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "()"; } +#line 3942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 120: -/* Line 1792 of yacc.c */ -#line 1118 "dtool/src/cppparser/cppBison.yxx" + case 112: +#line 1066 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "new"; } +#line 3950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 121: -/* Line 1792 of yacc.c */ -#line 1122 "dtool/src/cppparser/cppBison.yxx" + case 113: +#line 1070 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "delete"; } +#line 3958 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 124: -/* Line 1792 of yacc.c */ -#line 1134 "dtool/src/cppparser/cppBison.yxx" + case 116: +#line 1082 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope(new CPPTemplateScope(current_scope)); } +#line 3966 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 125: -/* Line 1792 of yacc.c */ -#line 1138 "dtool/src/cppparser/cppBison.yxx" + case 117: +#line 1086 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } +#line 3974 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 120: +#line 1098 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != NULL); + ts->add_template_parameter((yyvsp[0].u.decl)); +} +#line 3984 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 121: +#line 1104 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != NULL); + ts->add_template_parameter((yyvsp[0].u.decl)); +} +#line 3994 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 122: +#line 1113 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 4002 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 123: +#line 1117 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 4010 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 124: +#line 1121 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 4018 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 125: +#line 1125 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 4026 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 126: +#line 1129 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + (yyval.u.decl) = inst; +} +#line 4036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 127: +#line 1135 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + (yyval.u.decl) = inst; +} +#line 4047 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 128: -/* Line 1792 of yacc.c */ -#line 1150 "dtool/src/cppparser/cppBison.yxx" +#line 1145 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != NULL); - ts->add_template_parameter((yyvsp[(1) - (1)].u.decl)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 4055 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 129: -/* Line 1792 of yacc.c */ -#line 1156 "dtool/src/cppparser/cppBison.yxx" +#line 1149 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != NULL); - ts->add_template_parameter((yyvsp[(3) - (3)].u.decl)); + yywarning("Not a type: " + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); + (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); } +#line 4064 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 130: -/* Line 1792 of yacc.c */ -#line 1165 "dtool/src/cppparser/cppBison.yxx" +#line 1154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.type) != NULL); } +#line 4073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 131: -/* Line 1792 of yacc.c */ -#line 1169 "dtool/src/cppparser/cppBison.yxx" +#line 1163 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } +#line 4081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 132: -/* Line 1792 of yacc.c */ -#line 1173 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); -} - break; - - case 133: -/* Line 1792 of yacc.c */ -#line 1177 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); -} - break; - - case 134: -/* Line 1792 of yacc.c */ -#line 1181 "dtool/src/cppparser/cppBison.yxx" - { - CPPInstance *inst = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); - inst->set_initializer((yyvsp[(3) - (3)].u.expr)); - (yyval.u.decl) = inst; -} - break; - - case 135: -/* Line 1792 of yacc.c */ -#line 1187 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[(3) - (4)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance((yyvsp[(2) - (4)].u.type), (yyvsp[(3) - (4)].u.inst_ident), 0, (yylsp[(3) - (4)]).file); - inst->set_initializer((yyvsp[(4) - (4)].u.expr)); - (yyval.u.decl) = inst; -} - break; - - case 136: -/* Line 1792 of yacc.c */ -#line 1197 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); -} - break; - - case 137: -/* Line 1792 of yacc.c */ -#line 1201 "dtool/src/cppparser/cppBison.yxx" - { - yywarning("Not a type: " + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); - (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); -} - break; - - case 138: -/* Line 1792 of yacc.c */ -#line 1206 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - assert((yyval.u.type) != NULL); -} - break; - - case 139: -/* Line 1792 of yacc.c */ -#line 1215 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - - case 140: -/* Line 1792 of yacc.c */ -#line 1219 "dtool/src/cppparser/cppBison.yxx" +#line 1167 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // For an operator function. We implement this simply by building a // ficticious name for the function; in other respects it's just // like a regular function. - CPPIdentifier *ident = (yyvsp[(1) - (2)].u.identifier); + CPPIdentifier *ident = (yyvsp[-1].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator "+(yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]).file); + ident = new CPPIdentifier("operator "+(yyvsp[0].str), (yylsp[0]).file); } else { - ident->_names.push_back("operator "+(yyvsp[(2) - (2)].str)); + ident->_names.push_back("operator "+(yyvsp[0].str)); } (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } +#line 4099 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 133: +#line 1181 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 4108 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 134: +#line 1186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 4117 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 135: +#line 1191 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 4126 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 136: +#line 1196 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 4135 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 137: +#line 1201 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 4144 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 138: +#line 1206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 4153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 139: +#line 1211 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // bitfield definition. We ignore the bitfield for now. + (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); +} +#line 4162 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 140: +#line 1216 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); +} +#line 4171 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 141: -/* Line 1792 of yacc.c */ -#line 1233 "dtool/src/cppparser/cppBison.yxx" +#line 1221 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); + push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 4179 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 142: -/* Line 1792 of yacc.c */ -#line 1238 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} - break; - - case 143: -/* Line 1792 of yacc.c */ -#line 1243 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} - break; - - case 144: -/* Line 1792 of yacc.c */ -#line 1248 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} - break; - - case 145: -/* Line 1792 of yacc.c */ -#line 1253 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); -} - break; - - case 146: -/* Line 1792 of yacc.c */ -#line 1258 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); -} - break; - - case 147: -/* Line 1792 of yacc.c */ -#line 1263 "dtool/src/cppparser/cppBison.yxx" - { - // bitfield definition. We ignore the bitfield for now. - (yyval.u.inst_ident) = (yyvsp[(1) - (3)].u.inst_ident); -} - break; - - case 148: -/* Line 1792 of yacc.c */ -#line 1268 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); -} - break; - - case 149: -/* Line 1792 of yacc.c */ -#line 1273 "dtool/src/cppparser/cppBison.yxx" - { - push_scope((yyvsp[(1) - (2)].u.inst_ident)->get_scope(current_scope, global_scope)); -} - break; - - case 150: -/* Line 1792 of yacc.c */ -#line 1277 "dtool/src/cppparser/cppBison.yxx" +#line 1225 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - (yyval.u.inst_ident) = (yyvsp[(1) - (6)].u.inst_ident); - if ((yyvsp[(4) - (6)].u.param_list)->is_parameter_expr() && (yyvsp[(6) - (6)].u.integer) == 0) { + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + if ((yyvsp[-2].u.param_list)->is_parameter_expr() && (yyvsp[0].u.integer) == 0) { // Oops, this must have been an instance declaration with a // parameter list, not a function prototype. - (yyval.u.inst_ident)->add_initializer_modifier((yyvsp[(4) - (6)].u.param_list)); + (yyval.u.inst_ident)->add_initializer_modifier((yyvsp[-2].u.param_list)); } else { // This was (probably) a function prototype. - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } } +#line 4197 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 143: +#line 1243 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; +} +#line 4205 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 144: +#line 1247 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 4214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 145: +#line 1252 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[0].u.param_list); +} +#line 4222 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 146: +#line 1256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 4231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 147: +#line 1261 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 4240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 148: +#line 1269 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 4249 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 149: +#line 1274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 4258 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 150: +#line 1282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 4266 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 151: -/* Line 1792 of yacc.c */ -#line 1295 "dtool/src/cppparser/cppBison.yxx" +#line 1286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = new CPPParameterList; + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 4274 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 152: -/* Line 1792 of yacc.c */ -#line 1299 "dtool/src/cppparser/cppBison.yxx" +#line 1293 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; + (yyval.u.expr) = (CPPExpression *)NULL; } +#line 4282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 153: -/* Line 1792 of yacc.c */ -#line 1304 "dtool/src/cppparser/cppBison.yxx" +#line 1297 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 4290 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 154: -/* Line 1792 of yacc.c */ -#line 1308 "dtool/src/cppparser/cppBison.yxx" +#line 1304 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; + (yyval.u.expr) = (CPPExpression *)NULL; } +#line 4298 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 155: -/* Line 1792 of yacc.c */ -#line 1313 "dtool/src/cppparser/cppBison.yxx" +#line 1308 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; + (yyval.u.expr) = (CPPExpression *)NULL; } +#line 4306 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 156: -/* Line 1792 of yacc.c */ -#line 1321 "dtool/src/cppparser/cppBison.yxx" +#line 1312 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[(1) - (1)].u.instance)); + (yyval.u.expr) = (CPPExpression *)NULL; } +#line 4314 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 157: -/* Line 1792 of yacc.c */ -#line 1326 "dtool/src/cppparser/cppBison.yxx" +#line 1316 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[(3) - (3)].u.instance)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 4322 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 158: -/* Line 1792 of yacc.c */ -#line 1334 "dtool/src/cppparser/cppBison.yxx" +#line 1320 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } - break; - - case 159: -/* Line 1792 of yacc.c */ -#line 1338 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); -} - break; - - case 160: -/* Line 1792 of yacc.c */ -#line 1345 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 161: -/* Line 1792 of yacc.c */ -#line 1349 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); -} +#line 4330 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 162: -/* Line 1792 of yacc.c */ -#line 1356 "dtool/src/cppparser/cppBison.yxx" +#line 1333 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 163: -/* Line 1792 of yacc.c */ -#line 1360 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 164: -/* Line 1792 of yacc.c */ -#line 1364 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 165: -/* Line 1792 of yacc.c */ -#line 1368 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); } +#line 4337 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 166: -/* Line 1792 of yacc.c */ -#line 1372 "dtool/src/cppparser/cppBison.yxx" +#line 1342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } +#line 4346 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 170: -/* Line 1792 of yacc.c */ -#line 1385 "dtool/src/cppparser/cppBison.yxx" + case 167: +#line 1347 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { -} - break; - - case 174: -/* Line 1792 of yacc.c */ -#line 1394 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.instance) = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); -} - break; - - case 175: -/* Line 1792 of yacc.c */ -#line 1399 "dtool/src/cppparser/cppBison.yxx" - { - yywarning("Not a type: " + (yyvsp[(1) - (3)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (3)])); + yywarning("Not a type: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); - (yyval.u.instance) = new CPPInstance(type, (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); + (yyval.u.instance) = new CPPInstance(type, (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } +#line 4358 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 176: -/* Line 1792 of yacc.c */ -#line 1407 "dtool/src/cppparser/cppBison.yxx" + case 168: +#line 1355 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(3) - (4)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.instance) = new CPPInstance((yyvsp[(2) - (4)].u.type), (yyvsp[(3) - (4)].u.inst_ident), 0, (yylsp[(3) - (4)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(4) - (4)].u.expr)); + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } +#line 4368 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 177: -/* Line 1792 of yacc.c */ -#line 1413 "dtool/src/cppparser/cppBison.yxx" + case 169: +#line 1361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); (yyval.u.instance) = new CPPInstance(type, "expr"); - (yyval.u.instance)->set_initializer((yyvsp[(1) - (1)].u.expr)); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } +#line 4379 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 170: +#line 1371 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} +#line 4387 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 171: +#line 1375 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} +#line 4395 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 172: +#line 1379 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} +#line 4403 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 173: +#line 1383 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 4412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 174: +#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 4421 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 175: +#line 1393 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 4430 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 176: +#line 1398 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 4439 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 177: +#line 1403 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 4448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 178: -/* Line 1792 of yacc.c */ -#line 1423 "dtool/src/cppparser/cppBison.yxx" +#line 1408 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 4457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 179: -/* Line 1792 of yacc.c */ -#line 1427 "dtool/src/cppparser/cppBison.yxx" +#line 1416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 4465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 180: -/* Line 1792 of yacc.c */ -#line 1431 "dtool/src/cppparser/cppBison.yxx" +#line 1420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } +#line 4473 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 181: -/* Line 1792 of yacc.c */ -#line 1435 "dtool/src/cppparser/cppBison.yxx" +#line 1424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } +#line 4481 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 182: -/* Line 1792 of yacc.c */ -#line 1440 "dtool/src/cppparser/cppBison.yxx" +#line 1428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 4490 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 183: -/* Line 1792 of yacc.c */ -#line 1445 "dtool/src/cppparser/cppBison.yxx" +#line 1433 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 4499 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 184: -/* Line 1792 of yacc.c */ -#line 1450 "dtool/src/cppparser/cppBison.yxx" +#line 1438 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 4508 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 185: -/* Line 1792 of yacc.c */ -#line 1455 "dtool/src/cppparser/cppBison.yxx" +#line 1443 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 4517 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 186: -/* Line 1792 of yacc.c */ -#line 1460 "dtool/src/cppparser/cppBison.yxx" +#line 1448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 4526 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 187: -/* Line 1792 of yacc.c */ -#line 1468 "dtool/src/cppparser/cppBison.yxx" +#line 1453 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 4535 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 188: -/* Line 1792 of yacc.c */ -#line 1472 "dtool/src/cppparser/cppBison.yxx" +#line 1458 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } +#line 4545 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 189: -/* Line 1792 of yacc.c */ -#line 1476 "dtool/src/cppparser/cppBison.yxx" +#line 1464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); } +#line 4554 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 190: -/* Line 1792 of yacc.c */ -#line 1480 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} - break; - - case 191: -/* Line 1792 of yacc.c */ -#line 1485 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} - break; - - case 192: -/* Line 1792 of yacc.c */ -#line 1490 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} - break; - - case 193: -/* Line 1792 of yacc.c */ -#line 1495 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} - break; - - case 194: -/* Line 1792 of yacc.c */ -#line 1500 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); -} - break; - - case 195: -/* Line 1792 of yacc.c */ -#line 1505 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); -} - break; - - case 196: -/* Line 1792 of yacc.c */ -#line 1510 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(5) - (7)].u.param_list), (yyvsp[(7) - (7)].u.integer)); -} - break; - - case 197: -/* Line 1792 of yacc.c */ -#line 1516 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); -} - break; - - case 198: -/* Line 1792 of yacc.c */ -#line 1524 "dtool/src/cppparser/cppBison.yxx" +#line 1472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 4562 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 191: +#line 1476 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 4571 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 192: +#line 1481 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 4580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 193: +#line 1486 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 4589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 194: +#line 1491 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 4598 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 195: +#line 1496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 4607 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 196: +#line 1501 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 4616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 197: +#line 1506 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} +#line 4626 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 198: +#line 1515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); +} +#line 4634 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 199: -/* Line 1792 of yacc.c */ -#line 1528 "dtool/src/cppparser/cppBison.yxx" +#line 1519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.type) != NULL); } +#line 4643 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 200: -/* Line 1792 of yacc.c */ -#line 1533 "dtool/src/cppparser/cppBison.yxx" +#line 1524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 4651 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 201: -/* Line 1792 of yacc.c */ -#line 1538 "dtool/src/cppparser/cppBison.yxx" +#line 1528 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 4659 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 202: -/* Line 1792 of yacc.c */ -#line 1543 "dtool/src/cppparser/cppBison.yxx" +#line 1532 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 4667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 203: -/* Line 1792 of yacc.c */ -#line 1548 "dtool/src/cppparser/cppBison.yxx" +#line 1536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); } +#line 4675 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 204: -/* Line 1792 of yacc.c */ -#line 1553 "dtool/src/cppparser/cppBison.yxx" +#line 1540 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.type) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } } +#line 4695 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 205: -/* Line 1792 of yacc.c */ -#line 1558 "dtool/src/cppparser/cppBison.yxx" +#line 1556 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(5) - (7)].u.param_list), (yyvsp[(7) - (7)].u.integer)); + CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.type) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[-3].u.extension_enum), (yyvsp[-2].u.identifier), current_scope, (yylsp[-3]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[-2].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } } +#line 4715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 206: -/* Line 1792 of yacc.c */ -#line 1567 "dtool/src/cppparser/cppBison.yxx" +#line 1575 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 4723 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 207: -/* Line 1792 of yacc.c */ -#line 1571 "dtool/src/cppparser/cppBison.yxx" +#line 1579 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - assert((yyval.u.type) != NULL); + (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.decl) != NULL); } +#line 4732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 208: -/* Line 1792 of yacc.c */ -#line 1576 "dtool/src/cppparser/cppBison.yxx" +#line 1584 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 4740 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 209: -/* Line 1792 of yacc.c */ -#line 1580 "dtool/src/cppparser/cppBison.yxx" +#line 1588 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 4748 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 210: -/* Line 1792 of yacc.c */ -#line 1584 "dtool/src/cppparser/cppBison.yxx" +#line 1592 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); } +#line 4756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 211: -/* Line 1792 of yacc.c */ -#line 1588 "dtool/src/cppparser/cppBison.yxx" +#line 1596 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); } +#line 4764 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 212: -/* Line 1792 of yacc.c */ -#line 1592 "dtool/src/cppparser/cppBison.yxx" +#line 1600 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - (yyval.u.type) = type; + (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - (yyval.u.type) = et; + (yyval.u.decl) = et; } } +#line 4784 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 213: -/* Line 1792 of yacc.c */ -#line 1608 "dtool/src/cppparser/cppBison.yxx" +#line 1616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - (yyval.u.type) = type; + (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (4)].u.extension_enum), (yyvsp[(2) - (4)].u.identifier), current_scope, (yylsp[(1) - (4)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-3].u.extension_enum), (yyvsp[-2].u.identifier), current_scope, (yylsp[-3]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (4)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[-2].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - (yyval.u.type) = et; + (yyval.u.decl) = et; } } +#line 4804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 214: -/* Line 1792 of yacc.c */ -#line 1627 "dtool/src/cppparser/cppBison.yxx" +#line 1632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); + + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.decl) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.decl) = et; + } } +#line 4826 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 215: -/* Line 1792 of yacc.c */ -#line 1631 "dtool/src/cppparser/cppBison.yxx" +#line 1653 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - assert((yyval.u.decl) != NULL); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 4834 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 216: -/* Line 1792 of yacc.c */ -#line 1636 "dtool/src/cppparser/cppBison.yxx" +#line 1657 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.type) != NULL); } +#line 4843 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 217: -/* Line 1792 of yacc.c */ -#line 1640 "dtool/src/cppparser/cppBison.yxx" +#line 1662 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 4851 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 218: -/* Line 1792 of yacc.c */ -#line 1644 "dtool/src/cppparser/cppBison.yxx" +#line 1666 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.struct_type))); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.type) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } } +#line 4871 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 219: -/* Line 1792 of yacc.c */ -#line 1648 "dtool/src/cppparser/cppBison.yxx" +#line 1682 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.enum_type))); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.type) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } } +#line 4891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 220: -/* Line 1792 of yacc.c */ -#line 1652 "dtool/src/cppparser/cppBison.yxx" +#line 1701 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.decl) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.decl) = et; - } + CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.type) = inst->_type; + delete inst; } +#line 4901 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 221: -/* Line 1792 of yacc.c */ -#line 1668 "dtool/src/cppparser/cppBison.yxx" +#line 1707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.decl) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (4)].u.extension_enum), (yyvsp[(2) - (4)].u.identifier), current_scope, (yylsp[(1) - (4)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (4)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.decl) = et; - } + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[-2]).file); + (yyval.u.type) = inst->_type; + delete inst; } +#line 4912 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 222: -/* Line 1792 of yacc.c */ -#line 1684 "dtool/src/cppparser/cppBison.yxx" - { - yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[(2) - (2)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (2)])); - - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.decl) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.decl) = et; - } -} - break; - - case 223: -/* Line 1792 of yacc.c */ -#line 1705 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); -} - break; - - case 224: -/* Line 1792 of yacc.c */ -#line 1709 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - assert((yyval.u.type) != NULL); -} - break; - - case 225: -/* Line 1792 of yacc.c */ -#line 1714 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); -} - break; - - case 226: -/* Line 1792 of yacc.c */ -#line 1718 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.type) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.type) = et; - } -} - break; - - case 227: -/* Line 1792 of yacc.c */ -#line 1734 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.type) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.type) = et; - } -} - break; - - case 228: -/* Line 1792 of yacc.c */ -#line 1753 "dtool/src/cppparser/cppBison.yxx" - { - CPPInstance *inst = new CPPInstance((yyvsp[(1) - (2)].u.type), (yyvsp[(2) - (2)].u.inst_ident), 0, (yylsp[(1) - (2)]).file); - (yyval.u.type) = inst->_type; - delete inst; -} - break; - - case 229: -/* Line 1792 of yacc.c */ -#line 1759 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[(3) - (3)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance((yyvsp[(2) - (3)].u.type), (yyvsp[(3) - (3)].u.inst_ident), 0, (yylsp[(1) - (3)]).file); - (yyval.u.type) = inst->_type; - delete inst; -} - break; - - case 230: -/* Line 1792 of yacc.c */ -#line 1769 "dtool/src/cppparser/cppBison.yxx" +#line 1717 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = - ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; + ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("anon"), starting_vis); - CPPStructType *st = new CPPStructType((yyvsp[(1) - (2)].u.extension_enum), NULL, current_scope, - new_scope, (yylsp[(1) - (2)]).file); + CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), NULL, current_scope, + new_scope, (yylsp[-1]).file); new_scope->set_struct_type(st); push_scope(new_scope); push_struct(st); } +#line 4930 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 231: -/* Line 1792 of yacc.c */ -#line 1783 "dtool/src/cppparser/cppBison.yxx" + case 223: +#line 1731 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } +#line 4941 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 232: -/* Line 1792 of yacc.c */ -#line 1793 "dtool/src/cppparser/cppBison.yxx" + case 224: +#line 1741 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = - ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; + ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope, current_lexer); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { scope = current_scope; } - CPPScope *new_scope = new CPPScope(scope, (yyvsp[(2) - (2)].u.identifier)->_names.back(), + CPPScope *new_scope = new CPPScope(scope, (yyvsp[0].u.identifier)->_names.back(), starting_vis); - CPPStructType *st = new CPPStructType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, - new_scope, (yylsp[(1) - (2)]).file); + CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, + new_scope, (yylsp[-1]).file); new_scope->set_struct_type(st); current_scope->define_extension_type(st); push_scope(new_scope); push_struct(st); } +#line 4965 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 233: -/* Line 1792 of yacc.c */ -#line 1813 "dtool/src/cppparser/cppBison.yxx" + case 225: +#line 1761 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } +#line 4976 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 230: +#line 1781 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, false); +} +#line 4984 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 231: +#line 1785 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); +} +#line 4992 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 232: +#line 1789 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); +} +#line 5000 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 233: +#line 1793 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} +#line 5008 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 234: +#line 1797 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} +#line 5016 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 235: +#line 1801 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 5024 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 236: +#line 1805 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} +#line 5032 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 237: +#line 1809 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} +#line 5040 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 238: -/* Line 1792 of yacc.c */ -#line 1833 "dtool/src/cppparser/cppBison.yxx" +#line 1813 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_public, false); + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } +#line 5048 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 239: -/* Line 1792 of yacc.c */ -#line 1837 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_protected, false); -} - break; - - case 240: -/* Line 1792 of yacc.c */ -#line 1841 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_private, false); -} - break; - - case 241: -/* Line 1792 of yacc.c */ -#line 1845 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 242: -/* Line 1792 of yacc.c */ -#line 1849 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); -} - break; - - case 243: -/* Line 1792 of yacc.c */ -#line 1853 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); -} - break; - - case 244: -/* Line 1792 of yacc.c */ -#line 1857 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 245: -/* Line 1792 of yacc.c */ -#line 1861 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); -} - break; - - case 246: -/* Line 1792 of yacc.c */ -#line 1865 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); -} - break; - - case 247: -/* Line 1792 of yacc.c */ -#line 1872 "dtool/src/cppparser/cppBison.yxx" +#line 1820 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.enum_type) = current_enum; current_enum = NULL; } +#line 5057 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 240: +#line 1828 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_enum = new CPPEnumType((yyvsp[-2].u.identifier), (yyvsp[0].u.type), current_scope, (yylsp[-3]).file); +} +#line 5065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 241: +#line 1832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_enum = new CPPEnumType((yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file); +} +#line 5073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 242: +#line 1836 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_enum = new CPPEnumType(NULL, (yyvsp[0].u.type), current_scope, (yylsp[-2]).file); +} +#line 5081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 243: +#line 1840 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_enum = new CPPEnumType(NULL, current_scope, (yylsp[0]).file); +} +#line 5089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 244: +#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); +} +#line 5097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 245: +#line 1851 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); +} +#line 5105 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 247: +#line 1859 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + assert(current_enum != NULL); + CPPInstance *inst = current_enum->add_element((yyvsp[-1].u.identifier)->get_simple_name()); + current_scope->add_enum_value(inst, current_lexer, (yylsp[-1])); +} +#line 5115 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 248: -/* Line 1792 of yacc.c */ -#line 1880 "dtool/src/cppparser/cppBison.yxx" +#line 1865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type), current_scope, (yylsp[(1) - (4)]).file); -} - break; - - case 249: -/* Line 1792 of yacc.c */ -#line 1884 "dtool/src/cppparser/cppBison.yxx" - { - current_enum = new CPPEnumType((yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file); + assert(current_enum != NULL); + CPPInstance *inst = current_enum->add_element((yyvsp[-3].u.identifier)->get_simple_name(), (yyvsp[-1].u.expr)); + current_scope->add_enum_value(inst, current_lexer, (yylsp[-3])); } +#line 5125 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 250: -/* Line 1792 of yacc.c */ -#line 1888 "dtool/src/cppparser/cppBison.yxx" +#line 1874 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType(NULL, (yyvsp[(3) - (3)].u.type), current_scope, (yylsp[(1) - (3)]).file); + assert(current_enum != NULL); + CPPInstance *inst = current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name()); + current_scope->add_enum_value(inst, current_lexer, (yylsp[0])); } +#line 5135 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 251: -/* Line 1792 of yacc.c */ -#line 1892 "dtool/src/cppparser/cppBison.yxx" +#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType(NULL, current_scope, (yylsp[(1) - (1)]).file); + assert(current_enum != NULL); + CPPInstance *inst = current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), (yyvsp[0].u.expr)); + current_scope->add_enum_value(inst, current_lexer, (yylsp[-2])); } +#line 5145 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 252: -/* Line 1792 of yacc.c */ -#line 1899 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); -} - break; - - case 253: -/* Line 1792 of yacc.c */ -#line 1903 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); -} - break; - - case 255: -/* Line 1792 of yacc.c */ -#line 1911 "dtool/src/cppparser/cppBison.yxx" - { - assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (3)].u.identifier)->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (3)])); -} - break; - - case 256: -/* Line 1792 of yacc.c */ -#line 1917 "dtool/src/cppparser/cppBison.yxx" - { - assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (5)].u.identifier)->get_simple_name(), (yyvsp[(4) - (5)].u.expr)); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (5)])); -} - break; - - case 258: -/* Line 1792 of yacc.c */ -#line 1926 "dtool/src/cppparser/cppBison.yxx" - { - assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (2)].u.identifier)->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (2)])); -} - break; - - case 259: -/* Line 1792 of yacc.c */ -#line 1932 "dtool/src/cppparser/cppBison.yxx" - { - assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (4)].u.identifier)->get_simple_name(), (yyvsp[(4) - (4)].u.expr)); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (4)])); -} - break; - - case 260: -/* Line 1792 of yacc.c */ -#line 1941 "dtool/src/cppparser/cppBison.yxx" +#line 1889 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } +#line 5153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 261: -/* Line 1792 of yacc.c */ -#line 1948 "dtool/src/cppparser/cppBison.yxx" + case 253: +#line 1896 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.extension_enum) = CPPExtensionType::T_class; } +#line 5161 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 262: -/* Line 1792 of yacc.c */ -#line 1952 "dtool/src/cppparser/cppBison.yxx" + case 254: +#line 1900 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.extension_enum) = CPPExtensionType::T_struct; } +#line 5169 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 263: -/* Line 1792 of yacc.c */ -#line 1956 "dtool/src/cppparser/cppBison.yxx" + case 255: +#line 1904 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.extension_enum) = CPPExtensionType::T_union; } +#line 5177 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 264: -/* Line 1792 of yacc.c */ -#line 1963 "dtool/src/cppparser/cppBison.yxx" + case 256: +#line 1911 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPScope *scope = (yyvsp[(2) - (3)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); + CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { // This must be a new namespace declaration. CPPScope *parent_scope = - (yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope, current_lexer); + (yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope, current_lexer); if (parent_scope == NULL) { parent_scope = current_scope; } - scope = new CPPScope(parent_scope, (yyvsp[(2) - (3)].u.identifier)->_names.back(), V_public); + scope = new CPPScope(parent_scope, (yyvsp[-1].u.identifier)->_names.back(), V_public); } - CPPNamespace *nspace = new CPPNamespace((yyvsp[(2) - (3)].u.identifier), scope, (yylsp[(1) - (3)]).file); - current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[(1) - (3)])); + CPPNamespace *nspace = new CPPNamespace((yyvsp[-1].u.identifier), scope, (yylsp[-2]).file); + current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[-2])); current_scope->define_namespace(nspace); push_scope(scope); } +#line 5199 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 265: -/* Line 1792 of yacc.c */ -#line 1981 "dtool/src/cppparser/cppBison.yxx" + case 257: +#line 1929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } +#line 5207 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 267: -/* Line 1792 of yacc.c */ -#line 1989 "dtool/src/cppparser/cppBison.yxx" + case 259: +#line 1937 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPUsing *using_decl = new CPPUsing((yyvsp[(2) - (2)].u.identifier), false, (yylsp[(1) - (2)]).file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (2)])); + CPPUsing *using_decl = new CPPUsing((yyvsp[0].u.identifier), false, (yylsp[-1]).file); + current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-1])); current_scope->add_using(using_decl, global_scope, current_lexer); } +#line 5217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 268: -/* Line 1792 of yacc.c */ -#line 1995 "dtool/src/cppparser/cppBison.yxx" + case 260: +#line 1943 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPUsing *using_decl = new CPPUsing((yyvsp[(3) - (3)].u.identifier), true, (yylsp[(1) - (3)]).file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (3)])); + CPPUsing *using_decl = new CPPUsing((yyvsp[0].u.identifier), true, (yylsp[-2]).file); + current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-2])); current_scope->add_using(using_decl, global_scope, current_lexer); } +#line 5227 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 272: -/* Line 1792 of yacc.c */ -#line 2010 "dtool/src/cppparser/cppBison.yxx" + case 264: +#line 1958 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } +#line 5235 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 273: -/* Line 1792 of yacc.c */ -#line 2014 "dtool/src/cppparser/cppBison.yxx" + case 265: +#line 1962 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } +#line 5243 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 274: -/* Line 1792 of yacc.c */ -#line 2018 "dtool/src/cppparser/cppBison.yxx" + case 266: +#line 1966 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } +#line 5251 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 275: -/* Line 1792 of yacc.c */ -#line 2022 "dtool/src/cppparser/cppBison.yxx" + case 267: +#line 1970 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } +#line 5259 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 276: -/* Line 1792 of yacc.c */ -#line 2026 "dtool/src/cppparser/cppBison.yxx" + case 268: +#line 1974 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } +#line 5267 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 277: -/* Line 1792 of yacc.c */ -#line 2030 "dtool/src/cppparser/cppBison.yxx" + case 269: +#line 1978 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } +#line 5276 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 278: -/* Line 1792 of yacc.c */ -#line 2035 "dtool/src/cppparser/cppBison.yxx" + case 270: +#line 1983 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } +#line 5285 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 279: -/* Line 1792 of yacc.c */ -#line 2040 "dtool/src/cppparser/cppBison.yxx" + case 271: +#line 1988 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_longlong); } +#line 5294 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 280: -/* Line 1792 of yacc.c */ -#line 2045 "dtool/src/cppparser/cppBison.yxx" + case 272: +#line 1993 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } +#line 5303 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 281: -/* Line 1792 of yacc.c */ -#line 2050 "dtool/src/cppparser/cppBison.yxx" + case 273: +#line 1998 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } +#line 5312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 282: -/* Line 1792 of yacc.c */ -#line 2055 "dtool/src/cppparser/cppBison.yxx" + case 274: +#line 2003 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } +#line 5320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 283: -/* Line 1792 of yacc.c */ -#line 2059 "dtool/src/cppparser/cppBison.yxx" + case 275: +#line 2007 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; } +#line 5329 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 284: -/* Line 1792 of yacc.c */ -#line 2064 "dtool/src/cppparser/cppBison.yxx" + case 276: +#line 2012 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { (yyval.u.simple_type)->_flags |= CPPSimpleType::F_longlong; } else { (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } +#line 5342 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 285: -/* Line 1792 of yacc.c */ -#line 2073 "dtool/src/cppparser/cppBison.yxx" + case 277: +#line 2021 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } +#line 5351 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 286: -/* Line 1792 of yacc.c */ -#line 2078 "dtool/src/cppparser/cppBison.yxx" + case 278: +#line 2026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } +#line 5360 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 287: -/* Line 1792 of yacc.c */ -#line 2086 "dtool/src/cppparser/cppBison.yxx" + case 279: +#line 2034 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } +#line 5368 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 288: -/* Line 1792 of yacc.c */ -#line 2090 "dtool/src/cppparser/cppBison.yxx" + case 280: +#line 2038 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_long); } +#line 5377 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 289: -/* Line 1792 of yacc.c */ -#line 2095 "dtool/src/cppparser/cppBison.yxx" + case 281: +#line 2043 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } +#line 5385 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 290: -/* Line 1792 of yacc.c */ -#line 2099 "dtool/src/cppparser/cppBison.yxx" + case 282: +#line 2047 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_longlong); } +#line 5394 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 291: -/* Line 1792 of yacc.c */ -#line 2104 "dtool/src/cppparser/cppBison.yxx" + case 283: +#line 2052 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } +#line 5403 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 292: -/* Line 1792 of yacc.c */ -#line 2112 "dtool/src/cppparser/cppBison.yxx" + case 284: +#line 2060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } +#line 5411 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 293: -/* Line 1792 of yacc.c */ -#line 2121 "dtool/src/cppparser/cppBison.yxx" + case 285: +#line 2069 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = false; } +#line 5419 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 294: -/* Line 1792 of yacc.c */ -#line 2125 "dtool/src/cppparser/cppBison.yxx" + case 286: +#line 2073 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = true; } +#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 381: -/* Line 1792 of yacc.c */ -#line 2163 "dtool/src/cppparser/cppBison.yxx" + case 373: +#line 2111 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } +#line 5434 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 397: +#line 2120 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5442 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 398: +#line 2124 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5450 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 399: +#line 2131 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5458 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 400: +#line 2135 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5466 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 401: +#line 2142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5474 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 402: +#line 2146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 5482 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 403: +#line 2153 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5490 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 404: +#line 2157 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} +#line 5498 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 405: -/* Line 1792 of yacc.c */ -#line 2172 "dtool/src/cppparser/cppBison.yxx" +#line 2161 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); } +#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 406: -/* Line 1792 of yacc.c */ -#line 2176 "dtool/src/cppparser/cppBison.yxx" +#line 2165 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); } +#line 5514 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 407: -/* Line 1792 of yacc.c */ -#line 2183 "dtool/src/cppparser/cppBison.yxx" +#line 2169 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } +#line 5522 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 408: -/* Line 1792 of yacc.c */ -#line 2187 "dtool/src/cppparser/cppBison.yxx" +#line 2173 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } +#line 5530 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 409: -/* Line 1792 of yacc.c */ -#line 2194 "dtool/src/cppparser/cppBison.yxx" +#line 2177 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } +#line 5538 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 410: -/* Line 1792 of yacc.c */ -#line 2198 "dtool/src/cppparser/cppBison.yxx" +#line 2181 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(',', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; + } else { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); + } } +#line 5554 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 411: -/* Line 1792 of yacc.c */ -#line 2205 "dtool/src/cppparser/cppBison.yxx" +#line 2193 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } +#line 5562 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 412: -/* Line 1792 of yacc.c */ -#line 2209 "dtool/src/cppparser/cppBison.yxx" +#line 2197 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } +#line 5570 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 413: -/* Line 1792 of yacc.c */ -#line 2213 "dtool/src/cppparser/cppBison.yxx" +#line 2201 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 414: -/* Line 1792 of yacc.c */ -#line 2217 "dtool/src/cppparser/cppBison.yxx" +#line 2205 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5586 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 415: -/* Line 1792 of yacc.c */ -#line 2221 "dtool/src/cppparser/cppBison.yxx" +#line 2209 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5594 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 416: -/* Line 1792 of yacc.c */ -#line 2225 "dtool/src/cppparser/cppBison.yxx" +#line 2213 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 417: -/* Line 1792 of yacc.c */ -#line 2229 "dtool/src/cppparser/cppBison.yxx" +#line 2217 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5610 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 418: -/* Line 1792 of yacc.c */ -#line 2233 "dtool/src/cppparser/cppBison.yxx" +#line 2221 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; - } else if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_real) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; - } else { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); - } + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5618 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 419: -/* Line 1792 of yacc.c */ -#line 2245 "dtool/src/cppparser/cppBison.yxx" +#line 2225 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5626 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 420: -/* Line 1792 of yacc.c */ -#line 2249 "dtool/src/cppparser/cppBison.yxx" +#line 2229 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5634 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 421: -/* Line 1792 of yacc.c */ -#line 2253 "dtool/src/cppparser/cppBison.yxx" +#line 2233 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5642 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 422: -/* Line 1792 of yacc.c */ -#line 2257 "dtool/src/cppparser/cppBison.yxx" +#line 2237 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5650 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 423: -/* Line 1792 of yacc.c */ -#line 2261 "dtool/src/cppparser/cppBison.yxx" +#line 2241 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5658 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 424: -/* Line 1792 of yacc.c */ -#line 2265 "dtool/src/cppparser/cppBison.yxx" +#line 2245 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5666 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 425: -/* Line 1792 of yacc.c */ -#line 2269 "dtool/src/cppparser/cppBison.yxx" +#line 2249 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5674 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 426: -/* Line 1792 of yacc.c */ -#line 2273 "dtool/src/cppparser/cppBison.yxx" +#line 2253 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5682 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 427: -/* Line 1792 of yacc.c */ -#line 2277 "dtool/src/cppparser/cppBison.yxx" +#line 2257 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5690 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 428: -/* Line 1792 of yacc.c */ -#line 2281 "dtool/src/cppparser/cppBison.yxx" +#line 2261 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5698 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 429: -/* Line 1792 of yacc.c */ -#line 2285 "dtool/src/cppparser/cppBison.yxx" +#line 2265 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5706 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 430: -/* Line 1792 of yacc.c */ -#line 2289 "dtool/src/cppparser/cppBison.yxx" +#line 2269 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 5714 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 431: -/* Line 1792 of yacc.c */ -#line 2293 "dtool/src/cppparser/cppBison.yxx" +#line 2273 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 5722 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 432: -/* Line 1792 of yacc.c */ -#line 2297 "dtool/src/cppparser/cppBison.yxx" +#line 2277 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } +#line 5730 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 433: -/* Line 1792 of yacc.c */ -#line 2301 "dtool/src/cppparser/cppBison.yxx" +#line 2281 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5738 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 434: -/* Line 1792 of yacc.c */ -#line 2305 "dtool/src/cppparser/cppBison.yxx" +#line 2285 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 5746 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 435: -/* Line 1792 of yacc.c */ -#line 2309 "dtool/src/cppparser/cppBison.yxx" +#line 2289 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 5754 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 436: -/* Line 1792 of yacc.c */ -#line 2313 "dtool/src/cppparser/cppBison.yxx" +#line 2297 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 5762 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 437: -/* Line 1792 of yacc.c */ -#line 2317 "dtool/src/cppparser/cppBison.yxx" +#line 2301 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } +#line 5770 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 438: -/* Line 1792 of yacc.c */ -#line 2321 "dtool/src/cppparser/cppBison.yxx" +#line 2305 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); } +#line 5778 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 439: -/* Line 1792 of yacc.c */ -#line 2325 "dtool/src/cppparser/cppBison.yxx" +#line 2309 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); } +#line 5786 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 440: -/* Line 1792 of yacc.c */ -#line 2329 "dtool/src/cppparser/cppBison.yxx" +#line 2313 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); + // A constructor call. + CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert(type != NULL); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5797 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 441: -/* Line 1792 of yacc.c */ -#line 2333 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 442: -/* Line 1792 of yacc.c */ -#line 2337 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 443: -/* Line 1792 of yacc.c */ -#line 2341 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 444: -/* Line 1792 of yacc.c */ -#line 2349 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 445: -/* Line 1792 of yacc.c */ -#line 2353 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); -} - break; - - case 446: -/* Line 1792 of yacc.c */ -#line 2357 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); -} - break; - - case 447: -/* Line 1792 of yacc.c */ -#line 2361 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); -} - break; - - case 448: -/* Line 1792 of yacc.c */ -#line 2365 "dtool/src/cppparser/cppBison.yxx" - { - // A constructor call. - CPPType *type = (yyvsp[(1) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - assert(type != NULL); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); -} - break; - - case 449: -/* Line 1792 of yacc.c */ -#line 2372 "dtool/src/cppparser/cppBison.yxx" +#line 2320 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5807 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 450: -/* Line 1792 of yacc.c */ -#line 2378 "dtool/src/cppparser/cppBison.yxx" + case 442: +#line 2326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5817 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 451: -/* Line 1792 of yacc.c */ -#line 2384 "dtool/src/cppparser/cppBison.yxx" + case 443: +#line 2332 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 452: -/* Line 1792 of yacc.c */ -#line 2390 "dtool/src/cppparser/cppBison.yxx" + case 444: +#line 2338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5837 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 453: -/* Line 1792 of yacc.c */ -#line 2396 "dtool/src/cppparser/cppBison.yxx" + case 445: +#line 2344 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5847 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 454: -/* Line 1792 of yacc.c */ -#line 2402 "dtool/src/cppparser/cppBison.yxx" + case 446: +#line 2350 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5857 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 455: -/* Line 1792 of yacc.c */ -#line 2408 "dtool/src/cppparser/cppBison.yxx" + case 447: +#line 2356 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5868 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 456: -/* Line 1792 of yacc.c */ -#line 2415 "dtool/src/cppparser/cppBison.yxx" + case 448: +#line 2363 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5879 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 457: -/* Line 1792 of yacc.c */ -#line 2422 "dtool/src/cppparser/cppBison.yxx" + case 449: +#line 2370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5890 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 458: -/* Line 1792 of yacc.c */ -#line 2429 "dtool/src/cppparser/cppBison.yxx" + case 450: +#line 2377 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5901 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 459: -/* Line 1792 of yacc.c */ -#line 2436 "dtool/src/cppparser/cppBison.yxx" + case 451: +#line 2384 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5911 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 460: -/* Line 1792 of yacc.c */ -#line 2442 "dtool/src/cppparser/cppBison.yxx" + case 452: +#line 2390 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 5921 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 453: +#line 2396 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 5929 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 454: +#line 2400 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 5937 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 455: +#line 2404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); +} +#line 5945 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 456: +#line 2408 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} +#line 5953 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 457: +#line 2412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} +#line 5961 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 458: +#line 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; + } else { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); + } +} +#line 5977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 459: +#line 2428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); +} +#line 5985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 460: +#line 2432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} +#line 5993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 461: -/* Line 1792 of yacc.c */ -#line 2448 "dtool/src/cppparser/cppBison.yxx" +#line 2436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 462: -/* Line 1792 of yacc.c */ -#line 2452 "dtool/src/cppparser/cppBison.yxx" +#line 2440 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6009 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 463: -/* Line 1792 of yacc.c */ -#line 2456 "dtool/src/cppparser/cppBison.yxx" +#line 2444 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6017 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 464: -/* Line 1792 of yacc.c */ -#line 2460 "dtool/src/cppparser/cppBison.yxx" +#line 2448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 465: -/* Line 1792 of yacc.c */ -#line 2464 "dtool/src/cppparser/cppBison.yxx" +#line 2452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 466: -/* Line 1792 of yacc.c */ -#line 2468 "dtool/src/cppparser/cppBison.yxx" +#line 2456 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; - } else if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_real) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; - } else { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); - } + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6041 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 467: -/* Line 1792 of yacc.c */ -#line 2480 "dtool/src/cppparser/cppBison.yxx" +#line 2460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6049 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 468: -/* Line 1792 of yacc.c */ -#line 2484 "dtool/src/cppparser/cppBison.yxx" +#line 2464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6057 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 469: -/* Line 1792 of yacc.c */ -#line 2488 "dtool/src/cppparser/cppBison.yxx" +#line 2468 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 470: -/* Line 1792 of yacc.c */ -#line 2492 "dtool/src/cppparser/cppBison.yxx" +#line 2472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 471: -/* Line 1792 of yacc.c */ -#line 2496 "dtool/src/cppparser/cppBison.yxx" +#line 2476 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 472: -/* Line 1792 of yacc.c */ -#line 2500 "dtool/src/cppparser/cppBison.yxx" +#line 2480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 473: -/* Line 1792 of yacc.c */ -#line 2504 "dtool/src/cppparser/cppBison.yxx" +#line 2484 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 474: -/* Line 1792 of yacc.c */ -#line 2508 "dtool/src/cppparser/cppBison.yxx" +#line 2488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6105 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 475: -/* Line 1792 of yacc.c */ -#line 2512 "dtool/src/cppparser/cppBison.yxx" +#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 476: -/* Line 1792 of yacc.c */ -#line 2516 "dtool/src/cppparser/cppBison.yxx" +#line 2496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6121 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 477: -/* Line 1792 of yacc.c */ -#line 2520 "dtool/src/cppparser/cppBison.yxx" +#line 2500 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6129 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 478: -/* Line 1792 of yacc.c */ -#line 2524 "dtool/src/cppparser/cppBison.yxx" +#line 2504 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6137 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 479: -/* Line 1792 of yacc.c */ -#line 2528 "dtool/src/cppparser/cppBison.yxx" +#line 2508 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6145 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 480: -/* Line 1792 of yacc.c */ -#line 2532 "dtool/src/cppparser/cppBison.yxx" +#line 2512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 481: -/* Line 1792 of yacc.c */ -#line 2536 "dtool/src/cppparser/cppBison.yxx" +#line 2516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6161 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 482: -/* Line 1792 of yacc.c */ -#line 2540 "dtool/src/cppparser/cppBison.yxx" +#line 2520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } +#line 6169 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 483: -/* Line 1792 of yacc.c */ -#line 2544 "dtool/src/cppparser/cppBison.yxx" +#line 2524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6177 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 484: -/* Line 1792 of yacc.c */ -#line 2548 "dtool/src/cppparser/cppBison.yxx" +#line 2528 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6185 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 485: -/* Line 1792 of yacc.c */ -#line 2552 "dtool/src/cppparser/cppBison.yxx" +#line 2532 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 6193 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 486: -/* Line 1792 of yacc.c */ -#line 2556 "dtool/src/cppparser/cppBison.yxx" +#line 2539 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 6201 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 487: -/* Line 1792 of yacc.c */ -#line 2560 "dtool/src/cppparser/cppBison.yxx" +#line 2543 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); + (yyval.u.expr) = new CPPExpression(true); } +#line 6209 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 488: -/* Line 1792 of yacc.c */ -#line 2564 "dtool/src/cppparser/cppBison.yxx" +#line 2547 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression(false); } +#line 6217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 489: -/* Line 1792 of yacc.c */ -#line 2568 "dtool/src/cppparser/cppBison.yxx" +#line 2551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 6225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 490: -/* Line 1792 of yacc.c */ -#line 2572 "dtool/src/cppparser/cppBison.yxx" +#line 2555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } +#line 6233 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 491: -/* Line 1792 of yacc.c */ -#line 2576 "dtool/src/cppparser/cppBison.yxx" +#line 2559 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); } +#line 6241 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 492: -/* Line 1792 of yacc.c */ -#line 2580 "dtool/src/cppparser/cppBison.yxx" +#line 2563 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } +#line 6249 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 493: -/* Line 1792 of yacc.c */ -#line 2584 "dtool/src/cppparser/cppBison.yxx" +#line 2577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6257 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 494: -/* Line 1792 of yacc.c */ -#line 2591 "dtool/src/cppparser/cppBison.yxx" +#line 2581 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } +#line 6265 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 495: -/* Line 1792 of yacc.c */ -#line 2595 "dtool/src/cppparser/cppBison.yxx" +#line 2585 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); } +#line 6273 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 496: -/* Line 1792 of yacc.c */ -#line 2599 "dtool/src/cppparser/cppBison.yxx" +#line 2589 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); } +#line 6281 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 497: -/* Line 1792 of yacc.c */ -#line 2603 "dtool/src/cppparser/cppBison.yxx" +#line 2593 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } +#line 6289 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 498: -/* Line 1792 of yacc.c */ -#line 2607 "dtool/src/cppparser/cppBison.yxx" +#line 2597 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } +#line 6297 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 499: -/* Line 1792 of yacc.c */ -#line 2611 "dtool/src/cppparser/cppBison.yxx" +#line 2601 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } +#line 6305 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 500: -/* Line 1792 of yacc.c */ -#line 2615 "dtool/src/cppparser/cppBison.yxx" +#line 2605 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } +#line 6313 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 501: -/* Line 1792 of yacc.c */ -#line 2629 "dtool/src/cppparser/cppBison.yxx" +#line 2609 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } +#line 6321 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 502: -/* Line 1792 of yacc.c */ -#line 2633 "dtool/src/cppparser/cppBison.yxx" +#line 2613 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); + if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; + } else { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); + } } +#line 6337 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 503: -/* Line 1792 of yacc.c */ -#line 2637 "dtool/src/cppparser/cppBison.yxx" +#line 2625 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } +#line 6345 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 504: -/* Line 1792 of yacc.c */ -#line 2641 "dtool/src/cppparser/cppBison.yxx" +#line 2629 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6353 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 505: -/* Line 1792 of yacc.c */ -#line 2645 "dtool/src/cppparser/cppBison.yxx" +#line 2633 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6361 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 506: -/* Line 1792 of yacc.c */ -#line 2649 "dtool/src/cppparser/cppBison.yxx" +#line 2637 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6369 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 507: -/* Line 1792 of yacc.c */ -#line 2653 "dtool/src/cppparser/cppBison.yxx" +#line 2641 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6377 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 508: -/* Line 1792 of yacc.c */ -#line 2657 "dtool/src/cppparser/cppBison.yxx" +#line 2645 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6385 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 509: -/* Line 1792 of yacc.c */ -#line 2661 "dtool/src/cppparser/cppBison.yxx" +#line 2649 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6393 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 510: -/* Line 1792 of yacc.c */ -#line 2665 "dtool/src/cppparser/cppBison.yxx" +#line 2653 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; - } else if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_real) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; - } else { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); - } + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6401 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 511: -/* Line 1792 of yacc.c */ -#line 2677 "dtool/src/cppparser/cppBison.yxx" +#line 2657 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 512: -/* Line 1792 of yacc.c */ -#line 2681 "dtool/src/cppparser/cppBison.yxx" +#line 2661 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6417 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 513: -/* Line 1792 of yacc.c */ -#line 2685 "dtool/src/cppparser/cppBison.yxx" +#line 2665 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6425 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 514: -/* Line 1792 of yacc.c */ -#line 2689 "dtool/src/cppparser/cppBison.yxx" +#line 2669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6433 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 515: -/* Line 1792 of yacc.c */ -#line 2693 "dtool/src/cppparser/cppBison.yxx" +#line 2673 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6441 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 516: -/* Line 1792 of yacc.c */ -#line 2697 "dtool/src/cppparser/cppBison.yxx" +#line 2677 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6449 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 517: -/* Line 1792 of yacc.c */ -#line 2701 "dtool/src/cppparser/cppBison.yxx" +#line 2681 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 518: -/* Line 1792 of yacc.c */ -#line 2705 "dtool/src/cppparser/cppBison.yxx" +#line 2685 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 519: -/* Line 1792 of yacc.c */ -#line 2709 "dtool/src/cppparser/cppBison.yxx" +#line 2689 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6473 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 520: -/* Line 1792 of yacc.c */ -#line 2713 "dtool/src/cppparser/cppBison.yxx" +#line 2693 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6481 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 521: -/* Line 1792 of yacc.c */ -#line 2717 "dtool/src/cppparser/cppBison.yxx" +#line 2697 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6489 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 522: -/* Line 1792 of yacc.c */ -#line 2721 "dtool/src/cppparser/cppBison.yxx" +#line 2701 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 523: -/* Line 1792 of yacc.c */ -#line 2725 "dtool/src/cppparser/cppBison.yxx" +#line 2705 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6505 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 524: -/* Line 1792 of yacc.c */ -#line 2729 "dtool/src/cppparser/cppBison.yxx" +#line 2709 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6513 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 525: -/* Line 1792 of yacc.c */ -#line 2733 "dtool/src/cppparser/cppBison.yxx" +#line 2713 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } +#line 6521 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 526: -/* Line 1792 of yacc.c */ -#line 2737 "dtool/src/cppparser/cppBison.yxx" +#line 2717 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6529 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 527: -/* Line 1792 of yacc.c */ -#line 2741 "dtool/src/cppparser/cppBison.yxx" +#line 2721 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6537 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 528: -/* Line 1792 of yacc.c */ -#line 2745 "dtool/src/cppparser/cppBison.yxx" +#line 2725 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 6545 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 529: -/* Line 1792 of yacc.c */ -#line 2749 "dtool/src/cppparser/cppBison.yxx" +#line 2732 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 6553 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 530: -/* Line 1792 of yacc.c */ -#line 2753 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); -} - break; - - case 531: -/* Line 1792 of yacc.c */ -#line 2757 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 532: -/* Line 1792 of yacc.c */ -#line 2761 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 533: -/* Line 1792 of yacc.c */ -#line 2765 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 534: -/* Line 1792 of yacc.c */ -#line 2769 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 535: -/* Line 1792 of yacc.c */ -#line 2773 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 536: -/* Line 1792 of yacc.c */ -#line 2777 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 537: -/* Line 1792 of yacc.c */ -#line 2784 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 538: -/* Line 1792 of yacc.c */ -#line 2788 "dtool/src/cppparser/cppBison.yxx" +#line 2736 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(true); } +#line 6561 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 539: -/* Line 1792 of yacc.c */ -#line 2792 "dtool/src/cppparser/cppBison.yxx" + case 531: +#line 2740 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(false); } +#line 6569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 532: +#line 2744 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 6577 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 533: +#line 2748 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 6585 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 534: +#line 2752 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 6593 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 535: +#line 2759 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); + if (type == NULL) { + type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); + } + (yyval.u.type) = type; +} +#line 6605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 536: +#line 2767 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); + if (type == NULL) { + type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); + } + (yyval.u.type) = type; +} +#line 6617 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 537: +#line 2775 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} +#line 6625 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 538: +#line 2798 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 6633 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 539: +#line 2802 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 6641 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 540: -/* Line 1792 of yacc.c */ -#line 2796 "dtool/src/cppparser/cppBison.yxx" +#line 2809 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.str) = (yyvsp[0].str); } +#line 6649 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 541: -/* Line 1792 of yacc.c */ -#line 2800 "dtool/src/cppparser/cppBison.yxx" +#line 2813 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); -} - break; - - case 542: -/* Line 1792 of yacc.c */ -#line 2804 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); -} - break; - - case 543: -/* Line 1792 of yacc.c */ -#line 2811 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, true); - if (type == NULL) { - type = CPPType::new_type(new CPPTBDType((yyvsp[(1) - (1)].u.identifier))); - } - (yyval.u.type) = type; -} - break; - - case 544: -/* Line 1792 of yacc.c */ -#line 2819 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); - if (type == NULL) { - type = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); - } - (yyval.u.type) = type; -} - break; - - case 545: -/* Line 1792 of yacc.c */ -#line 2827 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); -} - break; - - case 546: -/* Line 1792 of yacc.c */ -#line 2850 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); -} - break; - - case 547: -/* Line 1792 of yacc.c */ -#line 2854 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); -} - break; - - case 548: -/* Line 1792 of yacc.c */ -#line 2861 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = (yyvsp[(1) - (1)].str); -} - break; - - case 549: -/* Line 1792 of yacc.c */ -#line 2865 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = (yyvsp[(1) - (2)].str) + (yyvsp[(2) - (2)].str); + (yyval.str) = (yyvsp[-1].str) + (yyvsp[0].str); } +#line 6657 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; -/* Line 1792 of yacc.c */ -#line 7133 "built/tmp/cppBison.yxx.c" +#line 6661 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7152,7 +6680,7 @@ yyreduce: *++yyvsp = yyval; *++yylsp = yyloc; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -7167,9 +6695,9 @@ yyreduce: goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -7220,20 +6748,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, &yylloc); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, &yylloc); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -7253,7 +6781,7 @@ yyerrorlab: goto yyerrorlab; yyerror_range[1] = yylsp[1-yylen]; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7266,29 +6794,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp); + yystos[yystate], yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -7344,14 +6872,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp); + yystos[*yyssp], yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -7362,8 +6890,5 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index 491ce5dc46..5232fee336 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ #ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED # define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED -/* Enabling traces. */ +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -40,117 +40,116 @@ extern int cppyydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - REAL = 258, - INTEGER = 259, - CHAR_TOK = 260, - STRING = 261, - SIMPLE_IDENTIFIER = 262, - IDENTIFIER = 263, - TYPENAME_IDENTIFIER = 264, - SCOPING = 265, - TYPEDEFNAME = 266, - ELLIPSIS = 267, - OROR = 268, - ANDAND = 269, - EQCOMPARE = 270, - NECOMPARE = 271, - LECOMPARE = 272, - GECOMPARE = 273, - LSHIFT = 274, - RSHIFT = 275, - POINTSAT_STAR = 276, - DOT_STAR = 277, - UNARY = 278, - UNARY_NOT = 279, - UNARY_NEGATE = 280, - UNARY_MINUS = 281, - UNARY_STAR = 282, - UNARY_REF = 283, - POINTSAT = 284, - SCOPE = 285, - PLUSPLUS = 286, - MINUSMINUS = 287, - TIMESEQUAL = 288, - DIVIDEEQUAL = 289, - MODEQUAL = 290, - PLUSEQUAL = 291, - MINUSEQUAL = 292, - OREQUAL = 293, - ANDEQUAL = 294, - XOREQUAL = 295, - LSHIFTEQUAL = 296, - RSHIFTEQUAL = 297, - KW_BEGIN_PUBLISH = 298, - KW_BLOCKING = 299, - KW_BOOL = 300, - KW_CATCH = 301, - KW_CHAR = 302, - KW_CHAR16_T = 303, - KW_CHAR32_T = 304, - KW_CLASS = 305, - KW_CONST = 306, - KW_DELETE = 307, - KW_DOUBLE = 308, - KW_DYNAMIC_CAST = 309, - KW_ELSE = 310, - KW_END_PUBLISH = 311, - KW_ENUM = 312, - KW_EXTENSION = 313, - KW_EXTERN = 314, - KW_EXPLICIT = 315, - KW_PUBLISHED = 316, - KW_FALSE = 317, - KW_FLOAT = 318, - KW_FRIEND = 319, - KW_FOR = 320, - KW_GOTO = 321, - KW_IF = 322, - KW_INLINE = 323, - KW_INT = 324, - KW_LONG = 325, - KW_LONGLONG = 326, - KW_MAKE_PROPERTY = 327, - KW_MAKE_SEQ = 328, - KW_MUTABLE = 329, - KW_NAMESPACE = 330, - KW_NEW = 331, - KW_NOEXCEPT = 332, - KW_OPERATOR = 333, - KW_PRIVATE = 334, - KW_PROTECTED = 335, - KW_PUBLIC = 336, - KW_REGISTER = 337, - KW_RETURN = 338, - KW_SHORT = 339, - KW_SIGNED = 340, - KW_SIZEOF = 341, - KW_STATIC = 342, - KW_STATIC_CAST = 343, - KW_STRUCT = 344, - KW_TEMPLATE = 345, - KW_THROW = 346, - KW_TRUE = 347, - KW_TRY = 348, - KW_TYPEDEF = 349, - KW_TYPENAME = 350, - KW_UNION = 351, - KW_UNSIGNED = 352, - KW_USING = 353, - KW_VIRTUAL = 354, - KW_VOID = 355, - KW_VOLATILE = 356, - KW_WCHAR_T = 357, - KW_WHILE = 358, - START_CPP = 359, - START_CONST_EXPR = 360, - START_TYPE = 361 - }; + enum yytokentype + { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + STRING = 261, + SIMPLE_IDENTIFIER = 262, + IDENTIFIER = 263, + TYPENAME_IDENTIFIER = 264, + SCOPING = 265, + TYPEDEFNAME = 266, + ELLIPSIS = 267, + OROR = 268, + ANDAND = 269, + EQCOMPARE = 270, + NECOMPARE = 271, + LECOMPARE = 272, + GECOMPARE = 273, + LSHIFT = 274, + RSHIFT = 275, + POINTSAT_STAR = 276, + DOT_STAR = 277, + UNARY = 278, + UNARY_NOT = 279, + UNARY_NEGATE = 280, + UNARY_MINUS = 281, + UNARY_STAR = 282, + UNARY_REF = 283, + POINTSAT = 284, + SCOPE = 285, + PLUSPLUS = 286, + MINUSMINUS = 287, + TIMESEQUAL = 288, + DIVIDEEQUAL = 289, + MODEQUAL = 290, + PLUSEQUAL = 291, + MINUSEQUAL = 292, + OREQUAL = 293, + ANDEQUAL = 294, + XOREQUAL = 295, + LSHIFTEQUAL = 296, + RSHIFTEQUAL = 297, + KW_BEGIN_PUBLISH = 298, + KW_BLOCKING = 299, + KW_BOOL = 300, + KW_CATCH = 301, + KW_CHAR = 302, + KW_CHAR16_T = 303, + KW_CHAR32_T = 304, + KW_CLASS = 305, + KW_CONST = 306, + KW_DELETE = 307, + KW_DOUBLE = 308, + KW_DYNAMIC_CAST = 309, + KW_ELSE = 310, + KW_END_PUBLISH = 311, + KW_ENUM = 312, + KW_EXTENSION = 313, + KW_EXTERN = 314, + KW_EXPLICIT = 315, + KW_PUBLISHED = 316, + KW_FALSE = 317, + KW_FLOAT = 318, + KW_FRIEND = 319, + KW_FOR = 320, + KW_GOTO = 321, + KW_IF = 322, + KW_INLINE = 323, + KW_INT = 324, + KW_LONG = 325, + KW_LONGLONG = 326, + KW_MAKE_PROPERTY = 327, + KW_MAKE_SEQ = 328, + KW_MUTABLE = 329, + KW_NAMESPACE = 330, + KW_NEW = 331, + KW_NOEXCEPT = 332, + KW_OPERATOR = 333, + KW_PRIVATE = 334, + KW_PROTECTED = 335, + KW_PUBLIC = 336, + KW_REGISTER = 337, + KW_RETURN = 338, + KW_SHORT = 339, + KW_SIGNED = 340, + KW_SIZEOF = 341, + KW_STATIC = 342, + KW_STATIC_CAST = 343, + KW_STRUCT = 344, + KW_TEMPLATE = 345, + KW_THROW = 346, + KW_TRUE = 347, + KW_TRY = 348, + KW_TYPEDEF = 349, + KW_TYPENAME = 350, + KW_UNION = 351, + KW_UNSIGNED = 352, + KW_USING = 353, + KW_VIRTUAL = 354, + KW_VOID = 355, + KW_VOLATILE = 356, + KW_WCHAR_T = 357, + KW_WHILE = 358, + START_CPP = 359, + START_CONST_EXPR = 360, + START_TYPE = 361 + }; #endif /* Tokens. */ #define REAL 258 @@ -258,40 +257,24 @@ extern int cppyydebug; #define START_CONST_EXPR 360 #define START_TYPE 361 +/* Value type. */ - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int cppyyparse (void *YYPARSE_PARAM); -#else -int cppyyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus + int cppyyparse (void); -#else -int cppyyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ #endif /* !YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED */ diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index a557a61a6d..518f2a6cbb 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -537,6 +537,11 @@ storage_class: empty { $$ = 0; +} + | storage_class KW_CONST +{ + // This isn't really a storage class, but it helps with parsing. + $$ = $1 | (int)CPPInstance::SC_const; } | storage_class KW_EXTERN { @@ -592,9 +597,20 @@ storage_class: ; type_like_declaration: - multiple_var_declaration + storage_class type_decl { - /* multiple_var_declaration adds itself to the scope. */ + // We don't need to push/pop type, because we can't nest + // multiple_var_declarations. + if ($2->as_type_declaration()) { + current_type = $2->as_type_declaration()->_type; + } else { + current_type = $2->as_type(); + } + push_storage_class($1); +} + multiple_instance_identifiers +{ + pop_storage_class(); } | storage_class type_decl ';' { @@ -613,36 +629,6 @@ type_like_declaration: $2->set_initializer($3); } } - ; - -multiple_var_declaration: - storage_class type_decl -{ - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - if ($2->as_type_declaration()) { - current_type = $2->as_type_declaration()->_type; - } else { - current_type = $2->as_type(); - } - push_storage_class($1); -} - multiple_instance_identifiers -{ - pop_storage_class(); -} - | storage_class KW_CONST type -{ - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - current_type = $3; - push_storage_class($1); -} - multiple_const_instance_identifiers -{ - pop_storage_class(); -} - /* We don't need to include a rule for variables that point to functions, because we get those from the function_prototype definition. */ @@ -651,6 +637,9 @@ multiple_var_declaration: multiple_instance_identifiers: instance_identifier maybe_initialize_or_function_body { + if (current_storage_class & CPPInstance::SC_const) { + $1->add_modifier(IIT_const); + } CPPInstance *inst = new CPPInstance(current_type, $1, current_storage_class, @1.file); @@ -659,6 +648,9 @@ multiple_instance_identifiers: } | instance_identifier maybe_initialize ',' multiple_instance_identifiers { + if (current_storage_class & CPPInstance::SC_const) { + $1->add_modifier(IIT_const); + } CPPInstance *inst = new CPPInstance(current_type, $1, current_storage_class, @1.file); @@ -667,28 +659,6 @@ multiple_instance_identifiers: } ; -multiple_const_instance_identifiers: - instance_identifier maybe_initialize_or_function_body -{ - $1->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, $1, - current_storage_class, - @1.file); - inst->set_initializer($2); - current_scope->add_declaration(inst, global_scope, current_lexer, @1); -} - | instance_identifier maybe_initialize ',' multiple_const_instance_identifiers -{ - $1->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, $1, - current_storage_class, - @1.file); - inst->set_initializer($2); - current_scope->add_declaration(inst, global_scope, current_lexer, @1); -} - ; - - typedef_declaration: storage_class type_decl { @@ -704,17 +674,6 @@ typedef_declaration: typedef_instance_identifiers { pop_storage_class(); -} - | storage_class KW_CONST type -{ - // We don't need to push/pop type, because we can't nest - // multiple_var_declarations. - current_type = $3; - push_storage_class($1); -} - typedef_const_instance_identifiers -{ - pop_storage_class(); } | storage_class function_prototype maybe_initialize_or_function_body { @@ -733,29 +692,18 @@ typedef_declaration: typedef_instance_identifiers: instance_identifier maybe_initialize_or_function_body { + if (current_storage_class & CPPInstance::SC_const) { + $1->add_modifier(IIT_const); + } CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, $1, current_scope, @1.file); current_scope->add_declaration(typedef_type, global_scope, current_lexer, @1); } | instance_identifier maybe_initialize ',' typedef_instance_identifiers { - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, $1, current_scope, @1.file); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, @1); -} - ; - -typedef_const_instance_identifiers: - instance_identifier maybe_initialize_or_function_body -{ - $1->add_modifier(IIT_const); - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, $1, current_scope, @1.file); - current_scope->add_declaration(typedef_type, global_scope, current_lexer, @1); -} - | instance_identifier maybe_initialize ',' typedef_const_instance_identifiers -{ - $1->add_modifier(IIT_const); + if (current_storage_class & CPPInstance::SC_const) { + $1->add_modifier(IIT_const); + } CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, $1, current_scope, @1.file); current_scope->add_declaration(typedef_type, global_scope, current_lexer, @1); diff --git a/dtool/src/cppparser/cppInstance.h b/dtool/src/cppparser/cppInstance.h index e2ecbc0ced..b53c84c8c6 100644 --- a/dtool/src/cppparser/cppInstance.h +++ b/dtool/src/cppparser/cppInstance.h @@ -60,6 +60,10 @@ public: // And this is for methods tagged with __extension, which declares // extension methods defined separately from the source code. SC_extension = 0x1000, + + // This isn't really a storage class. It's only used temporarily by the + // parser, to make parsing specifier sequences a bit easier. + SC_const = 0x20000, }; CPPInstance(CPPType *type, const string &name, int storage_class = 0);