From ce29ae490de0575bd851c3f8fc7eb2d053c7702e Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 11 May 2016 00:16:53 +0200 Subject: [PATCH] Interrogate improvements, more properties, MAKE_SEQ_PROPERTY --- dtool/src/cppparser/cppBison.cxx.prebuilt | 8227 +++++++++-------- dtool/src/cppparser/cppBison.h.prebuilt | 172 +- dtool/src/cppparser/cppBison.yxx | 118 + dtool/src/cppparser/cppMakeProperty.cxx | 22 +- dtool/src/cppparser/cppMakeProperty.h | 4 + dtool/src/cppparser/cppPreprocessor.cxx | 2 + dtool/src/dtoolbase/dtoolbase.h | 2 + dtool/src/dtoolbase/typeHandle.h | 2 + dtool/src/dtoolbase/typeRegistry.h | 3 + dtool/src/dtoolutil/dSearchPath.h | 1 + dtool/src/dtoolutil/pandaSystem.h | 1 + dtool/src/interrogate/interfaceMaker.cxx | 4 +- dtool/src/interrogate/interfaceMaker.h | 2 + .../interfaceMakerPythonNative.cxx | 284 +- dtool/src/interrogate/interrogateBuilder.cxx | 101 +- .../src/interrogatedb/interrogateDatabase.cxx | 2 +- dtool/src/interrogatedb/interrogateElement.I | 36 + .../src/interrogatedb/interrogateElement.cxx | 11 +- dtool/src/interrogatedb/interrogateElement.h | 9 + dtool/src/interrogatedb/py_panda.I | 16 + dtool/src/interrogatedb/py_panda.cxx | 118 +- dtool/src/interrogatedb/py_panda.h | 18 + dtool/src/prc/configPage.h | 4 + dtool/src/prc/configVariableCore.h | 15 + dtool/src/prc/configVariableManager.h | 2 + dtool/src/prc/configVariableSearchPath.h | 1 + dtool/src/prc/encryptStream.I | 23 + dtool/src/prc/encryptStream.h | 14 + dtool/src/prc/notifyCategory.h | 1 + dtool/src/prc/streamReader.h | 1 + dtool/src/prc/streamWrapper.h | 3 + dtool/src/prc/streamWriter.h | 1 + panda/src/chan/animGroup.h | 2 + panda/src/chan/partBundle.h | 6 + panda/src/chan/partBundleHandle.h | 2 + panda/src/chan/partBundleNode.h | 3 + panda/src/chan/partGroup.h | 1 + panda/src/collide/collisionFloorMesh.h | 5 +- panda/src/collide/collisionHandlerEvent.h | 4 + panda/src/collide/collisionHandlerQueue.h | 1 + panda/src/collide/collisionNode.h | 1 + panda/src/collide/collisionPolygon.h | 1 + panda/src/collide/collisionTraverser.h | 1 + panda/src/display/graphicsEngine.h | 1 + panda/src/display/graphicsOutput.h | 3 + panda/src/display/graphicsPipeSelection.h | 1 + panda/src/egg/eggCompositePrimitive.h | 2 + panda/src/egg/eggGroup.h | 39 + panda/src/egg/eggNurbsCurve.h | 5 + panda/src/egg/eggPrimitive.I | 10 +- panda/src/egg/eggPrimitive.cxx | 13 + panda/src/egg/eggPrimitive.h | 18 +- panda/src/event/asyncTaskManager.h | 4 + panda/src/event/event.h | 4 + panda/src/express/virtualFileSystem.h | 1 + panda/src/gobj/geom.h | 1 + panda/src/gobj/geomVertexArrayFormat.h | 1 + panda/src/gobj/geomVertexData.h | 1 + panda/src/gobj/geomVertexFormat.h | 5 + panda/src/gobj/transformBlendTable.h | 8 +- panda/src/gobj/transformTable.h | 6 +- panda/src/linmath/lmatrix3_src.h | 2 + panda/src/linmath/lmatrix4_src.h | 2 + panda/src/mathutil/boundingBox.h | 3 + panda/src/mathutil/boundingHexahedron.h | 3 + .../src/mathutil/intersectionBoundingVolume.h | 1 + panda/src/mathutil/triangulator.h | 1 + panda/src/mathutil/triangulator3.h | 3 + panda/src/mathutil/unionBoundingVolume.h | 1 + panda/src/movies/microphoneAudio.h | 4 + panda/src/net/connectionManager.h | 3 + panda/src/parametrics/nurbsSurfaceEvaluator.h | 5 + .../parametrics/parametricCurveCollection.cxx | 15 + .../parametrics/parametricCurveCollection.h | 8 + panda/src/pgraph/camera.h | 1 + panda/src/pgraph/loaderFileTypeRegistry.h | 1 + panda/src/pgraph/nodePath.h | 10 + panda/src/pgraph/occluderNode.I | 15 +- panda/src/pgraph/occluderNode.h | 9 +- panda/src/pgraph/pandaNode.I | 26 +- panda/src/pgraph/pandaNode.h | 38 +- panda/src/pgraph/portalNode.h | 11 + panda/src/pgraphnodes/computeNode.I | 26 +- panda/src/pgraphnodes/computeNode.h | 7 +- panda/src/pgraphnodes/lodNode.h | 7 + panda/src/physics/forceNode.I | 7 +- panda/src/physics/forceNode.cxx | 18 +- panda/src/physics/forceNode.h | 11 +- panda/src/physics/physicalNode.I | 7 +- panda/src/physics/physicalNode.cxx | 16 +- panda/src/physics/physicalNode.h | 9 +- panda/src/pnmimage/pnmFileType.h | 4 + panda/src/pnmimage/pnmFileTypeRegistry.h | 1 + panda/src/pstatclient/pStatClient.h | 8 + panda/src/putil/modifierButtons.h | 1 + panda/src/text/dynamicTextFont.h | 1 + panda/src/tform/buttonThrower.h | 1 + panda/src/tform/mouseWatcherBase.h | 2 + 98 files changed, 5411 insertions(+), 4247 deletions(-) diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index 8c5694e0b5..73a9297cb9 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -376,48 +376,50 @@ extern int cppyydebug; 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 + KW_MAKE_MAP_PROPERTY = 337, + KW_MAKE_PROPERTY = 338, + KW_MAKE_PROPERTY2 = 339, + KW_MAKE_SEQ = 340, + KW_MAKE_SEQ_PROPERTY = 341, + KW_MUTABLE = 342, + KW_NAMESPACE = 343, + KW_NEW = 344, + KW_NOEXCEPT = 345, + KW_NULLPTR = 346, + KW_OPERATOR = 347, + KW_OVERRIDE = 348, + KW_PRIVATE = 349, + KW_PROTECTED = 350, + KW_PUBLIC = 351, + KW_REGISTER = 352, + KW_REINTERPRET_CAST = 353, + KW_RETURN = 354, + KW_SHORT = 355, + KW_SIGNED = 356, + KW_SIZEOF = 357, + KW_STATIC = 358, + KW_STATIC_ASSERT = 359, + KW_STATIC_CAST = 360, + KW_STRUCT = 361, + KW_TEMPLATE = 362, + KW_THREAD_LOCAL = 363, + KW_THROW = 364, + KW_TRUE = 365, + KW_TRY = 366, + KW_TYPEDEF = 367, + KW_TYPEID = 368, + KW_TYPENAME = 369, + KW_UNION = 370, + KW_UNSIGNED = 371, + KW_USING = 372, + KW_VIRTUAL = 373, + KW_VOID = 374, + KW_VOLATILE = 375, + KW_WCHAR_T = 376, + KW_WHILE = 377, + START_CPP = 378, + START_CONST_EXPR = 379, + START_TYPE = 380 }; #endif /* Tokens. */ @@ -500,48 +502,50 @@ extern int cppyydebug; #define KW_INLINE 334 #define KW_INT 335 #define KW_LONG 336 -#define KW_MAKE_PROPERTY 337 -#define KW_MAKE_PROPERTY2 338 -#define KW_MAKE_SEQ 339 -#define KW_MUTABLE 340 -#define KW_NAMESPACE 341 -#define KW_NEW 342 -#define KW_NOEXCEPT 343 -#define KW_NULLPTR 344 -#define KW_OPERATOR 345 -#define KW_OVERRIDE 346 -#define KW_PRIVATE 347 -#define KW_PROTECTED 348 -#define KW_PUBLIC 349 -#define KW_REGISTER 350 -#define KW_REINTERPRET_CAST 351 -#define KW_RETURN 352 -#define KW_SHORT 353 -#define KW_SIGNED 354 -#define KW_SIZEOF 355 -#define KW_STATIC 356 -#define KW_STATIC_ASSERT 357 -#define KW_STATIC_CAST 358 -#define KW_STRUCT 359 -#define KW_TEMPLATE 360 -#define KW_THREAD_LOCAL 361 -#define KW_THROW 362 -#define KW_TRUE 363 -#define KW_TRY 364 -#define KW_TYPEDEF 365 -#define KW_TYPEID 366 -#define KW_TYPENAME 367 -#define KW_UNION 368 -#define KW_UNSIGNED 369 -#define KW_USING 370 -#define KW_VIRTUAL 371 -#define KW_VOID 372 -#define KW_VOLATILE 373 -#define KW_WCHAR_T 374 -#define KW_WHILE 375 -#define START_CPP 376 -#define START_CONST_EXPR 377 -#define START_TYPE 378 +#define KW_MAKE_MAP_PROPERTY 337 +#define KW_MAKE_PROPERTY 338 +#define KW_MAKE_PROPERTY2 339 +#define KW_MAKE_SEQ 340 +#define KW_MAKE_SEQ_PROPERTY 341 +#define KW_MUTABLE 342 +#define KW_NAMESPACE 343 +#define KW_NEW 344 +#define KW_NOEXCEPT 345 +#define KW_NULLPTR 346 +#define KW_OPERATOR 347 +#define KW_OVERRIDE 348 +#define KW_PRIVATE 349 +#define KW_PROTECTED 350 +#define KW_PUBLIC 351 +#define KW_REGISTER 352 +#define KW_REINTERPRET_CAST 353 +#define KW_RETURN 354 +#define KW_SHORT 355 +#define KW_SIGNED 356 +#define KW_SIZEOF 357 +#define KW_STATIC 358 +#define KW_STATIC_ASSERT 359 +#define KW_STATIC_CAST 360 +#define KW_STRUCT 361 +#define KW_TEMPLATE 362 +#define KW_THREAD_LOCAL 363 +#define KW_THROW 364 +#define KW_TRUE 365 +#define KW_TRY 366 +#define KW_TYPEDEF 367 +#define KW_TYPEID 368 +#define KW_TYPENAME 369 +#define KW_UNION 370 +#define KW_UNSIGNED 371 +#define KW_USING 372 +#define KW_VIRTUAL 373 +#define KW_VOID 374 +#define KW_VOLATILE 375 +#define KW_WCHAR_T 376 +#define KW_WHILE 377 +#define START_CPP 378 +#define START_CONST_EXPR 379 +#define START_TYPE 380 /* Value type. */ @@ -567,7 +571,7 @@ int cppyyparse (void); /* Copy the second part of user declarations. */ -#line 571 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ +#line 575 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ #ifdef short # undef short @@ -811,21 +815,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 85 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5303 +#define YYLAST 5523 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 148 +#define YYNTOKENS 150 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 109 /* YYNRULES -- Number of rules. */ -#define YYNRULES 675 +#define YYNRULES 680 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1317 +#define YYNSTATES 1339 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 378 +#define YYMAXUTOK 380 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -837,16 +841,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 147, 2, 2, 2, 139, 132, 2, - 142, 144, 137, 135, 125, 136, 141, 138, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 127, 126, - 133, 128, 134, 129, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 149, 2, 2, 2, 141, 134, 2, + 144, 146, 139, 137, 127, 138, 143, 140, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 129, 128, + 135, 130, 136, 131, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 143, 2, 146, 131, 2, 2, 2, 2, 2, + 2, 145, 2, 148, 133, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 124, 130, 145, 140, 2, 2, 2, + 2, 2, 2, 126, 132, 147, 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -871,81 +875,83 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123 + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 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 + 0, 424, 424, 425, 429, 436, 437, 438, 442, 443, + 447, 451, 464, 463, 475, 476, 477, 478, 479, 480, + 481, 482, 495, 504, 508, 516, 520, 524, 535, 556, + 586, 603, 631, 668, 690, 723, 745, 756, 770, 769, + 784, 788, 792, 803, 807, 811, 815, 819, 823, 827, + 831, 835, 839, 843, 847, 855, 856, 860, 861, 865, + 869, 878, 886, 898, 897, 913, 912, 934, 942, 953, + 962, 976, 975, 991, 990, 1005, 1020, 1026, 1035, 1042, + 1055, 1054, 1079, 1078, 1106, 1105, 1136, 1135, 1154, 1153, + 1174, 1173, 1205, 1204, 1230, 1243, 1247, 1251, 1255, 1259, + 1263, 1268, 1272, 1283, 1287, 1291, 1295, 1299, 1303, 1307, + 1311, 1315, 1319, 1323, 1327, 1331, 1335, 1339, 1343, 1347, + 1351, 1355, 1359, 1363, 1367, 1371, 1375, 1379, 1383, 1387, + 1391, 1395, 1399, 1403, 1407, 1411, 1415, 1419, 1423, 1427, + 1431, 1435, 1442, 1443, 1448, 1447, 1455, 1459, 1460, 1464, + 1470, 1479, 1483, 1487, 1491, 1495, 1501, 1511, 1515, 1520, + 1532, 1536, 1550, 1565, 1570, 1575, 1580, 1585, 1590, 1595, + 1600, 1606, 1605, 1627, 1637, 1647, 1651, 1655, 1664, 1668, + 1673, 1677, 1682, 1690, 1695, 1703, 1707, 1712, 1716, 1721, + 1729, 1734, 1742, 1746, 1753, 1757, 1764, 1768, 1772, 1776, + 1780, 1787, 1791, 1795, 1799, 1803, 1807, 1814, 1815, 1816, + 1820, 1823, 1824, 1825, 1829, 1834, 1840, 1846, 1857, 1861, + 1871, 1875, 1879, 1884, 1889, 1894, 1899, 1904, 1909, 1917, + 1921, 1925, 1930, 1935, 1940, 1945, 1950, 1955, 1960, 1966, + 1974, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2016, 2020, + 2025, 2030, 2035, 2040, 2045, 2050, 2055, 2061, 2068, 2075, + 2085, 2089, 2097, 2101, 2105, 2109, 2113, 2129, 2145, 2154, + 2161, 2165, 2173, 2177, 2181, 2185, 2189, 2205, 2221, 2239, + 2248, 2255, 2259, 2267, 2271, 2287, 2303, 2312, 2319, 2323, + 2331, 2335, 2344, 2343, 2368, 2367, 2397, 2398, 2405, 2406, + 2410, 2411, 2415, 2419, 2423, 2427, 2431, 2435, 2439, 2443, + 2447, 2451, 2458, 2466, 2470, 2474, 2479, 2487, 2491, 2498, + 2499, 2504, 2511, 2512, 2517, 2525, 2529, 2533, 2540, 2544, + 2548, 2556, 2555, 2578, 2577, 2600, 2601, 2605, 2611, 2618, + 2627, 2628, 2629, 2633, 2637, 2641, 2645, 2649, 2653, 2658, + 2663, 2668, 2673, 2677, 2682, 2691, 2696, 2704, 2708, 2712, + 2720, 2730, 2730, 2740, 2741, 2745, 2746, 2747, 2748, 2749, + 2750, 2751, 2752, 2753, 2754, 2755, 2755, 2755, 2756, 2756, + 2756, 2756, 2757, 2757, 2757, 2757, 2757, 2758, 2758, 2758, + 2759, 2759, 2759, 2759, 2759, 2760, 2760, 2760, 2760, 2760, + 2761, 2761, 2761, 2761, 2761, 2762, 2762, 2762, 2762, 2762, + 2763, 2763, 2763, 2763, 2764, 2764, 2764, 2764, 2764, 2765, + 2765, 2765, 2765, 2765, 2766, 2766, 2766, 2766, 2766, 2766, + 2767, 2767, 2767, 2767, 2767, 2768, 2768, 2768, 2768, 2769, + 2769, 2769, 2769, 2770, 2770, 2770, 2770, 2770, 2771, 2771, + 2771, 2772, 2772, 2772, 2772, 2772, 2773, 2773, 2773, 2773, + 2773, 2774, 2774, 2774, 2774, 2774, 2777, 2777, 2777, 2777, + 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2778, 2778, 2778, + 2778, 2778, 2778, 2778, 2778, 2778, 2778, 2779, 2779, 2783, + 2787, 2794, 2798, 2805, 2809, 2816, 2820, 2824, 2828, 2832, + 2836, 2840, 2844, 2848, 2852, 2856, 2860, 2864, 2868, 2872, + 2876, 2880, 2884, 2888, 2892, 2896, 2900, 2904, 2908, 2912, + 2916, 2920, 2924, 2928, 2932, 2936, 2940, 2944, 2948, 2952, + 2956, 2960, 2968, 2972, 2976, 2980, 2984, 2988, 2992, 3002, + 3008, 3014, 3020, 3026, 3032, 3038, 3045, 3052, 3059, 3066, + 3072, 3078, 3082, 3086, 3090, 3094, 3105, 3116, 3120, 3124, + 3128, 3132, 3136, 3140, 3144, 3148, 3152, 3156, 3160, 3164, + 3168, 3172, 3176, 3180, 3184, 3188, 3192, 3196, 3200, 3204, + 3208, 3212, 3216, 3220, 3224, 3228, 3232, 3236, 3243, 3247, + 3251, 3255, 3259, 3263, 3267, 3271, 3275, 3281, 3287, 3291, + 3295, 3309, 3313, 3317, 3321, 3325, 3329, 3333, 3337, 3341, + 3345, 3349, 3360, 3371, 3375, 3379, 3383, 3387, 3391, 3395, + 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, 3431, 3435, + 3439, 3443, 3447, 3451, 3455, 3459, 3463, 3467, 3471, 3475, + 3479, 3483, 3487, 3494, 3498, 3502, 3506, 3510, 3514, 3518, + 3522, 3526, 3532, 3538, 3546, 3547, 3548, 3552, 3553, 3554, + 3555, 3559, 3567, 3575, 3603, 3607, 3611, 3615, 3619, 3625, + 3629, 3633, 3637, 3648, 3652, 3656, 3664, 3668, 3672, 3678, + 3689 }; #endif @@ -969,19 +975,20 @@ static const char *const yytname[] = "KW_DELETE", "KW_DOUBLE", "KW_DYNAMIC_CAST", "KW_ELSE", "KW_END_PUBLISH", "KW_ENUM", "KW_EXTENSION", "KW_EXTERN", "KW_EXPLICIT", "KW_PUBLISHED", "KW_FALSE", "KW_FINAL", "KW_FLOAT", "KW_FRIEND", "KW_FOR", "KW_GOTO", - "KW_IF", "KW_INLINE", "KW_INT", "KW_LONG", "KW_MAKE_PROPERTY", - "KW_MAKE_PROPERTY2", "KW_MAKE_SEQ", "KW_MUTABLE", "KW_NAMESPACE", - "KW_NEW", "KW_NOEXCEPT", "KW_NULLPTR", "KW_OPERATOR", "KW_OVERRIDE", - "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", - "KW_REINTERPRET_CAST", "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", - "KW_STATIC", "KW_STATIC_ASSERT", "KW_STATIC_CAST", "KW_STRUCT", - "KW_TEMPLATE", "KW_THREAD_LOCAL", "KW_THROW", "KW_TRUE", "KW_TRY", - "KW_TYPEDEF", "KW_TYPEID", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED", - "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WCHAR_T", - "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", - "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", - "']'", "'!'", "$accept", "grammar", "cpp", "constructor_inits", + "KW_IF", "KW_INLINE", "KW_INT", "KW_LONG", "KW_MAKE_MAP_PROPERTY", + "KW_MAKE_PROPERTY", "KW_MAKE_PROPERTY2", "KW_MAKE_SEQ", + "KW_MAKE_SEQ_PROPERTY", "KW_MUTABLE", "KW_NAMESPACE", "KW_NEW", + "KW_NOEXCEPT", "KW_NULLPTR", "KW_OPERATOR", "KW_OVERRIDE", "KW_PRIVATE", + "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", "KW_REINTERPRET_CAST", + "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", "KW_STATIC", + "KW_STATIC_ASSERT", "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", + "KW_THREAD_LOCAL", "KW_THROW", "KW_TRUE", "KW_TRY", "KW_TYPEDEF", + "KW_TYPEID", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED", "KW_USING", + "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WCHAR_T", "KW_WHILE", + "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", "';'", + "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'", + "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", "']'", + "'!'", "$accept", "grammar", "cpp", "constructor_inits", "constructor_init", "extern_c", "$@1", "declaration", "friend_declaration", "$@2", "storage_class", "attribute_specifiers", "attribute_specifier", "type_like_declaration", @@ -1035,18 +1042,18 @@ static const yytype_uint16 yytoknum[] = 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 123, 44, 59, 58, 61, 63, - 124, 94, 38, 60, 62, 43, 45, 42, 47, 37, - 126, 46, 40, 91, 41, 125, 93, 33 + 375, 376, 377, 378, 379, 380, 123, 44, 59, 58, + 61, 63, 124, 94, 38, 60, 62, 43, 45, 42, + 47, 37, 126, 46, 40, 91, 41, 125, 93, 33 }; # endif -#define YYPACT_NINF -749 +#define YYPACT_NINF -703 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-749))) + (!!((Yystate) == (-703))) -#define YYTABLE_NINF -671 +#define YYTABLE_NINF -676 #define yytable_value_is_error(Yytable_value) \ 0 @@ -1055,138 +1062,140 @@ static const yytype_uint16 yytoknum[] = 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 + 362, -703, 2822, 4474, 57, 3018, -703, -703, -703, -703, + -703, -703, -703, -703, -118, -82, -78, -69, -61, -41, + -13, -30, -4, -703, -703, -18, -2, 1, 4682, -703, + -703, 23, 59, 73, 89, 133, -703, 141, 188, 199, + 2822, 2822, 2822, 2822, 2822, 1432, 585, 2822, 3762, -703, + 189, -703, -703, -703, -703, -703, -703, -703, 4704, 213, + -703, -20, -703, -703, 1983, 2722, 2722, -703, 1244, -703, + 2722, -703, -703, 62, -703, -703, -703, -703, 66, 48, + 959, -703, -703, -703, -703, -703, -703, 5378, 5378, -703, + 5378, 892, 5378, 160, -703, 5286, 225, 227, 233, 251, + 5378, 2255, 191, 269, 272, 5378, 5378, 263, 5300, 5378, + 5378, 2691, 5378, 5378, -703, 63, -703, -703, -703, 3269, + -703, -703, -703, -703, -703, -703, 2822, 4474, 2822, 2822, + 2822, 2822, 4474, 2822, 4474, 2822, 2822, 2822, -703, -703, + 278, 1244, 289, 1244, 1244, -703, 4474, 2822, 2822, 4474, + 4474, 1432, 2822, 2822, 79, 79, 79, 79, 79, -118, + -78, -69, -61, -41, -30, -18, -2, 2511, 2380, 2608, + 2625, 199, 309, -83, 3762, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, 1244, 310, 332, -703, -703, + 79, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, + 2822, 2822, 2252, 2822, -703, -703, 62, 2822, -703, -703, + -703, 2722, -703, -703, -703, -703, -703, 322, 145, 62, + 62, 145, 145, 4033, 321, -703, 324, -703, -703, -703, + -703, 1115, 342, 27, 64, 87, -703, -703, -703, 5378, + -703, -703, -703, 5378, -703, -703, -703, 5231, 2349, -703, + 1244, 1244, 1244, 1244, -703, -703, 363, -703, -703, -703, + -703, -703, 2822, 3300, -703, 346, -703, 3376, -703, 1244, + 115, -703, -703, 1244, 300, 348, -703, 2943, 349, 4546, + 1244, -703, 1244, 350, 148, 370, -703, -703, -703, -703, + 900, 959, -703, 344, 381, -703, 351, 378, 383, 384, + 385, 396, 388, 399, 392, 397, 398, 2822, -703, 2822, + -703, -703, 413, 406, 407, 409, 425, 416, 3483, 417, + 418, 2822, 2822, -703, -703, -24, 585, 935, 3983, 1311, + 1311, 117, 117, 729, 729, -703, 3672, 4123, 4039, 1275, + 117, 117, 167, 167, 79, 79, 79, -703, -703, -36, + 1126, -703, 3504, 145, 441, 145, 145, 145, 145, 145, + 364, -703, 321, -703, 321, -703, 364, 364, -703, 145, + 4603, 4452, 145, 145, 435, 37, -703, 623, -703, 2822, + 1244, 436, -703, -703, -703, -703, 1115, -703, 509, -703, + -703, -703, 458, 466, 467, 470, 477, 4839, -703, 3443, + 4236, 295, 464, 2943, 148, -703, -703, 481, -703, 4474, + 468, 485, 471, -703, 20, -703, -703, -703, 2822, 4704, + 403, -703, -703, 474, -703, -703, 1244, -9, -703, -703, + -703, 1553, -703, -703, 529, -703, 491, -703, -703, -703, + -703, -703, -703, -703, 479, -703, 480, -703, -703, -703, + 3522, 482, 483, -703, -703, -703, 486, -703, -703, -703, + -703, 79, 3762, -703, 4308, 932, -703, -703, 2822, -703, + -703, -703, 364, 145, 364, 364, 364, 364, 364, 2822, + -58, 4704, 623, -703, 26, 35, 572, -703, 4380, 492, + 623, 623, 623, 623, 623, 623, -21, -703, -703, 484, + 3762, -703, -34, -703, 510, 4895, -703, 511, -703, 4951, + -703, 631, 633, 634, 637, -703, -703, 355, 523, -703, + -703, 1244, 2467, 1244, 516, 530, -703, 623, -703, -703, + 20, -703, -703, 529, -703, 528, 512, 1244, 2014, 4308, + 522, 529, 4308, 529, 3540, 403, 533, 403, 403, 403, + 403, 403, 95, -703, -703, 5007, -703, 520, -703, 210, + -703, -71, 546, 547, 537, 548, 549, 2366, 3707, 550, + 529, 529, 3133, 529, 529, 529, 529, -703, 138, 308, + -703, 1115, 2822, 2822, -703, -703, 2822, 2822, 539, 4625, + -703, -703, -703, -703, 543, 564, -703, 3762, 364, 544, + 552, 623, -21, 555, 556, 932, -703, -703, 623, 557, + 557, 557, 557, 557, 265, 2822, 2822, -703, -703, 558, + -703, 2822, -703, 4125, 568, 574, -703, -703, -703, -23, + 577, 579, 584, 5063, 41, -703, 582, 623, 587, 5322, + 4236, 44, 529, -703, 308, -703, 5378, -703, -703, -703, + -703, -703, -703, -703, 601, 586, 611, -703, -703, 4682, + -703, -703, 612, 605, 615, -703, 609, 2822, 2822, 2822, + 2822, 1432, 2822, 610, 78, -703, -703, 3804, -703, 189, + -703, 613, 529, 367, 614, -703, 308, -703, 273, 403, + 618, 618, 618, 618, 618, -703, 2822, -703, 4308, -703, + 1867, -703, -703, 1244, 2822, 2822, -703, -703, -703, -703, + -703, 2366, 619, 638, 3762, -703, -703, 529, 301, 301, + 748, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, 622, 621, -703, + -703, 301, 301, 301, 373, 766, -703, 2822, -703, 1553, + 645, -703, 510, 17, 80, 98, 142, 572, 4682, 62, + 369, -703, -703, 4308, -21, -703, 4308, 4308, -703, 557, + 629, 3762, 627, 3726, 4743, 4759, 4798, 1244, 426, -703, + 1244, -703, -703, -703, 4125, 5119, 767, 650, 769, 772, + 773, -703, 657, 4474, 44, 4474, -703, -703, -703, -703, + 2936, -703, -703, -703, 308, 660, -703, -703, 4474, 4474, + 4474, 647, 4474, 4474, 4474, 1432, 79, 79, 79, 79, + 654, 144, 79, -703, -703, 2133, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2480, 2822, 572, + 382, 661, 572, 674, -703, -703, 618, 4308, 656, 662, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, 659, -703, 663, 665, 667, + -703, 2594, 301, -703, -703, -703, -703, -703, 2014, 668, + 3707, 529, -703, -703, -703, -703, 932, 62, -703, -703, + 669, 670, 682, -703, 688, 689, 4308, -703, -703, 3147, + -703, 3147, -703, 3147, -703, -703, 3147, 3147, 3147, -703, + 5175, -703, -703, 154, -703, 175, 691, 176, -703, -703, + -703, -703, 694, 697, 705, 707, 699, 709, 2936, 2936, + 2936, 2936, 2936, 1432, 2936, 3935, -703, 720, -703, 529, + 706, 715, 717, 2822, 721, 719, 739, 730, 3575, 2822, + -703, -703, -703, 935, 3983, 1311, 1311, 117, 117, 729, + 729, -703, 3744, 4123, 4039, 1275, 117, 117, 167, 167, + 79, 79, 79, -703, -703, 196, 2034, 283, 733, -703, + 283, 529, 4308, 736, -703, 572, 1720, -703, -703, -703, + -703, 2366, 3762, 738, -703, -703, 753, -703, -703, -703, + 572, 572, 572, 741, -703, -703, -703, -703, -703, -703, + -703, 875, 760, 879, 764, 765, 884, 768, 4474, 4474, + 4474, 4474, 4474, 4474, 205, 205, 205, 205, 205, 749, + 198, 205, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, + 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, + 2936, 2708, 2822, 529, -703, -703, 771, 774, 751, 775, + -703, 777, -703, -703, 79, 2822, -703, -703, -703, 4308, + -703, 763, 572, 283, -703, 761, 572, -703, 932, 932, + 932, 572, 770, -703, 785, -703, -703, 200, -703, 795, + 781, 807, 809, 802, 813, 2936, -703, 1567, 3965, 3088, + 3088, 462, 462, 762, 762, -703, 3893, 2266, 4139, 4168, + 686, 686, 205, 205, 205, -703, -703, 201, 3164, -703, + 2822, 2822, -703, 2822, 2822, 3762, 4308, 812, 572, 283, + -703, 283, 816, -703, -703, -703, 283, 837, 903, 956, + 847, -703, 832, 833, 834, -703, 836, 205, 2936, -703, + -703, 206, 245, 247, 248, 835, 572, 283, -703, -703, + 838, 841, -703, 2822, 2822, 2822, 2822, 3935, -703, -703, + -703, -703, 572, 932, 854, 855, 256, 257, 258, 262, + 932, -703, -703, -703, -703, -703, -703, -703, -703 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1194,170 +1203,172 @@ static const yytype_int16 yypact[] = 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, 680, 0, 0, 0, 680, 5, 592, 588, 591, + 676, 677, 594, 595, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 590, 596, 0, 0, 0, 0, 598, + 597, 0, 0, 0, 0, 0, 589, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 680, 0, 3, 532, + 593, 261, 269, 343, 344, 346, 347, 328, 0, 0, + 358, 325, 357, 352, 349, 348, 351, 329, 0, 330, + 350, 360, 345, 680, 4, 263, 264, 265, 0, 314, + 0, 260, 340, 341, 342, 1, 21, 680, 680, 22, + 680, 680, 680, 0, 38, 680, 0, 0, 0, 0, + 680, 0, 0, 0, 0, 680, 680, 0, 680, 680, + 680, 0, 680, 680, 6, 0, 16, 7, 19, 0, + 14, 59, 15, 17, 18, 40, 680, 0, 680, 680, + 680, 680, 0, 680, 0, 680, 680, 680, 282, 287, + 0, 0, 553, 0, 0, 281, 0, 680, 680, 0, + 0, 0, 680, 680, 562, 560, 559, 561, 558, 261, + 343, 344, 346, 347, 358, 357, 352, 349, 348, 351, + 350, 345, 0, 0, 493, 664, 665, 666, 669, 667, + 671, 670, 668, 672, 658, 657, 0, 655, 660, 654, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 678, 679, 680, 0, 326, 327, + 359, 349, 354, 353, 356, 262, 355, 0, 680, 680, + 680, 680, 680, 680, 0, 290, 248, 680, 673, 674, + 675, 0, 316, 664, 665, 667, 292, 266, 294, 680, + 51, 50, 52, 680, 41, 46, 23, 680, 0, 44, + 0, 0, 0, 0, 49, 680, 0, 26, 25, 24, + 47, 43, 0, 0, 146, 0, 53, 0, 20, 0, + 0, 45, 48, 0, 289, 271, 280, 0, 0, 0, + 0, 12, 0, 0, 0, 288, 63, 273, 274, 275, + 314, 0, 270, 0, 492, 491, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 283, 680, + 285, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 587, 659, 680, 680, 571, 572, 573, + 574, 575, 576, 579, 580, 586, 0, 568, 569, 570, + 577, 578, 566, 567, 563, 564, 565, 585, 584, 0, + 0, 291, 0, 680, 0, 680, 680, 680, 680, 680, + 253, 240, 0, 249, 0, 250, 252, 251, 179, 680, + 0, 0, 680, 680, 0, 180, 183, 680, 178, 680, + 322, 0, 319, 318, 313, 317, 0, 680, 680, 42, + 39, 680, 0, 0, 0, 0, 0, 680, 331, 0, + 680, 289, 271, 0, 0, 288, 71, 0, 337, 0, + 0, 55, 57, 80, 82, 289, 271, 65, 0, 0, + 680, 272, 680, 0, 361, 196, 0, 0, 61, 361, + 201, 0, 62, 60, 0, 278, 316, 276, 538, 552, + 544, 540, 542, 543, 0, 550, 0, 549, 539, 546, + 0, 0, 0, 545, 548, 551, 0, 555, 556, 547, + 541, 533, 494, 96, 680, 680, 95, 656, 0, 583, + 582, 268, 254, 680, 245, 241, 242, 244, 243, 680, + 0, 0, 680, 217, 0, 0, 680, 182, 0, 0, + 680, 680, 680, 680, 680, 680, 680, 230, 229, 0, + 490, 489, 323, 312, 267, 680, 297, 680, 296, 680, + 333, 0, 0, 0, 0, 335, 680, 0, 0, 158, + 159, 0, 0, 0, 0, 148, 149, 680, 157, 147, + 0, 73, 75, 0, 339, 0, 0, 0, 680, 680, + 0, 0, 680, 0, 0, 680, 0, 680, 680, 680, + 680, 680, 0, 221, 220, 680, 84, 0, 680, 0, + 8, 0, 0, 0, 0, 0, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 680, 680, + 160, 0, 0, 0, 286, 554, 0, 0, 0, 0, + 98, 100, 97, 99, 0, 0, 175, 581, 246, 0, + 0, 680, 680, 0, 0, 680, 181, 184, 680, 235, + 231, 232, 234, 233, 0, 0, 680, 214, 194, 255, + 320, 0, 293, 0, 0, 299, 298, 336, 680, 0, + 0, 0, 0, 680, 0, 37, 151, 680, 153, 680, + 0, 680, 0, 72, 680, 338, 680, 56, 647, 643, + 646, 649, 650, 186, 0, 0, 0, 645, 651, 0, + 653, 652, 0, 0, 0, 644, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 218, 190, 219, 601, 648, + 185, 0, 0, 0, 0, 66, 680, 279, 0, 680, + 226, 222, 223, 225, 224, 90, 680, 13, 680, 197, + 362, 363, 361, 0, 680, 680, 199, 200, 202, 204, + 205, 680, 0, 208, 210, 207, 203, 0, 167, 163, + 0, 113, 114, 115, 116, 117, 118, 121, 122, 137, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 141, 140, 124, 123, 110, 112, 111, 119, + 120, 108, 109, 105, 106, 107, 104, 0, 0, 103, + 161, 164, 166, 165, 0, 0, 171, 680, 173, 0, + 0, 67, 277, 0, 0, 0, 0, 680, 0, 680, + 0, 361, 247, 680, 680, 215, 680, 680, 256, 236, + 239, 195, 0, 324, 671, 0, 670, 0, 0, 300, + 0, 302, 661, 680, 0, 680, 0, 0, 0, 0, + 0, 332, 0, 0, 680, 0, 142, 145, 143, 150, + 0, 155, 192, 74, 680, 0, 76, 54, 0, 0, + 0, 609, 0, 0, 0, 0, 617, 616, 615, 614, + 0, 0, 613, 58, 189, 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, 680, + 0, 0, 680, 0, 69, 92, 227, 680, 0, 0, + 365, 366, 370, 367, 374, 368, 369, 371, 372, 373, + 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, 417, 418, 419, 420, 440, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 680, 482, 483, 484, 475, 487, 471, 472, 470, + 477, 478, 466, 467, 468, 469, 476, 474, 481, 479, + 485, 480, 486, 473, 364, 0, 9, 0, 0, 0, + 206, 209, 168, 162, 139, 138, 170, 174, 680, 0, + 195, 0, 536, 535, 537, 534, 680, 680, 176, 101, + 0, 0, 0, 216, 0, 0, 680, 237, 321, 0, + 305, 0, 304, 0, 303, 663, 0, 0, 0, 662, + 680, 301, 334, 0, 27, 0, 0, 0, 36, 152, + 156, 154, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 495, 0, 78, 0, + 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, + 642, 188, 191, 626, 627, 628, 629, 630, 631, 634, + 635, 641, 0, 623, 624, 625, 632, 633, 621, 622, + 618, 619, 620, 640, 639, 0, 0, 81, 0, 86, + 83, 0, 680, 0, 228, 680, 0, 198, 11, 10, + 211, 680, 212, 0, 169, 68, 0, 177, 102, 599, + 680, 680, 680, 0, 311, 310, 309, 308, 307, 306, + 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 508, 506, 505, 507, 504, 0, + 0, 503, 0, 0, 0, 0, 0, 0, 0, 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 + 0, 0, 0, 0, 77, 608, 0, 0, 0, 0, + 607, 0, 611, 612, 602, 0, 638, 637, 88, 680, + 70, 0, 680, 85, 488, 0, 680, 361, 680, 680, + 680, 680, 0, 28, 0, 33, 35, 0, 30, 0, + 0, 0, 0, 0, 0, 0, 531, 517, 518, 519, + 520, 521, 522, 523, 524, 530, 0, 514, 515, 516, + 512, 513, 509, 510, 511, 529, 528, 0, 0, 79, + 0, 0, 610, 0, 0, 636, 680, 0, 680, 91, + 213, 172, 0, 259, 258, 257, 238, 0, 0, 0, + 0, 502, 0, 0, 0, 501, 0, 496, 0, 527, + 526, 0, 0, 0, 0, 0, 680, 93, 600, 29, + 0, 0, 31, 0, 0, 0, 0, 525, 605, 604, + 606, 603, 680, 680, 0, 0, 0, 0, 0, 0, + 680, 87, 34, 32, 499, 498, 500, 497, 89 }; /* 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 + -703, -703, -222, -703, 279, -703, -703, 734, -703, -703, + -11, 450, -703, -99, -703, -703, -703, -33, -132, -703, + -703, -703, -87, -197, -703, -703, -703, 731, -703, -703, + -703, -703, -703, -442, -703, -703, 358, -703, -703, -703, + 361, 489, -516, -703, -512, -559, -467, -703, -15, -703, + 190, -541, -703, -377, -702, -703, -380, 161, -309, -206, + 85, -191, -42, -95, -579, -227, 16, -104, -703, -89, + -703, -703, -703, -703, 203, -73, -703, -356, -703, -703, + -14, -7, -703, -703, -703, -703, 14, 51, -703, -703, + -437, -703, 24, -703, -472, -125, -27, -260, 531, 277, + -703, -703, 687, -703, -698, 803, 811, -514, -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 + -1, 4, 5, 569, 570, 116, 432, 117, 118, 257, + 119, 420, 421, 120, 121, 444, 553, 587, 695, 278, + 543, 652, 653, 833, 293, 549, 552, 294, 708, 1219, + 1276, 887, 1132, 475, 770, 827, 122, 275, 534, 535, + 536, 537, 588, 1028, 589, 605, 384, 385, 683, 684, + 831, 627, 438, 442, 722, 723, 386, 686, 562, 506, + 234, 235, 73, 415, 142, 296, 74, 75, 397, 76, + 398, 517, 634, 635, 809, 77, 78, 394, 390, 391, + 79, 80, 123, 526, 638, 124, 81, 82, 83, 84, + 567, 568, 710, 1014, 509, 303, 304, 1085, 174, 49, + 687, 688, 186, 187, 811, 812, 590, 50, 125 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1365,1283 +1376,1330 @@ static const yytype_int16 yydefgoto[] = 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, + 6, 493, 574, 307, 308, 309, 310, 598, 312, 274, + 314, 315, 316, 644, 143, 297, 216, 609, 173, 1019, + 789, 144, 323, 324, 295, 361, 126, 329, 330, 778, + 298, 654, 550, 473, 689, 693, 218, 542, 373, 375, + 514, 696, 145, 407, 332, 189, 299, 214, 780, 215, + 416, 497, 572, 573, 615, 714, 798, 85, 238, 239, + 427, 172, 127, 333, 728, 729, 128, 771, 772, 773, + 774, 795, 236, 715, 227, 129, 250, 251, 228, 252, + 254, 255, 691, 130, 259, 694, 219, 489, 610, 264, + 841, 332, 854, 630, 270, 271, 631, 273, 276, 277, + -673, 281, 282, 131, 816, 300, 1050, 1052, 1054, 625, + 479, 199, 301, 835, 133, 222, 223, 224, 617, 229, + 474, 226, 132, 817, 626, 305, 135, 305, 305, 305, + 305, 134, 305, 302, 305, 305, 305, -674, 197, 198, + 834, 240, 136, 306, 332, 137, 305, 305, 311, 199, + 313, 305, 305, -673, 802, 883, -673, 364, 146, 551, + -675, 365, 322, 1032, 498, 325, 326, 327, 685, 297, + 599, 489, 613, 297, 830, 515, 880, 241, 295, 519, + 489, 614, 230, 297, 298, 359, 541, 822, 298, 626, + -674, 387, 237, -674, 461, 214, 231, 215, 298, 199, + 299, 232, 366, 147, 299, 855, 233, 332, 283, 1037, + 565, 1022, 781, -675, 299, 236, -675, 148, 222, 223, + 224, 226, 211, 212, 213, 332, 1033, 371, 236, 236, + 371, 371, 388, 149, 888, 782, 392, 1190, 259, 705, + 706, 889, 399, 418, 1034, 419, 698, 430, 700, 701, + 702, 703, 704, 1043, 206, 207, 208, 209, 210, 300, + 211, 212, 213, 300, 6, 367, 301, 775, 150, 332, + 301, 332, 222, 300, 439, 1015, 440, 836, 441, 368, + 301, 1161, 776, 777, 369, 151, 612, 302, 1035, 256, + 1100, 302, 395, 1087, 619, 620, 621, 622, 623, 624, + 1162, 302, 1163, 1166, 643, 1029, 208, 209, 210, 297, + 211, 212, 213, 370, 372, 374, 376, 377, 305, 884, + 267, 1164, 1167, 332, 298, 332, 1042, 1289, 332, 1044, + 1045, 651, 152, 332, 476, 189, 712, 713, 492, 387, + 299, 689, 1216, 153, 1246, 1036, 1290, 1299, 1200, 1201, + 1202, 1154, 1318, 1155, 1041, 1156, 600, 217, 1157, 1158, + 1159, 10, 371, 11, 371, 371, 371, 371, 371, 260, + 601, 261, 332, 602, 332, 332, 603, 262, 371, 175, + 176, 371, 371, 332, 332, 332, 508, 555, 511, 332, + 886, 1319, 604, 1320, 1321, 263, 6, 518, 268, 300, + 6, 269, 1334, 1335, 1336, 794, 301, 272, 1337, 539, + 626, 800, 799, 238, 239, 556, 815, 885, 706, 557, + 1133, -94, 317, -94, 538, -94, -94, 302, -94, 564, + -94, 6, 387, 319, 439, 545, 440, 1127, 779, 1225, + 1130, 824, 177, 178, 423, 776, 777, 395, 482, 611, + 484, 485, 486, 487, 488, 331, 387, 1088, 335, 336, + 558, 363, 179, 180, 490, 181, 389, 494, 495, -240, + 182, 396, 183, 388, 606, 685, 434, 1146, 435, 436, + 437, 410, 371, 1188, 1189, 1, 2, 3, 511, 408, + 448, 508, 424, 428, 1190, 476, 240, 449, 443, 508, + 508, 508, 508, 508, 508, 628, 387, 387, 332, 489, + 387, 776, 777, 881, 689, 1039, 636, 776, 777, 1026, + 1056, 1057, 1058, 559, 450, 6, 776, 777, 1128, 451, + 452, 453, 454, 48, 455, 456, 508, 560, 457, 238, + 239, 579, 561, 458, 459, 580, 538, 690, 388, 462, + 826, 388, 463, 464, 564, 465, 564, 564, 564, 564, + 564, 466, 467, 469, 470, 783, 784, 711, 608, 785, + 786, 154, 155, 156, 157, 158, 725, 654, 190, 1153, + 483, 496, 516, 513, 520, 143, 581, 606, 628, 1017, + 1018, 1060, 144, 521, 522, 175, 176, 523, 1038, 1195, + 1196, 1197, 1198, 1199, 524, 1200, 1201, 1202, 540, 544, + 508, 628, 547, 145, 606, 548, 546, 508, 566, 696, + 591, 582, 240, 592, 593, 511, 810, 596, 595, 473, + 597, 618, 629, 238, 239, 499, -315, 6, 273, 500, + 633, 639, 395, 640, 641, 837, 508, 642, 685, 583, + 832, 645, 649, 628, 851, 143, 655, 650, 177, 178, + 656, 692, 144, 584, 538, 1221, 387, 709, 585, 1283, + 1284, 1285, 699, 586, 716, 717, 719, 720, 179, 180, + 501, 181, 328, 145, 718, 787, 182, 790, 183, 727, + 791, 834, 792, 1223, 813, 628, 793, 850, 564, 796, + 797, 814, 626, -247, 818, 511, 819, 388, 1228, 1229, + 1230, 820, 823, 305, 305, 184, 240, 825, 1190, 185, + 725, 839, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 502, 360, 838, 840, 842, 362, 843, + 844, 387, 1277, 845, 387, 387, 853, 503, 1023, 879, + 882, 199, 504, 706, 1331, 1021, 1020, 505, 1024, 1025, + 1027, 1338, 1031, 1046, 143, 1047, 511, 1063, 1064, 1065, + 1279, 144, 1066, 1067, 1281, 1068, 476, 1089, 236, 1286, + 1282, 1093, 388, 628, 1190, 388, 388, 810, 810, 810, + 1099, 1131, 145, 409, 1134, 1129, 1137, 810, 1135, 1305, + 1138, 1139, 6, 387, 1140, 1148, 1144, 1149, 1174, 1175, + 1176, 1177, 1178, 832, 1181, 1197, 1198, 1199, 1150, 1200, + 1201, 1202, 1169, 628, 1151, 1152, 1307, 1165, 1168, 1069, + 1170, 1071, 1171, 1172, 1173, 387, 1147, 1203, 460, 188, + 1125, 1206, 1205, 1207, 1090, 1091, 1092, 1209, 1094, 1095, + 1096, 1097, 471, 472, 1323, 1210, 206, 207, 208, 209, + 210, 225, 211, 212, 213, 1211, 1212, 1218, 476, 1227, + 1330, 476, 1222, 247, 1226, 1232, 388, 1231, 1233, 1234, + 242, 248, 1235, 1236, 1237, 1245, 1238, 1272, 253, 1195, + 1196, 1197, 1198, 1199, 266, 1200, 1201, 1202, 1280, 1278, + 243, 244, 1288, 1310, 280, 1270, 1287, 1292, 1271, 1273, + 510, 1274, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, + 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, + 1265, 1291, 87, 1293, 318, 1294, 320, 321, 1295, 1296, + 88, 192, 193, 194, 195, 196, 197, 198, 1306, 554, + 90, 91, 92, 1308, 599, 1309, 1311, 199, 1208, 243, + 244, 249, 578, 177, 178, 1312, 1313, 1314, 1315, 100, + 1316, 1322, 1332, 1333, 1324, 1297, 387, 1325, 334, 105, + 711, 400, 1016, 245, 180, 106, 181, 657, 1145, 1220, + 109, 182, 1204, 183, 387, 600, 1269, 828, 414, 607, + 112, 829, 113, 1143, 1070, 1136, 1102, 1061, 0, 601, + 510, 647, 602, 477, 0, 603, 0, 690, 0, 241, + 0, 0, 177, 178, 0, 606, 236, 115, 1317, 0, + 0, 604, 810, 0, 810, 388, 810, 0, 0, 810, + 810, 810, 245, 180, 0, 181, 1180, 0, 0, 0, + 182, 402, 183, 403, 404, 405, 406, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 417, 0, 0, 246, 422, 0, 0, 0, + 387, 0, 305, 431, 0, 433, 0, 0, 0, 1179, + 0, 0, 0, 445, 447, 0, 0, 1086, 724, 0, + 0, 446, 248, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, + 0, 388, 0, 0, 476, 0, 0, 0, 0, 188, + 725, 191, 192, 193, 194, 195, 196, 197, 198, 476, + 476, 476, 0, 0, 0, 0, 801, 510, 199, 0, + 0, 0, 803, 0, 0, 0, 53, 0, 54, 55, + 56, 0, 0, 0, 1267, 0, 0, 387, 0, 0, + 0, 0, 0, 0, 1239, 1240, 1241, 1242, 1243, 1244, + 0, 0, 0, 512, 0, 63, 221, 0, 507, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 846, 847, + 848, 849, 0, 852, 0, 65, 66, 0, 388, 0, + 0, 476, 0, 0, 0, 476, 0, 606, 606, 606, + 476, 70, 0, 0, 387, 0, 72, 510, 0, 571, + 0, 563, 0, 1301, 1302, 0, 1303, 1304, 0, 0, + 0, 0, 724, 0, 175, 176, 0, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 0, 211, + 212, 213, 0, 0, 480, 388, 0, 476, 0, 0, + 0, 0, 0, 0, 0, 0, 1326, 1327, 1328, 1329, + 0, 0, 193, 194, 195, 196, 197, 198, 0, 0, + 0, 0, 0, 507, 0, 476, 0, 199, 510, 0, + 1030, 507, 507, 507, 507, 507, 507, 177, 178, 0, + 0, 476, 606, 0, 0, 0, 0, 0, 0, 606, + 195, 196, 197, 198, 646, 0, 648, 179, 180, 0, + 181, 0, 0, 199, 0, 182, 0, 183, 507, 0, + 422, 0, 0, 0, 0, 1086, 1086, 1086, 1086, 1086, + 0, 1086, 0, 0, 0, 0, 563, 0, 563, 563, + 563, 563, 563, 0, 0, 0, 1098, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1103, 1104, 1105, + 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 0, 1126, + 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 507, 0, 0, 0, 0, 0, 0, 507, + 0, 0, 0, 0, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 159, 0, 0, 204, 205, 206, 207, + 208, 209, 210, 0, 211, 212, 213, 0, 507, 1086, + 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, + 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 0, 15, + 52, 0, 0, 160, 0, 161, 162, 163, 57, 58, + 0, 20, 59, 0, 0, 164, 22, 0, 0, 61, + 0, 0, 0, 0, 23, 24, 165, 0, 0, 0, + 563, 0, 166, 167, 0, 0, 571, 0, 0, 0, + 0, 28, 1086, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 168, 169, 34, 0, 0, 35, 67, 0, + 0, 0, 36, 0, 0, 37, 68, 69, 170, 0, + 0, 71, 1142, 171, 0, 0, 7, 8, 9, 10, + 0, 11, 12, 13, 14, 0, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 1086, 45, 46, 0, 0, + 0, 47, 0, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 0, 0, 0, 1040, 0, 0, 0, 0, 0, 1190, + 15, 0, 0, 0, 16, 0, 17, 18, 19, 0, + 1055, 0, 20, 1059, 575, 576, 21, 22, 0, 0, + 0, 0, 0, 0, 0, 23, 24, 25, 0, 0, + 1214, 0, 0, 26, 27, 0, 0, 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, 0, 38, + 0, 0, 724, 0, 39, 0, 0, 0, 0, 577, + 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, + 41, 42, 43, 0, 0, 44, 0, 45, 46, 1192, + 1193, 1194, 47, 0, 1195, 1196, 1197, 1198, 1199, 0, + 1200, 1201, 1202, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 1268, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 0, 1275, 0, 0, 0, + 0, 0, 911, 912, 913, 914, 915, 916, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, + 0, 928, 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 0, 943, 0, 944, + 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, + 955, 956, 0, 0, 0, 0, 0, 957, 958, 959, + 0, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 0, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 0, 0, 0, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1224, 1012, 1013, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + 0, 900, 901, 902, 903, 904, 905, 906, 907, 908, + 909, 910, 0, 0, 0, 0, 0, 0, 0, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, + 922, 923, 924, 925, 926, 927, 0, 0, 928, 929, + 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, + 940, 941, 942, 0, 943, 0, 944, 945, 946, 947, + 948, 949, 950, 951, 952, 953, 954, 955, 956, 0, + 0, 0, 0, 0, 957, 958, 959, 0, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, + 972, 973, 974, 975, 0, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 0, 0, 0, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 0, 1012, 1013, 658, 659, 660, + 10, 0, 11, 661, 662, 51, 0, 0, 663, 0, + 0, 0, 0, 0, 53, 0, 54, 55, 56, 0, + 0, 0, 0, 0, 0, 0, 220, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 664, 52, 63, 221, 53, 199, 54, 55, 56, + 57, 380, 0, 665, 59, 0, 0, 60, 666, 0, + 0, 61, 0, 65, 66, 0, 667, 668, 62, 0, + 0, 0, 0, 0, 63, 64, 0, 0, 0, 70, + 0, 0, 0, 669, 72, 670, 0, 671, 0, 0, + 0, 381, 672, 0, 65, 66, 673, 0, 0, 674, + 67, 0, 0, 0, 675, 0, 0, 676, 68, 69, + 70, 0, 0, 71, 0, 72, 658, 659, 660, 10, + 0, 11, 661, 662, 51, 0, 0, 1101, 677, 0, + 0, 678, 679, 0, 0, 0, 680, 0, 681, 0, + 0, 0, 0, 682, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 664, 52, 1217, 0, 53, 0, 54, 55, 56, 57, + 380, 0, 665, 59, 0, 0, 60, 666, 0, 0, + 61, 0, 0, 0, 0, 667, 668, 62, 0, 0, + 0, 0, 0, 63, 64, 0, 0, 0, 0, 0, + 0, 0, 669, 0, 670, 0, 671, 0, 0, 0, + 381, 672, 0, 65, 66, 673, 0, 0, 674, 67, + 0, 0, 0, 675, 0, 0, 676, 68, 69, 70, + 0, 0, 71, 0, 72, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 175, 176, 677, 0, 0, + 678, 679, 0, 0, 0, 680, 0, 681, 0, 0, + 0, 0, 682, 1184, 1185, 1186, 1187, 1188, 1189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1190, 15, + 0, 0, 0, 16, 0, 17, 18, 19, 0, 0, + 0, 20, 0, 0, 0, 21, 22, 0, 0, 0, + 0, 0, 0, 0, 23, 24, 25, 0, 177, 178, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 179, 180, + 31, 181, 32, 33, 34, 0, 182, 35, 183, 175, + 176, 0, 36, 0, 0, 37, 0, 0, 38, 7, + 8, 9, 10, 39, 11, 12, 13, 14, 0, 0, + 0, 265, 0, 0, 0, 0, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 0, 45, 46, 358, 1193, + 1194, 47, 0, 1195, 1196, 1197, 1198, 1199, 0, 1200, + 1201, 1202, 0, 15, 0, 0, 0, 16, 0, 17, + 18, 19, 177, 178, 0, 20, 0, 0, 0, 21, + 22, 53, 0, 54, 55, 56, 0, 0, 23, 24, + 25, 0, 179, 180, 0, 181, 26, 27, 0, 0, + 182, 0, 183, 0, 0, 28, 0, 29, 0, 30, + 63, 221, 0, 0, 31, 0, 32, 33, 34, 0, + 0, 35, 0, 0, 0, 401, 36, 529, 530, 37, + 65, 66, 38, 7, 8, 9, 10, 39, 11, 12, + 13, 14, 721, 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, 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, + 54, 55, 56, 0, 147, 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, 53, 0, 54, 55, 56, 65, 66, 28, + 0, 29, 0, 30, 220, 0, 0, 0, 31, 0, + 32, 33, 34, 70, 0, 35, 71, 0, 72, 0, + 36, 63, 221, 37, 0, 0, 38, 7, 8, 9, + 10, 39, 11, 12, 13, 14, 0, 0, 0, 0, + 0, 65, 66, 0, 40, 0, 0, 41, 42, 43, + 0, 0, 44, 0, 45, 46, 1124, 70, 0, 47, + 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 137, 0, 21, 22, 53, + 0, 54, 55, 56, 0, 0, 23, 24, 25, 0, + 0, 0, 0, 0, 26, 27, 53, 0, 54, 55, + 56, 0, 0, 28, 0, 29, 0, 30, 63, 221, + 0, 0, 31, 0, 32, 33, 34, 0, 0, 35, + 0, 175, 176, 0, 36, 63, 221, 37, 65, 66, + 38, 7, 8, 9, 10, 39, 11, 12, 13, 14, + 1141, 0, 0, 0, 70, 65, 66, 0, 40, 72, + 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, + 0, 70, 0, 47, 0, 0, 72, 0, 0, 0, + 0, 0, 148, 0, 0, 15, 0, 0, 0, 16, + 0, 17, 18, 19, 177, 178, 0, 20, 0, 152, + 0, 21, 22, 53, 0, 54, 55, 56, 0, 279, + 23, 24, 25, 0, 179, 180, 0, 181, 26, 27, + 0, 0, 182, 0, 183, 0, 0, 28, 0, 29, + 0, 30, 63, 221, 0, 0, 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, 1266, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 0, 16, 0, 17, 18, 19, 0, 0, + 0, 20, 0, 0, 0, 21, 22, 0, 0, 0, + 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 27, 0, 0, 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, 0, 38, 7, + 8, 9, 10, 39, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 425, 426, 0, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 0, 45, 46, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1072, 0, 0, 0, 0, 0, 0, + 0, 286, 0, 0, 53, 1073, 54, 55, 56, 57, + 1074, 0, 0, 288, 0, 0, 60, 0, 23, 24, + 61, 0, 0, 0, 0, 0, 0, 62, -2, 0, + 0, 0, 0, 63, 64, 0, 0, 29, 0, 30, + 0, 0, 0, 0, 1075, 0, 0, 0, 1076, 0, + 0, 1077, 0, 65, 66, 0, 36, 0, 0, 67, + 0, 0, 0, 0, 0, 0, 0, 290, 69, 70, + 0, 0, 71, 0, 72, 0, 0, 86, 87, 0, + 1078, 0, 0, 1079, 1080, 1081, 88, 0, 1082, 0, + 1083, 46, 0, 0, 89, 1084, 90, 91, 92, 93, + 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, + 0, 96, 97, 98, 99, 100, 101, 1186, 1187, 1188, + 1189, 0, 102, 103, 104, 105, 0, 0, 0, 0, + 1190, 106, 107, 0, 0, 108, 109, 0, 0, 0, + 110, 0, 0, 0, 0, 111, 112, 0, 113, 730, + 0, 0, 0, 0, 0, 0, 114, 0, 731, 732, + 733, 734, 735, 736, 737, 738, 0, 175, 176, 0, + 0, 0, 0, 115, 0, 739, 0, 740, 741, 742, + 743, 744, 745, 746, 747, 748, 749, 750, 751, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 752, 199, 0, 0, 0, + 0, 0, 0, 57, 0, 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, + 177, 178, 753, 0, 0, 1195, 1196, 1197, 1198, 1199, + 0, 1200, 1201, 1202, 0, 0, 0, 0, 0, 0, + 179, 180, 0, 181, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 67, 0, 0, 0, 0, 0, 0, + 754, 807, 69, 755, 0, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 0, 767, 768, 284, + 285, 0, 769, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 284, 285, 1300, 0, 0, 0, 0, 286, 0, 0, + 53, 0, 54, 55, 56, 57, 287, 0, 0, 288, 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, + 0, 0, 0, 62, 0, 0, 0, 0, 286, 63, + 64, 53, 0, 54, 55, 56, 57, 287, 0, 0, + 288, 289, 0, 60, 0, 0, 0, 61, 0, 65, + 66, 0, 0, 0, 62, 67, 0, 0, 0, 0, + 63, 64, 0, 290, 69, 70, 411, 412, 71, 0, + 72, 0, 289, 0, 0, 291, 0, 0, 0, 0, 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, 292, 0, 0, 290, 69, 70, 0, 0, 71, + 0, 72, 0, 0, 286, 0, 0, 53, 0, 54, + 55, 56, 57, 413, 0, 0, 288, 0, 0, 60, + 0, 0, 292, 61, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 63, 64, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 0, 289, 0, + 0, 0, 0, 0, 0, 199, 65, 66, 0, 0, + 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, + 290, 69, 70, 0, 0, 71, 0, 72, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 292, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 199, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 199, 191, 192, 193, 194, 195, + 196, 197, 198, 0, 0, 0, 0, 0, 0, 0, + 527, 0, 199, 0, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 528, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 468, + 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 481, 0, 0, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 594, 0, + 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 0, 211, 212, 213, 697, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 199, 0, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 1213, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, + 0, 191, 192, 193, 194, 195, 196, 197, 198, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 199, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 199, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, + 0, 478, 0, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 0, 856, + 857, 858, 859, 860, 861, 862, 863, 0, 0, 0, + 0, 0, 0, 0, 0, 726, 864, 0, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 0, + 211, 212, 213, 1048, 0, 0, 0, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 0, 211, + 212, 213, 0, 1215, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 1182, 1183, + 1184, 1185, 1186, 1187, 1188, 1189, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 865, 866, 867, 868, 869, + 870, 871, 872, 873, 874, 875, 0, 876, 877, 878, + 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1184, 1185, 1186, 1187, 1188, 1189, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, + 193, 194, 195, 196, 197, 198, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 1298, 0, 1191, 1192, 1193, 1194, 0, 0, + 1195, 1196, 1197, 1198, 1199, 0, 1200, 1201, 1202, 0, + 0, 0, 0, 0, 51, 0, 0, 378, 0, 379, + 0, 0, 0, 0, 0, 0, 193, 194, 195, 196, + 197, 198, 0, 0, 0, 0, 1191, 1192, 1193, 1194, + 0, 199, 1195, 1196, 1197, 1198, 1199, 0, 1200, 1201, + 1202, 52, 0, 0, 53, 0, 54, 55, 56, 57, + 380, 0, 0, 59, 0, 0, 60, 1192, 1193, 1194, + 61, 0, 1195, 1196, 1197, 1198, 1199, 62, 1200, 1201, + 1202, 0, 0, 63, 64, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, + 381, 0, 0, 65, 66, 175, 176, 0, 0, 67, + 193, 194, 195, 196, 197, 198, 0, 68, 69, 70, + 0, 0, 71, 0, 72, 199, 1184, 1185, 1186, 1187, + 1188, 1189, 0, 0, 0, 0, 0, 382, 0, 0, + 0, 1190, 383, 203, 204, 205, 206, 207, 208, 209, + 210, 57, 211, 212, 213, 1184, 1185, 1186, 1187, 1188, + 1189, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 1190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 804, + 805, 806, 0, 0, 0, 0, 182, 0, 183, 0, + 0, 67, 0, 0, 0, 0, 0, 0, 0, 807, + 69, 0, 0, 808, 0, 0, 529, 530, 0, 0, + 0, 0, 0, 0, 0, 0, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, + 0, 0, 0, 1194, 0, 0, 1195, 1196, 1197, 1198, + 1199, 0, 1200, 1201, 1202, 0, 0, 53, 0, 54, + 55, 56, 531, 532, 0, 0, 0, 0, 0, 60, + 0, 0, 0, 0, 0, 1195, 1196, 1197, 1198, 1199, + 62, 1200, 1201, 1202, 0, 0, 63, 64, 0, 51, + 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 533, 0, 70, 0, 0, 71, 52, 72, 0, 53, + 0, 54, 55, 56, 57, 380, 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, 616, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 381, 0, 0, 65, 66, + 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 68, 69, 70, 0, 0, 71, 52, 72, + 0, 53, 0, 54, 55, 56, 57, 380, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, + 65, 66, 0, 0, 0, 51, 67, 0, 0, 0, + 0, 0, 0, 0, 68, 69, 70, 0, 0, 71, + 52, 72, 0, 53, 0, 54, 55, 56, 57, 380, + 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, 0, 62, 381, + 0, 0, 65, 66, 63, 64, 0, 51, 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, 0, 0, 71, 52, 72, 0, 53, 0, 54, + 55, 56, 57, 429, 0, 0, 59, 0, 0, 60, + 0, 0, 0, 61, 51, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 63, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 138, 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, 139, 0, 0, 53, 62, 54, 55, + 56, 57, 788, 63, 64, 140, 0, 0, 60, 0, + 0, 0, 61, 138, 0, 0, 0, 0, 0, 62, + 491, 0, 0, 65, 66, 63, 64, 0, 0, 67, + 0, 0, 0, 0, 0, 51, 0, 68, 69, 70, + 0, 0, 71, 0, 72, 65, 66, 0, 0, 0, + 139, 67, 0, 53, 0, 54, 55, 56, 57, 141, + 69, 70, 140, 0, 71, 60, 72, 0, 0, 61, + 0, 0, 52, 175, 176, 53, 62, 54, 55, 56, + 57, 0, 63, 64, 59, 0, 0, 60, 0, 175, + 176, 61, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 65, 66, 63, 64, 0, 0, 67, 0, + 0, 0, 0, 0, 0, 0, 141, 69, 70, 57, + 0, 71, 0, 72, 65, 66, 0, 0, 175, 176, + 67, 0, 0, 0, 0, 57, 177, 178, 68, 69, + 70, 0, 0, 71, 0, 72, 0, 0, 0, 0, + 0, 0, 177, 178, 0, 0, 179, 180, 0, 181, + 0, 0, 0, 0, 182, 0, 183, 0, 0, 67, + 0, 0, 179, 180, 57, 181, 0, 807, 69, 0, + 182, 1049, 183, 0, 0, 67, 0, 0, 0, 0, + 0, 177, 178, 807, 69, 0, 0, 1051, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 87, + 0, 179, 180, 0, 181, 0, 0, 88, 0, 182, + 0, 183, 0, 0, 67, 89, 0, 90, 91, 92, + 93, 0, 807, 69, 94, 0, 1053, 0, 95, 0, + 0, 0, 96, 97, 98, 99, 100, 101, 0, 0, + 0, 0, 0, 102, 103, 104, 105, 0, 0, 0, + 0, 0, 106, 107, 86, 87, 108, 109, 0, 0, + 0, 110, 0, 88, 0, 0, 111, 112, 0, 113, + 0, 89, 0, 90, 91, 92, 93, 114, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 0, 96, 97, + 98, 99, 100, 101, 115, 0, 525, 0, 0, 102, + 103, 104, 105, 0, 0, 0, 0, 0, 106, 107, + 86, 87, 108, 109, 0, 0, 0, 110, 0, 88, + 0, 0, 111, 112, 0, 113, 0, 89, 0, 90, + 91, 92, 93, 114, 0, 0, 94, 0, 0, 0, + 95, 0, 0, 0, 96, 97, 98, 99, 100, 101, + 115, 0, 632, 0, 0, 102, 103, 104, 105, 0, + 0, 0, 0, 0, 106, 107, 86, 87, 108, 109, + 0, 0, 0, 110, 0, 88, 0, 0, 111, 112, + 0, 113, 0, 89, 0, 90, 91, 92, 93, 114, + 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, + 96, 97, 98, 99, 100, 101, 115, 0, 637, 0, + 0, 102, 103, 104, 105, 0, 0, 0, 0, 0, + 106, 107, 86, 87, 108, 109, 0, 0, 0, 110, + 0, 88, 0, 0, 111, 112, 0, 113, 0, 89, + 0, 90, 91, 92, 93, 114, 0, 0, 94, 0, + 0, 0, 95, 0, 0, 0, 96, 97, 98, 99, + 100, 101, 115, 0, 707, 0, 0, 102, 103, 104, + 105, 0, 0, 0, 0, 0, 106, 107, 86, 87, + 108, 109, 0, 0, 0, 110, 0, 88, 0, 0, + 111, 112, 0, 113, 0, 89, 0, 90, 91, 92, + 93, 114, 0, 0, 94, 0, 0, 0, 95, 0, + 0, 0, 96, 97, 98, 99, 100, 101, 115, 0, + 821, 0, 0, 102, 103, 104, 105, 0, 0, 0, + 0, 0, 106, 107, 86, 87, 108, 109, 0, 0, + 0, 110, 0, 88, 0, 0, 111, 112, 0, 113, + 0, 89, 0, 90, 91, 92, 93, 114, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 0, 96, 97, + 98, 99, 100, 101, 115, 0, 1062, 0, 0, 102, + 103, 104, 105, 0, 0, 0, 0, 0, 106, 107, + 86, 87, 108, 109, 0, 0, 0, 110, 0, 88, + 0, 0, 111, 112, 0, 113, 0, 89, 0, 90, + 91, 92, 93, 114, 0, 0, 94, 0, 0, 0, + 95, 0, 0, 0, 96, 97, 98, 99, 100, 101, + 115, 0, 1160, 0, 0, 102, 103, 104, 105, 0, + 0, 0, 0, 0, 106, 107, 87, 0, 108, 109, + 0, 0, 0, 110, 88, 0, 0, 0, 111, 112, + 87, 113, 0, 0, 90, 91, 92, 0, 88, 0, + 0, 0, 0, 0, 0, 249, 0, 0, 90, 91, + 92, 0, 87, 100, 258, 0, 115, 0, 0, 249, + 88, 0, 0, 105, 0, 0, 0, 100, 0, 106, + 90, 91, 92, 0, 109, 0, 0, 105, 0, 0, + 0, 249, 0, 106, 112, 0, 113, 0, 109, 100, + 0, 0, 0, 0, 0, 0, 0, 0, 112, 105, + 113, 0, 0, 0, 0, 106, 0, 0, 87, 108, + 109, 115, 0, 0, 0, -144, 88, 0, 0, 0, + 112, 0, 113, 0, 0, 115, 90, 91, 92, 0, + 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, + 0, 0, 0, 0, 0, 100, 0, 115, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, + 0, 106, 0, 0, 0, 0, 109, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 0, 113, 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 + 0, 0, 0, 115 }; 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, 381, 439, 128, 129, 130, 131, 474, 133, 108, + 135, 136, 137, 527, 28, 119, 58, 489, 45, 721, + 599, 28, 147, 148, 119, 216, 144, 152, 153, 588, + 119, 543, 12, 57, 548, 551, 56, 414, 229, 230, + 396, 553, 28, 265, 127, 46, 119, 6, 589, 8, + 277, 14, 61, 62, 496, 126, 615, 0, 10, 11, + 287, 45, 144, 146, 580, 581, 144, 583, 584, 585, + 586, 612, 73, 144, 12, 144, 87, 88, 16, 90, + 91, 92, 549, 144, 95, 552, 106, 145, 146, 100, + 669, 127, 14, 127, 105, 106, 130, 108, 109, 110, + 73, 112, 113, 144, 127, 119, 804, 805, 806, 130, + 146, 32, 119, 654, 144, 64, 65, 66, 498, 57, + 144, 70, 135, 146, 145, 126, 144, 128, 129, 130, + 131, 135, 133, 119, 135, 136, 137, 73, 21, 22, + 652, 93, 144, 127, 127, 144, 147, 148, 132, 32, + 134, 152, 153, 126, 626, 696, 129, 12, 135, 139, + 73, 16, 146, 146, 127, 149, 150, 151, 548, 273, + 32, 145, 146, 277, 130, 397, 692, 129, 273, 401, + 145, 146, 120, 287, 273, 212, 413, 146, 277, 145, + 126, 233, 126, 129, 319, 6, 134, 8, 287, 32, + 273, 139, 57, 144, 277, 127, 144, 127, 145, 788, + 432, 727, 589, 126, 287, 216, 129, 144, 167, 168, + 169, 170, 143, 144, 145, 127, 146, 228, 229, 230, + 231, 232, 233, 144, 706, 591, 237, 32, 249, 144, + 145, 708, 253, 128, 146, 130, 555, 289, 557, 558, + 559, 560, 561, 794, 137, 138, 139, 140, 141, 273, + 143, 144, 145, 277, 265, 120, 273, 129, 135, 127, + 277, 127, 221, 287, 126, 712, 128, 654, 130, 134, + 287, 127, 144, 145, 139, 144, 492, 273, 146, 129, + 146, 277, 241, 834, 500, 501, 502, 503, 504, 505, + 146, 287, 127, 127, 526, 777, 139, 140, 141, 413, + 143, 144, 145, 228, 229, 230, 231, 232, 319, 696, + 129, 146, 146, 127, 413, 127, 793, 127, 127, 796, + 797, 537, 144, 127, 335, 336, 126, 127, 380, 381, + 413, 855, 146, 144, 146, 787, 146, 146, 143, 144, + 145, 1049, 146, 1051, 791, 1053, 73, 144, 1056, 1057, + 1058, 6, 363, 8, 365, 366, 367, 368, 369, 144, + 87, 144, 127, 90, 127, 127, 93, 144, 379, 10, + 11, 382, 383, 127, 127, 127, 387, 429, 389, 127, + 699, 146, 109, 146, 146, 144, 397, 398, 129, 413, + 401, 129, 146, 146, 146, 611, 413, 144, 146, 410, + 145, 146, 618, 10, 11, 12, 638, 144, 145, 16, + 887, 126, 144, 128, 410, 130, 126, 413, 128, 430, + 130, 432, 474, 144, 126, 419, 128, 879, 130, 1141, + 882, 647, 73, 74, 144, 144, 145, 396, 363, 491, + 365, 366, 367, 368, 369, 146, 498, 834, 148, 127, + 57, 139, 93, 94, 379, 96, 145, 382, 383, 145, + 101, 129, 103, 474, 475, 855, 126, 1036, 128, 129, + 130, 135, 483, 21, 22, 123, 124, 125, 489, 126, + 146, 492, 144, 144, 32, 496, 93, 146, 128, 500, + 501, 502, 503, 504, 505, 506, 548, 549, 127, 145, + 552, 144, 145, 146, 1028, 146, 517, 144, 145, 146, + 94, 95, 96, 120, 146, 526, 144, 145, 146, 146, + 146, 146, 136, 2, 146, 136, 537, 134, 146, 10, + 11, 12, 139, 146, 146, 16, 532, 548, 549, 136, + 649, 552, 146, 146, 555, 146, 557, 558, 559, 560, + 561, 136, 146, 146, 146, 592, 593, 568, 483, 596, + 597, 40, 41, 42, 43, 44, 577, 1089, 47, 1046, + 139, 146, 73, 147, 126, 599, 57, 588, 589, 714, + 715, 813, 599, 127, 127, 10, 11, 127, 789, 137, + 138, 139, 140, 141, 127, 143, 144, 145, 144, 128, + 611, 612, 127, 599, 615, 144, 148, 618, 144, 1131, + 129, 92, 93, 144, 144, 626, 633, 144, 146, 57, + 144, 139, 148, 10, 11, 12, 126, 638, 649, 16, + 129, 10, 591, 10, 10, 656, 647, 10, 1028, 120, + 651, 128, 136, 654, 681, 669, 128, 127, 73, 74, + 148, 139, 669, 134, 650, 1132, 708, 147, 139, 1228, + 1229, 1230, 139, 144, 128, 128, 128, 128, 93, 94, + 57, 96, 151, 669, 147, 146, 101, 144, 103, 139, + 126, 1203, 148, 1135, 126, 696, 144, 681, 699, 144, + 144, 127, 145, 145, 127, 706, 127, 708, 1150, 1151, + 1152, 127, 130, 714, 715, 130, 93, 130, 32, 134, + 721, 135, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 120, 213, 144, 135, 135, 217, 144, + 135, 793, 1219, 144, 796, 797, 146, 134, 10, 146, + 146, 32, 139, 145, 1323, 127, 147, 144, 146, 148, + 4, 1330, 127, 144, 788, 148, 777, 10, 128, 10, + 1222, 788, 10, 10, 1226, 128, 787, 127, 789, 1231, + 1227, 144, 793, 794, 32, 796, 797, 804, 805, 806, + 146, 127, 788, 272, 148, 144, 147, 814, 146, 1276, + 147, 146, 813, 855, 147, 146, 148, 147, 1078, 1079, + 1080, 1081, 1082, 824, 1084, 139, 140, 141, 146, 143, + 144, 145, 135, 834, 146, 146, 1278, 146, 144, 823, + 135, 825, 135, 144, 135, 887, 1037, 127, 317, 46, + 877, 136, 146, 136, 838, 839, 840, 136, 842, 843, + 844, 845, 331, 332, 1306, 146, 137, 138, 139, 140, + 141, 68, 143, 144, 145, 136, 146, 144, 879, 126, + 1322, 882, 146, 80, 146, 10, 887, 146, 128, 10, + 79, 80, 128, 128, 10, 146, 128, 146, 6, 137, + 138, 139, 140, 141, 101, 143, 144, 145, 147, 146, + 10, 11, 127, 10, 111, 144, 146, 136, 144, 144, + 389, 144, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, + 1200, 146, 50, 136, 141, 136, 143, 144, 146, 136, + 58, 16, 17, 18, 19, 20, 21, 22, 146, 428, + 68, 69, 70, 147, 32, 128, 10, 32, 1093, 10, + 11, 79, 441, 73, 74, 128, 144, 144, 144, 87, + 144, 146, 128, 128, 146, 1245, 1028, 146, 185, 97, + 991, 257, 713, 93, 94, 103, 96, 547, 1031, 1131, + 108, 101, 1089, 103, 1046, 73, 1203, 649, 277, 478, + 118, 650, 120, 1028, 824, 991, 855, 814, -1, 87, + 489, 532, 90, 336, -1, 93, -1, 1028, -1, 129, + -1, -1, 73, 74, -1, 1036, 1037, 145, 1298, -1, + -1, 109, 1049, -1, 1051, 1046, 1053, -1, -1, 1056, + 1057, 1058, 93, 94, -1, 96, 1083, -1, -1, -1, + 101, 258, 103, 260, 261, 262, 263, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, -1, 143, 144, + 145, -1, 279, -1, -1, 126, 283, -1, -1, -1, + 1132, -1, 1093, 290, -1, 292, -1, -1, -1, 1083, + -1, -1, -1, 300, 301, -1, -1, 830, 577, -1, + -1, 300, 301, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, + -1, 1132, -1, -1, 1135, -1, -1, -1, -1, 336, + 1141, 15, 16, 17, 18, 19, 20, 21, 22, 1150, + 1151, 1152, -1, -1, -1, -1, 625, 626, 32, -1, + -1, -1, 631, -1, -1, -1, 51, -1, 53, 54, + 55, -1, -1, -1, 1201, -1, -1, 1219, -1, -1, + -1, -1, -1, -1, 1168, 1169, 1170, 1171, 1172, 1173, + -1, -1, -1, 390, -1, 80, 81, -1, 387, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 677, 678, + 679, 680, -1, 682, -1, 100, 101, -1, 1219, -1, + -1, 1222, -1, -1, -1, 1226, -1, 1228, 1229, 1230, + 1231, 116, -1, -1, 1276, -1, 121, 706, -1, 436, + -1, 430, -1, 1270, 1271, -1, 1273, 1274, -1, -1, + -1, -1, 721, -1, 10, 11, -1, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, -1, 143, + 144, 145, -1, -1, 148, 1276, -1, 1278, -1, -1, + -1, -1, -1, -1, -1, -1, 1313, 1314, 1315, 1316, + -1, -1, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, 492, -1, 1306, -1, 32, 777, -1, + 779, 500, 501, 502, 503, 504, 505, 73, 74, -1, + -1, 1322, 1323, -1, -1, -1, -1, -1, -1, 1330, + 19, 20, 21, 22, 531, -1, 533, 93, 94, -1, + 96, -1, -1, 32, -1, 101, -1, 103, 537, -1, + 547, -1, -1, -1, -1, 1078, 1079, 1080, 1081, 1082, + -1, 1084, -1, -1, -1, -1, 555, -1, 557, 558, + 559, 560, 561, -1, -1, -1, 845, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, -1, 878, + 135, 136, 137, 138, 139, 140, 141, -1, 143, 144, + 145, -1, 611, -1, -1, -1, -1, -1, -1, 618, + -1, -1, -1, -1, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, 135, 136, 137, 138, + 139, 140, 141, -1, 143, 144, 145, -1, 647, 1182, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, -1, 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, 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, + 699, -1, 80, 81, -1, -1, 713, -1, -1, -1, + -1, 89, 1245, 91, -1, 93, -1, -1, -1, -1, + 98, -1, 100, 101, 102, -1, -1, 105, 106, -1, + -1, -1, 110, -1, -1, 113, 114, 115, 116, -1, + -1, 119, 1021, 121, -1, -1, 3, 4, 5, 6, + -1, 8, 9, 10, 11, -1, 134, -1, -1, 137, + 138, 139, -1, -1, 142, 1298, 144, 145, -1, -1, + -1, 149, -1, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, 790, -1, -1, -1, -1, -1, 32, + 47, -1, -1, -1, 51, -1, 53, 54, 55, -1, + 807, -1, 59, 810, 61, 62, 63, 64, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + 1099, -1, -1, 80, 81, -1, -1, -1, -1, -1, + -1, -1, 89, -1, 91, -1, 93, -1, -1, -1, + -1, 98, -1, 100, 101, 102, -1, -1, 105, -1, + -1, -1, -1, 110, -1, -1, 113, -1, -1, 116, + -1, -1, 1141, -1, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, + 137, 138, 139, -1, -1, 142, -1, 144, 145, 132, + 133, 134, 149, -1, 137, 138, 139, 140, 141, -1, + 143, 144, 145, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 1202, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, -1, 1215, -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, -1, -1, 87, 88, 89, + -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, -1, -1, -1, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 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, -1, -1, 87, 88, 89, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + -1, -1, -1, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, -1, 148, 149, 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, + -1, -1, -1, -1, 51, -1, 53, 54, 55, -1, + -1, -1, -1, -1, -1, -1, 63, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, + -1, 47, 48, 80, 81, 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, 67, -1, 100, 101, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, -1, 116, + -1, -1, -1, 89, 121, 91, -1, 93, -1, -1, + -1, 97, 98, -1, 100, 101, 102, -1, -1, 105, + 106, -1, -1, -1, 110, -1, -1, 113, 114, 115, + 116, -1, -1, 119, -1, 121, 3, 4, 5, 6, + -1, 8, 9, 10, 11, -1, -1, 14, 134, -1, + -1, 137, 138, -1, -1, -1, 142, -1, 144, -1, + -1, -1, -1, 149, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 47, 48, 148, -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, + -1, -1, 89, -1, 91, -1, 93, -1, -1, -1, + 97, 98, -1, 100, 101, 102, -1, -1, 105, 106, + -1, -1, -1, 110, -1, -1, 113, 114, 115, 116, + -1, -1, 119, -1, 121, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, 10, 11, 134, -1, -1, + 137, 138, -1, -1, -1, 142, -1, 144, -1, -1, + -1, -1, 149, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, 47, + -1, -1, -1, 51, -1, 53, 54, 55, -1, -1, + -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, 73, 74, -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, + -1, 89, -1, 91, -1, 93, -1, -1, 93, 94, + 98, 96, 100, 101, 102, -1, 101, 105, 103, 10, + 11, -1, 110, -1, -1, 113, -1, -1, 116, 3, + 4, 5, 6, 121, 8, 9, 10, 11, -1, -1, + -1, 126, -1, -1, -1, -1, 134, -1, -1, 137, + 138, 139, -1, -1, 142, -1, 144, 145, 146, 133, + 134, 149, -1, 137, 138, 139, 140, 141, -1, 143, + 144, 145, -1, 47, -1, -1, -1, 51, -1, 53, + 54, 55, 73, 74, -1, 59, -1, -1, -1, 63, + 64, 51, -1, 53, 54, 55, -1, -1, 72, 73, + 74, -1, 93, 94, -1, 96, 80, 81, -1, -1, + 101, -1, 103, -1, -1, 89, -1, 91, -1, 93, + 80, 81, -1, -1, 98, -1, 100, 101, 102, -1, + -1, 105, -1, -1, -1, 126, 110, 10, 11, 113, + 100, 101, 116, 3, 4, 5, 6, 121, 8, 9, + 10, 11, 126, -1, -1, -1, 116, -1, -1, -1, + 134, 121, -1, 137, 138, 139, -1, -1, 142, -1, + 144, 145, -1, -1, -1, 149, -1, -1, 51, -1, + 53, 54, 55, -1, 144, -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, 51, -1, 53, 54, 55, 100, 101, 89, + -1, 91, -1, 93, 63, -1, -1, -1, 98, -1, + 100, 101, 102, 116, -1, 105, 119, -1, 121, -1, + 110, 80, 81, 113, -1, -1, 116, 3, 4, 5, + 6, 121, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 100, 101, -1, 134, -1, -1, 137, 138, 139, + -1, -1, 142, -1, 144, 145, 146, 116, -1, 149, + -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, + -1, 47, -1, -1, -1, 51, -1, 53, 54, 55, + -1, -1, -1, 59, -1, 144, -1, 63, 64, 51, + -1, 53, 54, 55, -1, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, 51, -1, 53, 54, + 55, -1, -1, 89, -1, 91, -1, 93, 80, 81, + -1, -1, 98, -1, 100, 101, 102, -1, -1, 105, + -1, 10, 11, -1, 110, 80, 81, 113, 100, 101, + 116, 3, 4, 5, 6, 121, 8, 9, 10, 11, + 126, -1, -1, -1, 116, 100, 101, -1, 134, 121, + -1, 137, 138, 139, -1, -1, 142, -1, 144, 145, + -1, 116, -1, 149, -1, -1, 121, -1, -1, -1, + -1, -1, 144, -1, -1, 47, -1, -1, -1, 51, + -1, 53, 54, 55, 73, 74, -1, 59, -1, 144, + -1, 63, 64, 51, -1, 53, 54, 55, -1, 88, + 72, 73, 74, -1, 93, 94, -1, 96, 80, 81, + -1, -1, 101, -1, 103, -1, -1, 89, -1, 91, + -1, 93, 80, 81, -1, -1, 98, -1, 100, 101, + 102, -1, -1, 105, -1, -1, -1, -1, 110, -1, + -1, 113, 100, 101, 116, 3, 4, 5, 6, 121, + 8, 9, 10, 11, -1, -1, -1, -1, 116, -1, + -1, -1, 134, 121, -1, 137, 138, 139, -1, -1, + 142, -1, 144, 145, 146, -1, -1, 149, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + -1, -1, -1, 51, -1, 53, 54, 55, -1, -1, + -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, + -1, 89, -1, 91, -1, 93, -1, -1, -1, -1, + 98, -1, 100, 101, 102, -1, -1, 105, -1, -1, + -1, -1, 110, -1, -1, 113, -1, -1, 116, 3, + 4, 5, 6, 121, 8, 9, 10, -1, -1, -1, + -1, -1, -1, 10, 11, -1, 134, -1, -1, 137, + 138, 139, -1, -1, 142, -1, 144, 145, -1, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, + -1, 48, -1, -1, 51, 59, 53, 54, 55, 56, + 64, -1, -1, 60, -1, -1, 63, -1, 72, 73, + 67, -1, -1, -1, -1, -1, -1, 74, 0, -1, + -1, -1, -1, 80, 81, -1, -1, 91, -1, 93, + -1, -1, -1, -1, 98, -1, -1, -1, 102, -1, + -1, 105, -1, 100, 101, -1, 110, -1, -1, 106, + -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, + -1, -1, 119, -1, 121, -1, -1, 49, 50, -1, + 134, -1, -1, 137, 138, 139, 58, -1, 142, -1, + 144, 145, -1, -1, 66, 149, 68, 69, 70, 71, + -1, -1, -1, 75, -1, -1, -1, 79, -1, -1, + -1, 83, 84, 85, 86, 87, 88, 19, 20, 21, + 22, -1, 94, 95, 96, 97, -1, -1, -1, -1, + 32, 103, 104, -1, -1, 107, 108, -1, -1, -1, + 112, -1, -1, -1, -1, 117, 118, -1, 120, 6, + -1, -1, -1, -1, -1, -1, 128, -1, 15, 16, + 17, 18, 19, 20, 21, 22, -1, 10, 11, -1, + -1, -1, -1, 145, -1, 32, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, 62, 32, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, 74, 89, -1, -1, 137, 138, 139, 140, 141, + -1, 143, 144, 145, -1, -1, -1, -1, -1, -1, + 93, 94, -1, 96, -1, -1, -1, -1, 101, -1, + 103, -1, -1, 106, -1, -1, -1, -1, -1, -1, + 127, 114, 115, 130, -1, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, -1, 144, 145, 10, + 11, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 10, 11, 148, -1, -1, -1, -1, 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, 48, 80, + 81, 51, -1, 53, 54, 55, 56, 57, -1, -1, + 60, 92, -1, 63, -1, -1, -1, 67, -1, 100, + 101, -1, -1, -1, 74, 106, -1, -1, -1, -1, + 80, 81, -1, 114, 115, 116, 10, 11, 119, -1, + 121, -1, 92, -1, -1, 126, -1, -1, -1, -1, + 100, 101, -1, -1, -1, -1, 106, -1, -1, -1, + -1, 142, -1, -1, 114, 115, 116, -1, -1, 119, + -1, 121, -1, -1, 48, -1, -1, 51, -1, 53, + 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, + -1, -1, 142, 67, -1, -1, -1, -1, -1, -1, + 74, -1, -1, -1, -1, -1, 80, 81, 15, 16, + 17, 18, 19, 20, 21, 22, -1, -1, 92, -1, + -1, -1, -1, -1, -1, 32, 100, 101, -1, -1, + -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, + 114, 115, 116, -1, -1, 119, -1, 121, 15, 16, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, -1, 142, 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, 32, 15, 16, 17, 18, 19, + 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, + 127, -1, 32, -1, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, 146, + 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, + -1, -1, -1, -1, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, 146, + -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 146, -1, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, 146, -1, + -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, -1, 143, 144, 145, 146, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, -1, 143, 144, + 145, 146, 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, -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, + -1, 129, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, -1, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, 128, 32, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, -1, + 143, 144, 145, 127, -1, -1, -1, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, -1, 143, + 144, 145, -1, 129, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + -1, -1, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, 15, 16, 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, 32, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 15, 16, 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, - 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, + -1, -1, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, + -1, -1, 129, -1, 131, 132, 133, 134, -1, -1, + 137, 138, 139, 140, 141, -1, 143, 144, 145, -1, + -1, -1, -1, -1, 11, -1, -1, 14, -1, 16, + -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, 131, 132, 133, 134, + -1, 32, 137, 138, 139, 140, 141, -1, 143, 144, + 145, 48, -1, -1, 51, -1, 53, 54, 55, 56, + 57, -1, -1, 60, -1, -1, 63, 132, 133, 134, + 67, -1, 137, 138, 139, 140, 141, 74, 143, 144, + 145, -1, -1, 80, 81, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, -1, + 97, -1, -1, 100, 101, 10, 11, -1, -1, 106, + 17, 18, 19, 20, 21, 22, -1, 114, 115, 116, + -1, -1, 119, -1, 121, 32, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, 134, -1, -1, + -1, 32, 139, 134, 135, 136, 137, 138, 139, 140, + 141, 56, 143, 144, 145, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, -1, -1, 73, 74, + 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, + 95, 96, -1, -1, -1, -1, 101, -1, 103, -1, + -1, 106, -1, -1, -1, -1, -1, -1, -1, 114, + 115, -1, -1, 118, -1, -1, 10, 11, -1, -1, + -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, -1, + -1, -1, -1, 134, -1, -1, 137, 138, 139, 140, + 141, -1, 143, 144, 145, -1, -1, 51, -1, 53, + 54, 55, 56, 57, -1, -1, -1, -1, -1, 63, + -1, -1, -1, -1, -1, 137, 138, 139, 140, 141, + 74, 143, 144, 145, -1, -1, 80, 81, -1, 11, + -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 114, -1, 116, -1, -1, 119, 48, 121, -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, -1, -1, -1, + -1, -1, -1, -1, -1, 97, -1, -1, 100, 101, + -1, -1, -1, -1, 106, -1, -1, -1, -1, -1, + -1, -1, 114, 115, 116, -1, -1, 119, 48, 121, + -1, 51, -1, 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, 74, -1, -1, -1, -1, -1, + 80, 81, -1, 11, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, + 100, 101, -1, -1, -1, 11, 106, -1, -1, -1, + -1, -1, -1, -1, 114, 115, 116, -1, -1, 119, + 48, 121, -1, 51, -1, 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, -1, 74, 97, + -1, -1, 100, 101, 80, 81, -1, 11, 106, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, -1, + -1, 119, -1, 121, 100, 101, -1, -1, -1, -1, + 106, -1, -1, -1, -1, -1, -1, -1, 114, 115, + 116, -1, -1, 119, 48, 121, -1, 51, -1, 53, + 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, + -1, -1, -1, 67, 11, -1, -1, -1, -1, -1, + 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, -1, -1, + -1, 48, 106, -1, 51, -1, 53, 54, 55, 56, + 114, 115, 116, 60, -1, 119, 63, 121, -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, 11, -1, -1, -1, -1, -1, 74, + 97, -1, -1, 100, 101, 80, 81, -1, -1, 106, + -1, -1, -1, -1, -1, 11, -1, 114, 115, 116, + -1, -1, 119, -1, 121, 100, 101, -1, -1, -1, + 48, 106, -1, 51, -1, 53, 54, 55, 56, 114, + 115, 116, 60, -1, 119, 63, 121, -1, -1, 67, + -1, -1, 48, 10, 11, 51, 74, 53, 54, 55, + 56, -1, 80, 81, 60, -1, -1, 63, -1, 10, + 11, 67, -1, -1, -1, -1, -1, -1, 74, -1, + -1, -1, 100, 101, 80, 81, -1, -1, 106, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 56, + -1, 119, -1, 121, 100, 101, -1, -1, 10, 11, + 106, -1, -1, -1, -1, 56, 73, 74, 114, 115, + 116, -1, -1, 119, -1, 121, -1, -1, -1, -1, + -1, -1, 73, 74, -1, -1, 93, 94, -1, 96, + -1, -1, -1, -1, 101, -1, 103, -1, -1, 106, + -1, -1, 93, 94, 56, 96, -1, 114, 115, -1, + 101, 118, 103, -1, -1, 106, -1, -1, -1, -1, + -1, 73, 74, 114, 115, -1, -1, 118, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 49, 50, + -1, 93, 94, -1, 96, -1, -1, 58, -1, 101, + -1, 103, -1, -1, 106, 66, -1, 68, 69, 70, + 71, -1, 114, 115, 75, -1, 118, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, -1, 94, 95, 96, 97, -1, -1, -1, + -1, -1, 103, 104, 49, 50, 107, 108, -1, -1, + -1, 112, -1, 58, -1, -1, 117, 118, -1, 120, + -1, 66, -1, 68, 69, 70, 71, 128, -1, -1, + 75, -1, -1, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, 88, 145, -1, 147, -1, -1, 94, + 95, 96, 97, -1, -1, -1, -1, -1, 103, 104, + 49, 50, 107, 108, -1, -1, -1, 112, -1, 58, + -1, -1, 117, 118, -1, 120, -1, 66, -1, 68, + 69, 70, 71, 128, -1, -1, 75, -1, -1, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, + 145, -1, 147, -1, -1, 94, 95, 96, 97, -1, + -1, -1, -1, -1, 103, 104, 49, 50, 107, 108, + -1, -1, -1, 112, -1, 58, -1, -1, 117, 118, + -1, 120, -1, 66, -1, 68, 69, 70, 71, 128, + -1, -1, 75, -1, -1, -1, 79, -1, -1, -1, + 83, 84, 85, 86, 87, 88, 145, -1, 147, -1, + -1, 94, 95, 96, 97, -1, -1, -1, -1, -1, + 103, 104, 49, 50, 107, 108, -1, -1, -1, 112, + -1, 58, -1, -1, 117, 118, -1, 120, -1, 66, + -1, 68, 69, 70, 71, 128, -1, -1, 75, -1, + -1, -1, 79, -1, -1, -1, 83, 84, 85, 86, + 87, 88, 145, -1, 147, -1, -1, 94, 95, 96, + 97, -1, -1, -1, -1, -1, 103, 104, 49, 50, + 107, 108, -1, -1, -1, 112, -1, 58, -1, -1, + 117, 118, -1, 120, -1, 66, -1, 68, 69, 70, + 71, 128, -1, -1, 75, -1, -1, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, 145, -1, + 147, -1, -1, 94, 95, 96, 97, -1, -1, -1, + -1, -1, 103, 104, 49, 50, 107, 108, -1, -1, + -1, 112, -1, 58, -1, -1, 117, 118, -1, 120, + -1, 66, -1, 68, 69, 70, 71, 128, -1, -1, + 75, -1, -1, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, 88, 145, -1, 147, -1, -1, 94, + 95, 96, 97, -1, -1, -1, -1, -1, 103, 104, + 49, 50, 107, 108, -1, -1, -1, 112, -1, 58, + -1, -1, 117, 118, -1, 120, -1, 66, -1, 68, + 69, 70, 71, 128, -1, -1, 75, -1, -1, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, + 145, -1, 147, -1, -1, 94, 95, 96, 97, -1, + -1, -1, -1, -1, 103, 104, 50, -1, 107, 108, + -1, -1, -1, 112, 58, -1, -1, -1, 117, 118, + 50, 120, -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, + 70, -1, 50, 87, 88, -1, 145, -1, -1, 79, + 58, -1, -1, 97, -1, -1, -1, 87, -1, 103, + 68, 69, 70, -1, 108, -1, -1, 97, -1, -1, + -1, 79, -1, 103, 118, -1, 120, -1, 108, 87, + -1, -1, -1, -1, -1, -1, -1, -1, 118, 97, + 120, -1, -1, -1, -1, 103, -1, -1, 50, 107, + 108, 145, -1, -1, -1, 135, 58, -1, -1, -1, + 118, -1, 120, -1, -1, 145, 68, 69, 70, -1, + -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, + -1, -1, -1, -1, -1, 87, -1, 145, -1, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, 103, -1, -1, -1, -1, 108, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 118, -1, 120, -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 + -1, -1, -1, 145 }; /* 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, + 0, 123, 124, 125, 151, 152, 258, 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 + 59, 63, 64, 72, 73, 74, 80, 81, 89, 91, + 93, 98, 100, 101, 102, 105, 110, 113, 116, 121, + 134, 137, 138, 139, 142, 144, 145, 149, 248, 249, + 257, 11, 48, 51, 53, 54, 55, 56, 57, 60, + 63, 67, 74, 80, 81, 100, 101, 106, 114, 115, + 116, 119, 121, 212, 216, 217, 219, 225, 226, 230, + 231, 236, 237, 238, 239, 0, 49, 50, 58, 66, + 68, 69, 70, 71, 75, 79, 83, 84, 85, 86, + 87, 88, 94, 95, 96, 97, 103, 104, 107, 108, + 112, 117, 118, 120, 128, 145, 155, 157, 158, 160, + 163, 164, 186, 232, 235, 258, 144, 144, 144, 144, + 144, 144, 135, 144, 135, 144, 144, 144, 11, 48, + 60, 114, 214, 230, 231, 236, 135, 144, 144, 144, + 135, 144, 144, 144, 248, 248, 248, 248, 248, 11, + 51, 53, 54, 55, 63, 74, 80, 81, 100, 101, + 116, 121, 216, 246, 248, 10, 11, 73, 74, 93, + 94, 96, 101, 103, 130, 134, 252, 253, 255, 258, + 248, 15, 16, 17, 18, 19, 20, 21, 22, 32, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 143, 144, 145, 6, 8, 212, 144, 56, 106, + 63, 81, 237, 237, 237, 255, 237, 12, 16, 57, + 120, 134, 139, 144, 210, 211, 258, 126, 10, 11, + 93, 129, 256, 10, 11, 93, 126, 255, 256, 79, + 160, 160, 160, 6, 160, 160, 129, 159, 88, 160, + 144, 144, 144, 144, 160, 126, 255, 129, 129, 129, + 160, 160, 144, 160, 163, 187, 160, 160, 169, 88, + 255, 160, 160, 145, 10, 11, 48, 57, 60, 92, + 114, 126, 142, 174, 177, 213, 215, 217, 219, 225, + 230, 231, 236, 245, 246, 258, 216, 245, 245, 245, + 245, 216, 245, 216, 245, 245, 245, 144, 255, 144, + 255, 255, 216, 245, 245, 216, 216, 216, 248, 245, + 245, 146, 127, 146, 255, 148, 127, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 146, 246, + 248, 211, 248, 139, 12, 16, 57, 120, 134, 139, + 210, 258, 210, 211, 210, 211, 210, 210, 14, 16, + 57, 97, 134, 139, 196, 197, 206, 212, 258, 145, + 228, 229, 258, 11, 227, 237, 129, 218, 220, 160, + 157, 126, 255, 255, 255, 255, 255, 152, 126, 248, + 135, 10, 11, 57, 177, 213, 215, 255, 128, 130, + 161, 162, 255, 144, 144, 10, 11, 215, 144, 57, + 212, 255, 156, 255, 126, 128, 129, 130, 202, 126, + 128, 130, 203, 128, 165, 255, 256, 255, 146, 146, + 146, 146, 146, 146, 136, 146, 136, 146, 146, 146, + 248, 245, 136, 146, 146, 146, 136, 146, 146, 146, + 146, 248, 248, 57, 144, 183, 258, 252, 129, 146, + 148, 146, 210, 139, 210, 210, 210, 210, 210, 145, + 210, 97, 212, 206, 210, 210, 146, 14, 127, 12, + 16, 57, 120, 134, 139, 144, 209, 256, 258, 244, + 248, 258, 255, 147, 227, 152, 73, 221, 258, 152, + 126, 127, 127, 127, 127, 147, 233, 127, 146, 10, + 11, 56, 57, 114, 188, 189, 190, 191, 236, 258, + 144, 215, 203, 170, 128, 216, 148, 127, 144, 175, + 12, 139, 176, 166, 248, 212, 12, 16, 57, 120, + 134, 139, 208, 256, 258, 152, 144, 240, 241, 153, + 154, 255, 61, 62, 240, 61, 62, 126, 248, 12, + 16, 57, 92, 120, 134, 139, 144, 167, 192, 194, + 256, 129, 144, 144, 146, 146, 144, 144, 196, 32, + 73, 87, 90, 93, 109, 195, 258, 248, 210, 244, + 146, 212, 209, 146, 146, 183, 14, 206, 139, 209, + 209, 209, 209, 209, 209, 130, 145, 201, 258, 148, + 127, 130, 147, 129, 222, 223, 258, 147, 234, 10, + 10, 10, 10, 152, 257, 128, 255, 191, 255, 136, + 127, 209, 171, 172, 194, 128, 148, 161, 3, 4, + 5, 9, 10, 14, 47, 59, 64, 72, 73, 89, + 91, 93, 98, 102, 105, 110, 113, 134, 137, 138, + 142, 144, 149, 198, 199, 206, 207, 250, 251, 257, + 258, 196, 139, 192, 196, 168, 194, 146, 208, 139, + 208, 208, 208, 208, 208, 144, 145, 147, 178, 147, + 242, 258, 126, 127, 126, 144, 128, 128, 147, 128, + 128, 126, 204, 205, 248, 258, 128, 139, 192, 192, + 6, 15, 16, 17, 18, 19, 20, 21, 22, 32, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 62, 89, 127, 130, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 144, 145, 149, + 184, 192, 192, 192, 192, 129, 144, 145, 195, 130, + 201, 203, 227, 246, 246, 246, 246, 146, 57, 214, + 144, 126, 148, 144, 209, 201, 144, 144, 195, 209, + 146, 248, 244, 248, 94, 95, 96, 114, 118, 224, + 231, 254, 255, 126, 127, 152, 127, 146, 127, 127, + 127, 147, 146, 130, 209, 130, 163, 185, 186, 190, + 130, 200, 258, 173, 194, 201, 203, 160, 144, 135, + 135, 214, 135, 144, 135, 144, 248, 248, 248, 248, + 216, 246, 248, 146, 14, 127, 15, 16, 17, 18, + 19, 20, 21, 22, 32, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, + 192, 146, 146, 201, 203, 144, 208, 181, 244, 196, + 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, 87, 88, 89, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 148, 149, 243, 240, 154, 245, 245, 204, + 147, 127, 192, 10, 146, 148, 146, 4, 193, 244, + 248, 127, 146, 146, 146, 146, 183, 214, 211, 146, + 255, 240, 196, 201, 196, 196, 144, 148, 127, 118, + 254, 118, 254, 118, 254, 255, 94, 95, 96, 255, + 152, 224, 147, 10, 128, 10, 10, 10, 128, 216, + 200, 216, 47, 59, 64, 98, 102, 105, 134, 137, + 138, 139, 142, 144, 149, 247, 249, 201, 203, 127, + 216, 216, 216, 144, 216, 216, 216, 216, 248, 146, + 146, 14, 207, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 146, 246, 248, 183, 146, 144, + 183, 127, 182, 196, 148, 146, 242, 147, 147, 146, + 147, 126, 248, 198, 148, 167, 195, 211, 146, 147, + 146, 146, 146, 196, 254, 254, 254, 254, 254, 254, + 147, 127, 146, 127, 146, 146, 127, 146, 144, 135, + 135, 135, 144, 135, 247, 247, 247, 247, 247, 216, + 246, 247, 15, 16, 17, 18, 19, 20, 21, 22, + 32, 131, 132, 133, 134, 137, 138, 139, 140, 141, + 143, 144, 145, 127, 172, 146, 136, 136, 245, 136, + 146, 136, 146, 146, 248, 129, 146, 148, 144, 179, + 168, 196, 146, 183, 147, 204, 146, 126, 183, 183, + 183, 146, 10, 128, 10, 128, 128, 10, 128, 216, + 216, 216, 216, 216, 216, 146, 146, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 146, 246, 248, 173, + 144, 144, 146, 144, 144, 248, 180, 196, 146, 183, + 147, 183, 240, 195, 195, 195, 183, 146, 127, 127, + 146, 146, 136, 136, 136, 146, 136, 247, 129, 146, + 148, 246, 246, 246, 246, 196, 146, 183, 147, 128, + 10, 10, 128, 144, 144, 144, 144, 247, 146, 146, + 146, 146, 146, 183, 146, 146, 246, 246, 246, 246, + 183, 195, 128, 128, 146, 146, 146, 146, 195 }; /* 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, - 152, 152, 154, 153, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 157, 156, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 159, 159, 160, 160, 161, 161, 161, 161, 163, - 162, 164, 162, 165, 165, 166, 166, 168, 167, 169, - 167, 167, 170, 170, 171, 171, 173, 172, 174, 172, - 176, 175, 177, 175, 178, 175, 179, 175, 180, 175, - 175, 181, 181, 181, 181, 181, 181, 181, 181, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, - 185, 184, 184, 186, 186, 187, 187, 188, 188, 188, - 188, 188, 188, 189, 189, 189, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 191, 190, 192, - 192, 193, 193, 193, 194, 194, 194, 194, 194, 195, - 195, 196, 196, 196, 196, 196, 197, 197, 198, 198, - 199, 199, 200, 200, 200, 200, 200, 201, 201, 201, - 201, 201, 201, 202, 202, 202, 203, 203, 203, 203, - 204, 204, 204, 204, 205, 205, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, - 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 212, 212, 212, - 212, 212, 212, 212, 213, 213, 214, 214, 216, 215, - 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, 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, 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, - 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, 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, 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, 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, + 0, 150, 151, 151, 151, 152, 152, 152, 153, 153, + 154, 154, 156, 155, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 159, 158, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 161, 161, 162, 162, 163, + 163, 163, 163, 165, 164, 166, 164, 167, 167, 168, + 168, 170, 169, 171, 169, 169, 172, 172, 173, 173, + 175, 174, 176, 174, 178, 177, 179, 177, 180, 177, + 181, 177, 182, 177, 177, 183, 183, 183, 183, 183, + 183, 183, 183, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 185, 185, 187, 186, 186, 188, 188, 189, + 189, 190, 190, 190, 190, 190, 190, 191, 191, 191, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 193, 192, 194, 194, 195, 195, 195, 196, 196, + 196, 196, 196, 197, 197, 198, 198, 198, 198, 198, + 199, 199, 200, 200, 201, 201, 202, 202, 202, 202, + 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, + 205, 205, 205, 205, 206, 206, 206, 206, 207, 207, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 214, 214, 214, 214, 214, 214, 214, 215, 215, + 216, 216, 218, 217, 220, 219, 221, 221, 222, 222, + 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 225, 226, 226, 226, 226, 227, 227, 228, + 228, 228, 229, 229, 229, 230, 230, 230, 231, 231, + 231, 233, 232, 234, 232, 232, 232, 235, 235, 235, + 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, + 239, 241, 240, 242, 242, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, + 244, 245, 245, 246, 246, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 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, 248, 248, 248, 248, 248, 248, 248, 249, + 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, 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 + 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, + 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 256, 256, 256, 257, 257, 257, 257, + 258 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2649,41 +2707,41 @@ static const yytype_uint8 yyr2[] = { 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, 4, 4, 0, 5, 1, 1, 1, 1, 1, 1, - 2, 1, 1, 2, 2, 2, 2, 7, 9, 9, - 13, 9, 7, 5, 0, 3, 1, 2, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 6, 1, 3, 1, 4, 1, 3, 3, 3, 0, - 4, 0, 5, 2, 4, 2, 4, 0, 4, 0, - 5, 3, 2, 4, 2, 4, 0, 6, 0, 6, - 0, 7, 0, 11, 0, 12, 0, 8, 0, 9, - 1, 1, 1, 2, 2, 2, 2, 4, 5, 1, + 2, 1, 1, 2, 2, 2, 2, 7, 9, 11, + 9, 11, 13, 9, 13, 9, 7, 5, 0, 3, + 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 6, 1, 3, 1, 4, 1, + 3, 3, 3, 0, 4, 0, 5, 2, 4, 2, + 4, 0, 4, 0, 5, 3, 2, 4, 2, 4, + 0, 6, 0, 6, 0, 7, 0, 11, 0, 12, + 0, 8, 0, 9, 1, 1, 1, 2, 2, 2, + 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 0, 6, 2, 1, 1, 1, + 3, 2, 4, 2, 4, 3, 4, 1, 1, 1, + 1, 2, 3, 2, 2, 2, 2, 2, 3, 4, + 3, 0, 6, 2, 3, 1, 3, 4, 1, 1, + 1, 3, 2, 1, 3, 1, 1, 1, 3, 2, + 1, 3, 1, 2, 1, 2, 1, 3, 5, 3, + 3, 1, 3, 3, 3, 3, 4, 1, 1, 2, + 1, 3, 3, 5, 3, 4, 5, 2, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 3, 4, 1, + 1, 2, 2, 2, 2, 2, 3, 4, 7, 3, + 1, 2, 2, 2, 2, 2, 3, 4, 1, 2, + 2, 2, 2, 2, 3, 4, 5, 9, 9, 9, + 1, 1, 2, 1, 1, 1, 2, 4, 4, 1, + 1, 1, 2, 1, 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, 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, 1, 2, 2, 1, 1, 1, 1, - 0, 6, 2, 1, 1, 1, 3, 2, 4, 2, - 4, 3, 4, 1, 1, 1, 1, 2, 3, 2, - 2, 2, 2, 2, 3, 4, 3, 0, 6, 2, - 3, 1, 3, 4, 1, 1, 1, 3, 2, 1, - 3, 1, 1, 1, 3, 2, 1, 3, 1, 2, - 1, 2, 1, 3, 5, 3, 3, 1, 3, 3, - 3, 3, 4, 1, 1, 2, 1, 3, 3, 5, - 3, 4, 5, 2, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 3, 4, 1, 1, 2, 2, 2, - 2, 2, 3, 4, 7, 3, 1, 2, 2, 2, - 2, 2, 3, 4, 1, 2, 2, 2, 2, 2, - 3, 4, 5, 9, 9, 9, 1, 1, 2, 1, - 1, 1, 2, 4, 4, 1, 1, 1, 2, 1, - 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, 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, 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, @@ -2695,26 +2753,27 @@ 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, 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, + 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, 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, 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, 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, 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, 5, 4, 4, 3, 3, 3, 3, 1, - 1, 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, 1, - 1, 1, 1, 2, 2, 0 + 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, + 3, 3, 3, 1, 1, 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, 1, 1, 1, 1, 1, 2, 2, + 0 }; @@ -3490,56 +3549,56 @@ yyreduce: switch (yyn) { case 3: -#line 424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 426 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_expr = (yyvsp[0].u.expr); } -#line 3498 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3557 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 4: -#line 428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 430 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_type = (yyvsp[0].u.type); } -#line 3506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3565 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 10: -#line 446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete (yyvsp[-1].u.expr); } -#line 3514 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3573 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 11: -#line 450 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete (yyvsp[-1].u.expr); } -#line 3522 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3581 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 12: -#line 462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } -#line 3531 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3590 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 13: -#line 467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 469 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 3539 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3598 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 21: -#line 481 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3552,11 +3611,11 @@ yyreduce: publish_nest_level++; current_scope->set_current_vis(V_published); } -#line 3556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3615 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 22: -#line 494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[0])); @@ -3565,19 +3624,19 @@ yyreduce: } publish_nest_level = 0; } -#line 3569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3628 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 23: -#line 503 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 505 "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 */ +#line 3636 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 24: -#line 507 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 509 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -3585,27 +3644,27 @@ yyreduce: current_scope->set_current_vis(V_public); } } -#line 3589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 25: -#line 515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 517 "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 */ +#line 3656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 26: -#line 519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 521 "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 */ +#line 3664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 27: -#line 523 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 525 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -3616,11 +3675,11 @@ yyreduce: 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 */ +#line 3679 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 28: -#line 534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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) { @@ -3641,11 +3700,139 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 3645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 29: -#line 555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 557 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + 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[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); + + } else { + CPPDeclaration *setter = (yyvsp[-4].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[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-8].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-10]).file); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); + } +} +#line 3738 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 30: +#line 587 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + 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[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + length_getter = NULL; + } + + 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[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-6].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[-8]).file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); +} +#line 3759 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 31: +#line 604 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPDeclaration *length_getter = (yyvsp[-6].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[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); + length_getter = NULL; + } + + 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[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + + } else { + 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[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + } else { + setter_func = setter->as_function_group(); + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-8].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-10]).file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); + } +} +#line 3791 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 32: +#line 632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPDeclaration *length_getter = (yyvsp[-8].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[-8].u.identifier)->get_fully_scoped_name(), (yylsp[-8])); + length_getter = NULL; + } + + 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[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); + + } else { + CPPDeclaration *setter = (yyvsp[-4].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[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-10].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-12]).file); + make_property->_length_function = length_getter->as_function_group(); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); + } +} +#line 3832 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 33: +#line 669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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) { @@ -3667,11 +3854,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 3671 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3858 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 30: -#line 577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 34: +#line 691 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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) { @@ -3704,11 +3891,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 3708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3895 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 31: -#line 610 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 35: +#line 724 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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) { @@ -3730,11 +3917,11 @@ yyreduce: current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } -#line 3734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3921 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 32: -#line 632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 36: +#line 746 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { @@ -3745,11 +3932,11 @@ yyreduce: yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } -#line 3749 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3936 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 33: -#line 643 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 37: +#line 757 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); @@ -3759,46 +3946,46 @@ yyreduce: yywarning("static_assert failed", (yylsp[-2])); } } -#line 3763 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 34: -#line 656 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 38: +#line 770 "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 */ +#line 3960 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 35: -#line 662 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 39: +#line 776 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete current_scope; pop_scope(); } -#line 3782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3969 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 36: -#line 671 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 40: +#line 785 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } -#line 3790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 37: -#line 675 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 41: +#line 789 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } -#line 3798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 38: -#line 679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 42: +#line 793 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[-1].str) == "C") { @@ -3809,116 +3996,116 @@ yyreduce: yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } -#line 3813 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 39: -#line 690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 698 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 702 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; -} -#line 3845 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4000 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 43: -#line 706 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } -#line 3853 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4008 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 44: -#line 710 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } -#line 3861 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4016 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 45: -#line 714 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } -#line 3869 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4024 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 46: -#line 718 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 816 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } -#line 3877 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4032 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 47: -#line 722 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 820 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } -#line 3885 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4040 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 48: -#line 726 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 824 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } -#line 3893 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4048 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 49: -#line 730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 828 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } -#line 3901 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4056 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 50: -#line 734 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; +} +#line 4064 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 51: +#line 836 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; +} +#line 4072 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 52: +#line 840 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; +} +#line 4080 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 53: +#line 844 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; +} +#line 4088 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 54: +#line 848 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Ignore attribute specifiers for now. (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 3910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 55: -#line 752 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 59: +#line 866 "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 */ +#line 4105 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 56: -#line 756 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 60: +#line 870 "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 @@ -3927,11 +4114,11 @@ yyreduce: current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } -#line 3931 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4118 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 57: -#line 765 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 61: +#line 879 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); @@ -3939,11 +4126,11 @@ yyreduce: (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 3943 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4130 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 58: -#line 773 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 62: +#line 887 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); @@ -3951,11 +4138,11 @@ yyreduce: (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 3955 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4142 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 59: -#line 784 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 63: +#line 898 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3966,19 +4153,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 3970 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4157 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 60: -#line 795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 64: +#line 909 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 3978 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4165 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 61: -#line 799 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 65: +#line 913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3989,19 +4176,19 @@ yyreduce: } push_storage_class((yyvsp[-2].u.integer)); } -#line 3993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 62: -#line 810 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 66: +#line 924 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 4001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4188 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 63: -#line 821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 67: +#line 935 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, @@ -4009,11 +4196,11 @@ yyreduce: 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 */ +#line 4200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 64: -#line 829 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 68: +#line 943 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, @@ -4021,11 +4208,11 @@ yyreduce: 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 */ +#line 4212 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 65: -#line 840 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 69: +#line 954 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), @@ -4034,11 +4221,11 @@ yyreduce: 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 */ +#line 4225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 66: -#line 849 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 70: +#line 963 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), @@ -4047,11 +4234,11 @@ yyreduce: 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 */ +#line 4238 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 67: -#line 862 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 71: +#line 976 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4062,19 +4249,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 68: -#line 873 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 72: +#line 987 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 4074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 69: -#line 877 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 73: +#line 991 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4085,19 +4272,19 @@ yyreduce: } push_storage_class((yyvsp[-2].u.integer)); } -#line 4089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4276 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 70: -#line 888 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 74: +#line 1002 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 4097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4284 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 71: -#line 892 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 75: +#line 1006 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-1].u.instance) != (CPPDeclaration *)NULL) { CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); @@ -4109,61 +4296,61 @@ yyreduce: } } } -#line 4113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 72: -#line 907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 76: +#line 1021 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-1].u.inst_ident), current_scope, (yylsp[-1]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } -#line 4123 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4310 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 73: -#line 913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 77: +#line 1027 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-3].u.inst_ident), current_scope, (yylsp[-3]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-3])); } -#line 4133 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 74: -#line 922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 78: +#line 1036 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-1].u.inst_ident), current_scope, (yylsp[-1]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } -#line 4144 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4331 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 75: -#line 929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 79: +#line 1043 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-3].u.inst_ident), current_scope, (yylsp[-3]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-3])); } -#line 4155 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4342 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 76: -#line 941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 80: +#line 1055 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 4163 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4350 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 77: -#line 945 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 81: +#line 1059 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type; if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name() || @@ -4183,19 +4370,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 4187 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4374 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 78: -#line 965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 82: +#line 1079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 4195 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4382 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 79: -#line 969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 83: +#line 1083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type; @@ -4213,19 +4400,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 4217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 80: -#line 992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 84: +#line 1106 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 4225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 81: -#line 996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 85: +#line 1110 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); if ((yyvsp[-5].u.identifier)->is_scoped()) { @@ -4244,19 +4431,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } -#line 4248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4435 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 82: -#line 1022 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 86: +#line 1136 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 4256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4443 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 83: -#line 1026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 87: +#line 1140 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4270,19 +4457,19 @@ yyreduce: 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 */ +#line 4461 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 84: -#line 1040 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 88: +#line 1154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 4282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4469 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 85: -#line 1044 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 89: +#line 1158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4296,21 +4483,21 @@ yyreduce: 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 */ +#line 4487 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 86: -#line 1060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 90: +#line 1174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 4497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 87: -#line 1066 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 91: +#line 1180 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-7].u.identifier) != NULL) { pop_scope(); @@ -4335,21 +4522,21 @@ yyreduce: (yyval.u.instance) = CPPInstance::make_typecast_function (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 */ +#line 4526 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 88: -#line 1091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 92: +#line 1205 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 4536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 89: -#line 1097 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 93: +#line 1211 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-8].u.identifier) != NULL) { pop_scope(); @@ -4365,11 +4552,11 @@ yyreduce: (yyval.u.instance) = CPPInstance::make_typecast_function (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 */ +#line 4556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 90: -#line 1117 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 94: +#line 1231 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *decl = (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -4379,494 +4566,494 @@ yyreduce: (yyval.u.instance) = (CPPInstance *)NULL; } } -#line 4383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 91: -#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 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 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 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 */ +#line 4570 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 95: -#line 1146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (int)CPPFunctionType::F_override; + (yyval.u.integer) = 0; } -#line 4423 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 96: -#line 1150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1248 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_const_method; +} +#line 4586 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 97: +#line 1252 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; +} +#line 4594 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 98: +#line 1256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_final; +} +#line 4602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 99: +#line 1260 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_override; +} +#line 4610 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 100: +#line 1264 "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 1155 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[-3].u.integer); -} -#line 4440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 98: -#line 1159 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[-4].u.integer); -} -#line 4448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 99: -#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 1174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.str) = "~"; -} -#line 4464 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4619 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 101: -#line 1178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1269 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "*"; + (yyval.u.integer) = (yyvsp[-3].u.integer); } -#line 4472 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4627 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 102: -#line 1182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1273 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "/"; + (yyval.u.integer) = (yyvsp[-4].u.integer); } -#line 4480 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4635 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 103: -#line 1186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1284 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "%"; + (yyval.str) = "!"; } -#line 4488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4643 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 104: -#line 1190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1288 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "+"; + (yyval.str) = "~"; } -#line 4496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4651 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 105: -#line 1194 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1292 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "-"; + (yyval.str) = "*"; } -#line 4504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4659 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 106: -#line 1198 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1296 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "|"; + (yyval.str) = "/"; } -#line 4512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 107: -#line 1202 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1300 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "&"; + (yyval.str) = "%"; } -#line 4520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4675 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 108: -#line 1206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1304 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "^"; + (yyval.str) = "+"; } -#line 4528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4683 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 109: -#line 1210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1308 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "||"; + (yyval.str) = "-"; } -#line 4536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4691 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 110: -#line 1214 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1312 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "&&"; + (yyval.str) = "|"; } -#line 4544 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4699 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 111: -#line 1218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1316 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "=="; + (yyval.str) = "&"; } -#line 4552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4707 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 112: -#line 1222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1320 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "!="; + (yyval.str) = "^"; } -#line 4560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 113: -#line 1226 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1324 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<="; + (yyval.str) = "||"; } -#line 4568 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4723 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 114: -#line 1230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1328 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">="; + (yyval.str) = "&&"; } -#line 4576 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4731 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 115: -#line 1234 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1332 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<"; + (yyval.str) = "=="; } -#line 4584 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4739 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 116: -#line 1238 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1336 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">"; + (yyval.str) = "!="; } -#line 4592 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4747 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 117: -#line 1242 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1340 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<<"; + (yyval.str) = "<="; } -#line 4600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4755 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 118: -#line 1246 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1344 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">>"; + (yyval.str) = ">="; } -#line 4608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4763 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 119: -#line 1250 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1348 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "="; + (yyval.str) = "<"; } -#line 4616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4771 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 120: -#line 1254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1352 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ","; + (yyval.str) = ">"; } -#line 4624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4779 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 121: -#line 1258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1356 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "++"; + (yyval.str) = "<<"; } -#line 4632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4787 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 122: -#line 1262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1360 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "--"; + (yyval.str) = ">>"; } -#line 4640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4795 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 123: -#line 1266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1364 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "*="; + (yyval.str) = "="; } -#line 4648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4803 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 124: -#line 1270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1368 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "/="; + (yyval.str) = ","; } -#line 4656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4811 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 125: -#line 1274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1372 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "%="; + (yyval.str) = "++"; } -#line 4664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4819 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 126: -#line 1278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1376 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "+="; + (yyval.str) = "--"; } -#line 4672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 127: -#line 1282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1380 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "-="; + (yyval.str) = "*="; } -#line 4680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4835 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 128: -#line 1286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1384 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "|="; + (yyval.str) = "/="; } -#line 4688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4843 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 129: -#line 1290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "&="; + (yyval.str) = "%="; } -#line 4696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4851 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 130: -#line 1294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1392 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "^="; + (yyval.str) = "+="; } -#line 4704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4859 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 131: -#line 1298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1396 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<<="; + (yyval.str) = "-="; } -#line 4712 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4867 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 132: -#line 1302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1400 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">>="; + (yyval.str) = "|="; } -#line 4720 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4875 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 133: -#line 1306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "->"; + (yyval.str) = "&="; } -#line 4728 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4883 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 134: -#line 1310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1408 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "[]"; + (yyval.str) = "^="; } -#line 4736 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 135: -#line 1314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "()"; + (yyval.str) = "<<="; } -#line 4744 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4899 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 136: -#line 1318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "new"; + (yyval.str) = ">>="; } -#line 4752 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4907 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 137: -#line 1322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "delete"; + (yyval.str) = "->"; } -#line 4760 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4915 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 138: +#line 1424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.str) = "[]"; +} +#line 4923 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 139: +#line 1428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.str) = "()"; +} +#line 4931 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 140: -#line 1334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope(new CPPTemplateScope(current_scope)); + (yyval.str) = "new"; } -#line 4768 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4939 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 141: -#line 1338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - pop_scope(); + (yyval.str) = "delete"; } -#line 4776 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4947 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 144: +#line 1448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + push_scope(new CPPTemplateScope(current_scope)); +} +#line 4955 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 145: -#line 1351 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != NULL); - ts->add_template_parameter((yyvsp[0].u.decl)); + pop_scope(); } -#line 4786 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 146: -#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[0].u.decl)); -} -#line 4796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 147: -#line 1366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 1370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); -} -#line 4812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4963 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 149: -#line 1374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1465 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != NULL); + ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 4820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4973 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 150: -#line 1378 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1471 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != NULL); + ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 4828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4983 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 151: -#line 1382 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 4991 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 152: +#line 1484 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 4999 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 153: +#line 1488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 5007 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 154: +#line 1492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 5015 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 155: +#line 1496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); inst->set_initializer((yyvsp[0].u.expr)); (yyval.u.decl) = inst; } -#line 4838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 152: -#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 156: +#line 1502 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); inst->set_initializer((yyvsp[0].u.expr)); (yyval.u.decl) = inst; } -#line 4849 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 153: -#line 1398 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 157: +#line 1512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 4857 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5044 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 154: -#line 1402 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 158: +#line 1516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 5053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 155: -#line 1407 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 159: +#line 1521 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -4874,19 +5061,19 @@ yyreduce: } assert((yyval.u.type) != NULL); } -#line 4878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 156: -#line 1419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 160: +#line 1533 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 4886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 157: -#line 1423 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 161: +#line 1537 "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 @@ -4900,11 +5087,11 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 4904 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5091 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 158: -#line 1437 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 162: +#line 1551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A C++11 literal operator. if (!(yyvsp[-1].str).empty()) { @@ -4919,91 +5106,91 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 4923 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5110 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 159: -#line 1452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 163: +#line 1566 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 4932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5119 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 160: -#line 1457 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 164: +#line 1571 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 5128 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 161: -#line 1462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 165: +#line 1576 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 4950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5137 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 162: -#line 1467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 166: +#line 1581 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 4959 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5146 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 163: -#line 1472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 167: +#line 1586 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 4968 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5155 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 164: -#line 1477 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 168: +#line 1591 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 4977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 165: -#line 1482 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 169: +#line 1596 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 4986 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5173 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 166: -#line 1487 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 170: +#line 1601 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 4995 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5182 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 167: -#line 1492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 171: +#line 1606 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5003 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5190 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 168: -#line 1496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 172: +#line 1610 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); @@ -5017,11 +5204,11 @@ yyreduce: (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 */ +#line 5208 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 169: -#line 1514 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 173: +#line 1628 "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 @@ -5031,721 +5218,721 @@ yyreduce: } (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } -#line 5035 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5222 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 170: -#line 1524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 174: +#line 1638 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Bitfield definition. (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 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 1538 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 1542 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 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 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 1560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[0].u.param_list); -} -#line 5095 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 177: -#line 1564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5104 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 178: -#line 1569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 179: -#line 1577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 180: -#line 1582 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5131 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 181: -#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 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 1599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[0].u.param_list); -} -#line 5156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 184: -#line 1603 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5165 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 185: -#line 1608 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5174 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 186: -#line 1616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5183 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 187: -#line 1621 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5192 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 188: -#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 1633 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 5208 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 190: -#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 1644 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 5224 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 192: -#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 1655 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 175: +#line 1648 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.type) = NULL; } #line 5240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 194: -#line 1659 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 176: +#line 1652 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } #line 5248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 195: -#line 1663 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 177: +#line 1656 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 5256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5257 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 178: +#line 1665 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; +} +#line 5265 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 179: +#line 1669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5274 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 180: +#line 1674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[0].u.param_list); +} +#line 5282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 181: +#line 1678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5291 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 182: +#line 1683 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 183: +#line 1691 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5309 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 184: +#line 1696 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5318 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 185: +#line 1704 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; +} +#line 5326 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 186: +#line 1708 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5335 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 187: +#line 1713 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[0].u.param_list); +} +#line 5343 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 188: +#line 1717 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5352 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 189: +#line 1722 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5361 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 190: +#line 1730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5370 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 191: +#line 1735 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5379 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 192: +#line 1743 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5387 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 193: +#line 1747 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5395 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 194: +#line 1754 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5403 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 195: +#line 1758 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5411 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 196: -#line 1667 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1765 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5264 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5419 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 197: -#line 1674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1769 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5272 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 198: -#line 1678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1773 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5280 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5435 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 199: -#line 1682 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 5288 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 200: -#line 1686 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1777 "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 */ +#line 5443 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 201: -#line 1690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 200: +#line 1781 "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 */ +#line 5451 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 202: -#line 1694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 201: +#line 1788 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5459 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 202: +#line 1792 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5467 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 203: +#line 1796 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 5475 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 204: +#line 1800 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 5483 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 205: +#line 1804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 5491 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 206: -#line 1707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5319 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5499 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 210: -#line 1716 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { +} +#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 214: +#line 1830 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 5515 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 211: -#line 1721 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 215: +#line 1835 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 5525 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 212: -#line 1727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 216: +#line 1841 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 5535 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 213: -#line 1733 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 217: +#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 5356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 214: -#line 1744 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 218: +#line 1858 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 5364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5551 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 215: -#line 1748 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 219: +#line 1862 "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[0].u.expr)); } -#line 5375 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 216: -#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 1762 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); -} -#line 5391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 218: -#line 1766 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 5400 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 219: -#line 1771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 */ +#line 5562 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 220: -#line 1776 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 5418 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 221: -#line 1781 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 222: -#line 1786 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 5436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 223: -#line 1791 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 5445 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 224: -#line 1796 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 5454 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 225: -#line 1804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1872 "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 */ +#line 5570 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 226: -#line 1808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 221: +#line 1876 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 5470 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 227: -#line 1812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 222: +#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 5479 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5587 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 228: -#line 1817 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 223: +#line 1885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 5596 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 229: -#line 1822 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 224: +#line 1890 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 5497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 230: -#line 1827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 225: +#line 1895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 231: -#line 1832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 226: +#line 1900 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 5515 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 232: -#line 1837 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 227: +#line 1905 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 5524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 233: -#line 1842 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 228: +#line 1910 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 5533 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5641 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 229: +#line 1918 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} +#line 5649 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 230: +#line 1922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} +#line 5657 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 231: +#line 1926 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 5666 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 232: +#line 1931 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 5675 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 233: +#line 1936 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 5684 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 234: -#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 5693 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 235: +#line 1946 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 5702 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 236: +#line 1951 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 5711 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 237: +#line 1956 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 5720 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 238: +#line 1961 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } -#line 5543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5730 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 235: -#line 1853 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 239: +#line 1967 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 5552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 236: -#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 1865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 5569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 238: -#line 1870 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 1875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 5587 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5739 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 240: -#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 5596 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 241: -#line 1885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 5605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 242: -#line 1890 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 5614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 243: -#line 1895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 5623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 244: -#line 1903 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1975 "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 */ +#line 5747 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 245: -#line 1907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 241: +#line 1979 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 5640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 246: -#line 1912 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 242: +#line 1984 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 5765 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 247: -#line 1917 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 243: +#line 1989 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 5658 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 248: -#line 1922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 244: +#line 1994 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 5667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5783 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 249: -#line 1927 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 245: +#line 1999 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 5676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5792 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 250: -#line 1932 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 246: +#line 2004 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 5685 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5801 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 251: -#line 1937 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 247: +#line 2009 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 5694 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5810 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 248: +#line 2017 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} +#line 5818 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 249: +#line 2021 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 5827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 250: +#line 2026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 5836 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 251: +#line 2031 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 5845 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 252: -#line 1942 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2036 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 5854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 253: +#line 2041 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 5863 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 254: +#line 2046 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 5872 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 255: +#line 2051 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 5881 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 256: +#line 2056 "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[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } -#line 5704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 253: -#line 1948 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 257: +#line 2062 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } -#line 5715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 254: -#line 1955 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 258: +#line 2069 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } -#line 5726 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5913 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 255: -#line 1962 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 259: +#line 2076 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } -#line 5737 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5924 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 256: -#line 1972 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 260: +#line 2086 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5745 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 257: -#line 1976 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 261: +#line 2090 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -5753,43 +5940,43 @@ yyreduce: } assert((yyval.u.type) != NULL); } -#line 5757 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 258: -#line 1984 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 1988 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 1992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 1996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); -} -#line 5789 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5944 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 262: -#line 2000 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2098 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} +#line 5952 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 263: +#line 2102 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); +} +#line 5960 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 264: +#line 2106 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); +} +#line 5968 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 265: +#line 2110 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); +} +#line 5976 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 266: +#line 2114 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5805,11 +5992,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 5809 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5996 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 263: -#line 2016 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 267: +#line 2130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5825,11 +6012,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 5829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6016 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 264: -#line 2032 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 268: +#line 2146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { @@ -5838,27 +6025,27 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 5842 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6029 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 265: -#line 2041 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 269: +#line 2155 "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 */ +#line 6037 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 266: -#line 2048 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 270: +#line 2162 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5858 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6045 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 267: -#line 2052 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 271: +#line 2166 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == NULL) { @@ -5866,43 +6053,43 @@ yyreduce: } assert((yyval.u.decl) != NULL); } -#line 5870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 268: -#line 2060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2064 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2068 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2072 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); -} -#line 5902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6057 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 272: -#line 2076 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} +#line 6065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 273: +#line 2178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); +} +#line 6073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 274: +#line 2182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); +} +#line 6081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 275: +#line 2186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); +} +#line 6089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 276: +#line 2190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5918,11 +6105,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 5922 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6109 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 273: -#line 2092 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 277: +#line 2206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5938,11 +6125,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 5942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6129 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 274: -#line 2108 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 278: +#line 2222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); @@ -5960,11 +6147,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 5964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6151 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 275: -#line 2126 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 279: +#line 2240 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == (CPPType *)NULL) { @@ -5973,27 +6160,27 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 5977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 276: -#line 2135 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 280: +#line 2249 "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 */ +#line 6172 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 277: -#line 2142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 281: +#line 2256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 278: -#line 2146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 282: +#line 2260 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -6001,19 +6188,19 @@ yyreduce: } assert((yyval.u.type) != NULL); } -#line 6005 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6192 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 279: -#line 2154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 283: +#line 2268 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 6013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 280: -#line 2158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 284: +#line 2272 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -6029,11 +6216,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 6033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6220 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 281: -#line 2174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 285: +#line 2288 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -6049,11 +6236,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 6053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 282: -#line 2190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 286: +#line 2304 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { @@ -6062,54 +6249,54 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 6066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 283: -#line 2199 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 287: +#line 2313 "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 */ +#line 6261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 284: -#line 2206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 288: +#line 2320 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = (yyvsp[0].u.decl); } -#line 6082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6269 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 285: -#line 2210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 289: +#line 2324 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 6279 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 286: -#line 2218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 290: +#line 2332 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6100 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6287 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 287: -#line 2222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 291: +#line 2336 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 6296 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 288: -#line 2230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 292: +#line 2344 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -6123,22 +6310,22 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 6127 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6314 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 289: -#line 2244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 293: +#line 2358 "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 */ +#line 6325 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 290: -#line 2254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 294: +#line 2368 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -6158,253 +6345,253 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 6162 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6349 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 291: -#line 2274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 295: +#line 2388 "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 */ +#line 6360 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 293: -#line 2285 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 297: +#line 2399 "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 2302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - 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 2306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - 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 2310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - 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 2314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - current_struct->append_derivation((yyvsp[0].u.type), V_private, false); -} -#line 6213 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6368 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 302: -#line 2318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); } -#line 6221 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6376 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 303: -#line 2322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, false); } -#line 6229 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6384 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 304: -#line 2326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); } -#line 6237 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6392 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 305: -#line 2330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); } -#line 6245 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6400 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 306: -#line 2334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } -#line 6253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6408 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 307: -#line 2338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } -#line 6261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6416 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 308: -#line 2345 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2440 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 6424 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 309: +#line 2444 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} +#line 6432 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 310: +#line 2448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} +#line 6440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 311: +#line 2452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 6448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 312: +#line 2459 "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 */ +#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 309: -#line 2353 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 313: +#line 2467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 310: -#line 2357 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 314: +#line 2471 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 6473 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 311: -#line 2361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 315: +#line 2475 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 6482 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 312: -#line 2366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 316: +#line 2480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 6491 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 313: -#line 2374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 317: +#line 2488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 6312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6499 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 314: -#line 2378 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 318: +#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } -#line 6320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6507 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 316: -#line 2386 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 320: +#line 2500 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); 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 */ +#line 6516 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 317: -#line 2391 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 321: +#line 2505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); 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 */ +#line 6525 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 319: -#line 2399 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 323: +#line 2513 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); 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 */ +#line 6534 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 320: -#line 2404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 324: +#line 2518 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); 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 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 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; -} -#line 6372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 323: -#line 2420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; -} -#line 6380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 324: -#line 2427 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_class; -} -#line 6388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 325: -#line 2431 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2526 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_struct; + (yyval.u.extension_enum) = CPPExtensionType::T_enum; } -#line 6396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6551 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 326: -#line 2435 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2530 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_union; + (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } -#line 6404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6559 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 327: -#line 2442 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; +} +#line 6567 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 328: +#line 2541 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_class; +} +#line 6575 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 329: +#line 2545 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_struct; +} +#line 6583 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 330: +#line 2549 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_union; +} +#line 6591 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 331: +#line 2556 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -6422,19 +6609,19 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 6426 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6613 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 328: -#line 2460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 332: +#line 2574 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } -#line 6434 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6621 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 329: -#line 2464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 333: +#line 2578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -6453,143 +6640,143 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6644 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 330: -#line 2483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 334: +#line 2597 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } -#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6652 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 333: -#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 337: +#line 2606 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 */ +#line 6662 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 334: -#line 2498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 338: +#line 2612 "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[-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 */ +#line 6673 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 335: -#line 2505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 339: +#line 2619 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 2520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); -} -#line 6504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 340: -#line 2524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); -} -#line 6512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 341: -#line 2528 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); -} -#line 6520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 342: -#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 */ +#line 6683 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 343: -#line 2536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2634 "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_bool); } -#line 6536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6691 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 344: -#line 2540 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2638 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); +} +#line 6699 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 345: +#line 2642 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); +} +#line 6707 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 346: +#line 2646 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); +} +#line 6715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 347: +#line 2650 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); +} +#line 6723 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 348: +#line 2654 "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 */ +#line 6732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 345: -#line 2545 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 349: +#line 2659 "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 */ +#line 6741 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 346: -#line 2550 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 350: +#line 2664 "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 */ +#line 6750 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 347: -#line 2555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 351: +#line 2669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } -#line 6572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6759 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 348: -#line 2560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 352: +#line 2674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } -#line 6580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6767 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 349: -#line 2564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 353: +#line 2678 "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 */ +#line 6776 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 350: -#line 2569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 354: +#line 2683 "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) { @@ -6598,477 +6785,477 @@ yyreduce: (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } -#line 6602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6789 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 351: -#line 2578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 355: +#line 2692 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 6798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 352: -#line 2583 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 356: +#line 2697 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 */ +#line 6807 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 353: -#line 2591 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 357: +#line 2705 "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 */ +#line 6815 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 354: -#line 2595 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 358: +#line 2709 "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 */ +#line 6823 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 355: -#line 2599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 359: +#line 2713 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } -#line 6645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6832 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 356: -#line 2607 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 360: +#line 2721 "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 */ +#line 6840 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 357: -#line 2616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 361: +#line 2730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = false; } -#line 6661 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6848 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 358: -#line 2620 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 362: +#line 2734 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = true; } -#line 6669 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6856 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 461: -#line 2661 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 465: +#line 2775 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } -#line 6676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 485: -#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 2674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 6692 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 487: -#line 2681 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (CPPExpression *)NULL; -} -#line 6700 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 488: -#line 2685 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 6708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6863 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 489: -#line 2692 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2784 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 6716 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6871 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 490: -#line 2696 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2788 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 6724 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6879 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 491: -#line 2703 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 6732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6887 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 492: -#line 2707 "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 6740 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 493: -#line 2711 "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 6748 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 494: -#line 2715 "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 6756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 495: -#line 2719 "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 6764 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 496: -#line 2723 "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 6772 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 497: -#line 2727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2731 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2735 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2739 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2743 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2747 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2751 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2755 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2759 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2763 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2767 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2775 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2779 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2783 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2787 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2791 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2799 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (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 2803 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2807 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2811 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2815 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2819 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2823 "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 6972 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 522: -#line 2827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2831 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2835 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); -} -#line 6996 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 525: -#line 2839 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2843 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 7020 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 528: -#line 2855 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7028 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6895 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 529: -#line 2859 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 493: +#line 2806 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6903 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 494: +#line 2810 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 6911 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 495: +#line 2817 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6919 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 496: +#line 2821 "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 7036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6927 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 530: -#line 2863 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 497: +#line 2825 "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 7044 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6935 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 531: -#line 2867 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 498: +#line 2829 "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 7052 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6943 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 532: -#line 2871 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 499: +#line 2833 "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 7060 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6951 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 533: -#line 2875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 500: +#line 2837 "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 7068 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6959 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 501: +#line 2841 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 6967 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 502: +#line 2845 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 6975 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 503: +#line 2849 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} +#line 6983 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 504: +#line 2853 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} +#line 6991 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 505: +#line 2857 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); +} +#line 6999 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 506: +#line 2861 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); +} +#line 7007 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 507: +#line 2865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); +} +#line 7015 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 508: +#line 2869 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} +#line 7023 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 509: +#line 2873 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7031 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 510: +#line 2877 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7039 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 511: +#line 2881 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7047 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 512: +#line 2885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7055 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 513: +#line 2889 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7063 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 514: +#line 2893 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7071 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 515: +#line 2897 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7079 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 516: +#line 2901 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7087 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 517: +#line 2905 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7095 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 518: +#line 2909 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7103 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 519: +#line 2913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7111 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 520: +#line 2917 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7119 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 521: +#line 2921 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7127 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 522: +#line 2925 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7135 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 523: +#line 2929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7143 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 524: +#line 2933 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7151 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 525: +#line 2937 "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 7159 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 526: +#line 2941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7167 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 527: +#line 2945 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7175 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 528: +#line 2949 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} +#line 7183 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 529: +#line 2953 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7191 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 530: +#line 2957 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7199 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 531: +#line 2961 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 7207 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 532: +#line 2969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7215 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 533: +#line 2973 "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 7223 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 534: -#line 2879 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2977 "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 7231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 535: +#line 2981 "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 7239 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 536: +#line 2985 "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 7247 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 537: +#line 2989 "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 7255 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 538: +#line 2993 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A constructor call. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -7078,167 +7265,167 @@ yyreduce: 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 */ +#line 7269 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 535: -#line 2889 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 539: +#line 3003 "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[-1].u.expr))); } -#line 7092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7279 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 536: -#line 2895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 540: +#line 3009 "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[-1].u.expr))); } -#line 7102 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7289 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 537: -#line 2901 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 541: +#line 3015 "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[-1].u.expr))); } -#line 7112 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7299 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 538: -#line 2907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 542: +#line 3021 "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[-1].u.expr))); } -#line 7122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7309 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 539: -#line 2913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 543: +#line 3027 "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 */ +#line 7319 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 540: -#line 2919 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 544: +#line 3033 "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 */ +#line 7329 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 541: -#line 2925 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 545: +#line 3039 "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[-1].u.expr))); } -#line 7153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7340 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 542: -#line 2932 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 546: +#line 3046 "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[-1].u.expr))); } -#line 7164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7351 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 543: -#line 2939 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 547: +#line 3053 "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[-1].u.expr))); } -#line 7175 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7362 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 544: -#line 2946 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 548: +#line 3060 "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[-1].u.expr))); } -#line 7186 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7373 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 545: -#line 2953 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 549: +#line 3067 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 546: -#line 2959 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 550: +#line 3073 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7206 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 547: -#line 2965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2973 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 2977 "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 7238 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7393 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 551: -#line 2981 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 7401 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 552: +#line 3083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 7409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 553: +#line 3087 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 7417 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 554: +#line 3091 "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 7425 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 555: +#line 3095 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPIdentifier ident(""); ident.add_name("std"); @@ -7249,11 +7436,11 @@ yyreduce: } (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 */ +#line 7440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 552: -#line 2992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 556: +#line 3106 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPIdentifier ident(""); ident.add_name("std"); @@ -7264,462 +7451,462 @@ yyreduce: } (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 3003 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 3007 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 3011 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 3015 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); -} -#line 7300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7455 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 557: -#line 3019 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3117 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 7308 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7463 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 558: -#line 3023 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3121 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 7316 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7471 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 559: -#line 3027 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3125 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 7324 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7479 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 560: -#line 3031 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3129 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 7332 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7487 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 561: -#line 3035 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3133 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 7340 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7495 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 562: -#line 3039 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3137 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 7348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7503 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 563: -#line 3043 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3141 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].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 */ +#line 7511 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 564: -#line 3047 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3145 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].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 */ +#line 7519 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 565: -#line 3051 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3149 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].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 */ +#line 7527 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 566: -#line 3055 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3153 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].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 */ +#line 7535 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 567: -#line 3059 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3157 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 568: -#line 3063 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3161 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7551 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 569: -#line 3067 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3165 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7559 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 570: -#line 3071 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3169 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7567 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 571: -#line 3075 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3173 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7420 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7575 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 572: -#line 3079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3177 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7428 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7583 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 573: -#line 3083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3181 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7591 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 574: -#line 3087 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3185 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7444 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7599 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 575: -#line 3091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3189 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7452 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7607 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 576: -#line 3095 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3193 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7460 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7615 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 577: -#line 3099 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3197 "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)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7468 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 578: -#line 3103 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3201 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7476 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7631 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 579: -#line 3107 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3205 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7484 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7639 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 580: -#line 3111 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3209 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7492 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7647 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 581: -#line 3115 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3213 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7500 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7655 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 582: -#line 3119 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3217 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7508 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7663 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 583: -#line 3123 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3221 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[-1].u.expr); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7516 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7671 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 584: -#line 3130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3225 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 7524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7679 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 585: -#line 3134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3229 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7532 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7687 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 586: -#line 3138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3233 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7540 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7695 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 587: -#line 3142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3237 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 7548 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7703 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 588: -#line 3146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 7556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7711 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 589: -#line 3150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3248 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 7564 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 590: -#line 3154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 7572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 591: -#line 3158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 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[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 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[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 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 595: -#line 3178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = NULL; -} -#line 7616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 596: -#line 3182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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)); + (yyval.u.expr) = new CPPExpression(true); } #line 7719 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; + case 590: +#line 3252 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(false); +} +#line 7727 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 591: +#line 3256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 7735 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 592: +#line 3260 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 7743 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 593: +#line 3264 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7751 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 594: +#line 3268 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7759 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 595: +#line 3272 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 7767 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 596: +#line 3276 "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 7777 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 597: +#line 3282 "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 7787 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 598: +#line 3288 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} +#line 7795 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 599: +#line 3292 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = NULL; +} +#line 7803 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 600: +#line 3296 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = NULL; +} +#line 7811 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 601: +#line 3310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7819 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 602: +#line 3314 "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 7827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 603: +#line 3318 "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 7835 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 604: +#line 3322 "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 7843 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 605: +#line 3326 "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 7851 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 606: +#line 3330 "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 7859 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 607: +#line 3334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 7867 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + case 608: -#line 3247 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 7875 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 609: +#line 3342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 7883 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 610: +#line 3346 "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 7891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 611: +#line 3350 "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 7906 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 612: +#line 3361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPIdentifier ident(""); ident.add_name("std"); @@ -7730,343 +7917,343 @@ yyreduce: } (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 */ +#line 7921 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 613: -#line 3274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3372 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 7774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7929 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 614: -#line 3278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3376 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 7782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7937 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 615: -#line 3282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3380 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 7790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7945 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 616: -#line 3286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3384 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 7798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7953 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 617: -#line 3290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 7806 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7961 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 618: -#line 3294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3392 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7814 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7969 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 619: -#line 3298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3396 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7822 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 620: -#line 3302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3400 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7830 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 621: -#line 3306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 622: -#line 3310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3408 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7846 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 623: -#line 3314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8009 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 624: -#line 3318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7862 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8017 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 625: -#line 3322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 626: -#line 3326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 627: -#line 3330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8041 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 628: -#line 3334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8049 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 629: -#line 3338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8057 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 630: -#line 3342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3440 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 631: -#line 3346 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3444 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 632: -#line 3350 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3448 "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)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7926 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 633: -#line 3354 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7934 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 634: -#line 3358 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3456 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 635: -#line 3362 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8105 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 636: -#line 3366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7958 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 637: -#line 3370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3468 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7966 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8121 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 638: -#line 3374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[-1].u.expr); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7974 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8129 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 639: -#line 3381 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3476 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 7982 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8137 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 640: -#line 3385 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7990 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8145 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 641: -#line 3389 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3484 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7998 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 642: -#line 3393 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8006 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8161 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 643: -#line 3397 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3495 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8014 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8169 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 644: -#line 3401 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3499 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = new CPPExpression(true); } -#line 8022 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8177 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 645: -#line 3405 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3503 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = new CPPExpression(false); } -#line 8030 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8185 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 646: -#line 3409 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3507 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8193 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 647: -#line 3413 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3511 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 8201 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 648: +#line 3515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8209 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 649: +#line 3519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 650: +#line 3523 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 8225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 651: +#line 3527 "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 */ +#line 8235 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 648: -#line 3419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 652: +#line 3533 "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 */ +#line 8245 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 649: -#line 3425 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 653: +#line 3539 "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 */ +#line 8253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 657: -#line 3446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 661: +#line 3560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); if (type == NULL) { @@ -8074,11 +8261,11 @@ yyreduce: } (yyval.u.type) = type; } -#line 8078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8265 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 658: -#line 3454 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 662: +#line 3568 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); if (type == NULL) { @@ -8086,135 +8273,143 @@ yyreduce: } (yyval.u.type) = type; } -#line 8090 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 659: -#line 3462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (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 3490 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 8106 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 661: -#line 3494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 8114 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 662: -#line 3498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); -} -#line 8122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8277 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 663: -#line 3502 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3576 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 8130 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8285 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 664: -#line 3506 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3604 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8293 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 665: +#line 3608 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8301 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 666: +#line 3612 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); +} +#line 8309 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 667: +#line 3616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 8317 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 668: +#line 3620 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 3512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); -} -#line 8148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 666: -#line 3516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); -} -#line 8156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 667: -#line 3520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); -} -#line 8164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 668: -#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 */ +#line 8327 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 669: -#line 3535 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3626 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[0].u.identifier); + (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); } -#line 8180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8335 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 670: -#line 3539 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3630 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); + (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); } -#line 8188 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8343 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 671: -#line 3547 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3634 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); + (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); } -#line 8196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8351 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 672: -#line 3551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3638 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); } -#line 8204 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8359 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 673: -#line 3555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3649 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8367 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 674: +#line 3653 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8375 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 675: +#line 3657 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 8383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 676: +#line 3665 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 8391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 677: +#line 3669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8399 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 678: +#line 3673 "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 */ +#line 8409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 674: -#line 3561 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 679: +#line 3679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We have to check that the two literal types match up. (yyval.u.expr) = (yyvsp[-1].u.expr); @@ -8223,11 +8418,11 @@ yyreduce: } (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } -#line 8227 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8422 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; -#line 8231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8426 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index 75d9fe4c15..412b128300 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -124,48 +124,50 @@ extern int cppyydebug; 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 + KW_MAKE_MAP_PROPERTY = 337, + KW_MAKE_PROPERTY = 338, + KW_MAKE_PROPERTY2 = 339, + KW_MAKE_SEQ = 340, + KW_MAKE_SEQ_PROPERTY = 341, + KW_MUTABLE = 342, + KW_NAMESPACE = 343, + KW_NEW = 344, + KW_NOEXCEPT = 345, + KW_NULLPTR = 346, + KW_OPERATOR = 347, + KW_OVERRIDE = 348, + KW_PRIVATE = 349, + KW_PROTECTED = 350, + KW_PUBLIC = 351, + KW_REGISTER = 352, + KW_REINTERPRET_CAST = 353, + KW_RETURN = 354, + KW_SHORT = 355, + KW_SIGNED = 356, + KW_SIZEOF = 357, + KW_STATIC = 358, + KW_STATIC_ASSERT = 359, + KW_STATIC_CAST = 360, + KW_STRUCT = 361, + KW_TEMPLATE = 362, + KW_THREAD_LOCAL = 363, + KW_THROW = 364, + KW_TRUE = 365, + KW_TRY = 366, + KW_TYPEDEF = 367, + KW_TYPEID = 368, + KW_TYPENAME = 369, + KW_UNION = 370, + KW_UNSIGNED = 371, + KW_USING = 372, + KW_VIRTUAL = 373, + KW_VOID = 374, + KW_VOLATILE = 375, + KW_WCHAR_T = 376, + KW_WHILE = 377, + START_CPP = 378, + START_CONST_EXPR = 379, + START_TYPE = 380 }; #endif /* Tokens. */ @@ -248,48 +250,50 @@ extern int cppyydebug; #define KW_INLINE 334 #define KW_INT 335 #define KW_LONG 336 -#define KW_MAKE_PROPERTY 337 -#define KW_MAKE_PROPERTY2 338 -#define KW_MAKE_SEQ 339 -#define KW_MUTABLE 340 -#define KW_NAMESPACE 341 -#define KW_NEW 342 -#define KW_NOEXCEPT 343 -#define KW_NULLPTR 344 -#define KW_OPERATOR 345 -#define KW_OVERRIDE 346 -#define KW_PRIVATE 347 -#define KW_PROTECTED 348 -#define KW_PUBLIC 349 -#define KW_REGISTER 350 -#define KW_REINTERPRET_CAST 351 -#define KW_RETURN 352 -#define KW_SHORT 353 -#define KW_SIGNED 354 -#define KW_SIZEOF 355 -#define KW_STATIC 356 -#define KW_STATIC_ASSERT 357 -#define KW_STATIC_CAST 358 -#define KW_STRUCT 359 -#define KW_TEMPLATE 360 -#define KW_THREAD_LOCAL 361 -#define KW_THROW 362 -#define KW_TRUE 363 -#define KW_TRY 364 -#define KW_TYPEDEF 365 -#define KW_TYPEID 366 -#define KW_TYPENAME 367 -#define KW_UNION 368 -#define KW_UNSIGNED 369 -#define KW_USING 370 -#define KW_VIRTUAL 371 -#define KW_VOID 372 -#define KW_VOLATILE 373 -#define KW_WCHAR_T 374 -#define KW_WHILE 375 -#define START_CPP 376 -#define START_CONST_EXPR 377 -#define START_TYPE 378 +#define KW_MAKE_MAP_PROPERTY 337 +#define KW_MAKE_PROPERTY 338 +#define KW_MAKE_PROPERTY2 339 +#define KW_MAKE_SEQ 340 +#define KW_MAKE_SEQ_PROPERTY 341 +#define KW_MUTABLE 342 +#define KW_NAMESPACE 343 +#define KW_NEW 344 +#define KW_NOEXCEPT 345 +#define KW_NULLPTR 346 +#define KW_OPERATOR 347 +#define KW_OVERRIDE 348 +#define KW_PRIVATE 349 +#define KW_PROTECTED 350 +#define KW_PUBLIC 351 +#define KW_REGISTER 352 +#define KW_REINTERPRET_CAST 353 +#define KW_RETURN 354 +#define KW_SHORT 355 +#define KW_SIGNED 356 +#define KW_SIZEOF 357 +#define KW_STATIC 358 +#define KW_STATIC_ASSERT 359 +#define KW_STATIC_CAST 360 +#define KW_STRUCT 361 +#define KW_TEMPLATE 362 +#define KW_THREAD_LOCAL 363 +#define KW_THROW 364 +#define KW_TRUE 365 +#define KW_TRY 366 +#define KW_TYPEDEF 367 +#define KW_TYPEID 368 +#define KW_TYPENAME 369 +#define KW_UNION 370 +#define KW_UNSIGNED 371 +#define KW_USING 372 +#define KW_VIRTUAL 373 +#define KW_VOID 374 +#define KW_VOLATILE 375 +#define KW_WCHAR_T 376 +#define KW_WHILE 377 +#define START_CPP 378 +#define START_CONST_EXPR 379 +#define START_TYPE 380 /* Value type. */ diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index f71c5a7fd9..4efed60ce1 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -284,9 +284,11 @@ pop_struct() { %token KW_INLINE %token KW_INT %token KW_LONG +%token KW_MAKE_MAP_PROPERTY %token KW_MAKE_PROPERTY %token KW_MAKE_PROPERTY2 %token KW_MAKE_SEQ +%token KW_MAKE_SEQ_PROPERTY %token KW_MUTABLE %token KW_NAMESPACE %token KW_NEW @@ -550,6 +552,118 @@ declaration: setter_func, current_scope, @1.file); current_scope->add_declaration(make_property, global_scope, current_lexer, @1); } +} + | KW_MAKE_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *getter = $5->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: " + $5->get_fully_scoped_name(), @5); + + } else { + CPPDeclaration *setter = $7->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: " + $7->get_fully_scoped_name(), @7); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = $9->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + $9->get_fully_scoped_name(), @9); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), + setter_func, current_scope, @1.file); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } +} + | KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *length_getter = $5->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: " + $5->get_fully_scoped_name(), @5); + length_getter = NULL; + } + + CPPDeclaration *getter = $7->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: " + $7->get_fully_scoped_name(), @7); + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), NULL, current_scope, @1.file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); +} + | KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *length_getter = $5->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: " + $5->get_fully_scoped_name(), @5); + length_getter = NULL; + } + + CPPDeclaration *getter = $7->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: " + $7->get_fully_scoped_name(), @7); + + } else { + CPPDeclaration *setter = $9->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: " + $9->get_fully_scoped_name(), @9); + } else { + setter_func = setter->as_function_group(); + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), + setter_func, current_scope, @1.file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } +} + | KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *length_getter = $5->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: " + $5->get_fully_scoped_name(), @5); + length_getter = NULL; + } + + CPPDeclaration *getter = $7->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: " + $7->get_fully_scoped_name(), @7); + + } else { + CPPDeclaration *setter = $9->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: " + $9->get_fully_scoped_name(), @9); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = $11->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + $11->get_fully_scoped_name(), @11); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), + setter_func, current_scope, @1.file); + make_property->_length_function = length_getter->as_function_group(); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } } | KW_MAKE_PROPERTY2 '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' { @@ -3519,6 +3633,10 @@ name: | KW_PRIVATE { $$ = new CPPIdentifier("private", @1); +} + | KW_STATIC +{ + $$ = new CPPIdentifier("static", @1); } ; diff --git a/dtool/src/cppparser/cppMakeProperty.cxx b/dtool/src/cppparser/cppMakeProperty.cxx index 78ea191092..c65fcf93b6 100644 --- a/dtool/src/cppparser/cppMakeProperty.cxx +++ b/dtool/src/cppparser/cppMakeProperty.cxx @@ -23,10 +23,12 @@ CPPMakeProperty(CPPIdentifier *ident, CPPScope *current_scope, const CPPFile &file) : CPPDeclaration(file), _ident(ident), + _length_function(NULL), _has_function(NULL), _get_function(getter), _set_function(setter), - _clear_function(NULL) + _clear_function(NULL), + _del_function(NULL) { _ident->_native_scope = current_scope; } @@ -41,10 +43,12 @@ CPPMakeProperty(CPPIdentifier *ident, CPPScope *current_scope, const CPPFile &file) : CPPDeclaration(file), _ident(ident), + _length_function(NULL), _has_function(hasser), _get_function(getter), _set_function(setter), - _clear_function(clearer) + _clear_function(clearer), + _del_function(NULL) { _ident->_native_scope = current_scope; } @@ -78,7 +82,11 @@ get_fully_scoped_name() const { */ void CPPMakeProperty:: output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { - out << "__make_property"; + if (_length_function != NULL) { + out << "__make_seq_property"; + } else { + out << "__make_property"; + } if (_has_function != NULL) { out.put('2'); @@ -86,6 +94,10 @@ output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { out << "(" << _ident->get_local_name(scope); + if (_length_function != NULL) { + out << ", " << _length_function->_name; + } + if (_has_function != NULL) { out << ", " << _has_function->_name; } @@ -100,6 +112,10 @@ output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { out << ", " << _clear_function->_name; } + if (_del_function != NULL) { + out << ", " << _del_function->_name; + } + out << ");"; } diff --git a/dtool/src/cppparser/cppMakeProperty.h b/dtool/src/cppparser/cppMakeProperty.h index 40308e4b14..44a1a5671a 100644 --- a/dtool/src/cppparser/cppMakeProperty.h +++ b/dtool/src/cppparser/cppMakeProperty.h @@ -46,10 +46,14 @@ public: virtual CPPMakeProperty *as_make_property(); CPPIdentifier *_ident; + // If length_function is not NULL, this is actually a sequence property, + // and the other functions take an additional index argument. + CPPFunctionGroup *_length_function; CPPFunctionGroup *_has_function; CPPFunctionGroup *_get_function; CPPFunctionGroup *_set_function; CPPFunctionGroup *_clear_function; + CPPFunctionGroup *_del_function; }; #endif diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index 6b382161db..24116a240a 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -2458,9 +2458,11 @@ check_keyword(const string &name) { if (name == "__inline__") return KW_INLINE; if (name == "int") return KW_INT; if (name == "long") return KW_LONG; + if (name == "__make_map_property") return KW_MAKE_MAP_PROPERTY; if (name == "__make_property") return KW_MAKE_PROPERTY; if (name == "__make_property2") return KW_MAKE_PROPERTY2; if (name == "__make_seq") return KW_MAKE_SEQ; + if (name == "__make_seq_property") return KW_MAKE_SEQ_PROPERTY; if (name == "mutable") return KW_MUTABLE; if (name == "namespace") return KW_NAMESPACE; if (name == "noexcept") return KW_NOEXCEPT; diff --git a/dtool/src/dtoolbase/dtoolbase.h b/dtool/src/dtoolbase/dtoolbase.h index cfa1d9b0e3..e3c346d4a0 100644 --- a/dtool/src/dtoolbase/dtoolbase.h +++ b/dtool/src/dtoolbase/dtoolbase.h @@ -415,6 +415,7 @@ typedef struct _object PyObject; #define MAKE_PROPERTY(property_name, ...) __make_property(property_name, __VA_ARGS__) #define MAKE_PROPERTY2(property_name, ...) __make_property2(property_name, __VA_ARGS__) #define MAKE_SEQ(seq_name, num_name, element_name) __make_seq(seq_name, num_name, element_name) +#define MAKE_SEQ_PROPERTY(property_name, ...) __make_seq_property(property_name, __VA_ARGS__) #undef USE_STL_ALLOCATOR /* Don't try to parse these template classes in interrogate. */ #define EXTENSION(x) __extension x #define EXTEND __extension @@ -425,6 +426,7 @@ typedef struct _object PyObject; #define MAKE_PROPERTY(property_name, ...) #define MAKE_PROPERTY2(property_name, ...) #define MAKE_SEQ(seq_name, num_name, element_name) +#define MAKE_SEQ_PROPERTY(property_name, ...) #define EXTENSION(x) #define EXTEND #endif diff --git a/dtool/src/dtoolbase/typeHandle.h b/dtool/src/dtoolbase/typeHandle.h index ca0d1874f6..fe611c2fd1 100644 --- a/dtool/src/dtoolbase/typeHandle.h +++ b/dtool/src/dtoolbase/typeHandle.h @@ -114,6 +114,8 @@ PUBLISHED: MAKE_PROPERTY(index, get_index); MAKE_PROPERTY(name, get_name); + MAKE_SEQ_PROPERTY(parent_classes, get_num_parent_classes, get_parent_class); + MAKE_SEQ_PROPERTY(child_classes, get_num_child_classes, get_child_class); public: INLINE static TypeHandle from_index(int index); diff --git a/dtool/src/dtoolbase/typeRegistry.h b/dtool/src/dtoolbase/typeRegistry.h index 6c668a6190..828cee6c8c 100644 --- a/dtool/src/dtoolbase/typeRegistry.h +++ b/dtool/src/dtoolbase/typeRegistry.h @@ -79,6 +79,9 @@ PUBLISHED: // ptr() returns the pointer to the global TypeRegistry object. static TypeRegistry *ptr(); + MAKE_SEQ_PROPERTY(typehandles, get_num_typehandles, get_typehandle); + MAKE_SEQ_PROPERTY(root_classes, get_num_root_classes, get_root_class); + private: // The TypeRegistry class should never be constructed by user code. There // is only one in the universe, and it constructs itself! diff --git a/dtool/src/dtoolutil/dSearchPath.h b/dtool/src/dtoolutil/dSearchPath.h index 712e77be4c..67cbd61135 100644 --- a/dtool/src/dtoolutil/dSearchPath.h +++ b/dtool/src/dtoolutil/dSearchPath.h @@ -71,6 +71,7 @@ PUBLISHED: size_t get_num_directories() const; const Filename &get_directory(size_t n) const; MAKE_SEQ(get_directories, get_num_directories, get_directory); + MAKE_SEQ_PROPERTY(directories, get_num_directories, get_directory); Filename find_file(const Filename &filename) const; size_t find_all_files(const Filename &filename, Results &results) const; diff --git a/dtool/src/dtoolutil/pandaSystem.h b/dtool/src/dtoolutil/pandaSystem.h index a401440b6b..d88e3b92a3 100644 --- a/dtool/src/dtoolutil/pandaSystem.h +++ b/dtool/src/dtoolutil/pandaSystem.h @@ -50,6 +50,7 @@ PUBLISHED: size_t get_num_systems() const; string get_system(size_t n) const; MAKE_SEQ(get_systems, get_num_systems, get_system); + MAKE_SEQ_PROPERTY(systems, get_num_systems, get_system); string get_system_tag(const string &system, const string &tag) const; diff --git a/dtool/src/interrogate/interfaceMaker.cxx b/dtool/src/interrogate/interfaceMaker.cxx index 6a7c63e40f..a653dc4438 100644 --- a/dtool/src/interrogate/interfaceMaker.cxx +++ b/dtool/src/interrogate/interfaceMaker.cxx @@ -86,10 +86,12 @@ MakeSeq(const string &name, const InterrogateMakeSeq &imake_seq) : InterfaceMaker::Property:: Property(const InterrogateElement &ielement) : _ielement(ielement), + _length_function(NULL), _getter(NULL), _setter(NULL), _has_function(NULL), - _clear_function(NULL) + _clear_function(NULL), + _deleter(NULL) { } diff --git a/dtool/src/interrogate/interfaceMaker.h b/dtool/src/interrogate/interfaceMaker.h index f76975d592..c84714eb51 100644 --- a/dtool/src/interrogate/interfaceMaker.h +++ b/dtool/src/interrogate/interfaceMaker.h @@ -126,10 +126,12 @@ public: Property(const InterrogateElement &ielement); const InterrogateElement &_ielement; + Function *_length_function; Function *_getter; Function *_setter; Function *_has_function; Function *_clear_function; + Function *_deleter; }; typedef vector Properties; diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 69be99605f..37932246db 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -1013,13 +1013,21 @@ write_class_details(ostream &out, Object *obj) { } // Write the constructors. + std::string fname = "static int Dtool_Init_" + ClassName + "(PyObject *self, PyObject *args, PyObject *kwds)"; for (fi = obj->_constructors.begin(); fi != obj->_constructors.end(); ++fi) { Function *func = (*fi); - std::string fname = "static int Dtool_Init_" + ClassName + "(PyObject *self, PyObject *args, PyObject *kwds)"; string expected_params; write_function_for_name(out, obj, func->_remaps, fname, expected_params, true, AT_keyword_args, RF_int); } + if (obj->_constructors.size() == 0) { + // We still need to write a dummy constructor to prevent inheriting the + // constructor from a base class. + out << fname << " {\n" + " Dtool_Raise_TypeError(\"cannot init abstract class\");\n" + " return -1;\n" + "}\n\n"; + } CPPType *cpptype = TypeManager::resolve_type(obj->_itype._cpptype); @@ -2618,7 +2626,8 @@ write_module_class(ostream &out, Object *obj) { string getter = "&Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter"; string setter = "NULL"; - if (property->_setter != NULL && is_function_legal(property->_setter)) { + if (property->_length_function == NULL && + property->_setter != NULL && is_function_legal(property->_setter)) { setter = "&Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter"; } @@ -2931,11 +2940,7 @@ write_module_class(ostream &out, Object *obj) { // Py_ssize_t tp_dictoffset; out << " 0, // tp_dictoffset\n"; // initproc tp_init; - if (obj->_constructors.size() > 0) { - out << " Dtool_Init_" << ClassName << ",\n"; - } else { - out << " 0,\n"; - } + out << " Dtool_Init_" << ClassName << ",\n"; // allocfunc tp_alloc; out << " PyType_GenericAlloc,\n"; // newfunc tp_new; @@ -3970,13 +3975,7 @@ collapse_default_remaps(std::map > &map_sets, goto abort_iteration; } } - } else if (TypeManager::is_bool(type)) { - } else if (TypeManager::is_char(type)) { - } else if (TypeManager::is_wchar(type)) { - goto abort_iteration; - } else if (TypeManager::is_longlong(type)) { } else if (TypeManager::is_integer(type)) { - } else if (TypeManager::is_double(type)) { } else if (TypeManager::is_float(type)) { } else if (TypeManager::is_const_char_pointer(type)) { } else if (TypeManager::is_pointer_to_PyTypeObject(type)) { @@ -6138,8 +6137,9 @@ void InterfaceMakerPythonNative:: write_make_seq(ostream &out, Object *obj, const std::string &ClassName, const std::string &cClassName, MakeSeq *make_seq) { - out << "/******************************************************************\n" << " * Python make_seq wrapper\n"; - out << " *******************************************************************/\n"; + out << "/*\n" + " * Python make_seq wrapper\n" + " */\n"; out << "static PyObject *" << make_seq->_name + "(PyObject *self, PyObject *) {\n"; @@ -6228,10 +6228,156 @@ write_getset(ostream &out, Object *obj, Property *property) { const InterrogateElement &ielem = property->_ielement; - if (property->_getter != NULL) { + if (property->_length_function != NULL) { + // This is actually a sequence. Wrap this with a special class. + FunctionRemap *len_remap = property->_length_function->_remaps.front(); + vector_string pexprs; + + out << "/**\n" + " * sequence length function for property " << cClassName << "::" << ielem.get_name() << "\n" + " */\n" + "static Py_ssize_t Dtool_" + ClassName + "_" + ielem.get_name() + "_Len(PyObject *self) {\n"; + if (property->_length_function->_has_this) { + out << + " " << cClassName << " *local_this = NULL;\n" + " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n" + " return NULL;\n" + " }\n" + " return (Py_ssize_t)" << len_remap->get_call_str("local_this", pexprs) << ";\n"; + } else { + out << " return (Py_ssize_t)" << len_remap->get_call_str("", pexprs) << ";\n"; + } + out << "}\n\n"; + + // Now write out the getitem helper function. + if (property->_getter != NULL) { + out << + "/**\n" + " * sequence getter for property " << cClassName << "::" << ielem.get_name() << "\n" + " */\n" + "static PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getitem(PyObject *self, Py_ssize_t index) {\n" + " " << cClassName << " *local_this = NULL;\n" + " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n" + " return NULL;\n" + " }\n"; + + // This is a getitem of a sequence type. This means we *need* to raise + // IndexError if we're out of bounds. + out << " if (index < 0 || index >= (Py_ssize_t)" + << len_remap->get_call_str("local_this", pexprs) << ") {\n"; + out << " PyErr_SetString(PyExc_IndexError, \"" << ClassName << "." << ielem.get_name() << "[] index out of range\");\n"; + out << " return NULL;\n"; + out << " }\n"; + + if (property->_has_function != NULL) { + out << " if (!local_this->" << property->_has_function->_ifunc.get_name() << "(index)) {\n" + << " Py_INCREF(Py_None);\n" + << " return Py_None;\n" + << " }\n"; + } + + std::set remaps; + + // Extract only the getters that take one argument. + Function::Remaps::iterator it; + for (it = property->_getter->_remaps.begin(); + it != property->_getter->_remaps.end(); + ++it) { + FunctionRemap *remap = *it; + int min_num_args = remap->get_min_num_args(); + int max_num_args = remap->get_max_num_args(); + if (min_num_args <= 1 && max_num_args >= 1) { + remaps.insert(remap); + } + } + + string expected_params; + write_function_forset(out, remaps, 1, 1, expected_params, 2, true, true, + AT_no_args, RF_pyobject | RF_err_null, false, true, "index"); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " return Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n" + " }\n" + "}\n\n"; + } + + // Write out a setitem if this is not a read-only property. + if (property->_setter != NULL) { + out << "static int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setitem(PyObject *self, Py_ssize_t index, PyObject *arg) {\n"; + out << " " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" + << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; + out << " return -1;\n"; + out << " }\n\n"; + + out << " if (arg == (PyObject *)NULL) {\n"; + if (property->_deleter != NULL) { + out << " local_this->" << property->_deleter->_ifunc.get_name() << "(index);\n" + << " return 0;\n"; + } else { + out << " Dtool_Raise_TypeError(\"can't delete " << ielem.get_name() << "[] attribute\");\n" + " return -1;\n"; + } + out << " }\n"; + + if (property->_clear_function != NULL) { + out << " if (arg == Py_None) {\n" + << " local_this->" << property->_clear_function->_ifunc.get_name() << "(index);\n" + << " return 0;\n" + << " }\n"; + } + + std::set remaps; + + // Extract only the setters that take two arguments. + Function::Remaps::iterator it; + for (it = property->_setter->_remaps.begin(); + it != property->_setter->_remaps.end(); + ++it) { + FunctionRemap *remap = *it; + int min_num_args = remap->get_min_num_args(); + int max_num_args = remap->get_max_num_args(); + if (min_num_args <= 2 && max_num_args >= 2) { + remaps.insert(remap); + } + } + + string expected_params; + write_function_forset(out, remaps, 2, 2, + expected_params, 2, true, true, AT_single_arg, + RF_int, false, false, "index"); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n"; + out << " }\n"; + out << " return -1;\n"; + out << "}\n\n"; + } + + // Now write the getter, which returns a special wrapper object. + out << "static PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n" + " Py_INCREF(self);\n" + " Dtool_SequenceWrapper *wrap = PyObject_New(Dtool_SequenceWrapper, &Dtool_SequenceWrapper_Type);\n" + " wrap->_base = self;\n" + " wrap->_len_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Len;\n" + " wrap->_getitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Getitem;\n"; + if (property->_setter != NULL) { + out << " wrap->_setitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Setitem;\n"; + } else { + out << " wrap->_setitem_func = NULL;\n"; + } + out << " return (PyObject *)wrap;\n" + "}\n\n"; + + } else if (property->_getter != NULL) { + // Write out a regular, unwrapped getter. + out << "static PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n"; FunctionRemap *remap = property->_getter->_remaps.front(); - out << "PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n"; if (remap->_const_method) { out << " const " << cClassName << " *local_this = NULL;\n"; out << " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n"; @@ -6258,50 +6404,61 @@ write_getset(ostream &out, Object *obj, Property *property) { expected_params, 2, false, true, AT_no_args, RF_pyobject | RF_err_null, false, false); out << "}\n\n"; - } - if (property->_setter != NULL) { - out << "int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter(PyObject *self, PyObject *arg, void *) {\n"; - out << " " << cClassName << " *local_this = NULL;\n"; - out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" - << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; - out << " return -1;\n"; - out << " }\n\n"; + // Write out a setter if this is not a read-only property. + if (property->_setter != NULL) { + out << "static int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter(PyObject *self, PyObject *arg, void *) {\n"; + out << " " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" + << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; + out << " return -1;\n"; + out << " }\n\n"; - if (property->_clear_function != NULL) { - out << " if (arg == Py_None) {\n" - << " local_this->" << property->_clear_function->_ifunc.get_name() << "();\n" - << " return 0;\n" - << " }\n"; - } - - std::set remaps; - - // Extract only the setters that take one argument. - Function::Remaps::iterator it; - for (it = property->_setter->_remaps.begin(); - it != property->_setter->_remaps.end(); - ++it) { - FunctionRemap *remap = *it; - int min_num_args = remap->get_min_num_args(); - int max_num_args = remap->get_max_num_args(); - if (min_num_args <= 1 && max_num_args >= 1) { - remaps.insert(remap); + out << " if (arg == (PyObject *)NULL) {\n"; + if (property->_deleter != NULL) { + out << " local_this->" << property->_deleter->_ifunc.get_name() << "();\n" + << " return 0;\n"; + } else { + out << " Dtool_Raise_TypeError(\"can't delete " << ielem.get_name() << " attribute\");\n" + " return -1;\n"; } + out << " }\n"; + + if (property->_clear_function != NULL) { + out << " if (arg == Py_None) {\n" + << " local_this->" << property->_clear_function->_ifunc.get_name() << "();\n" + << " return 0;\n" + << " }\n"; + } + + std::set remaps; + + // Extract only the setters that take one argument. + Function::Remaps::iterator it; + for (it = property->_setter->_remaps.begin(); + it != property->_setter->_remaps.end(); + ++it) { + FunctionRemap *remap = *it; + int min_num_args = remap->get_min_num_args(); + int max_num_args = remap->get_max_num_args(); + if (min_num_args <= 1 && max_num_args >= 1) { + remaps.insert(remap); + } + } + + string expected_params; + write_function_forset(out, remaps, 1, 1, + expected_params, 2, true, true, AT_single_arg, + RF_int, false, false); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n"; + out << " }\n"; + out << " return -1;\n"; + out << "}\n\n"; } - - string expected_params; - write_function_forset(out, remaps, 1, 1, - expected_params, 2, true, true, AT_single_arg, - RF_int, false, false); - - out << " if (!_PyErr_OCCURRED()) {\n"; - out << " Dtool_Raise_BadArgumentsError(\n"; - output_quoted(out, 6, expected_params); - out << ");\n"; - out << " }\n"; - out << " return -1;\n"; - out << "}\n\n"; } } @@ -6426,6 +6583,19 @@ record_object(TypeIndex type_index) { } } + if (ielement.has_del_function()) { + FunctionIndex func_index = ielement.get_del_function(); + Function *del_function = record_function(itype, func_index); + if (is_function_legal(del_function)) { + property->_deleter = del_function; + } + } + + if (ielement.is_sequence()) { + FunctionIndex func_index = ielement.get_length_function(); + property->_length_function = record_function(itype, func_index); + } + if (property->_getter != NULL) { object->_properties.push_back(property); } else { diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index 762747cc42..4d4bee4210 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -1782,9 +1782,9 @@ get_function(CPPInstance *function, string description, } /** - * Adds the indicated make_property to the database, if it is not already - * present. In either case, returns the MakeSeqIndex of the make_seq within - * the database. + * Adds the indicated make_property or make_seq_property to the database, if + * it is not already present. In either case, returns the ElementIndex + * of the created property within the database. */ ElementIndex InterrogateBuilder:: get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CPPScope *scope) { @@ -1805,20 +1805,58 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP return index; } + // If we have a length function (ie. this is a sequence property), we should + // find the function that will give us the length. + FunctionIndex length_function = 0; + bool is_seq = false; + + CPPFunctionGroup::Instances::const_iterator fi; + CPPFunctionGroup *fgroup = make_property->_length_function; + if (fgroup != NULL) { + is_seq = true; + + for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { + CPPInstance *function = (*fi); + CPPFunctionType *ftype = + function->_type->as_function_type(); + if (ftype != NULL) { + length_function = get_function(function, "", struct_type, + struct_type->get_scope(), 0); + if (length_function != 0) { + break; + } + } + } + if (length_function == 0) { + cerr << "No instance of length method '" + << fgroup->_name << "' is suitable!\n"; + return 0; + } + } + // Find the getter so we can get its return type. CPPInstance *getter = NULL; CPPType *return_type = NULL; - CPPFunctionGroup *fgroup = make_property->_get_function; + fgroup = make_property->_get_function; if (fgroup != NULL) { CPPFunctionGroup::Instances::const_iterator fi; for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { CPPInstance *function = (*fi); CPPFunctionType *ftype = function->_type->as_function_type(); + if (ftype == NULL) { + continue; + } // The getter must either take no arguments, or all defaults. - if (ftype != NULL && (ftype->_parameters->_parameters.size() == 0 || - ftype->_parameters->_parameters[0]->_initializer != NULL)) { + if (ftype->_parameters->_parameters.size() == (int)is_seq || + (ftype->_parameters->_parameters.size() > (int)is_seq && + ftype->_parameters->_parameters[(int)is_seq]->_initializer != NULL)) { + // If this is a sequence getter, it must take an index argument. + if (is_seq && !TypeManager::is_integer(ftype->_parameters->_parameters[0]->_type)) { + continue; + } + getter = function; return_type = ftype->_return_type; @@ -1860,6 +1898,28 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP } } + // And the "deleter". + CPPInstance *deleter = NULL; + + fgroup = make_property->_del_function; + if (fgroup != NULL) { + CPPFunctionGroup::Instances::const_iterator fi; + for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { + CPPInstance *function = (*fi); + CPPFunctionType *ftype = function->_type->as_function_type(); + if (ftype != NULL && ftype->_parameters->_parameters.size() == (int)is_seq) { + deleter = function; + break; + } + } + + if (deleter == NULL || return_type == NULL) { + cerr << "No instance of delete-function '" + << fgroup->_name << "' is suitable!\n"; + return 0; + } + } + InterrogateDatabase *idb = InterrogateDatabase::get_ptr(); // It isn't here, so we'll have to define it. ElementIndex index = idb->get_next_index(); @@ -1875,22 +1935,30 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._type = 0; } + if (length_function != 0) { + iproperty._flags |= InterrogateElement::F_sequence; + iproperty._length_function = length_function; + } + if (getter != NULL) { iproperty._flags |= InterrogateElement::F_has_getter; iproperty._getter = get_function(getter, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._getter == 0) { - cerr << "failed " << *getter << "\n"; - } + nassertr(iproperty._getter, 0); } if (hasser != NULL) { iproperty._flags |= InterrogateElement::F_has_has_function; iproperty._has_function = get_function(hasser, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._has_function == 0) { - cerr << "failed " << *hasser << "\n"; - } + nassertr(iproperty._has_function, 0); + } + + if (deleter != NULL) { + iproperty._flags |= InterrogateElement::F_has_del_function; + iproperty._del_function = get_function(deleter, "", struct_type, + struct_type->get_scope(), 0); + nassertr(iproperty._del_function, 0); } // See if there happens to be a comment before the MAKE_PROPERTY macro. @@ -1907,9 +1975,7 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._flags |= InterrogateElement::F_has_setter; iproperty._setter = get_function(function, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._setter == 0) { - cerr << "failed " << *function << "\n"; - } + nassertr(iproperty._setter, 0); break; } } @@ -1922,15 +1988,12 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._flags |= InterrogateElement::F_has_clear_function; iproperty._clear_function = get_function(function, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._clear_function == 0) { - cerr << "failed " << *function << "\n"; - } + nassertr(iproperty._clear_function, 0); break; } } idb->add_element(index, iproperty); - return index; } diff --git a/dtool/src/interrogatedb/interrogateDatabase.cxx b/dtool/src/interrogatedb/interrogateDatabase.cxx index 22d424b6e9..559f707ca5 100644 --- a/dtool/src/interrogatedb/interrogateDatabase.cxx +++ b/dtool/src/interrogatedb/interrogateDatabase.cxx @@ -20,7 +20,7 @@ InterrogateDatabase *InterrogateDatabase::_global_ptr = NULL; int InterrogateDatabase::_file_major_version = 0; int InterrogateDatabase::_file_minor_version = 0; int InterrogateDatabase::_current_major_version = 3; -int InterrogateDatabase::_current_minor_version = 1; +int InterrogateDatabase::_current_minor_version = 2; /** * diff --git a/dtool/src/interrogatedb/interrogateElement.I b/dtool/src/interrogatedb/interrogateElement.I index 4fea0bf105..7e3ba61f77 100644 --- a/dtool/src/interrogatedb/interrogateElement.I +++ b/dtool/src/interrogatedb/interrogateElement.I @@ -24,6 +24,8 @@ InterrogateElement(InterrogateModuleDef *def) : _setter = 0; _has_function = 0; _clear_function = 0; + _del_function = 0; + _length_function = 0; } /** @@ -48,6 +50,8 @@ operator = (const InterrogateElement ©) { _setter = copy._setter; _has_function = copy._has_function; _clear_function = copy._clear_function; + _del_function = copy._del_function; + _length_function = copy._length_function; } /** @@ -163,6 +167,38 @@ get_clear_function() const { return _clear_function; } +/** + * + */ +INLINE bool InterrogateElement:: +has_del_function() const { + return (_flags & F_has_del_function) != 0; +} + +/** + * + */ +INLINE FunctionIndex InterrogateElement:: +get_del_function() const { + return _del_function; +} + +/** + * + */ +INLINE bool InterrogateElement:: +is_sequence() const { + return (_flags & F_sequence) != 0; +} + +/** + * + */ +INLINE FunctionIndex InterrogateElement:: +get_length_function() const { + return _length_function; +} + INLINE ostream & operator << (ostream &out, const InterrogateElement &element) { diff --git a/dtool/src/interrogatedb/interrogateElement.cxx b/dtool/src/interrogatedb/interrogateElement.cxx index 754f88ba33..a7469b9941 100644 --- a/dtool/src/interrogatedb/interrogateElement.cxx +++ b/dtool/src/interrogatedb/interrogateElement.cxx @@ -27,7 +27,9 @@ output(ostream &out) const { << _getter << " " << _setter << " " << _has_function << " " - << _clear_function << " "; + << _clear_function << " " + << _del_function << " " + << _length_function << " "; idf_output_string(out, _scoped_name); idf_output_string(out, _comment, '\n'); } @@ -41,6 +43,9 @@ input(istream &in) { in >> _flags >> _type >> _getter >> _setter; if (InterrogateDatabase::get_file_minor_version() >= 1) { in >> _has_function >> _clear_function; + if (InterrogateDatabase::get_file_minor_version() >= 2) { + in >> _del_function >> _length_function; + } } idf_input_string(in, _scoped_name); idf_input_string(in, _comment); @@ -55,4 +60,8 @@ remap_indices(const IndexRemapper &remap) { _type = remap.map_from(_type); _getter = remap.map_from(_getter); _setter = remap.map_from(_setter); + _has_function = remap.map_from(_has_function); + _clear_function = remap.map_from(_clear_function); + _del_function = remap.map_from(_del_function); + _length_function = remap.map_from(_length_function); } diff --git a/dtool/src/interrogatedb/interrogateElement.h b/dtool/src/interrogatedb/interrogateElement.h index a69be7f5d1..3506d7b9a8 100644 --- a/dtool/src/interrogatedb/interrogateElement.h +++ b/dtool/src/interrogatedb/interrogateElement.h @@ -47,6 +47,10 @@ public: INLINE FunctionIndex get_has_function() const; INLINE bool has_clear_function() const; INLINE FunctionIndex get_clear_function() const; + INLINE bool has_del_function() const; + INLINE FunctionIndex get_del_function() const; + INLINE bool is_sequence() const; + INLINE FunctionIndex get_length_function() const; void output(ostream &out) const; void input(istream &in); @@ -60,16 +64,21 @@ private: F_has_setter = 0x0004, F_has_has_function= 0x0008, F_has_clear_function= 0x0010, + F_has_del_function= 0x0020, + F_sequence = 0x0040, + F_mapping = 0x0080, }; int _flags; string _scoped_name; string _comment; TypeIndex _type; + FunctionIndex _length_function; FunctionIndex _getter; FunctionIndex _setter; FunctionIndex _has_function; FunctionIndex _clear_function; + FunctionIndex _del_function; friend class InterrogateBuilder; }; diff --git a/dtool/src/interrogatedb/py_panda.I b/dtool/src/interrogatedb/py_panda.I index 51e10db446..3b171f14c7 100644 --- a/dtool/src/interrogatedb/py_panda.I +++ b/dtool/src/interrogatedb/py_panda.I @@ -192,6 +192,14 @@ ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value) { return value; } +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::vector &value) { +#if PY_MAJOR_VERSION >= 3 + return PyBytes_FromStringAndSize((char *)value.data(), (Py_ssize_t)value.size()); +#else + return PyString_FromStringAndSize((char *)value.data(), (Py_ssize_t)value.size()); +#endif +} + #if PY_MAJOR_VERSION >= 0x02060000 ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value) { if (value == (Py_buffer *)NULL) { @@ -201,3 +209,11 @@ ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value) { } } #endif + +template +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::pair &value) { + PyObject *tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, Dtool_WrapValue(value.first)); + PyTuple_SET_ITEM(tuple, 1, Dtool_WrapValue(value.second)); + return tuple; +} diff --git a/dtool/src/interrogatedb/py_panda.cxx b/dtool/src/interrogatedb/py_panda.cxx index a7cfa63ed5..c12734813f 100644 --- a/dtool/src/interrogatedb/py_panda.cxx +++ b/dtool/src/interrogatedb/py_panda.cxx @@ -571,8 +571,19 @@ PyObject *Dtool_PyModuleInitHelper(LibraryDef *defs[], const char *modulename) { return (PyObject *)NULL; } - // Initialize the base class of everything. - Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(NULL); + // Initialize the types we define in py_panda. + static bool dtool_inited = false; + if (!dtool_inited) { + dtool_inited = true; + + if (PyType_Ready(&Dtool_SequenceWrapper_Type) < 0) { + PyErr_SetString(PyExc_TypeError, "PyType_Ready(Dtool_SequenceWrapper)"); + return NULL; + } + + // Initialize the base class of everything. + Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(NULL); + } // the module level function inits.... MethodDefmap functions; @@ -860,4 +871,107 @@ PyObject *map_deepcopy_to_copy(PyObject *self, PyObject *args) { return PyObject_CallMethod(self, (char *)"__copy__", (char *)"()"); } +/** + * This class is returned from properties that require a settable interface, + * ie. something.children[i] = 3. + */ +static void Dtool_SequenceWrapper_dealloc(PyObject *self) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertv(wrap); + Py_DECREF(wrap->_base); +} + +static Py_ssize_t Dtool_SequenceWrapper_length(PyObject *self) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertr(wrap, -1); + nassertr(wrap->_len_func, -1); + return wrap->_len_func(wrap->_base); +} + +static PyObject *Dtool_SequenceWrapper_getitem(PyObject *self, Py_ssize_t index) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertr(wrap, NULL); + nassertr(wrap->_getitem_func, NULL); + return wrap->_getitem_func(wrap->_base, index); +} + +static int Dtool_SequenceWrapper_setitem(PyObject *self, Py_ssize_t index, PyObject *value) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertr(wrap, -1); + nassertr(wrap->_setitem_func, -1); + return wrap->_setitem_func(wrap->_base, index, value); +} + +static PySequenceMethods Dtool_SequenceWrapper_SequenceMethods = { + Dtool_SequenceWrapper_length, + 0, // sq_concat + 0, // sq_repeat + Dtool_SequenceWrapper_getitem, + 0, // sq_slice + Dtool_SequenceWrapper_setitem, + 0, // sq_ass_slice + 0, // sq_contains + 0, // sq_inplace_concat + 0, // sq_inplace_repeat +}; + +PyTypeObject Dtool_SequenceWrapper_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "sequence wrapper", + sizeof(Dtool_SequenceWrapper), + 0, // tp_itemsize + Dtool_SequenceWrapper_dealloc, + 0, // tp_print + 0, // tp_getattr + 0, // tp_setattr +#if PY_MAJOR_VERSION >= 3 + 0, // tp_reserved +#else + 0, // tp_compare +#endif + 0, // tp_repr + 0, // tp_as_number + &Dtool_SequenceWrapper_SequenceMethods, + 0, // tp_as_mapping + 0, // tp_hash + 0, // tp_call + 0, // tp_str + PyObject_GenericGetAttr, + PyObject_GenericSetAttr, + 0, // tp_as_buffer + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES, + 0, // tp_doc + 0, // tp_traverse + 0, // tp_clear + 0, // tp_richcompare + 0, // tp_weaklistoffset + 0, // tp_iter + 0, // tp_iternext + 0, // tp_methods + 0, // tp_members + 0, // tp_getset + 0, // tp_base + 0, // tp_dict + 0, // tp_descr_get + 0, // tp_descr_set + 0, // tp_dictoffset + 0, // tp_init + PyType_GenericAlloc, + 0, // tp_new + PyObject_Del, + 0, // tp_is_gc + 0, // tp_bases + 0, // tp_mro + 0, // tp_cache + 0, // tp_subclasses + 0, // tp_weaklist + 0, // tp_del +#if PY_VERSION_HEX >= 0x02060000 + 0, // tp_version_tag +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, // tp_finalize +#endif +}; + #endif // HAVE_PYTHON diff --git a/dtool/src/interrogatedb/py_panda.h b/dtool/src/interrogatedb/py_panda.h index 22891799dd..eebefb036b 100644 --- a/dtool/src/interrogatedb/py_panda.h +++ b/dtool/src/interrogatedb/py_panda.h @@ -441,6 +441,20 @@ copy_from_copy_constructor(PyObject *self, PyObject *noargs); EXPCL_INTERROGATEDB PyObject * map_deepcopy_to_copy(PyObject *self, PyObject *args); +/** + * This class is returned from properties that require a settable interface, + * ie. something.children[i] = 3. + */ +struct Dtool_SequenceWrapper { + PyObject_HEAD + PyObject *_base; + lenfunc _len_func; + ssizeargfunc _getitem_func; + ssizeobjargproc _setitem_func; +}; + +EXPCL_INTERROGATEDB extern PyTypeObject Dtool_SequenceWrapper_Type; + /** * 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 @@ -464,11 +478,15 @@ 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); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::vector &value); #if PY_MAJOR_VERSION >= 0x02060000 ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value); #endif +template +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::pair &value); + EXPCL_INTERROGATEDB extern struct Dtool_PyTypedObject Dtool_DTOOL_SUPER_BASE; EXPCL_INTERROGATEDB extern void Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(PyObject *module); diff --git a/dtool/src/prc/configPage.h b/dtool/src/prc/configPage.h index 63ec9106df..8c143de836 100644 --- a/dtool/src/prc/configPage.h +++ b/dtool/src/prc/configPage.h @@ -44,6 +44,8 @@ PUBLISHED: INLINE bool is_special() const; INLINE bool is_implicit() const; + MAKE_PROPERTY(special, is_special); + MAKE_PROPERTY(implicit, is_implicit); void set_sort(int sort); INLINE int get_sort() const; @@ -72,6 +74,8 @@ PUBLISHED: string get_string_value(size_t n) const; bool is_variable_used(size_t n) const; + MAKE_SEQ_PROPERTY(declarations, get_num_declarations, modify_declaration); + void output(ostream &out) const; void output_brief_signature(ostream &out) const; void write(ostream &out) const; diff --git a/dtool/src/prc/configVariableCore.h b/dtool/src/prc/configVariableCore.h index 11af6061ce..e857dd3cc2 100644 --- a/dtool/src/prc/configVariableCore.h +++ b/dtool/src/prc/configVariableCore.h @@ -75,10 +75,25 @@ PUBLISHED: INLINE size_t get_num_unique_references() const; INLINE const ConfigDeclaration *get_unique_reference(size_t n) const; MAKE_SEQ(get_unique_references, get_num_unique_references, get_unique_reference); + MAKE_SEQ_PROPERTY(declarations, get_num_declarations, get_declaration); void output(ostream &out) const; void write(ostream &out) const; + MAKE_PROPERTY(name, get_name); + MAKE_PROPERTY(used, is_used); + MAKE_PROPERTY(closed, is_closed); + MAKE_PROPERTY(trust_level, get_trust_level); + MAKE_PROPERTY(dynamic, is_dynamic); + + MAKE_PROPERTY(value_type, get_value_type, set_value_type); + MAKE_PROPERTY(description, get_description, set_description); + MAKE_PROPERTY(default_value, get_default_value, set_default_value); + + MAKE_SEQ_PROPERTY(references, get_num_references, get_reference); + MAKE_SEQ_PROPERTY(trusted_references, get_num_trusted_references, get_trusted_reference); + MAKE_SEQ_PROPERTY(unique_references, get_num_unique_references, get_unique_reference); + private: void add_declaration(ConfigDeclaration *decl); void remove_declaration(ConfigDeclaration *decl); diff --git a/dtool/src/prc/configVariableManager.h b/dtool/src/prc/configVariableManager.h index eccdf2945c..78b943fef7 100644 --- a/dtool/src/prc/configVariableManager.h +++ b/dtool/src/prc/configVariableManager.h @@ -48,6 +48,8 @@ PUBLISHED: string get_variable_name(size_t n) const; bool is_variable_used(size_t n) const; + MAKE_SEQ_PROPERTY(variables, get_num_variables, get_variable); + void output(ostream &out) const; void write(ostream &out) const; diff --git a/dtool/src/prc/configVariableSearchPath.h b/dtool/src/prc/configVariableSearchPath.h index 25524b86d4..6a6cfeb0ab 100644 --- a/dtool/src/prc/configVariableSearchPath.h +++ b/dtool/src/prc/configVariableSearchPath.h @@ -68,6 +68,7 @@ PUBLISHED: INLINE size_t get_num_directories() const; INLINE const Filename &get_directory(size_t n) const; MAKE_SEQ(get_directories, get_num_directories, get_directory); + MAKE_SEQ_PROPERTY(directories, get_num_directories, get_directory); INLINE Filename find_file(const Filename &filename) const; INLINE size_t find_all_files(const Filename &filename, diff --git a/dtool/src/prc/encryptStream.I b/dtool/src/prc/encryptStream.I index bdb911ebf8..bad15bd7e7 100644 --- a/dtool/src/prc/encryptStream.I +++ b/dtool/src/prc/encryptStream.I @@ -109,6 +109,29 @@ close() { return *this; } +/** + * Returns the encryption algorithm that was read from the stream. + */ +INLINE const string &OEncryptStream:: +get_algorithm() const { + return _buf.get_algorithm(); +} + +/** + * Returns the encryption key length, in bits, that was read from the stream. + */ +INLINE int OEncryptStream:: +get_key_length() const { + return _buf.get_key_length(); +} + +/** + * Returns the value that was was read from the stream. + */ +INLINE int OEncryptStream:: +get_iteration_count() const { + return _buf.get_iteration_count(); +} /** * Specifies the encryption algorithm that should be used for future calls to diff --git a/dtool/src/prc/encryptStream.h b/dtool/src/prc/encryptStream.h index e69ab0f9a9..3093e5d12f 100644 --- a/dtool/src/prc/encryptStream.h +++ b/dtool/src/prc/encryptStream.h @@ -49,6 +49,10 @@ PUBLISHED: INLINE int get_key_length() const; INLINE int get_iteration_count() const; + MAKE_PROPERTY(algorithm, get_algorithm); + MAKE_PROPERTY(key_length, get_key_length); + MAKE_PROPERTY(iteration_count, get_iteration_count); + private: EncryptStreamBuf _buf; }; @@ -76,10 +80,20 @@ PUBLISHED: const string &password); INLINE OEncryptStream &close(); +public: + INLINE const string &get_algorithm() const; + INLINE int get_key_length() const; + INLINE int get_iteration_count() const; + +PUBLISHED: INLINE void set_algorithm(const string &algorithm); INLINE void set_key_length(int key_length); INLINE void set_iteration_count(int iteration_count); + MAKE_PROPERTY(algorithm, get_algorithm, set_algorithm); + MAKE_PROPERTY(key_length, get_key_length, set_key_length); + MAKE_PROPERTY(iteration_count, get_iteration_count, set_iteration_count); + private: EncryptStreamBuf _buf; }; diff --git a/dtool/src/prc/notifyCategory.h b/dtool/src/prc/notifyCategory.h index fe9a7255e6..343591d122 100644 --- a/dtool/src/prc/notifyCategory.h +++ b/dtool/src/prc/notifyCategory.h @@ -74,6 +74,7 @@ PUBLISHED: size_t get_num_children() const; NotifyCategory *get_child(size_t i) const; MAKE_SEQ(get_children, get_num_children, get_child); + MAKE_SEQ_PROPERTY(children, get_num_children, get_child); static void set_server_delta(long delta); diff --git a/dtool/src/prc/streamReader.h b/dtool/src/prc/streamReader.h index f8f4678537..f281a88f1c 100644 --- a/dtool/src/prc/streamReader.h +++ b/dtool/src/prc/streamReader.h @@ -34,6 +34,7 @@ PUBLISHED: INLINE ~StreamReader(); INLINE istream *get_istream() const; + MAKE_PROPERTY(istream, get_istream); BLOCKING INLINE bool get_bool(); BLOCKING INLINE PN_int8 get_int8(); diff --git a/dtool/src/prc/streamWrapper.h b/dtool/src/prc/streamWrapper.h index de25a4267d..97d391a894 100644 --- a/dtool/src/prc/streamWrapper.h +++ b/dtool/src/prc/streamWrapper.h @@ -53,6 +53,7 @@ PUBLISHED: ~IStreamWrapper(); INLINE istream *get_istream() const; + MAKE_PROPERTY(istream, get_istream); public: void read(char *buffer, streamsize num_bytes); @@ -79,6 +80,7 @@ PUBLISHED: ~OStreamWrapper(); INLINE ostream *get_ostream() const; + MAKE_PROPERTY(ostream, get_ostream); public: void write(const char *buffer, streamsize num_bytes); @@ -114,6 +116,7 @@ PUBLISHED: ~StreamWrapper(); INLINE iostream *get_iostream() const; + MAKE_PROPERTY(iostream, get_iostream); private: iostream *_iostream; diff --git a/dtool/src/prc/streamWriter.h b/dtool/src/prc/streamWriter.h index e21dc3cbed..42157db277 100644 --- a/dtool/src/prc/streamWriter.h +++ b/dtool/src/prc/streamWriter.h @@ -36,6 +36,7 @@ PUBLISHED: INLINE ~StreamWriter(); INLINE ostream *get_ostream() const; + MAKE_PROPERTY(ostream, get_ostream); BLOCKING INLINE void add_bool(bool value); BLOCKING INLINE void add_int8(PN_int8 value); diff --git a/panda/src/chan/animGroup.h b/panda/src/chan/animGroup.h index 8bcb9c41eb..af81aba3b1 100644 --- a/panda/src/chan/animGroup.h +++ b/panda/src/chan/animGroup.h @@ -44,6 +44,8 @@ PUBLISHED: AnimGroup *get_child(int n) const; MAKE_SEQ(get_children, get_num_children, get_child); + MAKE_SEQ_PROPERTY(children, get_num_children, get_child); + AnimGroup *get_child_named(const string &name) const; AnimGroup *find_child(const string &name) const; void sort_descendants(); diff --git a/panda/src/chan/partBundle.h b/panda/src/chan/partBundle.h index 82272df52c..0d22fe5e73 100644 --- a/panda/src/chan/partBundle.h +++ b/panda/src/chan/partBundle.h @@ -113,6 +113,12 @@ PUBLISHED: INLINE PartBundleNode *get_node(int n) const; MAKE_SEQ(get_nodes, get_num_nodes, get_node); + MAKE_PROPERTY(blend_type, get_blend_type, set_blend_type); + MAKE_PROPERTY(anim_blend_flag, get_anim_blend_flag, set_anim_blend_flag); + MAKE_PROPERTY(frame_blend_flag, get_frame_blend_flag, set_frame_blend_flag); + MAKE_PROPERTY(root_xform, get_root_xform, set_root_xform); + MAKE_SEQ_PROPERTY(nodes, get_num_nodes, get_node); + void clear_control_effects(); INLINE void set_control_effect(AnimControl *control, PN_stdfloat effect); INLINE PN_stdfloat get_control_effect(AnimControl *control) const; diff --git a/panda/src/chan/partBundleHandle.h b/panda/src/chan/partBundleHandle.h index 7a5e26e8ce..f62b30c791 100644 --- a/panda/src/chan/partBundleHandle.h +++ b/panda/src/chan/partBundleHandle.h @@ -38,6 +38,8 @@ PUBLISHED: INLINE PartBundle *get_bundle(); INLINE void set_bundle(PartBundle *bundle); + MAKE_PROPERTY(bundle, get_bundle, set_bundle); + private: PT(PartBundle) _bundle; }; diff --git a/panda/src/chan/partBundleNode.h b/panda/src/chan/partBundleNode.h index 5a6de285e1..f4cafaf056 100644 --- a/panda/src/chan/partBundleNode.h +++ b/panda/src/chan/partBundleNode.h @@ -54,6 +54,9 @@ PUBLISHED: INLINE PartBundleHandle *get_bundle_handle(int n) const; MAKE_SEQ(get_bundle_handles, get_num_bundles, get_bundle_handle); + MAKE_SEQ_PROPERTY(bundles, get_num_bundles, get_bundle); + MAKE_SEQ_PROPERTY(bundle_handles, get_num_bundles, get_bundle_handle); + protected: void add_bundle(PartBundle *bundle); void add_bundle_handle(PartBundleHandle *handle); diff --git a/panda/src/chan/partGroup.h b/panda/src/chan/partGroup.h index 16b497f842..0d5967a39a 100644 --- a/panda/src/chan/partGroup.h +++ b/panda/src/chan/partGroup.h @@ -70,6 +70,7 @@ PUBLISHED: int get_num_children() const; PartGroup *get_child(int n) const; MAKE_SEQ(get_children, get_num_children, get_child); + MAKE_SEQ_PROPERTY(children, get_num_children, get_child); PartGroup *get_child_named(const string &name) const; PartGroup *find_child(const string &name) const; diff --git a/panda/src/collide/collisionFloorMesh.h b/panda/src/collide/collisionFloorMesh.h index 02861262c7..44e9d18e32 100644 --- a/panda/src/collide/collisionFloorMesh.h +++ b/panda/src/collide/collisionFloorMesh.h @@ -40,7 +40,6 @@ public: } TriangleIndices; PUBLISHED: - INLINE CollisionFloorMesh(); INLINE void add_vertex(const LPoint3 &vert); @@ -55,6 +54,10 @@ PUBLISHED: virtual LPoint3 get_collision_origin() const; +PUBLISHED: + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); + MAKE_SEQ_PROPERTY(triangles, get_num_triangles, get_triangle); + public: CollisionFloorMesh(const CollisionFloorMesh ©); virtual CollisionSolid *make_copy(); diff --git a/panda/src/collide/collisionHandlerEvent.h b/panda/src/collide/collisionHandlerEvent.h index c5ebfe78c9..a1240882d6 100644 --- a/panda/src/collide/collisionHandlerEvent.h +++ b/panda/src/collide/collisionHandlerEvent.h @@ -60,6 +60,10 @@ PUBLISHED: INLINE string get_out_pattern(int n) const; MAKE_SEQ(get_out_patterns, get_num_out_patterns, get_out_pattern); + MAKE_SEQ_PROPERTY(in_patterns, get_num_in_patterns, get_in_pattern); + MAKE_SEQ_PROPERTY(again_patterns, get_num_again_patterns, get_out_pattern); + MAKE_SEQ_PROPERTY(out_patterns, get_num_out_patterns, get_out_pattern); + void clear(); void flush(); diff --git a/panda/src/collide/collisionHandlerQueue.h b/panda/src/collide/collisionHandlerQueue.h index 397aa11809..0651b545c7 100644 --- a/panda/src/collide/collisionHandlerQueue.h +++ b/panda/src/collide/collisionHandlerQueue.h @@ -40,6 +40,7 @@ PUBLISHED: int get_num_entries() const; CollisionEntry *get_entry(int n) const; MAKE_SEQ(get_entries, get_num_entries, get_entry); + MAKE_SEQ_PROPERTY(entries, get_num_entries, get_entry); void output(ostream &out) const; void write(ostream &out, int indent_level = 0) const; diff --git a/panda/src/collide/collisionNode.h b/panda/src/collide/collisionNode.h index 5a939a284d..6c95e6d435 100644 --- a/panda/src/collide/collisionNode.h +++ b/panda/src/collide/collisionNode.h @@ -68,6 +68,7 @@ PUBLISHED: INLINE void set_solid(int n, CollisionSolid *solid); INLINE void remove_solid(int n); INLINE int add_solid(const CollisionSolid *solid); + MAKE_SEQ_PROPERTY(solids, get_num_solids, get_solid, set_solid, remove_solid); INLINE int get_collider_sort() const; INLINE void set_collider_sort(int sort); diff --git a/panda/src/collide/collisionPolygon.h b/panda/src/collide/collisionPolygon.h index 147920f580..464c0e73b6 100644 --- a/panda/src/collide/collisionPolygon.h +++ b/panda/src/collide/collisionPolygon.h @@ -60,6 +60,7 @@ PUBLISHED: bool is_concave() const; PUBLISHED: + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); MAKE_PROPERTY(valid, is_valid); MAKE_PROPERTY(concave, is_concave); diff --git a/panda/src/collide/collisionTraverser.h b/panda/src/collide/collisionTraverser.h index cd7916fc09..d4f2b2a24b 100644 --- a/panda/src/collide/collisionTraverser.h +++ b/panda/src/collide/collisionTraverser.h @@ -60,6 +60,7 @@ PUBLISHED: MAKE_SEQ(get_colliders, get_num_colliders, get_collider); CollisionHandler *get_handler(const NodePath &collider) const; void clear_colliders(); + MAKE_SEQ_PROPERTY(colliders, get_num_colliders, get_collider); void traverse(const NodePath &root); diff --git a/panda/src/display/graphicsEngine.h b/panda/src/display/graphicsEngine.h index 7945b6d039..1775b49e61 100644 --- a/panda/src/display/graphicsEngine.h +++ b/panda/src/display/graphicsEngine.h @@ -101,6 +101,7 @@ PUBLISHED: int get_num_windows() const; GraphicsOutput *get_window(int n) const; MAKE_SEQ(get_windows, get_num_windows, get_window); + MAKE_SEQ_PROPERTY(windows, get_num_windows, get_window); BLOCKING void render_frame(); BLOCKING void open_windows(); diff --git a/panda/src/display/graphicsOutput.h b/panda/src/display/graphicsOutput.h index 59d94489cf..295467f458 100644 --- a/panda/src/display/graphicsOutput.h +++ b/panda/src/display/graphicsOutput.h @@ -195,6 +195,7 @@ PUBLISHED: INLINE void set_child_sort(int child_sort); INLINE void clear_child_sort(); INLINE int get_child_sort() const; + MAKE_PROPERTY(child_sort, get_child_sort, set_child_sort); INLINE void trigger_copy(); @@ -216,10 +217,12 @@ PUBLISHED: int get_num_display_regions() const; PT(DisplayRegion) get_display_region(int n) const; MAKE_SEQ(get_display_regions, get_num_display_regions, get_display_region); + MAKE_SEQ_PROPERTY(display_regions, get_num_display_regions, get_display_region); int get_num_active_display_regions() const; PT(DisplayRegion) get_active_display_region(int n) const; MAKE_SEQ(get_active_display_regions, get_num_active_display_regions, get_active_display_region); + MAKE_SEQ_PROPERTY(active_display_regions, get_num_active_display_regions, get_active_display_region); GraphicsOutput *make_texture_buffer( const string &name, int x_size, int y_size, diff --git a/panda/src/display/graphicsPipeSelection.h b/panda/src/display/graphicsPipeSelection.h index 2f0955211c..d1dc5b641e 100644 --- a/panda/src/display/graphicsPipeSelection.h +++ b/panda/src/display/graphicsPipeSelection.h @@ -39,6 +39,7 @@ PUBLISHED: int get_num_pipe_types() const; TypeHandle get_pipe_type(int n) const; MAKE_SEQ(get_pipe_types, get_num_pipe_types, get_pipe_type); + MAKE_SEQ_PROPERTY(pipe_types, get_num_pipe_types, get_pipe_type); void print_pipe_types() const; PT(GraphicsPipe) make_pipe(const string &type_name, diff --git a/panda/src/egg/eggCompositePrimitive.h b/panda/src/egg/eggCompositePrimitive.h index 7cbbcf0204..43d25052ea 100644 --- a/panda/src/egg/eggCompositePrimitive.h +++ b/panda/src/egg/eggCompositePrimitive.h @@ -38,6 +38,8 @@ PUBLISHED: MAKE_SEQ(get_components, get_num_components, get_component); INLINE void set_component(int i, const EggAttributes *attrib); + MAKE_PROPERTY(components, get_num_components, get_component, set_component); + INLINE bool triangulate_into(EggGroupNode *container) const; PT(EggCompositePrimitive) triangulate_in_place(); diff --git a/panda/src/egg/eggGroup.h b/panda/src/egg/eggGroup.h index fc23e97554..69d72807a9 100644 --- a/panda/src/egg/eggGroup.h +++ b/panda/src/egg/eggGroup.h @@ -284,6 +284,45 @@ PUBLISHED: INLINE bool has_scrolling_uvs(); + MAKE_PROPERTY(group_type, get_group_type, set_group_type); + MAKE_PROPERTY(billboard_type, get_billboard_type, set_billboard_type); + MAKE_PROPERTY2(billboard_center, has_billboard_center, get_billboard_center, + set_billboard_center, clear_billboard_center); + MAKE_PROPERTY(cs_type, get_cs_type, set_cs_type); + MAKE_PROPERTY(collide_flags, get_collide_flags, set_collide_flags); + MAKE_PROPERTY(collision_name, get_collision_name, set_collision_name); + MAKE_PROPERTY(dcs_type, get_dcs_type, set_dcs_type); + MAKE_PROPERTY(dart_type, get_dart_type, set_dart_type); + MAKE_PROPERTY(switch_flag, get_switch_flag, set_switch_flag); + MAKE_PROPERTY(switch_fps, get_switch_fps, set_switch_fps); + MAKE_SEQ_PROPERTY(object_types, get_num_object_types, get_object_type); + MAKE_PROPERTY(model_flag, get_model_flag, set_model_flag); + MAKE_PROPERTY(texlist_flag, get_texlist_flag, set_texlist_flag); + MAKE_PROPERTY(nofog_flag, get_nofog_flag, set_nofog_flag); + MAKE_PROPERTY(decal_flag, get_decal_flag, set_decal_flag); + MAKE_PROPERTY(direct_flag, get_direct_flag, set_direct_flag); + MAKE_PROPERTY(portal_flag, get_portal_flag, set_portal_flag); + MAKE_PROPERTY(occluder_flag, get_occluder_flag, set_occluder_flag); + MAKE_PROPERTY2(indexed_flag, has_indexed_flag, get_indexed_flag, + set_indexed_flag, clear_indexed_flag); + MAKE_PROPERTY2(collide_mask, has_collide_mask, get_collide_mask, + set_collide_mask, clear_collide_mask); + MAKE_PROPERTY2(from_collide_mask, has_from_collide_mask, get_from_collide_mask, + set_from_collide_mask, clear_from_collide_mask); + MAKE_PROPERTY2(into_collide_mask, has_into_collide_mask, get_into_collide_mask, + set_into_collide_mask, clear_into_collide_mask); + MAKE_PROPERTY(blend_mode, get_blend_mode, set_blend_mode); + MAKE_PROPERTY(blend_operand_a, get_blend_operand_a, set_blend_operand_a); + MAKE_PROPERTY(blend_operand_b, get_blend_operand_b, set_blend_operand_b); + MAKE_PROPERTY2(blend_color, has_blend_color, get_blend_color, + set_blend_color, clear_blend_color); + MAKE_PROPERTY2(lod, has_lod, get_lod, set_lod, clear_lod); + MAKE_PROPERTY(default_pose, get_default_pose, set_default_pose); + MAKE_PROPERTY(scroll_u, get_scroll_u, set_scroll_u); + MAKE_PROPERTY(scroll_v, get_scroll_v, set_scroll_v); + MAKE_PROPERTY(scroll_w, get_scroll_w, set_scroll_w); + MAKE_PROPERTY(scroll_r, get_scroll_r, set_scroll_r); + public: INLINE TagData::const_iterator tag_begin() const; INLINE TagData::const_iterator tag_end() const; diff --git a/panda/src/egg/eggNurbsCurve.h b/panda/src/egg/eggNurbsCurve.h index 29f567573a..5eb8a054c8 100644 --- a/panda/src/egg/eggNurbsCurve.h +++ b/panda/src/egg/eggNurbsCurve.h @@ -50,6 +50,11 @@ PUBLISHED: virtual void write(ostream &out, int indent_level) const; + MAKE_PROPERTY(order, get_order, set_order); + MAKE_PROPERTY(degree, get_degree); + MAKE_PROPERTY(closed, is_closed); + MAKE_SEQ_PROPERTY(knots, get_num_knots, get_knot, set_knot); + private: typedef vector_double Knots; Knots _knots; diff --git a/panda/src/egg/eggPrimitive.I b/panda/src/egg/eggPrimitive.I index 56fa2f8792..68ba3de1e3 100644 --- a/panda/src/egg/eggPrimitive.I +++ b/panda/src/egg/eggPrimitive.I @@ -354,7 +354,7 @@ clear() { /** * */ -INLINE int EggPrimitive:: +INLINE size_t EggPrimitive:: get_num_vertices() const { return size(); } @@ -365,8 +365,8 @@ get_num_vertices() const { * mess with the iterators. */ INLINE void EggPrimitive:: -set_vertex(int index, EggVertex *vertex) { - nassertv(index >= 0 && index < (int)size()); +set_vertex(size_t index, EggVertex *vertex) { + nassertv(index < size()); replace(begin() + index, vertex); } @@ -374,8 +374,8 @@ set_vertex(int index, EggVertex *vertex) { * Returns a particular index based on its index number. */ INLINE EggVertex *EggPrimitive:: -get_vertex(int index) const { - nassertr(index >= 0 && index < (int)size(), NULL); +get_vertex(size_t index) const { + nassertr(index < size(), NULL); return *(begin() + index); } diff --git a/panda/src/egg/eggPrimitive.cxx b/panda/src/egg/eggPrimitive.cxx index 630c784ed3..e3eb0b16d7 100644 --- a/panda/src/egg/eggPrimitive.cxx +++ b/panda/src/egg/eggPrimitive.cxx @@ -684,6 +684,19 @@ remove_vertex(EggVertex *vertex) { } } +/** + * Removes the indicated vertex from the primitive. + */ +void EggPrimitive:: +remove_vertex(size_t index) { + nassertv(index < size()); + iterator i = begin() + index; + + // erase() calls prepare_remove_vertex(). + erase(i); + + test_vref_integrity(); +} /** * Replaces the current primitive's list of vertices with a copy of the list diff --git a/panda/src/egg/eggPrimitive.h b/panda/src/egg/eggPrimitive.h index f1e26c0478..4e8672249e 100644 --- a/panda/src/egg/eggPrimitive.h +++ b/panda/src/egg/eggPrimitive.h @@ -105,6 +105,14 @@ PUBLISHED: INLINE void set_bface_flag(bool flag); INLINE bool get_bface_flag() const; + MAKE_PROPERTY(sort_name, get_sort_name); + MAKE_PROPERTY(shading, get_shading); + MAKE_PROPERTY(connected_shading, get_connected_shading); + + MAKE_SEQ_PROPERTY(textures, get_num_textures, get_texture); + MAKE_PROPERTY2(material, has_material, get_material, set_material, clear_material); + MAKE_PROPERTY(bface_flag, get_bface_flag, set_bface_flag); + void copy_attributes(const EggAttributes &other); void copy_attributes(const EggPrimitive &other); @@ -166,16 +174,20 @@ PUBLISHED: EggVertex *add_vertex(EggVertex *vertex); EggVertex *remove_vertex(EggVertex *vertex); + void remove_vertex(size_t index); void copy_vertices(const EggPrimitive &other); // These are shorthands if you don't want to use the iterators. - INLINE int get_num_vertices() const; - INLINE void set_vertex(int index, EggVertex *vertex); - INLINE EggVertex *get_vertex(int index) const; + INLINE size_t get_num_vertices() const; + INLINE void set_vertex(size_t index, EggVertex *vertex); + INLINE EggVertex *get_vertex(size_t index) const; MAKE_SEQ(get_vertices, get_num_vertices, get_vertex); INLINE EggVertexPool *get_pool() const; + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex, set_vertex, remove_vertex); + MAKE_PROPERTY(pool, get_pool); + virtual void write(ostream &out, int indent_level) const=0; #ifdef _DEBUG diff --git a/panda/src/event/asyncTaskManager.h b/panda/src/event/asyncTaskManager.h index e8cdc220b7..967476c4af 100644 --- a/panda/src/event/asyncTaskManager.h +++ b/panda/src/event/asyncTaskManager.h @@ -82,9 +82,13 @@ PUBLISHED: AsyncTaskCollection get_tasks() const; AsyncTaskCollection get_active_tasks() const; AsyncTaskCollection get_sleeping_tasks() const; + MAKE_PROPERTY(tasks, get_tasks); + MAKE_PROPERTY(active_tasks, get_active_tasks); + MAKE_PROPERTY(sleeping_tasks, get_sleeping_tasks); void poll(); double get_next_wake_time() const; + MAKE_PROPERTY(next_wake_time, get_next_wake_time); virtual void output(ostream &out) const; virtual void write(ostream &out, int indent_level = 0) const; diff --git a/panda/src/event/event.h b/panda/src/event/event.h index 47075883b8..e09c4c2500 100644 --- a/panda/src/event/event.h +++ b/panda/src/event/event.h @@ -55,6 +55,10 @@ PUBLISHED: void output(ostream &out) const; + MAKE_PROPERTY(name, get_name, set_name); + MAKE_SEQ_PROPERTY(parameters, get_num_parameters, get_parameter); + MAKE_PROPERTY2(receiver, has_receiver, get_receiver, set_receiver, clear_receiver); + protected: typedef pvector ParameterList; ParameterList _parameters; diff --git a/panda/src/express/virtualFileSystem.h b/panda/src/express/virtualFileSystem.h index ea37d9ebe3..22d6316ce7 100644 --- a/panda/src/express/virtualFileSystem.h +++ b/panda/src/express/virtualFileSystem.h @@ -61,6 +61,7 @@ PUBLISHED: int get_num_mounts() const; PT(VirtualFileMount) get_mount(int n) const; MAKE_SEQ(get_mounts, get_num_mounts, get_mount); + MAKE_SEQ_PROPERTY(mounts, get_num_mounts, get_mount); BLOCKING bool chdir(const Filename &new_directory); BLOCKING Filename get_cwd() const; diff --git a/panda/src/gobj/geom.h b/panda/src/gobj/geom.h index 3d6715b473..6a12e8ee98 100644 --- a/panda/src/gobj/geom.h +++ b/panda/src/gobj/geom.h @@ -95,6 +95,7 @@ PUBLISHED: void add_primitive(const GeomPrimitive *primitive); void remove_primitive(int i); void clear_primitives(); + MAKE_SEQ_PROPERTY(primitives, get_num_primitives, get_primitive, set_primitive, remove_primitive); INLINE PT(Geom) decompose() const; INLINE PT(Geom) doubleside() const; diff --git a/panda/src/gobj/geomVertexArrayFormat.h b/panda/src/gobj/geomVertexArrayFormat.h index 6d252087f3..3b8ca3a221 100644 --- a/panda/src/gobj/geomVertexArrayFormat.h +++ b/panda/src/gobj/geomVertexArrayFormat.h @@ -104,6 +104,7 @@ PUBLISHED: INLINE int get_num_columns() const; INLINE const GeomVertexColumn *get_column(int i) const; MAKE_SEQ(get_columns, get_num_columns, get_column); + MAKE_SEQ_PROPERTY(columns, get_num_columns, get_column); const GeomVertexColumn *get_column(const InternalName *name) const; const GeomVertexColumn *get_column(int start_byte, int num_bytes) const; diff --git a/panda/src/gobj/geomVertexData.h b/panda/src/gobj/geomVertexData.h index d2bf71d957..11f76df880 100644 --- a/panda/src/gobj/geomVertexData.h +++ b/panda/src/gobj/geomVertexData.h @@ -110,6 +110,7 @@ PUBLISHED: MAKE_SEQ(get_arrays, get_num_arrays, get_array); INLINE PT(GeomVertexArrayData) modify_array(int i); INLINE void set_array(int i, const GeomVertexArrayData *array); + MAKE_SEQ_PROPERTY(arrays, get_num_arrays, get_array, set_array); INLINE const TransformTable *get_transform_table() const; void set_transform_table(const TransformTable *table); diff --git a/panda/src/gobj/geomVertexFormat.h b/panda/src/gobj/geomVertexFormat.h index cfafdfddde..c7451225e2 100644 --- a/panda/src/gobj/geomVertexFormat.h +++ b/panda/src/gobj/geomVertexFormat.h @@ -120,6 +120,11 @@ PUBLISHED: MAKE_SEQ(get_morph_bases, get_num_morphs, get_morph_base); MAKE_SEQ(get_morph_deltas, get_num_morphs, get_morph_delta); + MAKE_SEQ_PROPERTY(arrays, get_num_arrays, get_array, set_array, remove_array); + MAKE_SEQ_PROPERTY(columns, get_num_columns, get_column); + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); + MAKE_SEQ_PROPERTY(vectors, get_num_vectors, get_vector); + void output(ostream &out) const; void write(ostream &out, int indent_level = 0) const; void write_with_data(ostream &out, int indent_level, diff --git a/panda/src/gobj/transformBlendTable.h b/panda/src/gobj/transformBlendTable.h index 3981278b04..55d628d349 100644 --- a/panda/src/gobj/transformBlendTable.h +++ b/panda/src/gobj/transformBlendTable.h @@ -55,7 +55,7 @@ PUBLISHED: INLINE size_t get_num_blends() const; INLINE const TransformBlend &get_blend(size_t n) const; MAKE_SEQ(get_blends, get_num_blends, get_blend); - INLINE UpdateSeq get_modified(Thread *current_thread) const; + INLINE UpdateSeq get_modified(Thread *current_thread = Thread::get_current_thread()) const; void set_blend(size_t n, const TransformBlend &blend); void remove_blend(size_t n); @@ -70,6 +70,12 @@ PUBLISHED: void write(ostream &out, int indent_level) const; + MAKE_SEQ_PROPERTY(blends, get_num_blends, get_blend, set_blend, remove_blend); + MAKE_PROPERTY(modified, get_modified); + MAKE_PROPERTY(num_transforms, get_num_transforms); + MAKE_PROPERTY(max_simultaneous_transforms, get_max_simultaneous_transforms); + MAKE_PROPERTY(rows, get_rows, set_rows); + private: class CData; diff --git a/panda/src/gobj/transformTable.h b/panda/src/gobj/transformTable.h index 48fa0abb7e..0483fced99 100644 --- a/panda/src/gobj/transformTable.h +++ b/panda/src/gobj/transformTable.h @@ -48,7 +48,7 @@ PUBLISHED: INLINE size_t get_num_transforms() const; INLINE const VertexTransform *get_transform(size_t n) const; MAKE_SEQ(get_transforms, get_num_transforms, get_transform); - INLINE UpdateSeq get_modified(Thread *current_thread) const; + INLINE UpdateSeq get_modified(Thread *current_thread = Thread::get_current_thread()) const; void set_transform(size_t n, const VertexTransform *transform); void remove_transform(size_t n); @@ -56,6 +56,10 @@ PUBLISHED: void write(ostream &out) const; + MAKE_PROPERTY(registered, is_registered); + MAKE_PROPERTY(modified, get_modified); + MAKE_SEQ_PROPERTY(transforms, get_num_transforms, get_transform, set_transform, remove_transform); + private: void do_register(); void do_unregister(); diff --git a/panda/src/linmath/lmatrix3_src.h b/panda/src/linmath/lmatrix3_src.h index 1960e586e7..fa01ef2c27 100644 --- a/panda/src/linmath/lmatrix3_src.h +++ b/panda/src/linmath/lmatrix3_src.h @@ -86,6 +86,8 @@ PUBLISHED: INLINE_LINMATH FLOATNAME(LVecBase3) get_col(int col) const; MAKE_SEQ(get_rows, size, get_row); MAKE_SEQ(get_cols, size, get_col); + MAKE_SEQ_PROPERTY(rows, size, get_row); + MAKE_SEQ_PROPERTY(cols, size, get_col); INLINE_LINMATH FLOATNAME(LVecBase2) get_row2(int row) const; INLINE_LINMATH FLOATNAME(LVecBase2) get_col2(int col) const; diff --git a/panda/src/linmath/lmatrix4_src.h b/panda/src/linmath/lmatrix4_src.h index eac09f85e9..0b9f1557e5 100644 --- a/panda/src/linmath/lmatrix4_src.h +++ b/panda/src/linmath/lmatrix4_src.h @@ -99,6 +99,8 @@ PUBLISHED: MAKE_SEQ(get_rows, size, get_row); MAKE_SEQ(get_cols, size, get_col); MAKE_SEQ(get_row3s, size, get_row3); + MAKE_SEQ_PROPERTY(rows, size, get_row); + MAKE_SEQ_PROPERTY(cols, size, get_col); // these versions inline better INLINE_LINMATH void get_row(FLOATNAME(LVecBase4) &result_vec, int row) const; diff --git a/panda/src/mathutil/boundingBox.h b/panda/src/mathutil/boundingBox.h index d65aa80dc4..53c24c521d 100644 --- a/panda/src/mathutil/boundingBox.h +++ b/panda/src/mathutil/boundingBox.h @@ -53,6 +53,9 @@ PUBLISHED: INLINE_MATHUTIL LPlane get_plane(int n) const; MAKE_SEQ(get_planes, get_num_planes, get_plane); + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); + MAKE_SEQ_PROPERTY(planes, get_num_planes, get_plane); + INLINE_MATHUTIL void set_min_max(const LPoint3 &min, const LPoint3 &max); public: diff --git a/panda/src/mathutil/boundingHexahedron.h b/panda/src/mathutil/boundingHexahedron.h index a7d55b8643..40851a219f 100644 --- a/panda/src/mathutil/boundingHexahedron.h +++ b/panda/src/mathutil/boundingHexahedron.h @@ -62,6 +62,9 @@ PUBLISHED: INLINE_MATHUTIL LPlane get_plane(int n) const; MAKE_SEQ(get_planes, get_num_planes, get_plane); + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); + MAKE_SEQ_PROPERTY(planes, get_num_planes, get_plane); + public: virtual const BoundingHexahedron *as_bounding_hexahedron() const; diff --git a/panda/src/mathutil/intersectionBoundingVolume.h b/panda/src/mathutil/intersectionBoundingVolume.h index 38759e0d29..74e750acb9 100644 --- a/panda/src/mathutil/intersectionBoundingVolume.h +++ b/panda/src/mathutil/intersectionBoundingVolume.h @@ -47,6 +47,7 @@ PUBLISHED: INLINE_MATHUTIL int get_num_components() const; INLINE_MATHUTIL const GeometricBoundingVolume *get_component(int n) const; MAKE_SEQ(get_components, get_num_components, get_component); + MAKE_SEQ_PROPERTY(components, get_num_components, get_component); void clear_components(); void add_component(const GeometricBoundingVolume *component); diff --git a/panda/src/mathutil/triangulator.h b/panda/src/mathutil/triangulator.h index 8008cef8eb..0514917cfd 100644 --- a/panda/src/mathutil/triangulator.h +++ b/panda/src/mathutil/triangulator.h @@ -40,6 +40,7 @@ PUBLISHED: INLINE int get_num_vertices() const; INLINE const LPoint2d &get_vertex(int n) const; MAKE_SEQ(get_vertices, get_num_vertices, get_vertex); + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); void clear_polygon(); void add_polygon_vertex(int index); diff --git a/panda/src/mathutil/triangulator3.h b/panda/src/mathutil/triangulator3.h index 786b2f581a..d4657668e4 100644 --- a/panda/src/mathutil/triangulator3.h +++ b/panda/src/mathutil/triangulator3.h @@ -40,6 +40,9 @@ PUBLISHED: void triangulate(); INLINE const LPlaned &get_plane() const; + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); + MAKE_PROPERTY(plane, get_plane); + private: typedef pvector Vertices3; Vertices3 _vertices3; diff --git a/panda/src/mathutil/unionBoundingVolume.h b/panda/src/mathutil/unionBoundingVolume.h index dd4366abfb..4af835eae7 100644 --- a/panda/src/mathutil/unionBoundingVolume.h +++ b/panda/src/mathutil/unionBoundingVolume.h @@ -46,6 +46,7 @@ PUBLISHED: INLINE_MATHUTIL int get_num_components() const; INLINE_MATHUTIL const GeometricBoundingVolume *get_component(int n) const; MAKE_SEQ(get_components, get_num_components, get_component); + MAKE_SEQ_PROPERTY(components, get_num_components, get_component); void clear_components(); void add_component(const GeometricBoundingVolume *component); diff --git a/panda/src/movies/microphoneAudio.h b/panda/src/movies/microphoneAudio.h index 2b617ce141..1b8e58bd03 100644 --- a/panda/src/movies/microphoneAudio.h +++ b/panda/src/movies/microphoneAudio.h @@ -34,6 +34,10 @@ class EXPCL_PANDA_MOVIES MicrophoneAudio : public MovieAudio { INLINE int get_channels() const; INLINE int get_rate() const; + MAKE_SEQ_PROPERTY(options, get_num_options, get_option); + MAKE_PROPERTY(channels, get_channels); + MAKE_PROPERTY(rate, get_rate); + virtual PT(MovieAudioCursor) open() = 0; public: diff --git a/panda/src/net/connectionManager.h b/panda/src/net/connectionManager.h index cf5772386c..c6f04ecbe0 100644 --- a/panda/src/net/connectionManager.h +++ b/panda/src/net/connectionManager.h @@ -108,6 +108,9 @@ PUBLISHED: const Interface &get_interface(int n); MAKE_SEQ(get_interfaces, get_num_interfaces, get_interface); + MAKE_PROPERTY(host_name, get_host_name); + MAKE_SEQ_PROPERTY(interfaces, get_num_interfaces, get_interface); + protected: void new_connection(const PT(Connection) &connection); virtual void flush_read_connection(Connection *connection); diff --git a/panda/src/parametrics/nurbsSurfaceEvaluator.h b/panda/src/parametrics/nurbsSurfaceEvaluator.h index ebba47bbc5..a2f468d716 100644 --- a/panda/src/parametrics/nurbsSurfaceEvaluator.h +++ b/panda/src/parametrics/nurbsSurfaceEvaluator.h @@ -79,6 +79,11 @@ PUBLISHED: void output(ostream &out) const; + MAKE_PROPERTY(u_order, get_u_order, set_u_order); + MAKE_PROPERTY(v_order, get_v_order, set_v_order); + MAKE_SEQ_PROPERTY(u_knots, get_num_u_knots, get_u_knot, set_u_knot); + MAKE_SEQ_PROPERTY(v_knots, get_num_v_knots, get_v_knot, set_v_knot); + public: typedef epvector Vert4Array; typedef pvector Vert3Array; diff --git a/panda/src/parametrics/parametricCurveCollection.cxx b/panda/src/parametrics/parametricCurveCollection.cxx index 98e9a0459e..2778161e34 100644 --- a/panda/src/parametrics/parametricCurveCollection.cxx +++ b/panda/src/parametrics/parametricCurveCollection.cxx @@ -87,6 +87,7 @@ remove_curve(ParametricCurve *curve) { return true; } + /** * Removes the indicated ParametricCurve from the collection, by its index * number. @@ -100,6 +101,20 @@ remove_curve(int index) { redraw(); } + +/** + * Replaces the indicated ParametricCurve from the collection, by its index + * number. + */ +void ParametricCurveCollection:: +set_curve(int index, ParametricCurve *curve) { + nassertv(index >= 0 && index < (int)_curves.size()); + prepare_remove_curve(_curves[index]); + prepare_add_curve(curve); + _curves[index] = curve; + redraw(); +} + /** * Returns true if the indicated ParametricCurve appears in this collection, * false otherwise. diff --git a/panda/src/parametrics/parametricCurveCollection.h b/panda/src/parametrics/parametricCurveCollection.h index 446c0a4e8d..42a84c7861 100644 --- a/panda/src/parametrics/parametricCurveCollection.h +++ b/panda/src/parametrics/parametricCurveCollection.h @@ -44,6 +44,7 @@ PUBLISHED: int add_curves(PandaNode *node); bool remove_curve(ParametricCurve *curve); void remove_curve(int index); + void set_curve(int index, ParametricCurve *curve); bool has_curve(ParametricCurve *curve) const; void clear(); void clear_timewarps(); @@ -61,6 +62,13 @@ PUBLISHED: INLINE PN_stdfloat get_max_t() const; + MAKE_SEQ_PROPERTY(curves, get_num_curves, get_curve, set_curve, remove_curve); + MAKE_PROPERTY(xyz_curve, get_xyz_curve); + MAKE_PROPERTY(hpr_curve, get_hpr_curve); + MAKE_PROPERTY(default_curve, get_default_curve); + MAKE_SEQ_PROPERTY(timewarp_curves, get_num_timewarps, get_timewarp_curve); + MAKE_PROPERTY(max_t, get_max_t); + void make_even(PN_stdfloat max_t, PN_stdfloat segments_per_unit); void face_forward(PN_stdfloat segments_per_unit); void reset_max_t(PN_stdfloat max_t); diff --git a/panda/src/pgraph/camera.h b/panda/src/pgraph/camera.h index 8d30d146da..826000fbae 100644 --- a/panda/src/pgraph/camera.h +++ b/panda/src/pgraph/camera.h @@ -55,6 +55,7 @@ PUBLISHED: INLINE int get_num_display_regions() const; INLINE DisplayRegionBase *get_display_region(int n) const; MAKE_SEQ(get_display_regions, get_num_display_regions, get_display_region); + MAKE_SEQ_PROPERTY(display_regions, get_num_display_regions, get_display_region); INLINE void set_camera_mask(DrawMask mask); INLINE DrawMask get_camera_mask() const; diff --git a/panda/src/pgraph/loaderFileTypeRegistry.h b/panda/src/pgraph/loaderFileTypeRegistry.h index 8ae64a51ea..6fedc09406 100644 --- a/panda/src/pgraph/loaderFileTypeRegistry.h +++ b/panda/src/pgraph/loaderFileTypeRegistry.h @@ -39,6 +39,7 @@ PUBLISHED: int get_num_types() const; LoaderFileType *get_type(int n) const; MAKE_SEQ(get_types, get_num_types, get_type); + MAKE_SEQ_PROPERTY(types, get_num_types, get_type); LoaderFileType *get_type_from_extension(const string &extension); void write(ostream &out, int indent_level = 0) const; diff --git a/panda/src/pgraph/nodePath.h b/panda/src/pgraph/nodePath.h index 4f39aa28bb..78c2520faa 100644 --- a/panda/src/pgraph/nodePath.h +++ b/panda/src/pgraph/nodePath.h @@ -203,10 +203,13 @@ PUBLISHED: int get_num_nodes(Thread *current_thread = Thread::get_current_thread()) const; PandaNode *get_node(int index, Thread *current_thread = Thread::get_current_thread()) const; MAKE_SEQ(get_nodes, get_num_nodes, get_node); + MAKE_SEQ_PROPERTY(nodes, get_num_nodes, get_node); NodePath get_ancestor(int index, Thread *current_thread = Thread::get_current_thread()) const; MAKE_SEQ(get_ancestors, get_num_nodes, get_ancestor); + MAKE_SEQ_PROPERTY(ancestors, get_num_nodes, get_ancestor); INLINE ErrorType get_error_type() const; + MAKE_PROPERTY(error_type, get_error_type); INLINE PandaNode *get_top_node(Thread *current_thread = Thread::get_current_thread()) const; NodePath get_top(Thread *current_thread = Thread::get_current_thread()) const; @@ -228,12 +231,18 @@ PUBLISHED: INLINE NodePath get_child(int n, Thread *current_thread = Thread::get_current_thread()) const; NodePathCollection get_stashed_children(Thread *current_thread = Thread::get_current_thread()) const; + MAKE_PROPERTY(children, get_children); + MAKE_PROPERTY(stashed_children, get_stashed_children); + INLINE int count_num_descendants() const; INLINE bool has_parent(Thread *current_thread = Thread::get_current_thread()) const; INLINE NodePath get_parent(Thread *current_thread = Thread::get_current_thread()) const; int get_sort(Thread *current_thread = Thread::get_current_thread()) const; + MAKE_PROPERTY2(parent, has_parent, get_parent); + MAKE_PROPERTY(sort, get_sort); + NodePath find(const string &path) const; NodePath find_path_to(PandaNode *node) const; NodePathCollection find_all_matches(const string &path) const; @@ -910,6 +919,7 @@ PUBLISHED: INLINE void set_name(const string &name); INLINE string get_name() const; + MAKE_PROPERTY(name, get_name, set_name); BLOCKING bool write_bam_file(const Filename &filename) const; BLOCKING bool write_bam_stream(ostream &out) const; diff --git a/panda/src/pgraph/occluderNode.I b/panda/src/pgraph/occluderNode.I index 11ecea9b5c..f84b864b68 100644 --- a/panda/src/pgraph/occluderNode.I +++ b/panda/src/pgraph/occluderNode.I @@ -31,7 +31,7 @@ set_vertices(const LPoint3 &v0, const LPoint3 &v1, * Returns the number of vertices in the occluder polygon. This should always * return 4. */ -INLINE int OccluderNode:: +INLINE size_t OccluderNode:: get_num_vertices() const { return _vertices.size(); } @@ -40,11 +40,20 @@ get_num_vertices() const { * Returns the nth vertex of the occluder polygon. */ INLINE const LPoint3 &OccluderNode:: -get_vertex(int n) const { - nassertr(n >= 0 && n < (int)_vertices.size(), LPoint3::zero()); +get_vertex(size_t n) const { + nassertr(n < _vertices.size(), LPoint3::zero()); return _vertices[n]; } +/** + * Sets the nth vertex of the occluder polygon. + */ +INLINE void OccluderNode:: +set_vertex(size_t n, const LPoint3 &v) { + nassertv(n < _vertices.size()); + _vertices[n] = v; +} + /** * If true, the back-face will also be used to occlude */ diff --git a/panda/src/pgraph/occluderNode.h b/panda/src/pgraph/occluderNode.h index 92e15e4b8d..e9d8c67165 100644 --- a/panda/src/pgraph/occluderNode.h +++ b/panda/src/pgraph/occluderNode.h @@ -53,10 +53,15 @@ PUBLISHED: INLINE PN_stdfloat get_min_coverage(); INLINE void set_vertices(const LPoint3 &v0, const LPoint3 &v1, const LPoint3 &v2, const LPoint3 &v3); - INLINE int get_num_vertices() const; - INLINE const LPoint3 &get_vertex(int n) const; + INLINE size_t get_num_vertices() const; + INLINE const LPoint3 &get_vertex(size_t n) const; + INLINE void set_vertex(size_t n, const LPoint3 &v); MAKE_SEQ(get_vertices, get_num_vertices, get_vertex); + MAKE_PROPERTY(double_sided, is_double_sided, set_double_sided); + MAKE_PROPERTY(min_coverage, get_min_coverage, set_min_coverage); + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex, set_vertex); + protected: virtual void compute_internal_bounds(CPT(BoundingVolume) &internal_bounds, int &internal_vertices, diff --git a/panda/src/pgraph/pandaNode.I b/panda/src/pgraph/pandaNode.I index c493ef08f3..fa60e11b41 100644 --- a/panda/src/pgraph/pandaNode.I +++ b/panda/src/pgraph/pandaNode.I @@ -932,7 +932,7 @@ operator = (PandaNode::Children &&from) NOEXCEPT { /** * Returns the number of children of the node. */ -INLINE int PandaNode::Children:: +INLINE size_t PandaNode::Children:: get_num_children() const { nassertr(_down != (Down *)NULL, 0); return _down->size(); @@ -942,9 +942,9 @@ get_num_children() const { * Returns the nth child of the node. */ INLINE PandaNode *PandaNode::Children:: -get_child(int n) const { +get_child(size_t n) const { nassertr(_down != (Down *)NULL, NULL); - nassertr(n >= 0 && n < (int)_down->size(), NULL); + nassertr(n < (size_t)_down->size(), NULL); return (*_down)[n].get_child(); } @@ -953,9 +953,9 @@ get_child(int n) const { * number that was passed to add_child()). See get_num_children(). */ INLINE int PandaNode::Children:: -get_child_sort(int n) const { +get_child_sort(size_t n) const { nassertr(_down != (Down *)NULL, -1); - nassertr(n >= 0 && n < (int)_down->size(), -1); + nassertr(n < _down->size(), -1); return (*_down)[n].get_sort(); } @@ -1014,7 +1014,7 @@ operator = (PandaNode::Stashed &&from) NOEXCEPT { /** * Returns the number of stashed children of the node. */ -INLINE int PandaNode::Stashed:: +INLINE size_t PandaNode::Stashed:: get_num_stashed() const { nassertr(_stashed != (Down *)NULL, 0); return _stashed->size(); @@ -1024,9 +1024,9 @@ get_num_stashed() const { * Returns the nth stashed child of the node. */ INLINE PandaNode *PandaNode::Stashed:: -get_stashed(int n) const { +get_stashed(size_t n) const { nassertr(_stashed != (Down *)NULL, NULL); - nassertr(n >= 0 && n < (int)_stashed->size(), NULL); + nassertr(n < _stashed->size(), NULL); return (*_stashed)[n].get_child(); } @@ -1035,9 +1035,9 @@ get_stashed(int n) const { * number that was passed to add_child()). See get_num_stashed(). */ INLINE int PandaNode::Stashed:: -get_stashed_sort(int n) const { +get_stashed_sort(size_t n) const { nassertr(_stashed != (Down *)NULL, -1); - nassertr(n >= 0 && n < (int)_stashed->size(), -1); + nassertr(n < _stashed->size(), -1); return (*_stashed)[n].get_sort(); } @@ -1096,7 +1096,7 @@ operator = (PandaNode::Parents &&from) NOEXCEPT { /** * Returns the number of parents of the node. */ -INLINE int PandaNode::Parents:: +INLINE size_t PandaNode::Parents:: get_num_parents() const { nassertr(_up != (Up *)NULL, 0); return _up->size(); @@ -1106,9 +1106,9 @@ get_num_parents() const { * Returns the nth parent of the node. */ INLINE PandaNode *PandaNode::Parents:: -get_parent(int n) const { +get_parent(size_t n) const { nassertr(_up != (Up *)NULL, NULL); - nassertr(n >= 0 && n < (int)_up->size(), NULL); + nassertr(n < _up->size(), NULL); return (*_up)[n].get_parent(); } diff --git a/panda/src/pgraph/pandaNode.h b/panda/src/pgraph/pandaNode.h index 94a5912e8c..05bbcaadba 100644 --- a/panda/src/pgraph/pandaNode.h +++ b/panda/src/pgraph/pandaNode.h @@ -680,10 +680,10 @@ private: static PStatCollector _reset_prev_pcollector; static PStatCollector _update_bounds_pcollector; -public: +PUBLISHED: // This class is returned from get_children(). Use it to walk through the // list of children. This is faster, and safer, than walking through the - // children one at a time via get_num_children()get_child(), since the list + // children one at a time via get_num_children()/get_child(), since the list // of children is saved out ahead of time, rather than having to reacquire // the lock with each iteration, or to keep the lock held for the entire // pass. @@ -699,9 +699,13 @@ public: INLINE void operator = (Children &&from) NOEXCEPT; #endif - INLINE int get_num_children() const; - INLINE PandaNode *get_child(int n) const; - INLINE int get_child_sort(int n) const; + INLINE size_t get_num_children() const; + INLINE PandaNode *get_child(size_t n) const; + INLINE int get_child_sort(size_t n) const; + + PUBLISHED: + INLINE PandaNode *operator [](size_t n) const { return get_child(n); } + INLINE size_t size() const { return get_num_children(); } private: CPT(Down) _down; @@ -720,9 +724,13 @@ public: INLINE void operator = (Stashed &&from) NOEXCEPT; #endif - INLINE int get_num_stashed() const; - INLINE PandaNode *get_stashed(int n) const; - INLINE int get_stashed_sort(int n) const; + INLINE size_t get_num_stashed() const; + INLINE PandaNode *get_stashed(size_t n) const; + INLINE int get_stashed_sort(size_t n) const; + + PUBLISHED: + INLINE PandaNode *operator [](size_t n) const { return get_stashed(n); } + INLINE size_t size() const { return get_num_stashed(); } private: CPT(Down) _stashed; @@ -741,13 +749,18 @@ public: INLINE void operator = (Parents &&from) NOEXCEPT; #endif - INLINE int get_num_parents() const; - INLINE PandaNode *get_parent(int n) const; + INLINE size_t get_num_parents() const; + INLINE PandaNode *get_parent(size_t n) const; + + PUBLISHED: + INLINE PandaNode *operator [](size_t n) const { return get_parent(n); } + INLINE size_t size() const { return get_num_parents(); } private: CPT(Up) _up; }; +public: INLINE Children get_children(Thread *current_thread = Thread::get_current_thread()) const; INLINE Stashed get_stashed(Thread *current_thread = Thread::get_current_thread()) const; INLINE Parents get_parents(Thread *current_thread = Thread::get_current_thread()) const; @@ -755,6 +768,11 @@ public: typedef bool SceneRootFunc(const PandaNode *); static void set_scene_root_func(SceneRootFunc *func); +PUBLISHED: + MAKE_PROPERTY(children, get_children); + MAKE_PROPERTY(stashed, get_stashed); + MAKE_PROPERTY(parents, get_parents); + private: static SceneRootFunc *_scene_root_func; diff --git a/panda/src/pgraph/portalNode.h b/panda/src/pgraph/portalNode.h index b315b8abff..3b5c9ae7a3 100644 --- a/panda/src/pgraph/portalNode.h +++ b/panda/src/pgraph/portalNode.h @@ -86,6 +86,17 @@ PUBLISHED: // void draw () const; + MAKE_PROPERTY(into_portal_mask, get_into_portal_mask, set_into_portal_mask); + MAKE_PROPERTY(from_portal_mask, get_from_portal_mask, set_from_portal_mask); + MAKE_PROPERTY(portal_geom, get_portal_geom, set_portal_geom); + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); + MAKE_PROPERTY(cell_in, get_cell_in, set_cell_in); + MAKE_PROPERTY(cell_out, get_cell_out, set_cell_out); + MAKE_PROPERTY(clip_plane, is_clip_plane, set_clip_plane); + MAKE_PROPERTY(visible, is_visible, set_visible); + MAKE_PROPERTY(max_depth, get_max_depth, set_max_depth); + MAKE_PROPERTY(open, is_open, set_open); + protected: virtual void compute_internal_bounds(CPT(BoundingVolume) &internal_bounds, int &internal_vertices, diff --git a/panda/src/pgraphnodes/computeNode.I b/panda/src/pgraphnodes/computeNode.I index 80d93e73ac..06e022515e 100644 --- a/panda/src/pgraphnodes/computeNode.I +++ b/panda/src/pgraphnodes/computeNode.I @@ -45,7 +45,7 @@ clear_dispatches() { /** * Returns the number of times add_dispatch has been called on this object. */ -INLINE int ComputeNode:: +INLINE size_t ComputeNode:: get_num_dispatches() const { Dispatcher::CDReader cdata(_dispatcher->_cycler); return cdata->_dispatches.size(); @@ -55,12 +55,32 @@ get_num_dispatches() const { * Returns the group counts of the nth dispatch associated with this object. */ INLINE const LVecBase3i &ComputeNode:: -get_dispatch(int n) const { +get_dispatch(size_t n) const { Dispatcher::CDReader cdata(_dispatcher->_cycler); - nassertr(n >= 0 && (size_t)n < cdata->_dispatches.size(), LVecBase3i::zero()); + nassertr(n < cdata->_dispatches.size(), LVecBase3i::zero()); return cdata->_dispatches[n]; } +/** + * Sets the group counts of the nth dispatch associated with this object. + */ +INLINE void ComputeNode:: +set_dispatch(size_t n, const LVecBase3i &dispatch) { + Dispatcher::CDWriter cdata(_dispatcher->_cycler); + nassertv(n < cdata->_dispatches.size()); + cdata->_dispatches[n] = dispatch; +} + +/** + * Erases the given dispatch index from the list. + */ +INLINE void ComputeNode:: +remove_dispatch(size_t n) { + Dispatcher::CDWriter cdata(_dispatcher->_cycler); + nassertv(n < cdata->_dispatches.size()); + cdata->_dispatches.erase(cdata->_dispatches.begin() + n); +} + /** * */ diff --git a/panda/src/pgraphnodes/computeNode.h b/panda/src/pgraphnodes/computeNode.h index feeea69006..3210fba40f 100644 --- a/panda/src/pgraphnodes/computeNode.h +++ b/panda/src/pgraphnodes/computeNode.h @@ -31,11 +31,14 @@ PUBLISHED: INLINE void add_dispatch(const LVecBase3i &num_groups); INLINE void add_dispatch(int num_groups_x, int num_groups_y, int num_groups_z); - INLINE int get_num_dispatches() const; - INLINE const LVecBase3i &get_dispatch(int i) const; + INLINE size_t get_num_dispatches() const; + INLINE const LVecBase3i &get_dispatch(size_t i) const; + INLINE void set_dispatch(size_t i, const LVecBase3i &num_groups); + INLINE void remove_dispatch(size_t i); INLINE void clear_dispatches(); MAKE_SEQ(get_dispatches, get_num_dispatches, get_dispatch); + MAKE_SEQ_PROPERTY(dispatches, get_num_dispatches, get_dispatch, set_dispatch, remove_dispatch); public: ComputeNode(const ComputeNode ©); diff --git a/panda/src/pgraphnodes/lodNode.h b/panda/src/pgraphnodes/lodNode.h index 50b17d26e1..6348b4c23a 100644 --- a/panda/src/pgraphnodes/lodNode.h +++ b/panda/src/pgraphnodes/lodNode.h @@ -75,6 +75,13 @@ PUBLISHED: INLINE void set_center(const LPoint3 ¢er); INLINE const LPoint3 &get_center() const; + MAKE_SEQ_PROPERTY(ins, get_num_switches, get_in); + MAKE_SEQ_PROPERTY(outs, get_num_switches, get_out); + MAKE_PROPERTY(lowest_switch, get_lowest_switch); + MAKE_PROPERTY(highest_switch, get_highest_switch); + MAKE_PROPERTY(lod_scale, get_lod_scale, set_lod_scale); + MAKE_PROPERTY(center, get_center, set_center); + void show_switch(int index); void show_switch(int index, const LColor &color); void hide_switch(int index); diff --git a/panda/src/physics/forceNode.I b/panda/src/physics/forceNode.I index 43ac5be849..8fd6845727 100644 --- a/panda/src/physics/forceNode.I +++ b/panda/src/physics/forceNode.I @@ -23,16 +23,15 @@ clear() { */ INLINE BaseForce *ForceNode:: -get_force(int index) const { - nassertr(index >= 0 && index < (int)_forces.size(), - (BaseForce *) NULL); +get_force(size_t index) const { + nassertr(index < _forces.size(), (BaseForce *) NULL); return _forces[index]; } /** */ -INLINE int ForceNode:: +INLINE size_t ForceNode:: get_num_forces() const { return _forces.size(); } diff --git a/panda/src/physics/forceNode.cxx b/panda/src/physics/forceNode.cxx index 09a0b3bc27..c5a998a47e 100644 --- a/panda/src/physics/forceNode.cxx +++ b/panda/src/physics/forceNode.cxx @@ -64,6 +64,20 @@ add_forces_from(const ForceNode &other) { } } +/** + * replace operation + */ +void ForceNode:: +set_force(size_t index, BaseForce *force) { + nassertv(index <= _forces.size()); + + _forces[index]->_force_node = (ForceNode *)NULL; + _forces[index]->_force_node_path.clear(); + _forces[index] = force; + force->_force_node = this; + force->_force_node_path = NodePath(this); +} + /** * remove operation */ @@ -81,8 +95,8 @@ remove_force(BaseForce *f) { * remove operation */ void ForceNode:: -remove_force(int index) { - nassertv(index >= 0 && index <= (int)_forces.size()); +remove_force(size_t index) { + nassertv(index <= _forces.size()); pvector< PT(BaseForce) >::iterator remove; remove = _forces.begin() + index; diff --git a/panda/src/physics/forceNode.h b/panda/src/physics/forceNode.h index 2000e9b0bc..574987ff1a 100644 --- a/panda/src/physics/forceNode.h +++ b/panda/src/physics/forceNode.h @@ -28,14 +28,17 @@ class EXPCL_PANDAPHYSICS ForceNode : public PandaNode { PUBLISHED: ForceNode(const string &name); INLINE void clear(); - INLINE BaseForce *get_force(int index) const; - INLINE int get_num_forces() const; + INLINE BaseForce *get_force(size_t index) const; + INLINE size_t get_num_forces() const; MAKE_SEQ(get_forces, get_num_forces, get_force); INLINE void add_force(BaseForce *force); void add_forces_from(const ForceNode &other); - void remove_force(BaseForce *f); - void remove_force(int index); + void set_force(size_t index, BaseForce *force); + void remove_force(BaseForce *force); + void remove_force(size_t index); + + MAKE_SEQ_PROPERTY(forces, get_num_forces, get_force, set_force, remove_force); virtual void output(ostream &out) const; virtual void write_forces(ostream &out, unsigned int indent=0) const; diff --git a/panda/src/physics/physicalNode.I b/panda/src/physics/physicalNode.I index 6296926055..92e5961ae8 100644 --- a/panda/src/physics/physicalNode.I +++ b/panda/src/physics/physicalNode.I @@ -23,16 +23,15 @@ clear() { */ INLINE Physical *PhysicalNode:: -get_physical(int index) const { - nassertr(index >= 0 && index < (int)_physicals.size(), - (Physical *) NULL); +get_physical(size_t index) const { + nassertr(index < _physicals.size(), (Physical *) NULL); return _physicals[index]; } /** */ -INLINE int PhysicalNode:: +INLINE size_t PhysicalNode:: get_num_physicals() const { return _physicals.size(); } diff --git a/panda/src/physics/physicalNode.cxx b/panda/src/physics/physicalNode.cxx index e10c29b625..381ceeff4f 100644 --- a/panda/src/physics/physicalNode.cxx +++ b/panda/src/physics/physicalNode.cxx @@ -63,6 +63,18 @@ add_physicals_from(const PhysicalNode &other) { } } +/** + * replace operation + */ +void PhysicalNode:: +set_physical(size_t index, Physical *physical) { + nassertv(index <= _physicals.size()); + + _physicals[index]->_physical_node = (PhysicalNode *) NULL; + _physicals[index] = physical; + physical->_physical_node = this; +} + /** * remove operation */ @@ -80,8 +92,8 @@ remove_physical(Physical *physical) { * remove operation */ void PhysicalNode:: -remove_physical(int index) { - nassertv(index >= 0 && index <= (int)_physicals.size()); +remove_physical(size_t index) { + nassertv(index <= _physicals.size()); pvector< PT(Physical) >::iterator remove; remove = _physicals.begin() + index; diff --git a/panda/src/physics/physicalNode.h b/panda/src/physics/physicalNode.h index 80e925dc13..5ab9f36372 100644 --- a/panda/src/physics/physicalNode.h +++ b/panda/src/physics/physicalNode.h @@ -29,14 +29,17 @@ class EXPCL_PANDAPHYSICS PhysicalNode : public PandaNode { PUBLISHED: PhysicalNode(const string &name); INLINE void clear(); - INLINE Physical *get_physical(int index) const; - INLINE int get_num_physicals() const; + INLINE Physical *get_physical(size_t index) const; + INLINE size_t get_num_physicals() const; MAKE_SEQ(get_physicals, get_num_physicals, get_physical); INLINE void add_physical(Physical *physical); void add_physicals_from(const PhysicalNode &other); + void set_physical(size_t index, Physical *physical); void remove_physical(Physical *physical); - void remove_physical(int index); + void remove_physical(size_t index); + + MAKE_SEQ_PROPERTY(physicals, get_num_physicals, get_physical, set_physical, remove_physical); virtual void write(ostream &out, unsigned int indent=0) const; diff --git a/panda/src/pnmimage/pnmFileType.h b/panda/src/pnmimage/pnmFileType.h index d6433ef304..48e4a533fb 100644 --- a/panda/src/pnmimage/pnmFileType.h +++ b/panda/src/pnmimage/pnmFileType.h @@ -44,6 +44,10 @@ PUBLISHED: MAKE_SEQ(get_extensions, get_num_extensions, get_extension); virtual string get_suggested_extension() const; + MAKE_PROPERTY(name, get_name); + MAKE_SEQ_PROPERTY(extensions, get_num_extensions, get_extension); + MAKE_PROPERTY(suggested_extension, get_suggested_extension); + public: virtual bool has_magic_number() const; virtual bool matches_magic_number(const string &magic_number) const; diff --git a/panda/src/pnmimage/pnmFileTypeRegistry.h b/panda/src/pnmimage/pnmFileTypeRegistry.h index 35c8bcbb20..aec9327d49 100644 --- a/panda/src/pnmimage/pnmFileTypeRegistry.h +++ b/panda/src/pnmimage/pnmFileTypeRegistry.h @@ -38,6 +38,7 @@ PUBLISHED: int get_num_types() const; PNMFileType *get_type(int n) const; MAKE_SEQ(get_types, get_num_types, get_type); + MAKE_SEQ_PROPERTY(types, get_num_types, get_type); PNMFileType *get_type_from_extension(const string &filename) const; PNMFileType *get_type_from_magic_number(const string &magic_number) const; diff --git a/panda/src/pstatclient/pStatClient.h b/panda/src/pstatclient/pStatClient.h index c88ef8f5af..05d5dbadea 100644 --- a/panda/src/pstatclient/pStatClient.h +++ b/panda/src/pstatclient/pStatClient.h @@ -80,6 +80,14 @@ PUBLISHED: INLINE double get_real_time() const; + MAKE_PROPERTY(client_name, get_client_name, set_client_name); + MAKE_PROPERTY(max_rate, get_max_rate, set_max_rate); + MAKE_SEQ_PROPERTY(collectors, get_num_collectors, get_collector); + MAKE_SEQ_PROPERTY(threads, get_num_threads, get_thread); + MAKE_PROPERTY(main_thread, get_main_thread); + MAKE_PROPERTY(current_thread, get_current_thread); + MAKE_PROPERTY(real_time, get_real_time); + INLINE static bool connect(const string &hostname = string(), int port = -1); INLINE static void disconnect(); INLINE static bool is_connected(); diff --git a/panda/src/putil/modifierButtons.h b/panda/src/putil/modifierButtons.h index d409b30f35..c95791b2a0 100644 --- a/panda/src/putil/modifierButtons.h +++ b/panda/src/putil/modifierButtons.h @@ -51,6 +51,7 @@ PUBLISHED: INLINE int get_num_buttons() const; INLINE ButtonHandle get_button(int index) const; MAKE_SEQ(get_buttons, get_num_buttons, get_button); + MAKE_SEQ_PROPERTY(buttons, get_num_buttons, get_button); bool button_down(ButtonHandle button); bool button_up(ButtonHandle button); diff --git a/panda/src/text/dynamicTextFont.h b/panda/src/text/dynamicTextFont.h index 773f3a7467..c418ea34c3 100644 --- a/panda/src/text/dynamicTextFont.h +++ b/panda/src/text/dynamicTextFont.h @@ -114,6 +114,7 @@ PUBLISHED: int get_num_pages() const; DynamicTextPage *get_page(int n) const; MAKE_SEQ(get_pages, get_num_pages, get_page); + MAKE_SEQ_PROPERTY(pages, get_num_pages, get_page); int garbage_collect(); void clear(); diff --git a/panda/src/tform/buttonThrower.h b/panda/src/tform/buttonThrower.h index a772326fd6..009055fe3b 100644 --- a/panda/src/tform/buttonThrower.h +++ b/panda/src/tform/buttonThrower.h @@ -77,6 +77,7 @@ PUBLISHED: int get_num_parameters() const; EventParameter get_parameter(int n) const; MAKE_SEQ(get_parameters, get_num_parameters, get_parameter); + MAKE_SEQ_PROPERTY(parameters, get_num_parameters, get_parameter); INLINE const ModifierButtons &get_modifier_buttons() const; INLINE void set_modifier_buttons(const ModifierButtons &mods); diff --git a/panda/src/tform/mouseWatcherBase.h b/panda/src/tform/mouseWatcherBase.h index 962adc53b5..8836f57023 100644 --- a/panda/src/tform/mouseWatcherBase.h +++ b/panda/src/tform/mouseWatcherBase.h @@ -42,10 +42,12 @@ PUBLISHED: void sort_regions(); bool is_sorted() const; + MAKE_PROPERTY(sorted, is_sorted); int get_num_regions() const; MouseWatcherRegion *get_region(int n) const; MAKE_SEQ(get_regions, get_num_regions, get_region); + MAKE_SEQ_PROPERTY(regions, get_num_regions, get_region); void output(ostream &out) const; void write(ostream &out, int indent_level = 0) const;