diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index f77f3b77d6..8c5694e0b5 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 7 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:339 */ #include "cppBisonDefs.h" @@ -265,14 +262,13 @@ pop_struct() { } -/* Line 371 of yacc.c */ -#line 270 "built/tmp/cppBison.yxx.c" +#line 266 "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 @@ -288,7 +284,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 @@ -296,134 +292,133 @@ 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, - SIMPLE_STRING = 261, - SIMPLE_IDENTIFIER = 262, - STRING_LITERAL = 263, - CUSTOM_LITERAL = 264, - IDENTIFIER = 265, - TYPENAME_IDENTIFIER = 266, - SCOPING = 267, - TYPEDEFNAME = 268, - ELLIPSIS = 269, - OROR = 270, - ANDAND = 271, - EQCOMPARE = 272, - NECOMPARE = 273, - LECOMPARE = 274, - GECOMPARE = 275, - LSHIFT = 276, - RSHIFT = 277, - POINTSAT_STAR = 278, - DOT_STAR = 279, - UNARY = 280, - UNARY_NOT = 281, - UNARY_NEGATE = 282, - UNARY_MINUS = 283, - UNARY_PLUS = 284, - UNARY_STAR = 285, - UNARY_REF = 286, - POINTSAT = 287, - SCOPE = 288, - PLUSPLUS = 289, - MINUSMINUS = 290, - TIMESEQUAL = 291, - DIVIDEEQUAL = 292, - MODEQUAL = 293, - PLUSEQUAL = 294, - MINUSEQUAL = 295, - OREQUAL = 296, - ANDEQUAL = 297, - XOREQUAL = 298, - LSHIFTEQUAL = 299, - RSHIFTEQUAL = 300, - KW_ALIGNAS = 301, - KW_ALIGNOF = 302, - KW_AUTO = 303, - KW_BEGIN_PUBLISH = 304, - KW_BLOCKING = 305, - KW_BOOL = 306, - KW_CATCH = 307, - KW_CHAR = 308, - KW_CHAR16_T = 309, - KW_CHAR32_T = 310, - KW_CLASS = 311, - KW_CONST = 312, - KW_CONSTEXPR = 313, - KW_CONST_CAST = 314, - KW_DECLTYPE = 315, - KW_DEFAULT = 316, - KW_DELETE = 317, - KW_DOUBLE = 318, - KW_DYNAMIC_CAST = 319, - KW_ELSE = 320, - KW_END_PUBLISH = 321, - KW_ENUM = 322, - KW_EXTENSION = 323, - KW_EXTERN = 324, - KW_EXPLICIT = 325, - KW_PUBLISHED = 326, - KW_FALSE = 327, - KW_FINAL = 328, - KW_FLOAT = 329, - KW_FRIEND = 330, - KW_FOR = 331, - KW_GOTO = 332, - KW_IF = 333, - KW_INLINE = 334, - KW_INT = 335, - KW_LONG = 336, - KW_MAKE_PROPERTY = 337, - KW_MAKE_PROPERTY2 = 338, - KW_MAKE_SEQ = 339, - KW_MUTABLE = 340, - KW_NAMESPACE = 341, - KW_NEW = 342, - KW_NOEXCEPT = 343, - KW_NULLPTR = 344, - KW_OPERATOR = 345, - KW_OVERRIDE = 346, - KW_PRIVATE = 347, - KW_PROTECTED = 348, - KW_PUBLIC = 349, - KW_REGISTER = 350, - KW_REINTERPRET_CAST = 351, - KW_RETURN = 352, - KW_SHORT = 353, - KW_SIGNED = 354, - KW_SIZEOF = 355, - KW_STATIC = 356, - KW_STATIC_ASSERT = 357, - KW_STATIC_CAST = 358, - KW_STRUCT = 359, - KW_TEMPLATE = 360, - KW_THREAD_LOCAL = 361, - KW_THROW = 362, - KW_TRUE = 363, - KW_TRY = 364, - KW_TYPEDEF = 365, - KW_TYPEID = 366, - KW_TYPENAME = 367, - KW_UNION = 368, - KW_UNSIGNED = 369, - KW_USING = 370, - KW_VIRTUAL = 371, - KW_VOID = 372, - KW_VOLATILE = 373, - KW_WCHAR_T = 374, - KW_WHILE = 375, - START_CPP = 376, - START_CONST_EXPR = 377, - START_TYPE = 378 - }; + enum yytokentype + { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + SIMPLE_STRING = 261, + SIMPLE_IDENTIFIER = 262, + STRING_LITERAL = 263, + CUSTOM_LITERAL = 264, + IDENTIFIER = 265, + TYPENAME_IDENTIFIER = 266, + SCOPING = 267, + TYPEDEFNAME = 268, + ELLIPSIS = 269, + OROR = 270, + ANDAND = 271, + EQCOMPARE = 272, + NECOMPARE = 273, + LECOMPARE = 274, + GECOMPARE = 275, + LSHIFT = 276, + RSHIFT = 277, + POINTSAT_STAR = 278, + DOT_STAR = 279, + UNARY = 280, + UNARY_NOT = 281, + UNARY_NEGATE = 282, + UNARY_MINUS = 283, + UNARY_PLUS = 284, + UNARY_STAR = 285, + UNARY_REF = 286, + POINTSAT = 287, + SCOPE = 288, + PLUSPLUS = 289, + MINUSMINUS = 290, + TIMESEQUAL = 291, + DIVIDEEQUAL = 292, + MODEQUAL = 293, + PLUSEQUAL = 294, + MINUSEQUAL = 295, + OREQUAL = 296, + ANDEQUAL = 297, + XOREQUAL = 298, + LSHIFTEQUAL = 299, + RSHIFTEQUAL = 300, + KW_ALIGNAS = 301, + KW_ALIGNOF = 302, + KW_AUTO = 303, + KW_BEGIN_PUBLISH = 304, + KW_BLOCKING = 305, + KW_BOOL = 306, + KW_CATCH = 307, + KW_CHAR = 308, + KW_CHAR16_T = 309, + KW_CHAR32_T = 310, + KW_CLASS = 311, + KW_CONST = 312, + KW_CONSTEXPR = 313, + KW_CONST_CAST = 314, + KW_DECLTYPE = 315, + KW_DEFAULT = 316, + KW_DELETE = 317, + KW_DOUBLE = 318, + KW_DYNAMIC_CAST = 319, + KW_ELSE = 320, + KW_END_PUBLISH = 321, + KW_ENUM = 322, + KW_EXTENSION = 323, + KW_EXTERN = 324, + KW_EXPLICIT = 325, + KW_PUBLISHED = 326, + KW_FALSE = 327, + KW_FINAL = 328, + KW_FLOAT = 329, + KW_FRIEND = 330, + KW_FOR = 331, + KW_GOTO = 332, + KW_IF = 333, + KW_INLINE = 334, + KW_INT = 335, + KW_LONG = 336, + KW_MAKE_PROPERTY = 337, + KW_MAKE_PROPERTY2 = 338, + KW_MAKE_SEQ = 339, + KW_MUTABLE = 340, + KW_NAMESPACE = 341, + KW_NEW = 342, + KW_NOEXCEPT = 343, + KW_NULLPTR = 344, + KW_OPERATOR = 345, + KW_OVERRIDE = 346, + KW_PRIVATE = 347, + KW_PROTECTED = 348, + KW_PUBLIC = 349, + KW_REGISTER = 350, + KW_REINTERPRET_CAST = 351, + KW_RETURN = 352, + KW_SHORT = 353, + KW_SIGNED = 354, + KW_SIZEOF = 355, + KW_STATIC = 356, + KW_STATIC_ASSERT = 357, + KW_STATIC_CAST = 358, + KW_STRUCT = 359, + KW_TEMPLATE = 360, + KW_THREAD_LOCAL = 361, + KW_THROW = 362, + KW_TRUE = 363, + KW_TRY = 364, + KW_TYPEDEF = 365, + KW_TYPEID = 366, + KW_TYPENAME = 367, + KW_UNION = 368, + KW_UNSIGNED = 369, + KW_USING = 370, + KW_VIRTUAL = 371, + KW_VOID = 372, + KW_VOLATILE = 373, + KW_WCHAR_T = 374, + KW_WHILE = 375, + START_CPP = 376, + START_CONST_EXPR = 377, + START_TYPE = 378 + }; #endif /* Tokens. */ #define REAL 258 @@ -548,48 +543,31 @@ extern int cppyydebug; #define START_CONST_EXPR 377 #define START_TYPE 378 +/* 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 593 "built/tmp/cppBison.yxx.c" +#line 571 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ #ifdef short # undef short @@ -603,11 +581,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 @@ -627,8 +602,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 @@ -650,6 +624,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)) @@ -657,23 +658,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 @@ -692,8 +695,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 @@ -705,8 +707,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 @@ -722,7 +724,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 @@ -730,15 +732,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 @@ -748,8 +748,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 @@ -775,16 +775,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 @@ -803,7 +803,7 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -811,25 +811,27 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 85 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5299 +#define YYLAST 5303 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 148 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 109 /* YYNRULES -- Number of rules. */ -#define YYNRULES 669 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 1311 +#define YYNRULES 675 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 1317 -/* 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 378 -#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, @@ -873,371 +875,77 @@ 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, 36, 37, 43, 45, 47, 49, 51, 53, - 55, 58, 60, 62, 65, 68, 71, 74, 82, 92, - 102, 116, 126, 134, 140, 141, 145, 147, 150, 154, - 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, - 187, 194, 196, 200, 202, 207, 209, 213, 217, 221, - 222, 227, 228, 234, 237, 242, 245, 250, 251, 256, - 257, 263, 267, 270, 275, 278, 283, 284, 291, 292, - 299, 300, 308, 309, 321, 322, 335, 336, 345, 346, - 356, 358, 360, 362, 365, 368, 371, 374, 379, 385, - 387, 389, 391, 393, 395, 397, 399, 401, 403, 405, - 407, 409, 411, 413, 415, 417, 419, 421, 423, 425, - 427, 429, 431, 433, 435, 437, 439, 441, 443, 445, - 447, 449, 451, 453, 455, 458, 461, 463, 465, 467, - 469, 470, 477, 480, 482, 484, 486, 490, 493, 498, - 501, 506, 510, 515, 517, 519, 521, 523, 526, 530, - 533, 536, 539, 542, 545, 549, 554, 558, 559, 566, - 569, 573, 575, 579, 584, 586, 588, 590, 594, 597, - 599, 603, 605, 607, 609, 613, 616, 618, 622, 624, - 627, 629, 632, 634, 638, 644, 648, 652, 654, 658, - 662, 666, 670, 675, 677, 679, 682, 684, 688, 692, - 698, 702, 707, 713, 716, 718, 720, 722, 724, 727, - 730, 733, 736, 739, 743, 748, 750, 752, 755, 758, - 761, 764, 767, 771, 776, 784, 788, 790, 793, 796, - 799, 802, 805, 809, 814, 816, 819, 822, 825, 828, - 831, 835, 840, 846, 856, 866, 876, 878, 880, 883, - 885, 887, 889, 892, 897, 902, 904, 906, 908, 911, - 913, 915, 917, 920, 925, 928, 933, 935, 937, 939, - 942, 945, 948, 953, 955, 957, 959, 962, 966, 967, - 973, 974, 983, 985, 987, 989, 991, 994, 998, 1000, - 1003, 1006, 1009, 1013, 1017, 1021, 1025, 1029, 1033, 1038, - 1043, 1046, 1050, 1052, 1054, 1056, 1058, 1062, 1068, 1070, - 1073, 1078, 1080, 1082, 1084, 1086, 1087, 1094, 1095, 1103, - 1108, 1114, 1118, 1124, 1129, 1131, 1133, 1135, 1137, 1139, - 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1158, 1161, - 1164, 1167, 1169, 1171, 1174, 1176, 1177, 1180, 1182, 1185, - 1187, 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1203, 1205, - 1207, 1209, 1211, 1213, 1215, 1217, 1219, 1221, 1223, 1225, - 1227, 1229, 1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245, - 1247, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263, 1265, - 1267, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283, 1285, - 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1301, 1303, 1305, - 1307, 1309, 1311, 1313, 1315, 1317, 1319, 1321, 1323, 1325, - 1327, 1329, 1331, 1333, 1335, 1337, 1339, 1341, 1343, 1345, - 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1363, 1365, - 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383, 1385, - 1387, 1389, 1391, 1393, 1395, 1397, 1399, 1401, 1403, 1405, - 1407, 1409, 1411, 1413, 1415, 1417, 1419, 1421, 1423, 1425, - 1427, 1429, 1431, 1435, 1437, 1439, 1441, 1443, 1445, 1449, - 1451, 1456, 1464, 1472, 1480, 1488, 1493, 1498, 1501, 1504, - 1507, 1510, 1513, 1516, 1520, 1524, 1528, 1532, 1536, 1540, - 1544, 1548, 1552, 1556, 1560, 1564, 1568, 1572, 1576, 1580, - 1586, 1591, 1596, 1600, 1604, 1608, 1612, 1614, 1619, 1627, - 1635, 1643, 1651, 1656, 1661, 1666, 1671, 1676, 1681, 1686, - 1691, 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1729, 1735, - 1740, 1745, 1748, 1751, 1754, 1757, 1760, 1763, 1767, 1771, - 1775, 1779, 1783, 1787, 1791, 1795, 1799, 1803, 1807, 1811, - 1815, 1819, 1823, 1827, 1831, 1835, 1841, 1846, 1851, 1855, - 1859, 1863, 1867, 1869, 1871, 1873, 1875, 1877, 1879, 1881, - 1883, 1885, 1887, 1889, 1898, 1910, 1912, 1917, 1925, 1933, - 1941, 1949, 1954, 1959, 1962, 1968, 1973, 1978, 1981, 1984, - 1987, 1990, 1993, 1997, 2001, 2005, 2009, 2013, 2017, 2021, - 2025, 2029, 2033, 2037, 2041, 2045, 2049, 2053, 2057, 2061, - 2065, 2071, 2076, 2081, 2085, 2089, 2093, 2097, 2099, 2101, - 2103, 2105, 2107, 2109, 2111, 2113, 2115, 2117, 2119, 2121, - 2123, 2127, 2129, 2131, 2134, 2136, 2138, 2141, 2144, 2146, - 2148, 2150, 2152, 2154, 2156, 2158, 2160, 2162, 2165, 2168 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 149, 0, -1, 121, 150, -1, 122, 246, -1, 123, - 214, -1, 256, -1, 150, 126, -1, 150, 155, -1, - 152, -1, 151, 125, 152, -1, 253, 142, 243, 144, - -1, 253, 124, 243, 145, -1, -1, 158, 124, 154, - 150, 145, -1, 161, -1, 184, -1, 153, -1, 230, - -1, 233, -1, 156, -1, 110, 167, -1, 49, -1, - 66, -1, 71, 127, -1, 94, 127, -1, 93, 127, - -1, 92, 127, -1, 82, 142, 253, 125, 10, 144, - 126, -1, 82, 142, 253, 125, 10, 125, 10, 144, - 126, -1, 83, 142, 253, 125, 10, 125, 10, 144, - 126, -1, 83, 142, 253, 125, 10, 125, 10, 125, - 10, 125, 10, 144, 126, -1, 84, 142, 253, 125, - 10, 125, 10, 144, 126, -1, 102, 142, 246, 125, - 255, 144, 126, -1, 102, 142, 246, 144, 126, -1, - -1, 75, 157, 155, -1, 256, -1, 69, 158, -1, - 69, 6, 158, -1, 101, 158, -1, 79, 158, -1, - 116, 158, -1, 70, 158, -1, 95, 158, -1, 118, - 158, -1, 85, 158, -1, 58, 158, -1, 50, 158, - -1, 68, 158, -1, 106, 158, -1, 143, 143, 159, - 146, 146, 158, -1, 160, -1, 160, 125, 159, -1, - 253, -1, 253, 142, 196, 144, -1, 162, -1, 158, - 211, 126, -1, 158, 172, 200, -1, 158, 175, 201, - -1, -1, 158, 213, 163, 165, -1, -1, 158, 57, - 213, 164, 166, -1, 192, 201, -1, 192, 199, 125, - 165, -1, 192, 201, -1, 192, 199, 125, 166, -1, - -1, 158, 213, 168, 170, -1, -1, 158, 57, 213, - 169, 171, -1, 158, 175, 201, -1, 192, 201, -1, - 192, 199, 125, 170, -1, 192, 201, -1, 192, 199, - 125, 171, -1, -1, 10, 142, 173, 194, 144, 181, - -1, -1, 11, 142, 174, 194, 144, 181, -1, -1, - 140, 253, 142, 176, 194, 144, 181, -1, -1, 11, - 142, 137, 190, 144, 142, 177, 194, 144, 181, 193, - -1, -1, 11, 142, 12, 137, 190, 144, 142, 178, - 194, 144, 181, 193, -1, -1, 90, 210, 206, 142, - 179, 194, 144, 181, -1, -1, 90, 57, 210, 206, - 142, 180, 194, 144, 181, -1, 10, -1, 256, -1, - 57, -1, 181, 88, -1, 181, 73, -1, 181, 91, - -1, 181, 85, -1, 181, 107, 142, 144, -1, 181, - 107, 142, 253, 144, -1, 147, -1, 140, -1, 137, - -1, 138, -1, 139, -1, 135, -1, 136, -1, 130, - -1, 132, -1, 131, -1, 15, -1, 16, -1, 17, - -1, 18, -1, 19, -1, 20, -1, 133, -1, 134, - -1, 21, -1, 22, -1, 128, -1, 125, -1, 34, - -1, 35, -1, 36, -1, 37, -1, 38, -1, 39, - -1, 40, -1, 41, -1, 42, -1, 43, -1, 44, - -1, 45, -1, 32, -1, 143, 146, -1, 142, 144, - -1, 87, -1, 62, -1, 161, -1, 184, -1, -1, - 105, 185, 133, 186, 134, 183, -1, 105, 161, -1, - 256, -1, 187, -1, 188, -1, 187, 125, 188, -1, - 56, 253, -1, 56, 253, 128, 214, -1, 112, 253, - -1, 112, 253, 128, 214, -1, 189, 207, 198, -1, - 57, 189, 207, 198, -1, 234, -1, 10, -1, 11, - -1, 254, -1, 90, 182, -1, 90, 6, 10, -1, - 57, 190, -1, 118, 190, -1, 137, 190, -1, 132, - 190, -1, 16, 190, -1, 12, 137, 190, -1, 190, - 143, 242, 146, -1, 142, 190, 144, -1, -1, 190, - 142, 191, 196, 144, 181, -1, 190, 193, -1, 190, - 127, 4, -1, 256, -1, 32, 212, 209, -1, 32, - 57, 212, 209, -1, 256, -1, 14, -1, 195, -1, - 195, 125, 14, -1, 195, 14, -1, 204, -1, 195, - 125, 204, -1, 256, -1, 14, -1, 197, -1, 197, - 125, 14, -1, 197, 14, -1, 205, -1, 197, 125, - 205, -1, 256, -1, 128, 245, -1, 256, -1, 128, - 246, -1, 126, -1, 124, 238, 145, -1, 127, 151, - 124, 238, 145, -1, 128, 61, 126, -1, 128, 62, - 126, -1, 126, -1, 124, 238, 145, -1, 128, 246, - 126, -1, 128, 61, 126, -1, 128, 62, 126, -1, - 128, 124, 202, 145, -1, 256, -1, 203, -1, 203, - 125, -1, 246, -1, 124, 202, 145, -1, 203, 125, - 246, -1, 203, 125, 124, 202, 145, -1, 210, 207, - 199, -1, 57, 210, 207, 199, -1, 57, 95, 210, - 207, 199, -1, 95, 204, -1, 204, -1, 248, -1, - 256, -1, 254, -1, 57, 206, -1, 118, 206, -1, - 137, 206, -1, 132, 206, -1, 16, 206, -1, 12, - 137, 206, -1, 206, 143, 242, 146, -1, 256, -1, - 254, -1, 57, 207, -1, 118, 207, -1, 137, 207, - -1, 132, 207, -1, 16, 207, -1, 12, 137, 207, - -1, 207, 143, 242, 146, -1, 142, 207, 144, 142, - 194, 144, 181, -1, 142, 207, 144, -1, 256, -1, - 57, 208, -1, 118, 208, -1, 137, 208, -1, 132, - 208, -1, 16, 208, -1, 12, 137, 208, -1, 208, - 143, 242, 146, -1, 256, -1, 57, 209, -1, 118, - 209, -1, 137, 208, -1, 132, 208, -1, 16, 208, - -1, 12, 137, 208, -1, 208, 143, 242, 146, -1, - 142, 194, 144, 181, 193, -1, 142, 137, 208, 144, - 142, 194, 144, 181, 193, -1, 142, 132, 208, 144, - 142, 194, 144, 181, 193, -1, 142, 16, 208, 144, - 142, 194, 144, 181, 193, -1, 234, -1, 11, -1, - 112, 253, -1, 215, -1, 217, -1, 223, -1, 229, - 253, -1, 228, 254, 127, 225, -1, 60, 142, 246, - 144, -1, 48, -1, 234, -1, 11, -1, 112, 253, - -1, 215, -1, 217, -1, 223, -1, 229, 253, -1, - 228, 254, 127, 225, -1, 228, 253, -1, 60, 142, - 246, 144, -1, 48, -1, 234, -1, 11, -1, 112, - 253, -1, 229, 253, -1, 228, 253, -1, 60, 142, - 246, 144, -1, 48, -1, 211, -1, 10, -1, 210, - 209, -1, 57, 210, 209, -1, -1, 229, 124, 216, - 150, 145, -1, -1, 229, 254, 218, 219, 220, 124, - 150, 145, -1, 256, -1, 73, -1, 256, -1, 221, - -1, 127, 222, -1, 221, 125, 222, -1, 252, -1, - 94, 252, -1, 93, 252, -1, 92, 252, -1, 116, - 94, 252, -1, 116, 93, 252, -1, 116, 92, 252, - -1, 94, 116, 252, -1, 93, 116, 252, -1, 92, - 116, 252, -1, 224, 124, 227, 145, -1, 228, 254, - 127, 225, -1, 228, 254, -1, 228, 127, 225, -1, - 228, -1, 235, -1, 11, -1, 256, -1, 226, 253, - 125, -1, 226, 253, 128, 246, 125, -1, 226, -1, - 226, 253, -1, 226, 253, 128, 246, -1, 67, -1, - 56, -1, 104, -1, 113, -1, -1, 86, 253, 124, - 231, 150, 145, -1, -1, 79, 86, 253, 124, 232, - 150, 145, -1, 86, 124, 150, 145, -1, 79, 86, - 124, 150, 145, -1, 115, 253, 126, -1, 115, 253, - 128, 214, 126, -1, 115, 86, 253, 126, -1, 235, - -1, 236, -1, 237, -1, 51, -1, 53, -1, 119, - -1, 54, -1, 55, -1, 98, -1, 81, -1, 114, - -1, 99, -1, 80, -1, 98, 235, -1, 81, 235, - -1, 114, 235, -1, 99, 235, -1, 74, -1, 63, - -1, 81, 63, -1, 117, -1, -1, 239, 240, -1, - 256, -1, 240, 241, -1, 3, -1, 4, -1, 6, - -1, 8, -1, 9, -1, 5, -1, 10, -1, 11, - -1, 12, -1, 7, -1, 14, -1, 15, -1, 16, - -1, 17, -1, 18, -1, 19, -1, 20, -1, 21, - -1, 22, -1, 23, -1, 24, -1, 32, -1, 33, - -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, - -1, 39, -1, 40, -1, 41, -1, 42, -1, 43, - -1, 44, -1, 45, -1, 46, -1, 47, -1, 48, - -1, 51, -1, 52, -1, 53, -1, 54, -1, 55, - -1, 56, -1, 57, -1, 58, -1, 59, -1, 60, - -1, 61, -1, 62, -1, 63, -1, 64, -1, 65, - -1, 67, -1, 69, -1, 70, -1, 72, -1, 73, - -1, 74, -1, 75, -1, 76, -1, 77, -1, 78, - -1, 79, -1, 80, -1, 81, -1, 85, -1, 86, - -1, 87, -1, 89, -1, 90, -1, 91, -1, 92, - -1, 93, -1, 94, -1, 71, -1, 95, -1, 96, - -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, - -1, 102, -1, 103, -1, 104, -1, 106, -1, 107, - -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, - -1, 113, -1, 114, -1, 115, -1, 116, -1, 117, - -1, 118, -1, 119, -1, 120, -1, 135, -1, 136, - -1, 137, -1, 138, -1, 132, -1, 130, -1, 131, - -1, 147, -1, 140, -1, 128, -1, 139, -1, 133, - -1, 134, -1, 142, -1, 144, -1, 141, -1, 125, - -1, 126, -1, 127, -1, 143, -1, 146, -1, 129, - -1, 124, 240, 145, -1, 256, -1, 246, -1, 256, - -1, 244, -1, 246, -1, 244, 125, 246, -1, 247, - -1, 142, 214, 144, 245, -1, 103, 133, 214, 134, - 142, 244, 144, -1, 64, 133, 214, 134, 142, 244, - 144, -1, 59, 133, 214, 134, 142, 244, 144, -1, - 96, 133, 214, 134, 142, 244, 144, -1, 100, 142, - 214, 144, -1, 47, 142, 214, 144, -1, 147, 245, - -1, 140, 245, -1, 136, 245, -1, 135, 245, -1, - 137, 245, -1, 132, 245, -1, 245, 137, 245, -1, - 245, 138, 245, -1, 245, 139, 245, -1, 245, 135, - 245, -1, 245, 136, 245, -1, 245, 130, 245, -1, - 245, 131, 245, -1, 245, 132, 245, -1, 245, 15, - 245, -1, 245, 16, 245, -1, 245, 17, 245, -1, - 245, 18, 245, -1, 245, 19, 245, -1, 245, 20, - 245, -1, 245, 21, 245, -1, 245, 22, 245, -1, - 245, 129, 245, 127, 245, -1, 245, 143, 246, 146, - -1, 245, 142, 244, 144, -1, 245, 142, 144, -1, - 245, 141, 245, -1, 245, 32, 245, -1, 142, 244, - 144, -1, 247, -1, 142, 214, 144, 246, -1, 103, - 133, 214, 134, 142, 244, 144, -1, 64, 133, 214, - 134, 142, 244, 144, -1, 59, 133, 214, 134, 142, - 244, 144, -1, 96, 133, 214, 134, 142, 244, 144, - -1, 11, 142, 243, 144, -1, 80, 142, 243, 144, - -1, 53, 142, 243, 144, -1, 119, 142, 243, 144, - -1, 54, 142, 243, 144, -1, 55, 142, 243, 144, - -1, 51, 142, 243, 144, -1, 98, 142, 243, 144, - -1, 81, 142, 243, 144, -1, 114, 142, 243, 144, - -1, 99, 142, 243, 144, -1, 74, 142, 243, 144, - -1, 63, 142, 243, 144, -1, 100, 142, 214, 144, - -1, 47, 142, 214, 144, -1, 87, 212, -1, 87, - 212, 142, 243, 144, -1, 111, 142, 214, 144, -1, - 111, 142, 246, 144, -1, 147, 246, -1, 140, 246, - -1, 136, 246, -1, 135, 246, -1, 137, 246, -1, - 132, 246, -1, 246, 137, 246, -1, 246, 138, 246, - -1, 246, 139, 246, -1, 246, 135, 246, -1, 246, - 136, 246, -1, 246, 130, 246, -1, 246, 131, 246, - -1, 246, 132, 246, -1, 246, 15, 246, -1, 246, - 16, 246, -1, 246, 17, 246, -1, 246, 18, 246, - -1, 246, 19, 246, -1, 246, 20, 246, -1, 246, - 133, 246, -1, 246, 134, 246, -1, 246, 21, 246, - -1, 246, 22, 246, -1, 246, 129, 246, 127, 246, - -1, 246, 143, 246, 146, -1, 246, 142, 244, 144, - -1, 246, 142, 144, -1, 246, 141, 246, -1, 246, - 32, 246, -1, 142, 244, 144, -1, 4, -1, 108, - -1, 72, -1, 5, -1, 3, -1, 255, -1, 9, - -1, 10, -1, 73, -1, 91, -1, 89, -1, 143, - 250, 146, 181, 193, 124, 238, 145, -1, 143, 250, - 146, 142, 194, 144, 181, 193, 124, 238, 145, -1, - 249, -1, 142, 214, 144, 246, -1, 103, 133, 214, - 134, 142, 244, 144, -1, 64, 133, 214, 134, 142, - 244, 144, -1, 59, 133, 214, 134, 142, 244, 144, - -1, 96, 133, 214, 134, 142, 244, 144, -1, 100, - 142, 214, 144, -1, 47, 142, 214, 144, -1, 87, - 212, -1, 87, 212, 142, 243, 144, -1, 111, 142, - 214, 144, -1, 111, 142, 246, 144, -1, 147, 246, - -1, 140, 246, -1, 136, 246, -1, 135, 246, -1, - 132, 246, -1, 248, 137, 246, -1, 248, 138, 246, - -1, 248, 139, 246, -1, 248, 135, 246, -1, 248, - 136, 246, -1, 248, 130, 246, -1, 248, 131, 246, - -1, 248, 132, 246, -1, 248, 15, 246, -1, 248, - 16, 246, -1, 248, 17, 246, -1, 248, 18, 246, - -1, 248, 19, 246, -1, 248, 20, 246, -1, 248, - 133, 246, -1, 248, 134, 246, -1, 248, 21, 246, - -1, 248, 22, 246, -1, 248, 129, 246, 127, 246, - -1, 248, 143, 246, 146, -1, 248, 142, 244, 144, - -1, 248, 142, 144, -1, 248, 141, 246, -1, 248, - 32, 246, -1, 142, 244, 144, -1, 4, -1, 108, - -1, 72, -1, 5, -1, 3, -1, 255, -1, 9, - -1, 10, -1, 73, -1, 91, -1, 89, -1, 256, - -1, 251, -1, 251, 125, 250, -1, 132, -1, 128, - -1, 132, 253, -1, 253, -1, 253, -1, 229, 253, - -1, 112, 253, -1, 10, -1, 11, -1, 73, -1, - 91, -1, 10, -1, 11, -1, 91, -1, 6, -1, - 8, -1, 255, 6, -1, 255, 8, -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, 421, 421, 422, 426, 433, 434, 435, 439, 440, - 444, 448, 461, 460, 472, 473, 474, 475, 476, 477, - 478, 479, 492, 501, 505, 513, 517, 521, 532, 553, - 575, 608, 630, 641, 655, 654, 669, 673, 677, 688, - 692, 696, 700, 704, 708, 712, 716, 720, 724, 728, - 732, 740, 741, 745, 746, 750, 754, 763, 771, 783, - 782, 798, 797, 819, 827, 838, 847, 861, 860, 876, - 875, 890, 905, 911, 920, 927, 940, 939, 964, 963, - 991, 990, 1021, 1020, 1039, 1038, 1059, 1058, 1090, 1089, - 1115, 1128, 1132, 1136, 1140, 1144, 1148, 1153, 1157, 1168, - 1172, 1176, 1180, 1184, 1188, 1192, 1196, 1200, 1204, 1208, - 1212, 1216, 1220, 1224, 1228, 1232, 1236, 1240, 1244, 1248, - 1252, 1256, 1260, 1264, 1268, 1272, 1276, 1280, 1284, 1288, - 1292, 1296, 1300, 1304, 1308, 1312, 1316, 1320, 1327, 1328, - 1333, 1332, 1340, 1344, 1345, 1349, 1355, 1364, 1368, 1372, - 1376, 1380, 1386, 1396, 1400, 1405, 1417, 1421, 1435, 1450, - 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1491, 1490, 1512, - 1522, 1532, 1536, 1540, 1549, 1553, 1558, 1562, 1567, 1575, - 1580, 1588, 1592, 1597, 1601, 1606, 1614, 1619, 1627, 1631, - 1638, 1642, 1649, 1653, 1657, 1661, 1665, 1672, 1676, 1680, - 1684, 1688, 1692, 1699, 1700, 1701, 1705, 1708, 1709, 1710, - 1714, 1719, 1725, 1731, 1742, 1746, 1756, 1760, 1764, 1769, - 1774, 1779, 1784, 1789, 1794, 1802, 1806, 1810, 1815, 1820, - 1825, 1830, 1835, 1840, 1845, 1851, 1859, 1863, 1868, 1873, - 1878, 1883, 1888, 1893, 1901, 1905, 1910, 1915, 1920, 1925, - 1930, 1935, 1940, 1946, 1953, 1960, 1970, 1974, 1982, 1986, - 1990, 1994, 1998, 2014, 2030, 2039, 2046, 2050, 2058, 2062, - 2066, 2070, 2074, 2090, 2106, 2124, 2133, 2140, 2144, 2152, - 2156, 2172, 2188, 2197, 2204, 2208, 2216, 2220, 2229, 2228, - 2253, 2252, 2282, 2283, 2290, 2291, 2295, 2296, 2300, 2304, - 2308, 2312, 2316, 2320, 2324, 2328, 2332, 2336, 2343, 2351, - 2355, 2359, 2363, 2370, 2374, 2381, 2382, 2388, 2396, 2397, - 2403, 2412, 2419, 2423, 2427, 2435, 2434, 2457, 2456, 2479, - 2480, 2484, 2490, 2497, 2506, 2507, 2508, 2512, 2516, 2520, - 2524, 2528, 2532, 2537, 2542, 2547, 2552, 2556, 2561, 2570, - 2575, 2583, 2587, 2591, 2599, 2609, 2609, 2619, 2620, 2624, - 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, - 2634, 2634, 2635, 2635, 2635, 2635, 2636, 2636, 2636, 2636, - 2636, 2637, 2637, 2637, 2638, 2638, 2638, 2638, 2638, 2639, - 2639, 2639, 2639, 2639, 2640, 2640, 2640, 2640, 2640, 2641, - 2641, 2641, 2641, 2641, 2642, 2642, 2642, 2642, 2643, 2643, - 2643, 2643, 2643, 2644, 2644, 2644, 2644, 2644, 2645, 2645, - 2645, 2645, 2645, 2645, 2646, 2646, 2646, 2646, 2646, 2647, - 2647, 2647, 2647, 2648, 2648, 2648, 2648, 2649, 2649, 2649, - 2649, 2649, 2650, 2650, 2650, 2651, 2651, 2651, 2651, 2651, - 2652, 2652, 2652, 2652, 2652, 2653, 2653, 2653, 2653, 2653, - 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, - 2656, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, - 2657, 2658, 2658, 2662, 2666, 2673, 2677, 2684, 2688, 2695, - 2699, 2703, 2707, 2711, 2715, 2719, 2723, 2727, 2731, 2735, - 2739, 2743, 2747, 2751, 2755, 2759, 2763, 2767, 2771, 2775, - 2779, 2783, 2787, 2791, 2795, 2799, 2803, 2807, 2811, 2815, - 2819, 2823, 2827, 2831, 2835, 2839, 2847, 2851, 2855, 2859, - 2863, 2867, 2871, 2881, 2887, 2893, 2899, 2905, 2911, 2917, - 2924, 2931, 2938, 2945, 2951, 2957, 2961, 2965, 2969, 2973, - 2984, 2995, 2999, 3003, 3007, 3011, 3015, 3019, 3023, 3027, - 3031, 3035, 3039, 3043, 3047, 3051, 3055, 3059, 3063, 3067, - 3071, 3075, 3079, 3083, 3087, 3091, 3095, 3099, 3103, 3107, - 3111, 3115, 3122, 3126, 3130, 3134, 3138, 3142, 3146, 3150, - 3154, 3160, 3166, 3170, 3174, 3188, 3192, 3196, 3200, 3204, - 3208, 3212, 3216, 3220, 3224, 3228, 3239, 3250, 3254, 3258, - 3262, 3266, 3270, 3274, 3278, 3282, 3286, 3290, 3294, 3298, - 3302, 3306, 3310, 3314, 3318, 3322, 3326, 3330, 3334, 3338, - 3342, 3346, 3350, 3354, 3358, 3362, 3366, 3373, 3377, 3381, - 3385, 3389, 3393, 3397, 3401, 3405, 3411, 3417, 3425, 3426, - 3427, 3431, 3432, 3433, 3434, 3438, 3446, 3454, 3482, 3486, - 3490, 3494, 3505, 3509, 3513, 3521, 3525, 3529, 3535, 3546 + 0, 422, 422, 423, 427, 434, 435, 436, 440, 441, + 445, 449, 462, 461, 473, 474, 475, 476, 477, 478, + 479, 480, 493, 502, 506, 514, 518, 522, 533, 554, + 576, 609, 631, 642, 656, 655, 670, 674, 678, 689, + 693, 697, 701, 705, 709, 713, 717, 721, 725, 729, + 733, 741, 742, 746, 747, 751, 755, 764, 772, 784, + 783, 799, 798, 820, 828, 839, 848, 862, 861, 877, + 876, 891, 906, 912, 921, 928, 941, 940, 965, 964, + 992, 991, 1022, 1021, 1040, 1039, 1060, 1059, 1091, 1090, + 1116, 1129, 1133, 1137, 1141, 1145, 1149, 1154, 1158, 1169, + 1173, 1177, 1181, 1185, 1189, 1193, 1197, 1201, 1205, 1209, + 1213, 1217, 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, + 1253, 1257, 1261, 1265, 1269, 1273, 1277, 1281, 1285, 1289, + 1293, 1297, 1301, 1305, 1309, 1313, 1317, 1321, 1328, 1329, + 1334, 1333, 1341, 1345, 1346, 1350, 1356, 1365, 1369, 1373, + 1377, 1381, 1387, 1397, 1401, 1406, 1418, 1422, 1436, 1451, + 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1492, 1491, 1513, + 1523, 1533, 1537, 1541, 1550, 1554, 1559, 1563, 1568, 1576, + 1581, 1589, 1593, 1598, 1602, 1607, 1615, 1620, 1628, 1632, + 1639, 1643, 1650, 1654, 1658, 1662, 1666, 1673, 1677, 1681, + 1685, 1689, 1693, 1700, 1701, 1702, 1706, 1709, 1710, 1711, + 1715, 1720, 1726, 1732, 1743, 1747, 1757, 1761, 1765, 1770, + 1775, 1780, 1785, 1790, 1795, 1803, 1807, 1811, 1816, 1821, + 1826, 1831, 1836, 1841, 1846, 1852, 1860, 1864, 1869, 1874, + 1879, 1884, 1889, 1894, 1902, 1906, 1911, 1916, 1921, 1926, + 1931, 1936, 1941, 1947, 1954, 1961, 1971, 1975, 1983, 1987, + 1991, 1995, 1999, 2015, 2031, 2040, 2047, 2051, 2059, 2063, + 2067, 2071, 2075, 2091, 2107, 2125, 2134, 2141, 2145, 2153, + 2157, 2173, 2189, 2198, 2205, 2209, 2217, 2221, 2230, 2229, + 2254, 2253, 2283, 2284, 2291, 2292, 2296, 2297, 2301, 2305, + 2309, 2313, 2317, 2321, 2325, 2329, 2333, 2337, 2344, 2352, + 2356, 2360, 2365, 2373, 2377, 2384, 2385, 2390, 2397, 2398, + 2403, 2411, 2415, 2419, 2426, 2430, 2434, 2442, 2441, 2464, + 2463, 2486, 2487, 2491, 2497, 2504, 2513, 2514, 2515, 2519, + 2523, 2527, 2531, 2535, 2539, 2544, 2549, 2554, 2559, 2563, + 2568, 2577, 2582, 2590, 2594, 2598, 2606, 2616, 2616, 2626, + 2627, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, + 2640, 2641, 2641, 2641, 2642, 2642, 2642, 2642, 2643, 2643, + 2643, 2643, 2643, 2644, 2644, 2644, 2645, 2645, 2645, 2645, + 2645, 2646, 2646, 2646, 2646, 2646, 2647, 2647, 2647, 2647, + 2647, 2648, 2648, 2648, 2648, 2648, 2649, 2649, 2649, 2649, + 2650, 2650, 2650, 2650, 2650, 2651, 2651, 2651, 2651, 2651, + 2652, 2652, 2652, 2652, 2652, 2652, 2653, 2653, 2653, 2653, + 2653, 2654, 2654, 2654, 2654, 2655, 2655, 2655, 2655, 2656, + 2656, 2656, 2656, 2656, 2657, 2657, 2657, 2658, 2658, 2658, + 2658, 2658, 2659, 2659, 2659, 2659, 2659, 2660, 2660, 2660, + 2660, 2660, 2663, 2663, 2663, 2663, 2663, 2663, 2663, 2663, + 2663, 2663, 2663, 2664, 2664, 2664, 2664, 2664, 2664, 2664, + 2664, 2664, 2664, 2665, 2665, 2669, 2673, 2680, 2684, 2691, + 2695, 2702, 2706, 2710, 2714, 2718, 2722, 2726, 2730, 2734, + 2738, 2742, 2746, 2750, 2754, 2758, 2762, 2766, 2770, 2774, + 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2810, 2814, + 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2854, 2858, + 2862, 2866, 2870, 2874, 2878, 2888, 2894, 2900, 2906, 2912, + 2918, 2924, 2931, 2938, 2945, 2952, 2958, 2964, 2968, 2972, + 2976, 2980, 2991, 3002, 3006, 3010, 3014, 3018, 3022, 3026, + 3030, 3034, 3038, 3042, 3046, 3050, 3054, 3058, 3062, 3066, + 3070, 3074, 3078, 3082, 3086, 3090, 3094, 3098, 3102, 3106, + 3110, 3114, 3118, 3122, 3129, 3133, 3137, 3141, 3145, 3149, + 3153, 3157, 3161, 3167, 3173, 3177, 3181, 3195, 3199, 3203, + 3207, 3211, 3215, 3219, 3223, 3227, 3231, 3235, 3246, 3257, + 3261, 3265, 3269, 3273, 3277, 3281, 3285, 3289, 3293, 3297, + 3301, 3305, 3309, 3313, 3317, 3321, 3325, 3329, 3333, 3337, + 3341, 3345, 3349, 3353, 3357, 3361, 3365, 3369, 3373, 3380, + 3384, 3388, 3392, 3396, 3400, 3404, 3408, 3412, 3418, 3424, + 3432, 3433, 3434, 3438, 3439, 3440, 3441, 3445, 3453, 3461, + 3489, 3493, 3497, 3501, 3505, 3511, 3515, 3519, 3530, 3534, + 3538, 3546, 3550, 3554, 3560, 3571 }; #endif @@ -1306,13 +1014,13 @@ static const char *const yytname[] = "const_expr_comma", "no_angle_bracket_const_expr", "const_expr", "const_operand", "formal_const_expr", "formal_const_operand", "capture_list", "capture", "class_derivation_name", "name", - "name_no_final", "string_literal", "empty", YY_NULL + "name_no_final", "string_literal", "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, @@ -1333,7 +1041,1537 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +#define YYPACT_NINF -749 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-749))) + +#define YYTABLE_NINF -671 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + -2, -749, 2788, 4412, 66, 2980, -749, -749, -749, -749, + -749, -749, -749, -749, -81, -17, 0, 5, 16, 24, + 37, 53, 73, -749, -749, 68, 106, 116, 4611, -749, + -749, 82, 126, 157, 162, 174, -749, 170, 171, 181, + 2788, 2788, 2788, 2788, 2788, 1434, 3192, 2788, 3664, -749, + 124, -749, -749, -749, -749, -749, -749, -749, 4633, 182, + -749, -30, -749, -749, 3317, 1125, 1125, -749, 1254, -749, + 1125, -749, -749, 235, -749, -749, -749, -749, 203, 47, + 819, -749, -749, -749, -749, -749, -749, 5160, 5160, -749, + 5160, 799, 5160, 206, -749, 5116, 192, 198, 207, 5160, + 998, 228, 239, 246, 5160, 5160, 232, 5130, 5160, 5160, + 1591, 5160, 5160, -749, 237, -749, -749, -749, 3190, -749, + -749, -749, -749, -749, -749, 2788, 4412, 2788, 2788, 2788, + 2788, 4412, 2788, 4412, 2788, 2788, 2788, -749, -749, 244, + 1254, 248, 1254, 1254, -749, 4412, 2788, 2788, 4412, 4412, + 1434, 2788, 2788, 14, 14, 14, 14, 14, -81, 0, + 5, 16, 24, 53, 68, 106, 2527, 658, 905, 2775, + 181, 252, -55, 3664, -749, -749, -749, -749, -749, -749, + -749, -749, -749, 1254, 253, 256, -749, -749, 14, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2228, 2788, -749, -749, 235, 2788, -749, -749, -749, 1125, + -749, -749, -749, -749, -749, 267, 193, 235, 235, 193, + 193, 3979, 272, -749, 281, -749, -749, -749, -749, 893, + 301, 12, 17, 111, -749, -749, -749, 5160, -749, -749, + -749, 5160, -749, -749, -749, 5063, 1562, -749, 1254, 1254, + 1254, -749, -749, 321, -749, -749, -749, -749, -749, 2788, + 3094, -749, 316, -749, 3262, -749, 1254, 230, -749, -749, + 1254, 284, 306, -749, 4179, 325, 4479, 1254, -749, 1254, + 328, 285, 342, -749, -749, -749, -749, 519, 819, -749, + 327, 347, -749, 341, 360, 361, 363, 370, 348, 372, + 388, 383, 397, 401, 2788, -749, 2788, -749, -749, 398, + 403, 404, 406, 423, 415, 3388, 431, 432, 2788, 2788, + -749, -749, -19, 3192, 3846, 3866, 1271, 1271, 322, 322, + 338, 338, -749, 3591, 1139, 3882, 4044, 322, 322, 179, + 179, 14, 14, 14, -749, -749, -43, 1318, -749, 3406, + 193, 440, 193, 193, 193, 193, 193, 435, -749, 272, + -749, 272, -749, 435, 435, -749, 193, 4534, 4390, 193, + 193, 447, 55, -749, 959, -749, 2788, 1254, 434, -749, + -749, -749, -749, 893, -749, 522, -749, -749, -749, 477, + 482, 483, 494, 4685, -749, 3367, 2887, 362, 484, 4179, + 285, -749, -749, 507, -749, 4412, 488, 510, 495, -749, + 25, -749, -749, -749, 2788, 4633, 426, -749, -749, 496, + -749, -749, 1254, 26, -749, -749, -749, 1552, -749, -749, + 499, -749, 512, -749, -749, -749, -749, -749, -749, -749, + 500, -749, 501, -749, -749, -749, 3424, 509, 503, -749, + -749, -749, 515, -749, -749, -749, -749, 14, 3664, -749, + 4251, 359, -749, -749, 2788, -749, -749, -749, 435, 193, + 435, 435, 435, 435, 435, 2788, -52, 4633, 959, -749, + -46, 9, 597, -749, 4323, 521, 959, 959, 959, 959, + 959, 959, -88, -749, -749, 513, 3664, -749, -72, -749, + 538, 4739, -749, 536, -749, 4793, -749, 654, 655, 656, + -749, -749, 381, 548, -749, -749, 1254, 2439, 1254, 541, + 552, -749, 959, -749, -749, 25, -749, -749, 499, -749, + 554, 532, 1254, 1994, 4251, 544, 499, 4251, 499, 3442, + 426, 545, 426, 426, 426, 426, 426, 78, -749, -749, + 4847, -749, 539, -749, 119, -749, 155, 559, 560, 542, + 562, 564, 2340, 3609, 556, 499, 499, 3093, 499, 499, + 499, 499, -749, 22, 395, -749, 893, 2788, 2788, -749, + -749, 2788, 2788, 547, 4556, -749, -749, -749, -749, 553, + 570, -749, 3664, 435, 550, 555, 959, -88, 558, 563, + 359, -749, -749, 959, 567, 567, 567, 567, 567, 110, + 2788, 2788, -749, -749, 600, -749, 2788, -749, 2621, 574, + 577, -749, -749, -749, -39, 581, 615, 4901, 41, -749, + 617, 959, 619, 4290, 2887, -35, 499, -749, 395, -749, + 5160, -749, -749, -749, -749, -749, -749, -749, 606, 618, + 620, -749, -749, 4611, -749, -749, 622, 610, 625, -749, + 623, 2788, 2788, 2788, 2788, 1434, 2788, 627, 61, -749, + -749, 3682, -749, 124, -749, 629, 499, 297, 635, -749, + 395, -749, 122, 426, 621, 621, 621, 621, 621, -749, + 2788, -749, 4251, -749, 1849, -749, -749, 1254, 2788, 2788, + -749, -749, -749, -749, -749, 2340, 624, 637, 3664, -749, + -749, 499, 132, 132, 756, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, 640, 648, -749, -749, 132, 132, 132, 382, 763, + -749, 2788, -749, 1552, 671, -749, 538, -22, 35, 38, + 44, 597, 4611, 235, 277, -749, -749, 4251, -88, -749, + 4251, 4251, -749, 567, 639, 3664, 651, 3628, 2194, 2733, + 4057, 1254, 442, -749, 1254, -749, -749, -749, 2621, 4955, + 788, 673, 792, 793, -749, 678, 4412, -35, 4412, -749, + -749, -749, -749, 2900, -749, -749, -749, 395, 684, -749, + -749, 4412, 4412, 4412, 668, 4412, 4412, 4412, 1434, 14, + 14, 14, 14, 667, 50, 14, -749, -749, 2111, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2452, 2788, 597, 396, 670, 597, 689, -749, -749, 621, + 4251, 669, 675, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, 686, -749, + 688, 676, 691, -749, 2564, 132, -749, -749, -749, -749, + -749, 1994, 692, 3609, 499, -749, -749, -749, -749, 359, + 235, -749, -749, 690, 696, 698, -749, 701, 703, 4251, + -749, -749, 2397, -749, 2397, -749, 2397, -749, -749, 2397, + 2397, 2397, -749, 5009, -749, -749, 709, -749, 87, 712, + -749, -749, -749, -749, 710, 725, 729, 737, 730, 740, + 2900, 2900, 2900, 2900, 2900, 1434, 2900, 3829, -749, 750, + -749, 499, 732, 743, 746, 2788, 748, 739, 751, 742, + 3461, 2788, -749, -749, -749, 3846, 3866, 1271, 1271, 322, + 322, 338, 338, -749, 3646, 1139, 3882, 4044, 322, 322, + 179, 179, 14, 14, 14, -749, -749, 108, 1454, 315, + 745, -749, 315, 499, 4251, 744, -749, 597, 1704, -749, + -749, -749, -749, 2340, 3664, 754, -749, -749, 765, -749, + -749, -749, 597, 597, 597, 755, -749, -749, -749, -749, + -749, -749, -749, 764, 885, 775, 776, 4412, 4412, 4412, + 4412, 4412, 4412, 75, 75, 75, 75, 75, 759, 134, + 75, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, + 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, + 2676, 2788, 499, -749, -749, 766, 767, 770, 774, -749, + 778, -749, -749, 14, 2788, -749, -749, -749, 4251, -749, + 777, 597, 315, -749, 762, 597, -749, 359, 359, 359, + 597, -749, 816, -749, -749, 801, 815, 828, 831, 832, + 838, 2900, -749, 1117, 3913, 1290, 1290, 2879, 2879, 461, + 461, -749, 3811, 2242, 4067, 4083, 486, 486, 75, 75, + 75, -749, -749, 146, 2014, -749, 2788, 2788, -749, 2788, + 2788, 3664, 4251, 833, 597, 315, -749, 315, 834, -749, + -749, -749, 315, 968, -749, 839, 845, 847, -749, 848, + 75, 2900, -749, -749, 161, 164, 166, 175, 849, 597, + 315, -749, 850, 2788, 2788, 2788, 2788, 3829, -749, -749, + -749, -749, 597, 359, 870, 184, 204, 213, 216, 359, + -749, -749, -749, -749, -749, -749, -749 +}; + + /* 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, 675, 0, 0, 0, 675, 5, 588, 584, 587, + 671, 672, 590, 591, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 586, 592, 0, 0, 0, 0, 594, + 593, 0, 0, 0, 0, 0, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 675, 0, 3, 528, + 589, 257, 265, 339, 340, 342, 343, 324, 0, 0, + 354, 321, 353, 348, 345, 344, 347, 325, 0, 326, + 346, 356, 341, 675, 4, 259, 260, 261, 0, 310, + 0, 256, 336, 337, 338, 1, 21, 675, 675, 22, + 675, 675, 675, 0, 34, 675, 0, 0, 0, 675, + 0, 0, 0, 0, 675, 675, 0, 675, 675, 675, + 0, 675, 675, 6, 0, 16, 7, 19, 0, 14, + 55, 15, 17, 18, 36, 675, 0, 675, 675, 675, + 675, 0, 675, 0, 675, 675, 675, 278, 283, 0, + 0, 549, 0, 0, 277, 0, 675, 675, 0, 0, + 0, 675, 675, 558, 556, 555, 557, 554, 257, 339, + 340, 342, 343, 354, 353, 348, 345, 344, 347, 346, + 341, 0, 0, 489, 660, 661, 662, 665, 663, 667, + 666, 664, 654, 653, 0, 651, 656, 650, 553, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 673, 674, 675, 0, 322, 323, 355, 345, + 350, 349, 352, 258, 351, 0, 675, 675, 675, 675, + 675, 675, 0, 286, 244, 675, 668, 669, 670, 0, + 312, 660, 661, 663, 288, 262, 290, 675, 47, 46, + 48, 675, 37, 42, 23, 675, 0, 40, 0, 0, + 0, 45, 675, 0, 26, 25, 24, 43, 39, 0, + 0, 142, 0, 49, 0, 20, 0, 0, 41, 44, + 0, 285, 267, 276, 0, 0, 0, 0, 12, 0, + 0, 0, 284, 59, 269, 270, 271, 310, 0, 266, + 0, 488, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 279, 675, 281, 280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 583, 655, 675, 675, 567, 568, 569, 570, 571, 572, + 575, 576, 582, 0, 564, 565, 566, 573, 574, 562, + 563, 559, 560, 561, 581, 580, 0, 0, 287, 0, + 675, 0, 675, 675, 675, 675, 675, 249, 236, 0, + 245, 0, 246, 248, 247, 175, 675, 0, 0, 675, + 675, 0, 176, 179, 675, 174, 675, 318, 0, 315, + 314, 309, 313, 0, 675, 675, 38, 35, 675, 0, + 0, 0, 0, 675, 327, 0, 675, 285, 267, 0, + 0, 284, 67, 0, 333, 0, 0, 51, 53, 76, + 78, 285, 267, 61, 0, 0, 675, 268, 675, 0, + 357, 192, 0, 0, 57, 357, 197, 0, 58, 56, + 0, 274, 312, 272, 534, 548, 540, 536, 538, 539, + 0, 546, 0, 545, 535, 542, 0, 0, 0, 541, + 544, 547, 0, 551, 552, 543, 537, 529, 490, 92, + 675, 675, 91, 652, 0, 579, 578, 264, 250, 675, + 241, 237, 238, 240, 239, 675, 0, 0, 675, 213, + 0, 0, 675, 178, 0, 0, 675, 675, 675, 675, + 675, 675, 675, 226, 225, 0, 486, 485, 319, 308, + 263, 675, 293, 675, 292, 675, 329, 0, 0, 0, + 331, 675, 0, 0, 154, 155, 0, 0, 0, 0, + 144, 145, 675, 153, 143, 0, 69, 71, 0, 335, + 0, 0, 0, 675, 675, 0, 0, 675, 0, 0, + 675, 0, 675, 675, 675, 675, 675, 0, 217, 216, + 675, 80, 0, 675, 0, 8, 0, 0, 0, 0, + 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 60, 675, 675, 156, 0, 0, 0, 282, + 550, 0, 0, 0, 0, 94, 96, 93, 95, 0, + 0, 171, 577, 242, 0, 0, 675, 675, 0, 0, + 675, 177, 180, 675, 231, 227, 228, 230, 229, 0, + 0, 675, 210, 190, 251, 316, 0, 289, 0, 0, + 295, 294, 332, 675, 0, 0, 0, 675, 0, 33, + 147, 675, 149, 675, 0, 675, 0, 68, 675, 334, + 675, 52, 643, 639, 642, 645, 646, 182, 0, 0, + 0, 641, 647, 0, 649, 648, 0, 0, 0, 640, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 214, + 186, 215, 597, 644, 181, 0, 0, 0, 0, 62, + 675, 275, 0, 675, 222, 218, 219, 221, 220, 86, + 675, 13, 675, 193, 358, 359, 357, 0, 675, 675, + 195, 196, 198, 200, 201, 675, 0, 204, 206, 203, + 199, 0, 163, 159, 0, 109, 110, 111, 112, 113, + 114, 117, 118, 133, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 137, 136, 120, 119, + 106, 108, 107, 115, 116, 104, 105, 101, 102, 103, + 100, 0, 0, 99, 157, 160, 162, 161, 0, 0, + 167, 675, 169, 0, 0, 63, 273, 0, 0, 0, + 0, 675, 0, 675, 0, 357, 243, 675, 675, 211, + 675, 675, 252, 232, 235, 191, 0, 320, 667, 0, + 666, 0, 0, 296, 0, 298, 657, 675, 0, 675, + 0, 0, 0, 0, 328, 0, 0, 675, 0, 138, + 141, 139, 146, 0, 151, 188, 70, 675, 0, 72, + 50, 0, 0, 0, 605, 0, 0, 0, 0, 613, + 612, 611, 610, 0, 0, 609, 54, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 675, 0, 0, 675, 0, 65, 88, 223, + 675, 0, 0, 361, 362, 366, 363, 370, 364, 365, + 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 436, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 675, 478, 479, 480, 471, 483, + 467, 468, 466, 473, 474, 462, 463, 464, 465, 472, + 470, 477, 475, 481, 476, 482, 469, 360, 0, 9, + 0, 0, 0, 202, 205, 164, 158, 135, 134, 166, + 170, 675, 0, 191, 0, 532, 531, 533, 530, 675, + 675, 172, 97, 0, 0, 0, 212, 0, 0, 675, + 233, 317, 0, 301, 0, 300, 0, 299, 659, 0, + 0, 0, 658, 675, 297, 330, 0, 27, 0, 0, + 32, 148, 152, 150, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 189, 491, 0, + 74, 0, 0, 0, 0, 675, 0, 0, 0, 0, + 0, 0, 638, 184, 187, 622, 623, 624, 625, 626, + 627, 630, 631, 637, 0, 619, 620, 621, 628, 629, + 617, 618, 614, 615, 616, 636, 635, 0, 0, 77, + 0, 82, 79, 0, 675, 0, 224, 675, 0, 194, + 11, 10, 207, 675, 208, 0, 165, 64, 0, 173, + 98, 595, 675, 675, 675, 0, 307, 306, 305, 304, + 303, 302, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 504, 502, 501, 503, 500, 0, 0, + 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 73, 604, 0, 0, 0, 0, 603, + 0, 607, 608, 598, 0, 634, 633, 84, 675, 66, + 0, 675, 81, 484, 0, 675, 357, 675, 675, 675, + 675, 28, 0, 29, 31, 0, 0, 0, 0, 0, + 0, 0, 527, 513, 514, 515, 516, 517, 518, 519, + 520, 526, 0, 510, 511, 512, 508, 509, 505, 506, + 507, 525, 524, 0, 0, 75, 0, 0, 606, 0, + 0, 632, 675, 0, 675, 87, 209, 168, 0, 255, + 254, 253, 234, 0, 498, 0, 0, 0, 497, 0, + 492, 0, 523, 522, 0, 0, 0, 0, 0, 675, + 89, 596, 0, 0, 0, 0, 0, 521, 601, 600, + 602, 599, 675, 675, 0, 0, 0, 0, 0, 675, + 83, 30, 495, 494, 496, 493, 85 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -749, -749, -226, -749, 292, -749, -749, 747, -749, -749, + -28, 459, -749, -106, -749, -749, -749, -11, -113, -749, + -749, -749, -67, -177, -749, -749, -749, 749, -749, -749, + -749, -749, -749, -383, -749, -749, 374, -749, -749, -749, + 377, 491, -339, -749, -509, -567, -445, -749, 1, -749, + 208, -542, -749, -376, -702, -749, -354, 178, -438, 172, + 54, -195, -41, -77, -550, -206, 28, -103, -749, -83, + -749, -749, -749, -749, 219, -70, -749, -362, -749, -749, + -8, -7, -749, -749, -749, -749, -14, 30, -749, -749, + -433, -749, 46, -749, -478, -124, -27, -119, 526, -249, + -749, -749, 700, -749, -748, 708, 817, -513, -1 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 4, 5, 564, 565, 115, 428, 116, 117, 255, + 118, 416, 417, 119, 120, 440, 548, 582, 689, 275, + 538, 646, 647, 826, 290, 544, 547, 291, 702, 1208, + 1262, 880, 1124, 471, 764, 820, 121, 272, 529, 530, + 531, 532, 583, 1021, 584, 600, 381, 382, 677, 678, + 824, 622, 434, 438, 716, 717, 383, 680, 557, 502, + 232, 233, 73, 411, 141, 293, 74, 75, 394, 76, + 395, 513, 629, 630, 803, 77, 78, 391, 387, 388, + 79, 80, 122, 521, 633, 123, 81, 82, 83, 84, + 562, 563, 704, 1007, 505, 300, 301, 1077, 173, 49, + 681, 682, 184, 185, 805, 806, 585, 50, 124 +}; + + /* 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, 271, 569, 304, 305, 306, 307, 604, 309, 638, + 311, 312, 313, 1012, 144, 294, 772, 214, 172, 358, + 142, 143, 320, 321, 489, 593, 216, 326, 327, 648, + 683, 510, 370, 372, 537, 295, 403, 545, 469, 690, + 620, 292, 774, 792, 783, 187, 197, 212, 296, 213, + 1043, 1045, 1047, 625, 594, 621, 626, 236, 237, 248, + 249, 125, 250, 252, 253, 789, 85, 257, 412, 493, + 329, 261, 234, 171, 217, 847, 267, 268, 423, 270, + 273, 274, 329, 278, 279, -668, 810, 567, 568, 330, + -669, 485, 605, 823, 220, 221, 222, 485, 608, 685, + 224, 475, 688, 329, 299, 811, 828, 1179, 621, 610, + 297, 298, 692, 834, 694, 695, 696, 697, 698, 1, + 2, 3, 1025, 470, 302, 126, 302, 302, 302, 302, + 212, 302, 213, 302, 302, 302, -668, 827, 238, -668, + 612, -669, 127, 796, -669, 302, 302, 128, 876, 769, + 302, 302, 485, 609, 303, 209, 210, 211, 129, 308, + 329, 310, 546, 329, 770, 771, 130, 294, 511, 329, + 131, 294, 515, 319, 239, 329, 322, 323, 324, 1026, + 494, 294, 1027, 356, -670, 815, 848, 295, 1028, 679, + 384, 295, 457, 292, 1092, 132, 220, 221, 222, 224, + 296, 295, 560, 536, 296, 361, 133, 687, 775, 362, + 134, 197, 1154, 234, 296, 145, 1189, 1190, 1191, 257, + 699, 700, 881, 396, 776, 368, 234, 234, 368, 368, + 385, 1155, 1030, 329, 389, -670, 722, 723, -670, 765, + 766, 767, 768, 706, 707, 426, 1036, 225, 135, 220, + 363, 226, 1205, 621, 794, 879, 299, 882, 136, 329, + 299, 6, 297, 298, 878, 700, 297, 298, 146, 392, + 299, 329, 829, 1008, 770, 771, 297, 298, 1232, 708, + 367, 369, 371, 373, 374, 1079, 329, 174, 175, 329, + 1282, 329, 227, 1022, 1146, 637, 1147, 709, 1148, 147, + 329, 1149, 1150, 1151, 148, 1298, 294, 149, 1299, 329, + 1300, 364, 150, 151, 877, 302, 206, 207, 208, 1301, + 209, 210, 211, 152, 215, 365, 295, 235, 1312, 329, + 366, 472, 187, 254, 258, 683, 488, 384, 329, 296, + 259, 329, 1035, 195, 196, 1037, 1038, 873, 1313, 260, + 176, 177, 1034, 228, 197, 264, 414, 1314, 415, 368, + 1315, 368, 368, 368, 368, 368, 265, 229, 178, 179, + 197, 180, 230, 266, 269, 368, 181, 231, 368, 368, + 280, 333, 1015, 504, 550, 507, 314, 10, 595, 11, + 316, 594, 533, 6, 514, 299, 328, 6, 1029, 332, + 596, 297, 298, 597, 360, 534, 598, 809, -90, 435, + -90, 436, -90, 437, 478, 386, 480, 481, 482, 483, + 484, 1032, 599, 392, -236, 559, 419, 6, 393, 384, + 486, 1214, 595, 490, 491, 1125, 236, 237, 551, 770, + 771, 874, 552, 540, 596, 404, 606, 597, 420, 406, + 598, 1080, 430, 384, 431, 432, 433, 204, 205, 206, + 207, 208, 1138, 209, 210, 211, 599, 424, 439, 385, + 601, 444, 329, 204, 205, 206, 207, 208, 368, 209, + 210, 211, 450, 553, 507, 445, -90, 504, -90, 1119, + -90, 472, 1122, 1179, 679, 504, 504, 504, 504, 504, + 504, 623, 384, 384, 446, 447, 384, 448, 683, 236, + 237, 574, 631, 533, 449, 575, 451, 238, 1179, 435, + 6, 436, 452, 773, 770, 771, 1019, 453, 48, 241, + 242, 504, 458, 603, 1049, 1050, 1051, 819, 770, 771, + 1120, 454, 684, 385, 554, 455, 385, 459, 460, 559, + 461, 559, 559, 559, 559, 559, 576, 462, 555, 463, + 777, 778, 705, 556, 779, 780, 153, 154, 155, 156, + 157, 719, 648, 188, 1078, 465, 466, 479, 485, 509, + 144, 1053, 601, 623, 1010, 1011, 142, 143, 1031, 577, + 238, 492, 176, 177, 1145, 512, 1184, 1185, 1186, 1187, + 1188, 516, 1189, 1190, 1191, 504, 623, 517, 518, 601, + 243, 179, 504, 180, 690, 270, 392, 578, 181, 519, + 507, 804, 830, 1186, 1187, 1188, 535, 1189, 1190, 1191, + 533, 579, 6, 539, 541, 542, 580, 543, 561, 586, + 504, 581, 587, 588, 825, 591, 239, 623, 844, 144, + 1269, 1270, 1271, 590, 469, 142, 143, 592, 613, 624, + 607, 384, -311, 628, 634, 635, 636, 679, 614, 615, + 616, 617, 618, 619, 639, 643, 325, 644, 650, 1210, + 649, 686, 693, 827, 703, 710, 711, 712, 713, 623, + 714, 781, 559, 721, 785, 784, 786, 787, 807, 507, + 790, 385, 808, 843, 645, 791, 812, 302, 302, 53, + 621, 54, 55, 56, 719, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 1310, 357, 63, 219, + 813, 359, 1316, -243, 1212, 816, 384, 818, 831, 384, + 384, 832, 836, 833, 186, 835, 65, 66, 837, 1217, + 1218, 1219, 1014, 1263, 700, 838, 1016, 1020, 144, 1013, + 507, 846, 70, 872, 142, 143, 223, 72, 788, 875, + 472, 1039, 234, 1268, 1017, 793, 385, 623, 245, 385, + 385, 804, 804, 804, 1018, 405, 1024, 1040, 1056, 1057, + 146, 804, 1058, 1059, 1060, 251, 6, 384, 263, 1081, + 1085, 1091, 1121, 817, 1123, 1126, 825, 1288, 277, 1127, + 1131, 1078, 1078, 1078, 1078, 1078, 623, 1078, 1265, 241, + 242, 1129, 1267, 1130, 1140, 1139, 1132, 1272, 1136, 384, + 456, 1141, 1142, 1117, 1061, 1143, 1063, 1144, 315, 87, + 317, 318, 1157, 1153, 467, 468, 1156, 88, 1158, 1082, + 1083, 1084, 1159, 1086, 1087, 1088, 1089, 90, 91, 92, + 1160, 472, 1161, 1162, 472, 1192, 1194, 1195, 247, 385, + 1196, 1290, 1198, 1199, 99, 1200, 1201, 1207, 1211, 1216, + 1221, 331, 176, 177, 104, 1222, 240, 246, 1215, 1220, + 105, 1223, 1224, 1231, 390, 108, 1303, 1266, 1256, 1257, + 243, 179, 506, 180, 1258, 111, 1259, 112, 181, 1309, + 1260, 1264, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, + 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, + 1078, 1273, 114, 244, 53, 1274, 54, 55, 56, 1275, + 549, 1163, 1164, 1165, 1166, 1167, 53, 1170, 54, 55, + 56, 1197, 1276, 573, 399, 1277, 400, 401, 402, 236, + 237, 495, 1279, 63, 219, 496, 1278, 1289, 1292, 1291, + 384, 1293, 1078, 705, 413, 63, 219, 1294, 418, 1295, + 1296, 65, 66, 1302, 1304, 427, 1311, 429, 384, 1009, + 602, 651, 397, 65, 66, 441, 443, 70, 174, 175, + 1209, 506, 72, 1137, 1193, 1255, 497, 821, 641, 70, + 684, 822, 1135, 410, 72, 1062, 1094, 1054, 601, 234, + 1128, 0, 1078, 473, 0, 804, 0, 804, 385, 804, + 0, 186, 804, 804, 804, 0, 0, 147, 1169, 0, + 238, 0, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, + 1251, 176, 177, 0, 0, 0, 0, 498, 0, 0, + 0, 0, 0, 384, 302, 0, 0, 0, 0, 178, + 179, 499, 180, 0, 0, 508, 500, 181, 718, 0, + 0, 501, 0, 1168, 0, 0, 0, 0, 0, 0, + 0, 0, 1280, 0, 442, 246, 0, 0, 0, 0, + 0, 0, 262, 385, 0, 0, 472, 0, 0, 0, + 0, 0, 719, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 566, 472, 472, 472, 0, 0, 795, 506, 0, 1179, + 0, 0, 797, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 1297, 1253, 0, 0, 0, 384, 0, 0, + 0, 197, 0, 0, 0, 0, 53, 0, 54, 55, + 56, 0, 0, 0, 0, 1225, 1226, 1227, 1228, 1229, + 1230, 0, 0, 0, 0, 0, 0, 839, 840, 841, + 842, 503, 845, 0, 0, 63, 219, 385, 0, 0, + 472, 0, 0, 0, 472, 0, 601, 601, 601, 472, + 0, 384, 0, 65, 66, 0, 506, 0, 0, 1284, + 1285, 0, 1286, 1287, 640, 0, 642, 0, 0, 70, + 0, 718, 0, 558, 72, 0, 0, 1181, 1182, 1183, + 418, 0, 1184, 1185, 1186, 1187, 1188, 0, 1189, 1190, + 1191, 385, 0, 472, 174, 175, 1305, 1306, 1307, 1308, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 0, + 209, 210, 211, 0, 0, 0, 0, 0, 472, 0, + 193, 194, 195, 196, 0, 0, 0, 506, 0, 1023, + 0, 472, 601, 197, 0, 503, 0, 0, 601, 1175, + 1176, 1177, 1178, 503, 503, 503, 503, 503, 503, 0, + 0, 0, 1179, 0, 0, 0, 0, 176, 177, 0, + 0, 0, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 0, 0, 0, 0, 178, 179, 0, 180, 503, + 197, 0, 0, 181, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1090, 0, 0, 558, 0, 558, + 558, 558, 558, 558, 0, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, + 1110, 1111, 1112, 1113, 1114, 1115, 0, 1118, 0, 0, + 0, 0, 0, 0, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 211, 566, 0, 0, 0, 0, + 0, 0, 0, 503, 0, 1184, 1185, 1186, 1187, 1188, + 503, 1189, 1190, 1191, 0, 0, 0, 7, 8, 9, + 10, 0, 11, 12, 13, 158, 0, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 503, 209, + 210, 211, 0, 0, 476, 0, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 15, 52, 0, 0, 159, 197, 160, 161, 162, + 57, 58, 1033, 20, 59, 0, 0, 163, 22, 0, + 0, 61, 0, 0, 0, 0, 23, 24, 164, 1048, + 558, 0, 1052, 0, 165, 166, 0, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 167, 168, 34, 0, 0, 35, 67, 0, + 1134, 0, 36, 0, 0, 37, 68, 69, 169, 0, + 0, 71, 0, 170, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 0, 40, 0, 0, 41, + 42, 43, 174, 175, 44, 0, 45, 46, 0, 0, + 0, 47, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 0, 15, + 1206, 174, 175, 16, 0, 17, 18, 19, 0, 0, + 0, 20, 0, 570, 571, 21, 22, 1203, 0, 0, + 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 27, 0, 176, 177, 0, 0, 28, + 0, 29, 0, 30, 0, 0, 0, 0, 31, 0, + 32, 33, 34, 178, 179, 35, 180, 0, 0, 718, + 36, 181, 0, 37, 176, 177, 38, 0, 0, 0, + 0, 39, 0, 0, 0, 0, 572, 276, 0, 0, + 0, 0, 178, 179, 40, 180, 398, 41, 42, 43, + 181, 0, 44, 0, 45, 46, 0, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 1254, 893, 894, + 895, 896, 897, 898, 899, 900, 901, 902, 903, 0, + 1261, 0, 0, 0, 0, 0, 904, 905, 906, 907, + 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, + 918, 919, 920, 0, 0, 921, 922, 923, 924, 925, + 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, + 0, 936, 0, 937, 938, 939, 940, 941, 942, 943, + 944, 945, 946, 947, 948, 949, 0, 0, 0, 950, + 951, 952, 0, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 0, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 0, 0, 0, 984, 985, + 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, + 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1213, + 1005, 1006, 883, 884, 885, 886, 887, 888, 889, 890, + 891, 892, 0, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 902, 903, 0, 0, 0, 0, 0, 0, + 0, 904, 905, 906, 907, 908, 909, 910, 911, 912, + 913, 914, 915, 916, 917, 918, 919, 920, 0, 0, + 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, + 931, 932, 933, 934, 935, 0, 936, 0, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, + 949, 0, 0, 0, 950, 951, 952, 0, 953, 954, + 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, + 965, 966, 967, 968, 0, 969, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, + 0, 0, 0, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 0, 1005, 1006, 652, 653, 654, + 10, 0, 11, 655, 656, 51, 0, 0, 657, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 658, 52, 0, 0, 53, 197, 54, 55, 56, + 57, 377, 0, 659, 59, 0, 0, 60, 660, 0, + 0, 61, 0, 0, 0, 0, 661, 662, 62, 0, + 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, + 0, 663, 0, 664, 0, 665, 0, 0, 0, 378, + 666, 0, 65, 66, 667, 0, 0, 668, 67, 0, + 0, 0, 669, 0, 0, 670, 68, 69, 70, 0, + 0, 71, 0, 72, 652, 653, 654, 10, 0, 11, + 655, 656, 51, 0, 0, 1093, 671, 0, 0, 672, + 673, 0, 0, 0, 674, 0, 675, 0, 0, 0, + 0, 676, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 658, 52, + 1283, 0, 53, 0, 54, 55, 56, 57, 377, 0, + 659, 59, 0, 0, 60, 660, 0, 0, 61, 0, + 0, 0, 0, 661, 662, 62, 0, 0, 0, 0, + 0, 63, 64, 0, 0, 0, 0, 0, 663, 0, + 664, 0, 665, 0, 174, 175, 378, 666, 0, 65, + 66, 667, 0, 0, 668, 67, 0, 0, 0, 669, + 0, 0, 670, 68, 69, 70, 0, 0, 71, 0, + 72, 7, 8, 9, 10, 0, 11, 12, 13, 14, + 0, 0, 0, 671, 0, 0, 672, 673, 0, 0, + 57, 674, 0, 675, 0, 0, 0, 0, 676, 1173, + 1174, 1175, 1176, 1177, 1178, 0, 0, 176, 177, 0, + 0, 0, 0, 0, 1179, 15, 0, 0, 0, 16, + 0, 17, 18, 19, 0, 178, 179, 20, 180, 0, + 0, 21, 22, 181, 0, 0, 0, 0, 67, 0, + 23, 24, 25, 0, 0, 0, 801, 69, 26, 27, + 1042, 0, 0, 0, 0, 28, 0, 29, 0, 30, + 0, 0, 0, 0, 31, 0, 32, 33, 34, 0, + 0, 35, 0, 0, 0, 0, 36, 0, 0, 37, + 0, 0, 38, 7, 8, 9, 10, 39, 11, 12, + 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 41, 42, 43, 0, 0, 44, 0, + 45, 46, 355, 1182, 1183, 47, 0, 1184, 1185, 1186, + 1187, 1188, 0, 1189, 1190, 1191, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 0, 0, 20, + 0, 0, 0, 21, 22, 0, 0, 174, 175, 0, + 0, 0, 23, 24, 25, 0, 0, 0, 0, 0, + 26, 27, 0, 0, 0, 0, 0, 28, 0, 29, + 0, 30, 0, 0, 0, 0, 31, 0, 32, 33, + 34, 0, 0, 35, 0, 0, 0, 0, 36, 524, + 525, 37, 0, 57, 38, 7, 8, 9, 10, 39, + 11, 12, 13, 14, 715, 0, 0, 0, 0, 0, + 176, 177, 40, 0, 0, 41, 42, 43, 0, 0, + 44, 0, 45, 46, 0, 0, 0, 47, 178, 179, + 53, 180, 54, 55, 56, 0, 181, 0, 0, 15, + 0, 67, 60, 16, 0, 17, 18, 19, 0, 801, + 69, 20, 0, 62, 0, 21, 22, 0, 0, 63, + 64, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 27, 0, 0, 0, 65, 66, 28, + 0, 29, 0, 30, 0, 0, 0, 0, 31, 0, + 32, 33, 34, 70, 0, 35, 71, 0, 72, 0, + 36, 0, 0, 37, 0, 0, 38, 7, 8, 9, + 10, 39, 11, 12, 13, 14, 0, 0, 53, 0, + 54, 55, 56, 0, 40, 0, 0, 41, 42, 43, + 218, 0, 44, 0, 45, 46, 1116, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 63, 219, 0, + 0, 15, 0, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 65, 66, 21, 22, 0, + 0, 174, 175, 0, 0, 0, 23, 24, 25, 0, + 0, 70, 0, 0, 26, 27, 72, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 32, 33, 34, 0, 0, 35, 0, 136, + 0, 0, 36, 0, 0, 37, 0, 57, 38, 7, + 8, 9, 10, 39, 11, 12, 13, 14, 1133, 0, + 0, 0, 0, 0, 176, 177, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 0, 45, 46, 0, 0, + 0, 47, 178, 798, 799, 800, 0, 0, 0, 0, + 181, 0, 0, 15, 0, 67, 0, 16, 0, 17, + 18, 19, 0, 801, 69, 20, 0, 802, 0, 21, + 22, 0, 0, 174, 175, 0, 0, 0, 23, 24, + 25, 0, 0, 0, 0, 0, 26, 27, 0, 0, + 0, 0, 0, 28, 0, 29, 0, 30, 0, 0, + 0, 0, 31, 0, 32, 33, 34, 0, 0, 35, + 0, 0, 0, 0, 36, 0, 0, 37, 0, 57, + 38, 7, 8, 9, 10, 39, 11, 12, 13, 14, + 0, 0, 0, 0, 0, 0, 176, 177, 40, 0, + 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, + 1252, 0, 0, 47, 178, 179, 53, 180, 54, 55, + 56, 0, 181, 0, 0, 15, 0, 67, 0, 16, + 0, 17, 18, 19, 0, 801, 69, 20, 0, 1044, + 0, 21, 22, 0, 0, 63, 219, 0, 0, 0, + 23, 24, 25, 0, 0, 0, 0, 0, 26, 27, + 0, 0, 0, 65, 66, 28, 0, 29, 0, 30, + 0, 0, 0, 0, 31, 0, 32, 33, 34, 70, + 0, 35, 0, 0, 72, 0, 36, 524, 525, 37, + 1177, 1178, 38, 7, 8, 9, 10, 39, 11, 12, + 13, 1179, 0, 0, 0, 0, 0, 151, 0, 0, + 40, 0, 0, 41, 42, 43, 0, 0, 44, 0, + 45, 46, 0, 0, 0, 47, 0, 0, 53, 0, + 54, 55, 56, 526, 527, 0, 0, 1064, 0, 0, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 1065, + 0, 62, 0, 0, 1066, 0, 0, 63, 64, 0, + 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, + -2, 0, 0, 0, 0, 65, 66, 0, 0, 29, + 0, 30, 0, 0, 0, 0, 1067, 0, 0, 528, + 1068, 70, 0, 1069, 71, 0, 72, 0, 36, 0, + 0, 0, 0, 0, 1184, 1185, 1186, 1187, 1188, 0, + 1189, 1190, 1191, 0, 0, 0, 0, 0, 0, 86, + 87, 0, 1070, 0, 0, 1071, 1072, 1073, 88, 0, + 1074, 0, 1075, 46, 0, 0, 89, 1076, 90, 91, + 92, 93, 0, 0, 0, 94, 0, 0, 0, 95, + 0, 0, 96, 97, 98, 99, 100, 0, 0, 0, + 0, 0, 101, 102, 103, 104, 0, 0, 0, 0, + 0, 105, 106, 0, 0, 107, 108, 0, 0, 0, + 109, 0, 0, 0, 0, 110, 111, 0, 112, 724, + 0, 0, 0, 0, 281, 282, 113, 0, 725, 726, + 727, 728, 729, 730, 731, 732, 0, 0, 0, 0, + 0, 0, 0, 114, 0, 733, 0, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 0, + 0, 0, 283, 0, 0, 53, 0, 54, 55, 56, + 57, 284, 0, 0, 285, 746, 0, 60, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, + 747, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 0, 65, 66, 0, 0, 0, 0, 67, 0, + 281, 282, 174, 175, 0, 0, 287, 69, 70, 0, + 0, 71, 0, 72, 0, 0, 0, 0, 748, 0, + 0, 749, 0, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 289, 761, 762, 0, 283, 0, + 763, 53, 0, 54, 55, 56, 57, 284, 0, 0, + 285, 0, 0, 60, 0, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 62, 176, 177, 0, 0, 0, + 63, 64, 407, 408, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 178, 179, 0, 180, 0, 65, 66, + 0, 181, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 287, 69, 70, 0, 0, 71, 0, 72, + 283, 0, 0, 53, 288, 54, 55, 56, 57, 409, + 182, 0, 285, 0, 183, 60, 0, 0, 0, 61, + 289, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, + 65, 66, 0, 0, 0, 0, 67, 0, 53, 0, + 54, 55, 56, 0, 287, 69, 70, 0, 0, 71, + 218, 72, 189, 190, 191, 192, 193, 194, 195, 196, + 0, 0, 0, 0, 0, 0, 0, 63, 219, 197, + 0, 0, 289, 189, 190, 191, 192, 193, 194, 195, + 196, 0, 0, 0, 0, 65, 66, 0, 0, 0, + 197, 189, 190, 191, 192, 193, 194, 195, 196, 0, + 0, 70, 0, 0, 0, 0, 72, 0, 197, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 197, 189, 190, 191, + 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 0, 0, 0, 0, 0, 0, + 0, 0, 522, 197, 0, 0, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, + 211, 523, 0, 0, 0, 0, 0, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, + 210, 211, 464, 0, 0, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 477, 0, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 589, 0, + 0, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 0, 209, 210, 211, 691, 0, 0, 0, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 211, 1202, 189, 190, 191, 192, + 193, 194, 195, 196, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 197, 189, 190, 191, 192, 193, 194, + 195, 196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 197, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 197, 189, 190, 191, 192, 193, 194, 195, 196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 197, 849, 850, 851, + 852, 853, 854, 855, 856, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 857, 0, 0, 0, 474, 0, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 211, 720, 0, 0, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 0, + 209, 210, 211, 1041, 0, 0, 0, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, + 210, 211, 0, 1204, 0, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 0, 0, + 0, 858, 859, 860, 861, 862, 863, 864, 865, 866, + 867, 868, 0, 869, 870, 871, 1171, 1172, 1173, 1174, + 1175, 1176, 1177, 1178, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1179, 1171, 1172, 1173, 1174, 1175, 1176, + 1177, 1178, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1179, 190, 191, 192, 193, 194, 195, 196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 191, 192, 193, 194, 195, 196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 191, + 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1173, 1174, 1175, 1176, 1177, 1178, 0, 0, 1281, 0, + 1180, 1181, 1182, 1183, 0, 1179, 1184, 1185, 1186, 1187, + 1188, 0, 1189, 1190, 1191, 0, 0, 0, 1180, 1181, + 1182, 1183, 0, 0, 1184, 1185, 1186, 1187, 1188, 0, + 1189, 1190, 1191, 0, 0, 0, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 51, 0, 0, 375, 0, 376, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 0, 0, 0, 0, 201, 202, 203, 204, 205, 206, + 207, 208, 0, 209, 210, 211, 0, 52, 0, 0, + 53, 0, 54, 55, 56, 57, 377, 0, 0, 59, + 0, 0, 60, 1181, 1182, 1183, 61, 0, 1184, 1185, + 1186, 1187, 1188, 62, 1189, 1190, 1191, 0, 0, 63, + 64, 191, 192, 193, 194, 195, 196, 174, 175, 0, + 0, 0, 0, 0, 378, 0, 197, 65, 66, 0, + 0, 0, 0, 67, 1173, 1174, 1175, 1176, 1177, 1178, + 0, 68, 69, 70, 0, 0, 71, 0, 72, 1179, + 1173, 1174, 1175, 1176, 1177, 1178, 0, 0, 0, 0, + 0, 379, 0, 57, 0, 1179, 380, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 178, 179, + 0, 180, 0, 0, 0, 0, 181, 0, 0, 0, + 0, 67, 0, 0, 0, 0, 0, 0, 0, 801, + 69, 0, 0, 1046, 0, 0, 0, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 0, 421, + 422, 0, 0, 0, 0, 0, 0, 0, 0, 1183, + 0, 0, 1184, 1185, 1186, 1187, 1188, 0, 1189, 1190, + 1191, 0, 0, 0, 0, 0, 0, 0, 1184, 1185, + 1186, 1187, 1188, 0, 1189, 1190, 1191, 283, 0, 0, + 53, 0, 54, 55, 56, 57, 0, 0, 0, 285, + 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, + 64, 0, 51, 0, 0, 375, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, + 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, + 0, 287, 69, 70, 0, 0, 71, 0, 72, 52, + 0, 0, 53, 0, 54, 55, 56, 57, 377, 0, + 0, 59, 0, 0, 60, 0, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 63, 64, 0, 51, 0, 0, 611, 0, 0, + 87, 0, 0, 0, 0, 0, 378, 0, 88, 65, + 66, 0, 0, 0, 0, 67, 0, 0, 90, 91, + 92, 0, 0, 68, 69, 70, 0, 0, 71, 247, + 72, 52, 0, 0, 53, 99, 54, 55, 56, 57, + 377, 0, 0, 59, 0, 104, 60, 0, 0, 0, + 61, 105, 0, 0, 0, 107, 108, 62, 0, 0, + 0, 51, 0, 63, 64, 0, 111, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, + 0, 65, 66, 51, 0, 0, 0, 67, 0, 0, + 0, 0, 0, 114, 0, 68, 69, 70, 52, 0, + 71, 53, 72, 54, 55, 56, 57, 377, 0, 0, + 59, 0, 0, 60, 0, 0, 0, 61, 0, 0, + 52, 0, 0, 53, 62, 54, 55, 56, 57, 58, + 63, 64, 59, 0, 0, 60, 0, 0, 0, 61, + 0, 0, 0, 0, 0, 378, 62, 0, 65, 66, + 51, 0, 63, 64, 67, 0, 0, 0, 0, 0, + 0, 0, 68, 69, 70, 0, 0, 71, 0, 72, + 65, 66, 0, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 68, 69, 70, 52, 0, 71, + 53, 72, 54, 55, 56, 57, 425, 0, 0, 59, + 0, 0, 60, 0, 0, 51, 61, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, + 64, 0, 0, 0, 0, 0, 0, 137, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, + 0, 0, 52, 67, 0, 53, 0, 54, 55, 56, + 57, 68, 69, 70, 59, 0, 71, 60, 72, 0, + 0, 61, 0, 0, 138, 0, 0, 53, 62, 54, + 55, 56, 57, 782, 63, 64, 139, 0, 0, 60, + 0, 0, 137, 61, 0, 0, 0, 0, 0, 487, + 62, 0, 65, 66, 0, 0, 63, 64, 67, 0, + 0, 0, 0, 0, 51, 0, 68, 69, 70, 0, + 0, 71, 0, 72, 65, 66, 0, 0, 0, 138, + 67, 0, 53, 0, 54, 55, 56, 57, 140, 69, + 70, 139, 0, 71, 60, 72, 0, 0, 61, 0, + 0, 52, 0, 0, 53, 62, 54, 55, 56, 57, + 0, 63, 64, 59, 0, 0, 60, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 62, 0, 65, + 66, 0, 0, 63, 64, 67, 0, 0, 0, 0, + 0, 0, 0, 140, 69, 70, 0, 0, 71, 0, + 72, 65, 66, 0, 86, 87, 0, 67, 0, 0, + 0, 0, 0, 88, 0, 68, 69, 70, 0, 0, + 71, 89, 72, 90, 91, 92, 93, 0, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, + 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, + 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, + 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, + 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, + 520, 101, 102, 103, 104, 0, 0, 0, 0, 0, + 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, + 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, + 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, + 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, + 0, 0, 114, 0, 627, 101, 102, 103, 104, 0, + 0, 0, 0, 0, 105, 106, 86, 87, 107, 108, + 0, 0, 0, 109, 0, 88, 0, 0, 110, 111, + 0, 112, 0, 89, 0, 90, 91, 92, 93, 113, + 0, 0, 94, 0, 0, 0, 95, 0, 0, 96, + 97, 98, 99, 100, 0, 0, 114, 0, 632, 101, + 102, 103, 104, 0, 0, 0, 0, 0, 105, 106, + 86, 87, 107, 108, 0, 0, 0, 109, 0, 88, + 0, 0, 110, 111, 0, 112, 0, 89, 0, 90, + 91, 92, 93, 113, 0, 0, 94, 0, 0, 0, + 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, + 114, 0, 701, 101, 102, 103, 104, 0, 0, 0, + 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, + 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, + 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, + 99, 100, 0, 0, 114, 0, 814, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, + 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, + 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, + 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, + 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, + 1055, 101, 102, 103, 104, 0, 0, 0, 0, 0, + 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, + 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, + 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, + 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, + 0, 0, 114, 0, 1152, 101, 102, 103, 104, 0, + 0, 0, 0, 0, 105, 106, 87, 0, 107, 108, + 0, 0, 0, 109, 88, 0, 0, 0, 110, 111, + 87, 112, 0, 0, 90, 91, 92, 0, 88, 0, + 0, 0, 0, 0, 0, 247, 0, 0, 90, 91, + 92, 99, 256, 0, 0, 0, 114, 0, 0, 247, + 87, 104, 0, 0, 0, 99, 0, 105, 88, 0, + 0, 0, 108, 0, 0, 104, 0, 0, 90, 91, + 92, 105, 111, 0, 112, 0, 108, 0, 0, 247, + 0, 0, 0, 0, 0, 99, 111, 0, 112, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 114, + 0, 105, 0, -140, 0, 0, 108, 0, 0, 0, + 0, 0, 0, 114, 0, 0, 111, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114 +}; + +static const yytype_int16 yycheck[] = +{ + 1, 107, 435, 127, 128, 129, 130, 485, 132, 522, + 134, 135, 136, 715, 28, 118, 583, 58, 45, 214, + 28, 28, 146, 147, 378, 470, 56, 151, 152, 538, + 543, 393, 227, 228, 410, 118, 262, 12, 57, 548, + 128, 118, 584, 610, 594, 46, 32, 6, 118, 8, + 798, 799, 800, 125, 32, 143, 128, 10, 11, 87, + 88, 142, 90, 91, 92, 607, 0, 95, 274, 14, + 125, 99, 73, 45, 104, 14, 104, 105, 284, 107, + 108, 109, 125, 111, 112, 73, 125, 61, 62, 144, + 73, 143, 144, 128, 64, 65, 66, 143, 144, 544, + 70, 144, 547, 125, 118, 144, 648, 32, 143, 492, + 118, 118, 550, 663, 552, 553, 554, 555, 556, 121, + 122, 123, 144, 142, 125, 142, 127, 128, 129, 130, + 6, 132, 8, 134, 135, 136, 124, 646, 91, 127, + 494, 124, 142, 621, 127, 146, 147, 142, 690, 127, + 151, 152, 143, 144, 126, 141, 142, 143, 142, 131, + 125, 133, 137, 125, 142, 143, 142, 270, 394, 125, + 133, 274, 398, 145, 127, 125, 148, 149, 150, 144, + 125, 284, 144, 210, 73, 144, 125, 270, 144, 543, + 231, 274, 316, 270, 144, 142, 166, 167, 168, 169, + 270, 284, 428, 409, 274, 12, 133, 546, 584, 16, + 142, 32, 125, 214, 284, 133, 141, 142, 143, 247, + 142, 143, 700, 251, 586, 226, 227, 228, 229, 230, + 231, 144, 782, 125, 235, 124, 575, 576, 127, 578, + 579, 580, 581, 124, 125, 286, 788, 12, 142, 219, + 57, 16, 144, 143, 144, 693, 270, 702, 142, 125, + 274, 262, 270, 270, 142, 143, 274, 274, 142, 239, + 284, 125, 648, 706, 142, 143, 284, 284, 144, 124, + 226, 227, 228, 229, 230, 827, 125, 10, 11, 125, + 144, 125, 57, 771, 1042, 521, 1044, 142, 1046, 142, + 125, 1049, 1050, 1051, 142, 144, 409, 133, 144, 125, + 144, 118, 142, 142, 690, 316, 137, 138, 139, 144, + 141, 142, 143, 142, 142, 132, 409, 124, 144, 125, + 137, 332, 333, 127, 142, 848, 377, 378, 125, 409, + 142, 125, 787, 21, 22, 790, 791, 686, 144, 142, + 73, 74, 785, 118, 32, 127, 126, 144, 128, 360, + 144, 362, 363, 364, 365, 366, 127, 132, 91, 92, + 32, 94, 137, 127, 142, 376, 99, 142, 379, 380, + 143, 125, 721, 384, 425, 386, 142, 6, 73, 8, + 142, 32, 406, 394, 395, 409, 144, 398, 781, 146, + 85, 409, 409, 88, 137, 406, 91, 633, 124, 124, + 126, 126, 128, 128, 360, 143, 362, 363, 364, 365, + 366, 144, 107, 393, 143, 426, 142, 428, 127, 470, + 376, 1133, 73, 379, 380, 880, 10, 11, 12, 142, + 143, 144, 16, 415, 85, 124, 487, 88, 142, 133, + 91, 827, 124, 494, 126, 127, 128, 135, 136, 137, + 138, 139, 1029, 141, 142, 143, 107, 142, 126, 470, + 471, 144, 125, 135, 136, 137, 138, 139, 479, 141, + 142, 143, 134, 57, 485, 144, 124, 488, 126, 872, + 128, 492, 875, 32, 848, 496, 497, 498, 499, 500, + 501, 502, 543, 544, 144, 144, 547, 144, 1021, 10, + 11, 12, 513, 527, 144, 16, 144, 91, 32, 124, + 521, 126, 134, 128, 142, 143, 144, 144, 2, 10, + 11, 532, 134, 479, 92, 93, 94, 643, 142, 143, + 144, 144, 543, 544, 118, 144, 547, 144, 144, 550, + 144, 552, 553, 554, 555, 556, 57, 134, 132, 144, + 587, 588, 563, 137, 591, 592, 40, 41, 42, 43, + 44, 572, 1081, 47, 823, 144, 144, 137, 143, 145, + 594, 807, 583, 584, 708, 709, 594, 594, 783, 90, + 91, 144, 73, 74, 1039, 73, 135, 136, 137, 138, + 139, 124, 141, 142, 143, 606, 607, 125, 125, 610, + 91, 92, 613, 94, 1123, 643, 586, 118, 99, 125, + 621, 628, 650, 137, 138, 139, 142, 141, 142, 143, + 644, 132, 633, 126, 146, 125, 137, 142, 142, 127, + 641, 142, 142, 142, 645, 142, 127, 648, 675, 663, + 1217, 1218, 1219, 144, 57, 663, 663, 142, 137, 146, + 488, 702, 124, 127, 10, 10, 10, 1021, 496, 497, + 498, 499, 500, 501, 126, 134, 150, 125, 146, 1124, + 126, 137, 137, 1192, 145, 126, 126, 145, 126, 690, + 126, 144, 693, 137, 124, 142, 146, 142, 124, 700, + 142, 702, 125, 675, 532, 142, 125, 708, 709, 51, + 143, 53, 54, 55, 715, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 1303, 211, 80, 81, + 125, 215, 1309, 143, 1127, 128, 787, 128, 142, 790, + 791, 133, 142, 133, 46, 133, 98, 99, 133, 1142, + 1143, 1144, 125, 1208, 143, 142, 10, 4, 782, 145, + 771, 144, 114, 144, 782, 782, 68, 119, 606, 144, + 781, 142, 783, 1216, 144, 613, 787, 788, 80, 790, + 791, 798, 799, 800, 146, 269, 125, 146, 10, 126, + 142, 808, 10, 10, 126, 6, 807, 848, 100, 125, + 142, 144, 142, 641, 125, 146, 817, 1262, 110, 144, + 144, 1070, 1071, 1072, 1073, 1074, 827, 1076, 1211, 10, + 11, 145, 1215, 145, 144, 1030, 145, 1220, 146, 880, + 314, 145, 144, 870, 816, 144, 818, 144, 140, 50, + 142, 143, 142, 144, 328, 329, 144, 58, 133, 831, + 832, 833, 133, 835, 836, 837, 838, 68, 69, 70, + 133, 872, 142, 133, 875, 125, 144, 134, 79, 880, + 134, 1264, 134, 144, 85, 134, 144, 142, 144, 124, + 126, 183, 73, 74, 95, 10, 79, 80, 144, 144, + 101, 126, 126, 144, 11, 106, 1289, 145, 142, 142, + 91, 92, 386, 94, 144, 116, 142, 118, 99, 1302, + 142, 144, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 125, 143, 124, 51, 144, 53, 54, 55, 134, + 424, 1070, 1071, 1072, 1073, 1074, 51, 1076, 53, 54, + 55, 1085, 134, 437, 256, 134, 258, 259, 260, 10, + 11, 12, 134, 80, 81, 16, 144, 144, 10, 145, + 1021, 142, 1231, 984, 276, 80, 81, 142, 280, 142, + 142, 98, 99, 144, 144, 287, 126, 289, 1039, 707, + 474, 542, 255, 98, 99, 297, 298, 114, 10, 11, + 1123, 485, 119, 1024, 1081, 1192, 57, 643, 527, 114, + 1021, 644, 1021, 274, 119, 817, 848, 808, 1029, 1030, + 984, -1, 1281, 333, -1, 1042, -1, 1044, 1039, 1046, + -1, 333, 1049, 1050, 1051, -1, -1, 142, 1075, -1, + 91, -1, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 73, 74, -1, -1, -1, -1, 118, -1, -1, + -1, -1, -1, 1124, 1085, -1, -1, -1, -1, 91, + 92, 132, 94, -1, -1, 387, 137, 99, 572, -1, + -1, 142, -1, 1075, -1, -1, -1, -1, -1, -1, + -1, -1, 1231, -1, 297, 298, -1, -1, -1, -1, + -1, -1, 124, 1124, -1, -1, 1127, -1, -1, -1, + -1, -1, 1133, 16, 17, 18, 19, 20, 21, 22, + 432, 1142, 1143, 1144, -1, -1, 620, 621, -1, 32, + -1, -1, 626, -1, -1, -1, 17, 18, 19, 20, + 21, 22, 1281, 1190, -1, -1, -1, 1208, -1, -1, + -1, 32, -1, -1, -1, -1, 51, -1, 53, 54, + 55, -1, -1, -1, -1, 1157, 1158, 1159, 1160, 1161, + 1162, -1, -1, -1, -1, -1, -1, 671, 672, 673, + 674, 384, 676, -1, -1, 80, 81, 1208, -1, -1, + 1211, -1, -1, -1, 1215, -1, 1217, 1218, 1219, 1220, + -1, 1262, -1, 98, 99, -1, 700, -1, -1, 1256, + 1257, -1, 1259, 1260, 526, -1, 528, -1, -1, 114, + -1, 715, -1, 426, 119, -1, -1, 130, 131, 132, + 542, -1, 135, 136, 137, 138, 139, -1, 141, 142, + 143, 1262, -1, 1264, 10, 11, 1293, 1294, 1295, 1296, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + 141, 142, 143, -1, -1, -1, -1, -1, 1289, -1, + 19, 20, 21, 22, -1, -1, -1, 771, -1, 773, + -1, 1302, 1303, 32, -1, 488, -1, -1, 1309, 19, + 20, 21, 22, 496, 497, 498, 499, 500, 501, -1, + -1, -1, 32, -1, -1, -1, -1, 73, 74, -1, + -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, 91, 92, -1, 94, 532, + 32, -1, -1, 99, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 838, -1, -1, 550, -1, 552, + 553, 554, 555, 556, -1, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 869, -1, 871, -1, -1, + -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, + 139, -1, 141, 142, 143, 707, -1, -1, -1, -1, + -1, -1, -1, 606, -1, 135, 136, 137, 138, 139, + 613, 141, 142, 143, -1, -1, -1, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 641, 141, + 142, 143, -1, -1, 146, -1, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, + 56, 57, 784, 59, 60, -1, -1, 63, 64, -1, + -1, 67, -1, -1, -1, -1, 72, 73, 74, 801, + 693, -1, 804, -1, 80, 81, -1, -1, -1, -1, + -1, 87, -1, 89, -1, 91, -1, -1, -1, -1, + 96, -1, 98, 99, 100, -1, -1, 103, 104, -1, + 1014, -1, 108, -1, -1, 111, 112, 113, 114, -1, + -1, 117, -1, 119, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, 132, -1, -1, 135, + 136, 137, 10, 11, 140, -1, 142, 143, -1, -1, + -1, 147, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, -1, 47, + 146, 10, 11, 51, -1, 53, 54, 55, -1, -1, + -1, 59, -1, 61, 62, 63, 64, 1091, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, -1, 73, 74, -1, -1, 87, + -1, 89, -1, 91, -1, -1, -1, -1, 96, -1, + 98, 99, 100, 91, 92, 103, 94, -1, -1, 1133, + 108, 99, -1, 111, 73, 74, 114, -1, -1, -1, + -1, 119, -1, -1, -1, -1, 124, 86, -1, -1, + -1, -1, 91, 92, 132, 94, 124, 135, 136, 137, + 99, -1, 140, -1, 142, 143, -1, -1, -1, 147, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 1191, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, + 1204, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, -1, -1, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, -1, -1, -1, 85, + 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, -1, -1, -1, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, -1, 146, 147, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, -1, 14, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, + 56, 57, -1, 59, 60, -1, -1, 63, 64, -1, + -1, 67, -1, -1, -1, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, + -1, 87, -1, 89, -1, 91, -1, -1, -1, 95, + 96, -1, 98, 99, 100, -1, -1, 103, 104, -1, + -1, -1, 108, -1, -1, 111, 112, 113, 114, -1, + -1, 117, -1, 119, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, 14, 132, -1, -1, 135, + 136, -1, -1, -1, 140, -1, 142, -1, -1, -1, + -1, 147, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, 47, 48, + 146, -1, 51, -1, 53, 54, 55, 56, 57, -1, + 59, 60, -1, -1, 63, 64, -1, -1, 67, -1, + -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, + -1, 80, 81, -1, -1, -1, -1, -1, 87, -1, + 89, -1, 91, -1, 10, 11, 95, 96, -1, 98, + 99, 100, -1, -1, 103, 104, -1, -1, -1, 108, + -1, -1, 111, 112, 113, 114, -1, -1, 117, -1, + 119, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, -1, -1, 132, -1, -1, 135, 136, -1, -1, + 56, 140, -1, 142, -1, -1, -1, -1, 147, 17, + 18, 19, 20, 21, 22, -1, -1, 73, 74, -1, + -1, -1, -1, -1, 32, 47, -1, -1, -1, 51, + -1, 53, 54, 55, -1, 91, 92, 59, 94, -1, + -1, 63, 64, 99, -1, -1, -1, -1, 104, -1, + 72, 73, 74, -1, -1, -1, 112, 113, 80, 81, + 116, -1, -1, -1, -1, 87, -1, 89, -1, 91, + -1, -1, -1, -1, 96, -1, 98, 99, 100, -1, + -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, + -1, -1, 114, 3, 4, 5, 6, 119, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + 132, -1, -1, 135, 136, 137, -1, -1, 140, -1, + 142, 143, 144, 131, 132, 147, -1, 135, 136, 137, + 138, 139, -1, 141, 142, 143, -1, 47, -1, -1, + -1, 51, -1, 53, 54, 55, -1, -1, -1, 59, + -1, -1, -1, 63, 64, -1, -1, 10, 11, -1, + -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 81, -1, -1, -1, -1, -1, 87, -1, 89, + -1, 91, -1, -1, -1, -1, 96, -1, 98, 99, + 100, -1, -1, 103, -1, -1, -1, -1, 108, 10, + 11, 111, -1, 56, 114, 3, 4, 5, 6, 119, + 8, 9, 10, 11, 124, -1, -1, -1, -1, -1, + 73, 74, 132, -1, -1, 135, 136, 137, -1, -1, + 140, -1, 142, 143, -1, -1, -1, 147, 91, 92, + 51, 94, 53, 54, 55, -1, 99, -1, -1, 47, + -1, 104, 63, 51, -1, 53, 54, 55, -1, 112, + 113, 59, -1, 74, -1, 63, 64, -1, -1, 80, + 81, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, -1, -1, -1, 98, 99, 87, + -1, 89, -1, 91, -1, -1, -1, -1, 96, -1, + 98, 99, 100, 114, -1, 103, 117, -1, 119, -1, + 108, -1, -1, 111, -1, -1, 114, 3, 4, 5, + 6, 119, 8, 9, 10, 11, -1, -1, 51, -1, + 53, 54, 55, -1, 132, -1, -1, 135, 136, 137, + 63, -1, 140, -1, 142, 143, 144, -1, -1, 147, + -1, -1, -1, -1, -1, -1, -1, 80, 81, -1, + -1, 47, -1, -1, -1, 51, -1, 53, 54, 55, + -1, -1, -1, 59, -1, 98, 99, 63, 64, -1, + -1, 10, 11, -1, -1, -1, 72, 73, 74, -1, + -1, 114, -1, -1, 80, 81, 119, -1, -1, -1, + -1, 87, -1, 89, -1, 91, -1, -1, -1, -1, + 96, -1, 98, 99, 100, -1, -1, 103, -1, 142, + -1, -1, 108, -1, -1, 111, -1, 56, 114, 3, + 4, 5, 6, 119, 8, 9, 10, 11, 124, -1, + -1, -1, -1, -1, 73, 74, 132, -1, -1, 135, + 136, 137, -1, -1, 140, -1, 142, 143, -1, -1, + -1, 147, 91, 92, 93, 94, -1, -1, -1, -1, + 99, -1, -1, 47, -1, 104, -1, 51, -1, 53, + 54, 55, -1, 112, 113, 59, -1, 116, -1, 63, + 64, -1, -1, 10, 11, -1, -1, -1, 72, 73, + 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, + -1, -1, -1, 87, -1, 89, -1, 91, -1, -1, + -1, -1, 96, -1, 98, 99, 100, -1, -1, 103, + -1, -1, -1, -1, 108, -1, -1, 111, -1, 56, + 114, 3, 4, 5, 6, 119, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, 73, 74, 132, -1, + -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, + 144, -1, -1, 147, 91, 92, 51, 94, 53, 54, + 55, -1, 99, -1, -1, 47, -1, 104, -1, 51, + -1, 53, 54, 55, -1, 112, 113, 59, -1, 116, + -1, 63, 64, -1, -1, 80, 81, -1, -1, -1, + 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, + -1, -1, -1, 98, 99, 87, -1, 89, -1, 91, + -1, -1, -1, -1, 96, -1, 98, 99, 100, 114, + -1, 103, -1, -1, 119, -1, 108, 10, 11, 111, + 21, 22, 114, 3, 4, 5, 6, 119, 8, 9, + 10, 32, -1, -1, -1, -1, -1, 142, -1, -1, + 132, -1, -1, 135, 136, 137, -1, -1, 140, -1, + 142, 143, -1, -1, -1, 147, -1, -1, 51, -1, + 53, 54, 55, 56, 57, -1, -1, 47, -1, -1, + 63, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 74, -1, -1, 64, -1, -1, 80, 81, -1, + -1, -1, 72, 73, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, 98, 99, -1, -1, 89, + -1, 91, -1, -1, -1, -1, 96, -1, -1, 112, + 100, 114, -1, 103, 117, -1, 119, -1, 108, -1, + -1, -1, -1, -1, 135, 136, 137, 138, 139, -1, + 141, 142, 143, -1, -1, -1, -1, -1, -1, 49, + 50, -1, 132, -1, -1, 135, 136, 137, 58, -1, + 140, -1, 142, 143, -1, -1, 66, 147, 68, 69, + 70, 71, -1, -1, -1, 75, -1, -1, -1, 79, + -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, + -1, -1, 92, 93, 94, 95, -1, -1, -1, -1, + -1, 101, 102, -1, -1, 105, 106, -1, -1, -1, + 110, -1, -1, -1, -1, 115, 116, -1, 118, 6, + -1, -1, -1, -1, 10, 11, 126, -1, 15, 16, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, -1, -1, 143, -1, 32, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 48, -1, -1, 51, -1, 53, 54, 55, + 56, 57, -1, -1, 60, 62, -1, 63, -1, -1, + -1, 67, -1, -1, -1, -1, -1, -1, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, + 87, -1, -1, -1, 90, -1, -1, -1, -1, -1, + -1, -1, 98, 99, -1, -1, -1, -1, 104, -1, + 10, 11, 10, 11, -1, -1, 112, 113, 114, -1, + -1, 117, -1, 119, -1, -1, -1, -1, 125, -1, + -1, 128, -1, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 140, 142, 143, -1, 48, -1, + 147, 51, -1, 53, 54, 55, 56, 57, -1, -1, + 60, -1, -1, 63, -1, -1, -1, 67, -1, -1, + -1, -1, -1, -1, 74, 73, 74, -1, -1, -1, + 80, 81, 10, 11, -1, -1, -1, -1, -1, -1, + 90, -1, -1, 91, 92, -1, 94, -1, 98, 99, + -1, 99, -1, -1, 104, -1, -1, -1, -1, -1, + -1, -1, 112, 113, 114, -1, -1, 117, -1, 119, + 48, -1, -1, 51, 124, 53, 54, 55, 56, 57, + 128, -1, 60, -1, 132, 63, -1, -1, -1, 67, + 140, -1, -1, -1, -1, -1, 74, -1, -1, -1, + -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, + -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, + 98, 99, -1, -1, -1, -1, 104, -1, 51, -1, + 53, 54, 55, -1, 112, 113, 114, -1, -1, 117, + 63, 119, 15, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, -1, -1, 80, 81, 32, + -1, -1, 140, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, 98, 99, -1, -1, -1, + 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, 114, -1, -1, -1, -1, 119, -1, 32, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 125, 32, -1, -1, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, + 143, 144, -1, -1, -1, -1, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, + 142, 143, 144, -1, -1, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + 144, -1, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, 144, -1, + -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, -1, 141, 142, 143, 144, -1, -1, -1, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, 141, 142, 143, 144, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 32, -1, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, 127, -1, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, 141, 142, 143, 126, -1, -1, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + 141, 142, 143, 125, -1, -1, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, + 142, 143, -1, 127, -1, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + -1, -1, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, -1, -1, + -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, -1, 141, 142, 143, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 32, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, + -1, -1, -1, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 17, 18, 19, 20, 21, 22, -1, -1, 127, -1, + 129, 130, 131, 132, -1, 32, 135, 136, 137, 138, + 139, -1, 141, 142, 143, -1, -1, -1, 129, 130, + 131, 132, -1, -1, 135, 136, 137, 138, 139, -1, + 141, 142, 143, -1, -1, -1, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + 11, -1, -1, 14, -1, 16, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, + 138, 139, -1, 141, 142, 143, -1, 48, -1, -1, + 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, + -1, -1, 63, 130, 131, 132, 67, -1, 135, 136, + 137, 138, 139, 74, 141, 142, 143, -1, -1, 80, + 81, 17, 18, 19, 20, 21, 22, 10, 11, -1, + -1, -1, -1, -1, 95, -1, 32, 98, 99, -1, + -1, -1, -1, 104, 17, 18, 19, 20, 21, 22, + -1, 112, 113, 114, -1, -1, 117, -1, 119, 32, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, 132, -1, 56, -1, 32, 137, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + -1, 94, -1, -1, -1, -1, 99, -1, -1, -1, + -1, 104, -1, -1, -1, -1, -1, -1, -1, 112, + 113, -1, -1, 116, -1, -1, -1, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, -1, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, 132, + -1, -1, 135, 136, 137, 138, 139, -1, 141, 142, + 143, -1, -1, -1, -1, -1, -1, -1, 135, 136, + 137, 138, 139, -1, 141, 142, 143, 48, -1, -1, + 51, -1, 53, 54, 55, 56, -1, -1, -1, 60, + -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, + -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, + 81, -1, 11, -1, -1, 14, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 98, 99, -1, + -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, + -1, 112, 113, 114, -1, -1, 117, -1, 119, 48, + -1, -1, 51, -1, 53, 54, 55, 56, 57, -1, + -1, 60, -1, -1, 63, -1, -1, -1, 67, -1, + -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, 80, 81, -1, 11, -1, -1, 14, -1, -1, + 50, -1, -1, -1, -1, -1, 95, -1, 58, 98, + 99, -1, -1, -1, -1, 104, -1, -1, 68, 69, + 70, -1, -1, 112, 113, 114, -1, -1, 117, 79, + 119, 48, -1, -1, 51, 85, 53, 54, 55, 56, + 57, -1, -1, 60, -1, 95, 63, -1, -1, -1, + 67, 101, -1, -1, -1, 105, 106, 74, -1, -1, + -1, 11, -1, 80, 81, -1, 116, -1, 118, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, + -1, 98, 99, 11, -1, -1, -1, 104, -1, -1, + -1, -1, -1, 143, -1, 112, 113, 114, 48, -1, + 117, 51, 119, 53, 54, 55, 56, 57, -1, -1, + 60, -1, -1, 63, -1, -1, -1, 67, -1, -1, + 48, -1, -1, 51, 74, 53, 54, 55, 56, 57, + 80, 81, 60, -1, -1, 63, -1, -1, -1, 67, + -1, -1, -1, -1, -1, 95, 74, -1, 98, 99, + 11, -1, 80, 81, 104, -1, -1, -1, -1, -1, + -1, -1, 112, 113, 114, -1, -1, 117, -1, 119, + 98, 99, -1, -1, -1, -1, 104, -1, -1, -1, + -1, -1, -1, -1, 112, 113, 114, 48, -1, 117, + 51, 119, 53, 54, 55, 56, 57, -1, -1, 60, + -1, -1, 63, -1, -1, 11, 67, -1, -1, -1, + -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, + 81, -1, -1, -1, -1, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 98, 99, -1, + -1, -1, 48, 104, -1, 51, -1, 53, 54, 55, + 56, 112, 113, 114, 60, -1, 117, 63, 119, -1, + -1, 67, -1, -1, 48, -1, -1, 51, 74, 53, + 54, 55, 56, 57, 80, 81, 60, -1, -1, 63, + -1, -1, 11, 67, -1, -1, -1, -1, -1, 95, + 74, -1, 98, 99, -1, -1, 80, 81, 104, -1, + -1, -1, -1, -1, 11, -1, 112, 113, 114, -1, + -1, 117, -1, 119, 98, 99, -1, -1, -1, 48, + 104, -1, 51, -1, 53, 54, 55, 56, 112, 113, + 114, 60, -1, 117, 63, 119, -1, -1, 67, -1, + -1, 48, -1, -1, 51, 74, 53, 54, 55, 56, + -1, 80, 81, 60, -1, -1, 63, -1, -1, -1, + 67, -1, -1, -1, -1, -1, -1, 74, -1, 98, + 99, -1, -1, 80, 81, 104, -1, -1, -1, -1, + -1, -1, -1, 112, 113, 114, -1, -1, 117, -1, + 119, 98, 99, -1, 49, 50, -1, 104, -1, -1, + -1, -1, -1, 58, -1, 112, 113, 114, -1, -1, + 117, 66, 119, 68, 69, 70, 71, -1, -1, -1, + 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, + 85, 86, -1, -1, -1, -1, -1, 92, 93, 94, + 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, + 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, + 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, + 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, + -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, + 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, + -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, + -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, + -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, + -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, + -1, -1, -1, -1, 101, 102, 49, 50, 105, 106, + -1, -1, -1, 110, -1, 58, -1, -1, 115, 116, + -1, 118, -1, 66, -1, 68, 69, 70, 71, 126, + -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, + 83, 84, 85, 86, -1, -1, 143, -1, 145, 92, + 93, 94, 95, -1, -1, -1, -1, -1, 101, 102, + 49, 50, 105, 106, -1, -1, -1, 110, -1, 58, + -1, -1, 115, 116, -1, 118, -1, 66, -1, 68, + 69, 70, 71, 126, -1, -1, 75, -1, -1, -1, + 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, + 143, -1, 145, 92, 93, 94, 95, -1, -1, -1, + -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, + -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, + -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, + 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, + 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, + 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, + 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, + 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, + 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, + -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, + 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, + -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, + -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, + -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, + -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, + -1, -1, -1, -1, 101, 102, 50, -1, 105, 106, + -1, -1, -1, 110, 58, -1, -1, -1, 115, 116, + 50, 118, -1, -1, 68, 69, 70, -1, 58, -1, + -1, -1, -1, -1, -1, 79, -1, -1, 68, 69, + 70, 85, 86, -1, -1, -1, 143, -1, -1, 79, + 50, 95, -1, -1, -1, 85, -1, 101, 58, -1, + -1, -1, 106, -1, -1, 95, -1, -1, 68, 69, + 70, 101, 116, -1, 118, -1, 106, -1, -1, 79, + -1, -1, -1, -1, -1, 85, 116, -1, 118, -1, + -1, -1, -1, -1, -1, 95, -1, -1, -1, 143, + -1, 101, -1, 133, -1, -1, 106, -1, -1, -1, + -1, -1, -1, 143, -1, -1, 116, -1, 118, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 143 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 121, 122, 123, 149, 150, 256, 3, 4, 5, + 6, 8, 9, 10, 11, 47, 51, 53, 54, 55, + 59, 63, 64, 72, 73, 74, 80, 81, 87, 89, + 91, 96, 98, 99, 100, 103, 108, 111, 114, 119, + 132, 135, 136, 137, 140, 142, 143, 147, 246, 247, + 255, 11, 48, 51, 53, 54, 55, 56, 57, 60, + 63, 67, 74, 80, 81, 98, 99, 104, 112, 113, + 114, 117, 119, 210, 214, 215, 217, 223, 224, 228, + 229, 234, 235, 236, 237, 0, 49, 50, 58, 66, + 68, 69, 70, 71, 75, 79, 82, 83, 84, 85, + 86, 92, 93, 94, 95, 101, 102, 105, 106, 110, + 115, 116, 118, 126, 143, 153, 155, 156, 158, 161, + 162, 184, 230, 233, 256, 142, 142, 142, 142, 142, + 142, 133, 142, 133, 142, 142, 142, 11, 48, 60, + 112, 212, 228, 229, 234, 133, 142, 142, 142, 133, + 142, 142, 142, 246, 246, 246, 246, 246, 11, 51, + 53, 54, 55, 63, 74, 80, 81, 98, 99, 114, + 119, 214, 244, 246, 10, 11, 73, 74, 91, 92, + 94, 99, 128, 132, 250, 251, 253, 256, 246, 15, + 16, 17, 18, 19, 20, 21, 22, 32, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, + 142, 143, 6, 8, 210, 142, 56, 104, 63, 81, + 235, 235, 235, 253, 235, 12, 16, 57, 118, 132, + 137, 142, 208, 209, 256, 124, 10, 11, 91, 127, + 254, 10, 11, 91, 124, 253, 254, 79, 158, 158, + 158, 6, 158, 158, 127, 157, 86, 158, 142, 142, + 142, 158, 124, 253, 127, 127, 127, 158, 158, 142, + 158, 161, 185, 158, 158, 167, 86, 253, 158, 158, + 143, 10, 11, 48, 57, 60, 90, 112, 124, 140, + 172, 175, 211, 213, 215, 217, 223, 228, 229, 234, + 243, 244, 256, 214, 243, 243, 243, 243, 214, 243, + 214, 243, 243, 243, 142, 253, 142, 253, 253, 214, + 243, 243, 214, 214, 214, 246, 243, 243, 144, 125, + 144, 253, 146, 125, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 144, 244, 246, 209, 246, + 137, 12, 16, 57, 118, 132, 137, 208, 256, 208, + 209, 208, 209, 208, 208, 14, 16, 57, 95, 132, + 137, 194, 195, 204, 210, 256, 143, 226, 227, 256, + 11, 225, 235, 127, 216, 218, 158, 155, 124, 253, + 253, 253, 253, 150, 124, 246, 133, 10, 11, 57, + 175, 211, 213, 253, 126, 128, 159, 160, 253, 142, + 142, 10, 11, 213, 142, 57, 210, 253, 154, 253, + 124, 126, 127, 128, 200, 124, 126, 128, 201, 126, + 163, 253, 254, 253, 144, 144, 144, 144, 144, 144, + 134, 144, 134, 144, 144, 144, 246, 243, 134, 144, + 144, 144, 134, 144, 144, 144, 144, 246, 246, 57, + 142, 181, 256, 250, 127, 144, 146, 144, 208, 137, + 208, 208, 208, 208, 208, 143, 208, 95, 210, 204, + 208, 208, 144, 14, 125, 12, 16, 57, 118, 132, + 137, 142, 207, 254, 256, 242, 246, 256, 253, 145, + 225, 150, 73, 219, 256, 150, 124, 125, 125, 125, + 145, 231, 125, 144, 10, 11, 56, 57, 112, 186, + 187, 188, 189, 234, 256, 142, 213, 201, 168, 126, + 214, 146, 125, 142, 173, 12, 137, 174, 164, 246, + 210, 12, 16, 57, 118, 132, 137, 206, 254, 256, + 150, 142, 238, 239, 151, 152, 253, 61, 62, 238, + 61, 62, 124, 246, 12, 16, 57, 90, 118, 132, + 137, 142, 165, 190, 192, 254, 127, 142, 142, 144, + 144, 142, 142, 194, 32, 73, 85, 88, 91, 107, + 193, 256, 246, 208, 242, 144, 210, 207, 144, 144, + 181, 14, 204, 137, 207, 207, 207, 207, 207, 207, + 128, 143, 199, 256, 146, 125, 128, 145, 127, 220, + 221, 256, 145, 232, 10, 10, 10, 150, 255, 126, + 253, 189, 253, 134, 125, 207, 169, 170, 192, 126, + 146, 159, 3, 4, 5, 9, 10, 14, 47, 59, + 64, 72, 73, 87, 89, 91, 96, 100, 103, 108, + 111, 132, 135, 136, 140, 142, 147, 196, 197, 204, + 205, 248, 249, 255, 256, 194, 137, 190, 194, 166, + 192, 144, 206, 137, 206, 206, 206, 206, 206, 142, + 143, 145, 176, 145, 240, 256, 124, 125, 124, 142, + 126, 126, 145, 126, 126, 124, 202, 203, 246, 256, + 126, 137, 190, 190, 6, 15, 16, 17, 18, 19, + 20, 21, 22, 32, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 62, 87, 125, 128, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 142, 143, 147, 182, 190, 190, 190, 190, 127, + 142, 143, 193, 128, 199, 201, 225, 244, 244, 244, + 244, 144, 57, 212, 142, 124, 146, 142, 207, 199, + 142, 142, 193, 207, 144, 246, 242, 246, 92, 93, + 94, 112, 116, 222, 229, 252, 253, 124, 125, 150, + 125, 144, 125, 125, 145, 144, 128, 207, 128, 161, + 183, 184, 188, 128, 198, 256, 171, 192, 199, 201, + 158, 142, 133, 133, 212, 133, 142, 133, 142, 246, + 246, 246, 246, 214, 244, 246, 144, 14, 125, 15, + 16, 17, 18, 19, 20, 21, 22, 32, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, + 142, 143, 144, 190, 144, 144, 199, 201, 142, 206, + 179, 242, 194, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 67, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 146, 147, 241, 238, 152, + 243, 243, 202, 145, 125, 190, 10, 144, 146, 144, + 4, 191, 242, 246, 125, 144, 144, 144, 144, 181, + 212, 209, 144, 253, 238, 194, 199, 194, 194, 142, + 146, 125, 116, 252, 116, 252, 116, 252, 253, 92, + 93, 94, 253, 150, 222, 145, 10, 126, 10, 10, + 126, 214, 198, 214, 47, 59, 64, 96, 100, 103, + 132, 135, 136, 137, 140, 142, 147, 245, 247, 199, + 201, 125, 214, 214, 214, 142, 214, 214, 214, 214, + 246, 144, 144, 14, 205, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 144, 244, 246, 181, + 144, 142, 181, 125, 180, 194, 146, 144, 240, 145, + 145, 144, 145, 124, 246, 196, 146, 165, 193, 209, + 144, 145, 144, 144, 144, 194, 252, 252, 252, 252, + 252, 252, 145, 144, 125, 144, 144, 142, 133, 133, + 133, 142, 133, 245, 245, 245, 245, 245, 214, 244, + 245, 15, 16, 17, 18, 19, 20, 21, 22, 32, + 129, 130, 131, 132, 135, 136, 137, 138, 139, 141, + 142, 143, 125, 170, 144, 134, 134, 243, 134, 144, + 134, 144, 144, 246, 127, 144, 146, 142, 177, 166, + 194, 144, 181, 145, 202, 144, 124, 181, 181, 181, + 144, 126, 10, 126, 126, 214, 214, 214, 214, 214, + 214, 144, 144, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 144, 244, 246, 171, 142, 142, 144, 142, + 142, 246, 178, 194, 144, 181, 145, 181, 238, 193, + 193, 193, 181, 125, 144, 134, 134, 134, 144, 134, + 245, 127, 144, 146, 244, 244, 244, 244, 194, 144, + 181, 145, 10, 142, 142, 142, 142, 245, 144, 144, + 144, 144, 144, 181, 144, 244, 244, 244, 244, 181, + 193, 126, 144, 144, 144, 144, 193 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 148, 149, 149, 149, 150, 150, 150, 151, 151, @@ -1368,10 +2606,11 @@ static const yytype_uint16 yyr1[] = 218, 217, 219, 219, 220, 220, 221, 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 223, 224, 224, 224, 224, 225, 225, 226, 226, 226, 227, 227, - 227, 228, 229, 229, 229, 231, 230, 232, 230, 230, - 230, 233, 233, 233, 234, 234, 234, 235, 235, 235, + 227, 228, 228, 228, 229, 229, 229, 231, 230, 232, + 230, 230, 230, 233, 233, 233, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 236, 236, 236, 237, 239, 238, 240, 240, 241, + 235, 235, 235, 236, 236, 236, 237, 239, 238, 240, + 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, @@ -1383,29 +2622,29 @@ static const yytype_uint16 yyr1[] = 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 242, 242, 243, 243, 244, 244, 245, + 241, 241, 241, 241, 241, 242, 242, 243, 243, 244, + 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, + 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, + 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, - 250, 251, 251, 251, 251, 252, 252, 252, 253, 253, - 253, 253, 254, 254, 254, 255, 255, 255, 255, 256 + 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, + 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, + 254, 255, 255, 255, 255, 256 }; -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ + /* 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, @@ -1438,12 +2677,13 @@ static const yytype_uint8 yyr2[] = 1, 1, 2, 4, 2, 4, 1, 1, 1, 2, 2, 2, 4, 1, 1, 1, 2, 3, 0, 5, 0, 8, 1, 1, 1, 1, 2, 3, 1, 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, 0, 7, 4, - 5, 3, 5, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 1, 1, 2, 1, 0, 2, 1, 2, 1, + 2, 2, 3, 3, 3, 3, 3, 3, 4, 3, + 1, 4, 2, 1, 1, 1, 3, 5, 1, 2, + 4, 1, 2, 2, 1, 1, 1, 0, 6, 0, + 7, 4, 5, 3, 5, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 1, 1, 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, @@ -1455,1578 +2695,38 @@ static const yytype_uint8 yyr2[] = 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, 7, 7, 4, 4, 2, 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, - 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 2, 5, 4, - 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, + 3, 1, 4, 7, 7, 7, 7, 4, 4, 2, + 2, 2, 2, 2, 2, 3, 3, 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, - 1, 1, 1, 8, 11, 1, 4, 7, 7, 7, - 7, 4, 4, 2, 5, 4, 4, 2, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 4, 4, 3, 3, 3, 3, 1, 4, + 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, + 5, 4, 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, + 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 8, 11, 1, 4, 7, + 7, 7, 7, 4, 4, 2, 5, 4, 4, 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, 1, 1, 1, - 3, 1, 1, 2, 1, 1, 2, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 0 + 1, 1, 3, 1, 1, 2, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 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, 669, 0, 0, 0, 669, 5, 586, 582, 585, - 665, 666, 588, 589, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 584, 590, 0, 0, 0, 0, 592, - 591, 0, 0, 0, 0, 0, 583, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 3, 526, - 587, 257, 265, 337, 338, 340, 341, 322, 0, 0, - 352, 321, 351, 346, 343, 342, 345, 323, 0, 324, - 344, 354, 339, 669, 4, 259, 260, 261, 0, 312, - 0, 256, 334, 335, 336, 1, 21, 669, 669, 22, - 669, 669, 669, 0, 34, 669, 0, 0, 0, 669, - 0, 0, 0, 0, 669, 669, 0, 669, 669, 669, - 0, 669, 669, 6, 0, 16, 7, 19, 0, 14, - 55, 15, 17, 18, 36, 669, 0, 669, 669, 669, - 669, 0, 669, 0, 669, 669, 669, 278, 283, 0, - 0, 547, 0, 0, 277, 0, 669, 669, 0, 0, - 0, 669, 669, 556, 554, 553, 555, 552, 257, 337, - 338, 340, 341, 352, 351, 346, 343, 342, 345, 344, - 339, 0, 0, 487, 658, 659, 660, 661, 652, 651, - 0, 649, 654, 648, 551, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 668, - 669, 0, 353, 343, 348, 347, 350, 258, 349, 0, - 669, 669, 669, 669, 669, 669, 0, 286, 244, 669, - 662, 663, 664, 0, 310, 658, 659, 661, 288, 262, - 290, 669, 47, 46, 48, 669, 37, 42, 23, 669, - 0, 40, 0, 0, 0, 45, 669, 0, 26, 25, - 24, 43, 39, 0, 0, 142, 0, 49, 0, 20, - 0, 0, 41, 44, 0, 285, 267, 276, 0, 0, - 0, 0, 12, 0, 0, 0, 284, 59, 269, 270, - 271, 312, 0, 266, 0, 486, 485, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, - 669, 281, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 581, 653, 669, 669, 565, 566, - 567, 568, 569, 570, 573, 574, 580, 0, 562, 563, - 564, 571, 572, 560, 561, 557, 558, 559, 579, 578, - 0, 0, 287, 0, 669, 0, 669, 669, 669, 669, - 669, 249, 236, 0, 245, 0, 246, 248, 247, 175, - 669, 0, 0, 669, 669, 0, 176, 179, 669, 174, - 669, 318, 0, 315, 314, 311, 313, 0, 669, 669, - 38, 35, 669, 0, 0, 0, 0, 669, 325, 0, - 669, 285, 267, 0, 0, 284, 67, 0, 331, 0, - 0, 51, 53, 76, 78, 285, 267, 61, 0, 0, - 669, 268, 669, 0, 355, 192, 0, 0, 57, 355, - 197, 0, 58, 56, 0, 274, 310, 272, 532, 546, - 538, 534, 536, 537, 0, 544, 0, 543, 533, 540, - 0, 0, 0, 539, 542, 545, 0, 549, 550, 541, - 535, 527, 488, 92, 669, 669, 91, 650, 0, 577, - 576, 264, 250, 669, 241, 237, 238, 240, 239, 669, - 0, 0, 669, 213, 0, 0, 669, 178, 0, 0, - 669, 669, 669, 669, 669, 669, 669, 226, 225, 0, - 484, 483, 319, 308, 263, 669, 293, 669, 292, 669, - 327, 0, 0, 0, 329, 669, 0, 0, 154, 155, - 0, 0, 0, 0, 144, 145, 669, 153, 143, 0, - 69, 71, 0, 333, 0, 0, 0, 669, 669, 0, - 0, 669, 0, 0, 669, 0, 669, 669, 669, 669, - 669, 0, 217, 216, 669, 80, 0, 669, 0, 8, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 60, 669, 669, 156, - 0, 0, 0, 282, 548, 0, 0, 0, 0, 94, - 96, 93, 95, 0, 0, 171, 575, 242, 0, 0, - 669, 669, 0, 0, 669, 177, 180, 669, 231, 227, - 228, 230, 229, 0, 0, 669, 210, 190, 251, 316, - 0, 289, 0, 0, 295, 294, 330, 669, 0, 0, - 0, 669, 0, 33, 147, 669, 149, 669, 0, 669, - 0, 68, 669, 332, 669, 52, 641, 637, 640, 643, - 644, 182, 0, 0, 0, 639, 645, 0, 647, 646, - 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, - 0, 0, 183, 214, 186, 215, 595, 642, 181, 0, - 0, 0, 0, 62, 669, 275, 0, 669, 222, 218, - 219, 221, 220, 86, 669, 13, 669, 193, 356, 357, - 355, 0, 669, 669, 195, 196, 198, 200, 201, 669, - 0, 204, 206, 203, 199, 0, 163, 159, 0, 109, - 110, 111, 112, 113, 114, 117, 118, 133, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 137, 136, 120, 119, 106, 108, 107, 115, 116, 104, - 105, 101, 102, 103, 100, 0, 0, 99, 157, 160, - 162, 161, 0, 0, 167, 669, 169, 0, 0, 63, - 273, 0, 0, 0, 0, 669, 0, 669, 0, 355, - 243, 669, 669, 211, 669, 669, 252, 232, 235, 191, - 0, 320, 0, 0, 0, 0, 0, 296, 0, 298, - 655, 669, 0, 669, 0, 0, 0, 0, 326, 0, - 0, 669, 0, 138, 141, 139, 146, 0, 151, 188, - 70, 669, 0, 72, 50, 0, 0, 0, 603, 0, - 0, 0, 0, 611, 610, 609, 608, 0, 0, 607, - 54, 185, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 669, - 0, 65, 88, 223, 669, 0, 0, 359, 360, 364, - 361, 368, 362, 363, 365, 366, 367, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 434, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 669, 476, - 477, 478, 469, 481, 465, 466, 464, 471, 472, 460, - 461, 462, 463, 470, 468, 475, 473, 479, 474, 480, - 467, 358, 0, 9, 0, 0, 0, 202, 205, 164, - 158, 135, 134, 166, 170, 669, 0, 191, 0, 530, - 529, 531, 528, 669, 669, 172, 97, 0, 0, 0, - 212, 0, 0, 669, 233, 317, 0, 301, 0, 300, - 0, 299, 657, 0, 0, 0, 656, 669, 297, 328, - 0, 27, 0, 0, 32, 148, 152, 150, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 189, 489, 0, 74, 0, 0, 0, 0, 669, - 0, 0, 0, 0, 0, 0, 636, 184, 187, 620, - 621, 622, 623, 624, 625, 628, 629, 635, 0, 617, - 618, 619, 626, 627, 615, 616, 612, 613, 614, 634, - 633, 0, 0, 77, 0, 82, 79, 0, 669, 0, - 224, 669, 0, 194, 11, 10, 207, 669, 208, 0, - 165, 64, 0, 173, 98, 593, 669, 669, 669, 0, - 307, 306, 305, 304, 303, 302, 291, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 502, 500, 499, - 501, 498, 0, 0, 497, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 602, 0, - 0, 0, 0, 601, 0, 605, 606, 596, 0, 632, - 631, 84, 669, 66, 0, 669, 81, 482, 0, 669, - 355, 669, 669, 669, 669, 28, 0, 29, 31, 0, - 0, 0, 0, 0, 0, 0, 525, 511, 512, 513, - 514, 515, 516, 517, 518, 524, 0, 508, 509, 510, - 506, 507, 503, 504, 505, 523, 522, 0, 0, 75, - 0, 0, 604, 0, 0, 630, 669, 0, 669, 87, - 209, 168, 0, 255, 254, 253, 234, 0, 496, 0, - 0, 0, 495, 0, 490, 0, 521, 520, 0, 0, - 0, 0, 0, 669, 89, 594, 0, 0, 0, 0, - 0, 519, 599, 598, 600, 597, 669, 669, 0, 0, - 0, 0, 0, 669, 83, 30, 493, 492, 494, 491, - 85 -}; -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 4, 5, 558, 559, 115, 422, 116, 117, 249, - 118, 410, 411, 119, 120, 434, 542, 576, 683, 269, - 532, 640, 641, 820, 284, 538, 541, 285, 696, 1202, - 1256, 874, 1118, 465, 758, 814, 121, 266, 523, 524, - 525, 526, 577, 1015, 578, 594, 375, 376, 671, 672, - 818, 616, 428, 432, 710, 711, 377, 674, 551, 496, - 226, 227, 73, 405, 141, 287, 74, 75, 388, 76, - 389, 507, 623, 624, 797, 77, 78, 385, 381, 382, - 79, 80, 122, 515, 627, 123, 81, 82, 83, 84, - 556, 557, 698, 1001, 499, 294, 295, 1071, 173, 49, - 675, 676, 180, 181, 799, 800, 579, 50, 124 -}; +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -755 -static const yytype_int16 yypact[] = -{ - 365, -755, 2777, 4408, 50, 2969, -755, -755, -755, -755, - -755, -755, -755, -755, -61, -39, 6, 23, 53, 63, - -34, 93, 10, -755, -755, 98, 102, 104, 4607, -755, - -755, 78, 114, 134, 141, 135, -755, 166, 182, 192, - 2777, 2777, 2777, 2777, 2777, 1416, 84, 2777, 3633, -755, - 117, -755, -755, -755, -755, -755, -755, -755, 4629, 195, - -755, -755, -755, -755, 2652, 2740, 2740, -755, 382, -755, - 2740, -755, -755, 185, -755, -755, -755, -755, 262, 126, - 69, -755, -755, -755, -755, -755, -755, 5156, 5156, -755, - 5156, 359, 5156, 247, -755, 5112, 218, 248, 258, 5156, - 290, 275, 279, 288, 5156, 5156, 299, 5126, 5156, 5156, - 360, 5156, 5156, -755, 302, -755, -755, -755, 3179, -755, - -755, -755, -755, -755, -755, 2777, 4408, 2777, 2777, 2777, - 2777, 4408, 2777, 4408, 2777, 2777, 2777, -755, -755, 311, - 382, 314, 382, 382, -755, 4408, 2777, 2777, 4408, 4408, - 1416, 2777, 2777, 90, 90, 90, 90, 90, -61, 6, - 23, 53, 63, 93, 98, 102, 2119, 2292, 2455, 2540, - 192, 330, -60, 3633, -755, -755, -755, -755, -755, 382, - 333, 373, -755, -755, 90, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2777, 2777, 2217, 2777, -755, -755, - 185, 2777, -755, 2740, -755, -755, -755, -755, -755, 347, - 31, 185, 185, 31, 31, 3948, 356, -755, 366, -755, - -755, -755, -755, 1119, 388, 17, 45, 154, -755, -755, - -755, 5156, -755, -755, -755, 5156, -755, -755, -755, 5059, - 294, -755, 382, 382, 382, -755, -755, 399, -755, -755, - -755, -755, -755, 2777, 3083, -755, 397, -755, 3251, -755, - 382, 115, -755, -755, 382, 226, 384, -755, 4175, 396, - 4475, 382, -755, 382, 393, 238, 398, -755, -755, -755, - -755, 219, 69, -755, 395, 416, -755, 400, 406, 407, - 409, 417, 429, 428, 440, 431, 438, 439, 2777, -755, - 2777, -755, -755, 454, 448, 449, 451, 462, 458, 3356, - 460, 461, 2777, 2777, -755, -755, 64, 84, 3815, 3835, - 946, 946, 486, 486, 206, 206, -755, 3449, 3851, 3899, - 4036, 486, 486, 121, 121, 90, 90, 90, -755, -755, - -47, 1299, -755, 3377, 31, 473, 31, 31, 31, 31, - 31, 468, -755, 356, -755, 356, -755, 468, 468, -755, - 31, 4530, 4386, 31, 31, 469, 27, -755, 1148, -755, - 2777, 382, 467, -755, -755, -755, -755, 1119, -755, 543, - -755, -755, -755, 495, 492, 505, 506, 4681, -755, 1318, - 2876, 403, 478, 4175, 238, -755, -755, 507, -755, 4408, - 489, 511, 498, -755, 34, -755, -755, -755, 2777, 4629, - 500, -755, -755, 502, -755, -755, 382, 15, -755, -755, - -755, 2105, -755, -755, 786, -755, 527, -755, -755, -755, - -755, -755, -755, -755, 514, -755, 515, -755, -755, -755, - 3395, 517, 520, -755, -755, -755, 522, -755, -755, -755, - -755, 90, 3633, -755, 4247, 672, -755, -755, 2777, -755, - -755, -755, 468, 31, 468, 468, 468, 468, 468, 2777, - -4, 4629, 1148, -755, 12, 108, 608, -755, 4319, 529, - 1148, 1148, 1148, 1148, 1148, 1148, -45, -755, -755, 521, - 3633, -755, -12, -755, 544, 4735, -755, 546, -755, 4789, - -755, 665, 667, 669, -755, -755, 315, 556, -755, -755, - 382, 2204, 382, 550, 560, -755, 1148, -755, -755, 34, - -755, -755, 786, -755, 561, 542, 382, 1533, 4247, 552, - 786, 4247, 786, 3413, 500, 553, 500, 500, 500, 500, - 500, 293, -755, -755, 4843, -755, 547, -755, 334, -755, - -68, 568, 570, 562, 579, 583, 2329, 3578, 573, 786, - 786, 3082, 786, 786, 786, 786, -755, 186, 436, -755, - 1119, 2777, 2777, -755, -755, 2777, 2777, 588, 4552, -755, - -755, -755, -755, 592, 612, -755, 3633, 468, 593, 596, - 1148, -45, 599, 600, 672, -755, -755, 1148, 603, 603, - 603, 603, 603, 306, 2777, 2777, -755, -755, 604, -755, - 2777, -755, 2386, 624, 629, -755, -755, -755, -43, 630, - 633, 4897, 36, -755, 621, 1148, 631, 4286, 2876, -13, - 786, -755, 436, -755, 5156, -755, -755, -755, -755, -755, - -755, -755, 619, 632, 635, -755, -755, 4607, -755, -755, - 637, 646, 638, -755, 648, 2777, 2777, 2777, 2777, 1416, - 2777, 622, 57, -755, -755, 3651, -755, 117, -755, 628, - 786, 361, 647, -755, 436, -755, 324, 500, 649, 649, - 649, 649, 649, -755, 2777, -755, 4247, -755, 1843, -755, - -755, 382, 2777, 2777, -755, -755, -755, -755, -755, 2329, - 654, 650, 3633, -755, -755, 786, 328, 328, 763, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, 659, 658, -755, -755, 328, - 328, 328, 391, 801, -755, 2777, -755, 2105, 681, -755, - 544, 39, 66, 123, 149, 608, 4607, 185, 41, -755, - -755, 4247, -45, -755, 4247, 4247, -755, 603, 666, 3633, - 668, 3597, 587, 783, 897, 382, 493, -755, 382, -755, - -755, -755, 2386, 4951, 808, 695, 812, 814, -755, 699, - 4408, -13, 4408, -755, -755, -755, -755, 2889, -755, -755, - -755, 436, 701, -755, -755, 4408, 4408, 4408, 687, 4408, - 4408, 4408, 1416, 90, 90, 90, 90, 686, 152, 90, - -755, -755, 1988, 2777, 2777, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2441, 2777, 608, 465, 689, 608, - 707, -755, -755, 649, 4247, 690, 691, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, 696, -755, 697, 702, 700, -755, 2553, 328, - -755, -755, -755, -755, -755, 1533, 704, 3578, 786, -755, - -755, -755, -755, 672, 185, -755, -755, 703, 716, 708, - -755, 718, 719, 4247, -755, -755, 1030, -755, 1030, -755, - 1030, -755, -755, 1030, 1030, 1030, -755, 5005, -755, -755, - 720, -755, 163, 722, -755, -755, -755, -755, 727, 737, - 742, 745, 743, 753, 2889, 2889, 2889, 2889, 2889, 1416, - 2889, 3798, -755, 765, -755, 786, 744, 757, 758, 2777, - 759, 750, 764, 756, 3431, 2777, -755, -755, -755, 3815, - 3835, 946, 946, 486, 486, 206, 206, -755, 3615, 3851, - 3899, 4036, 486, 486, 121, 121, 90, 90, 90, -755, - -755, 236, 1553, 325, 760, -755, 325, 786, 4247, 761, - -755, 608, 1698, -755, -755, -755, -755, 2329, 3633, 767, - -755, -755, 779, -755, -755, -755, 608, 608, 608, 768, - -755, -755, -755, -755, -755, -755, -755, 787, 899, 788, - 790, 4408, 4408, 4408, 4408, 4408, 4408, 241, 241, 241, - 241, 241, 773, 250, 241, 2889, 2889, 2889, 2889, 2889, - 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, - 2889, 2889, 2889, 2889, 2665, 2777, 786, -755, -755, 777, - 778, 780, 784, -755, 785, -755, -755, 90, 2777, -755, - -755, -755, 4247, -755, 781, 608, 325, -755, 789, 608, - -755, 672, 672, 672, 608, -755, 797, -755, -755, 796, - 798, 807, 809, 806, 818, 2889, -755, 1224, 3882, 3244, - 3244, 2868, 2868, 510, 510, -755, 3669, 4052, 4069, 4078, - 674, 674, 241, 241, 241, -755, -755, 251, 2008, -755, - 2777, 2777, -755, 2777, 2777, 3633, 4247, 810, 608, 325, - -755, 325, 811, -755, -755, -755, 325, 919, -755, 800, - 816, 817, -755, 820, 241, 2889, -755, -755, 278, 282, - 286, 287, 825, 608, 325, -755, 827, 2777, 2777, 2777, - 2777, 3798, -755, -755, -755, -755, 608, 672, 804, 295, - 317, 318, 332, 672, -755, -755, -755, -755, -755, -755, - -755 -}; +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -755, -755, -230, -755, 259, -755, -755, 723, -755, -755, - 207, 437, -755, -105, -755, -755, -755, -42, -142, -755, - -755, -755, -96, -206, -755, -755, -755, 713, -755, -755, - -755, -755, -755, -386, -755, -755, 345, -755, -755, -755, - 346, 464, -465, -755, -523, -541, -449, -755, -32, -755, - 175, -546, -755, -397, -693, -755, -341, 145, -480, -433, - 795, -197, -41, -98, -551, -166, 28, -70, -755, -65, - -755, -755, -755, -755, 188, -64, -755, -354, -755, -755, - 2, -7, -755, -755, -755, -755, 1, 21, -755, -755, - -428, -755, 13, -755, -445, -124, -27, 233, 526, -119, - -755, -755, 670, -755, -754, 821, 389, -502, -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 -665 -static const yytype_int16 yytable[] = -{ - 6, 563, 265, 298, 299, 300, 301, 531, 303, 642, - 305, 306, 307, 352, 632, 587, 1006, 210, 172, 684, - 286, 143, 314, 315, 364, 366, 397, 320, 321, 144, - 142, 483, 768, 504, 598, 677, 766, 777, 1037, 1039, - 1041, 487, 208, 355, 209, 183, 539, 356, 288, 601, - 85, 174, 175, 289, 290, 783, 702, 608, 609, 610, - 611, 612, 613, 786, 686, 323, 688, 689, 690, 691, - 692, 841, 228, 171, 703, 681, 561, 562, 323, 235, - 236, 125, 804, 614, 324, 214, 215, 216, 357, 679, - -662, 218, 682, 639, 174, 175, 822, 469, 615, 131, - 604, 805, 406, 126, 716, 717, 828, 759, 760, 761, - 762, 292, 417, 619, 176, 817, 620, 821, -663, 293, - 291, 463, 193, 208, 296, 209, 296, 296, 296, 296, - 615, 296, 177, 296, 296, 296, 230, 231, 870, 479, - 599, -662, 176, 133, -662, 296, 296, 606, 127, 358, - 296, 296, 488, 193, 297, 479, 602, 176, 505, 302, - 237, 304, 509, 359, 323, 128, 286, 782, 360, -663, - 790, 540, -663, 313, 787, 177, 316, 317, 318, 350, - 809, 769, 842, 1019, 378, 1026, 451, 214, 215, 216, - 218, 323, 554, 238, 288, 129, 673, 219, 288, 289, - 290, 220, 811, 289, 290, 130, 464, 873, 288, 228, - 1020, 145, 178, 289, 290, 867, 179, 232, 588, 362, - 228, 228, 362, 362, 379, 1024, 770, -664, 383, 235, - 236, 205, 206, 207, 214, 132, 1030, 530, 193, 420, - 134, 408, 221, 409, 135, 823, 136, 876, 323, 875, - 1009, 479, 603, 233, 386, 6, 146, 292, 202, 203, - 204, 292, 205, 206, 207, 293, 291, 1021, 149, 293, - 291, 292, 1002, 1173, 323, 1073, 147, 323, -664, 293, - 291, -664, 1140, 148, 1141, 631, 1142, 871, 1148, 1143, - 1144, 1145, 176, 1022, 242, 243, 1086, 244, 246, 247, - 174, 175, 251, 222, 174, 175, 255, 1149, 150, 296, - 237, 261, 262, 763, 264, 267, 268, 223, 272, 273, - 1016, 10, 224, 11, 151, 466, 183, 225, 764, 765, - 482, 378, 1029, 288, 152, 1031, 1032, 211, 289, 290, - 677, 200, 201, 202, 203, 204, 233, 205, 206, 207, - -90, 1028, -90, 362, -90, 362, 362, 362, 362, 362, - 252, 323, 429, 176, 430, 245, 431, 176, 413, 362, - 174, 175, 362, 362, 248, 323, 323, 498, 544, 501, - 1199, 177, 1183, 1184, 1185, 177, 229, 6, 508, 1023, - 253, 6, 174, 175, 1226, 1276, 292, 803, 589, 528, - 254, 527, 258, 323, 293, 291, 259, 323, 386, 87, - 590, 323, 323, 591, 256, 260, 592, 88, 392, 553, - 323, 6, 1292, 378, 1074, 1119, 1293, 90, 91, 92, - 1294, 1295, 593, 176, 1208, 693, 694, 534, 241, 1306, - 600, 263, 323, 323, 99, 274, 270, 378, 251, 615, - 788, 177, 390, 308, 104, 176, 310, 323, 700, 701, - 105, 1307, 1308, 379, 595, 108, 872, 694, 234, 240, - 764, 765, 362, 177, 322, 111, 1309, 112, 501, 326, - 1113, 498, 1132, 1116, 354, 466, 1, 2, 3, 498, - 498, 498, 498, 498, 498, 617, 378, 378, 327, 380, - 378, 673, 114, 764, 765, 868, 625, 191, 192, -236, - 230, 231, 545, 677, 6, 387, 546, 424, 193, 425, - 426, 427, 527, 398, 433, 498, 414, -90, 48, -90, - 400, -90, 813, 764, 765, 1013, 678, 379, 418, 438, - 379, 323, 1173, 553, 439, 553, 553, 553, 553, 553, - 440, 441, 642, 442, 771, 772, 699, 547, 773, 774, - 429, 443, 430, 444, 767, 713, 153, 154, 155, 156, - 157, 1047, 445, 184, 446, 447, 595, 617, 1004, 1005, - 1025, 143, 448, 449, 1139, 1043, 1044, 1045, 452, 144, - 142, 232, 453, 454, 684, 455, 456, 174, 175, 498, - 617, 386, 457, 595, 459, 460, 498, 764, 765, 1114, - 473, 479, 503, 486, 501, 798, 506, 511, 548, 510, - 529, 200, 201, 202, 203, 204, 6, 205, 206, 207, - 512, 513, 549, 533, 498, 535, 536, 550, 819, 527, - 537, 617, 838, 57, 555, 1178, 1179, 1180, 1181, 1182, - 143, 1183, 1184, 1185, 580, 378, 581, 582, 144, 142, - 176, 584, 585, 821, 586, 463, 607, 618, -309, 1204, - 1263, 1264, 1265, 622, 673, 628, 319, 629, 177, 630, - 436, 240, 633, 617, 637, 638, 553, 643, 644, 680, - 687, 67, 697, 501, 704, 379, 705, 837, 1072, 795, - 69, 296, 296, 1036, 588, 707, 1173, 706, 713, 708, - 715, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 775, 351, 778, 1206, 779, 353, 781, 780, - 378, 784, 785, 378, 378, 589, 615, -243, 801, 810, - 1211, 1212, 1213, 1257, 802, 806, 1304, 590, 807, 812, - 591, 825, 1310, 592, 501, 826, 840, 497, 827, 143, - 829, 831, 866, 1010, 466, 1008, 228, 144, 142, 593, - 379, 617, 1262, 379, 379, 798, 798, 798, 830, 399, - 832, 869, 694, 174, 175, 798, 230, 231, 568, 1007, - 6, 378, 569, 1011, 1012, 1014, 1018, 1282, 1033, 552, - 819, 1180, 1181, 1182, 1034, 1183, 1184, 1185, 1050, 1259, - 617, 1051, 1052, 1261, 1053, 1054, 1075, 1133, 1266, 1079, - 1085, 1115, 1117, 378, 450, 1121, 1120, 1111, 1055, 57, - 1057, 1123, 1124, 570, 264, 1126, 1125, 1134, 461, 462, - 1130, 824, 1136, 1076, 1077, 1078, 176, 1080, 1081, 1082, - 1083, 1135, 1137, 1138, 1147, 466, 1150, 182, 466, 1151, - 1152, 497, 1284, 379, 177, 1153, 571, 232, 1154, 497, - 497, 497, 497, 497, 497, 1155, 1156, 67, 1188, 217, - 1186, 1189, 1190, 1192, 1193, 795, 69, 1297, 1194, 1038, - 1195, 239, 1201, 1210, 572, 1205, 500, 174, 175, 1216, - 1303, 1209, 1214, 1215, 1217, 497, 1218, 1225, 573, 1250, - 1251, 257, 1267, 574, 1252, 1258, 1253, 1254, 575, 1286, - 1305, 271, 1269, 552, 1260, 552, 552, 552, 552, 552, - 1268, 1270, 1287, 1271, 543, 1072, 1072, 1072, 1072, 1072, - 1272, 1072, 1273, 57, 1283, 1191, 1285, 567, 1288, 1289, - 1003, 309, 1290, 311, 312, 189, 190, 191, 192, 1296, - 176, 1298, 391, 645, 378, 1203, 1131, 699, 193, 1187, - 1249, 404, 815, 1129, 816, 635, 1056, 1088, 177, 497, - 1048, 1122, 378, 0, 596, 0, 497, 467, 0, 0, - 325, 67, 0, 0, 0, 500, 0, 0, 0, 795, - 69, 0, 0, 1040, 678, 361, 363, 365, 367, 368, - 0, 0, 595, 228, 497, 0, 0, 0, 0, 798, - 0, 798, 379, 798, 0, 0, 798, 798, 798, 0, - 174, 175, 1163, 0, 0, 0, 1072, 1072, 1072, 1072, - 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 1072, 1072, 1072, 1072, 1072, 0, 0, 0, 0, 0, - 0, 393, 0, 394, 395, 396, 552, 378, 296, 198, - 199, 200, 201, 202, 203, 204, 57, 205, 206, 207, - 0, 407, 712, 0, 0, 412, 0, 1162, 0, 0, - 0, 0, 421, 176, 423, 0, 1072, 0, 0, 0, - 0, 0, 435, 437, 0, 0, 0, 379, 0, 0, - 466, 177, 0, 0, 0, 0, 713, 0, 0, 0, - 384, 0, 0, 0, 67, 466, 466, 466, 0, 0, - 789, 500, 795, 69, 0, 0, 791, 0, 182, 472, - 0, 474, 475, 476, 477, 478, 1072, 1247, 230, 231, - 489, 378, 0, 0, 490, 480, 0, 0, 484, 485, - 53, 0, 54, 55, 56, 0, 0, 0, 0, 1219, - 1220, 1221, 1222, 1223, 1224, 0, 0, 0, 0, 0, - 0, 833, 834, 835, 836, 0, 839, 0, 0, 63, - 213, 379, 502, 0, 466, 491, 0, 0, 466, 0, - 595, 595, 595, 466, 0, 378, 0, 65, 66, 0, - 500, 0, 0, 1278, 1279, 0, 1280, 1281, 0, 0, - 0, 0, 0, 70, 0, 712, 0, 0, 72, 232, - 1166, 1167, 1168, 1169, 1170, 1171, 1172, 560, 0, 0, - 0, 0, 0, 0, 0, 379, 1173, 466, 0, 0, - 1299, 1300, 1301, 1302, 0, 0, 492, 0, 597, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 493, 0, 466, 0, 0, 494, 0, 0, 0, 0, - 495, 500, 0, 1017, 0, 466, 595, 1157, 1158, 1159, - 1160, 1161, 595, 1164, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 0, 185, 186, 187, 188, 189, 190, 191, - 192, 634, 0, 636, 0, 0, 0, 0, 0, 0, - 193, 0, 0, 0, 1175, 1176, 1177, 412, 1084, 1178, - 1179, 1180, 1181, 1182, 0, 1183, 1184, 1185, 0, 1089, - 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, - 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 0, 1112, 0, 0, 0, 0, 0, 0, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 0, 0, 7, - 8, 9, 10, 0, 11, 12, 13, 158, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 516, 0, 470, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 1274, 205, - 206, 207, 517, 15, 52, 0, 0, 159, 0, 160, - 161, 162, 57, 58, 0, 20, 59, 0, 0, 163, - 22, 0, 0, 61, 0, 0, 0, 0, 23, 24, - 164, 0, 0, 0, 0, 0, 165, 166, 0, 0, - 0, 0, 0, 28, 0, 29, 0, 30, 1291, 0, - 0, 0, 31, 0, 167, 168, 34, 0, 0, 35, - 67, 0, 560, 0, 36, 0, 0, 37, 68, 69, - 169, 0, 0, 71, 1128, 170, 646, 647, 648, 10, - 0, 11, 649, 650, 51, 0, 0, 651, 40, 0, - 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, - 0, 0, 0, 47, 0, 0, 0, 0, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 652, 52, 0, 0, 53, 193, 54, 55, 56, 57, - 371, 0, 653, 59, 0, 0, 60, 654, 0, 1027, - 61, 0, 0, 0, 0, 655, 656, 62, 0, 0, - 0, 1197, 0, 63, 64, 0, 1042, 0, 0, 1046, - 657, 0, 658, 0, 659, 0, 0, 0, 372, 660, - 0, 65, 66, 661, 0, 0, 662, 67, 0, 0, - 0, 663, 0, 0, 664, 68, 69, 70, 0, 0, - 71, 0, 72, 712, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 665, 0, 0, 666, 667, - 0, 0, 0, 668, 0, 669, 0, 0, 0, 0, - 670, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 0, 0, 1200, - 0, 877, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 1248, 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 0, 1255, 0, 0, 0, 0, 0, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 0, 0, 915, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 0, 930, 0, 931, 932, 933, - 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, - 0, 0, 0, 944, 945, 946, 0, 947, 948, 949, - 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, - 960, 961, 962, 0, 963, 964, 965, 966, 967, 968, - 969, 970, 971, 972, 973, 974, 975, 976, 977, 0, - 0, 0, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 1207, 999, 1000, 877, 878, 879, 880, - 881, 882, 883, 884, 885, 886, 0, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, - 0, 0, 0, 0, 0, 898, 899, 900, 901, 902, - 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 0, 0, 915, 916, 917, 918, 919, 920, - 921, 922, 923, 924, 925, 926, 927, 928, 929, 0, - 930, 0, 931, 932, 933, 934, 935, 936, 937, 938, - 939, 940, 941, 942, 943, 0, 0, 0, 944, 945, - 946, 0, 947, 948, 949, 950, 951, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 962, 0, 963, - 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 0, 0, 0, 978, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 0, 999, - 1000, 646, 647, 648, 10, 0, 11, 649, 650, 51, - 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 652, 52, 0, 0, 53, - 193, 54, 55, 56, 57, 371, 0, 653, 59, 0, - 0, 60, 654, 0, 0, 61, 0, 0, 0, 0, - 655, 656, 62, 0, 0, 0, 0, 0, 63, 64, - 0, 0, 0, 0, 0, 657, 0, 658, 0, 659, - 0, 0, 0, 372, 660, 0, 65, 66, 661, 0, - 0, 662, 67, 0, 0, 0, 663, 0, 0, 664, - 68, 69, 70, 0, 0, 71, 0, 72, 7, 8, - 9, 10, 0, 11, 12, 13, 14, 0, 0, 0, - 665, 0, 0, 666, 667, 0, 0, 0, 668, 0, - 669, 0, 0, 0, 0, 670, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 206, 207, 15, 0, 1277, 0, 16, 0, 17, 18, - 19, 0, 0, 0, 20, 0, 564, 565, 21, 22, - 53, 0, 54, 55, 56, 0, 0, 23, 24, 25, - 0, 0, 212, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 28, 0, 29, 0, 30, 0, 0, 63, - 213, 31, 0, 32, 33, 34, 0, 0, 35, 0, - 0, 0, 0, 36, 518, 519, 37, 65, 66, 38, - 7, 8, 9, 10, 39, 11, 12, 13, 14, 566, - 0, 0, 0, 70, 0, 0, 0, 40, 72, 0, - 41, 42, 43, 0, 0, 44, 0, 45, 46, 0, - 0, 0, 47, 0, 0, 53, 0, 54, 55, 56, - 0, 136, 0, 0, 15, 0, 0, 60, 16, 0, - 17, 18, 19, 0, 0, 0, 20, 0, 62, 0, - 21, 22, 0, 0, 63, 64, 0, 0, 0, 23, - 24, 25, 0, 0, 0, 0, 0, 26, 27, 0, - 0, 0, 65, 66, 28, 0, 29, 0, 30, 0, - 0, 0, 0, 31, 0, 32, 33, 34, 70, 0, - 35, 71, 0, 72, 0, 36, 0, 0, 37, 0, - 0, 38, 7, 8, 9, 10, 39, 11, 12, 13, - 14, 0, 0, 53, 0, 54, 55, 56, 0, 40, - 0, 0, 41, 42, 43, 0, 0, 44, 0, 45, - 46, 349, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 63, 213, 0, 0, 15, 0, 0, 0, - 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, - 65, 66, 21, 22, 0, 0, 174, 175, 0, 0, - 0, 23, 24, 25, 0, 0, 70, 0, 0, 26, - 27, 72, 0, 0, 0, 0, 28, 0, 29, 0, - 30, 0, 0, 0, 0, 31, 0, 32, 33, 34, - 0, 0, 35, 0, 146, 0, 0, 36, 0, 0, - 37, 0, 57, 38, 7, 8, 9, 10, 39, 11, - 12, 13, 14, 709, 0, 0, 0, 0, 0, 176, - 0, 40, 0, 0, 41, 42, 43, 0, 0, 44, - 0, 45, 46, 0, 0, 0, 47, 177, 792, 793, - 794, 0, 0, 0, 0, 0, 0, 0, 15, 0, - 67, 0, 16, 0, 17, 18, 19, 0, 795, 69, - 20, 0, 796, 0, 21, 22, 53, 0, 54, 55, - 56, 0, 0, 23, 24, 25, 0, 0, 0, 0, - 0, 26, 27, 0, 0, 0, 0, 0, 28, 0, - 29, 0, 30, 0, 0, 63, 213, 31, 0, 32, - 33, 34, 0, 0, 35, 0, 0, 0, 0, 36, - 0, 0, 37, 65, 66, 38, 7, 8, 9, 10, - 39, 11, 12, 13, 14, 0, 0, 0, 0, 70, - 0, 0, 0, 40, 72, 0, 41, 42, 43, 0, - 0, 44, 0, 45, 46, 1110, 0, 0, 47, 0, - 0, 53, 0, 54, 55, 56, 0, 147, 0, 0, - 15, 0, 0, 0, 16, 0, 17, 18, 19, 0, - 0, 0, 20, 0, 0, 0, 21, 22, 0, 0, - 63, 213, 0, 0, 0, 23, 24, 25, 0, 0, - 0, 0, 0, 26, 27, 0, 0, 0, 65, 66, - 28, 0, 29, 0, 30, 0, 0, 0, 0, 31, - 0, 32, 33, 34, 70, 0, 35, 0, 0, 72, - 0, 36, 0, 0, 37, 0, 0, 38, 7, 8, - 9, 10, 39, 11, 12, 13, 14, 1127, 0, 0, - 0, 0, 151, 0, 0, 40, 0, 0, 41, 42, - 43, 0, 0, 44, 0, 45, 46, 0, 0, 0, - 47, 0, 0, 53, 0, 54, 55, 56, 0, 0, - 0, 0, 15, 0, 0, 212, 16, 0, 17, 18, - 19, 0, 0, 0, 20, 0, 0, 0, 21, 22, - 0, 0, 63, 213, 0, 0, 0, 23, 24, 25, - 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, - 65, 66, 28, 0, 29, 0, 30, 0, 0, 0, - 0, 31, 0, 32, 33, 34, 70, 0, 35, 0, - 0, 72, 0, 36, 0, 0, 37, 0, 0, 38, - 7, 8, 9, 10, 39, 11, 12, 13, 14, 0, - 0, 53, 0, 54, 55, 56, 0, 40, 0, 0, - 41, 42, 43, 0, 0, 44, 0, 45, 46, 1246, - 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 63, 213, 0, 0, 15, 0, 0, 0, 16, 0, - 17, 18, 19, 0, 0, 0, 20, 0, 65, 66, - 21, 22, 0, 0, 0, 0, 0, 0, 0, 23, - 24, 25, 0, 0, 70, 0, 0, 26, 27, 72, - 0, 0, 0, 0, 28, 0, 29, 0, 30, 0, - 0, 0, 0, 31, 0, 32, 33, 34, 0, 0, - 35, 0, 0, 0, 0, 36, 518, 519, 37, 1171, - 1172, 38, 7, 8, 9, 10, 39, 11, 12, 13, - 1173, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 41, 42, 43, 0, 0, 44, 0, 45, - 46, 0, 0, 0, 47, 0, 0, 53, 0, 54, - 55, 56, 520, 521, 0, 0, 1058, 0, 0, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 1059, 0, - 62, 0, 0, 1060, 0, 0, 63, 64, 0, 0, - 0, 23, 24, 0, 0, 0, 0, 0, 0, -2, - 0, 0, 0, 0, 65, 66, 0, 0, 29, 0, - 30, 0, 0, 0, 0, 1061, 0, 0, 522, 1062, - 70, 0, 1063, 71, 0, 72, 0, 36, 0, 0, - 0, 0, 0, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 0, 0, 0, 0, 0, 86, 87, - 0, 1064, 0, 0, 1065, 1066, 1067, 88, 0, 1068, - 0, 1069, 46, 0, 0, 89, 1070, 90, 91, 92, - 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 0, 0, - 0, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 0, 0, 107, 108, 0, 0, 0, 109, - 0, 0, 0, 0, 110, 111, 0, 112, 718, 0, - 0, 0, 0, 275, 276, 113, 0, 719, 720, 721, - 722, 723, 724, 725, 726, 0, 0, 0, 0, 0, - 0, 0, 114, 0, 727, 0, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, 738, 739, 0, 0, - 0, 277, 0, 0, 53, 0, 54, 55, 56, 57, - 278, 0, 0, 279, 740, 0, 60, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 63, 64, 0, 0, 0, 0, 741, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 65, 66, 0, 0, 0, 0, 67, 0, 275, - 276, 0, 0, 0, 0, 281, 69, 70, 0, 0, - 71, 0, 72, 0, 0, 0, 0, 742, 0, 0, - 743, 0, 744, 745, 746, 747, 748, 749, 750, 751, - 752, 753, 754, 283, 755, 756, 0, 277, 0, 757, - 53, 0, 54, 55, 56, 57, 278, 0, 0, 279, - 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, - 64, 401, 402, 1169, 1170, 1171, 1172, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 1173, 65, 66, 0, - 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, - 0, 281, 69, 70, 0, 0, 71, 0, 72, 277, - 0, 0, 53, 282, 54, 55, 56, 57, 403, 0, - 0, 279, 0, 0, 60, 0, 0, 0, 61, 283, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 63, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 65, - 66, 0, 0, 0, 0, 67, 0, 0, 0, 0, - 0, 0, 0, 281, 69, 70, 0, 0, 71, 0, - 72, 185, 186, 187, 188, 189, 190, 191, 192, 1178, - 1179, 1180, 1181, 1182, 0, 1183, 1184, 1185, 193, 0, - 0, 283, 185, 186, 187, 188, 189, 190, 191, 192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 185, 186, 187, 188, - 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 0, 0, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 0, 205, 206, 207, - 458, 0, 0, 0, 0, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 206, - 207, 471, 0, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 583, - 0, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 685, 0, 0, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 0, 205, 206, 207, 1196, 468, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 0, 185, 186, 187, 188, 189, 190, 191, 192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 843, 844, 845, 846, - 847, 848, 849, 850, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 851, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1173, 0, 0, 714, 0, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 206, 207, 1035, 0, 0, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 206, - 207, 0, 1198, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 0, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 0, 0, 0, - 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, - 862, 0, 863, 864, 865, 0, 1275, 0, 1174, 1175, - 1176, 1177, 0, 0, 1178, 1179, 1180, 1181, 1182, 0, - 1183, 1184, 1185, 1165, 1166, 1167, 1168, 1169, 1170, 1171, - 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1173, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, - 0, 0, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 187, 188, - 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1167, - 1168, 1169, 1170, 1171, 1172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1173, 0, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 1174, 1175, 1176, - 1177, 193, 0, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 0, 0, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 51, - 0, 0, 369, 0, 370, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 0, 0, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 0, 205, 206, 207, 0, 52, 0, 0, 53, - 0, 54, 55, 56, 57, 371, 0, 0, 59, 0, - 0, 60, 1175, 1176, 1177, 61, 0, 1178, 1179, 1180, - 1181, 1182, 62, 1183, 1184, 1185, 0, 0, 63, 64, - 0, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 372, 0, 0, 65, 66, 0, 0, - 0, 0, 67, 187, 188, 189, 190, 191, 192, 0, - 68, 69, 70, 0, 0, 71, 0, 72, 193, 1167, - 1168, 1169, 1170, 1171, 1172, 0, 0, 0, 0, 0, - 373, 0, 0, 0, 1173, 374, 1167, 1168, 1169, 1170, - 1171, 1172, 0, 0, 0, 1167, 1168, 1169, 1170, 1171, - 1172, 1173, 0, 0, 0, 0, 0, 0, 0, 0, - 1173, 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, 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, 0, 0, 0, 0, 0, 0, 198, - 199, 200, 201, 202, 203, 204, 0, 205, 206, 207, - 0, 0, 0, 1176, 1177, 415, 416, 1178, 1179, 1180, - 1181, 1182, 0, 1183, 1184, 1185, 0, 0, 0, 0, - 0, 1177, 0, 0, 1178, 1179, 1180, 1181, 1182, 0, - 1183, 1184, 1185, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 277, 0, 0, 53, 0, 54, 55, - 56, 57, 0, 0, 0, 279, 0, 0, 60, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 63, 64, 0, 51, 0, - 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 0, 0, 0, 0, 67, - 0, 0, 0, 0, 0, 0, 0, 281, 69, 70, - 0, 0, 71, 0, 72, 52, 0, 0, 53, 0, - 54, 55, 56, 57, 371, 0, 0, 59, 0, 0, - 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 63, 64, 0, - 51, 0, 0, 605, 0, 0, 87, 0, 0, 0, - 0, 0, 372, 0, 88, 65, 66, 0, 0, 0, - 0, 67, 0, 0, 90, 91, 92, 0, 0, 68, - 69, 70, 0, 0, 71, 241, 72, 52, 0, 0, - 53, 99, 54, 55, 56, 57, 371, 0, 0, 59, - 0, 104, 60, 0, 0, 0, 61, 105, 0, 0, - 0, 107, 108, 62, 0, 0, 0, 51, 0, 63, - 64, 0, 111, 0, 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 372, 0, 0, 65, 66, 51, - 0, 0, 0, 67, 0, 0, 0, 0, 0, 114, - 0, 68, 69, 70, 52, 0, 71, 53, 72, 54, - 55, 56, 57, 371, 0, 0, 59, 0, 0, 60, - 0, 0, 0, 61, 0, 0, 52, 0, 0, 53, - 62, 54, 55, 56, 57, 58, 63, 64, 59, 0, - 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, - 0, 372, 62, 0, 65, 66, 51, 0, 63, 64, - 67, 0, 0, 0, 0, 0, 0, 0, 68, 69, - 70, 0, 0, 71, 0, 72, 65, 66, 0, 0, - 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, - 68, 69, 70, 52, 0, 71, 53, 72, 54, 55, - 56, 57, 419, 0, 0, 59, 0, 0, 60, 0, - 0, 51, 61, 0, 0, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 0, 0, 0, 52, 67, - 0, 53, 0, 54, 55, 56, 57, 68, 69, 70, - 59, 0, 71, 60, 72, 0, 0, 61, 0, 0, - 138, 0, 0, 53, 62, 54, 55, 56, 57, 776, - 63, 64, 139, 0, 0, 60, 0, 0, 137, 61, - 0, 0, 0, 0, 0, 481, 62, 0, 65, 66, - 0, 0, 63, 64, 67, 0, 0, 0, 0, 0, - 51, 0, 68, 69, 70, 0, 0, 71, 0, 72, - 65, 66, 0, 0, 0, 138, 67, 0, 53, 0, - 54, 55, 56, 57, 140, 69, 70, 139, 0, 71, - 60, 72, 0, 0, 61, 0, 0, 52, 0, 0, - 53, 62, 54, 55, 56, 57, 0, 63, 64, 59, - 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 62, 0, 65, 66, 0, 0, 63, - 64, 67, 0, 0, 0, 0, 0, 0, 0, 140, - 69, 70, 0, 0, 71, 0, 72, 65, 66, 0, - 86, 87, 0, 67, 0, 0, 0, 0, 0, 88, - 0, 68, 69, 70, 0, 0, 71, 89, 72, 90, - 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, - 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, - 0, 0, 0, 101, 102, 103, 104, 0, 0, 0, - 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, - 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, - 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, - 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, - 99, 100, 0, 0, 114, 0, 514, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, - 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, - 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, - 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, - 621, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, - 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, - 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, - 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, - 0, 0, 114, 0, 626, 101, 102, 103, 104, 0, - 0, 0, 0, 0, 105, 106, 86, 87, 107, 108, - 0, 0, 0, 109, 0, 88, 0, 0, 110, 111, - 0, 112, 0, 89, 0, 90, 91, 92, 93, 113, - 0, 0, 94, 0, 0, 0, 95, 0, 0, 96, - 97, 98, 99, 100, 0, 0, 114, 0, 695, 101, - 102, 103, 104, 0, 0, 0, 0, 0, 105, 106, - 86, 87, 107, 108, 0, 0, 0, 109, 0, 88, - 0, 0, 110, 111, 0, 112, 0, 89, 0, 90, - 91, 92, 93, 113, 0, 0, 94, 0, 0, 0, - 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, - 114, 0, 808, 101, 102, 103, 104, 0, 0, 0, - 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, - 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, - 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, - 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, - 99, 100, 0, 0, 114, 0, 1049, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, - 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, - 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, - 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, - 1146, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 87, 0, 107, 108, 0, 0, 0, 109, - 88, 0, 0, 0, 110, 111, 87, 112, 0, 0, - 90, 91, 92, 0, 88, 0, 0, 0, 0, 0, - 0, 241, 0, 0, 90, 91, 92, 99, 250, 0, - 0, 0, 114, 0, 0, 241, 87, 104, 0, 0, - 0, 99, 0, 105, 88, 0, 0, 0, 108, 0, - 0, 104, 0, 0, 90, 91, 92, 105, 111, 0, - 112, 0, 108, 0, 0, 241, 0, 0, 0, 0, - 0, 99, 111, 0, 112, 0, 0, 0, 0, 0, - 0, 104, 0, 0, 0, 114, 0, 105, 0, -140, - 0, 0, 108, 0, 0, 0, 0, 0, 0, 114, - 0, 0, 111, 0, 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 114 -}; - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-755))) - -#define yytable_value_is_error(Yytable_value) \ - YYID (0) - -static const yytype_int16 yycheck[] = -{ - 1, 429, 107, 127, 128, 129, 130, 404, 132, 532, - 134, 135, 136, 210, 516, 464, 709, 58, 45, 542, - 118, 28, 146, 147, 221, 222, 256, 151, 152, 28, - 28, 372, 578, 387, 479, 537, 577, 588, 792, 793, - 794, 14, 6, 12, 8, 46, 12, 16, 118, 482, - 0, 10, 11, 118, 118, 601, 124, 490, 491, 492, - 493, 494, 495, 604, 544, 125, 546, 547, 548, 549, - 550, 14, 73, 45, 142, 540, 61, 62, 125, 10, - 11, 142, 125, 128, 144, 64, 65, 66, 57, 538, - 73, 70, 541, 526, 10, 11, 642, 144, 143, 133, - 486, 144, 268, 142, 569, 570, 657, 572, 573, 574, - 575, 118, 278, 125, 73, 128, 128, 640, 73, 118, - 118, 57, 32, 6, 125, 8, 127, 128, 129, 130, - 143, 132, 91, 134, 135, 136, 10, 11, 684, 143, - 144, 124, 73, 133, 127, 146, 147, 488, 142, 118, - 151, 152, 125, 32, 126, 143, 144, 73, 388, 131, - 91, 133, 392, 132, 125, 142, 264, 600, 137, 124, - 615, 137, 127, 145, 607, 91, 148, 149, 150, 206, - 144, 578, 125, 144, 225, 144, 310, 166, 167, 168, - 169, 125, 422, 124, 264, 142, 537, 12, 268, 264, - 264, 16, 635, 268, 268, 142, 142, 687, 278, 210, - 144, 133, 128, 278, 278, 680, 132, 91, 32, 220, - 221, 222, 223, 224, 225, 776, 580, 73, 229, 10, - 11, 141, 142, 143, 213, 142, 782, 403, 32, 280, - 142, 126, 57, 128, 142, 642, 142, 696, 125, 694, - 715, 143, 144, 127, 233, 256, 142, 264, 137, 138, - 139, 268, 141, 142, 143, 264, 264, 144, 133, 268, - 268, 278, 700, 32, 125, 821, 142, 125, 124, 278, - 278, 127, 1036, 142, 1038, 515, 1040, 684, 125, 1043, - 1044, 1045, 73, 144, 87, 88, 144, 90, 91, 92, - 10, 11, 95, 118, 10, 11, 99, 144, 142, 310, - 91, 104, 105, 127, 107, 108, 109, 132, 111, 112, - 765, 6, 137, 8, 142, 326, 327, 142, 142, 143, - 371, 372, 781, 403, 142, 784, 785, 142, 403, 403, - 842, 135, 136, 137, 138, 139, 127, 141, 142, 143, - 124, 779, 126, 354, 128, 356, 357, 358, 359, 360, - 142, 125, 124, 73, 126, 6, 128, 73, 142, 370, - 10, 11, 373, 374, 127, 125, 125, 378, 419, 380, - 144, 91, 141, 142, 143, 91, 124, 388, 389, 775, - 142, 392, 10, 11, 144, 144, 403, 627, 73, 400, - 142, 400, 127, 125, 403, 403, 127, 125, 387, 50, - 85, 125, 125, 88, 124, 127, 91, 58, 124, 420, - 125, 422, 144, 464, 821, 874, 144, 68, 69, 70, - 144, 144, 107, 73, 1127, 142, 143, 409, 79, 144, - 481, 142, 125, 125, 85, 143, 86, 488, 241, 143, - 144, 91, 245, 142, 95, 73, 142, 125, 124, 125, - 101, 144, 144, 464, 465, 106, 142, 143, 79, 80, - 142, 143, 473, 91, 144, 116, 144, 118, 479, 146, - 866, 482, 1023, 869, 137, 486, 121, 122, 123, 490, - 491, 492, 493, 494, 495, 496, 537, 538, 125, 143, - 541, 842, 143, 142, 143, 144, 507, 21, 22, 143, - 10, 11, 12, 1015, 515, 127, 16, 124, 32, 126, - 127, 128, 521, 124, 126, 526, 142, 124, 2, 126, - 133, 128, 637, 142, 143, 144, 537, 538, 142, 144, - 541, 125, 32, 544, 144, 546, 547, 548, 549, 550, - 144, 144, 1075, 144, 581, 582, 557, 57, 585, 586, - 124, 144, 126, 134, 128, 566, 40, 41, 42, 43, - 44, 801, 144, 47, 134, 144, 577, 578, 702, 703, - 777, 588, 144, 144, 1033, 92, 93, 94, 134, 588, - 588, 91, 144, 144, 1117, 144, 134, 10, 11, 600, - 601, 580, 144, 604, 144, 144, 607, 142, 143, 144, - 137, 143, 145, 144, 615, 622, 73, 125, 118, 124, - 142, 135, 136, 137, 138, 139, 627, 141, 142, 143, - 125, 125, 132, 126, 635, 146, 125, 137, 639, 638, - 142, 642, 669, 56, 142, 135, 136, 137, 138, 139, - 657, 141, 142, 143, 127, 696, 142, 142, 657, 657, - 73, 144, 142, 1186, 142, 57, 137, 146, 124, 1118, - 1211, 1212, 1213, 127, 1015, 10, 150, 10, 91, 10, - 291, 292, 126, 684, 134, 125, 687, 126, 146, 137, - 137, 104, 145, 694, 126, 696, 126, 669, 817, 112, - 113, 702, 703, 116, 32, 126, 32, 145, 709, 126, - 137, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 144, 207, 142, 1121, 124, 211, 142, 146, - 781, 142, 142, 784, 785, 73, 143, 143, 124, 128, - 1136, 1137, 1138, 1202, 125, 125, 1297, 85, 125, 128, - 88, 142, 1303, 91, 765, 133, 144, 378, 133, 776, - 133, 133, 144, 10, 775, 125, 777, 776, 776, 107, - 781, 782, 1210, 784, 785, 792, 793, 794, 142, 263, - 142, 144, 143, 10, 11, 802, 10, 11, 12, 145, - 801, 842, 16, 144, 146, 4, 125, 1256, 142, 420, - 811, 137, 138, 139, 146, 141, 142, 143, 10, 1205, - 821, 126, 10, 1209, 10, 126, 125, 1024, 1214, 142, - 144, 142, 125, 874, 308, 144, 146, 864, 810, 56, - 812, 145, 145, 57, 637, 145, 144, 144, 322, 323, - 146, 644, 144, 825, 826, 827, 73, 829, 830, 831, - 832, 145, 144, 144, 144, 866, 144, 46, 869, 142, - 133, 482, 1258, 874, 91, 133, 90, 91, 133, 490, - 491, 492, 493, 494, 495, 142, 133, 104, 144, 68, - 125, 134, 134, 134, 144, 112, 113, 1283, 134, 116, - 144, 80, 142, 124, 118, 144, 380, 10, 11, 10, - 1296, 144, 144, 126, 126, 526, 126, 144, 132, 142, - 142, 100, 125, 137, 144, 144, 142, 142, 142, 10, - 126, 110, 134, 544, 145, 546, 547, 548, 549, 550, - 144, 134, 142, 134, 418, 1064, 1065, 1066, 1067, 1068, - 144, 1070, 134, 56, 144, 1079, 145, 431, 142, 142, - 701, 140, 142, 142, 143, 19, 20, 21, 22, 144, - 73, 144, 249, 536, 1015, 1117, 1018, 978, 32, 1075, - 1186, 268, 637, 1015, 638, 521, 811, 842, 91, 600, - 802, 978, 1033, -1, 468, -1, 607, 327, -1, -1, - 179, 104, -1, -1, -1, 479, -1, -1, -1, 112, - 113, -1, -1, 116, 1015, 220, 221, 222, 223, 224, - -1, -1, 1023, 1024, 635, -1, -1, -1, -1, 1036, - -1, 1038, 1033, 1040, -1, -1, 1043, 1044, 1045, -1, - 10, 11, 1069, -1, -1, -1, 1165, 1166, 1167, 1168, - 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, -1, -1, -1, -1, -1, - -1, 250, -1, 252, 253, 254, 687, 1118, 1079, 133, - 134, 135, 136, 137, 138, 139, 56, 141, 142, 143, - -1, 270, 566, -1, -1, 274, -1, 1069, -1, -1, - -1, -1, 281, 73, 283, -1, 1225, -1, -1, -1, - -1, -1, 291, 292, -1, -1, -1, 1118, -1, -1, - 1121, 91, -1, -1, -1, -1, 1127, -1, -1, -1, - 11, -1, -1, -1, 104, 1136, 1137, 1138, -1, -1, - 614, 615, 112, 113, -1, -1, 620, -1, 327, 354, - -1, 356, 357, 358, 359, 360, 1275, 1184, 10, 11, - 12, 1202, -1, -1, 16, 370, -1, -1, 373, 374, - 51, -1, 53, 54, 55, -1, -1, -1, -1, 1151, - 1152, 1153, 1154, 1155, 1156, -1, -1, -1, -1, -1, - -1, 665, 666, 667, 668, -1, 670, -1, -1, 80, - 81, 1202, 381, -1, 1205, 57, -1, -1, 1209, -1, - 1211, 1212, 1213, 1214, -1, 1256, -1, 98, 99, -1, - 694, -1, -1, 1250, 1251, -1, 1253, 1254, -1, -1, - -1, -1, -1, 114, -1, 709, -1, -1, 119, 91, - 16, 17, 18, 19, 20, 21, 22, 426, -1, -1, - -1, -1, -1, -1, -1, 1256, 32, 1258, -1, -1, - 1287, 1288, 1289, 1290, -1, -1, 118, -1, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 132, -1, 1283, -1, -1, 137, -1, -1, -1, -1, - 142, 765, -1, 767, -1, 1296, 1297, 1064, 1065, 1066, - 1067, 1068, 1303, 1070, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, 15, 16, 17, 18, 19, 20, 21, - 22, 520, -1, 522, -1, -1, -1, -1, -1, -1, - 32, -1, -1, -1, 130, 131, 132, 536, 832, 135, - 136, 137, 138, 139, -1, 141, 142, 143, -1, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - -1, 865, -1, -1, -1, -1, -1, -1, 1165, 1166, - 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, - 1177, 1178, 1179, 1180, 1181, 1182, 1183, -1, -1, 3, - 4, 5, 6, -1, 8, 9, 10, 11, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 125, -1, 146, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 1225, 141, - 142, 143, 144, 47, 48, -1, -1, 51, -1, 53, - 54, 55, 56, 57, -1, 59, 60, -1, -1, 63, - 64, -1, -1, 67, -1, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, - -1, -1, -1, 87, -1, 89, -1, 91, 1275, -1, - -1, -1, 96, -1, 98, 99, 100, -1, -1, 103, - 104, -1, 701, -1, 108, -1, -1, 111, 112, 113, - 114, -1, -1, 117, 1008, 119, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, -1, 14, 132, -1, - -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, - -1, -1, -1, 147, -1, -1, -1, -1, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - 47, 48, -1, -1, 51, 32, 53, 54, 55, 56, - 57, -1, 59, 60, -1, -1, 63, 64, -1, 778, - 67, -1, -1, -1, -1, 72, 73, 74, -1, -1, - -1, 1085, -1, 80, 81, -1, 795, -1, -1, 798, - 87, -1, 89, -1, 91, -1, -1, -1, 95, 96, - -1, 98, 99, 100, -1, -1, 103, 104, -1, -1, - -1, 108, -1, -1, 111, 112, 113, 114, -1, -1, - 117, -1, 119, 1127, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 132, -1, -1, 135, 136, - -1, -1, -1, 140, -1, 142, -1, -1, -1, -1, - 147, -1, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, -1, 141, 142, 143, -1, -1, 146, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 1185, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, -1, 1198, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, -1, -1, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, -1, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, - -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, -1, -1, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, - 67, -1, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, -1, -1, -1, 85, 86, - 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, -1, 146, - 147, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, 47, 48, -1, -1, 51, - 32, 53, 54, 55, 56, 57, -1, 59, 60, -1, - -1, 63, 64, -1, -1, 67, -1, -1, -1, -1, - 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, - -1, -1, -1, -1, -1, 87, -1, 89, -1, 91, - -1, -1, -1, 95, 96, -1, 98, 99, 100, -1, - -1, 103, 104, -1, -1, -1, 108, -1, -1, 111, - 112, 113, 114, -1, -1, 117, -1, 119, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, -1, -1, - 132, -1, -1, 135, 136, -1, -1, -1, 140, -1, - 142, -1, -1, -1, -1, 147, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, - 142, 143, 47, -1, 146, -1, 51, -1, 53, 54, - 55, -1, -1, -1, 59, -1, 61, 62, 63, 64, - 51, -1, 53, 54, 55, -1, -1, 72, 73, 74, - -1, -1, 63, -1, -1, 80, 81, -1, -1, -1, - -1, -1, 87, -1, 89, -1, 91, -1, -1, 80, - 81, 96, -1, 98, 99, 100, -1, -1, 103, -1, - -1, -1, -1, 108, 10, 11, 111, 98, 99, 114, - 3, 4, 5, 6, 119, 8, 9, 10, 11, 124, - -1, -1, -1, 114, -1, -1, -1, 132, 119, -1, - 135, 136, 137, -1, -1, 140, -1, 142, 143, -1, - -1, -1, 147, -1, -1, 51, -1, 53, 54, 55, - -1, 142, -1, -1, 47, -1, -1, 63, 51, -1, - 53, 54, 55, -1, -1, -1, 59, -1, 74, -1, - 63, 64, -1, -1, 80, 81, -1, -1, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, 81, -1, - -1, -1, 98, 99, 87, -1, 89, -1, 91, -1, - -1, -1, -1, 96, -1, 98, 99, 100, 114, -1, - 103, 117, -1, 119, -1, 108, -1, -1, 111, -1, - -1, 114, 3, 4, 5, 6, 119, 8, 9, 10, - 11, -1, -1, 51, -1, 53, 54, 55, -1, 132, - -1, -1, 135, 136, 137, -1, -1, 140, -1, 142, - 143, 144, -1, -1, 147, -1, -1, -1, -1, -1, - -1, -1, 80, 81, -1, -1, 47, -1, -1, -1, - 51, -1, 53, 54, 55, -1, -1, -1, 59, -1, - 98, 99, 63, 64, -1, -1, 10, 11, -1, -1, - -1, 72, 73, 74, -1, -1, 114, -1, -1, 80, - 81, 119, -1, -1, -1, -1, 87, -1, 89, -1, - 91, -1, -1, -1, -1, 96, -1, 98, 99, 100, - -1, -1, 103, -1, 142, -1, -1, 108, -1, -1, - 111, -1, 56, 114, 3, 4, 5, 6, 119, 8, - 9, 10, 11, 124, -1, -1, -1, -1, -1, 73, - -1, 132, -1, -1, 135, 136, 137, -1, -1, 140, - -1, 142, 143, -1, -1, -1, 147, 91, 92, 93, - 94, -1, -1, -1, -1, -1, -1, -1, 47, -1, - 104, -1, 51, -1, 53, 54, 55, -1, 112, 113, - 59, -1, 116, -1, 63, 64, 51, -1, 53, 54, - 55, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, 81, -1, -1, -1, -1, -1, 87, -1, - 89, -1, 91, -1, -1, 80, 81, 96, -1, 98, - 99, 100, -1, -1, 103, -1, -1, -1, -1, 108, - -1, -1, 111, 98, 99, 114, 3, 4, 5, 6, - 119, 8, 9, 10, 11, -1, -1, -1, -1, 114, - -1, -1, -1, 132, 119, -1, 135, 136, 137, -1, - -1, 140, -1, 142, 143, 144, -1, -1, 147, -1, - -1, 51, -1, 53, 54, 55, -1, 142, -1, -1, - 47, -1, -1, -1, 51, -1, 53, 54, 55, -1, - -1, -1, 59, -1, -1, -1, 63, 64, -1, -1, - 80, 81, -1, -1, -1, 72, 73, 74, -1, -1, - -1, -1, -1, 80, 81, -1, -1, -1, 98, 99, - 87, -1, 89, -1, 91, -1, -1, -1, -1, 96, - -1, 98, 99, 100, 114, -1, 103, -1, -1, 119, - -1, 108, -1, -1, 111, -1, -1, 114, 3, 4, - 5, 6, 119, 8, 9, 10, 11, 124, -1, -1, - -1, -1, 142, -1, -1, 132, -1, -1, 135, 136, - 137, -1, -1, 140, -1, 142, 143, -1, -1, -1, - 147, -1, -1, 51, -1, 53, 54, 55, -1, -1, - -1, -1, 47, -1, -1, 63, 51, -1, 53, 54, - 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, - -1, -1, 80, 81, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, - 98, 99, 87, -1, 89, -1, 91, -1, -1, -1, - -1, 96, -1, 98, 99, 100, 114, -1, 103, -1, - -1, 119, -1, 108, -1, -1, 111, -1, -1, 114, - 3, 4, 5, 6, 119, 8, 9, 10, 11, -1, - -1, 51, -1, 53, 54, 55, -1, 132, -1, -1, - 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, - -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, - 80, 81, -1, -1, 47, -1, -1, -1, 51, -1, - 53, 54, 55, -1, -1, -1, 59, -1, 98, 99, - 63, 64, -1, -1, -1, -1, -1, -1, -1, 72, - 73, 74, -1, -1, 114, -1, -1, 80, 81, 119, - -1, -1, -1, -1, 87, -1, 89, -1, 91, -1, - -1, -1, -1, 96, -1, 98, 99, 100, -1, -1, - 103, -1, -1, -1, -1, 108, 10, 11, 111, 21, - 22, 114, 3, 4, 5, 6, 119, 8, 9, 10, - 32, -1, -1, -1, -1, -1, -1, -1, -1, 132, - -1, -1, 135, 136, 137, -1, -1, 140, -1, 142, - 143, -1, -1, -1, 147, -1, -1, 51, -1, 53, - 54, 55, 56, 57, -1, -1, 47, -1, -1, 63, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 74, -1, -1, 64, -1, -1, 80, 81, -1, -1, - -1, 72, 73, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, 98, 99, -1, -1, 89, -1, - 91, -1, -1, -1, -1, 96, -1, -1, 112, 100, - 114, -1, 103, 117, -1, 119, -1, 108, -1, -1, - -1, -1, -1, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, -1, -1, -1, -1, -1, 49, 50, - -1, 132, -1, -1, 135, 136, 137, 58, -1, 140, - -1, 142, 143, -1, -1, 66, 147, 68, 69, 70, - 71, -1, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, -1, -1, - -1, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, -1, -1, 105, 106, -1, -1, -1, 110, - -1, -1, -1, -1, 115, 116, -1, 118, 6, -1, - -1, -1, -1, 10, 11, 126, -1, 15, 16, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, 143, -1, 32, -1, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, 48, -1, -1, 51, -1, 53, 54, 55, 56, - 57, -1, -1, 60, 62, -1, 63, -1, -1, -1, - 67, -1, -1, -1, -1, -1, -1, 74, -1, -1, - -1, -1, -1, 80, 81, -1, -1, -1, -1, 87, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - -1, 98, 99, -1, -1, -1, -1, 104, -1, 10, - 11, -1, -1, -1, -1, 112, 113, 114, -1, -1, - 117, -1, 119, -1, -1, -1, -1, 125, -1, -1, - 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 140, 142, 143, -1, 48, -1, 147, - 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, - -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, - -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, - 81, 10, 11, 19, 20, 21, 22, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 32, 98, 99, -1, - -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, - -1, 112, 113, 114, -1, -1, 117, -1, 119, 48, - -1, -1, 51, 124, 53, 54, 55, 56, 57, -1, - -1, 60, -1, -1, 63, -1, -1, -1, 67, 140, - -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, - -1, 80, 81, -1, -1, -1, -1, -1, -1, -1, - -1, 90, -1, -1, -1, -1, -1, -1, -1, 98, - 99, -1, -1, -1, -1, 104, -1, -1, -1, -1, - -1, -1, -1, 112, 113, 114, -1, -1, 117, -1, - 119, 15, 16, 17, 18, 19, 20, 21, 22, 135, - 136, 137, 138, 139, -1, 141, 142, 143, 32, -1, - -1, 140, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, - 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, -1, -1, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - 144, -1, -1, -1, -1, -1, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, - 143, 144, -1, -1, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, 144, - -1, -1, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, -1, 141, 142, 143, 144, -1, -1, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, 144, 127, -1, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 32, -1, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, - 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, -1, 126, -1, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, - 142, 143, 125, -1, -1, -1, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, - 143, -1, 127, -1, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, -1, - -1, -1, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, -1, 141, 142, 143, -1, -1, -1, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, -1, 127, -1, 129, 130, - 131, 132, -1, -1, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 32, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, - -1, -1, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 32, -1, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, 129, 130, 131, - 132, 32, -1, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, -1, -1, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, 11, - -1, -1, 14, -1, 16, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, -1, - -1, -1, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, -1, 48, -1, -1, 51, - -1, 53, 54, 55, 56, 57, -1, -1, 60, -1, - -1, 63, 130, 131, 132, 67, -1, 135, 136, 137, - 138, 139, 74, 141, 142, 143, -1, -1, 80, 81, - -1, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 95, -1, -1, 98, 99, -1, -1, - -1, -1, 104, 17, 18, 19, 20, 21, 22, -1, - 112, 113, 114, -1, -1, 117, -1, 119, 32, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - 132, -1, -1, -1, 32, 137, 17, 18, 19, 20, - 21, 22, -1, -1, -1, 17, 18, 19, 20, 21, - 22, 32, -1, -1, -1, -1, -1, -1, -1, -1, - 32, -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, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - -1, -1, -1, 131, 132, 10, 11, 135, 136, 137, - 138, 139, -1, 141, 142, 143, -1, -1, -1, -1, - -1, 132, -1, -1, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, 48, -1, -1, 51, -1, 53, 54, - 55, 56, -1, -1, -1, 60, -1, -1, 63, -1, - -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, - -1, -1, -1, -1, -1, 80, 81, -1, 11, -1, - -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, 99, -1, -1, -1, -1, 104, - -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, - -1, -1, 117, -1, 119, 48, -1, -1, 51, -1, - 53, 54, 55, 56, 57, -1, -1, 60, -1, -1, - 63, -1, -1, -1, 67, -1, -1, -1, -1, -1, - -1, 74, -1, -1, -1, -1, -1, 80, 81, -1, - 11, -1, -1, 14, -1, -1, 50, -1, -1, -1, - -1, -1, 95, -1, 58, 98, 99, -1, -1, -1, - -1, 104, -1, -1, 68, 69, 70, -1, -1, 112, - 113, 114, -1, -1, 117, 79, 119, 48, -1, -1, - 51, 85, 53, 54, 55, 56, 57, -1, -1, 60, - -1, 95, 63, -1, -1, -1, 67, 101, -1, -1, - -1, 105, 106, 74, -1, -1, -1, 11, -1, 80, - 81, -1, 116, -1, 118, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 95, -1, -1, 98, 99, 11, - -1, -1, -1, 104, -1, -1, -1, -1, -1, 143, - -1, 112, 113, 114, 48, -1, 117, 51, 119, 53, - 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, - -1, -1, -1, 67, -1, -1, 48, -1, -1, 51, - 74, 53, 54, 55, 56, 57, 80, 81, 60, -1, - -1, 63, -1, -1, -1, 67, -1, -1, -1, -1, - -1, 95, 74, -1, 98, 99, 11, -1, 80, 81, - 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, - 114, -1, -1, 117, -1, 119, 98, 99, -1, -1, - -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, - 112, 113, 114, 48, -1, 117, 51, 119, 53, 54, - 55, 56, 57, -1, -1, 60, -1, -1, 63, -1, - -1, 11, 67, -1, -1, -1, -1, -1, -1, 74, - -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, - -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, 99, -1, -1, -1, 48, 104, - -1, 51, -1, 53, 54, 55, 56, 112, 113, 114, - 60, -1, 117, 63, 119, -1, -1, 67, -1, -1, - 48, -1, -1, 51, 74, 53, 54, 55, 56, 57, - 80, 81, 60, -1, -1, 63, -1, -1, 11, 67, - -1, -1, -1, -1, -1, 95, 74, -1, 98, 99, - -1, -1, 80, 81, 104, -1, -1, -1, -1, -1, - 11, -1, 112, 113, 114, -1, -1, 117, -1, 119, - 98, 99, -1, -1, -1, 48, 104, -1, 51, -1, - 53, 54, 55, 56, 112, 113, 114, 60, -1, 117, - 63, 119, -1, -1, 67, -1, -1, 48, -1, -1, - 51, 74, 53, 54, 55, 56, -1, 80, 81, 60, - -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, - -1, -1, -1, 74, -1, 98, 99, -1, -1, 80, - 81, 104, -1, -1, -1, -1, -1, -1, -1, 112, - 113, 114, -1, -1, 117, -1, 119, 98, 99, -1, - 49, 50, -1, 104, -1, -1, -1, -1, -1, 58, - -1, 112, 113, 114, -1, -1, 117, 66, 119, 68, - 69, 70, 71, -1, -1, -1, 75, -1, -1, -1, - 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, - -1, -1, -1, 92, 93, 94, 95, -1, -1, -1, - -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, - -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, - -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, - 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, - 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, - 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, - 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, - 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, - 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, - 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, - -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, - -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, - -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, - -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, - -1, -1, -1, -1, 101, 102, 49, 50, 105, 106, - -1, -1, -1, 110, -1, 58, -1, -1, 115, 116, - -1, 118, -1, 66, -1, 68, 69, 70, 71, 126, - -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, - 83, 84, 85, 86, -1, -1, 143, -1, 145, 92, - 93, 94, 95, -1, -1, -1, -1, -1, 101, 102, - 49, 50, 105, 106, -1, -1, -1, 110, -1, 58, - -1, -1, 115, 116, -1, 118, -1, 66, -1, 68, - 69, 70, 71, 126, -1, -1, 75, -1, -1, -1, - 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, - 143, -1, 145, 92, 93, 94, 95, -1, -1, -1, - -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, - -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, - -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, - 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, - 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, - 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, - 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, - 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, - 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, - 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, 50, -1, 105, 106, -1, -1, -1, 110, - 58, -1, -1, -1, 115, 116, 50, 118, -1, -1, - 68, 69, 70, -1, 58, -1, -1, -1, -1, -1, - -1, 79, -1, -1, 68, 69, 70, 85, 86, -1, - -1, -1, 143, -1, -1, 79, 50, 95, -1, -1, - -1, 85, -1, 101, 58, -1, -1, -1, 106, -1, - -1, 95, -1, -1, 68, 69, 70, 101, 116, -1, - 118, -1, 106, -1, -1, 79, -1, -1, -1, -1, - -1, 85, 116, -1, 118, -1, -1, -1, -1, -1, - -1, 95, -1, -1, -1, 143, -1, 101, -1, 133, - -1, -1, 106, -1, -1, -1, -1, -1, -1, 143, - -1, -1, 116, -1, 118, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 143 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = -{ - 0, 121, 122, 123, 149, 150, 256, 3, 4, 5, - 6, 8, 9, 10, 11, 47, 51, 53, 54, 55, - 59, 63, 64, 72, 73, 74, 80, 81, 87, 89, - 91, 96, 98, 99, 100, 103, 108, 111, 114, 119, - 132, 135, 136, 137, 140, 142, 143, 147, 246, 247, - 255, 11, 48, 51, 53, 54, 55, 56, 57, 60, - 63, 67, 74, 80, 81, 98, 99, 104, 112, 113, - 114, 117, 119, 210, 214, 215, 217, 223, 224, 228, - 229, 234, 235, 236, 237, 0, 49, 50, 58, 66, - 68, 69, 70, 71, 75, 79, 82, 83, 84, 85, - 86, 92, 93, 94, 95, 101, 102, 105, 106, 110, - 115, 116, 118, 126, 143, 153, 155, 156, 158, 161, - 162, 184, 230, 233, 256, 142, 142, 142, 142, 142, - 142, 133, 142, 133, 142, 142, 142, 11, 48, 60, - 112, 212, 228, 229, 234, 133, 142, 142, 142, 133, - 142, 142, 142, 246, 246, 246, 246, 246, 11, 51, - 53, 54, 55, 63, 74, 80, 81, 98, 99, 114, - 119, 214, 244, 246, 10, 11, 73, 91, 128, 132, - 250, 251, 253, 256, 246, 15, 16, 17, 18, 19, - 20, 21, 22, 32, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 141, 142, 143, 6, 8, - 210, 142, 63, 81, 235, 235, 235, 253, 235, 12, - 16, 57, 118, 132, 137, 142, 208, 209, 256, 124, - 10, 11, 91, 127, 254, 10, 11, 91, 124, 253, - 254, 79, 158, 158, 158, 6, 158, 158, 127, 157, - 86, 158, 142, 142, 142, 158, 124, 253, 127, 127, - 127, 158, 158, 142, 158, 161, 185, 158, 158, 167, - 86, 253, 158, 158, 143, 10, 11, 48, 57, 60, - 90, 112, 124, 140, 172, 175, 211, 213, 215, 217, - 223, 228, 229, 234, 243, 244, 256, 214, 243, 243, - 243, 243, 214, 243, 214, 243, 243, 243, 142, 253, - 142, 253, 253, 214, 243, 243, 214, 214, 214, 246, - 243, 243, 144, 125, 144, 253, 146, 125, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 144, - 244, 246, 209, 246, 137, 12, 16, 57, 118, 132, - 137, 208, 256, 208, 209, 208, 209, 208, 208, 14, - 16, 57, 95, 132, 137, 194, 195, 204, 210, 256, - 143, 226, 227, 256, 11, 225, 235, 127, 216, 218, - 158, 155, 124, 253, 253, 253, 253, 150, 124, 246, - 133, 10, 11, 57, 175, 211, 213, 253, 126, 128, - 159, 160, 253, 142, 142, 10, 11, 213, 142, 57, - 210, 253, 154, 253, 124, 126, 127, 128, 200, 124, - 126, 128, 201, 126, 163, 253, 254, 253, 144, 144, - 144, 144, 144, 144, 134, 144, 134, 144, 144, 144, - 246, 243, 134, 144, 144, 144, 134, 144, 144, 144, - 144, 246, 246, 57, 142, 181, 256, 250, 127, 144, - 146, 144, 208, 137, 208, 208, 208, 208, 208, 143, - 208, 95, 210, 204, 208, 208, 144, 14, 125, 12, - 16, 57, 118, 132, 137, 142, 207, 254, 256, 242, - 246, 256, 253, 145, 225, 150, 73, 219, 256, 150, - 124, 125, 125, 125, 145, 231, 125, 144, 10, 11, - 56, 57, 112, 186, 187, 188, 189, 234, 256, 142, - 213, 201, 168, 126, 214, 146, 125, 142, 173, 12, - 137, 174, 164, 246, 210, 12, 16, 57, 118, 132, - 137, 206, 254, 256, 150, 142, 238, 239, 151, 152, - 253, 61, 62, 238, 61, 62, 124, 246, 12, 16, - 57, 90, 118, 132, 137, 142, 165, 190, 192, 254, - 127, 142, 142, 144, 144, 142, 142, 194, 32, 73, - 85, 88, 91, 107, 193, 256, 246, 208, 242, 144, - 210, 207, 144, 144, 181, 14, 204, 137, 207, 207, - 207, 207, 207, 207, 128, 143, 199, 256, 146, 125, - 128, 145, 127, 220, 221, 256, 145, 232, 10, 10, - 10, 150, 255, 126, 253, 189, 253, 134, 125, 207, - 169, 170, 192, 126, 146, 159, 3, 4, 5, 9, - 10, 14, 47, 59, 64, 72, 73, 87, 89, 91, - 96, 100, 103, 108, 111, 132, 135, 136, 140, 142, - 147, 196, 197, 204, 205, 248, 249, 255, 256, 194, - 137, 190, 194, 166, 192, 144, 206, 137, 206, 206, - 206, 206, 206, 142, 143, 145, 176, 145, 240, 256, - 124, 125, 124, 142, 126, 126, 145, 126, 126, 124, - 202, 203, 246, 256, 126, 137, 190, 190, 6, 15, - 16, 17, 18, 19, 20, 21, 22, 32, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 62, 87, 125, 128, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 142, 143, 147, 182, 190, - 190, 190, 190, 127, 142, 143, 193, 128, 199, 201, - 225, 244, 244, 244, 244, 144, 57, 212, 142, 124, - 146, 142, 207, 199, 142, 142, 193, 207, 144, 246, - 242, 246, 92, 93, 94, 112, 116, 222, 229, 252, - 253, 124, 125, 150, 125, 144, 125, 125, 145, 144, - 128, 207, 128, 161, 183, 184, 188, 128, 198, 256, - 171, 192, 199, 201, 158, 142, 133, 133, 212, 133, - 142, 133, 142, 246, 246, 246, 246, 214, 244, 246, - 144, 14, 125, 15, 16, 17, 18, 19, 20, 21, - 22, 32, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 141, 142, 143, 144, 190, 144, 144, - 199, 201, 142, 206, 179, 242, 194, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 85, 86, 87, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, - 147, 241, 238, 152, 243, 243, 202, 145, 125, 190, - 10, 144, 146, 144, 4, 191, 242, 246, 125, 144, - 144, 144, 144, 181, 212, 209, 144, 253, 238, 194, - 199, 194, 194, 142, 146, 125, 116, 252, 116, 252, - 116, 252, 253, 92, 93, 94, 253, 150, 222, 145, - 10, 126, 10, 10, 126, 214, 198, 214, 47, 59, - 64, 96, 100, 103, 132, 135, 136, 137, 140, 142, - 147, 245, 247, 199, 201, 125, 214, 214, 214, 142, - 214, 214, 214, 214, 246, 144, 144, 14, 205, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 144, 244, 246, 181, 144, 142, 181, 125, 180, 194, - 146, 144, 240, 145, 145, 144, 145, 124, 246, 196, - 146, 165, 193, 209, 144, 145, 144, 144, 144, 194, - 252, 252, 252, 252, 252, 252, 145, 144, 125, 144, - 144, 142, 133, 133, 133, 142, 133, 245, 245, 245, - 245, 245, 214, 244, 245, 15, 16, 17, 18, 19, - 20, 21, 22, 32, 129, 130, 131, 132, 135, 136, - 137, 138, 139, 141, 142, 143, 125, 170, 144, 134, - 134, 243, 134, 144, 134, 144, 144, 246, 127, 144, - 146, 142, 177, 166, 194, 144, 181, 145, 202, 144, - 124, 181, 181, 181, 144, 126, 10, 126, 126, 214, - 214, 214, 214, 214, 214, 144, 144, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 144, 244, 246, 171, - 142, 142, 144, 142, 142, 246, 178, 194, 144, 181, - 145, 181, 238, 193, 193, 193, 181, 125, 144, 134, - 134, 134, 144, 134, 245, 127, 144, 146, 244, 244, - 244, 244, 194, 144, 181, 145, 10, 142, 142, 142, - 142, 245, 144, 144, 144, 144, 144, 181, 144, 244, - 244, 244, 244, 181, 193, 126, 144, 144, 144, 144, - 193 -}; - -#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 - - -/* 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 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) @@ -3043,13 +2743,13 @@ do \ else \ { \ yyerror (&yylloc, 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]. @@ -3059,7 +2759,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; \ @@ -3073,12 +2773,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. */ @@ -3088,36 +2803,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; } @@ -3131,73 +2838,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); } @@ -3205,23 +2874,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, ": "); @@ -3234,16 +2891,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++) @@ -3254,50 +2903,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. */ @@ -3311,7 +2952,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -3334,15 +2975,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++) @@ -3358,16 +2992,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; @@ -3397,27 +3023,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: ; } @@ -3440,11 +3066,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 @@ -3452,10 +3078,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 @@ -3505,7 +3127,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; @@ -3572,33 +3194,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 } @@ -3608,66 +3215,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; @@ -3676,9 +3244,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. */ @@ -3757,26 +3325,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 @@ -3784,23 +3352,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 */ @@ -3810,10 +3378,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)); @@ -3842,7 +3410,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, &yylloc); } if (yychar <= YYEOF) @@ -3907,7 +3475,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 @@ -3922,57 +3490,56 @@ yyreduce: switch (yyn) { case 3: -/* Line 1792 of yacc.c */ -#line 423 "dtool/src/cppparser/cppBison.yxx" +#line 424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_expr = (yyvsp[(2) - (2)].u.expr); + current_expr = (yyvsp[0].u.expr); } +#line 3498 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 4: -/* Line 1792 of yacc.c */ -#line 427 "dtool/src/cppparser/cppBison.yxx" +#line 428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_type = (yyvsp[(2) - (2)].u.type); + current_type = (yyvsp[0].u.type); } +#line 3506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 10: -/* Line 1792 of yacc.c */ -#line 445 "dtool/src/cppparser/cppBison.yxx" +#line 446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - delete (yyvsp[(3) - (4)].u.expr); + delete (yyvsp[-1].u.expr); } +#line 3514 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 11: -/* Line 1792 of yacc.c */ -#line 449 "dtool/src/cppparser/cppBison.yxx" +#line 450 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - delete (yyvsp[(3) - (4)].u.expr); + delete (yyvsp[-1].u.expr); } +#line 3522 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 12: -/* Line 1792 of yacc.c */ -#line 461 "dtool/src/cppparser/cppBison.yxx" +#line 462 "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 3531 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 13: -/* Line 1792 of yacc.c */ -#line 466 "dtool/src/cppparser/cppBison.yxx" +#line 467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 3539 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 21: -/* Line 1792 of yacc.c */ -#line 480 "dtool/src/cppparser/cppBison.yxx" +#line 481 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3981,36 +3548,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 3556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 22: -/* Line 1792 of yacc.c */ -#line 493 "dtool/src/cppparser/cppBison.yxx" +#line 494 "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 3569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 23: -/* Line 1792 of yacc.c */ -#line 502 "dtool/src/cppparser/cppBison.yxx" +#line 503 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_published); } +#line 3577 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 24: -/* Line 1792 of yacc.c */ -#line 506 "dtool/src/cppparser/cppBison.yxx" +#line 507 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -4018,621 +3585,621 @@ yyreduce: current_scope->set_current_vis(V_public); } } +#line 3589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 25: -/* Line 1792 of yacc.c */ -#line 514 "dtool/src/cppparser/cppBison.yxx" +#line 515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_protected); } +#line 3597 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 26: -/* Line 1792 of yacc.c */ -#line 518 "dtool/src/cppparser/cppBison.yxx" +#line 519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_private); } +#line 3605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 27: -/* Line 1792 of yacc.c */ -#line 522 "dtool/src/cppparser/cppBison.yxx" +#line 523 "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[(5) - (7)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } - 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 3620 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 28: -/* Line 1792 of yacc.c */ -#line 533 "dtool/src/cppparser/cppBison.yxx" +#line 534 "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[(5) - (9)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); } 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[(7) - (9)])); + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } 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 3645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 29: -/* Line 1792 of yacc.c */ -#line 554 "dtool/src/cppparser/cppBison.yxx" +#line 555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *hasser = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *hasser = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); } - CPPDeclaration *getter = (yyvsp[(7) - (9)].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[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (9)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } if (hasser && getter) { CPPMakeProperty *make_property; - make_property = new CPPMakeProperty((yyvsp[(3) - (9)].u.identifier), + make_property = new CPPMakeProperty((yyvsp[-6].u.identifier), hasser->as_function_group(), getter->as_function_group(), NULL, NULL, - current_scope, (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (9)])); + current_scope, (yylsp[-8]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } +#line 3671 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 30: -/* Line 1792 of yacc.c */ -#line 576 "dtool/src/cppparser/cppBison.yxx" +#line 577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *hasser = (yyvsp[(5) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *hasser = (yyvsp[-8].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[(5) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (13)])); + yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[-8].u.identifier)->get_fully_scoped_name(), (yylsp[-8])); } - CPPDeclaration *getter = (yyvsp[(7) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-6].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[(7) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (13)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); } - CPPDeclaration *setter = (yyvsp[(9) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *setter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid setter: " + (yyvsp[(9) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(9) - (13)])); + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); } - CPPDeclaration *clearer = (yyvsp[(11) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *clearer = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (clearer == (CPPDeclaration *)NULL || clearer->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid clear-function: " + (yyvsp[(11) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(11) - (13)])); + yyerror("Reference to non-existent or invalid clear-function: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } if (hasser && getter && setter && clearer) { CPPMakeProperty *make_property; - make_property = new CPPMakeProperty((yyvsp[(3) - (13)].u.identifier), + make_property = new CPPMakeProperty((yyvsp[-10].u.identifier), hasser->as_function_group(), getter->as_function_group(), setter->as_function_group(), clearer->as_function_group(), - current_scope, (yylsp[(1) - (13)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (13)])); + current_scope, (yylsp[-12]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } +#line 3708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 31: -/* Line 1792 of yacc.c */ -#line 609 "dtool/src/cppparser/cppBison.yxx" +#line 610 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *length_getter = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("reference to non-existent or invalid length method: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("reference to non-existent or invalid length method: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); length_getter = NULL; } - CPPDeclaration *element_getter = (yyvsp[(7) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *element_getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (element_getter == (CPPDeclaration *)NULL || element_getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("reference to non-existent or invalid element method: " + (yyvsp[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("reference to non-existent or invalid element method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); element_getter = NULL; } if (length_getter != (CPPDeclaration *)NULL && element_getter != (CPPDeclaration *)NULL) { - CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[(3) - (9)].u.identifier), + CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[-6].u.identifier), length_getter->as_function_group(), element_getter->as_function_group(), - current_scope, (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[(1) - (9)])); + current_scope, (yylsp[-8]).file); + current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } +#line 3734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 32: -/* Line 1792 of yacc.c */ -#line 631 "dtool/src/cppparser/cppBison.yxx" +#line 632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPExpression::Result result = (yyvsp[(3) - (7)].u.expr)->evaluate(); + CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { - yywarning("static_assert requires a constant expression", (yylsp[(3) - (7)])); + yywarning("static_assert requires a constant expression", (yylsp[-4])); } else if (!result.as_boolean()) { stringstream str; - str << *(yyvsp[(5) - (7)].u.expr); - yywarning("static_assert failed: " + str.str(), (yylsp[(3) - (7)])); + str << *(yyvsp[-2].u.expr); + yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } +#line 3749 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 33: -/* Line 1792 of yacc.c */ -#line 642 "dtool/src/cppparser/cppBison.yxx" +#line 643 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // This alternative version of static_assert was introduced in C++17. - CPPExpression::Result result = (yyvsp[(3) - (5)].u.expr)->evaluate(); + CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { - yywarning("static_assert requires a constant expression", (yylsp[(3) - (5)])); + yywarning("static_assert requires a constant expression", (yylsp[-2])); } else if (!result.as_boolean()) { - yywarning("static_assert failed", (yylsp[(3) - (5)])); + yywarning("static_assert failed", (yylsp[-2])); } } +#line 3763 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 34: -/* Line 1792 of yacc.c */ -#line 655 "dtool/src/cppparser/cppBison.yxx" +#line 656 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } +#line 3773 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 35: -/* Line 1792 of yacc.c */ -#line 661 "dtool/src/cppparser/cppBison.yxx" +#line 662 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete current_scope; pop_scope(); } +#line 3782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 36: -/* Line 1792 of yacc.c */ -#line 670 "dtool/src/cppparser/cppBison.yxx" +#line 671 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } +#line 3790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 37: -/* Line 1792 of yacc.c */ -#line 674 "dtool/src/cppparser/cppBison.yxx" +#line 675 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_extern; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } +#line 3798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 38: -/* Line 1792 of yacc.c */ -#line 678 "dtool/src/cppparser/cppBison.yxx" +#line 679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(3) - (3)].u.integer) | (int)CPPInstance::SC_extern; - if ((yyvsp[(2) - (3)].str) == "C") { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; + if ((yyvsp[-1].str) == "C") { (yyval.u.integer) |= (int)CPPInstance::SC_c_binding; - } else if ((yyvsp[(2) - (3)].str) == "C++") { + } else if ((yyvsp[-1].str) == "C++") { (yyval.u.integer) &= ~(int)CPPInstance::SC_c_binding; } else { - yywarning("Ignoring unknown linkage type \"" + (yyvsp[(2) - (3)].str) + "\"", (yylsp[(2) - (3)])); + yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } +#line 3813 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 39: -/* Line 1792 of yacc.c */ -#line 689 "dtool/src/cppparser/cppBison.yxx" +#line 690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_static; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } +#line 3821 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 40: -/* Line 1792 of yacc.c */ -#line 693 "dtool/src/cppparser/cppBison.yxx" +#line 694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_inline; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } +#line 3829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 41: -/* Line 1792 of yacc.c */ -#line 697 "dtool/src/cppparser/cppBison.yxx" +#line 698 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_virtual; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } +#line 3837 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 42: -/* Line 1792 of yacc.c */ -#line 701 "dtool/src/cppparser/cppBison.yxx" +#line 702 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_explicit; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } +#line 3845 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 43: -/* Line 1792 of yacc.c */ -#line 705 "dtool/src/cppparser/cppBison.yxx" +#line 706 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_register; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } +#line 3853 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 44: -/* Line 1792 of yacc.c */ -#line 709 "dtool/src/cppparser/cppBison.yxx" +#line 710 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_volatile; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } +#line 3861 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 45: -/* Line 1792 of yacc.c */ -#line 713 "dtool/src/cppparser/cppBison.yxx" +#line 714 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_mutable; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } +#line 3869 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 46: -/* Line 1792 of yacc.c */ -#line 717 "dtool/src/cppparser/cppBison.yxx" +#line 718 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_constexpr; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; } +#line 3877 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 47: -/* Line 1792 of yacc.c */ -#line 721 "dtool/src/cppparser/cppBison.yxx" +#line 722 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_blocking; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; } +#line 3885 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 48: -/* Line 1792 of yacc.c */ -#line 725 "dtool/src/cppparser/cppBison.yxx" +#line 726 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_extension; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; } +#line 3893 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 49: -/* Line 1792 of yacc.c */ -#line 729 "dtool/src/cppparser/cppBison.yxx" +#line 730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_thread_local; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; } +#line 3901 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 50: -/* Line 1792 of yacc.c */ -#line 733 "dtool/src/cppparser/cppBison.yxx" +#line 734 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Ignore attribute specifiers for now. - (yyval.u.integer) = (yyvsp[(6) - (6)].u.integer); + (yyval.u.integer) = (yyvsp[0].u.integer); } +#line 3910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 55: -/* Line 1792 of yacc.c */ -#line 751 "dtool/src/cppparser/cppBison.yxx" +#line 752 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { /* multiple_var_declaration adds itself to the scope. */ } +#line 3918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 56: -/* Line 1792 of yacc.c */ -#line 755 "dtool/src/cppparser/cppBison.yxx" +#line 756 "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)])); + current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } +#line 3931 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 57: -/* Line 1792 of yacc.c */ -#line 764 "dtool/src/cppparser/cppBison.yxx" +#line 765 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - 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)); + 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 3943 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 58: -/* Line 1792 of yacc.c */ -#line 772 "dtool/src/cppparser/cppBison.yxx" +#line 773 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - 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)); + 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 3955 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 59: -/* Line 1792 of yacc.c */ -#line 783 "dtool/src/cppparser/cppBison.yxx" +#line 784 "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[(2) - (2)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (2)].u.integer)); + push_storage_class((yyvsp[-1].u.integer)); } +#line 3970 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 60: -/* Line 1792 of yacc.c */ -#line 794 "dtool/src/cppparser/cppBison.yxx" +#line 795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 3978 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 61: -/* Line 1792 of yacc.c */ -#line 798 "dtool/src/cppparser/cppBison.yxx" +#line 799 "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[(3) - (3)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (3)].u.integer)); + push_storage_class((yyvsp[-2].u.integer)); } +#line 3993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 62: -/* Line 1792 of yacc.c */ -#line 809 "dtool/src/cppparser/cppBison.yxx" +#line 810 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 4001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 63: -/* Line 1792 of yacc.c */ -#line 820 "dtool/src/cppparser/cppBison.yxx" +#line 821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].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)])); + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } +#line 4013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 64: -/* Line 1792 of yacc.c */ -#line 828 "dtool/src/cppparser/cppBison.yxx" +#line 829 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].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)])); + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } +#line 4025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 65: -/* Line 1792 of yacc.c */ -#line 839 "dtool/src/cppparser/cppBison.yxx" +#line 840 "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), + (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) - (2)]).file); - inst->set_initializer((yyvsp[(2) - (2)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } +#line 4038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 66: -/* Line 1792 of yacc.c */ -#line 848 "dtool/src/cppparser/cppBison.yxx" +#line 849 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].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)])); + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } +#line 4051 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 67: -/* Line 1792 of yacc.c */ -#line 861 "dtool/src/cppparser/cppBison.yxx" +#line 862 "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[(2) - (2)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (2)].u.integer)); + push_storage_class((yyvsp[-1].u.integer)); } +#line 4066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 68: -/* Line 1792 of yacc.c */ -#line 872 "dtool/src/cppparser/cppBison.yxx" +#line 873 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 4074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 69: -/* Line 1792 of yacc.c */ -#line 876 "dtool/src/cppparser/cppBison.yxx" +#line 877 "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[(3) - (3)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (3)].u.integer)); + push_storage_class((yyvsp[-2].u.integer)); } +#line 4089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 70: -/* Line 1792 of yacc.c */ -#line 887 "dtool/src/cppparser/cppBison.yxx" +#line 888 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 4097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 71: -/* Line 1792 of yacc.c */ -#line 891 "dtool/src/cppparser/cppBison.yxx" +#line 892 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - 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(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(2) - (3)])); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } } } +#line 4113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 72: -/* Line 1792 of yacc.c */ -#line 906 "dtool/src/cppparser/cppBison.yxx" +#line 907 "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(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-1].u.inst_ident), current_scope, (yylsp[-1]).file); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } +#line 4123 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 73: -/* Line 1792 of yacc.c */ -#line 912 "dtool/src/cppparser/cppBison.yxx" +#line 913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-3].u.inst_ident), current_scope, (yylsp[-3]).file); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-3])); } +#line 4133 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 74: -/* Line 1792 of yacc.c */ -#line 921 "dtool/src/cppparser/cppBison.yxx" +#line 922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); + (yyvsp[-1].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(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-1].u.inst_ident), current_scope, (yylsp[-1]).file); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } +#line 4144 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 75: -/* Line 1792 of yacc.c */ -#line 928 "dtool/src/cppparser/cppBison.yxx" +#line 929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); + (yyvsp[-3].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(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-3].u.inst_ident), current_scope, (yylsp[-3]).file); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-3])); } +#line 4155 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 76: -/* Line 1792 of yacc.c */ -#line 940 "dtool/src/cppparser/cppBison.yxx" +#line 941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 4163 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 77: -/* Line 1792 of yacc.c */ -#line 944 "dtool/src/cppparser/cppBison.yxx" +#line 945 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type; - if ((yyvsp[(1) - (6)].u.identifier)->get_simple_name() == current_scope->get_simple_name() || - (yyvsp[(1) - (6)].u.identifier)->get_simple_name() == string("~") + current_scope->get_simple_name()) { + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name() || + (yyvsp[-5].u.identifier)->get_simple_name() == string("~") + 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. - yywarning("function has no return type, assuming int", (yylsp[(1) - (6)])); + yywarning("function has no return type, assuming int", (yylsp[-5])); type = new CPPSimpleType(CPPSimpleType::T_int); } pop_scope(); - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[(1) - (6)].u.identifier)); - ii->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); + 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[(1) - (6)]).file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } +#line 4187 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 78: -/* Line 1792 of yacc.c */ -#line 964 "dtool/src/cppparser/cppBison.yxx" +#line 965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 4195 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 79: -/* Line 1792 of yacc.c */ -#line 968 "dtool/src/cppparser/cppBison.yxx" +#line 969 "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()) { + 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 { @@ -4641,111 +4208,111 @@ yyreduce: 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)); + 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[(1) - (6)]).file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } +#line 4217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 80: -/* Line 1792 of yacc.c */ -#line 991 "dtool/src/cppparser/cppBison.yxx" +#line 992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 4225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 81: -/* Line 1792 of yacc.c */ -#line 995 "dtool/src/cppparser/cppBison.yxx" +#line 996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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)])); - delete (yyvsp[(2) - (7)].u.identifier); + new CPPIdentifier("~" + (yyvsp[-5].u.identifier)->get_simple_name(), (yylsp[-5])); + 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 4248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 82: -/* Line 1792 of yacc.c */ -#line 1021 "dtool/src/cppparser/cppBison.yxx" +#line 1022 "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 4256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 83: -/* Line 1792 of yacc.c */ -#line 1025 "dtool/src/cppparser/cppBison.yxx" +#line 1026 "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); if (type == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (11)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (11)])); + yyerror(string("internal error resolving type ") + (yyvsp[-10].u.identifier)->get_fully_scoped_name(), (yylsp[-10])); } assert(type != NULL); - CPPInstanceIdentifier *ii = (yyvsp[(4) - (11)].u.inst_ident); + CPPInstanceIdentifier *ii = (yyvsp[-7].u.inst_ident); ii->add_modifier(IIT_pointer); - ii->add_func_modifier((yyvsp[(8) - (11)].u.param_list), (yyvsp[(10) - (11)].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (11)]).file); + ii->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer)); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-10]).file); } +#line 4274 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 84: -/* Line 1792 of yacc.c */ -#line 1039 "dtool/src/cppparser/cppBison.yxx" +#line 1040 "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 4282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 85: -/* Line 1792 of yacc.c */ -#line 1043 "dtool/src/cppparser/cppBison.yxx" +#line 1044 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - CPPType *type = (yyvsp[(1) - (12)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (12)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (12)])); + yyerror(string("internal error resolving type ") + (yyvsp[-11].u.identifier)->get_fully_scoped_name(), (yylsp[-11])); } assert(type != NULL); - CPPInstanceIdentifier *ii = (yyvsp[(5) - (12)].u.inst_ident); - ii->add_scoped_pointer_modifier((yyvsp[(3) - (12)].u.identifier)); - ii->add_func_modifier((yyvsp[(9) - (12)].u.param_list), (yyvsp[(11) - (12)].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (12)]).file); + CPPInstanceIdentifier *ii = (yyvsp[-7].u.inst_ident); + ii->add_scoped_pointer_modifier((yyvsp[-9].u.identifier)); + ii->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer)); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-11]).file); } +#line 4300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 86: -/* Line 1792 of yacc.c */ -#line 1059 "dtool/src/cppparser/cppBison.yxx" +#line 1060 "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 4310 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 87: -/* Line 1792 of yacc.c */ -#line 1065 "dtool/src/cppparser/cppBison.yxx" +#line 1066 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (8)].u.identifier) != NULL) { + if ((yyvsp[-7].u.identifier) != NULL) { pop_scope(); } @@ -4758,3861 +4325,3909 @@ 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[(2) - (8)])); + ident = new CPPIdentifier(name, (yylsp[-6])); } 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 4339 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 88: -/* Line 1792 of yacc.c */ -#line 1090 "dtool/src/cppparser/cppBison.yxx" +#line 1091 "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 4349 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 89: -/* Line 1792 of yacc.c */ -#line 1096 "dtool/src/cppparser/cppBison.yxx" +#line 1097 "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[(4) - (9)])); + ident = new CPPIdentifier("operator typecast", (yylsp[-5])); } 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 4369 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 90: -/* Line 1792 of yacc.c */ -#line 1116 "dtool/src/cppparser/cppBison.yxx" +#line 1117 "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 4383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 91: -/* Line 1792 of yacc.c */ -#line 1129 "dtool/src/cppparser/cppBison.yxx" +#line 1130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } +#line 4391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 92: -/* Line 1792 of yacc.c */ -#line 1133 "dtool/src/cppparser/cppBison.yxx" +#line 1134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_const_method; } +#line 4399 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 93: -/* Line 1792 of yacc.c */ -#line 1137 "dtool/src/cppparser/cppBison.yxx" +#line 1138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; } +#line 4407 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 94: -/* Line 1792 of yacc.c */ -#line 1141 "dtool/src/cppparser/cppBison.yxx" +#line 1142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_final; } +#line 4415 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 95: -/* Line 1792 of yacc.c */ -#line 1145 "dtool/src/cppparser/cppBison.yxx" +#line 1146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_override; } +#line 4423 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 96: -/* Line 1792 of yacc.c */ -#line 1149 "dtool/src/cppparser/cppBison.yxx" +#line 1150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Used for lambdas, currently ignored. (yyval.u.integer) = 0; } +#line 4432 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 97: -/* Line 1792 of yacc.c */ -#line 1154 "dtool/src/cppparser/cppBison.yxx" +#line 1155 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (4)].u.integer); + (yyval.u.integer) = (yyvsp[-3].u.integer); } +#line 4440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 98: -/* Line 1792 of yacc.c */ -#line 1158 "dtool/src/cppparser/cppBison.yxx" +#line 1159 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (5)].u.integer); + (yyval.u.integer) = (yyvsp[-4].u.integer); } +#line 4448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 99: -/* Line 1792 of yacc.c */ -#line 1169 "dtool/src/cppparser/cppBison.yxx" +#line 1170 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "!"; } +#line 4456 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 100: -/* Line 1792 of yacc.c */ -#line 1173 "dtool/src/cppparser/cppBison.yxx" +#line 1174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "~"; } +#line 4464 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 101: -/* Line 1792 of yacc.c */ -#line 1177 "dtool/src/cppparser/cppBison.yxx" +#line 1178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "*"; } +#line 4472 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 102: -/* Line 1792 of yacc.c */ -#line 1181 "dtool/src/cppparser/cppBison.yxx" +#line 1182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "/"; } +#line 4480 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 103: -/* Line 1792 of yacc.c */ -#line 1185 "dtool/src/cppparser/cppBison.yxx" +#line 1186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "%"; } +#line 4488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 104: -/* Line 1792 of yacc.c */ -#line 1189 "dtool/src/cppparser/cppBison.yxx" +#line 1190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "+"; } +#line 4496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 105: -/* Line 1792 of yacc.c */ -#line 1193 "dtool/src/cppparser/cppBison.yxx" +#line 1194 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "-"; } +#line 4504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 106: -/* Line 1792 of yacc.c */ -#line 1197 "dtool/src/cppparser/cppBison.yxx" +#line 1198 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "|"; } +#line 4512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 107: -/* Line 1792 of yacc.c */ -#line 1201 "dtool/src/cppparser/cppBison.yxx" +#line 1202 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&"; } +#line 4520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 108: -/* Line 1792 of yacc.c */ -#line 1205 "dtool/src/cppparser/cppBison.yxx" +#line 1206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "^"; } +#line 4528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 109: -/* Line 1792 of yacc.c */ -#line 1209 "dtool/src/cppparser/cppBison.yxx" +#line 1210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "||"; } +#line 4536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 110: -/* Line 1792 of yacc.c */ -#line 1213 "dtool/src/cppparser/cppBison.yxx" +#line 1214 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&&"; } +#line 4544 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 111: -/* Line 1792 of yacc.c */ -#line 1217 "dtool/src/cppparser/cppBison.yxx" +#line 1218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "=="; } +#line 4552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 112: -/* Line 1792 of yacc.c */ -#line 1221 "dtool/src/cppparser/cppBison.yxx" +#line 1222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "!="; } +#line 4560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 113: -/* Line 1792 of yacc.c */ -#line 1225 "dtool/src/cppparser/cppBison.yxx" +#line 1226 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<="; } +#line 4568 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 114: -/* Line 1792 of yacc.c */ -#line 1229 "dtool/src/cppparser/cppBison.yxx" +#line 1230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">="; } +#line 4576 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 115: -/* Line 1792 of yacc.c */ -#line 1233 "dtool/src/cppparser/cppBison.yxx" +#line 1234 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<"; } +#line 4584 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 116: -/* Line 1792 of yacc.c */ -#line 1237 "dtool/src/cppparser/cppBison.yxx" +#line 1238 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">"; } +#line 4592 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 117: -/* Line 1792 of yacc.c */ -#line 1241 "dtool/src/cppparser/cppBison.yxx" +#line 1242 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<<"; } +#line 4600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 118: -/* Line 1792 of yacc.c */ -#line 1245 "dtool/src/cppparser/cppBison.yxx" +#line 1246 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">>"; } +#line 4608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 119: -/* Line 1792 of yacc.c */ -#line 1249 "dtool/src/cppparser/cppBison.yxx" +#line 1250 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "="; } +#line 4616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 120: -/* Line 1792 of yacc.c */ -#line 1253 "dtool/src/cppparser/cppBison.yxx" +#line 1254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ","; } +#line 4624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 121: -/* Line 1792 of yacc.c */ -#line 1257 "dtool/src/cppparser/cppBison.yxx" +#line 1258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "++"; } +#line 4632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 122: -/* Line 1792 of yacc.c */ -#line 1261 "dtool/src/cppparser/cppBison.yxx" +#line 1262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "--"; } +#line 4640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 123: -/* Line 1792 of yacc.c */ -#line 1265 "dtool/src/cppparser/cppBison.yxx" +#line 1266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "*="; } +#line 4648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 124: -/* Line 1792 of yacc.c */ -#line 1269 "dtool/src/cppparser/cppBison.yxx" +#line 1270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "/="; } +#line 4656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 125: -/* Line 1792 of yacc.c */ -#line 1273 "dtool/src/cppparser/cppBison.yxx" +#line 1274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "%="; } +#line 4664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 126: -/* Line 1792 of yacc.c */ -#line 1277 "dtool/src/cppparser/cppBison.yxx" +#line 1278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "+="; } +#line 4672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 127: -/* Line 1792 of yacc.c */ -#line 1281 "dtool/src/cppparser/cppBison.yxx" +#line 1282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "-="; } +#line 4680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 128: -/* Line 1792 of yacc.c */ -#line 1285 "dtool/src/cppparser/cppBison.yxx" +#line 1286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "|="; } +#line 4688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 129: -/* Line 1792 of yacc.c */ -#line 1289 "dtool/src/cppparser/cppBison.yxx" +#line 1290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&="; } +#line 4696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 130: -/* Line 1792 of yacc.c */ -#line 1293 "dtool/src/cppparser/cppBison.yxx" +#line 1294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "^="; } +#line 4704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 131: -/* Line 1792 of yacc.c */ -#line 1297 "dtool/src/cppparser/cppBison.yxx" +#line 1298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<<="; } +#line 4712 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 132: -/* Line 1792 of yacc.c */ -#line 1301 "dtool/src/cppparser/cppBison.yxx" +#line 1302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">>="; } +#line 4720 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 133: -/* Line 1792 of yacc.c */ -#line 1305 "dtool/src/cppparser/cppBison.yxx" +#line 1306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "->"; } +#line 4728 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 134: -/* Line 1792 of yacc.c */ -#line 1309 "dtool/src/cppparser/cppBison.yxx" +#line 1310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "[]"; } +#line 4736 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 135: -/* Line 1792 of yacc.c */ -#line 1313 "dtool/src/cppparser/cppBison.yxx" +#line 1314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "()"; } +#line 4744 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 136: -/* Line 1792 of yacc.c */ -#line 1317 "dtool/src/cppparser/cppBison.yxx" +#line 1318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "new"; } +#line 4752 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 137: -/* Line 1792 of yacc.c */ -#line 1321 "dtool/src/cppparser/cppBison.yxx" +#line 1322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "delete"; } +#line 4760 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 140: -/* Line 1792 of yacc.c */ -#line 1333 "dtool/src/cppparser/cppBison.yxx" +#line 1334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope(new CPPTemplateScope(current_scope)); } +#line 4768 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 141: -/* Line 1792 of yacc.c */ -#line 1337 "dtool/src/cppparser/cppBison.yxx" +#line 1338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } +#line 4776 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 145: -/* Line 1792 of yacc.c */ -#line 1350 "dtool/src/cppparser/cppBison.yxx" +#line 1351 "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)); + ts->add_template_parameter((yyvsp[0].u.decl)); } +#line 4786 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 146: -/* Line 1792 of yacc.c */ -#line 1356 "dtool/src/cppparser/cppBison.yxx" +#line 1357 "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)); + ts->add_template_parameter((yyvsp[0].u.decl)); } +#line 4796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 147: -/* Line 1792 of yacc.c */ -#line 1365 "dtool/src/cppparser/cppBison.yxx" +#line 1366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); } +#line 4804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 148: -/* Line 1792 of yacc.c */ -#line 1369 "dtool/src/cppparser/cppBison.yxx" +#line 1370 "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.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); } +#line 4812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 149: -/* Line 1792 of yacc.c */ -#line 1373 "dtool/src/cppparser/cppBison.yxx" +#line 1374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); } +#line 4820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 150: -/* Line 1792 of yacc.c */ -#line 1377 "dtool/src/cppparser/cppBison.yxx" +#line 1378 "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.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); } +#line 4828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 151: -/* Line 1792 of yacc.c */ -#line 1381 "dtool/src/cppparser/cppBison.yxx" +#line 1382 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - 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)); + 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 4838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 152: -/* Line 1792 of yacc.c */ -#line 1387 "dtool/src/cppparser/cppBison.yxx" +#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (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)); + (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 4849 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 153: -/* Line 1792 of yacc.c */ -#line 1397 "dtool/src/cppparser/cppBison.yxx" +#line 1398 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 4857 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 154: -/* Line 1792 of yacc.c */ -#line 1401 "dtool/src/cppparser/cppBison.yxx" +#line 1402 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - yywarning("Not a type: " + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + 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 4866 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 155: -/* Line 1792 of yacc.c */ -#line 1406 "dtool/src/cppparser/cppBison.yxx" +#line 1407 "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); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != NULL); } +#line 4878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 156: -/* Line 1792 of yacc.c */ -#line 1418 "dtool/src/cppparser/cppBison.yxx" +#line 1419 "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 4886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 157: -/* Line 1792 of yacc.c */ -#line 1422 "dtool/src/cppparser/cppBison.yxx" +#line 1423 "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)])); + ident = new CPPIdentifier("operator "+(yyvsp[0].str), (yylsp[0])); } 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 4904 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 158: -/* Line 1792 of yacc.c */ -#line 1436 "dtool/src/cppparser/cppBison.yxx" +#line 1437 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A C++11 literal operator. - if (!(yyvsp[(2) - (3)].str).empty()) { - yyerror("expected empty string", (yylsp[(2) - (3)])); + if (!(yyvsp[-1].str).empty()) { + yyerror("expected empty string", (yylsp[-1])); } - CPPIdentifier *ident = (yyvsp[(1) - (3)].u.identifier); + CPPIdentifier *ident = (yyvsp[-2].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator \"\" "+(yyvsp[(3) - (3)].u.identifier)->get_simple_name(), (yylsp[(3) - (3)])); + ident = new CPPIdentifier("operator \"\" "+(yyvsp[0].u.identifier)->get_simple_name(), (yylsp[0])); } else { - ident->_names.push_back("operator \"\" "+(yyvsp[(3) - (3)].u.identifier)->get_simple_name()); + ident->_names.push_back("operator \"\" "+(yyvsp[0].u.identifier)->get_simple_name()); } (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } +#line 4923 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 159: -/* Line 1792 of yacc.c */ -#line 1451 "dtool/src/cppparser/cppBison.yxx" +#line 1452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 4932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 160: -/* Line 1792 of yacc.c */ -#line 1456 "dtool/src/cppparser/cppBison.yxx" +#line 1457 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 4941 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 161: -/* Line 1792 of yacc.c */ -#line 1461 "dtool/src/cppparser/cppBison.yxx" +#line 1462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 4950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 162: -/* Line 1792 of yacc.c */ -#line 1466 "dtool/src/cppparser/cppBison.yxx" +#line 1467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 4959 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 163: -/* Line 1792 of yacc.c */ -#line 1471 "dtool/src/cppparser/cppBison.yxx" +#line 1472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 4968 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 164: -/* Line 1792 of yacc.c */ -#line 1476 "dtool/src/cppparser/cppBison.yxx" +#line 1477 "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_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 4977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 165: -/* Line 1792 of yacc.c */ -#line 1481 "dtool/src/cppparser/cppBison.yxx" +#line 1482 "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[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 4986 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 166: -/* Line 1792 of yacc.c */ -#line 1486 "dtool/src/cppparser/cppBison.yxx" +#line 1487 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } +#line 4995 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 167: -/* Line 1792 of yacc.c */ -#line 1491 "dtool/src/cppparser/cppBison.yxx" +#line 1492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(1) - (2)].u.inst_ident)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 5003 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 168: -/* Line 1792 of yacc.c */ -#line 1495 "dtool/src/cppparser/cppBison.yxx" +#line 1496 "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 5021 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 169: -/* Line 1792 of yacc.c */ -#line 1513 "dtool/src/cppparser/cppBison.yxx" +#line 1514 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // This is handled a bit awkwardly right now. Ideally it'd be wrapped // up in the instance_identifier rule, but then more needs to happen in // order to avoid shift/reduce conflicts. - if ((yyvsp[(2) - (2)].u.type) != NULL) { - (yyvsp[(1) - (2)].u.inst_ident)->add_trailing_return_type((yyvsp[(2) - (2)].u.type)); + if ((yyvsp[0].u.type) != NULL) { + (yyvsp[-1].u.inst_ident)->add_trailing_return_type((yyvsp[0].u.type)); } - (yyval.u.inst_ident) = (yyvsp[(1) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } +#line 5035 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 170: -/* Line 1792 of yacc.c */ -#line 1523 "dtool/src/cppparser/cppBison.yxx" +#line 1524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Bitfield definition. - (yyvsp[(1) - (3)].u.inst_ident)->_bit_width = (yyvsp[(3) - (3)].u.integer); - (yyval.u.inst_ident) = (yyvsp[(1) - (3)].u.inst_ident); + (yyvsp[-2].u.inst_ident)->_bit_width = (yyvsp[0].u.integer); + (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); } +#line 5045 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 171: -/* Line 1792 of yacc.c */ -#line 1533 "dtool/src/cppparser/cppBison.yxx" +#line 1534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = NULL; } +#line 5053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 172: -/* Line 1792 of yacc.c */ -#line 1537 "dtool/src/cppparser/cppBison.yxx" +#line 1538 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(3) - (3)].u.inst_ident)->unroll_type((yyvsp[(2) - (3)].u.type)); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 5061 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 173: -/* Line 1792 of yacc.c */ -#line 1541 "dtool/src/cppparser/cppBison.yxx" +#line 1542 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(4) - (4)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.type) = (yyvsp[(4) - (4)].u.inst_ident)->unroll_type((yyvsp[(3) - (4)].u.type)); + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 5070 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 174: -/* Line 1792 of yacc.c */ -#line 1550 "dtool/src/cppparser/cppBison.yxx" +#line 1551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; } +#line 5078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 175: -/* Line 1792 of yacc.c */ -#line 1554 "dtool/src/cppparser/cppBison.yxx" +#line 1555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5087 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 176: -/* Line 1792 of yacc.c */ -#line 1559 "dtool/src/cppparser/cppBison.yxx" +#line 1560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.param_list) = (yyvsp[0].u.param_list); } +#line 5095 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 177: -/* Line 1792 of yacc.c */ -#line 1563 "dtool/src/cppparser/cppBison.yxx" +#line 1564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); + (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5104 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 178: -/* Line 1792 of yacc.c */ -#line 1568 "dtool/src/cppparser/cppBison.yxx" +#line 1569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); + (yyval.u.param_list) = (yyvsp[-1].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 179: -/* Line 1792 of yacc.c */ -#line 1576 "dtool/src/cppparser/cppBison.yxx" +#line 1577 "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.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 180: -/* Line 1792 of yacc.c */ -#line 1581 "dtool/src/cppparser/cppBison.yxx" +#line 1582 "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.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5131 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 181: -/* Line 1792 of yacc.c */ -#line 1589 "dtool/src/cppparser/cppBison.yxx" +#line 1590 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; } +#line 5139 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 182: -/* Line 1792 of yacc.c */ -#line 1593 "dtool/src/cppparser/cppBison.yxx" +#line 1594 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 183: -/* Line 1792 of yacc.c */ -#line 1598 "dtool/src/cppparser/cppBison.yxx" +#line 1599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.param_list) = (yyvsp[0].u.param_list); } +#line 5156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 184: -/* Line 1792 of yacc.c */ -#line 1602 "dtool/src/cppparser/cppBison.yxx" +#line 1603 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); + (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5165 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 185: -/* Line 1792 of yacc.c */ -#line 1607 "dtool/src/cppparser/cppBison.yxx" +#line 1608 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); + (yyval.u.param_list) = (yyvsp[-1].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5174 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 186: -/* Line 1792 of yacc.c */ -#line 1615 "dtool/src/cppparser/cppBison.yxx" +#line 1616 "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.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5183 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 187: -/* Line 1792 of yacc.c */ -#line 1620 "dtool/src/cppparser/cppBison.yxx" +#line 1621 "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.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5192 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 188: -/* Line 1792 of yacc.c */ -#line 1628 "dtool/src/cppparser/cppBison.yxx" +#line 1629 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 189: -/* Line 1792 of yacc.c */ -#line 1632 "dtool/src/cppparser/cppBison.yxx" +#line 1633 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 5208 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 190: -/* Line 1792 of yacc.c */ -#line 1639 "dtool/src/cppparser/cppBison.yxx" +#line 1640 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5216 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 191: -/* Line 1792 of yacc.c */ -#line 1643 "dtool/src/cppparser/cppBison.yxx" +#line 1644 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 5224 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 192: -/* Line 1792 of yacc.c */ -#line 1650 "dtool/src/cppparser/cppBison.yxx" +#line 1651 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5232 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 193: -/* Line 1792 of yacc.c */ -#line 1654 "dtool/src/cppparser/cppBison.yxx" +#line 1655 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 194: -/* Line 1792 of yacc.c */ -#line 1658 "dtool/src/cppparser/cppBison.yxx" +#line 1659 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 195: -/* Line 1792 of yacc.c */ -#line 1662 "dtool/src/cppparser/cppBison.yxx" +#line 1663 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); } +#line 5256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 196: -/* Line 1792 of yacc.c */ -#line 1666 "dtool/src/cppparser/cppBison.yxx" +#line 1667 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); } +#line 5264 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 197: -/* Line 1792 of yacc.c */ -#line 1673 "dtool/src/cppparser/cppBison.yxx" +#line 1674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5272 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 198: -/* Line 1792 of yacc.c */ -#line 1677 "dtool/src/cppparser/cppBison.yxx" +#line 1678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5280 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 199: -/* Line 1792 of yacc.c */ -#line 1681 "dtool/src/cppparser/cppBison.yxx" +#line 1682 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 5288 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 200: -/* Line 1792 of yacc.c */ -#line 1685 "dtool/src/cppparser/cppBison.yxx" +#line 1686 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); } +#line 5296 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 201: -/* Line 1792 of yacc.c */ -#line 1689 "dtool/src/cppparser/cppBison.yxx" +#line 1690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); } +#line 5304 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 202: -/* Line 1792 of yacc.c */ -#line 1693 "dtool/src/cppparser/cppBison.yxx" +#line 1694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 206: -/* Line 1792 of yacc.c */ -#line 1706 "dtool/src/cppparser/cppBison.yxx" +#line 1707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } +#line 5319 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 210: -/* Line 1792 of yacc.c */ -#line 1715 "dtool/src/cppparser/cppBison.yxx" +#line 1716 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (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)); + (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 5328 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 211: -/* Line 1792 of yacc.c */ -#line 1720 "dtool/src/cppparser/cppBison.yxx" +#line 1721 "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 5338 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 212: -/* Line 1792 of yacc.c */ -#line 1726 "dtool/src/cppparser/cppBison.yxx" +#line 1727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(4) - (5)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.instance) = new CPPInstance((yyvsp[(3) - (5)].u.type), (yyvsp[(4) - (5)].u.inst_ident), 0, (yylsp[(3) - (5)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(5) - (5)].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[-2]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } +#line 5348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 213: -/* Line 1792 of yacc.c */ -#line 1732 "dtool/src/cppparser/cppBison.yxx" +#line 1733 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.instance) = (yyvsp[(2) - (2)].u.instance); + (yyval.u.instance) = (yyvsp[0].u.instance); } +#line 5356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 214: -/* Line 1792 of yacc.c */ -#line 1743 "dtool/src/cppparser/cppBison.yxx" +#line 1744 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.instance) = (yyvsp[(1) - (1)].u.instance); + (yyval.u.instance) = (yyvsp[0].u.instance); } +#line 5364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 215: -/* Line 1792 of yacc.c */ -#line 1747 "dtool/src/cppparser/cppBison.yxx" +#line 1748 "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 5375 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 216: -/* Line 1792 of yacc.c */ -#line 1757 "dtool/src/cppparser/cppBison.yxx" +#line 1758 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 217: -/* Line 1792 of yacc.c */ -#line 1761 "dtool/src/cppparser/cppBison.yxx" +#line 1762 "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 5391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 218: -/* Line 1792 of yacc.c */ -#line 1765 "dtool/src/cppparser/cppBison.yxx" +#line 1766 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5400 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 219: -/* Line 1792 of yacc.c */ -#line 1770 "dtool/src/cppparser/cppBison.yxx" +#line 1771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 220: -/* Line 1792 of yacc.c */ -#line 1775 "dtool/src/cppparser/cppBison.yxx" +#line 1776 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5418 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 221: -/* Line 1792 of yacc.c */ -#line 1780 "dtool/src/cppparser/cppBison.yxx" +#line 1781 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 222: -/* Line 1792 of yacc.c */ -#line 1785 "dtool/src/cppparser/cppBison.yxx" +#line 1786 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 223: -/* Line 1792 of yacc.c */ -#line 1790 "dtool/src/cppparser/cppBison.yxx" +#line 1791 "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_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5445 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 224: -/* Line 1792 of yacc.c */ -#line 1795 "dtool/src/cppparser/cppBison.yxx" +#line 1796 "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[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5454 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 225: -/* Line 1792 of yacc.c */ -#line 1803 "dtool/src/cppparser/cppBison.yxx" +#line 1804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5462 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 226: -/* Line 1792 of yacc.c */ -#line 1807 "dtool/src/cppparser/cppBison.yxx" +#line 1808 "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 5470 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 227: -/* Line 1792 of yacc.c */ -#line 1811 "dtool/src/cppparser/cppBison.yxx" +#line 1812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5479 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 228: -/* Line 1792 of yacc.c */ -#line 1816 "dtool/src/cppparser/cppBison.yxx" +#line 1817 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 229: -/* Line 1792 of yacc.c */ -#line 1821 "dtool/src/cppparser/cppBison.yxx" +#line 1822 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 230: -/* Line 1792 of yacc.c */ -#line 1826 "dtool/src/cppparser/cppBison.yxx" +#line 1827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 231: -/* Line 1792 of yacc.c */ -#line 1831 "dtool/src/cppparser/cppBison.yxx" +#line 1832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5515 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 232: -/* Line 1792 of yacc.c */ -#line 1836 "dtool/src/cppparser/cppBison.yxx" +#line 1837 "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_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 233: -/* Line 1792 of yacc.c */ -#line 1841 "dtool/src/cppparser/cppBison.yxx" +#line 1842 "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[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5533 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 234: -/* Line 1792 of yacc.c */ -#line 1846 "dtool/src/cppparser/cppBison.yxx" +#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); + (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[(5) - (7)].u.param_list), (yyvsp[(7) - (7)].u.integer)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } +#line 5543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 235: -/* Line 1792 of yacc.c */ -#line 1852 "dtool/src/cppparser/cppBison.yxx" +#line 1853 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } +#line 5552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 236: -/* Line 1792 of yacc.c */ -#line 1860 "dtool/src/cppparser/cppBison.yxx" +#line 1861 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 237: -/* Line 1792 of yacc.c */ -#line 1864 "dtool/src/cppparser/cppBison.yxx" +#line 1865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 238: -/* Line 1792 of yacc.c */ -#line 1869 "dtool/src/cppparser/cppBison.yxx" +#line 1870 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 239: -/* Line 1792 of yacc.c */ -#line 1874 "dtool/src/cppparser/cppBison.yxx" +#line 1875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5587 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 240: -/* Line 1792 of yacc.c */ -#line 1879 "dtool/src/cppparser/cppBison.yxx" +#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5596 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 241: -/* Line 1792 of yacc.c */ -#line 1884 "dtool/src/cppparser/cppBison.yxx" +#line 1885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 242: -/* Line 1792 of yacc.c */ -#line 1889 "dtool/src/cppparser/cppBison.yxx" +#line 1890 "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_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 243: -/* Line 1792 of yacc.c */ -#line 1894 "dtool/src/cppparser/cppBison.yxx" +#line 1895 "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[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 244: -/* Line 1792 of yacc.c */ -#line 1902 "dtool/src/cppparser/cppBison.yxx" +#line 1903 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5631 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 245: -/* Line 1792 of yacc.c */ -#line 1906 "dtool/src/cppparser/cppBison.yxx" +#line 1907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 246: -/* Line 1792 of yacc.c */ -#line 1911 "dtool/src/cppparser/cppBison.yxx" +#line 1912 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5649 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 247: -/* Line 1792 of yacc.c */ -#line 1916 "dtool/src/cppparser/cppBison.yxx" +#line 1917 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5658 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 248: -/* Line 1792 of yacc.c */ -#line 1921 "dtool/src/cppparser/cppBison.yxx" +#line 1922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 249: -/* Line 1792 of yacc.c */ -#line 1926 "dtool/src/cppparser/cppBison.yxx" +#line 1927 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 250: -/* Line 1792 of yacc.c */ -#line 1931 "dtool/src/cppparser/cppBison.yxx" +#line 1932 "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_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5685 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 251: -/* Line 1792 of yacc.c */ -#line 1936 "dtool/src/cppparser/cppBison.yxx" +#line 1937 "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[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5694 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 252: -/* Line 1792 of yacc.c */ -#line 1941 "dtool/src/cppparser/cppBison.yxx" +#line 1942 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(2) - (5)].u.param_list), (yyvsp[(4) - (5)].u.integer), (yyvsp[(5) - (5)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 253: -/* Line 1792 of yacc.c */ -#line 1947 "dtool/src/cppparser/cppBison.yxx" +#line 1948 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (9)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(6) - (9)].u.param_list), (yyvsp[(8) - (9)].u.integer), (yyvsp[(9) - (9)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 254: -/* Line 1792 of yacc.c */ -#line 1954 "dtool/src/cppparser/cppBison.yxx" +#line 1955 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (9)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(6) - (9)].u.param_list), (yyvsp[(8) - (9)].u.integer), (yyvsp[(9) - (9)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5726 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 255: -/* Line 1792 of yacc.c */ -#line 1961 "dtool/src/cppparser/cppBison.yxx" +#line 1962 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (9)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(6) - (9)].u.param_list), (yyvsp[(8) - (9)].u.integer), (yyvsp[(9) - (9)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5737 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 256: -/* Line 1792 of yacc.c */ -#line 1971 "dtool/src/cppparser/cppBison.yxx" +#line 1972 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 5745 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 257: -/* Line 1792 of yacc.c */ -#line 1975 "dtool/src/cppparser/cppBison.yxx" +#line 1976 "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); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != NULL); } +#line 5757 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 258: -/* Line 1792 of yacc.c */ -#line 1983 "dtool/src/cppparser/cppBison.yxx" +#line 1984 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 5765 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 259: -/* Line 1792 of yacc.c */ -#line 1987 "dtool/src/cppparser/cppBison.yxx" +#line 1988 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 5773 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 260: -/* Line 1792 of yacc.c */ -#line 1991 "dtool/src/cppparser/cppBison.yxx" +#line 1992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 5781 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 261: -/* Line 1792 of yacc.c */ -#line 1995 "dtool/src/cppparser/cppBison.yxx" +#line 1996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); } +#line 5789 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 262: -/* Line 1792 of yacc.c */ -#line 1999 "dtool/src/cppparser/cppBison.yxx" +#line 2000 "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; } 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; } } +#line 5809 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 263: -/* Line 1792 of yacc.c */ -#line 2015 "dtool/src/cppparser/cppBison.yxx" +#line 2016 "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; } 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; } } +#line 5829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 264: -/* Line 1792 of yacc.c */ -#line 2031 "dtool/src/cppparser/cppBison.yxx" +#line 2032 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { stringstream str; - str << *(yyvsp[(3) - (4)].u.expr); - yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + str << *(yyvsp[-1].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } +#line 5842 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 265: -/* Line 1792 of yacc.c */ -#line 2040 "dtool/src/cppparser/cppBison.yxx" +#line 2041 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } +#line 5850 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 266: -/* Line 1792 of yacc.c */ -#line 2047 "dtool/src/cppparser/cppBison.yxx" +#line 2048 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 5858 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 267: -/* Line 1792 of yacc.c */ -#line 2051 "dtool/src/cppparser/cppBison.yxx" +#line 2052 "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); + (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.decl) != NULL); } +#line 5870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 268: -/* Line 1792 of yacc.c */ -#line 2059 "dtool/src/cppparser/cppBison.yxx" +#line 2060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 5878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 269: -/* Line 1792 of yacc.c */ -#line 2063 "dtool/src/cppparser/cppBison.yxx" +#line 2064 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 5886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 270: -/* Line 1792 of yacc.c */ -#line 2067 "dtool/src/cppparser/cppBison.yxx" +#line 2068 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.struct_type))); + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); } +#line 5894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 271: -/* Line 1792 of yacc.c */ -#line 2071 "dtool/src/cppparser/cppBison.yxx" +#line 2072 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.enum_type))); + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); } +#line 5902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 272: -/* Line 1792 of yacc.c */ -#line 2075 "dtool/src/cppparser/cppBison.yxx" +#line 2076 "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.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.decl) = et; } } +#line 5922 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 273: -/* Line 1792 of yacc.c */ -#line 2091 "dtool/src/cppparser/cppBison.yxx" +#line 2092 "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.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.decl) = et; } } +#line 5942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 274: -/* Line 1792 of yacc.c */ -#line 2107 "dtool/src/cppparser/cppBison.yxx" +#line 2108 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[(2) - (2)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (2)])); + yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); - 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.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.decl) = et; } } +#line 5964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 275: -/* Line 1792 of yacc.c */ -#line 2125 "dtool/src/cppparser/cppBison.yxx" +#line 2126 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == (CPPType *)NULL) { stringstream str; - str << *(yyvsp[(3) - (4)].u.expr); - yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + str << *(yyvsp[-1].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } +#line 5977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 276: -/* Line 1792 of yacc.c */ -#line 2134 "dtool/src/cppparser/cppBison.yxx" +#line 2135 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } +#line 5985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 277: -/* Line 1792 of yacc.c */ -#line 2141 "dtool/src/cppparser/cppBison.yxx" +#line 2142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 5993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 278: -/* Line 1792 of yacc.c */ -#line 2145 "dtool/src/cppparser/cppBison.yxx" +#line 2146 "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); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != NULL); } +#line 6005 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 279: -/* Line 1792 of yacc.c */ -#line 2153 "dtool/src/cppparser/cppBison.yxx" +#line 2154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 6013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 280: -/* Line 1792 of yacc.c */ -#line 2157 "dtool/src/cppparser/cppBison.yxx" +#line 2158 "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; } 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; } } +#line 6033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 281: -/* Line 1792 of yacc.c */ -#line 2173 "dtool/src/cppparser/cppBison.yxx" +#line 2174 "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; } 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; } } +#line 6053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 282: -/* Line 1792 of yacc.c */ -#line 2189 "dtool/src/cppparser/cppBison.yxx" +#line 2190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { stringstream str; - str << *(yyvsp[(3) - (4)].u.expr); - yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + str << *(yyvsp[-1].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } +#line 6066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 283: -/* Line 1792 of yacc.c */ -#line 2198 "dtool/src/cppparser/cppBison.yxx" +#line 2199 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } +#line 6074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 284: -/* Line 1792 of yacc.c */ -#line 2205 "dtool/src/cppparser/cppBison.yxx" +#line 2206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); + (yyval.u.decl) = (yyvsp[0].u.decl); } +#line 6082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 285: -/* Line 1792 of yacc.c */ -#line 2209 "dtool/src/cppparser/cppBison.yxx" +#line 2210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - yyerror(string("unknown type '") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name() + "'", (yylsp[(1) - (1)])); + yyerror(string("unknown type '") + (yyvsp[0].u.identifier)->get_fully_scoped_name() + "'", (yylsp[0])); (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); } +#line 6092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 286: -/* Line 1792 of yacc.c */ -#line 2217 "dtool/src/cppparser/cppBison.yxx" +#line 2218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(2) - (2)].u.inst_ident)->unroll_type((yyvsp[(1) - (2)].u.type)); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 6100 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 287: -/* Line 1792 of yacc.c */ -#line 2221 "dtool/src/cppparser/cppBison.yxx" +#line 2222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(3) - (3)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.type) = (yyvsp[(3) - (3)].u.inst_ident)->unroll_type((yyvsp[(2) - (3)].u.type)); + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 6109 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 288: -/* Line 1792 of yacc.c */ -#line 2229 "dtool/src/cppparser/cppBison.yxx" +#line 2230 "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 6127 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 289: -/* Line 1792 of yacc.c */ -#line 2243 "dtool/src/cppparser/cppBison.yxx" +#line 2244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } +#line 6138 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 290: -/* Line 1792 of yacc.c */ -#line 2253 "dtool/src/cppparser/cppBison.yxx" +#line 2254 "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 6162 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 291: -/* Line 1792 of yacc.c */ -#line 2273 "dtool/src/cppparser/cppBison.yxx" +#line 2274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } +#line 6173 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 293: -/* Line 1792 of yacc.c */ -#line 2284 "dtool/src/cppparser/cppBison.yxx" +#line 2285 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_struct->_final = true; } +#line 6181 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 298: -/* Line 1792 of yacc.c */ -#line 2301 "dtool/src/cppparser/cppBison.yxx" +#line 2302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(1) - (1)].u.type), V_unknown, false); + current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); } +#line 6189 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 299: -/* Line 1792 of yacc.c */ -#line 2305 "dtool/src/cppparser/cppBison.yxx" +#line 2306 "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_public, false); } +#line 6197 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 300: -/* Line 1792 of yacc.c */ -#line 2309 "dtool/src/cppparser/cppBison.yxx" +#line 2310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_protected, false); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); } +#line 6205 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 301: -/* Line 1792 of yacc.c */ -#line 2313 "dtool/src/cppparser/cppBison.yxx" +#line 2314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_private, false); + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); } +#line 6213 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 302: -/* Line 1792 of yacc.c */ -#line 2317 "dtool/src/cppparser/cppBison.yxx" +#line 2318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } +#line 6221 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 303: -/* Line 1792 of yacc.c */ -#line 2321 "dtool/src/cppparser/cppBison.yxx" +#line 2322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } +#line 6229 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 304: -/* Line 1792 of yacc.c */ -#line 2325 "dtool/src/cppparser/cppBison.yxx" +#line 2326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } +#line 6237 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 305: -/* Line 1792 of yacc.c */ -#line 2329 "dtool/src/cppparser/cppBison.yxx" +#line 2330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } +#line 6245 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 306: -/* Line 1792 of yacc.c */ -#line 2333 "dtool/src/cppparser/cppBison.yxx" +#line 2334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } +#line 6253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 307: -/* Line 1792 of yacc.c */ -#line 2337 "dtool/src/cppparser/cppBison.yxx" +#line 2338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } +#line 6261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 308: -/* Line 1792 of yacc.c */ -#line 2344 "dtool/src/cppparser/cppBison.yxx" +#line 2345 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.enum_type) = current_enum; current_enum = NULL; } +#line 6270 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 309: -/* Line 1792 of yacc.c */ -#line 2352 "dtool/src/cppparser/cppBison.yxx" +#line 2353 "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); + current_enum = new CPPEnumType((yyvsp[-2].u.extension_enum), NULL, (yyvsp[0].u.type), current_scope, NULL, (yylsp[-2]).file); } +#line 6278 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 310: -/* Line 1792 of yacc.c */ -#line 2356 "dtool/src/cppparser/cppBison.yxx" +#line 2357 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType((yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file); + current_enum = new CPPEnumType((yyvsp[0].u.extension_enum), NULL, current_scope, NULL, (yylsp[0]).file); } +#line 6286 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 311: -/* Line 1792 of yacc.c */ -#line 2360 "dtool/src/cppparser/cppBison.yxx" +#line 2361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType(NULL, (yyvsp[(3) - (3)].u.type), current_scope, (yylsp[(1) - (3)]).file); + CPPScope *new_scope = new CPPScope(current_scope, (yyvsp[-2].u.identifier)->_names.back(), V_public); + current_enum = new CPPEnumType((yyvsp[-3].u.extension_enum), (yyvsp[-2].u.identifier), (yyvsp[0].u.type), current_scope, new_scope, (yylsp[-3]).file); } +#line 6295 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 312: -/* Line 1792 of yacc.c */ -#line 2364 "dtool/src/cppparser/cppBison.yxx" +#line 2366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType(NULL, current_scope, (yylsp[(1) - (1)]).file); + CPPScope *new_scope = new CPPScope(current_scope, (yyvsp[0].u.identifier)->_names.back(), V_public); + current_enum = new CPPEnumType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, new_scope, (yylsp[-1]).file); } +#line 6304 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 313: -/* Line 1792 of yacc.c */ -#line 2371 "dtool/src/cppparser/cppBison.yxx" +#line 2374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 6312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 314: -/* Line 1792 of yacc.c */ -#line 2375 "dtool/src/cppparser/cppBison.yxx" +#line 2378 "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); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } +#line 6320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 316: -/* Line 1792 of yacc.c */ -#line 2383 "dtool/src/cppparser/cppBison.yxx" +#line 2386 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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)])); + current_enum->add_element((yyvsp[-1].u.identifier)->get_simple_name(), NULL, current_lexer, (yylsp[-1])); } +#line 6329 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 317: -/* Line 1792 of yacc.c */ -#line 2389 "dtool/src/cppparser/cppBison.yxx" +#line 2391 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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)])); + current_enum->add_element((yyvsp[-3].u.identifier)->get_simple_name(), (yyvsp[-1].u.expr), current_lexer, (yylsp[-3])); } +#line 6338 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 319: -/* Line 1792 of yacc.c */ -#line 2398 "dtool/src/cppparser/cppBison.yxx" +#line 2399 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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)])); + current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), NULL, current_lexer, (yylsp[0])); } +#line 6347 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 320: -/* Line 1792 of yacc.c */ -#line 2404 "dtool/src/cppparser/cppBison.yxx" +#line 2404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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)])); + current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), (yyvsp[0].u.expr), current_lexer, (yylsp[-2])); } +#line 6356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 321: -/* Line 1792 of yacc.c */ -#line 2413 "dtool/src/cppparser/cppBison.yxx" +#line 2412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } +#line 6364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 322: -/* Line 1792 of yacc.c */ -#line 2420 "dtool/src/cppparser/cppBison.yxx" +#line 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_class; + (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } +#line 6372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 323: -/* Line 1792 of yacc.c */ -#line 2424 "dtool/src/cppparser/cppBison.yxx" +#line 2420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_struct; + (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; } +#line 6380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 324: -/* Line 1792 of yacc.c */ -#line 2428 "dtool/src/cppparser/cppBison.yxx" +#line 2427 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_union; + (yyval.u.extension_enum) = CPPExtensionType::T_class; } +#line 6388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 325: -/* Line 1792 of yacc.c */ -#line 2435 "dtool/src/cppparser/cppBison.yxx" +#line 2431 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPScope *scope = (yyvsp[(2) - (3)].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); - if (parent_scope == NULL) { - parent_scope = current_scope; - } - scope = new CPPScope(parent_scope, (yyvsp[(2) - (3)].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)])); - current_scope->define_namespace(nspace); - push_scope(scope); + (yyval.u.extension_enum) = CPPExtensionType::T_struct; } +#line 6396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 326: -/* Line 1792 of yacc.c */ -#line 2453 "dtool/src/cppparser/cppBison.yxx" +#line 2435 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - pop_scope(); + (yyval.u.extension_enum) = CPPExtensionType::T_union; } +#line 6404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 327: -/* Line 1792 of yacc.c */ -#line 2457 "dtool/src/cppparser/cppBison.yxx" +#line 2442 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPScope *scope = (yyvsp[(3) - (4)].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[(3) - (4)].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[(3) - (4)].u.identifier)->_names.back(), V_public); + scope = new CPPScope(parent_scope, (yyvsp[-1].u.identifier)->_names.back(), V_public); } - CPPNamespace *nspace = new CPPNamespace((yyvsp[(3) - (4)].u.identifier), scope, (yylsp[(2) - (4)]).file); - nspace->_is_inline = true; - current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[(2) - (4)])); + 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 6426 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 328: -/* Line 1792 of yacc.c */ -#line 2476 "dtool/src/cppparser/cppBison.yxx" +#line 2460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } +#line 6434 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 331: -/* Line 1792 of yacc.c */ -#line 2485 "dtool/src/cppparser/cppBison.yxx" + case 329: +#line 2464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPUsing *using_decl = new CPPUsing((yyvsp[(2) - (3)].u.identifier), false, (yylsp[(1) - (3)]).file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (3)])); - current_scope->add_using(using_decl, 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[-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[-1].u.identifier)->_names.back(), V_public); + } + + CPPNamespace *nspace = new CPPNamespace((yyvsp[-1].u.identifier), scope, (yylsp[-2]).file); + nspace->_is_inline = true; + current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[-2])); + current_scope->define_namespace(nspace); + push_scope(scope); } +#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 332: -/* Line 1792 of yacc.c */ -#line 2491 "dtool/src/cppparser/cppBison.yxx" + case 330: +#line 2483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // This is really just an alternative way to declare a typedef. - CPPTypedefType *typedef_type = new CPPTypedefType((yyvsp[(4) - (5)].u.type), (yyvsp[(2) - (5)].u.identifier), current_scope); - typedef_type->_using = true; - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (5)])); + pop_scope(); } +#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 333: -/* Line 1792 of yacc.c */ -#line 2498 "dtool/src/cppparser/cppBison.yxx" +#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPUsing *using_decl = new CPPUsing((yyvsp[(3) - (4)].u.identifier), true, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (4)])); + CPPUsing *using_decl = new CPPUsing((yyvsp[-1].u.identifier), false, (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 6475 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 337: -/* Line 1792 of yacc.c */ -#line 2513 "dtool/src/cppparser/cppBison.yxx" + case 334: +#line 2498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); + // This is really just an alternative way to declare a typedef. + CPPTypedefType *typedef_type = new CPPTypedefType((yyvsp[-1].u.type), (yyvsp[-3].u.identifier), current_scope); + typedef_type->_using = true; + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-4])); } +#line 6486 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 338: -/* Line 1792 of yacc.c */ -#line 2517 "dtool/src/cppparser/cppBison.yxx" + case 335: +#line 2505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); + CPPUsing *using_decl = new CPPUsing((yyvsp[-1].u.identifier), true, (yylsp[-3]).file); + current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-3])); + current_scope->add_using(using_decl, global_scope, current_lexer); } +#line 6496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 339: -/* Line 1792 of yacc.c */ -#line 2521 "dtool/src/cppparser/cppBison.yxx" +#line 2520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } +#line 6504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 340: -/* Line 1792 of yacc.c */ -#line 2525 "dtool/src/cppparser/cppBison.yxx" +#line 2524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } +#line 6512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 341: -/* Line 1792 of yacc.c */ -#line 2529 "dtool/src/cppparser/cppBison.yxx" +#line 2528 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } +#line 6520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 342: -/* Line 1792 of yacc.c */ -#line 2533 "dtool/src/cppparser/cppBison.yxx" +#line 2532 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); +} +#line 6528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 343: +#line 2536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); +} +#line 6536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 344: +#line 2540 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } +#line 6545 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 343: -/* Line 1792 of yacc.c */ -#line 2538 "dtool/src/cppparser/cppBison.yxx" + case 345: +#line 2545 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } +#line 6554 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 344: -/* Line 1792 of yacc.c */ -#line 2543 "dtool/src/cppparser/cppBison.yxx" + case 346: +#line 2550 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } +#line 6563 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 345: -/* Line 1792 of yacc.c */ -#line 2548 "dtool/src/cppparser/cppBison.yxx" + case 347: +#line 2555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } - break; - - case 346: -/* Line 1792 of yacc.c */ -#line 2553 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); -} - break; - - case 347: -/* Line 1792 of yacc.c */ -#line 2557 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); - (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; -} +#line 6572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 348: -/* Line 1792 of yacc.c */ -#line 2562 "dtool/src/cppparser/cppBison.yxx" +#line 2560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); +} +#line 6580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 349: +#line 2564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; +} +#line 6589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 350: +#line 2569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (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; } } - break; - - case 349: -/* Line 1792 of yacc.c */ -#line 2571 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); - (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; -} - break; - - case 350: -/* Line 1792 of yacc.c */ -#line 2576 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); - (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; -} +#line 6602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 351: -/* Line 1792 of yacc.c */ -#line 2584 "dtool/src/cppparser/cppBison.yxx" +#line 2578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } +#line 6611 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 352: -/* Line 1792 of yacc.c */ -#line 2588 "dtool/src/cppparser/cppBison.yxx" +#line 2583 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } +#line 6620 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 353: -/* Line 1792 of yacc.c */ -#line 2592 "dtool/src/cppparser/cppBison.yxx" +#line 2591 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); +} +#line 6628 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 354: +#line 2595 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); +} +#line 6636 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 355: +#line 2599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } - break; - - case 354: -/* Line 1792 of yacc.c */ -#line 2600 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); -} - break; - - case 355: -/* Line 1792 of yacc.c */ -#line 2609 "dtool/src/cppparser/cppBison.yxx" - { - current_lexer->_resolve_identifiers = false; -} +#line 6645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 356: -/* Line 1792 of yacc.c */ -#line 2613 "dtool/src/cppparser/cppBison.yxx" +#line 2607 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); +} +#line 6653 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 357: +#line 2616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_lexer->_resolve_identifiers = false; +} +#line 6661 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 358: +#line 2620 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = true; } +#line 6669 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 459: -/* Line 1792 of yacc.c */ -#line 2654 "dtool/src/cppparser/cppBison.yxx" + case 461: +#line 2661 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } - break; - - case 483: -/* Line 1792 of yacc.c */ -#line 2663 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 484: -/* Line 1792 of yacc.c */ -#line 2667 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} +#line 6676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 485: -/* Line 1792 of yacc.c */ -#line 2674 "dtool/src/cppparser/cppBison.yxx" +#line 2670 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 6684 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 486: -/* Line 1792 of yacc.c */ -#line 2678 "dtool/src/cppparser/cppBison.yxx" +#line 2674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6692 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 487: -/* Line 1792 of yacc.c */ -#line 2685 "dtool/src/cppparser/cppBison.yxx" +#line 2681 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } +#line 6700 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 488: -/* Line 1792 of yacc.c */ -#line 2689 "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) = (yyvsp[0].u.expr); } +#line 6708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 489: -/* Line 1792 of yacc.c */ -#line 2696 "dtool/src/cppparser/cppBison.yxx" +#line 2692 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6716 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 490: -/* Line 1792 of yacc.c */ -#line 2700 "dtool/src/cppparser/cppBison.yxx" +#line 2696 "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(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6724 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 491: -/* Line 1792 of yacc.c */ -#line 2704 "dtool/src/cppparser/cppBison.yxx" +#line 2703 "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), CPPExpression::T_static_cast)); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 492: -/* Line 1792 of yacc.c */ -#line 2708 "dtool/src/cppparser/cppBison.yxx" +#line 2707 "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), CPPExpression::T_dynamic_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } +#line 6740 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 493: -/* Line 1792 of yacc.c */ -#line 2712 "dtool/src/cppparser/cppBison.yxx" +#line 2711 "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), CPPExpression::T_const_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } +#line 6748 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 494: -/* Line 1792 of yacc.c */ -#line 2716 "dtool/src/cppparser/cppBison.yxx" +#line 2715 "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), CPPExpression::T_reinterpret_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } +#line 6756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 495: -/* Line 1792 of yacc.c */ -#line 2720 "dtool/src/cppparser/cppBison.yxx" +#line 2719 "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(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } +#line 6764 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 496: -/* Line 1792 of yacc.c */ -#line 2724 "dtool/src/cppparser/cppBison.yxx" +#line 2723 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } +#line 6772 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 497: -/* Line 1792 of yacc.c */ -#line 2728 "dtool/src/cppparser/cppBison.yxx" +#line 2727 "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(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } +#line 6780 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 498: -/* Line 1792 of yacc.c */ -#line 2732 "dtool/src/cppparser/cppBison.yxx" +#line 2731 "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(CPPExpression::alignof_func((yyvsp[-1].u.type))); } +#line 6788 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 499: -/* Line 1792 of yacc.c */ -#line 2736 "dtool/src/cppparser/cppBison.yxx" +#line 2735 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } +#line 6796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 500: -/* Line 1792 of yacc.c */ -#line 2740 "dtool/src/cppparser/cppBison.yxx" +#line 2739 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } +#line 6804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 501: -/* Line 1792 of yacc.c */ -#line 2744 "dtool/src/cppparser/cppBison.yxx" +#line 2743 "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(UNARY_MINUS, (yyvsp[0].u.expr)); } +#line 6812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 502: -/* Line 1792 of yacc.c */ -#line 2748 "dtool/src/cppparser/cppBison.yxx" +#line 2747 "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(UNARY_PLUS, (yyvsp[0].u.expr)); } +#line 6820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 503: -/* Line 1792 of yacc.c */ -#line 2752 "dtool/src/cppparser/cppBison.yxx" +#line 2751 "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(UNARY_STAR, (yyvsp[0].u.expr)); } +#line 6828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 504: -/* Line 1792 of yacc.c */ -#line 2756 "dtool/src/cppparser/cppBison.yxx" +#line 2755 "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(UNARY_REF, (yyvsp[0].u.expr)); } +#line 6836 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 505: -/* Line 1792 of yacc.c */ -#line 2760 "dtool/src/cppparser/cppBison.yxx" +#line 2759 "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 6844 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 506: -/* Line 1792 of yacc.c */ -#line 2764 "dtool/src/cppparser/cppBison.yxx" +#line 2763 "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 6852 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 507: -/* Line 1792 of yacc.c */ -#line 2768 "dtool/src/cppparser/cppBison.yxx" +#line 2767 "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 6860 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 508: -/* Line 1792 of yacc.c */ -#line 2772 "dtool/src/cppparser/cppBison.yxx" +#line 2771 "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 6868 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 509: -/* Line 1792 of yacc.c */ -#line 2776 "dtool/src/cppparser/cppBison.yxx" +#line 2775 "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 6876 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 510: -/* Line 1792 of yacc.c */ -#line 2780 "dtool/src/cppparser/cppBison.yxx" +#line 2779 "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 6884 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 511: -/* Line 1792 of yacc.c */ -#line 2784 "dtool/src/cppparser/cppBison.yxx" +#line 2783 "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[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6892 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 512: -/* Line 1792 of yacc.c */ -#line 2788 "dtool/src/cppparser/cppBison.yxx" +#line 2787 "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[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6900 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 513: -/* Line 1792 of yacc.c */ -#line 2792 "dtool/src/cppparser/cppBison.yxx" +#line 2791 "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(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6908 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 514: -/* Line 1792 of yacc.c */ -#line 2796 "dtool/src/cppparser/cppBison.yxx" +#line 2795 "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(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6916 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 515: -/* Line 1792 of yacc.c */ -#line 2800 "dtool/src/cppparser/cppBison.yxx" +#line 2799 "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(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6924 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 516: -/* Line 1792 of yacc.c */ -#line 2804 "dtool/src/cppparser/cppBison.yxx" +#line 2803 "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(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 517: -/* Line 1792 of yacc.c */ -#line 2808 "dtool/src/cppparser/cppBison.yxx" +#line 2807 "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) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6940 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 518: -/* Line 1792 of yacc.c */ -#line 2812 "dtool/src/cppparser/cppBison.yxx" +#line 2811 "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(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6948 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 519: -/* Line 1792 of yacc.c */ -#line 2816 "dtool/src/cppparser/cppBison.yxx" +#line 2815 "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(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6956 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 520: -/* Line 1792 of yacc.c */ -#line 2820 "dtool/src/cppparser/cppBison.yxx" +#line 2819 "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(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 521: -/* Line 1792 of yacc.c */ -#line 2824 "dtool/src/cppparser/cppBison.yxx" +#line 2823 "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[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6972 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 522: -/* Line 1792 of yacc.c */ -#line 2828 "dtool/src/cppparser/cppBison.yxx" +#line 2827 "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[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6980 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 523: -/* Line 1792 of yacc.c */ -#line 2832 "dtool/src/cppparser/cppBison.yxx" +#line 2831 "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('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6988 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 524: -/* Line 1792 of yacc.c */ -#line 2836 "dtool/src/cppparser/cppBison.yxx" +#line 2835 "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('f', (yyvsp[-2].u.expr)); } +#line 6996 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 525: -/* Line 1792 of yacc.c */ -#line 2840 "dtool/src/cppparser/cppBison.yxx" +#line 2839 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7004 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 526: -/* Line 1792 of yacc.c */ -#line 2848 "dtool/src/cppparser/cppBison.yxx" +#line 2843 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7012 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 527: -/* Line 1792 of yacc.c */ -#line 2852 "dtool/src/cppparser/cppBison.yxx" +#line 2847 "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) = (yyvsp[-1].u.expr); } +#line 7020 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 528: -/* Line 1792 of yacc.c */ -#line 2856 "dtool/src/cppparser/cppBison.yxx" +#line 2855 "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), CPPExpression::T_static_cast)); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 7028 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 529: -/* Line 1792 of yacc.c */ -#line 2860 "dtool/src/cppparser/cppBison.yxx" +#line 2859 "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), CPPExpression::T_dynamic_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } +#line 7036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 530: -/* Line 1792 of yacc.c */ -#line 2864 "dtool/src/cppparser/cppBison.yxx" +#line 2863 "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), CPPExpression::T_const_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } +#line 7044 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 531: -/* Line 1792 of yacc.c */ -#line 2868 "dtool/src/cppparser/cppBison.yxx" +#line 2867 "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), CPPExpression::T_reinterpret_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } +#line 7052 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 532: -/* Line 1792 of yacc.c */ -#line 2872 "dtool/src/cppparser/cppBison.yxx" +#line 2871 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // A constructor call. - CPPType *type = (yyvsp[(1) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (4)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (4)])); - } - assert(type != NULL); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } +#line 7060 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 533: -/* Line 1792 of yacc.c */ -#line 2882 "dtool/src/cppparser/cppBison.yxx" +#line 2875 "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::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } +#line 7068 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 534: -/* Line 1792 of yacc.c */ -#line 2888 "dtool/src/cppparser/cppBison.yxx" +#line 2879 "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))); + // A constructor call. + CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type == NULL) { + yyerror(string("internal error resolving type ") + (yyvsp[-3].u.identifier)->get_fully_scoped_name(), (yylsp[-3])); + } + assert(type != NULL); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 535: -/* Line 1792 of yacc.c */ -#line 2894 "dtool/src/cppparser/cppBison.yxx" +#line 2889 "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))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 536: -/* Line 1792 of yacc.c */ -#line 2900 "dtool/src/cppparser/cppBison.yxx" +#line 2895 "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))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7102 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 537: -/* Line 1792 of yacc.c */ -#line 2906 "dtool/src/cppparser/cppBison.yxx" +#line 2901 "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))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7112 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 538: -/* Line 1792 of yacc.c */ -#line 2912 "dtool/src/cppparser/cppBison.yxx" +#line 2907 "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))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 539: -/* Line 1792 of yacc.c */ -#line 2918 "dtool/src/cppparser/cppBison.yxx" +#line 2913 "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[-1].u.expr))); +} +#line 7132 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 540: +#line 2919 "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[-1].u.expr))); +} +#line 7142 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 541: +#line 2925 "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 7153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 540: -/* Line 1792 of yacc.c */ -#line 2925 "dtool/src/cppparser/cppBison.yxx" + case 542: +#line 2932 "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 7164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 541: -/* Line 1792 of yacc.c */ -#line 2932 "dtool/src/cppparser/cppBison.yxx" + case 543: +#line 2939 "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 7175 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 542: -/* Line 1792 of yacc.c */ -#line 2939 "dtool/src/cppparser/cppBison.yxx" + case 544: +#line 2946 "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))); -} - break; - - case 543: -/* Line 1792 of yacc.c */ -#line 2946 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); -} - break; - - case 544: -/* Line 1792 of yacc.c */ -#line 2952 "dtool/src/cppparser/cppBison.yxx" - { - 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 7186 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 545: -/* Line 1792 of yacc.c */ -#line 2958 "dtool/src/cppparser/cppBison.yxx" +#line 2953 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 546: -/* Line 1792 of yacc.c */ -#line 2962 "dtool/src/cppparser/cppBison.yxx" +#line 2959 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7206 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 547: -/* Line 1792 of yacc.c */ -#line 2966 "dtool/src/cppparser/cppBison.yxx" +#line 2965 "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(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } +#line 7214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 548: -/* Line 1792 of yacc.c */ -#line 2970 "dtool/src/cppparser/cppBison.yxx" +#line 2969 "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(CPPExpression::alignof_func((yyvsp[-1].u.type))); } +#line 7222 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 549: -/* Line 1792 of yacc.c */ -#line 2974 "dtool/src/cppparser/cppBison.yxx" +#line 2973 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.type), std_type_info)); + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } +#line 7230 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 550: -/* Line 1792 of yacc.c */ -#line 2985 "dtool/src/cppparser/cppBison.yxx" +#line 2977 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.expr), std_type_info)); + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } +#line 7238 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 551: -/* Line 1792 of yacc.c */ -#line 2996 "dtool/src/cppparser/cppBison.yxx" +#line 2981 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } +#line 7253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 552: -/* Line 1792 of yacc.c */ -#line 3000 "dtool/src/cppparser/cppBison.yxx" +#line 2992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } +#line 7268 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 553: -/* Line 1792 of yacc.c */ -#line 3004 "dtool/src/cppparser/cppBison.yxx" +#line 3003 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } +#line 7276 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 554: -/* Line 1792 of yacc.c */ -#line 3008 "dtool/src/cppparser/cppBison.yxx" +#line 3007 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } +#line 7284 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 555: -/* Line 1792 of yacc.c */ -#line 3012 "dtool/src/cppparser/cppBison.yxx" +#line 3011 "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(UNARY_MINUS, (yyvsp[0].u.expr)); } +#line 7292 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 556: -/* Line 1792 of yacc.c */ -#line 3016 "dtool/src/cppparser/cppBison.yxx" +#line 3015 "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(UNARY_PLUS, (yyvsp[0].u.expr)); } +#line 7300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 557: -/* Line 1792 of yacc.c */ -#line 3020 "dtool/src/cppparser/cppBison.yxx" +#line 3019 "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(UNARY_STAR, (yyvsp[0].u.expr)); } +#line 7308 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 558: -/* Line 1792 of yacc.c */ -#line 3024 "dtool/src/cppparser/cppBison.yxx" +#line 3023 "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(UNARY_REF, (yyvsp[0].u.expr)); } +#line 7316 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 559: -/* Line 1792 of yacc.c */ -#line 3028 "dtool/src/cppparser/cppBison.yxx" +#line 3027 "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 7324 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 560: -/* Line 1792 of yacc.c */ -#line 3032 "dtool/src/cppparser/cppBison.yxx" +#line 3031 "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 7332 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 561: -/* Line 1792 of yacc.c */ -#line 3036 "dtool/src/cppparser/cppBison.yxx" +#line 3035 "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 7340 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 562: -/* Line 1792 of yacc.c */ -#line 3040 "dtool/src/cppparser/cppBison.yxx" +#line 3039 "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 7348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 563: -/* Line 1792 of yacc.c */ -#line 3044 "dtool/src/cppparser/cppBison.yxx" +#line 3043 "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 7356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 564: -/* Line 1792 of yacc.c */ -#line 3048 "dtool/src/cppparser/cppBison.yxx" +#line 3047 "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 7364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 565: -/* Line 1792 of yacc.c */ -#line 3052 "dtool/src/cppparser/cppBison.yxx" +#line 3051 "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[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 566: -/* Line 1792 of yacc.c */ -#line 3056 "dtool/src/cppparser/cppBison.yxx" +#line 3055 "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[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 567: -/* Line 1792 of yacc.c */ -#line 3060 "dtool/src/cppparser/cppBison.yxx" +#line 3059 "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(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 568: -/* Line 1792 of yacc.c */ -#line 3064 "dtool/src/cppparser/cppBison.yxx" +#line 3063 "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(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 569: -/* Line 1792 of yacc.c */ -#line 3068 "dtool/src/cppparser/cppBison.yxx" +#line 3067 "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(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 570: -/* Line 1792 of yacc.c */ -#line 3072 "dtool/src/cppparser/cppBison.yxx" +#line 3071 "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(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 571: -/* Line 1792 of yacc.c */ -#line 3076 "dtool/src/cppparser/cppBison.yxx" +#line 3075 "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 7420 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 572: -/* Line 1792 of yacc.c */ -#line 3080 "dtool/src/cppparser/cppBison.yxx" +#line 3079 "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 7428 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 573: -/* Line 1792 of yacc.c */ -#line 3084 "dtool/src/cppparser/cppBison.yxx" +#line 3083 "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) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 574: -/* Line 1792 of yacc.c */ -#line 3088 "dtool/src/cppparser/cppBison.yxx" +#line 3087 "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[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7444 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 575: -/* Line 1792 of yacc.c */ -#line 3092 "dtool/src/cppparser/cppBison.yxx" +#line 3091 "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(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7452 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 576: -/* Line 1792 of yacc.c */ -#line 3096 "dtool/src/cppparser/cppBison.yxx" +#line 3095 "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(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7460 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 577: -/* Line 1792 of yacc.c */ -#line 3100 "dtool/src/cppparser/cppBison.yxx" +#line 3099 "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[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7468 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 578: -/* Line 1792 of yacc.c */ -#line 3104 "dtool/src/cppparser/cppBison.yxx" +#line 3103 "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[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 7476 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 579: -/* Line 1792 of yacc.c */ -#line 3108 "dtool/src/cppparser/cppBison.yxx" +#line 3107 "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('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 7484 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 580: -/* Line 1792 of yacc.c */ -#line 3112 "dtool/src/cppparser/cppBison.yxx" +#line 3111 "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('f', (yyvsp[-2].u.expr)); } +#line 7492 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 581: -/* Line 1792 of yacc.c */ -#line 3116 "dtool/src/cppparser/cppBison.yxx" +#line 3115 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7500 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 582: -/* Line 1792 of yacc.c */ -#line 3123 "dtool/src/cppparser/cppBison.yxx" +#line 3119 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7508 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 583: -/* Line 1792 of yacc.c */ -#line 3127 "dtool/src/cppparser/cppBison.yxx" +#line 3123 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 7516 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 584: -/* Line 1792 of yacc.c */ -#line 3131 "dtool/src/cppparser/cppBison.yxx" +#line 3130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 7524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 585: -/* Line 1792 of yacc.c */ -#line 3135 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 586: -/* Line 1792 of yacc.c */ -#line 3139 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); -} - break; - - case 587: -/* Line 1792 of yacc.c */ -#line 3143 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 588: -/* Line 1792 of yacc.c */ -#line 3147 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 589: -/* Line 1792 of yacc.c */ -#line 3151 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); -} - break; - - case 590: -/* Line 1792 of yacc.c */ -#line 3155 "dtool/src/cppparser/cppBison.yxx" - { - // A variable named "final". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[(1) - (1)])); - (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); -} - break; - - case 591: -/* Line 1792 of yacc.c */ -#line 3161 "dtool/src/cppparser/cppBison.yxx" - { - // A variable named "override". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[(1) - (1)])); - (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); -} - break; - - case 592: -/* Line 1792 of yacc.c */ -#line 3167 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); -} - break; - - case 593: -/* Line 1792 of yacc.c */ -#line 3171 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = NULL; -} - break; - - case 594: -/* Line 1792 of yacc.c */ -#line 3175 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = NULL; -} - break; - - case 595: -/* Line 1792 of yacc.c */ -#line 3189 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 596: -/* Line 1792 of yacc.c */ -#line 3193 "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 597: -/* Line 1792 of yacc.c */ -#line 3197 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_static_cast)); -} - break; - - case 598: -/* Line 1792 of yacc.c */ -#line 3201 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_dynamic_cast)); -} - break; - - case 599: -/* Line 1792 of yacc.c */ -#line 3205 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_const_cast)); -} - break; - - case 600: -/* Line 1792 of yacc.c */ -#line 3209 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_reinterpret_cast)); -} - break; - - case 601: -/* Line 1792 of yacc.c */ -#line 3213 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 602: -/* Line 1792 of yacc.c */ -#line 3217 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 603: -/* Line 1792 of yacc.c */ -#line 3221 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); -} - break; - - case 604: -/* Line 1792 of yacc.c */ -#line 3225 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); -} - break; - - case 605: -/* Line 1792 of yacc.c */ -#line 3229 "dtool/src/cppparser/cppBison.yxx" - { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.type), std_type_info)); -} - break; - - case 606: -/* Line 1792 of yacc.c */ -#line 3240 "dtool/src/cppparser/cppBison.yxx" - { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.expr), std_type_info)); -} - break; - - case 607: -/* Line 1792 of yacc.c */ -#line 3251 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 608: -/* Line 1792 of yacc.c */ -#line 3255 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 609: -/* Line 1792 of yacc.c */ -#line 3259 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 610: -/* Line 1792 of yacc.c */ -#line 3263 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 611: -/* Line 1792 of yacc.c */ -#line 3267 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 612: -/* Line 1792 of yacc.c */ -#line 3271 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 613: -/* Line 1792 of yacc.c */ -#line 3275 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 614: -/* Line 1792 of yacc.c */ -#line 3279 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 615: -/* Line 1792 of yacc.c */ -#line 3283 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 616: -/* Line 1792 of yacc.c */ -#line 3287 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 617: -/* Line 1792 of yacc.c */ -#line 3291 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 618: -/* Line 1792 of yacc.c */ -#line 3295 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 619: -/* Line 1792 of yacc.c */ -#line 3299 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 620: -/* Line 1792 of yacc.c */ -#line 3303 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 621: -/* Line 1792 of yacc.c */ -#line 3307 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 622: -/* Line 1792 of yacc.c */ -#line 3311 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 623: -/* Line 1792 of yacc.c */ -#line 3315 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 624: -/* Line 1792 of yacc.c */ -#line 3319 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 625: -/* Line 1792 of yacc.c */ -#line 3323 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 626: -/* Line 1792 of yacc.c */ -#line 3327 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 627: -/* Line 1792 of yacc.c */ -#line 3331 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 628: -/* Line 1792 of yacc.c */ -#line 3335 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 629: -/* Line 1792 of yacc.c */ -#line 3339 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 630: -/* Line 1792 of yacc.c */ -#line 3343 "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 631: -/* Line 1792 of yacc.c */ -#line 3347 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 632: -/* Line 1792 of yacc.c */ -#line 3351 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 633: -/* Line 1792 of yacc.c */ -#line 3355 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 634: -/* Line 1792 of yacc.c */ -#line 3359 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 635: -/* Line 1792 of yacc.c */ -#line 3363 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 636: -/* Line 1792 of yacc.c */ -#line 3367 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 637: -/* Line 1792 of yacc.c */ -#line 3374 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 638: -/* Line 1792 of yacc.c */ -#line 3378 "dtool/src/cppparser/cppBison.yxx" +#line 3134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(true); } +#line 7532 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 639: -/* Line 1792 of yacc.c */ -#line 3382 "dtool/src/cppparser/cppBison.yxx" + case 586: +#line 3138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(false); } +#line 7540 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 640: -/* Line 1792 of yacc.c */ -#line 3386 "dtool/src/cppparser/cppBison.yxx" + case 587: +#line 3142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 7548 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 641: -/* Line 1792 of yacc.c */ -#line 3390 "dtool/src/cppparser/cppBison.yxx" + case 588: +#line 3146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } +#line 7556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 642: -/* Line 1792 of yacc.c */ -#line 3394 "dtool/src/cppparser/cppBison.yxx" + case 589: +#line 3150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 7564 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 643: -/* Line 1792 of yacc.c */ -#line 3398 "dtool/src/cppparser/cppBison.yxx" + case 590: +#line 3154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 7572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 644: -/* Line 1792 of yacc.c */ -#line 3402 "dtool/src/cppparser/cppBison.yxx" + case 591: +#line 3158 "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((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } +#line 7580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 645: -/* Line 1792 of yacc.c */ -#line 3406 "dtool/src/cppparser/cppBison.yxx" + case 592: +#line 3162 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A variable named "final". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[(1) - (1)])); + CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); } +#line 7590 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 646: -/* Line 1792 of yacc.c */ -#line 3412 "dtool/src/cppparser/cppBison.yxx" + case 593: +#line 3168 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A variable named "override". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[(1) - (1)])); + CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[0])); (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); } +#line 7600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 647: -/* Line 1792 of yacc.c */ -#line 3418 "dtool/src/cppparser/cppBison.yxx" + case 594: +#line 3174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } +#line 7608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 655: -/* Line 1792 of yacc.c */ -#line 3439 "dtool/src/cppparser/cppBison.yxx" + case 595: +#line 3178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - 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; + (yyval.u.expr) = NULL; } +#line 7616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 656: -/* Line 1792 of yacc.c */ -#line 3447 "dtool/src/cppparser/cppBison.yxx" + case 596: +#line 3182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - 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; + (yyval.u.expr) = NULL; } +#line 7624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 597: +#line 3196 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 598: +#line 3200 "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 7640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 599: +#line 3204 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); +} +#line 7648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 600: +#line 3208 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); +} +#line 7656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 601: +#line 3212 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); +} +#line 7664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 602: +#line 3216 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); +} +#line 7672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 603: +#line 3220 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 7680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 604: +#line 3224 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 7688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 605: +#line 3228 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 7696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 606: +#line 3232 "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 7704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 607: +#line 3236 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); +} +#line 7719 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 608: +#line 3247 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); +} +#line 7734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 609: +#line 3258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} +#line 7742 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 610: +#line 3262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} +#line 7750 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 611: +#line 3266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); +} +#line 7758 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 612: +#line 3270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); +} +#line 7766 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 613: +#line 3274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} +#line 7774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 614: +#line 3278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 615: +#line 3282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 616: +#line 3286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 617: +#line 3290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7806 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 618: +#line 3294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7814 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 619: +#line 3298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7822 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 620: +#line 3302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7830 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 621: +#line 3306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 622: +#line 3310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7846 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 623: +#line 3314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 624: +#line 3318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7862 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 625: +#line 3322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 626: +#line 3326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 627: +#line 3330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 628: +#line 3334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 629: +#line 3338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 630: +#line 3342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 631: +#line 3346 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 632: +#line 3350 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7926 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 633: +#line 3354 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7934 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 634: +#line 3358 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 635: +#line 3362 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} +#line 7950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 636: +#line 3366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7958 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 637: +#line 3370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7966 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 638: +#line 3374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 7974 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 639: +#line 3381 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 7982 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 640: +#line 3385 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(true); +} +#line 7990 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 641: +#line 3389 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(false); +} +#line 7998 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 642: +#line 3393 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 8006 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 643: +#line 3397 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 8014 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 644: +#line 3401 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8022 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 645: +#line 3405 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8030 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 646: +#line 3409 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 8038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 647: +#line 3413 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // A variable named "final". C++11 explicitly permits this. + CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); + (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); +} +#line 8048 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 648: +#line 3419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // A variable named "override". C++11 explicitly permits this. + CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[0])); + (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); +} +#line 8058 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 649: +#line 3425 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} +#line 8066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 657: -/* Line 1792 of yacc.c */ -#line 3455 "dtool/src/cppparser/cppBison.yxx" +#line 3446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + 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 8078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 658: -/* Line 1792 of yacc.c */ -#line 3483 "dtool/src/cppparser/cppBison.yxx" +#line 3454 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + 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 8090 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 659: -/* Line 1792 of yacc.c */ -#line 3487 "dtool/src/cppparser/cppBison.yxx" +#line 3462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 8098 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 660: -/* Line 1792 of yacc.c */ -#line 3491 "dtool/src/cppparser/cppBison.yxx" +#line 3490 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[(1) - (1)])); + (yyval.u.identifier) = (yyvsp[0].u.identifier); } +#line 8106 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 661: -/* Line 1792 of yacc.c */ -#line 3495 "dtool/src/cppparser/cppBison.yxx" +#line 3494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[(1) - (1)])); + (yyval.u.identifier) = (yyvsp[0].u.identifier); } +#line 8114 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 662: -/* Line 1792 of yacc.c */ -#line 3506 "dtool/src/cppparser/cppBison.yxx" +#line 3498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); } +#line 8122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 663: -/* Line 1792 of yacc.c */ -#line 3510 "dtool/src/cppparser/cppBison.yxx" +#line 3502 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); } +#line 8130 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 664: -/* Line 1792 of yacc.c */ -#line 3514 "dtool/src/cppparser/cppBison.yxx" +#line 3506 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[(1) - (1)])); + // This is not a keyword in Python, so it is useful to be able to use this + // in MAKE_PROPERTY definitions, etc. + (yyval.u.identifier) = new CPPIdentifier("signed", (yylsp[0])); } +#line 8140 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 665: -/* Line 1792 of yacc.c */ -#line 3522 "dtool/src/cppparser/cppBison.yxx" +#line 3512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); + (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); } +#line 8148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 666: -/* Line 1792 of yacc.c */ -#line 3526 "dtool/src/cppparser/cppBison.yxx" +#line 3516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); } +#line 8156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 667: -/* Line 1792 of yacc.c */ -#line 3530 "dtool/src/cppparser/cppBison.yxx" +#line 3520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // The right string takes on the literal type of the left. - (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); - (yyval.u.expr)->_str += (yyvsp[(2) - (2)].str); + (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); } +#line 8164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 668: -/* Line 1792 of yacc.c */ -#line 3536 "dtool/src/cppparser/cppBison.yxx" +#line 3531 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8172 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 669: +#line 3535 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 670: +#line 3539 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 8188 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 671: +#line 3547 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 8196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 672: +#line 3551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8204 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 673: +#line 3555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // The right string takes on the literal type of the left. + (yyval.u.expr) = (yyvsp[-1].u.expr); + (yyval.u.expr)->_str += (yyvsp[0].str); +} +#line 8214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 674: +#line 3561 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We have to check that the two literal types match up. - (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); - if ((yyvsp[(2) - (2)].u.expr)->_type != CPPExpression::T_string && (yyvsp[(2) - (2)].u.expr)->_type != (yyvsp[(1) - (2)].u.expr)->_type) { + (yyval.u.expr) = (yyvsp[-1].u.expr); + if ((yyvsp[0].u.expr)->_type != CPPExpression::T_string && (yyvsp[0].u.expr)->_type != (yyvsp[-1].u.expr)->_type) { yywarning("cannot concatenate two string literals of different types", (yyloc)); } - (yyval.u.expr)->_str += (yyvsp[(2) - (2)].u.expr)->_str; + (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } +#line 8227 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; -/* Line 1792 of yacc.c */ -#line 8616 "built/tmp/cppBison.yxx.c" +#line 8231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -8635,7 +8250,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. */ @@ -8650,9 +8265,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. */ @@ -8703,20 +8318,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 @@ -8736,7 +8351,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; @@ -8749,29 +8364,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); @@ -8827,14 +8442,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 @@ -8845,8 +8460,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 c7784f5edf..75d9fe4c15 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,134 +40,133 @@ 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, - SIMPLE_STRING = 261, - SIMPLE_IDENTIFIER = 262, - STRING_LITERAL = 263, - CUSTOM_LITERAL = 264, - IDENTIFIER = 265, - TYPENAME_IDENTIFIER = 266, - SCOPING = 267, - TYPEDEFNAME = 268, - ELLIPSIS = 269, - OROR = 270, - ANDAND = 271, - EQCOMPARE = 272, - NECOMPARE = 273, - LECOMPARE = 274, - GECOMPARE = 275, - LSHIFT = 276, - RSHIFT = 277, - POINTSAT_STAR = 278, - DOT_STAR = 279, - UNARY = 280, - UNARY_NOT = 281, - UNARY_NEGATE = 282, - UNARY_MINUS = 283, - UNARY_PLUS = 284, - UNARY_STAR = 285, - UNARY_REF = 286, - POINTSAT = 287, - SCOPE = 288, - PLUSPLUS = 289, - MINUSMINUS = 290, - TIMESEQUAL = 291, - DIVIDEEQUAL = 292, - MODEQUAL = 293, - PLUSEQUAL = 294, - MINUSEQUAL = 295, - OREQUAL = 296, - ANDEQUAL = 297, - XOREQUAL = 298, - LSHIFTEQUAL = 299, - RSHIFTEQUAL = 300, - KW_ALIGNAS = 301, - KW_ALIGNOF = 302, - KW_AUTO = 303, - KW_BEGIN_PUBLISH = 304, - KW_BLOCKING = 305, - KW_BOOL = 306, - KW_CATCH = 307, - KW_CHAR = 308, - KW_CHAR16_T = 309, - KW_CHAR32_T = 310, - KW_CLASS = 311, - KW_CONST = 312, - KW_CONSTEXPR = 313, - KW_CONST_CAST = 314, - KW_DECLTYPE = 315, - KW_DEFAULT = 316, - KW_DELETE = 317, - KW_DOUBLE = 318, - KW_DYNAMIC_CAST = 319, - KW_ELSE = 320, - KW_END_PUBLISH = 321, - KW_ENUM = 322, - KW_EXTENSION = 323, - KW_EXTERN = 324, - KW_EXPLICIT = 325, - KW_PUBLISHED = 326, - KW_FALSE = 327, - KW_FINAL = 328, - KW_FLOAT = 329, - KW_FRIEND = 330, - KW_FOR = 331, - KW_GOTO = 332, - KW_IF = 333, - KW_INLINE = 334, - KW_INT = 335, - KW_LONG = 336, - KW_MAKE_PROPERTY = 337, - KW_MAKE_PROPERTY2 = 338, - KW_MAKE_SEQ = 339, - KW_MUTABLE = 340, - KW_NAMESPACE = 341, - KW_NEW = 342, - KW_NOEXCEPT = 343, - KW_NULLPTR = 344, - KW_OPERATOR = 345, - KW_OVERRIDE = 346, - KW_PRIVATE = 347, - KW_PROTECTED = 348, - KW_PUBLIC = 349, - KW_REGISTER = 350, - KW_REINTERPRET_CAST = 351, - KW_RETURN = 352, - KW_SHORT = 353, - KW_SIGNED = 354, - KW_SIZEOF = 355, - KW_STATIC = 356, - KW_STATIC_ASSERT = 357, - KW_STATIC_CAST = 358, - KW_STRUCT = 359, - KW_TEMPLATE = 360, - KW_THREAD_LOCAL = 361, - KW_THROW = 362, - KW_TRUE = 363, - KW_TRY = 364, - KW_TYPEDEF = 365, - KW_TYPEID = 366, - KW_TYPENAME = 367, - KW_UNION = 368, - KW_UNSIGNED = 369, - KW_USING = 370, - KW_VIRTUAL = 371, - KW_VOID = 372, - KW_VOLATILE = 373, - KW_WCHAR_T = 374, - KW_WHILE = 375, - START_CPP = 376, - START_CONST_EXPR = 377, - START_TYPE = 378 - }; + enum yytokentype + { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + SIMPLE_STRING = 261, + SIMPLE_IDENTIFIER = 262, + STRING_LITERAL = 263, + CUSTOM_LITERAL = 264, + IDENTIFIER = 265, + TYPENAME_IDENTIFIER = 266, + SCOPING = 267, + TYPEDEFNAME = 268, + ELLIPSIS = 269, + OROR = 270, + ANDAND = 271, + EQCOMPARE = 272, + NECOMPARE = 273, + LECOMPARE = 274, + GECOMPARE = 275, + LSHIFT = 276, + RSHIFT = 277, + POINTSAT_STAR = 278, + DOT_STAR = 279, + UNARY = 280, + UNARY_NOT = 281, + UNARY_NEGATE = 282, + UNARY_MINUS = 283, + UNARY_PLUS = 284, + UNARY_STAR = 285, + UNARY_REF = 286, + POINTSAT = 287, + SCOPE = 288, + PLUSPLUS = 289, + MINUSMINUS = 290, + TIMESEQUAL = 291, + DIVIDEEQUAL = 292, + MODEQUAL = 293, + PLUSEQUAL = 294, + MINUSEQUAL = 295, + OREQUAL = 296, + ANDEQUAL = 297, + XOREQUAL = 298, + LSHIFTEQUAL = 299, + RSHIFTEQUAL = 300, + KW_ALIGNAS = 301, + KW_ALIGNOF = 302, + KW_AUTO = 303, + KW_BEGIN_PUBLISH = 304, + KW_BLOCKING = 305, + KW_BOOL = 306, + KW_CATCH = 307, + KW_CHAR = 308, + KW_CHAR16_T = 309, + KW_CHAR32_T = 310, + KW_CLASS = 311, + KW_CONST = 312, + KW_CONSTEXPR = 313, + KW_CONST_CAST = 314, + KW_DECLTYPE = 315, + KW_DEFAULT = 316, + KW_DELETE = 317, + KW_DOUBLE = 318, + KW_DYNAMIC_CAST = 319, + KW_ELSE = 320, + KW_END_PUBLISH = 321, + KW_ENUM = 322, + KW_EXTENSION = 323, + KW_EXTERN = 324, + KW_EXPLICIT = 325, + KW_PUBLISHED = 326, + KW_FALSE = 327, + KW_FINAL = 328, + KW_FLOAT = 329, + KW_FRIEND = 330, + KW_FOR = 331, + KW_GOTO = 332, + KW_IF = 333, + KW_INLINE = 334, + KW_INT = 335, + KW_LONG = 336, + KW_MAKE_PROPERTY = 337, + KW_MAKE_PROPERTY2 = 338, + KW_MAKE_SEQ = 339, + KW_MUTABLE = 340, + KW_NAMESPACE = 341, + KW_NEW = 342, + KW_NOEXCEPT = 343, + KW_NULLPTR = 344, + KW_OPERATOR = 345, + KW_OVERRIDE = 346, + KW_PRIVATE = 347, + KW_PROTECTED = 348, + KW_PUBLIC = 349, + KW_REGISTER = 350, + KW_REINTERPRET_CAST = 351, + KW_RETURN = 352, + KW_SHORT = 353, + KW_SIGNED = 354, + KW_SIZEOF = 355, + KW_STATIC = 356, + KW_STATIC_ASSERT = 357, + KW_STATIC_CAST = 358, + KW_STRUCT = 359, + KW_TEMPLATE = 360, + KW_THREAD_LOCAL = 361, + KW_THROW = 362, + KW_TRUE = 363, + KW_TRY = 364, + KW_TYPEDEF = 365, + KW_TYPEID = 366, + KW_TYPENAME = 367, + KW_UNION = 368, + KW_UNSIGNED = 369, + KW_USING = 370, + KW_VIRTUAL = 371, + KW_VOID = 372, + KW_VOLATILE = 373, + KW_WCHAR_T = 374, + KW_WHILE = 375, + START_CPP = 376, + START_CONST_EXPR = 377, + START_TYPE = 378 + }; #endif /* Tokens. */ #define REAL 258 @@ -292,40 +291,24 @@ extern int cppyydebug; #define START_CONST_EXPR 377 #define START_TYPE 378 +/* 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 b9a64f90fc..f71c5a7fd9 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -2349,21 +2349,23 @@ enum: ; enum_decl: - enum_keyword name_no_final ':' enum_element_type + enum_keyword ':' enum_element_type { - current_enum = new CPPEnumType($2, $4, current_scope, @1.file); -} - | enum_keyword name_no_final -{ - current_enum = new CPPEnumType($2, current_scope, @1.file); -} - | enum_keyword ':' enum_element_type -{ - current_enum = new CPPEnumType(NULL, $3, current_scope, @1.file); + current_enum = new CPPEnumType($1, NULL, $3, current_scope, NULL, @1.file); } | enum_keyword { - current_enum = new CPPEnumType(NULL, current_scope, @1.file); + current_enum = new CPPEnumType($1, NULL, current_scope, NULL, @1.file); +} + | enum_keyword name_no_final ':' enum_element_type +{ + CPPScope *new_scope = new CPPScope(current_scope, $2->_names.back(), V_public); + current_enum = new CPPEnumType($1, $2, $4, current_scope, new_scope, @1.file); +} + | enum_keyword name_no_final +{ + CPPScope *new_scope = new CPPScope(current_scope, $2->_names.back(), V_public); + current_enum = new CPPEnumType($1, $2, current_scope, new_scope, @1.file); } ; @@ -2383,14 +2385,12 @@ enum_body_trailing_comma: | enum_body_trailing_comma name ',' { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), NULL, current_lexer, @2); } | enum_body_trailing_comma name '=' const_expr ',' { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name(), $4); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), $4, current_lexer, @2); }; enum_body: @@ -2398,14 +2398,12 @@ enum_body: | enum_body_trailing_comma name { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), NULL, current_lexer, @2); } | enum_body_trailing_comma name '=' const_expr { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name(), $4); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), $4, current_lexer, @2); } ; @@ -2413,6 +2411,14 @@ enum_keyword: KW_ENUM { $$ = CPPExtensionType::T_enum; +} + | KW_ENUM KW_CLASS +{ + $$ = CPPExtensionType::T_enum_class; +} + | KW_ENUM KW_STRUCT +{ + $$ = CPPExtensionType::T_enum_struct; } ; @@ -3495,6 +3501,24 @@ name: | KW_OVERRIDE { $$ = new CPPIdentifier("override", @1); +} + | KW_SIGNED +{ + // This is not a keyword in Python, so it is useful to be able to use this + // in MAKE_PROPERTY definitions, etc. + $$ = new CPPIdentifier("signed", @1); +} + | KW_FLOAT +{ + $$ = new CPPIdentifier("float", @1); +} + | KW_PUBLIC +{ + $$ = new CPPIdentifier("public", @1); +} + | KW_PRIVATE +{ + $$ = new CPPIdentifier("private", @1); } ; diff --git a/dtool/src/cppparser/cppEnumType.cxx b/dtool/src/cppparser/cppEnumType.cxx index bee8ec2f5b..927488585d 100644 --- a/dtool/src/cppparser/cppEnumType.cxx +++ b/dtool/src/cppparser/cppEnumType.cxx @@ -22,42 +22,53 @@ #include "indent.h" /** - * Creates an untyped, unscoped enum. + * Creates an untyped enum. */ CPPEnumType:: -CPPEnumType(CPPIdentifier *ident, CPPScope *current_scope, - const CPPFile &file) : - CPPExtensionType(T_enum, ident, current_scope, file), - _parent_scope(current_scope), +CPPEnumType(Type type, CPPIdentifier *ident, CPPScope *current_scope, + CPPScope *scope, const CPPFile &file) : + CPPExtensionType(type, ident, current_scope, file), + _scope(scope), _element_type(NULL), _last_value(NULL) { + _parent_scope = (type == T_enum) ? current_scope : scope; + if (ident != NULL) { ident->_native_scope = current_scope; } } /** - * Creates a typed but unscoped enum. + * Creates a typed enum. */ CPPEnumType:: -CPPEnumType(CPPIdentifier *ident, CPPType *element_type, - CPPScope *current_scope, const CPPFile &file) : - CPPExtensionType(T_enum, ident, current_scope, file), - _parent_scope(current_scope), +CPPEnumType(Type type, CPPIdentifier *ident, CPPType *element_type, + CPPScope *current_scope, CPPScope *scope, const CPPFile &file) : + CPPExtensionType(type, ident, current_scope, file), + _scope(scope), _element_type(element_type), _last_value(NULL) { + _parent_scope = (type == T_enum) ? current_scope : scope; if (ident != NULL) { ident->_native_scope = current_scope; } } +/** + * Returns true if this is a scoped enum. + */ +bool CPPEnumType:: +is_scoped() const { + return (_type != T_enum); +} + /** * Returns the integral type used to store enum values. */ CPPType *CPPEnumType:: -get_element_type() { +get_underlying_type() { if (_element_type == NULL) { // This enum is untyped. Use a suitable default, ie. 'int'. In the // future, we might want to check whether it fits in an int. @@ -78,11 +89,18 @@ get_element_type() { * */ CPPInstance *CPPEnumType:: -add_element(const string &name, CPPExpression *value) { +add_element(const string &name, CPPExpression *value, CPPPreprocessor *preprocessor, const cppyyltype &pos) { CPPIdentifier *ident = new CPPIdentifier(name); ident->_native_scope = _parent_scope; - CPPInstance *inst = new CPPInstance(get_element_type(), ident); + CPPInstance *inst; + if (_type == T_enum) { + // Weakly typed enum. + inst = new CPPInstance(get_underlying_type(), ident); + } else { + // C++11-style strongly typed enum. + inst = new CPPInstance(this, ident); + } inst->_storage_class |= CPPInstance::SC_constexpr; _elements.push_back(inst); @@ -104,6 +122,41 @@ add_element(const string &name, CPPExpression *value) { } inst->_initializer = value; _last_value = value; + + if (preprocessor != (CPPPreprocessor *)NULL) { + // Same-line comment? + CPPCommentBlock *comment = + preprocessor->get_comment_on(pos.first_line, pos.file); + + if (comment == (CPPCommentBlock *)NULL) { + // Nope. Check for a comment before this line. + comment = + preprocessor->get_comment_before(pos.first_line, pos.file); + + if (comment != NULL) { + // This is a bit of a hack, but it prevents us from picking up a same- + // line comment from the previous line. + if (comment->_line_number != pos.first_line - 1 || + comment->_col_number <= pos.first_column) { + + inst->_leading_comment = comment; + } + } + } else { + inst->_leading_comment = comment; + } + } + + // Add the value to the enum scope (as per C++11), assuming it's not anonymous. + if (_scope != NULL) { + _scope->add_enum_value(inst); + } + + // Now add it to the containing scope as well if it's not an "enum class". + if (!is_scoped() && _parent_scope != NULL) { + _parent_scope->add_enum_value(inst); + } + return inst; } diff --git a/dtool/src/cppparser/cppEnumType.h b/dtool/src/cppparser/cppEnumType.h index 85143d664b..c22742203c 100644 --- a/dtool/src/cppparser/cppEnumType.h +++ b/dtool/src/cppparser/cppEnumType.h @@ -30,15 +30,16 @@ class CPPScope; */ class CPPEnumType : public CPPExtensionType { public: - CPPEnumType(CPPIdentifier *ident, CPPScope *current_scope, - const CPPFile &file); - CPPEnumType(CPPIdentifier *ident, CPPType *element_type, - CPPScope *current_scope, const CPPFile &file); + CPPEnumType(Type type, CPPIdentifier *ident, CPPScope *current_scope, + CPPScope *scope, const CPPFile &file); + CPPEnumType(Type type, CPPIdentifier *ident, CPPType *element_type, + CPPScope *current_scope, CPPScope *scope, const CPPFile &file); - CPPType *get_element_type(); + bool is_scoped() const; + CPPType *get_underlying_type(); - CPPInstance *add_element(const string &name, - CPPExpression *value = (CPPExpression *)NULL); + CPPInstance *add_element(const string &name, CPPExpression *value, + CPPPreprocessor *preprocessor, const cppyyltype &pos); virtual bool is_incomplete() const; @@ -54,6 +55,7 @@ public: virtual CPPEnumType *as_enum_type(); CPPScope *_parent_scope; + CPPScope *_scope; CPPType *_element_type; typedef vector Elements; diff --git a/dtool/src/cppparser/cppExpression.cxx b/dtool/src/cppparser/cppExpression.cxx index 8456c402f5..7ef5ec85fb 100644 --- a/dtool/src/cppparser/cppExpression.cxx +++ b/dtool/src/cppparser/cppExpression.cxx @@ -949,7 +949,7 @@ determine_type() const { case CPPDeclaration::ST_enum: // Convert into integral type. - return t1->as_enum_type()->get_element_type(); + return t1->as_enum_type()->get_underlying_type(); case CPPDeclaration::ST_simple: { diff --git a/dtool/src/cppparser/cppExtensionType.cxx b/dtool/src/cppparser/cppExtensionType.cxx index 9e9aeb4c71..36bdd307fe 100644 --- a/dtool/src/cppparser/cppExtensionType.cxx +++ b/dtool/src/cppparser/cppExtensionType.cxx @@ -229,6 +229,12 @@ operator << (ostream &out, CPPExtensionType::Type type) { case CPPExtensionType::T_union: return out << "union"; + case CPPExtensionType::T_enum_class: + return out << "enum class"; + + case CPPExtensionType::T_enum_struct: + return out << "enum struct"; + default: return out << "***invalid extension type***"; } diff --git a/dtool/src/cppparser/cppExtensionType.h b/dtool/src/cppparser/cppExtensionType.h index 801809f753..e60aeb9f21 100644 --- a/dtool/src/cppparser/cppExtensionType.h +++ b/dtool/src/cppparser/cppExtensionType.h @@ -34,6 +34,8 @@ public: T_class, T_struct, T_union, + T_enum_class, + T_enum_struct, }; CPPExtensionType(Type type, CPPIdentifier *ident, CPPScope *current_scope, diff --git a/dtool/src/cppparser/cppScope.cxx b/dtool/src/cppparser/cppScope.cxx index 158c3884d2..bd12a9025a 100644 --- a/dtool/src/cppparser/cppScope.cxx +++ b/dtool/src/cppparser/cppScope.cxx @@ -124,34 +124,9 @@ add_declaration(CPPDeclaration *decl, CPPScope *global_scope, * */ void CPPScope:: -add_enum_value(CPPInstance *inst, CPPPreprocessor *preprocessor, - const cppyyltype &pos) { +add_enum_value(CPPInstance *inst) { inst->_vis = _current_vis; - if (inst->_leading_comment == (CPPCommentBlock *)NULL) { - // Same-line comment? - CPPCommentBlock *comment = - preprocessor->get_comment_on(pos.first_line, pos.file); - - if (comment == (CPPCommentBlock *)NULL) { - // Nope. Check for a comment before this line. - comment = - preprocessor->get_comment_before(pos.first_line, pos.file); - - if (comment != NULL) { - // This is a bit of a hack, but it prevents us from picking up a same- - // line comment from the previous line. - if (comment->_line_number != pos.first_line - 1 || - comment->_col_number <= pos.first_column) { - - inst->_leading_comment = comment; - } - } - } else { - inst->_leading_comment = comment; - } - } - string name = inst->get_simple_name(); if (!name.empty()) { _enum_values[name] = inst; @@ -183,6 +158,8 @@ define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink) { break; case CPPExtensionType::T_enum: + case CPPExtensionType::T_enum_struct: + case CPPExtensionType::T_enum_class: _enums[name] = type; break; } @@ -606,6 +583,11 @@ find_scope(const string &name, bool recurse) const { if (st != NULL) { return st->_scope; } + + CPPEnumType *et = type->as_enum_type(); + if (et != NULL) { + return et->_scope; + } } Using::const_iterator ui; @@ -645,11 +627,16 @@ find_scope(const string &name, CPPDeclaration::SubstDecl &subst, } CPPStructType *st = type->as_struct_type(); - if (st == NULL) { - return NULL; + if (st != NULL) { + return st->_scope; } - return st->_scope; + CPPEnumType *et = type->as_enum_type(); + if (et != NULL) { + return et->_scope; + } + + return NULL; } /** diff --git a/dtool/src/cppparser/cppScope.h b/dtool/src/cppparser/cppScope.h index 7941a9afb1..387d55d18c 100644 --- a/dtool/src/cppparser/cppScope.h +++ b/dtool/src/cppparser/cppScope.h @@ -61,9 +61,7 @@ public: virtual void add_declaration(CPPDeclaration *decl, CPPScope *global_scope, CPPPreprocessor *preprocessor, const cppyyltype &pos); - virtual void add_enum_value(CPPInstance *inst, - CPPPreprocessor *preprocessor, - const cppyyltype &pos); + virtual void add_enum_value(CPPInstance *inst); virtual void define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink = NULL); virtual void define_namespace(CPPNamespace *scope); diff --git a/dtool/src/cppparser/cppTemplateScope.cxx b/dtool/src/cppparser/cppTemplateScope.cxx index baa36a5619..1e90b3a97e 100644 --- a/dtool/src/cppparser/cppTemplateScope.cxx +++ b/dtool/src/cppparser/cppTemplateScope.cxx @@ -43,11 +43,10 @@ add_declaration(CPPDeclaration *decl, CPPScope *global_scope, * */ void CPPTemplateScope:: -add_enum_value(CPPInstance *inst, CPPPreprocessor *preprocessor, - const cppyyltype &pos) { +add_enum_value(CPPInstance *inst) { inst->_template_scope = this; assert(_parent_scope != NULL); - _parent_scope->add_enum_value(inst, preprocessor, pos); + _parent_scope->add_enum_value(inst); } /** diff --git a/dtool/src/cppparser/cppTemplateScope.h b/dtool/src/cppparser/cppTemplateScope.h index 7ce48f34f3..0159dab680 100644 --- a/dtool/src/cppparser/cppTemplateScope.h +++ b/dtool/src/cppparser/cppTemplateScope.h @@ -33,9 +33,7 @@ public: virtual void add_declaration(CPPDeclaration *decl, CPPScope *global_scope, CPPPreprocessor *preprocessor, const cppyyltype &pos); - virtual void add_enum_value(CPPInstance *inst, - CPPPreprocessor *preprocessor, - const cppyyltype &pos); + virtual void add_enum_value(CPPInstance *inst); virtual void define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink = NULL); virtual void define_namespace(CPPNamespace *scope); diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 5dde93b7d1..69be99605f 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -764,10 +764,6 @@ write_prototypes(ostream &out_code, ostream *out_h) { *out_h << "#include \"py_panda.h\"\n\n"; } - out_code << "//********************************************************************\n"; - out_code << "//*** prototypes for .. Global\n"; - out_code << "//********************************************************************\n"; - /* for (fi = _functions.begin(); fi != _functions.end(); ++fi) { @@ -792,9 +788,9 @@ write_prototypes(ostream &out_code, ostream *out_h) { } } - out_code << "//********************************************************************\n"; - out_code << "//*** prototypes for .. External Objects\n"; - out_code << "//********************************************************************\n"; + out_code << "/**\n"; + out_code << " * Extern declarations for imported classes\n"; + out_code << " */\n"; for (std::set::iterator ii = _external_imports.begin(); ii != _external_imports.end(); ii++) { CPPType *type = (*ii); @@ -897,9 +893,9 @@ write_prototypes_class_external(ostream &out, Object *obj) { std::string preferred_name = obj->_itype.get_name(); - out << "//********************************************************************\n"; - out << "//*** prototypes for external.. " << class_name << "\n"; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Forward declaration of class " << class_name << "\n"; + out << " */\n"; // This typedef is necessary for class templates since we can't pass a comma // to a macro function. @@ -915,9 +911,9 @@ write_prototypes_class(ostream &out_code, ostream *out_h, Object *obj) { std::string ClassName = make_safe_name(obj->_itype.get_scoped_name()); Functions::iterator fi; - out_code << "//********************************************************************\n"; - out_code << "//*** prototypes for .. " << ClassName << "\n"; - out_code << "//********************************************************************\n"; + out_code << "/**\n"; + out_code << " * Forward declarations for top-level class " << ClassName << "\n"; + out_code << " */\n"; /* for (fi = obj->_methods.begin(); fi != obj->_methods.end(); ++fi) { @@ -943,9 +939,9 @@ write_prototypes_class(ostream &out_code, ostream *out_h, Object *obj) { */ void InterfaceMakerPythonNative:: write_functions(ostream &out) { - out << "//********************************************************************\n"; - out << "//*** Functions for .. Global\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Python wrappers for global functions\n" ; + out << " */\n"; FunctionsByIndex::iterator fi; for (fi = _functions.begin(); fi != _functions.end(); ++fi) { Function *func = (*fi).second; @@ -994,9 +990,9 @@ write_class_details(ostream &out, Object *obj) { std::string ClassName = make_safe_name(obj->_itype.get_scoped_name()); std::string cClassName = obj->_itype.get_true_name(); - out << "//********************************************************************\n"; - out << "//*** Functions for .. " << cClassName << "\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Python wrappers for functions of class " << cClassName << "\n" ; + out << " */\n"; // First write out all the wrapper functions for the methods. for (fi = obj->_methods.begin(); fi != obj->_methods.end(); ++fi) { @@ -1183,7 +1179,6 @@ write_sub_module(ostream &out, Object *obj) { // Object * obj = _objects[_embeded_index] ; string class_name = make_safe_name(obj->_itype.get_scoped_name()); string class_ptr; - out << " // Module init upcall for " << obj->_itype.get_scoped_name() << "\n"; if (!obj->_itype.is_typedef()) { out << " // " << *(obj->_itype._cpptype) << "\n"; @@ -1242,9 +1237,9 @@ write_sub_module(ostream &out, Object *obj) { */ void InterfaceMakerPythonNative:: write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) { - out << "//********************************************************************\n"; - out << "//*** Module Object Linker ..\n"; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Module Object Linker ..\n"; + out << " */\n"; Objects::iterator oi; @@ -1305,14 +1300,41 @@ write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) { if (object->_itype.is_enum() && !object->_itype.is_nested() && isExportThisRun(object->_itype._cpptype)) { int enum_count = object->_itype.number_of_enum_values(); - for (int xx = 0; xx < enum_count; xx++) { - string name1 = classNameFromCppName(object->_itype.get_enum_value_name(xx), false); - string name2 = classNameFromCppName(object->_itype.get_enum_value_name(xx), true); - string enum_value = "::" + object->_itype.get_enum_value_name(xx); - out << " PyModule_AddIntConstant(module, \"" << name1 << "\", " << enum_value << ");\n"; - if (name1 != name2) { - // Also write the mangled name, for historical purposes. - out << " PyModule_AddIntConstant(module, \"" << name2 << "\", " << enum_value << ");\n"; + + if (object->_itype.is_scoped_enum()) { + // Convert as Python 3.4 enum. + CPPType *underlying_type = TypeManager::unwrap_const(object->_itype._cpptype->as_enum_type()->get_underlying_type()); + string cast_to = underlying_type->get_local_name(&parser); + out << "#if PY_VERSION_HEX >= 0x03040000\n\n"; + out << " // enum class " << object->_itype.get_scoped_name() << "\n"; + out << " {\n"; + out << " PyObject *members = PyTuple_New(" << enum_count << ");\n"; + out << " PyObject *member;\n"; + for (int xx = 0; xx < enum_count; xx++) { + out << " member = PyTuple_New(2);\n" + " PyTuple_SET_ITEM(member, 0, PyUnicode_FromString(\"" + << object->_itype.get_enum_value_name(xx) << "\"));\n" + " PyTuple_SET_ITEM(member, 1, Dtool_WrapValue((" + << cast_to << ")" << object->_itype.get_scoped_name() << "::" + << object->_itype.get_enum_value_name(xx) << "));\n" + " PyTuple_SET_ITEM(members, " << xx << ", member);\n"; + } + out << " PyModule_AddObject(module, \"" << object->_itype.get_name() + << "\", Dtool_EnumType_Create(\"" << object->_itype.get_name() + << "\", members, \"" << _def->module_name << "\"));\n"; + out << " }\n"; + out << "#endif\n"; + } else { + out << " // enum " << object->_itype.get_scoped_name() << "\n"; + for (int xx = 0; xx < enum_count; xx++) { + string name1 = classNameFromCppName(object->_itype.get_enum_value_name(xx), false); + string name2 = classNameFromCppName(object->_itype.get_enum_value_name(xx), true); + string enum_value = "::" + object->_itype.get_enum_value_name(xx); + out << " PyModule_AddObject(module, \"" << name1 << "\", Dtool_WrapValue(" << enum_value << "));\n"; + if (name1 != name2) { + // Also write the mangled name, for historical purposes. + out << " PyModule_AddObject(module, \"" << name2 << "\", Dtool_WrapValue(" << enum_value << "));\n"; + } } } } @@ -1360,13 +1382,6 @@ write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) { } } } - out << "//********************************************************************\n"; - out << "//*** Module Init Upcall .. Externally Defined Class\n"; - out << "//********************************************************************\n"; - -// for (std::set< std::string >::iterator ii = _external_imports.begin(); ii -// != _external_imports.end(); ii++) out << "Dtool_" <<*ii << -// "._Dtool_ClassInit(NULL);\n"; out << "}\n\n"; @@ -1435,9 +1450,9 @@ write_module(ostream &out, ostream *out_h, InterrogateModuleDef *def) { InterfaceMakerPython::write_module(out, out_h, def); Objects::iterator oi; - out << "//********************************************************************\n"; - out << "//*** Py Init Code For .. GlobalScope\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Module initialization functions for Python module \"" << def->module_name << "\"\n"; + out << " */\n"; out << "#if PY_MAJOR_VERSION >= 3\n" << "static struct PyModuleDef python_native_module = {\n" @@ -1452,14 +1467,16 @@ write_module(ostream &out, ostream *out_h, InterrogateModuleDef *def) { << "#ifdef _WIN32\n" << "extern \"C\" __declspec(dllexport) PyObject *PyInit_" << def->module_name << "();\n" << "#elif __GNUC__ >= 4\n" - << "extern \"C\" __attribute__((visibility(\"default\"))) PyInit_" << def->module_name << "();\n" + << "extern \"C\" __attribute__((visibility(\"default\"))) PyObject *PyInit_" << def->module_name << "();\n" << "#else\n" << "extern \"C\" PyObject *PyInit_" << def->module_name << "();\n" << "#endif\n" << "\n" << "PyObject *PyInit_" << def->module_name << "() {\n" << " LibraryDef *refs[] = {&" << def->library_name << "_moddef, NULL};\n" - << " return Dtool_PyModuleInitHelper(refs, &python_native_module);\n" + << " PyObject *module = Dtool_PyModuleInitHelper(refs, &python_native_module);\n" + << " Dtool_" << def->library_name << "_BuildInstants(module);\n" + << " return module;\n" << "}\n" << "\n" << "#else // Python 2 case\n" @@ -1467,14 +1484,15 @@ write_module(ostream &out, ostream *out_h, InterrogateModuleDef *def) { << "#ifdef _WIN32\n" << "extern \"C\" __declspec(dllexport) void init" << def->module_name << "();\n" << "#elif __GNUC__ >= 4\n" - << "extern \"C\" __attribute__((visibility(\"default\"))) init" << def->module_name << "();\n" + << "extern \"C\" __attribute__((visibility(\"default\"))) void init" << def->module_name << "();\n" << "#else\n" << "extern \"C\" void init" << def->module_name << "();\n" << "#endif\n" << "\n" << "void init" << def->module_name << "() {\n" << " LibraryDef *refs[] = {&" << def->library_name << "_moddef, NULL};\n" - << " Dtool_PyModuleInitHelper(refs, \"" << def->module_name << "\");\n" + << " PyObject *module = Dtool_PyModuleInitHelper(refs, \"" << def->module_name << "\");\n" + << " Dtool_" << def->library_name << "_BuildInstants(module);\n" << "}\n" << "\n" << "#endif\n" @@ -1520,9 +1538,9 @@ write_module_class(ostream &out, Object *obj) { } Functions::iterator fi; - out << "//********************************************************************\n"; - out << "//*** Py Init Code For .. " << ClassName << " | " << export_class_name << "\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Python method tables for " << ClassName << " (" << export_class_name << ")\n" ; + out << " */\n"; out << "static PyMethodDef Dtool_Methods_" << ClassName << "[] = {\n"; SlottedFunctions slots; @@ -2449,11 +2467,7 @@ write_module_class(ostream &out, Object *obj) { << classNameFromCppName(ClassName, false) << "\");\n"; } out << " std::string ss = os.str();\n"; - out << "#if PY_MAJOR_VERSION >= 3\n"; - out << " return PyUnicode_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#else\n"; - out << " return PyString_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#endif\n"; + out << " return Dtool_WrapValue(ss);\n"; out << "}\n\n"; has_local_repr = true; } @@ -2479,11 +2493,7 @@ write_module_class(ostream &out, Object *obj) { out << " local_this->write(os);\n"; } out << " std::string ss = os.str();\n"; - out << "#if PY_MAJOR_VERSION >= 3\n"; - out << " return PyUnicode_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#else\n"; - out << " return PyString_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#endif\n"; + out << " return Dtool_WrapValue(ss);\n"; out << "}\n\n"; has_local_str = true; } @@ -3037,7 +3047,7 @@ write_module_class(ostream &out, Object *obj) { } else if (nested_obj->_itype.is_typedef()) { ++num_dict_items; - } else if (nested_obj->_itype.is_enum()) { + } else if (nested_obj->_itype.is_enum() && !nested_obj->_itype.is_scoped_enum()) { CPPEnumType *enum_type = nested_obj->_itype._cpptype->as_enum_type(); num_dict_items += 2 * enum_type->_elements.size(); } @@ -3095,8 +3105,33 @@ write_module_class(ostream &out, Object *obj) { // No need to support mangled names for nested typedefs; we only added // support recently. + } else if (nested_obj->_itype.is_scoped_enum()) { + // Convert enum class as Python 3.4 enum. + int enum_count = nested_obj->_itype.number_of_enum_values(); + CPPType *underlying_type = TypeManager::unwrap_const(nested_obj->_itype._cpptype->as_enum_type()->get_underlying_type()); + string cast_to = underlying_type->get_local_name(&parser); + out << "#if PY_VERSION_HEX >= 0x03040000\n\n"; + out << " // enum class " << nested_obj->_itype.get_scoped_name() << ";\n"; + out << " {\n"; + out << " PyObject *members = PyTuple_New(" << enum_count << ");\n"; + out << " PyObject *member;\n"; + for (int xx = 0; xx < enum_count; xx++) { + out << " member = PyTuple_New(2);\n" + " PyTuple_SET_ITEM(member, 0, PyUnicode_FromString(\"" + << nested_obj->_itype.get_enum_value_name(xx) << "\"));\n" + " PyTuple_SET_ITEM(member, 1, Dtool_WrapValue((" + << cast_to << ")" << nested_obj->_itype.get_scoped_name() << "::" + << nested_obj->_itype.get_enum_value_name(xx) << "));\n" + " PyTuple_SET_ITEM(members, " << xx << ", member);\n"; + } + out << " PyDict_SetItemString(dict, \"" << nested_obj->_itype.get_name() + << "\", Dtool_EnumType_Create(\"" << nested_obj->_itype.get_name() + << "\", members, \"" << _def->module_name << "\"));\n"; + out << " }\n"; + out << "#endif\n"; + } else if (nested_obj->_itype.is_enum()) { - out << " // Enum " << nested_obj->_itype.get_scoped_name() << ";\n"; + out << " // enum " << nested_obj->_itype.get_scoped_name() << ";\n"; CPPEnumType *enum_type = nested_obj->_itype._cpptype->as_enum_type(); CPPEnumType::Elements::const_iterator ei; for (ei = enum_type->_elements.begin(); ei != enum_type->_elements.end(); ++ei) { @@ -3111,9 +3146,9 @@ write_module_class(ostream &out, Object *obj) { name2 = name1; } string enum_value = obj->_itype.get_scoped_name() + "::" + (*ei)->get_simple_name(); - out << " PyDict_SetItemString(dict, \"" << name1 << "\", PyLongOrInt_FromLong(" << enum_value << "));\n"; + out << " PyDict_SetItemString(dict, \"" << name1 << "\", Dtool_WrapValue(" << enum_value << "));\n"; if (name1 != name2) { - out << " PyDict_SetItemString(dict, \"" << name2 << "\", PyLongOrInt_FromLong(" << enum_value << "));\n"; + out << " PyDict_SetItemString(dict, \"" << name2 << "\", Dtool_WrapValue(" << enum_value << "));\n"; } } } @@ -3340,7 +3375,7 @@ write_function_for_name(ostream &out, Object *obj, int max_required_args = 0; bool all_nonconst = true; - out << "/******************************************************************\n" << " * Python type method wrapper for\n"; + out << "/**\n * Python function wrapper for:\n"; for (ri = remaps.begin(); ri != remaps.end(); ++ri) { remap = (*ri); if (is_remap_legal(remap)) { @@ -3369,7 +3404,7 @@ write_function_for_name(ostream &out, Object *obj, } } - out << " *******************************************************************/\n"; + out << " */\n"; out << function_name << " {\n"; @@ -6033,164 +6068,16 @@ pack_return_value(ostream &out, int indent_level, FunctionRemap *remap, CPPType *orig_type = return_type->get_orig_type(); CPPType *type = return_type->get_new_type(); - if (return_type->new_type_is_atomic_string()) { - if (TypeManager::is_char_pointer(orig_type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromString(" << return_expr << ");\n"; - out << "#else\n"; - indent(out, indent_level) << " return " - << "PyString_FromString(" << return_expr << ");\n"; - out << "#endif\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_wchar_pointer(orig_type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - indent(out, indent_level+2) - << "return PyUnicode_FromWideChar(" - << return_expr << ", wcslen(" << return_expr << "));\n"; - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_wstring(orig_type)) { - indent(out, indent_level) - << "return PyUnicode_FromWideChar(" - << return_expr << ".data(), (int) " << return_expr << ".length());\n"; - - } else if (TypeManager::is_const_ptr_to_basic_string_wchar(orig_type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - indent(out, indent_level) << " return " - << "PyUnicode_FromWideChar(" - << return_expr << "->data(), (int) " << return_expr << "->length());\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_const_ptr_to_basic_string_char(orig_type)) { - indent(out, indent_level) << "if (" << return_expr<< " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromStringAndSize(" - << return_expr << "->data(), (Py_ssize_t)" << return_expr << "->length());\n"; - out << "#else\n"; - indent(out, indent_level) << " return " - << "PyString_FromStringAndSize(" - << return_expr << "->data(), (Py_ssize_t)" << return_expr << "->length());\n"; - out << "#endif\n"; - - indent(out, indent_level) << "}\n"; - - } else { - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) - << "return PyUnicode_FromStringAndSize(" - << return_expr << ".data(), (Py_ssize_t)" << return_expr << ".length());\n"; - out << "#else\n"; - indent(out, indent_level) - << "return PyString_FromStringAndSize(" - << return_expr << ".data(), (Py_ssize_t)" << return_expr << ".length());\n"; - out << "#endif\n"; - } - - } else if (TypeManager::is_bool(type)) { + if (return_type->new_type_is_atomic_string() || + TypeManager::is_simple(type) || + TypeManager::is_char_pointer(type) || + TypeManager::is_wchar_pointer(type) || + TypeManager::is_pointer_to_PyObject(type) || + TypeManager::is_pointer_to_Py_buffer(type)) { + // Most types are now handled by the many overloads of Dtool_WrapValue, + // defined in py_panda.h. indent(out, indent_level) - << "return PyBool_FromLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_ssize(type)) { - indent(out, indent_level) - << "return PyLongOrInt_FromSsize_t(" << return_expr << ");\n"; - - } else if (TypeManager::is_size(type)) { - indent(out, indent_level) - << "return PyLongOrInt_FromSize_t(" << return_expr << ");\n"; - - } else if (TypeManager::is_char(type)) { - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) - << "return PyUnicode_FromStringAndSize(&" << return_expr << ", 1);\n"; - out << "#else\n"; - indent(out, indent_level) - << "return PyString_FromStringAndSize(&" << return_expr << ", 1);\n"; - out << "#endif\n"; - - } else if (TypeManager::is_wchar(type)) { - indent(out, indent_level) - << "return PyUnicode_FromWideChar(&" << return_expr << ", 1);\n"; - - } else if (TypeManager::is_unsigned_longlong(type)) { - indent(out, indent_level) - << "return PyLong_FromUnsignedLongLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_longlong(type)) { - indent(out, indent_level) - << "return PyLong_FromLongLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_unsigned_integer(type)){ - indent(out, indent_level) - << "return PyLongOrInt_FromUnsignedLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_integer(type)) { - indent(out, indent_level) - << "return PyLongOrInt_FromLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_float(type)) { - indent(out, indent_level) - << "return PyFloat_FromDouble(" << return_expr << ");\n"; - - } else if (TypeManager::is_char_pointer(type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromString(" << return_expr << ");\n"; - out << "#else\n"; - indent(out, indent_level) << " return " - << "PyString_FromString(" << return_expr << ");\n"; - out << "#endif\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_wchar_pointer(type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromWideChar(" - << return_expr << ", wcslen(" << return_expr << "));\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_pointer_to_PyObject(type)) { - indent(out, indent_level) - << "return " << return_expr << ";\n"; - - } else if (TypeManager::is_pointer_to_Py_buffer(type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - indent(out, indent_level) << " return " - << "PyMemoryView_FromBuffer(" << return_expr << ");\n"; - indent(out, indent_level) << "}\n"; + << "return Dtool_WrapValue(" << return_expr << ");\n"; } else if (TypeManager::is_pointer(type)) { bool is_const = TypeManager::is_const_pointer_to_anything(type); @@ -6234,13 +6121,13 @@ pack_return_value(ostream &out, int indent_level, FunctionRemap *remap, } else { indent(out, indent_level) << "Should Never Reach This InterfaceMakerPythonNative::pack_python_value"; - // << "return PyLongOrInt_FromLong((int) " << return_expr << ");\n"; + // << "return Dtool_Integer((int) " << return_expr << ");\n"; } } else { // Return None. indent(out, indent_level) - << "return Py_BuildValue(\"\");\n"; + << "return Py_BuildValue(\"\"); // Don't know how to wrap type.\n"; } } @@ -6288,11 +6175,7 @@ write_make_seq(ostream &out, Object *obj, const std::string &ClassName, " PyObject *tuple = PyTuple_New(count);\n" "\n" " for (Py_ssize_t i = 0; i < count; ++i) {\n" - "#if PY_MAJOR_VERSION >= 3\n" - " PyObject *index = PyLong_FromSsize_t(i);\n" - "#else\n" - " PyObject *index = PyInt_FromSsize_t(i);\n" - "#endif\n"; + " PyObject *index = Dtool_WrapValue(i);\n"; switch (elem_getter->_args_type) { case AT_keyword_args: diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index b11b2a4d3e..762747cc42 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -2838,6 +2838,10 @@ define_enum_type(InterrogateType &itype, CPPEnumType *cpptype) { return; } + if (cpptype->is_scoped()) { + itype._flags |= InterrogateType::F_scoped_enum; + } + int next_value = 0; CPPEnumType::Elements::const_iterator ei; @@ -2919,6 +2923,8 @@ define_extension_type(InterrogateType &itype, CPPExtensionType *cpptype) { // But we can at least indicate which of the various extension types it is. switch (cpptype->_type) { case CPPExtensionType::T_enum: + case CPPExtensionType::T_enum_class: + case CPPExtensionType::T_enum_struct: itype._flags |= InterrogateType::F_enum; break; diff --git a/dtool/src/interrogatedb/interrogateType.I b/dtool/src/interrogatedb/interrogateType.I index be8e40960f..f6037fc571 100644 --- a/dtool/src/interrogatedb/interrogateType.I +++ b/dtool/src/interrogatedb/interrogateType.I @@ -205,6 +205,14 @@ is_enum() const { return (_flags & F_enum) != 0; } +/** + * Returns true if enum values are only available under a scope. + */ +INLINE bool InterrogateType:: +is_scoped_enum() const { + return (_flags & F_scoped_enum) != 0; +} + /** * */ diff --git a/dtool/src/interrogatedb/interrogateType.h b/dtool/src/interrogatedb/interrogateType.h index 3887569694..a1cedd1d82 100644 --- a/dtool/src/interrogatedb/interrogateType.h +++ b/dtool/src/interrogatedb/interrogateType.h @@ -65,6 +65,7 @@ public: INLINE int get_array_size() const; INLINE bool is_enum() const; + INLINE bool is_scoped_enum() const; INLINE int number_of_enum_values() const; INLINE const string &get_enum_value_name(int n) const; INLINE const string &get_enum_value_scoped_name(int n) const; @@ -136,6 +137,7 @@ private: F_unpublished = 0x100000, F_typedef = 0x200000, F_array = 0x400000, + F_scoped_enum = 0x800000, }; public: diff --git a/dtool/src/interrogatedb/py_panda.I b/dtool/src/interrogatedb/py_panda.I new file mode 100644 index 0000000000..51e10db446 --- /dev/null +++ b/dtool/src/interrogatedb/py_panda.I @@ -0,0 +1,203 @@ +/** + * PANDA 3D SOFTWARE + * Copyright (c) Carnegie Mellon University. All rights reserved. + * + * All use of this software is subject to the terms of the revised BSD + * license. You should have received a copy of this license along + * with this source code in a file named "LICENSE." + * + * @file py_panda.I + * @author rdb + * @date 2016-06-06 + */ + +/** + * Template function that can be used to extract any TypedObject pointer from + * a wrapped Python object. + */ +template INLINE bool +DTOOL_Call_ExtractThisPointer(PyObject *self, T *&into) { + if (DtoolCanThisBeAPandaInstance(self)) { + Dtool_PyTypedObject *target_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + if (target_class != NULL) { + into = (T*) ((Dtool_PyInstDef *)self)->_My_Type->_Dtool_UpcastInterface(self, target_class); + return (into != NULL); + } + } + into = NULL; + return false; +} + +/** + * These functions wrap a pointer for a class that defines get_type_handle(). + */ +template INLINE PyObject * +DTool_CreatePyInstance(const T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, true); +} + +template INLINE PyObject * +DTool_CreatePyInstance(T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, false); +} + +template INLINE PyObject * +DTool_CreatePyInstanceTyped(const T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, true, obj->get_type().get_index()); +} + +template INLINE PyObject * +DTool_CreatePyInstanceTyped(T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, false, obj->get_type().get_index()); +} + +/** + * The following functions wrap an arbitrary C++ value into a PyObject. + */ +ALWAYS_INLINE PyObject *Dtool_WrapValue(int value) { +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromLong((long)value); +#else + return PyInt_FromLong((long)value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned int value) { +#if PY_MAJOR_VERSION >= 3 && SIZEOF_INT < SIZEOF_LONG + return PyLong_FromLong((long)value); +#elif PY_MAJOR_VERSION >= 3 + return PyLong_FromUnsignedLong((unsigned long)value); +#elif SIZEOF_INT < SIZEOF_LONG + return PyInt_FromLong((long)value); +#else + return (value > LONG_MAX) + ? PyLong_FromUnsignedLong((unsigned long)value) + : PyInt_FromLong((long)value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(long value) { +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromLong(value); +#else + return PyInt_FromLong(value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long value) { +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromUnsignedLong(value); +#else + return (value > LONG_MAX) + ? PyLong_FromUnsignedLong(value) + : PyInt_FromLong((long)value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(long long value) { + return PyLong_FromLongLong(value); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long long value) { + return PyLong_FromUnsignedLongLong(value); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(bool value) { + PyObject *result = (value ? Py_True : Py_False); + Py_INCREF(result); + return result; +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(double value) { + return PyFloat_FromDouble(value); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const char *value) { + if (value == (const char *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromString(value); +#else + return PyString_FromString(value); +#endif + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const wchar_t *value) { + if (value == (const wchar_t *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { + return PyUnicode_FromWideChar(value, (Py_ssize_t)wcslen(value)); + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string &value) { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromStringAndSize(value.data(), (Py_ssize_t)value.length()); +#else + return PyString_FromStringAndSize(value.data(), (Py_ssize_t)value.length()); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring &value) { + return PyUnicode_FromWideChar(value.data(), (Py_ssize_t)value.length()); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string *value) { + if (value == (const std::string *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromStringAndSize(value->data(), (Py_ssize_t)value->length()); +#else + return PyString_FromStringAndSize(value->data(), (Py_ssize_t)value->length()); +#endif + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring *value) { + if (value == (const std::wstring *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { + return PyUnicode_FromWideChar(value->data(), (Py_ssize_t)value->length()); + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(char value) { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromStringAndSize(&value, 1); +#else + return PyString_FromStringAndSize(&value, 1); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(wchar_t value) { + return PyUnicode_FromWideChar(&value, 1); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value) { + return value; +} + +#if PY_MAJOR_VERSION >= 0x02060000 +ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value) { + if (value == (Py_buffer *)NULL) { + return value; + } else { + return PyMemoryView_FromBuffer(value); + } +} +#endif diff --git a/dtool/src/interrogatedb/py_panda.cxx b/dtool/src/interrogatedb/py_panda.cxx index fc6338170e..a7cfa63ed5 100644 --- a/dtool/src/interrogatedb/py_panda.cxx +++ b/dtool/src/interrogatedb/py_panda.cxx @@ -335,6 +335,33 @@ PyObject *_Dtool_Return(PyObject *value) { return value; } +/** + * Creates a Python 3.4-style enum type. Steals reference to 'names'. + */ +PyObject *Dtool_EnumType_Create(const char *name, PyObject *names, const char *module) { + static PyObject *enum_class = NULL; + static PyObject *enum_meta = NULL; + static PyObject *enum_create = NULL; + if (enum_meta == NULL) { + PyObject *enum_module = PyImport_ImportModule("enum"); + nassertr_always(enum_module != NULL, NULL); + + enum_class = PyObject_GetAttrString(enum_module, "Enum"); + enum_meta = PyObject_GetAttrString(enum_module, "EnumMeta"); + enum_create = PyObject_GetAttrString(enum_meta, "_create_"); + nassertr(enum_meta != NULL, NULL); + } + + PyObject *result = PyObject_CallFunction(enum_create, (char *)"OsN", enum_class, name, names); + nassertr(result != NULL, NULL); + if (module != NULL) { + PyObject *modstr = PyUnicode_FromString(module); + PyObject_SetAttrString(result, "__module__", modstr); + Py_DECREF(modstr); + } + return result; +} + /** */ @@ -833,19 +860,4 @@ PyObject *map_deepcopy_to_copy(PyObject *self, PyObject *args) { return PyObject_CallMethod(self, (char *)"__copy__", (char *)"()"); } -/** - * Similar to PyLong_FromUnsignedLong(), but returns either a regular integer - * or a long integer, according to whether the indicated value will fit. - */ -#if PY_MAJOR_VERSION < 3 -EXPCL_INTERROGATEDB PyObject * -PyLongOrInt_FromUnsignedLong(unsigned long value) { - if ((long)value < 0) { - return PyLong_FromUnsignedLong(value); - } else { - return PyInt_FromLong((long)value); - } -} -#endif - #endif // HAVE_PYTHON diff --git a/dtool/src/interrogatedb/py_panda.h b/dtool/src/interrogatedb/py_panda.h index 422fb5ffe1..22891799dd 100644 --- a/dtool/src/interrogatedb/py_panda.h +++ b/dtool/src/interrogatedb/py_panda.h @@ -103,10 +103,6 @@ inline PyObject* doPy_RETURN_FALSE() #define nb_inplace_divide nb_inplace_true_divide #define PyLongOrInt_Check(x) PyLong_Check(x) -#define PyLongOrInt_FromSize_t PyLong_FromSize_t -#define PyLongOrInt_FromSsize_t PyLong_FromSsize_t -#define PyLongOrInt_FromLong PyLong_FromLong -#define PyLongOrInt_FromUnsignedLong PyLong_FromUnsignedLong #define PyLongOrInt_AS_LONG PyLong_AS_LONG #define PyInt_Check PyLong_Check #define PyInt_AsLong PyLong_AsLong @@ -114,9 +110,6 @@ inline PyObject* doPy_RETURN_FALSE() #else #define PyLongOrInt_Check(x) (PyInt_Check(x) || PyLong_Check(x)) // PyInt_FromSize_t automatically picks the right type. -#define PyLongOrInt_FromSize_t PyInt_FromSize_t -#define PyLongOrInt_FromSsize_t PyInt_FromSsize_t -#define PyLongOrInt_FromLong PyInt_FromLong #define PyLongOrInt_AS_LONG PyInt_AsLong // For more portably defining hash functions. @@ -159,9 +152,6 @@ typedef void *(*DowncastFunction)(void *, Dtool_PyTypedObject *); typedef void *(*CoerceFunction)(PyObject *, void *); typedef void (*ModuleClassInitFunction)(PyObject *module); -// inline Dtool_PyTypedObject * Dtool_RuntimeTypeDtoolType(int -// type); inline void Dtool_Deallocate_General(PyObject * self); inline -// int DTOOL_PyObject_Compare(PyObject *v1, PyObject *v2); THIS IS THE // INSTANCE CONTAINER FOR ALL panda py objects.... struct Dtool_PyInstDef { PyObject_HEAD @@ -300,17 +290,7 @@ EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer(PyObject *self, Dtool_PyT EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer_NonConst(PyObject *self, Dtool_PyTypedObject &classdef, void **answer, const char *method_name); -template INLINE bool DTOOL_Call_ExtractThisPointer(PyObject *self, T *&into) { - if (DtoolCanThisBeAPandaInstance(self)) { - Dtool_PyTypedObject *target_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - if (target_class != NULL) { - into = (T*) ((Dtool_PyInstDef *)self)->_My_Type->_Dtool_UpcastInterface(self, target_class); - return (into != NULL); - } - } - into = NULL; - return false; -} +template INLINE bool DTOOL_Call_ExtractThisPointer(PyObject *self, T *&into); // Functions related to error reporting. EXPCL_INTERROGATEDB bool _Dtool_CheckErrorOccurred(); @@ -348,6 +328,12 @@ EXPCL_INTERROGATEDB PyObject *_Dtool_Return(PyObject *value); #define Dtool_Return(value) _Dtool_Return(value) #endif +/** + * Wrapper around Python 3.4's enum library, which does not have a C API. + */ +EXPCL_INTERROGATEDB PyObject *Dtool_EnumType_Create(const char *name, PyObject *names, + const char *module = NULL); + /** */ @@ -359,29 +345,10 @@ EXPCL_INTERROGATEDB PyObject *DTool_CreatePyInstance(void *local_this, Dtool_PyT // These template methods allow use when the Dtool_PyTypedObject is not known. // They require a get_class_type() to be defined for the class. -template INLINE PyObject *DTool_CreatePyInstance(const T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, true); -} - -template INLINE PyObject *DTool_CreatePyInstance(T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, false); -} - -template INLINE PyObject *DTool_CreatePyInstanceTyped(const T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, true, obj->get_type().get_index()); -} - -template INLINE PyObject *DTool_CreatePyInstanceTyped(T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, false, obj->get_type().get_index()); -} +template INLINE PyObject *DTool_CreatePyInstance(const T *obj, bool memory_rules); +template INLINE PyObject *DTool_CreatePyInstance(T *obj, bool memory_rules); +template INLINE PyObject *DTool_CreatePyInstanceTyped(const T *obj, bool memory_rules); +template INLINE PyObject *DTool_CreatePyInstanceTyped(T *obj, bool memory_rules); // Macro(s) class definition .. Used to allocate storage and init some values // for a Dtool Py Type object. @@ -474,11 +441,32 @@ copy_from_copy_constructor(PyObject *self, PyObject *noargs); EXPCL_INTERROGATEDB PyObject * map_deepcopy_to_copy(PyObject *self, PyObject *args); -#if PY_MAJOR_VERSION < 3 -// In the Python 3 case, it is defined as a macro, at the beginning of this -// file. -EXPCL_INTERROGATEDB PyObject * -PyLongOrInt_FromUnsignedLong(unsigned long value); +/** + * These functions convert a C++ value into the corresponding Python object. + * This used to be generated by the code generator, but it seems more reliable + * and maintainable to define these as overloads and have the compiler sort + * it out. + */ +ALWAYS_INLINE PyObject *Dtool_WrapValue(int value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned int value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(long long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(bool value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(double value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const char *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const wchar_t *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string &value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring &value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(char value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(wchar_t value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value); + +#if PY_MAJOR_VERSION >= 0x02060000 +ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value); #endif EXPCL_INTERROGATEDB extern struct Dtool_PyTypedObject Dtool_DTOOL_SUPER_BASE; @@ -486,6 +474,8 @@ EXPCL_INTERROGATEDB extern void Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(PyObjec #define Dtool_Ptr_DTOOL_SUPER_BASE (&Dtool_DTOOL_SUPER_BASE) +#include "py_panda.I" + #endif // HAVE_PYTHON && !CPPPARSER #endif // PY_PANDA_H_ diff --git a/panda/src/express/globPattern_ext.cxx b/panda/src/express/globPattern_ext.cxx index e6328bc5c0..359c34365f 100644 --- a/panda/src/express/globPattern_ext.cxx +++ b/panda/src/express/globPattern_ext.cxx @@ -25,14 +25,7 @@ match_files(const Filename &cwd) const { PyObject *result = PyList_New(contents.size()); for (size_t i = 0; i < contents.size(); ++i) { - const string &filename = contents[i]; -#if PY_MAJOR_VERSION >= 3 - // This function expects UTF-8. - PyObject *str = PyUnicode_FromStringAndSize(filename.data(), filename.size()); -#else - PyObject *str = PyString_FromStringAndSize(filename.data(), filename.size()); -#endif - PyList_SET_ITEM(result, i, str); + PyList_SET_ITEM(result, i, Dtool_WrapValue(contents[i])); } return result; diff --git a/panda/src/linmath/lpoint2_ext_src.I b/panda/src/linmath/lpoint2_ext_src.I index 88e146e462..371017955d 100644 --- a/panda/src/linmath/lpoint2_ext_src.I +++ b/panda/src/linmath/lpoint2_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -53,7 +43,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LPoint2) *vec = new FLOATNAME(LPoint2); @@ -89,5 +79,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase2. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lpoint3_ext_src.I b/panda/src/linmath/lpoint3_ext_src.I index dc0d68240d..e695988177 100644 --- a/panda/src/linmath/lpoint3_ext_src.I +++ b/panda/src/linmath/lpoint3_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -54,7 +44,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LPoint2) *vec = new FLOATNAME(LPoint2); @@ -90,5 +80,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase2. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lpoint4_ext_src.I b/panda/src/linmath/lpoint4_ext_src.I index 4a17134496..bef1b1d012 100644 --- a/panda/src/linmath/lpoint4_ext_src.I +++ b/panda/src/linmath/lpoint4_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -56,9 +46,9 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: if (attr_name[0] == 'w') { - return PY_FROM_FLOATTYPE(_this->_v(3)); + return Dtool_WrapValue(_this->_v(3)); } else { - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); } case 2: { @@ -95,5 +85,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase4. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lvecBase2_ext_src.I b/panda/src/linmath/lvecBase2_ext_src.I index 7355fd5e61..40399dc327 100644 --- a/panda/src/linmath/lvecBase2_ext_src.I +++ b/panda/src/linmath/lvecBase2_ext_src.I @@ -14,16 +14,13 @@ #ifdef FLOATTYPE_IS_INT #if PY_MAJOR_VERSION >= 3 #define PYNUMBER_FLOATTYPE PyNumber_Long -#define PY_FROM_FLOATTYPE PyLong_FromLong #define PY_AS_FLOATTYPE PyLong_AS_LONG #else #define PYNUMBER_FLOATTYPE PyNumber_Int -#define PY_FROM_FLOATTYPE PyInt_FromLong #define PY_AS_FLOATTYPE PyInt_AS_LONG #endif #else #define PYNUMBER_FLOATTYPE PyNumber_Float -#define PY_FROM_FLOATTYPE PyFloat_FromDouble #define PY_AS_FLOATTYPE (FLOATTYPE)PyFloat_AsDouble #endif @@ -88,7 +85,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVecBase2) *vec = new FLOATNAME(LVecBase2); @@ -222,5 +219,4 @@ __ipow__(PyObject *self, FLOATTYPE exponent) { } #undef PYNUMBER_FLOATTYPE -#undef PY_FROM_FLOATTYPE #undef PY_AS_FLOATTYPE diff --git a/panda/src/linmath/lvecBase3_ext_src.I b/panda/src/linmath/lvecBase3_ext_src.I index 4450a3ac30..a2705edbb6 100644 --- a/panda/src/linmath/lvecBase3_ext_src.I +++ b/panda/src/linmath/lvecBase3_ext_src.I @@ -14,16 +14,13 @@ #ifdef FLOATTYPE_IS_INT #if PY_MAJOR_VERSION >= 3 #define PYNUMBER_FLOATTYPE PyNumber_Long -#define PY_FROM_FLOATTYPE PyLong_FromLong #define PY_AS_FLOATTYPE PyLong_AS_LONG #else #define PYNUMBER_FLOATTYPE PyNumber_Int -#define PY_FROM_FLOATTYPE PyInt_FromLong #define PY_AS_FLOATTYPE PyInt_AS_LONG #endif #else #define PYNUMBER_FLOATTYPE PyNumber_Float -#define PY_FROM_FLOATTYPE PyFloat_FromDouble #define PY_AS_FLOATTYPE (FLOATTYPE)PyFloat_AsDouble #endif @@ -89,7 +86,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVecBase2) *vec = new FLOATNAME(LVecBase2); @@ -225,5 +222,4 @@ __ipow__(PyObject *self, FLOATTYPE exponent) { } #undef PYNUMBER_FLOATTYPE -#undef PY_FROM_FLOATTYPE #undef PY_AS_FLOATTYPE diff --git a/panda/src/linmath/lvecBase4_ext_src.I b/panda/src/linmath/lvecBase4_ext_src.I index a802815db0..76eee6b7bf 100644 --- a/panda/src/linmath/lvecBase4_ext_src.I +++ b/panda/src/linmath/lvecBase4_ext_src.I @@ -14,16 +14,13 @@ #ifdef FLOATTYPE_IS_INT #if PY_MAJOR_VERSION >= 3 #define PYNUMBER_FLOATTYPE PyNumber_Long -#define PY_FROM_FLOATTYPE PyLong_FromLong #define PY_AS_FLOATTYPE PyLong_AS_LONG #else #define PYNUMBER_FLOATTYPE PyNumber_Int -#define PY_FROM_FLOATTYPE PyInt_FromLong #define PY_AS_FLOATTYPE PyInt_AS_LONG #endif #else #define PYNUMBER_FLOATTYPE PyNumber_Float -#define PY_FROM_FLOATTYPE PyFloat_FromDouble #define PY_AS_FLOATTYPE (FLOATTYPE)PyFloat_AsDouble #endif @@ -91,9 +88,9 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: if (attr_name[0] == 'w') { - return PY_FROM_FLOATTYPE(_this->_v(3)); + return Dtool_WrapValue(_this->_v(3)); } else { - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); } case 2: { @@ -233,5 +230,4 @@ __ipow__(PyObject *self, FLOATTYPE exponent) { } #undef PYNUMBER_FLOATTYPE -#undef PY_FROM_FLOATTYPE #undef PY_AS_FLOATTYPE diff --git a/panda/src/linmath/lvector2_ext_src.I b/panda/src/linmath/lvector2_ext_src.I index b08f96f217..dd4dc5e95e 100644 --- a/panda/src/linmath/lvector2_ext_src.I +++ b/panda/src/linmath/lvector2_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -53,7 +43,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVector2) *vec = new FLOATNAME(LVector2); @@ -89,5 +79,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase2. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lvector3_ext_src.I b/panda/src/linmath/lvector3_ext_src.I index 36012e7917..155c2a013a 100644 --- a/panda/src/linmath/lvector3_ext_src.I +++ b/panda/src/linmath/lvector3_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -54,7 +44,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVector2) *vec = new FLOATNAME(LVector2); @@ -90,5 +80,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase3. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lvector4_ext_src.I b/panda/src/linmath/lvector4_ext_src.I index 4964a1fc68..a188d6c4a2 100644 --- a/panda/src/linmath/lvector4_ext_src.I +++ b/panda/src/linmath/lvector4_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -56,9 +46,9 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: if (attr_name[0] == 'w') { - return PY_FROM_FLOATTYPE(_this->_v(3)); + return Dtool_WrapValue(_this->_v(3)); } else { - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); } case 2: { @@ -95,5 +85,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase4. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/pgraph/pandaNode_ext.cxx b/panda/src/pgraph/pandaNode_ext.cxx index 9a12edabd0..9395a56e3b 100644 --- a/panda/src/pgraph/pandaNode_ext.cxx +++ b/panda/src/pgraph/pandaNode_ext.cxx @@ -187,15 +187,9 @@ get_tag_keys() const { vector_string keys; _this->get_tag_keys(keys); - PyObject *result = PyList_New(keys.size()); + PyObject *result = PyTuple_New(keys.size()); for (size_t i = 0; i < keys.size(); ++i) { - const string &tag_name = keys[i]; -#if PY_MAJOR_VERSION >= 3 - PyObject *str = PyUnicode_FromStringAndSize(tag_name.data(), tag_name.size()); -#else - PyObject *str = PyString_FromStringAndSize(tag_name.data(), tag_name.size()); -#endif - PyList_SET_ITEM(result, i, str); + PyTuple_SET_ITEM(result, i, Dtool_WrapValue(keys[i])); } return result; @@ -209,15 +203,9 @@ get_python_tag_keys() const { vector_string keys; get_python_tag_keys(keys); - PyObject *result = PyList_New(keys.size()); + PyObject *result = PyTuple_New(keys.size()); for (size_t i = 0; i < keys.size(); ++i) { - const string &tag_name = keys[i]; -#if PY_MAJOR_VERSION >= 3 - PyObject *str = PyUnicode_FromStringAndSize(tag_name.data(), tag_name.size()); -#else - PyObject *str = PyString_FromStringAndSize(tag_name.data(), tag_name.size()); -#endif - PyList_SET_ITEM(result, i, str); + PyTuple_SET_ITEM(result, i, Dtool_WrapValue(keys[i])); } return result;