From 684992cf8f8fc3f976a4202be69fdafe60557c54 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 1 Mar 2021 13:41:11 +0100 Subject: [PATCH] cppparser: C++20 features: spaceship operator, char8_t, constinit/eval --- dtool/src/cppparser/cppBison.cxx.prebuilt | 9746 +++++++++--------- dtool/src/cppparser/cppBison.h.prebuilt | 565 +- dtool/src/cppparser/cppBison.yxx | 54 +- dtool/src/cppparser/cppExpression.cxx | 22 +- dtool/src/cppparser/cppInstance.cxx | 6 + dtool/src/cppparser/cppInstance.h | 4 +- dtool/src/cppparser/cppPreprocessor.cxx | 10 +- dtool/src/cppparser/cppSimpleType.cxx | 4 + dtool/src/cppparser/cppSimpleType.h | 1 + dtool/src/interrogate/interrogateBuilder.cxx | 5 + dtool/src/interrogate/typeManager.cxx | 4 +- dtool/src/parser-inc/compare | 23 + 12 files changed, 5213 insertions(+), 5231 deletions(-) create mode 100644 dtool/src/parser-inc/compare diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index a2d99d690b..162037033a 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.5.3. */ +/* A Bison parser, made by GNU Bison 3.7.3. */ /* Bison implementation for Yacc-like parsers in C @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ - /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.5.3" +#define YYBISON_VERSION "3.7.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -269,7 +270,7 @@ pop_struct() { } -#line 273 "built/tmp/cppBison.yxx.c" +#line 274 "built/tmp/cppBison.yxx.c" # ifndef YY_CAST # ifdef __cplusplus @@ -292,346 +293,302 @@ pop_struct() { # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED -# define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int cppyydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - REAL = 258, - INTEGER = 259, - CHAR_TOK = 260, - SIMPLE_STRING = 261, - SIMPLE_IDENTIFIER = 262, - STRING_LITERAL = 263, - CUSTOM_LITERAL = 264, - IDENTIFIER = 265, - TYPENAME_IDENTIFIER = 266, - TYPEPACK_IDENTIFIER = 267, - SCOPING = 268, - TYPEDEFNAME = 269, - ELLIPSIS = 270, - OROR = 271, - ANDAND = 272, - EQCOMPARE = 273, - NECOMPARE = 274, - LECOMPARE = 275, - GECOMPARE = 276, - LSHIFT = 277, - RSHIFT = 278, - POINTSAT_STAR = 279, - DOT_STAR = 280, - UNARY = 281, - UNARY_NOT = 282, - UNARY_NEGATE = 283, - UNARY_MINUS = 284, - UNARY_PLUS = 285, - UNARY_STAR = 286, - UNARY_REF = 287, - POINTSAT = 288, - SCOPE = 289, - PLUSPLUS = 290, - MINUSMINUS = 291, - TIMESEQUAL = 292, - DIVIDEEQUAL = 293, - MODEQUAL = 294, - PLUSEQUAL = 295, - MINUSEQUAL = 296, - OREQUAL = 297, - ANDEQUAL = 298, - XOREQUAL = 299, - LSHIFTEQUAL = 300, - RSHIFTEQUAL = 301, - ATTR_LEFT = 302, - ATTR_RIGHT = 303, - KW_ALIGNAS = 304, - KW_ALIGNOF = 305, - KW_AUTO = 306, - KW_BEGIN_PUBLISH = 307, - KW_BLOCKING = 308, - KW_BOOL = 309, - KW_CATCH = 310, - KW_CHAR = 311, - KW_CHAR16_T = 312, - KW_CHAR32_T = 313, - KW_CLASS = 314, - KW_CONST = 315, - KW_CONSTEXPR = 316, - KW_CONST_CAST = 317, - KW_DECLTYPE = 318, - KW_DEFAULT = 319, - KW_DELETE = 320, - KW_DOUBLE = 321, - KW_DYNAMIC_CAST = 322, - KW_ELSE = 323, - KW_END_PUBLISH = 324, - KW_ENUM = 325, - KW_EXTENSION = 326, - KW_EXTERN = 327, - KW_EXPLICIT = 328, - KW_PUBLISHED = 329, - KW_FALSE = 330, - KW_FINAL = 331, - KW_FLOAT = 332, - KW_FRIEND = 333, - KW_FOR = 334, - KW_GOTO = 335, - KW_HAS_VIRTUAL_DESTRUCTOR = 336, - KW_IF = 337, - KW_INLINE = 338, - KW_INT = 339, - KW_IS_ABSTRACT = 340, - KW_IS_BASE_OF = 341, - KW_IS_CLASS = 342, - KW_IS_CONSTRUCTIBLE = 343, - KW_IS_CONVERTIBLE_TO = 344, - KW_IS_DESTRUCTIBLE = 345, - KW_IS_EMPTY = 346, - KW_IS_ENUM = 347, - KW_IS_FINAL = 348, - KW_IS_FUNDAMENTAL = 349, - KW_IS_POD = 350, - KW_IS_POLYMORPHIC = 351, - KW_IS_STANDARD_LAYOUT = 352, - KW_IS_TRIVIAL = 353, - KW_IS_UNION = 354, - KW_LONG = 355, - KW_MAKE_MAP_KEYS_SEQ = 356, - KW_MAKE_MAP_PROPERTY = 357, - KW_MAKE_PROPERTY = 358, - KW_MAKE_PROPERTY2 = 359, - KW_MAKE_SEQ = 360, - KW_MAKE_SEQ_PROPERTY = 361, - KW_MUTABLE = 362, - KW_NAMESPACE = 363, - KW_NEW = 364, - KW_NOEXCEPT = 365, - KW_NULLPTR = 366, - KW_OPERATOR = 367, - KW_OVERRIDE = 368, - KW_PRIVATE = 369, - KW_PROTECTED = 370, - KW_PUBLIC = 371, - KW_REGISTER = 372, - KW_REINTERPRET_CAST = 373, - KW_RETURN = 374, - KW_SHORT = 375, - KW_SIGNED = 376, - KW_SIZEOF = 377, - KW_STATIC = 378, - KW_STATIC_ASSERT = 379, - KW_STATIC_CAST = 380, - KW_STRUCT = 381, - KW_TEMPLATE = 382, - KW_THREAD_LOCAL = 383, - KW_THROW = 384, - KW_TRUE = 385, - KW_TRY = 386, - KW_TYPEDEF = 387, - KW_TYPEID = 388, - KW_TYPENAME = 389, - KW_UNDERLYING_TYPE = 390, - KW_UNION = 391, - KW_UNSIGNED = 392, - KW_USING = 393, - KW_VIRTUAL = 394, - KW_VOID = 395, - KW_VOLATILE = 396, - KW_WCHAR_T = 397, - KW_WHILE = 398, - START_CPP = 399, - START_CONST_EXPR = 400, - START_TYPE = 401 - }; -#endif -/* Tokens. */ -#define REAL 258 -#define INTEGER 259 -#define CHAR_TOK 260 -#define SIMPLE_STRING 261 -#define SIMPLE_IDENTIFIER 262 -#define STRING_LITERAL 263 -#define CUSTOM_LITERAL 264 -#define IDENTIFIER 265 -#define TYPENAME_IDENTIFIER 266 -#define TYPEPACK_IDENTIFIER 267 -#define SCOPING 268 -#define TYPEDEFNAME 269 -#define ELLIPSIS 270 -#define OROR 271 -#define ANDAND 272 -#define EQCOMPARE 273 -#define NECOMPARE 274 -#define LECOMPARE 275 -#define GECOMPARE 276 -#define LSHIFT 277 -#define RSHIFT 278 -#define POINTSAT_STAR 279 -#define DOT_STAR 280 -#define UNARY 281 -#define UNARY_NOT 282 -#define UNARY_NEGATE 283 -#define UNARY_MINUS 284 -#define UNARY_PLUS 285 -#define UNARY_STAR 286 -#define UNARY_REF 287 -#define POINTSAT 288 -#define SCOPE 289 -#define PLUSPLUS 290 -#define MINUSMINUS 291 -#define TIMESEQUAL 292 -#define DIVIDEEQUAL 293 -#define MODEQUAL 294 -#define PLUSEQUAL 295 -#define MINUSEQUAL 296 -#define OREQUAL 297 -#define ANDEQUAL 298 -#define XOREQUAL 299 -#define LSHIFTEQUAL 300 -#define RSHIFTEQUAL 301 -#define ATTR_LEFT 302 -#define ATTR_RIGHT 303 -#define KW_ALIGNAS 304 -#define KW_ALIGNOF 305 -#define KW_AUTO 306 -#define KW_BEGIN_PUBLISH 307 -#define KW_BLOCKING 308 -#define KW_BOOL 309 -#define KW_CATCH 310 -#define KW_CHAR 311 -#define KW_CHAR16_T 312 -#define KW_CHAR32_T 313 -#define KW_CLASS 314 -#define KW_CONST 315 -#define KW_CONSTEXPR 316 -#define KW_CONST_CAST 317 -#define KW_DECLTYPE 318 -#define KW_DEFAULT 319 -#define KW_DELETE 320 -#define KW_DOUBLE 321 -#define KW_DYNAMIC_CAST 322 -#define KW_ELSE 323 -#define KW_END_PUBLISH 324 -#define KW_ENUM 325 -#define KW_EXTENSION 326 -#define KW_EXTERN 327 -#define KW_EXPLICIT 328 -#define KW_PUBLISHED 329 -#define KW_FALSE 330 -#define KW_FINAL 331 -#define KW_FLOAT 332 -#define KW_FRIEND 333 -#define KW_FOR 334 -#define KW_GOTO 335 -#define KW_HAS_VIRTUAL_DESTRUCTOR 336 -#define KW_IF 337 -#define KW_INLINE 338 -#define KW_INT 339 -#define KW_IS_ABSTRACT 340 -#define KW_IS_BASE_OF 341 -#define KW_IS_CLASS 342 -#define KW_IS_CONSTRUCTIBLE 343 -#define KW_IS_CONVERTIBLE_TO 344 -#define KW_IS_DESTRUCTIBLE 345 -#define KW_IS_EMPTY 346 -#define KW_IS_ENUM 347 -#define KW_IS_FINAL 348 -#define KW_IS_FUNDAMENTAL 349 -#define KW_IS_POD 350 -#define KW_IS_POLYMORPHIC 351 -#define KW_IS_STANDARD_LAYOUT 352 -#define KW_IS_TRIVIAL 353 -#define KW_IS_UNION 354 -#define KW_LONG 355 -#define KW_MAKE_MAP_KEYS_SEQ 356 -#define KW_MAKE_MAP_PROPERTY 357 -#define KW_MAKE_PROPERTY 358 -#define KW_MAKE_PROPERTY2 359 -#define KW_MAKE_SEQ 360 -#define KW_MAKE_SEQ_PROPERTY 361 -#define KW_MUTABLE 362 -#define KW_NAMESPACE 363 -#define KW_NEW 364 -#define KW_NOEXCEPT 365 -#define KW_NULLPTR 366 -#define KW_OPERATOR 367 -#define KW_OVERRIDE 368 -#define KW_PRIVATE 369 -#define KW_PROTECTED 370 -#define KW_PUBLIC 371 -#define KW_REGISTER 372 -#define KW_REINTERPRET_CAST 373 -#define KW_RETURN 374 -#define KW_SHORT 375 -#define KW_SIGNED 376 -#define KW_SIZEOF 377 -#define KW_STATIC 378 -#define KW_STATIC_ASSERT 379 -#define KW_STATIC_CAST 380 -#define KW_STRUCT 381 -#define KW_TEMPLATE 382 -#define KW_THREAD_LOCAL 383 -#define KW_THROW 384 -#define KW_TRUE 385 -#define KW_TRY 386 -#define KW_TYPEDEF 387 -#define KW_TYPEID 388 -#define KW_TYPENAME 389 -#define KW_UNDERLYING_TYPE 390 -#define KW_UNION 391 -#define KW_UNSIGNED 392 -#define KW_USING 393 -#define KW_VIRTUAL 394 -#define KW_VOID 395 -#define KW_VOLATILE 396 -#define KW_WCHAR_T 397 -#define KW_WHILE 398 -#define START_CPP 399 -#define START_CONST_EXPR 400 -#define START_TYPE 401 - -/* Value type. */ - -/* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE +#include "cppBison.yxx.h" +/* Symbol kind. */ +enum yysymbol_kind_t { - int first_line; - int first_column; - int last_line; - int last_column; + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_REAL = 3, /* REAL */ + YYSYMBOL_INTEGER = 4, /* INTEGER */ + YYSYMBOL_CHAR_TOK = 5, /* CHAR_TOK */ + YYSYMBOL_SIMPLE_STRING = 6, /* SIMPLE_STRING */ + YYSYMBOL_SIMPLE_IDENTIFIER = 7, /* SIMPLE_IDENTIFIER */ + YYSYMBOL_STRING_LITERAL = 8, /* STRING_LITERAL */ + YYSYMBOL_CUSTOM_LITERAL = 9, /* CUSTOM_LITERAL */ + YYSYMBOL_IDENTIFIER = 10, /* IDENTIFIER */ + YYSYMBOL_TYPENAME_IDENTIFIER = 11, /* TYPENAME_IDENTIFIER */ + YYSYMBOL_TYPEPACK_IDENTIFIER = 12, /* TYPEPACK_IDENTIFIER */ + YYSYMBOL_SCOPING = 13, /* SCOPING */ + YYSYMBOL_TYPEDEFNAME = 14, /* TYPEDEFNAME */ + YYSYMBOL_ELLIPSIS = 15, /* ELLIPSIS */ + YYSYMBOL_OROR = 16, /* OROR */ + YYSYMBOL_ANDAND = 17, /* ANDAND */ + YYSYMBOL_EQCOMPARE = 18, /* EQCOMPARE */ + YYSYMBOL_NECOMPARE = 19, /* NECOMPARE */ + YYSYMBOL_LECOMPARE = 20, /* LECOMPARE */ + YYSYMBOL_GECOMPARE = 21, /* GECOMPARE */ + YYSYMBOL_SPACESHIP = 22, /* SPACESHIP */ + YYSYMBOL_LSHIFT = 23, /* LSHIFT */ + YYSYMBOL_RSHIFT = 24, /* RSHIFT */ + YYSYMBOL_POINTSAT_STAR = 25, /* POINTSAT_STAR */ + YYSYMBOL_DOT_STAR = 26, /* DOT_STAR */ + YYSYMBOL_UNARY = 27, /* UNARY */ + YYSYMBOL_UNARY_NOT = 28, /* UNARY_NOT */ + YYSYMBOL_UNARY_NEGATE = 29, /* UNARY_NEGATE */ + YYSYMBOL_UNARY_MINUS = 30, /* UNARY_MINUS */ + YYSYMBOL_UNARY_PLUS = 31, /* UNARY_PLUS */ + YYSYMBOL_UNARY_STAR = 32, /* UNARY_STAR */ + YYSYMBOL_UNARY_REF = 33, /* UNARY_REF */ + YYSYMBOL_POINTSAT = 34, /* POINTSAT */ + YYSYMBOL_SCOPE = 35, /* SCOPE */ + YYSYMBOL_PLUSPLUS = 36, /* PLUSPLUS */ + YYSYMBOL_MINUSMINUS = 37, /* MINUSMINUS */ + YYSYMBOL_TIMESEQUAL = 38, /* TIMESEQUAL */ + YYSYMBOL_DIVIDEEQUAL = 39, /* DIVIDEEQUAL */ + YYSYMBOL_MODEQUAL = 40, /* MODEQUAL */ + YYSYMBOL_PLUSEQUAL = 41, /* PLUSEQUAL */ + YYSYMBOL_MINUSEQUAL = 42, /* MINUSEQUAL */ + YYSYMBOL_OREQUAL = 43, /* OREQUAL */ + YYSYMBOL_ANDEQUAL = 44, /* ANDEQUAL */ + YYSYMBOL_XOREQUAL = 45, /* XOREQUAL */ + YYSYMBOL_LSHIFTEQUAL = 46, /* LSHIFTEQUAL */ + YYSYMBOL_RSHIFTEQUAL = 47, /* RSHIFTEQUAL */ + YYSYMBOL_ATTR_LEFT = 48, /* ATTR_LEFT */ + YYSYMBOL_ATTR_RIGHT = 49, /* ATTR_RIGHT */ + YYSYMBOL_KW_ALIGNAS = 50, /* KW_ALIGNAS */ + YYSYMBOL_KW_ALIGNOF = 51, /* KW_ALIGNOF */ + YYSYMBOL_KW_AUTO = 52, /* KW_AUTO */ + YYSYMBOL_KW_BEGIN_PUBLISH = 53, /* KW_BEGIN_PUBLISH */ + YYSYMBOL_KW_BLOCKING = 54, /* KW_BLOCKING */ + YYSYMBOL_KW_BOOL = 55, /* KW_BOOL */ + YYSYMBOL_KW_CATCH = 56, /* KW_CATCH */ + YYSYMBOL_KW_CHAR = 57, /* KW_CHAR */ + YYSYMBOL_KW_CHAR8_T = 58, /* KW_CHAR8_T */ + YYSYMBOL_KW_CHAR16_T = 59, /* KW_CHAR16_T */ + YYSYMBOL_KW_CHAR32_T = 60, /* KW_CHAR32_T */ + YYSYMBOL_KW_CLASS = 61, /* KW_CLASS */ + YYSYMBOL_KW_CONST = 62, /* KW_CONST */ + YYSYMBOL_KW_CONSTEVAL = 63, /* KW_CONSTEVAL */ + YYSYMBOL_KW_CONSTEXPR = 64, /* KW_CONSTEXPR */ + YYSYMBOL_KW_CONSTINIT = 65, /* KW_CONSTINIT */ + YYSYMBOL_KW_CONST_CAST = 66, /* KW_CONST_CAST */ + YYSYMBOL_KW_DECLTYPE = 67, /* KW_DECLTYPE */ + YYSYMBOL_KW_DEFAULT = 68, /* KW_DEFAULT */ + YYSYMBOL_KW_DELETE = 69, /* KW_DELETE */ + YYSYMBOL_KW_DOUBLE = 70, /* KW_DOUBLE */ + YYSYMBOL_KW_DYNAMIC_CAST = 71, /* KW_DYNAMIC_CAST */ + YYSYMBOL_KW_ELSE = 72, /* KW_ELSE */ + YYSYMBOL_KW_END_PUBLISH = 73, /* KW_END_PUBLISH */ + YYSYMBOL_KW_ENUM = 74, /* KW_ENUM */ + YYSYMBOL_KW_EXTENSION = 75, /* KW_EXTENSION */ + YYSYMBOL_KW_EXTERN = 76, /* KW_EXTERN */ + YYSYMBOL_KW_EXPLICIT = 77, /* KW_EXPLICIT */ + YYSYMBOL_KW_PUBLISHED = 78, /* KW_PUBLISHED */ + YYSYMBOL_KW_FALSE = 79, /* KW_FALSE */ + YYSYMBOL_KW_FINAL = 80, /* KW_FINAL */ + YYSYMBOL_KW_FLOAT = 81, /* KW_FLOAT */ + YYSYMBOL_KW_FRIEND = 82, /* KW_FRIEND */ + YYSYMBOL_KW_FOR = 83, /* KW_FOR */ + YYSYMBOL_KW_GOTO = 84, /* KW_GOTO */ + YYSYMBOL_KW_HAS_VIRTUAL_DESTRUCTOR = 85, /* KW_HAS_VIRTUAL_DESTRUCTOR */ + YYSYMBOL_KW_IF = 86, /* KW_IF */ + YYSYMBOL_KW_INLINE = 87, /* KW_INLINE */ + YYSYMBOL_KW_INT = 88, /* KW_INT */ + YYSYMBOL_KW_IS_ABSTRACT = 89, /* KW_IS_ABSTRACT */ + YYSYMBOL_KW_IS_BASE_OF = 90, /* KW_IS_BASE_OF */ + YYSYMBOL_KW_IS_CLASS = 91, /* KW_IS_CLASS */ + YYSYMBOL_KW_IS_CONSTRUCTIBLE = 92, /* KW_IS_CONSTRUCTIBLE */ + YYSYMBOL_KW_IS_CONVERTIBLE_TO = 93, /* KW_IS_CONVERTIBLE_TO */ + YYSYMBOL_KW_IS_DESTRUCTIBLE = 94, /* KW_IS_DESTRUCTIBLE */ + YYSYMBOL_KW_IS_EMPTY = 95, /* KW_IS_EMPTY */ + YYSYMBOL_KW_IS_ENUM = 96, /* KW_IS_ENUM */ + YYSYMBOL_KW_IS_FINAL = 97, /* KW_IS_FINAL */ + YYSYMBOL_KW_IS_FUNDAMENTAL = 98, /* KW_IS_FUNDAMENTAL */ + YYSYMBOL_KW_IS_POD = 99, /* KW_IS_POD */ + YYSYMBOL_KW_IS_POLYMORPHIC = 100, /* KW_IS_POLYMORPHIC */ + YYSYMBOL_KW_IS_STANDARD_LAYOUT = 101, /* KW_IS_STANDARD_LAYOUT */ + YYSYMBOL_KW_IS_TRIVIAL = 102, /* KW_IS_TRIVIAL */ + YYSYMBOL_KW_IS_UNION = 103, /* KW_IS_UNION */ + YYSYMBOL_KW_LONG = 104, /* KW_LONG */ + YYSYMBOL_KW_MAKE_MAP_KEYS_SEQ = 105, /* KW_MAKE_MAP_KEYS_SEQ */ + YYSYMBOL_KW_MAKE_MAP_PROPERTY = 106, /* KW_MAKE_MAP_PROPERTY */ + YYSYMBOL_KW_MAKE_PROPERTY = 107, /* KW_MAKE_PROPERTY */ + YYSYMBOL_KW_MAKE_PROPERTY2 = 108, /* KW_MAKE_PROPERTY2 */ + YYSYMBOL_KW_MAKE_SEQ = 109, /* KW_MAKE_SEQ */ + YYSYMBOL_KW_MAKE_SEQ_PROPERTY = 110, /* KW_MAKE_SEQ_PROPERTY */ + YYSYMBOL_KW_MUTABLE = 111, /* KW_MUTABLE */ + YYSYMBOL_KW_NAMESPACE = 112, /* KW_NAMESPACE */ + YYSYMBOL_KW_NEW = 113, /* KW_NEW */ + YYSYMBOL_KW_NOEXCEPT = 114, /* KW_NOEXCEPT */ + YYSYMBOL_KW_NULLPTR = 115, /* KW_NULLPTR */ + YYSYMBOL_KW_OPERATOR = 116, /* KW_OPERATOR */ + YYSYMBOL_KW_OVERRIDE = 117, /* KW_OVERRIDE */ + YYSYMBOL_KW_PRIVATE = 118, /* KW_PRIVATE */ + YYSYMBOL_KW_PROTECTED = 119, /* KW_PROTECTED */ + YYSYMBOL_KW_PUBLIC = 120, /* KW_PUBLIC */ + YYSYMBOL_KW_REGISTER = 121, /* KW_REGISTER */ + YYSYMBOL_KW_REINTERPRET_CAST = 122, /* KW_REINTERPRET_CAST */ + YYSYMBOL_KW_RETURN = 123, /* KW_RETURN */ + YYSYMBOL_KW_SHORT = 124, /* KW_SHORT */ + YYSYMBOL_KW_SIGNED = 125, /* KW_SIGNED */ + YYSYMBOL_KW_SIZEOF = 126, /* KW_SIZEOF */ + YYSYMBOL_KW_STATIC = 127, /* KW_STATIC */ + YYSYMBOL_KW_STATIC_ASSERT = 128, /* KW_STATIC_ASSERT */ + YYSYMBOL_KW_STATIC_CAST = 129, /* KW_STATIC_CAST */ + YYSYMBOL_KW_STRUCT = 130, /* KW_STRUCT */ + YYSYMBOL_KW_TEMPLATE = 131, /* KW_TEMPLATE */ + YYSYMBOL_KW_THREAD_LOCAL = 132, /* KW_THREAD_LOCAL */ + YYSYMBOL_KW_THROW = 133, /* KW_THROW */ + YYSYMBOL_KW_TRUE = 134, /* KW_TRUE */ + YYSYMBOL_KW_TRY = 135, /* KW_TRY */ + YYSYMBOL_KW_TYPEDEF = 136, /* KW_TYPEDEF */ + YYSYMBOL_KW_TYPEID = 137, /* KW_TYPEID */ + YYSYMBOL_KW_TYPENAME = 138, /* KW_TYPENAME */ + YYSYMBOL_KW_UNDERLYING_TYPE = 139, /* KW_UNDERLYING_TYPE */ + YYSYMBOL_KW_UNION = 140, /* KW_UNION */ + YYSYMBOL_KW_UNSIGNED = 141, /* KW_UNSIGNED */ + YYSYMBOL_KW_USING = 142, /* KW_USING */ + YYSYMBOL_KW_VIRTUAL = 143, /* KW_VIRTUAL */ + YYSYMBOL_KW_VOID = 144, /* KW_VOID */ + YYSYMBOL_KW_VOLATILE = 145, /* KW_VOLATILE */ + YYSYMBOL_KW_WCHAR_T = 146, /* KW_WCHAR_T */ + YYSYMBOL_KW_WHILE = 147, /* KW_WHILE */ + YYSYMBOL_START_CPP = 148, /* START_CPP */ + YYSYMBOL_START_CONST_EXPR = 149, /* START_CONST_EXPR */ + YYSYMBOL_START_TYPE = 150, /* START_TYPE */ + YYSYMBOL_151_ = 151, /* '{' */ + YYSYMBOL_152_ = 152, /* ',' */ + YYSYMBOL_153_ = 153, /* ';' */ + YYSYMBOL_154_ = 154, /* ':' */ + YYSYMBOL_155_ = 155, /* '=' */ + YYSYMBOL_156_ = 156, /* '?' */ + YYSYMBOL_157_ = 157, /* '|' */ + YYSYMBOL_158_ = 158, /* '^' */ + YYSYMBOL_159_ = 159, /* '&' */ + YYSYMBOL_160_ = 160, /* '<' */ + YYSYMBOL_161_ = 161, /* '>' */ + YYSYMBOL_162_ = 162, /* '+' */ + YYSYMBOL_163_ = 163, /* '-' */ + YYSYMBOL_164_ = 164, /* '*' */ + YYSYMBOL_165_ = 165, /* '/' */ + YYSYMBOL_166_ = 166, /* '%' */ + YYSYMBOL_167_ = 167, /* '~' */ + YYSYMBOL_168_ = 168, /* '.' */ + YYSYMBOL_169_ = 169, /* '(' */ + YYSYMBOL_170_ = 170, /* '[' */ + YYSYMBOL_171_ = 171, /* ')' */ + YYSYMBOL_172_ = 172, /* '}' */ + YYSYMBOL_173_ = 173, /* '!' */ + YYSYMBOL_174_ = 174, /* ']' */ + YYSYMBOL_YYACCEPT = 175, /* $accept */ + YYSYMBOL_grammar = 176, /* grammar */ + YYSYMBOL_cpp = 177, /* cpp */ + YYSYMBOL_constructor_inits = 178, /* constructor_inits */ + YYSYMBOL_constructor_init = 179, /* constructor_init */ + YYSYMBOL_extern_c = 180, /* extern_c */ + YYSYMBOL_181_1 = 181, /* $@1 */ + YYSYMBOL_declaration = 182, /* declaration */ + YYSYMBOL_friend_declaration = 183, /* friend_declaration */ + YYSYMBOL_184_2 = 184, /* $@2 */ + YYSYMBOL_storage_class = 185, /* storage_class */ + YYSYMBOL_attribute_specifiers = 186, /* attribute_specifiers */ + YYSYMBOL_attribute_specifier = 187, /* attribute_specifier */ + YYSYMBOL_type_like_declaration = 188, /* type_like_declaration */ + YYSYMBOL_189_3 = 189, /* $@3 */ + YYSYMBOL_190_4 = 190, /* $@4 */ + YYSYMBOL_multiple_instance_identifiers = 191, /* multiple_instance_identifiers */ + YYSYMBOL_typedef_declaration = 192, /* typedef_declaration */ + YYSYMBOL_193_5 = 193, /* $@5 */ + YYSYMBOL_typedef_instance_identifiers = 194, /* typedef_instance_identifiers */ + YYSYMBOL_constructor_prototype = 195, /* constructor_prototype */ + YYSYMBOL_196_6 = 196, /* $@6 */ + YYSYMBOL_197_7 = 197, /* $@7 */ + YYSYMBOL_198_8 = 198, /* $@8 */ + YYSYMBOL_function_prototype = 199, /* function_prototype */ + YYSYMBOL_200_9 = 200, /* $@9 */ + YYSYMBOL_201_10 = 201, /* $@10 */ + YYSYMBOL_202_11 = 202, /* $@11 */ + YYSYMBOL_203_12 = 203, /* $@12 */ + YYSYMBOL_204_13 = 204, /* $@13 */ + YYSYMBOL_function_post = 205, /* function_post */ + YYSYMBOL_function_operator = 206, /* function_operator */ + YYSYMBOL_more_template_declaration = 207, /* more_template_declaration */ + YYSYMBOL_template_declaration = 208, /* template_declaration */ + YYSYMBOL_209_14 = 209, /* $@14 */ + YYSYMBOL_template_formal_parameters = 210, /* template_formal_parameters */ + YYSYMBOL_template_nonempty_formal_parameters = 211, /* template_nonempty_formal_parameters */ + YYSYMBOL_typename_keyword = 212, /* typename_keyword */ + YYSYMBOL_template_formal_parameter = 213, /* template_formal_parameter */ + YYSYMBOL_template_formal_parameter_type = 214, /* template_formal_parameter_type */ + YYSYMBOL_instance_identifier = 215, /* instance_identifier */ + YYSYMBOL_216_15 = 216, /* $@15 */ + YYSYMBOL_instance_identifier_and_maybe_trailing_return_type = 217, /* instance_identifier_and_maybe_trailing_return_type */ + YYSYMBOL_maybe_trailing_return_type = 218, /* maybe_trailing_return_type */ + YYSYMBOL_maybe_comma_identifier = 219, /* maybe_comma_identifier */ + YYSYMBOL_function_parameter_list = 220, /* function_parameter_list */ + YYSYMBOL_function_parameters = 221, /* function_parameters */ + YYSYMBOL_formal_parameter_list = 222, /* formal_parameter_list */ + YYSYMBOL_formal_parameters = 223, /* formal_parameters */ + YYSYMBOL_template_parameter_maybe_initialize = 224, /* template_parameter_maybe_initialize */ + YYSYMBOL_maybe_initialize = 225, /* maybe_initialize */ + YYSYMBOL_maybe_initialize_or_constructor_body = 226, /* maybe_initialize_or_constructor_body */ + YYSYMBOL_maybe_initialize_or_function_body = 227, /* maybe_initialize_or_function_body */ + YYSYMBOL_structure_init = 228, /* structure_init */ + YYSYMBOL_structure_init_body = 229, /* structure_init_body */ + YYSYMBOL_function_parameter = 230, /* function_parameter */ + YYSYMBOL_formal_parameter = 231, /* formal_parameter */ + YYSYMBOL_not_paren_formal_parameter_identifier = 232, /* not_paren_formal_parameter_identifier */ + YYSYMBOL_formal_parameter_identifier = 233, /* formal_parameter_identifier */ + YYSYMBOL_parameter_pack_identifier = 234, /* parameter_pack_identifier */ + YYSYMBOL_not_paren_empty_instance_identifier = 235, /* not_paren_empty_instance_identifier */ + YYSYMBOL_empty_instance_identifier = 236, /* empty_instance_identifier */ + YYSYMBOL_type = 237, /* type */ + YYSYMBOL_type_pack = 238, /* type_pack */ + YYSYMBOL_type_decl = 239, /* type_decl */ + YYSYMBOL_predefined_type = 240, /* predefined_type */ + YYSYMBOL_var_type_decl = 241, /* var_type_decl */ + YYSYMBOL_full_type = 242, /* full_type */ + YYSYMBOL_struct_attributes = 243, /* struct_attributes */ + YYSYMBOL_anonymous_struct = 244, /* anonymous_struct */ + YYSYMBOL_245_16 = 245, /* $@16 */ + YYSYMBOL_named_struct = 246, /* named_struct */ + YYSYMBOL_247_17 = 247, /* $@17 */ + YYSYMBOL_maybe_final = 248, /* maybe_final */ + YYSYMBOL_maybe_class_derivation = 249, /* maybe_class_derivation */ + YYSYMBOL_class_derivation = 250, /* class_derivation */ + YYSYMBOL_base_specification = 251, /* base_specification */ + YYSYMBOL_enum = 252, /* enum */ + YYSYMBOL_enum_decl = 253, /* enum_decl */ + YYSYMBOL_enum_element_type = 254, /* enum_element_type */ + YYSYMBOL_enum_body_trailing_comma = 255, /* enum_body_trailing_comma */ + YYSYMBOL_enum_body = 256, /* enum_body */ + YYSYMBOL_enum_keyword = 257, /* enum_keyword */ + YYSYMBOL_struct_keyword = 258, /* struct_keyword */ + YYSYMBOL_namespace_declaration = 259, /* namespace_declaration */ + YYSYMBOL_260_18 = 260, /* $@18 */ + YYSYMBOL_261_19 = 261, /* $@19 */ + YYSYMBOL_using_declaration = 262, /* using_declaration */ + YYSYMBOL_simple_type = 263, /* simple_type */ + YYSYMBOL_simple_int_type = 264, /* simple_int_type */ + YYSYMBOL_simple_float_type = 265, /* simple_float_type */ + YYSYMBOL_simple_void_type = 266, /* simple_void_type */ + YYSYMBOL_code = 267, /* code */ + YYSYMBOL_268_20 = 268, /* $@20 */ + YYSYMBOL_code_block = 269, /* code_block */ + YYSYMBOL_element = 270, /* element */ + YYSYMBOL_optional_const_expr = 271, /* optional_const_expr */ + YYSYMBOL_optional_const_expr_comma = 272, /* optional_const_expr_comma */ + YYSYMBOL_const_expr_comma = 273, /* const_expr_comma */ + YYSYMBOL_no_angle_bracket_const_expr = 274, /* no_angle_bracket_const_expr */ + YYSYMBOL_const_expr = 275, /* const_expr */ + YYSYMBOL_const_operand = 276, /* const_operand */ + YYSYMBOL_formal_const_expr = 277, /* formal_const_expr */ + YYSYMBOL_formal_const_operand = 278, /* formal_const_operand */ + YYSYMBOL_capture_list = 279, /* capture_list */ + YYSYMBOL_capture = 280, /* capture */ + YYSYMBOL_class_derivation_name = 281, /* class_derivation_name */ + YYSYMBOL_name = 282, /* name */ + YYSYMBOL_name_no_final = 283, /* name_no_final */ + YYSYMBOL_string_literal = 284, /* string_literal */ + YYSYMBOL_empty = 285 /* empty */ }; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif +typedef enum yysymbol_kind_t yysymbol_kind_t; -int cppyyparse (void); - -#endif /* !YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED */ - - #ifdef short # undef short @@ -729,6 +686,7 @@ typedef int yytype_uint16; #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + /* Stored state numbers (used for stacks). */ typedef yytype_int16 yy_state_t; @@ -747,6 +705,7 @@ typedef int yy_state_fast_t; # endif #endif + #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) @@ -804,7 +763,7 @@ typedef int yy_state_fast_t; #define YY_ASSERT(E) ((void) (0 && (E))) -#if ! defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -869,8 +828,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -936,27 +894,29 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 104 +#define YYFINAL 106 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 7455 +#define YYLAST 7817 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 171 +#define YYNTOKENS 175 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 111 /* YYNRULES -- Number of rules. */ -#define YYNRULES 765 +#define YYNRULES 777 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1574 +#define YYNSTATES 1595 -#define YYUNDEFTOK 2 -#define YYMAXUTOK 401 +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 405 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -965,16 +925,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, 169, 2, 2, 2, 162, 155, 2, - 165, 167, 160, 158, 148, 159, 164, 161, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 150, 149, - 156, 151, 157, 152, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 173, 2, 2, 2, 166, 159, 2, + 169, 171, 164, 162, 152, 163, 168, 165, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 154, 153, + 160, 155, 161, 156, 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, 166, 2, 170, 154, 2, 2, 2, 2, 2, + 2, 170, 2, 174, 158, 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, 153, 168, 163, 2, 2, 2, + 2, 2, 2, 151, 157, 172, 167, 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, @@ -1002,133 +962,142 @@ static const yytype_uint8 yytranslate[] = 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146 + 145, 146, 147, 148, 149, 150 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 452, 452, 453, 457, 464, 465, 466, 470, 471, - 475, 479, 483, 496, 495, 507, 508, 509, 510, 511, - 512, 513, 526, 535, 539, 547, 551, 555, 576, 603, - 624, 653, 689, 732, 744, 765, 801, 835, 857, 893, - 915, 926, 940, 939, 954, 958, 963, 967, 978, 982, - 986, 990, 994, 998, 1002, 1006, 1010, 1014, 1018, 1022, - 1027, 1031, 1038, 1039, 1043, 1044, 1045, 1050, 1049, 1065, - 1075, 1074, 1091, 1099, 1107, 1118, 1134, 1133, 1148, 1163, - 1172, 1187, 1186, 1226, 1225, 1253, 1252, 1289, 1288, 1319, - 1318, 1337, 1336, 1357, 1356, 1388, 1387, 1413, 1426, 1430, - 1434, 1438, 1451, 1455, 1459, 1463, 1467, 1472, 1477, 1481, - 1485, 1489, 1496, 1500, 1504, 1508, 1512, 1516, 1520, 1524, - 1528, 1532, 1536, 1540, 1544, 1548, 1552, 1556, 1560, 1564, - 1568, 1572, 1576, 1580, 1584, 1588, 1592, 1596, 1600, 1604, - 1608, 1612, 1616, 1620, 1624, 1628, 1632, 1636, 1640, 1644, - 1648, 1655, 1656, 1657, 1661, 1663, 1662, 1670, 1671, 1675, - 1676, 1680, 1686, 1695, 1696, 1700, 1704, 1708, 1712, 1718, - 1724, 1730, 1737, 1742, 1751, 1755, 1760, 1768, 1780, 1784, - 1798, 1813, 1818, 1823, 1828, 1833, 1838, 1843, 1848, 1854, - 1853, 1884, 1894, 1904, 1908, 1912, 1921, 1925, 1933, 1937, - 1942, 1946, 1951, 1959, 1964, 1972, 1976, 1981, 1985, 1990, - 1998, 2003, 2011, 2015, 2022, 2026, 2033, 2037, 2041, 2045, - 2049, 2056, 2060, 2064, 2068, 2072, 2076, 2083, 2084, 2085, - 2089, 2092, 2093, 2094, 2098, 2103, 2109, 2115, 2120, 2126, - 2132, 2136, 2147, 2151, 2161, 2165, 2169, 2174, 2179, 2184, - 2189, 2194, 2199, 2207, 2211, 2215, 2220, 2225, 2230, 2235, - 2240, 2245, 2250, 2256, 2264, 2269, 2274, 2279, 2284, 2289, - 2294, 2299, 2304, 2309, 2315, 2323, 2327, 2332, 2337, 2342, - 2347, 2352, 2357, 2362, 2367, 2375, 2379, 2384, 2389, 2394, - 2399, 2404, 2409, 2414, 2419, 2424, 2430, 2437, 2444, 2454, - 2458, 2466, 2470, 2474, 2478, 2482, 2498, 2514, 2523, 2527, - 2537, 2544, 2555, 2559, 2567, 2571, 2575, 2579, 2583, 2599, - 2615, 2633, 2642, 2646, 2656, 2663, 2667, 2675, 2679, 2695, - 2711, 2720, 2730, 2737, 2741, 2749, 2753, 2758, 2762, 2770, - 2771, 2772, 2773, 2778, 2777, 2802, 2801, 2831, 2832, 2839, - 2840, 2844, 2845, 2849, 2853, 2857, 2861, 2865, 2869, 2873, - 2877, 2881, 2885, 2892, 2900, 2904, 2908, 2913, 2921, 2925, - 2932, 2933, 2938, 2945, 2946, 2951, 2959, 2963, 2967, 2974, - 2978, 2982, 2990, 2989, 3012, 3011, 3034, 3035, 3039, 3045, - 3052, 3061, 3062, 3063, 3067, 3071, 3075, 3079, 3083, 3087, - 3092, 3097, 3102, 3107, 3111, 3116, 3125, 3130, 3138, 3142, - 3146, 3154, 3164, 3164, 3174, 3175, 3179, 3180, 3181, 3182, - 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3190, 3190, - 3191, 3191, 3191, 3191, 3192, 3192, 3192, 3192, 3192, 3193, - 3193, 3193, 3194, 3194, 3194, 3194, 3194, 3195, 3195, 3195, - 3195, 3195, 3196, 3196, 3197, 3197, 3197, 3197, 3197, 3198, - 3198, 3198, 3198, 3198, 3199, 3199, 3199, 3199, 3200, 3200, - 3200, 3200, 3200, 3201, 3201, 3201, 3201, 3201, 3202, 3202, - 3202, 3202, 3202, 3202, 3203, 3203, 3203, 3203, 3203, 3204, - 3204, 3204, 3204, 3205, 3205, 3205, 3205, 3206, 3206, 3206, - 3206, 3206, 3207, 3207, 3207, 3207, 3208, 3208, 3208, 3208, - 3208, 3209, 3209, 3209, 3209, 3210, 3210, 3210, 3210, 3210, - 3211, 3211, 3214, 3214, 3214, 3214, 3214, 3214, 3214, 3214, - 3214, 3214, 3214, 3215, 3215, 3215, 3215, 3215, 3215, 3215, - 3215, 3215, 3215, 3216, 3216, 3220, 3224, 3231, 3235, 3242, - 3246, 3253, 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, 3377, 3381, 3385, 3389, 3393, 3397, 3401, 3405, - 3413, 3417, 3421, 3425, 3429, 3433, 3437, 3447, 3457, 3463, - 3469, 3475, 3481, 3487, 3493, 3500, 3507, 3514, 3521, 3527, - 3533, 3537, 3541, 3545, 3549, 3553, 3557, 3568, 3579, 3583, - 3587, 3591, 3595, 3599, 3603, 3607, 3611, 3615, 3619, 3623, - 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, 3659, 3663, - 3667, 3671, 3675, 3679, 3683, 3687, 3691, 3695, 3699, 3706, - 3710, 3714, 3718, 3722, 3726, 3730, 3734, 3738, 3744, 3750, - 3754, 3760, 3767, 3771, 3775, 3779, 3783, 3787, 3791, 3795, - 3799, 3803, 3807, 3811, 3815, 3819, 3823, 3827, 3831, 3845, - 3849, 3853, 3857, 3861, 3865, 3869, 3873, 3877, 3881, 3885, - 3889, 3893, 3904, 3915, 3919, 3923, 3927, 3931, 3935, 3939, - 3943, 3947, 3951, 3955, 3959, 3963, 3967, 3971, 3975, 3979, - 3983, 3987, 3991, 3995, 3999, 4003, 4007, 4011, 4015, 4019, - 4023, 4027, 4031, 4038, 4042, 4046, 4050, 4054, 4058, 4062, - 4066, 4070, 4076, 4082, 4090, 4094, 4098, 4102, 4109, 4119, - 4125, 4131, 4141, 4153, 4161, 4165, 4195, 4199, 4203, 4207, - 4211, 4215, 4221, 4225, 4229, 4233, 4237, 4248, 4252, 4256, - 4260, 4268, 4272, 4276, 4282, 4293 + 0, 457, 457, 458, 462, 469, 470, 471, 475, 476, + 480, 484, 488, 501, 500, 512, 513, 514, 515, 516, + 517, 518, 531, 540, 544, 552, 556, 560, 581, 608, + 629, 658, 694, 737, 749, 770, 806, 840, 862, 898, + 920, 931, 945, 944, 959, 963, 968, 972, 983, 987, + 991, 995, 999, 1003, 1007, 1011, 1015, 1019, 1023, 1027, + 1031, 1035, 1040, 1044, 1051, 1052, 1056, 1057, 1058, 1063, + 1062, 1078, 1088, 1087, 1104, 1112, 1120, 1131, 1147, 1146, + 1161, 1176, 1185, 1200, 1199, 1239, 1238, 1266, 1265, 1302, + 1301, 1332, 1331, 1350, 1349, 1370, 1369, 1401, 1400, 1426, + 1439, 1443, 1447, 1451, 1464, 1468, 1472, 1476, 1480, 1485, + 1490, 1494, 1498, 1502, 1509, 1513, 1517, 1521, 1525, 1529, + 1533, 1537, 1541, 1545, 1549, 1553, 1557, 1561, 1565, 1569, + 1573, 1577, 1581, 1585, 1589, 1593, 1597, 1601, 1605, 1609, + 1613, 1617, 1621, 1625, 1629, 1633, 1637, 1641, 1645, 1649, + 1653, 1657, 1661, 1665, 1672, 1673, 1674, 1678, 1680, 1679, + 1687, 1688, 1692, 1693, 1697, 1703, 1712, 1713, 1717, 1721, + 1725, 1729, 1735, 1741, 1747, 1754, 1759, 1768, 1772, 1777, + 1785, 1797, 1801, 1815, 1830, 1835, 1840, 1845, 1850, 1855, + 1860, 1865, 1871, 1870, 1901, 1911, 1921, 1925, 1929, 1938, + 1942, 1950, 1954, 1959, 1963, 1968, 1976, 1981, 1989, 1993, + 1998, 2002, 2007, 2015, 2020, 2028, 2032, 2039, 2043, 2050, + 2054, 2058, 2062, 2066, 2073, 2077, 2081, 2085, 2089, 2093, + 2100, 2101, 2102, 2106, 2109, 2110, 2111, 2115, 2120, 2126, + 2132, 2137, 2143, 2149, 2153, 2164, 2168, 2178, 2182, 2186, + 2191, 2196, 2201, 2206, 2211, 2216, 2224, 2228, 2232, 2237, + 2242, 2247, 2252, 2257, 2262, 2267, 2273, 2281, 2286, 2291, + 2296, 2301, 2306, 2311, 2316, 2321, 2326, 2332, 2340, 2344, + 2349, 2354, 2359, 2364, 2369, 2374, 2379, 2384, 2392, 2396, + 2401, 2406, 2411, 2416, 2421, 2426, 2431, 2436, 2441, 2447, + 2454, 2461, 2471, 2475, 2483, 2487, 2491, 2495, 2499, 2515, + 2531, 2540, 2544, 2554, 2561, 2572, 2576, 2584, 2588, 2592, + 2596, 2600, 2616, 2632, 2650, 2659, 2663, 2673, 2680, 2684, + 2692, 2696, 2712, 2728, 2737, 2747, 2754, 2758, 2766, 2770, + 2775, 2779, 2787, 2788, 2789, 2790, 2795, 2794, 2819, 2818, + 2848, 2849, 2856, 2857, 2861, 2862, 2866, 2870, 2874, 2878, + 2882, 2886, 2890, 2894, 2898, 2902, 2909, 2917, 2921, 2925, + 2930, 2938, 2942, 2949, 2950, 2955, 2962, 2963, 2968, 2976, + 2980, 2984, 2991, 2995, 2999, 3007, 3006, 3029, 3028, 3051, + 3052, 3056, 3062, 3069, 3078, 3079, 3080, 3084, 3088, 3092, + 3096, 3100, 3104, 3108, 3113, 3118, 3123, 3128, 3132, 3137, + 3146, 3151, 3159, 3163, 3167, 3175, 3185, 3185, 3195, 3196, + 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, + 3210, 3211, 3211, 3211, 3212, 3212, 3212, 3212, 3212, 3213, + 3213, 3213, 3213, 3213, 3214, 3214, 3214, 3215, 3215, 3215, + 3215, 3215, 3216, 3216, 3216, 3216, 3216, 3217, 3217, 3218, + 3218, 3218, 3218, 3218, 3219, 3219, 3219, 3219, 3219, 3220, + 3220, 3220, 3220, 3220, 3221, 3221, 3221, 3221, 3221, 3222, + 3222, 3222, 3222, 3223, 3223, 3223, 3223, 3223, 3224, 3224, + 3224, 3224, 3225, 3225, 3225, 3225, 3225, 3226, 3226, 3226, + 3226, 3227, 3227, 3227, 3227, 3228, 3228, 3228, 3228, 3228, + 3229, 3229, 3229, 3229, 3230, 3230, 3230, 3230, 3230, 3231, + 3231, 3231, 3231, 3232, 3232, 3232, 3232, 3232, 3233, 3233, + 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, + 3236, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, + 3237, 3238, 3238, 3242, 3246, 3253, 3257, 3264, 3268, 3275, + 3279, 3283, 3287, 3291, 3295, 3299, 3303, 3307, 3311, 3315, + 3319, 3323, 3327, 3331, 3335, 3339, 3343, 3347, 3351, 3355, + 3359, 3363, 3367, 3371, 3375, 3379, 3383, 3387, 3391, 3395, + 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, 3431, 3439, + 3443, 3447, 3451, 3455, 3459, 3463, 3473, 3483, 3489, 3495, + 3501, 3507, 3513, 3519, 3525, 3532, 3539, 3546, 3553, 3559, + 3565, 3569, 3573, 3577, 3581, 3585, 3589, 3600, 3611, 3615, + 3619, 3623, 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, + 3659, 3663, 3667, 3671, 3675, 3679, 3683, 3687, 3691, 3695, + 3699, 3703, 3707, 3711, 3715, 3719, 3723, 3727, 3731, 3735, + 3742, 3746, 3750, 3754, 3758, 3762, 3766, 3770, 3774, 3780, + 3786, 3790, 3796, 3803, 3807, 3811, 3815, 3819, 3823, 3827, + 3831, 3835, 3839, 3843, 3847, 3851, 3855, 3859, 3863, 3867, + 3881, 3885, 3889, 3893, 3897, 3901, 3905, 3909, 3913, 3917, + 3921, 3925, 3929, 3940, 3951, 3955, 3959, 3963, 3967, 3971, + 3975, 3979, 3983, 3987, 3991, 3995, 3999, 4003, 4007, 4011, + 4015, 4019, 4023, 4027, 4031, 4035, 4039, 4043, 4047, 4051, + 4055, 4059, 4063, 4067, 4071, 4078, 4082, 4086, 4090, 4094, + 4098, 4102, 4106, 4110, 4116, 4122, 4130, 4134, 4138, 4142, + 4149, 4159, 4165, 4171, 4181, 4193, 4201, 4205, 4235, 4239, + 4243, 4247, 4251, 4255, 4261, 4265, 4269, 4273, 4277, 4288, + 4292, 4296, 4300, 4308, 4312, 4316, 4322, 4333 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "REAL", "INTEGER", "CHAR_TOK", - "SIMPLE_STRING", "SIMPLE_IDENTIFIER", "STRING_LITERAL", "CUSTOM_LITERAL", - "IDENTIFIER", "TYPENAME_IDENTIFIER", "TYPEPACK_IDENTIFIER", "SCOPING", - "TYPEDEFNAME", "ELLIPSIS", "OROR", "ANDAND", "EQCOMPARE", "NECOMPARE", - "LECOMPARE", "GECOMPARE", "LSHIFT", "RSHIFT", "POINTSAT_STAR", - "DOT_STAR", "UNARY", "UNARY_NOT", "UNARY_NEGATE", "UNARY_MINUS", - "UNARY_PLUS", "UNARY_STAR", "UNARY_REF", "POINTSAT", "SCOPE", "PLUSPLUS", - "MINUSMINUS", "TIMESEQUAL", "DIVIDEEQUAL", "MODEQUAL", "PLUSEQUAL", - "MINUSEQUAL", "OREQUAL", "ANDEQUAL", "XOREQUAL", "LSHIFTEQUAL", - "RSHIFTEQUAL", "ATTR_LEFT", "ATTR_RIGHT", "KW_ALIGNAS", "KW_ALIGNOF", - "KW_AUTO", "KW_BEGIN_PUBLISH", "KW_BLOCKING", "KW_BOOL", "KW_CATCH", - "KW_CHAR", "KW_CHAR16_T", "KW_CHAR32_T", "KW_CLASS", "KW_CONST", - "KW_CONSTEXPR", "KW_CONST_CAST", "KW_DECLTYPE", "KW_DEFAULT", - "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_HAS_VIRTUAL_DESTRUCTOR", "KW_IF", "KW_INLINE", "KW_INT", - "KW_IS_ABSTRACT", "KW_IS_BASE_OF", "KW_IS_CLASS", "KW_IS_CONSTRUCTIBLE", - "KW_IS_CONVERTIBLE_TO", "KW_IS_DESTRUCTIBLE", "KW_IS_EMPTY", - "KW_IS_ENUM", "KW_IS_FINAL", "KW_IS_FUNDAMENTAL", "KW_IS_POD", - "KW_IS_POLYMORPHIC", "KW_IS_STANDARD_LAYOUT", "KW_IS_TRIVIAL", - "KW_IS_UNION", "KW_LONG", "KW_MAKE_MAP_KEYS_SEQ", "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_UNDERLYING_TYPE", "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", + "\"end of file\"", "error", "\"invalid token\"", "REAL", "INTEGER", + "CHAR_TOK", "SIMPLE_STRING", "SIMPLE_IDENTIFIER", "STRING_LITERAL", + "CUSTOM_LITERAL", "IDENTIFIER", "TYPENAME_IDENTIFIER", + "TYPEPACK_IDENTIFIER", "SCOPING", "TYPEDEFNAME", "ELLIPSIS", "OROR", + "ANDAND", "EQCOMPARE", "NECOMPARE", "LECOMPARE", "GECOMPARE", + "SPACESHIP", "LSHIFT", "RSHIFT", "POINTSAT_STAR", "DOT_STAR", "UNARY", + "UNARY_NOT", "UNARY_NEGATE", "UNARY_MINUS", "UNARY_PLUS", "UNARY_STAR", + "UNARY_REF", "POINTSAT", "SCOPE", "PLUSPLUS", "MINUSMINUS", "TIMESEQUAL", + "DIVIDEEQUAL", "MODEQUAL", "PLUSEQUAL", "MINUSEQUAL", "OREQUAL", + "ANDEQUAL", "XOREQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL", "ATTR_LEFT", + "ATTR_RIGHT", "KW_ALIGNAS", "KW_ALIGNOF", "KW_AUTO", "KW_BEGIN_PUBLISH", + "KW_BLOCKING", "KW_BOOL", "KW_CATCH", "KW_CHAR", "KW_CHAR8_T", + "KW_CHAR16_T", "KW_CHAR32_T", "KW_CLASS", "KW_CONST", "KW_CONSTEVAL", + "KW_CONSTEXPR", "KW_CONSTINIT", "KW_CONST_CAST", "KW_DECLTYPE", + "KW_DEFAULT", "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_HAS_VIRTUAL_DESTRUCTOR", "KW_IF", "KW_INLINE", + "KW_INT", "KW_IS_ABSTRACT", "KW_IS_BASE_OF", "KW_IS_CLASS", + "KW_IS_CONSTRUCTIBLE", "KW_IS_CONVERTIBLE_TO", "KW_IS_DESTRUCTIBLE", + "KW_IS_EMPTY", "KW_IS_ENUM", "KW_IS_FINAL", "KW_IS_FUNDAMENTAL", + "KW_IS_POD", "KW_IS_POLYMORPHIC", "KW_IS_STANDARD_LAYOUT", + "KW_IS_TRIVIAL", "KW_IS_UNION", "KW_LONG", "KW_MAKE_MAP_KEYS_SEQ", + "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_UNDERLYING_TYPE", + "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", @@ -1164,9 +1133,15 @@ static const char *const yytname[] = "capture_list", "capture", "class_derivation_name", "name", "name_no_final", "string_literal", "empty", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT +#ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_int16 yytoknum[] = @@ -1185,19 +1160,19 @@ static const yytype_int16 yytoknum[] = 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 123, 44, 59, - 58, 61, 63, 124, 94, 38, 60, 62, 43, 45, - 42, 47, 37, 126, 46, 40, 91, 41, 125, 33, - 93 + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 123, 44, 59, 58, 61, 63, 124, 94, 38, + 60, 62, 43, 45, 42, 47, 37, 126, 46, 40, + 91, 41, 125, 33, 93 }; -# endif +#endif -#define YYPACT_NINF (-930) +#define YYPACT_NINF (-942) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-761) +#define YYTABLE_NINF (-773) #define yytable_value_is_error(Yyn) \ 0 @@ -1206,164 +1181,166 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 199, -930, 3781, 6132, 47, 5432, -930, -930, -930, -930, - -930, -930, -930, -930, -102, -97, -86, -79, -73, -57, - -7, -47, 2, -930, -930, -2, 7, 25, 36, 74, - 100, 103, 109, 118, 131, 140, 156, 176, 189, 197, - 206, 216, 222, 226, 6383, -930, -930, 28, 235, 239, - 2701, 250, -930, 247, 270, 272, 3781, 3781, 3781, 3781, - 3781, 2372, 1705, 3781, 5269, -930, 224, -930, -930, -930, - -930, -930, -930, -930, -930, 6243, 275, -930, -19, -930, - -930, 4712, 1168, 1168, -930, 7033, 292, -930, 1168, -930, - -930, 187, 187, -930, -930, -930, -930, 314, 48, -930, - -930, -930, -930, -930, -930, 6083, 300, -930, 7314, 7314, - 7314, -930, 7314, 5779, 7314, 320, -930, 7299, 307, 328, - 330, 332, 334, 341, 7314, 4160, 365, 371, 382, 7314, - 7314, 379, 7106, 7314, 7314, 5386, 7314, 7314, -930, -930, - -930, -930, 4851, -930, -930, -930, -930, -930, 3781, 3781, - 6132, 3781, 3781, 3781, 3781, 6132, 3781, 6132, 3781, 6132, - 3781, 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132, - 6132, 6132, 6132, 6132, 6132, 6132, 3781, -930, -930, 380, - 7033, 402, 405, 7033, -930, -930, 6132, 3781, 3781, 406, - 2372, 56, 6132, 2372, 3781, 3781, 56, 56, 56, 56, - 56, -102, -86, -79, -73, -57, -47, -2, 25, 1462, - 5571, 6995, 7050, 272, 249, -98, 5269, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, 7033, - 7033, -114, 421, -930, -930, 56, 3781, 3781, 3781, 3781, - 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, - 3781, 3781, 3781, 3781, 3781, 3781, 7033, 2836, 3781, -930, - -930, 187, 187, 2971, -930, -930, -930, 1168, -930, -930, - -930, -930, 6132, -930, 414, 938, 298, 187, 187, 298, - 298, 5546, 319, -930, 409, -930, -930, -930, -930, -930, - -930, 1401, 426, 3885, -930, 7033, 529, 430, 415, 2560, - 5806, 7314, -930, -930, -930, -930, 7314, -930, -930, -930, - -930, 7199, 5722, -930, 7033, 7033, 7033, 7033, 7033, 7033, - -930, -930, 432, -930, -930, -930, -930, -930, 3781, -930, - 4943, -930, 425, -930, 5030, -930, 7033, 214, -930, -930, - 256, 419, -930, 420, 6272, 7033, 433, -930, 7033, -930, - 208, 437, -930, -930, -930, -930, 2895, -930, -930, 422, - 434, -930, 435, 436, 440, 441, 444, 446, 443, 449, - 461, 459, 460, 464, 472, 453, 474, -96, 480, 476, - 477, 481, 482, 483, 484, 485, 486, 488, 489, 491, - 3781, -930, 6132, 3781, -930, 6231, 490, 494, 495, 7033, - 497, 508, 499, 4555, 501, 509, 3781, 3781, -930, 582, - -930, 313, 510, 3781, -930, -930, 1767, 5599, 2015, 2015, - 905, 905, 705, 705, -930, 3128, 1547, 2133, 5631, 905, - 905, 281, 281, 56, 56, 56, -930, -930, -83, 2391, - -930, -930, 511, 4711, 512, 298, 514, 517, 7033, 298, - 298, 298, 298, 298, 515, -930, 319, -930, 319, -930, - 515, 515, -930, 298, 6083, 6156, 6045, 298, 298, 518, - 8, -930, 934, 273, -930, 3781, 7033, 522, -930, -930, - -930, -930, 1401, -6, -4, 17, 6083, 526, 18, -930, - -930, -930, 549, 7314, 6083, 3916, -102, 536, 5099, -930, - -930, -930, 557, 558, 560, 562, 565, 572, 573, 6515, - -930, 4210, 5882, 237, 540, 208, -930, -930, 585, -930, - 6132, -930, 31, 3106, 6470, 1096, -930, 6132, -930, 574, - 229, -930, -930, 1748, -930, -930, 760, -930, 590, 3885, - -930, -930, -930, -930, -930, -930, -930, 578, -930, 581, - -930, -930, -930, -930, 6132, -930, 6132, -930, 6132, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - 5157, 586, 587, -930, 583, -930, -930, 591, 4056, 584, - -930, -930, -930, -930, 56, 5269, -930, 7033, 421, 5913, - 4642, -930, 5269, 3781, -930, -930, -930, -930, -930, 515, - 298, -930, 515, 515, 515, 515, 515, 3781, -71, 709, - 6243, 934, 273, -930, 253, 293, -930, -930, 6014, 600, - 934, 934, 934, 934, 934, 934, 19, -930, -930, 606, - 7033, 273, 273, 273, 273, 273, 273, 107, 598, 5269, - -930, 30, -930, 622, 727, 2560, -930, 704, 6083, -930, - -930, -930, -930, -930, -930, -930, -930, 616, 626, 628, - -930, -930, 6383, -930, -930, 630, 4629, 631, -930, 623, - 3781, 3781, 3781, 3781, 2372, 3781, 624, 12, -930, -930, - 5366, -930, 224, -930, 7314, 7314, 6588, -930, 779, 780, - 783, 786, 787, 790, -930, -930, 342, 653, -930, -930, - -930, -930, 4912, -930, 648, 659, 7022, -930, 1178, -930, - -930, 9, -930, 760, -930, 660, 5913, 643, 651, 760, - 5913, 647, 5178, 1096, 655, 1096, 1096, 1096, 1096, 1096, - 209, -930, -930, 649, 6661, -930, -930, -930, 7033, 417, - -930, 654, -930, 670, 672, 3241, 3398, 663, 760, 760, - 4783, 760, 760, 760, 760, -930, 91, 266, -930, 1401, - -930, 3781, 3781, 657, 658, 662, -930, -930, -930, 3781, - -930, 3781, -930, 667, -930, 6359, 6083, -930, -930, -930, - -930, -930, -930, 661, -930, -930, 683, -930, 5269, 515, - 668, 675, 6045, 934, 273, 19, 107, 676, 677, 4642, - -930, -930, 934, 671, 671, 671, 671, 671, 325, 3781, - -930, 273, -930, 678, 678, 678, 678, 678, 335, 3781, - -930, 679, -930, 3781, -930, 680, 5196, 6734, -930, 698, - -930, -930, 6132, 6132, 6132, 684, 6132, 685, 2372, 98, - 6132, 2372, 56, 56, 56, 56, 687, -63, 56, -930, - -930, 4191, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, - 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, - 3781, 3781, 7033, 3376, 3781, -930, -930, -930, -930, 707, - -42, 708, 710, 712, 713, 6807, 43, -930, 1178, 7272, - 5882, 7033, 723, 715, 1178, 1178, 1178, 1178, 1178, 1178, - 116, 678, -930, 266, -930, 711, 714, 760, 77, 716, - -930, -930, 353, 1096, 718, 718, 718, 718, 718, -930, - 3781, -930, -930, 5913, 721, 378, -930, -90, 732, 733, - -930, 2203, -930, -930, -930, 3241, 722, 728, 5269, -930, - -930, 760, 377, 377, 876, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, 724, 730, -930, -930, 377, 377, 377, 265, 3781, - -930, 3781, -930, 1748, 756, -930, 622, -38, -29, -930, - -930, -930, -22, 6, -930, 6383, 187, 859, 519, -930, - -930, 5913, -930, 19, 107, -930, -930, 5913, 5913, -930, - 671, 744, 741, 678, 748, 751, 3668, -930, -930, -930, - 4275, 771, 775, -930, 759, 772, 773, 3781, 778, 7033, - 765, 782, 769, 5214, 3781, -930, -930, -930, 1767, 5599, - 2015, 2015, 905, 905, 705, 705, -930, 5251, 1547, 2133, - 5631, 905, 905, 281, 281, 56, 56, 56, -930, -930, - 44, 2719, 6880, 930, 931, 794, 942, 804, -930, 943, - 944, 951, -930, 816, 116, 678, -930, -930, -930, -930, - -930, -930, 6132, 1178, 4432, -930, -930, 825, -930, -930, - -930, 289, 809, -930, -930, 718, 5913, 805, 811, -930, - -930, 7033, 3781, 3781, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, - -930, -930, -930, -930, -930, -930, 819, -930, 3511, 377, - -930, -930, -930, -930, 5269, 3916, 814, 3398, 760, -930, - -930, -930, -930, 4642, 187, -930, -930, -930, 4, 827, - 812, -930, -930, 826, 829, 5913, -930, 5913, -930, -930, - 5796, 5873, 6458, 7033, 362, -930, -930, 983, -930, 4275, - -930, 836, 839, 840, 841, 844, 4056, 843, -930, -930, - 56, 3781, -930, -930, -930, 851, 51, -930, 871, 872, - 66, 853, 81, -930, -930, -930, 857, 874, 884, 885, - 4332, 886, 4432, 4432, 4432, 4432, 4432, 2372, 4432, 4864, - -930, 760, 4998, 5913, 863, -930, 4998, 5913, 862, -930, - -930, 875, -930, 878, 877, 1946, -930, 3241, 5269, 881, - -930, -930, 902, -930, 883, -930, -930, -930, -930, -930, - 889, 890, 4659, -930, 4659, -930, 4659, -930, -930, 4659, - 4659, 4659, -930, 6953, -930, 3781, 3781, -930, 3781, -930, - 3781, 5269, 909, 1050, 913, 1062, -930, 1063, 925, 927, - 1067, 929, 6132, 6132, 6132, 6132, 914, 2372, 129, 6132, - 129, 129, 129, 129, 129, 915, 86, 129, 4432, 4432, - 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, - 4432, 4432, 4432, 4432, 4432, 4432, 7033, 3646, 3781, -930, - 917, -930, 5913, 918, -930, 4998, -930, -930, 1065, -930, - 919, -930, -930, -930, 4642, 4642, 4642, -930, -930, -930, - -930, -930, -930, -930, -930, -930, 87, 92, 141, 150, - -930, 933, -930, 921, 945, -930, -930, 162, -930, 923, - 939, 940, 946, 7033, 924, 953, 4432, -930, 5424, 5615, - 571, 571, 966, 966, 873, 873, -930, 1261, 5656, 1613, - 375, 798, 798, 129, 129, 129, -930, -930, 168, 3935, - -930, 5913, 928, -930, 4998, -930, -930, 4998, 932, -930, - -930, -930, 4998, 4998, -930, -930, -930, -930, 1076, 947, - 952, 1105, 1106, 969, -930, 955, 956, 957, 967, 4532, - 958, 129, 4432, -930, -930, 4998, 968, -930, 4998, -930, - -930, 987, -930, 970, 170, -930, 3781, 3781, 3781, -930, - 3781, 4864, -930, 4642, -930, 990, 1131, 993, 171, 179, - 182, 184, 4642, -930, -930, 976, -930, -930, -930, -930, - -930, -930, 995, -930 + 109, -942, 3883, 6382, 55, 5572, -942, -942, -942, -942, + -942, -942, -942, -942, -24, -40, -16, 10, 45, 61, + 69, -62, 74, 131, -942, -942, 100, 124, 135, 164, + 172, 174, 208, 210, 214, 262, 269, 273, 285, 288, + 289, 295, 300, 301, 302, 6702, -942, -942, 199, 303, + 305, 2771, 254, -942, 306, 311, 317, 3883, 3883, 3883, + 3883, 3883, 2461, 1834, 3883, 5373, -942, 116, -942, -942, + -942, -942, -942, -942, -942, -942, -942, 6497, 318, -942, + -36, -942, -942, 7142, 5403, 5403, -942, 6175, 320, -942, + 5403, -942, -942, 339, 339, -942, -942, -942, -942, -15, + 53, -942, -942, -942, -942, -942, -942, 5125, 324, -942, + 7672, 7672, 7672, 7672, 7672, -942, 7672, 5436, 7672, 12, + -942, 7407, 330, 331, 332, 333, 335, 337, 7672, 4204, + 279, 299, 327, 7672, 7672, 340, 7492, 7672, 7672, 5548, + 7672, 7672, -942, -942, -942, -942, 1540, -942, -942, -942, + -942, -942, 3883, 3883, 6382, 3883, 3883, 3883, 3883, 3883, + 6382, 3883, 6382, 3883, 6382, 3883, 6382, 6382, 6382, 6382, + 6382, 6382, 6382, 6382, 6382, 6382, 6382, 6382, 6382, 6382, + 6382, 3883, -942, -942, 341, 6175, 343, 344, 6175, -942, + -942, 6382, 3883, 3883, 345, 2461, 27, 6382, 2461, 3883, + 3883, 27, 27, 27, 27, 27, -24, -16, 10, 45, + 61, 69, 74, 100, 135, 6968, 4616, 6024, 6976, 317, + -91, -82, 5373, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 6175, 6175, -68, -13, -942, + -942, 27, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, + 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, + 3883, 3883, 3883, 6175, 2910, 3883, -942, -942, 339, 339, + 3049, -942, -942, -942, 5403, -942, -942, -942, -942, 6382, + -942, 351, 836, 86, 339, 339, 86, 86, 5690, 346, + -942, 350, -942, -942, -942, -942, -942, -942, 3981, 364, + 1635, -942, 6175, 472, 376, 362, 1737, 6097, 7672, -942, + -942, -942, -942, -942, -942, 7672, -942, -942, -942, -942, + 7567, 4521, -942, 6175, 6175, 6175, 6175, 6175, 6175, -942, + -942, 381, -942, -942, -942, -942, -942, 3883, -942, 4965, + -942, 380, -942, 5027, -942, 6175, 14, -942, -942, -35, + 367, -942, 374, 6587, 6175, 375, -942, 6175, -942, 200, + 392, -942, -942, -942, -942, 1463, -942, -942, 400, 423, + -942, 405, 407, 409, 410, 411, 412, 418, 432, 433, + 442, 434, 435, 436, 439, 460, 443, -74, 464, 446, + 448, 449, 450, 452, 453, 469, 470, 473, 478, 480, + 3883, -942, 6382, 3883, -942, 7418, 482, 481, 484, 6175, + 488, 492, 490, 4324, 491, 494, 3883, 3883, -942, 648, + -942, 4395, 502, 3883, -942, -942, 5709, 5779, 5954, 5954, + 1757, 1757, 818, 926, 926, -942, 5256, 5803, 5821, 5879, + 1757, 1757, 137, 137, 27, 27, 27, -942, -942, -57, + 2166, -942, -942, 503, 4821, 505, 86, 507, 509, 6175, + 86, 86, 86, 86, 86, 508, -942, 346, -942, 346, + -942, 508, 508, -942, 86, 5125, 6472, 6357, 86, 86, + 513, 20, -942, 1050, 888, -942, 3883, 6175, 514, -942, + -942, -942, -942, 3981, -28, -21, -8, 5125, 518, -4, + -942, -942, -942, 534, 7672, 5125, 4022, -24, 520, 5100, + -942, -942, -942, 545, 546, 552, 555, 556, 558, 559, + 6847, -942, 4041, 4823, 245, 528, 200, -942, -942, 562, + -942, 6382, -942, 41, 3188, 6727, 585, -942, 6382, -942, + 543, 231, -942, -942, 2632, -942, -942, 775, -942, 563, + 1635, -942, -942, -942, -942, -942, -942, -942, -942, 547, + -942, 549, -942, -942, -942, -942, 6382, -942, 6382, -942, + 6382, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, 5158, 551, 553, -942, 566, -942, -942, 570, + 4166, 573, -942, -942, -942, -942, 27, 5373, -942, 6175, + -13, 6220, 264, -942, 5373, 3883, -942, -942, -942, -942, + -942, 508, 86, -942, 508, 508, 508, 508, 508, 3883, + -80, 671, 6497, 1050, 888, -942, 52, 94, -942, -942, + 6258, 581, 1050, 1050, 1050, 1050, 1050, 1050, -89, -942, + -942, 583, 6175, 888, 888, 888, 888, 888, 888, 8, + 574, 5373, -942, -95, -942, 599, 702, 1737, -942, 672, + 5125, -942, -942, -942, -942, -942, -942, -942, -942, 586, + 597, 600, -942, -942, 6702, -942, -942, 603, 4739, 604, + -942, 590, 3883, 3883, 3883, 3883, 2461, 3883, 595, 29, + -942, -942, 5430, -942, 116, -942, 7672, 7672, 6934, -942, + 760, 765, 766, 767, 768, 769, -942, -942, 243, 627, + -942, -942, -942, -942, 6142, -942, 620, 630, 5641, -942, + 997, -942, -942, 26, -942, 775, -942, 631, 6220, 622, + 632, 775, 6220, 623, 5179, 585, 633, 585, 585, 585, + 585, 585, 110, -942, -942, 628, 7021, -942, -942, -942, + 6175, 248, -942, 619, -942, 645, 647, 3327, 3207, 637, + 775, 775, 4897, 775, 775, 775, 775, -942, 70, 271, + -942, 3981, -942, 3883, 3883, 640, 641, 643, -942, -942, + -942, 3883, -942, 3883, -942, 644, -942, 6612, 5125, -942, + -942, -942, -942, -942, -942, 639, -942, -942, 651, -942, + 5373, 508, 642, 650, 6357, 1050, 888, -89, 8, 652, + 653, 264, -942, -942, 1050, 654, 654, 654, 654, 654, + 160, 3883, -942, 888, -942, 655, 655, 655, 655, 655, + 217, 3883, -942, 657, -942, 3883, -942, 646, 5198, 7108, + -942, 669, -942, -942, 6382, 6382, 6382, 659, 6382, 660, + 2461, 43, 6382, 2461, 27, 27, 27, 27, 662, -56, + 27, -942, -942, 4305, 3883, 3883, 3883, 3883, 3883, 3883, + 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, + 3883, 3883, 3883, 3883, 3883, 6175, 3466, 3883, -942, -942, + -942, -942, 679, -39, 682, 683, 684, 686, 7195, 39, + -942, 997, 7642, 4823, 6175, 689, 675, 997, 997, 997, + 997, 997, 997, 38, 655, -942, 271, -942, 674, 681, + 775, 234, 680, -942, -942, 258, 585, 687, 687, 687, + 687, 687, -942, 3883, -942, -942, 6220, 690, 284, -942, + 49, 701, 703, -942, 2233, -942, -942, -942, 3327, 691, + 706, 5373, -942, -942, 775, 280, 280, 849, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 694, 692, -942, -942, 280, + 280, 280, 242, 3883, -942, 3883, -942, 2632, 715, -942, + 599, -33, -27, -942, -942, -942, -12, -3, -942, 6702, + 339, 819, 312, -942, -942, 6220, -942, -89, 8, -942, + -942, 6220, 6220, -942, 654, 700, 697, 655, 704, 698, + 3624, -942, -942, -942, 6736, 724, 725, -942, 705, 717, + 719, 3883, 720, 6175, 711, 723, 714, 5217, 3883, -942, + -942, -942, 5709, 5779, 5954, 5954, 1757, 1757, 818, 926, + 926, -942, 5275, 5803, 5821, 5879, 1757, 1757, 137, 137, + 27, 27, 27, -942, -942, 13, 2650, 7282, 876, 884, + 742, 886, 726, -942, 892, 903, 908, -942, 770, 38, + 655, -942, -942, -942, -942, -942, -942, 6382, 997, 4565, + -942, -942, 772, -942, -942, -942, 275, 752, -942, -942, + 687, 6220, 748, 758, -942, -942, 6175, 3883, 3883, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, -942, -942, -942, -942, -942, + -942, -942, -942, -942, -942, 761, -942, 3605, 280, -942, + -942, -942, -942, 5373, 4022, 756, 3207, 775, -942, -942, + -942, -942, 264, 339, -942, -942, -942, 6, 771, 774, + -942, -942, 777, 778, 6220, -942, 6220, -942, -942, 6342, + 6572, 6801, 6175, 348, -942, -942, 923, -942, 6736, -942, + 773, 782, 781, 786, 787, 4166, 788, -942, -942, 27, + 3883, -942, -942, -942, 791, 54, -942, 789, 793, 82, + 796, 83, -942, -942, -942, 790, 780, 804, 808, 4450, + 809, 4565, 4565, 4565, 4565, 4565, 2461, 4565, 5449, -942, + 775, 2366, 6220, 801, -942, 2366, 6220, 800, -942, -942, + 805, -942, 813, 802, 2003, -942, 3327, 5373, 826, -942, + -942, 825, -942, 827, -942, -942, -942, -942, -942, 828, + 829, 4515, -942, 4515, -942, 4515, -942, -942, 4515, 4515, + 4515, -942, 7369, -942, 3883, 3883, -942, 3883, -942, 3883, + 5373, 852, 1001, 860, 1005, -942, 1006, 865, 867, 1011, + 869, 6382, 6382, 6382, 6382, 854, 2461, 78, 6382, 78, + 78, 78, 78, 78, 857, 89, 78, 4565, 4565, 4565, + 4565, 4565, 4565, 4565, 4565, 4565, 4565, 4565, 4565, 4565, + 4565, 4565, 4565, 4565, 4565, 4565, 6175, 3744, 3883, -942, + 863, -942, 6220, 866, -942, 2366, -942, -942, 1021, -942, + 868, -942, -942, -942, 264, 264, 264, -942, -942, -942, + -942, -942, -942, -942, -942, -942, 92, 138, 148, 156, + -942, 887, -942, 870, 890, -942, -942, 161, -942, 872, + 877, 883, 885, 6175, 874, 893, 4565, -942, 5762, 5862, + 5138, 5138, 4789, 4789, 2670, 940, 940, -942, 1059, 5936, + 5974, 5888, 422, 422, 78, 78, 78, -942, -942, 163, + 2929, -942, 6220, 878, -942, 2366, -942, -942, 2366, 879, + -942, -942, -942, 2366, 2366, -942, -942, -942, -942, 1038, + 882, 902, 1046, 1048, 911, -942, 896, 901, 904, 900, + 4680, 905, 78, 4565, -942, -942, 2366, 914, -942, 2366, + -942, -942, 919, -942, 915, 166, -942, 3883, 3883, 3883, + -942, 3883, 5449, -942, 264, -942, 934, 1087, 946, 168, + 190, 205, 219, 264, -942, -942, 929, -942, -942, -942, + -942, -942, -942, 962, -942 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1371,198 +1348,200 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 0, 765, 0, 0, 0, 765, 5, 653, 649, 652, - 761, 762, 655, 656, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 651, 657, 0, 0, 0, 0, 0, + 0, 777, 0, 0, 0, 777, 5, 664, 660, 663, + 773, 774, 666, 667, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 662, 668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 659, 658, 0, 0, 0, - 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 765, 0, 3, 590, 654, 300, 311, 310, - 394, 395, 397, 398, 379, 0, 0, 409, 376, 408, - 403, 400, 399, 402, 380, 0, 0, 381, 401, 411, - 396, 765, 765, 4, 302, 303, 304, 0, 365, 765, - 299, 391, 392, 393, 1, 0, 0, 21, 765, 765, - 765, 22, 765, 765, 765, 0, 42, 765, 0, 0, - 0, 0, 0, 0, 765, 0, 0, 0, 0, 765, - 765, 0, 765, 765, 765, 0, 765, 765, 6, 17, - 7, 19, 0, 15, 16, 18, 73, 44, 765, 765, - 0, 765, 765, 765, 765, 0, 765, 0, 765, 0, - 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 765, 326, 332, 0, - 0, 0, 614, 0, 765, 325, 0, 765, 765, 0, - 0, 611, 0, 0, 765, 765, 623, 621, 620, 622, - 619, 300, 394, 395, 397, 398, 409, 408, 403, 400, - 399, 402, 401, 396, 0, 0, 549, 746, 747, 748, - 756, 749, 752, 750, 754, 753, 751, 755, 735, 736, - 0, 0, 765, 741, 734, 618, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 670, 669, 0, 0, + 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 777, 0, 3, 599, 665, 303, 314, + 313, 397, 398, 400, 401, 402, 382, 0, 0, 413, + 379, 412, 407, 404, 403, 406, 383, 0, 0, 384, + 405, 415, 399, 777, 777, 4, 305, 306, 307, 0, + 368, 777, 302, 394, 395, 396, 1, 0, 0, 21, + 777, 777, 777, 777, 777, 22, 777, 777, 777, 0, + 42, 777, 0, 0, 0, 0, 0, 0, 777, 0, + 0, 0, 0, 777, 777, 0, 777, 777, 777, 0, + 777, 777, 6, 17, 7, 19, 0, 15, 16, 18, + 75, 44, 777, 777, 0, 777, 777, 777, 777, 777, + 0, 777, 0, 777, 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, - 764, 765, 765, 0, 377, 378, 410, 400, 405, 404, - 407, 301, 0, 406, 0, 286, 765, 765, 765, 765, - 765, 765, 0, 335, 285, 337, 765, 757, 758, 759, - 760, 0, 367, 0, 339, 0, 0, 62, 64, 0, - 765, 765, 56, 45, 55, 57, 765, 46, 154, 51, - 23, 765, 0, 49, 0, 0, 0, 0, 0, 0, - 54, 765, 0, 26, 25, 24, 52, 48, 0, 158, - 0, 157, 0, 58, 0, 20, 0, 0, 50, 53, - 334, 313, 324, 0, 0, 0, 0, 13, 0, 70, - 0, 333, 67, 315, 316, 317, 365, 765, 312, 0, - 548, 547, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 777, 329, 335, 0, 0, 0, 624, 0, 777, + 328, 0, 777, 777, 0, 0, 621, 0, 0, 777, + 777, 633, 631, 630, 632, 629, 303, 397, 398, 400, + 401, 402, 413, 412, 407, 404, 403, 406, 405, 399, + 0, 0, 557, 758, 759, 760, 768, 761, 764, 762, + 766, 765, 763, 767, 747, 748, 0, 0, 777, 753, + 746, 628, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 775, 776, 777, 777, + 0, 380, 381, 414, 404, 409, 408, 411, 304, 0, + 410, 0, 289, 777, 777, 777, 777, 777, 777, 0, + 338, 288, 340, 777, 769, 770, 771, 772, 0, 370, + 0, 342, 0, 0, 64, 66, 0, 777, 777, 58, + 45, 55, 56, 57, 59, 777, 46, 157, 51, 23, + 777, 0, 49, 0, 0, 0, 0, 0, 0, 54, + 777, 0, 26, 25, 24, 52, 48, 0, 161, 0, + 160, 0, 60, 0, 20, 0, 0, 50, 53, 337, + 316, 327, 0, 0, 0, 0, 13, 0, 72, 0, + 336, 69, 318, 319, 320, 368, 777, 315, 0, 556, + 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 765, 329, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 648, 739, - 742, 0, 765, 0, 737, 214, 632, 633, 634, 635, - 636, 637, 640, 641, 647, 0, 629, 630, 631, 638, - 639, 627, 628, 624, 625, 626, 646, 645, 0, 0, - 336, 338, 0, 0, 0, 765, 287, 0, 276, 765, - 765, 765, 765, 765, 292, 275, 0, 288, 0, 289, - 291, 290, 199, 765, 0, 0, 0, 765, 765, 0, - 200, 203, 765, 0, 198, 765, 373, 0, 370, 369, - 364, 368, 0, 746, 747, 748, 0, 0, 750, 343, - 305, 345, 0, 765, 0, 765, 313, 0, 0, 47, - 43, 765, 0, 0, 0, 0, 0, 0, 0, 765, - 382, 0, 765, 334, 313, 0, 333, 76, 0, 388, - 0, 81, 85, 0, 0, 765, 314, 0, 765, 0, - 0, 412, 221, 0, 72, 69, 0, 320, 367, 0, - 597, 596, 613, 603, 599, 601, 602, 0, 609, 0, - 608, 662, 598, 663, 0, 665, 0, 666, 0, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 605, - 0, 0, 0, 328, 0, 604, 607, 0, 610, 0, - 616, 617, 606, 600, 591, 550, 740, 0, 765, 765, - 765, 98, 215, 0, 644, 643, 308, 307, 309, 293, - 765, 277, 282, 278, 279, 281, 280, 765, 0, 0, - 0, 765, 0, 240, 0, 0, 765, 202, 0, 0, - 765, 765, 765, 765, 765, 765, 765, 254, 253, 0, - 264, 0, 0, 0, 0, 0, 0, 765, 0, 546, - 545, 374, 363, 306, 0, 0, 765, 765, 0, 59, - 63, 727, 723, 726, 729, 730, 206, 0, 0, 0, - 725, 731, 0, 733, 732, 0, 0, 0, 724, 0, - 0, 0, 0, 0, 0, 0, 0, 207, 242, 210, - 243, 679, 728, 205, 765, 765, 765, 384, 0, 0, - 0, 0, 0, 0, 386, 765, 0, 0, 175, 176, - 177, 163, 0, 164, 0, 160, 165, 161, 765, 174, - 159, 0, 78, 0, 390, 0, 765, 0, 0, 0, - 765, 0, 0, 765, 0, 765, 765, 765, 765, 765, - 0, 245, 244, 0, 765, 87, 412, 216, 0, 0, - 71, 0, 765, 0, 0, 765, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 68, 765, 765, 178, 0, - 318, 0, 0, 0, 0, 0, 330, 331, 615, 0, - 612, 0, 738, 0, 105, 0, 0, 99, 107, 102, - 106, 101, 103, 0, 100, 104, 0, 193, 642, 283, - 0, 0, 0, 765, 0, 765, 765, 0, 0, 765, - 201, 204, 765, 259, 255, 256, 258, 257, 0, 765, - 234, 0, 265, 270, 266, 267, 269, 268, 0, 765, - 237, 294, 371, 0, 340, 0, 0, 765, 348, 765, - 347, 66, 0, 0, 0, 689, 0, 0, 0, 686, - 0, 0, 697, 696, 695, 694, 0, 0, 693, 65, - 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 330, 0, 777, 332, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 659, 751, + 754, 0, 777, 0, 749, 217, 642, 643, 644, 645, + 646, 647, 648, 651, 652, 658, 0, 639, 640, 641, + 649, 650, 637, 638, 634, 635, 636, 657, 656, 0, + 0, 339, 341, 0, 0, 0, 777, 290, 0, 279, + 777, 777, 777, 777, 777, 295, 278, 0, 291, 0, + 292, 294, 293, 202, 777, 0, 0, 0, 777, 777, + 0, 203, 206, 777, 0, 201, 777, 376, 0, 373, + 372, 367, 371, 0, 758, 759, 760, 0, 0, 762, + 346, 308, 348, 0, 777, 0, 777, 316, 0, 0, + 47, 43, 777, 0, 0, 0, 0, 0, 0, 0, + 777, 385, 0, 777, 337, 316, 0, 336, 78, 0, + 391, 0, 83, 87, 0, 0, 777, 317, 0, 777, + 0, 0, 416, 224, 0, 74, 71, 0, 323, 370, + 0, 606, 605, 623, 613, 608, 610, 611, 612, 0, + 619, 0, 618, 673, 607, 674, 0, 676, 0, 677, + 0, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 615, 0, 0, 0, 331, 0, 614, 617, 0, + 620, 0, 626, 627, 616, 609, 600, 558, 752, 0, + 777, 777, 777, 100, 218, 0, 655, 654, 311, 310, + 312, 296, 777, 280, 285, 281, 282, 284, 283, 777, + 0, 0, 0, 777, 0, 243, 0, 0, 777, 205, + 0, 0, 777, 777, 777, 777, 777, 777, 777, 257, + 256, 0, 267, 0, 0, 0, 0, 0, 0, 777, + 0, 554, 553, 377, 366, 309, 0, 0, 777, 777, + 0, 61, 65, 739, 735, 738, 741, 742, 209, 0, + 0, 0, 737, 743, 0, 745, 744, 0, 0, 0, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 210, + 245, 213, 246, 690, 740, 208, 777, 777, 777, 387, + 0, 0, 0, 0, 0, 0, 389, 777, 0, 0, + 178, 179, 180, 166, 0, 167, 0, 163, 168, 164, + 777, 177, 162, 0, 80, 0, 393, 0, 777, 0, + 0, 0, 777, 0, 0, 777, 0, 777, 777, 777, + 777, 777, 0, 248, 247, 0, 777, 89, 416, 219, + 0, 0, 73, 0, 777, 0, 0, 777, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 70, 777, 777, + 181, 0, 321, 0, 0, 0, 0, 0, 333, 334, + 625, 0, 622, 0, 750, 0, 107, 0, 0, 101, + 109, 104, 108, 103, 105, 0, 102, 106, 0, 196, + 653, 286, 0, 0, 0, 777, 0, 777, 777, 0, + 0, 777, 204, 207, 777, 262, 258, 259, 261, 260, + 0, 777, 237, 0, 268, 273, 269, 270, 272, 271, + 0, 777, 240, 297, 374, 0, 343, 0, 0, 777, + 351, 777, 350, 68, 0, 0, 0, 700, 0, 0, + 0, 697, 0, 0, 708, 707, 706, 705, 0, 0, + 704, 67, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 61, 60, 387, 765, 0, - 0, 765, 0, 0, 0, 765, 0, 41, 765, 765, - 0, 168, 166, 0, 765, 765, 765, 765, 765, 765, - 765, 172, 77, 765, 389, 0, 0, 0, 0, 0, - 322, 321, 0, 765, 250, 246, 247, 249, 248, 93, - 765, 323, 14, 765, 0, 0, 8, 0, 0, 0, - 222, 413, 414, 224, 225, 765, 0, 228, 230, 227, - 223, 0, 185, 181, 0, 122, 123, 124, 125, 126, - 127, 130, 131, 146, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 150, 149, 133, 132, - 119, 121, 120, 128, 129, 117, 118, 114, 115, 116, - 113, 0, 0, 112, 179, 182, 184, 183, 0, 0, - 189, 765, 191, 0, 0, 74, 319, 0, 0, 664, - 667, 668, 0, 0, 765, 0, 765, 0, 0, 412, - 284, 765, 241, 765, 765, 235, 238, 765, 765, 295, - 260, 263, 0, 271, 274, 0, 375, 342, 341, 344, - 0, 0, 350, 349, 0, 0, 0, 765, 0, 0, - 0, 0, 0, 0, 0, 722, 208, 211, 706, 707, - 708, 709, 710, 711, 714, 715, 721, 0, 703, 704, - 705, 712, 713, 701, 702, 698, 699, 700, 720, 719, - 0, 0, 765, 0, 0, 0, 0, 0, 196, 0, - 0, 0, 383, 0, 765, 173, 153, 151, 156, 152, - 162, 169, 0, 765, 0, 170, 212, 0, 79, 765, - 83, 0, 0, 765, 95, 251, 765, 0, 0, 217, - 412, 0, 765, 765, 219, 220, 416, 417, 421, 418, - 426, 419, 420, 422, 423, 424, 425, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 494, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 765, 538, 539, 540, 531, 543, 527, 528, - 526, 533, 534, 522, 523, 524, 525, 532, 530, 537, - 535, 541, 536, 529, 542, 415, 0, 226, 229, 186, - 180, 148, 147, 188, 192, 765, 0, 215, 0, 594, - 593, 595, 592, 765, 765, 194, 111, 108, 0, 0, - 0, 236, 239, 0, 0, 765, 261, 765, 272, 372, - 754, 0, 753, 0, 0, 351, 353, 743, 765, 0, - 688, 0, 0, 0, 0, 0, 685, 0, 691, 692, - 680, 0, 718, 717, 385, 0, 0, 33, 197, 0, - 0, 0, 0, 40, 171, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, - 551, 0, 82, 765, 0, 89, 86, 765, 0, 252, - 765, 0, 9, 0, 0, 0, 231, 765, 232, 0, - 187, 75, 0, 195, 0, 109, 660, 765, 765, 765, - 0, 0, 0, 356, 0, 355, 0, 354, 744, 0, - 0, 0, 745, 765, 352, 0, 0, 690, 0, 687, - 0, 716, 0, 0, 0, 0, 27, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, - 566, 564, 563, 565, 562, 0, 0, 561, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 62, + 390, 777, 0, 0, 777, 0, 0, 0, 777, 0, + 41, 777, 777, 0, 171, 169, 0, 777, 777, 777, + 777, 777, 777, 777, 175, 79, 777, 392, 0, 0, + 0, 0, 0, 325, 324, 0, 777, 253, 249, 250, + 252, 251, 95, 777, 326, 14, 777, 0, 0, 8, + 0, 0, 0, 225, 417, 418, 227, 228, 777, 0, + 231, 233, 230, 226, 0, 188, 184, 0, 124, 125, + 126, 127, 128, 129, 132, 133, 134, 149, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 153, 152, 136, 135, 121, 123, 122, 130, 131, 119, + 120, 116, 117, 118, 115, 0, 0, 114, 182, 185, + 187, 186, 0, 0, 192, 777, 194, 0, 0, 76, + 322, 0, 0, 675, 678, 679, 0, 0, 777, 0, + 777, 0, 0, 416, 287, 777, 244, 777, 777, 238, + 241, 777, 777, 298, 263, 266, 0, 274, 277, 0, + 378, 345, 344, 347, 0, 0, 353, 352, 0, 0, + 0, 777, 0, 0, 0, 0, 0, 0, 0, 734, + 211, 214, 717, 718, 719, 720, 721, 722, 723, 726, + 727, 733, 0, 714, 715, 716, 724, 725, 712, 713, + 709, 710, 711, 732, 731, 0, 0, 777, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 386, 0, 777, + 176, 156, 154, 159, 155, 165, 172, 0, 777, 0, + 173, 215, 0, 81, 777, 85, 0, 0, 777, 97, + 254, 777, 0, 0, 220, 416, 0, 777, 777, 222, + 223, 420, 421, 425, 422, 430, 423, 424, 426, 427, + 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 502, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 777, 546, 547, 548, 539, 551, 535, 536, 534, + 541, 542, 530, 531, 532, 533, 540, 538, 545, 543, + 549, 544, 537, 550, 419, 0, 229, 232, 189, 183, + 151, 150, 191, 195, 777, 0, 218, 0, 603, 602, + 604, 601, 777, 777, 197, 113, 110, 0, 0, 0, + 239, 242, 0, 0, 777, 264, 777, 275, 375, 766, + 0, 765, 0, 0, 354, 356, 755, 777, 0, 699, + 0, 0, 0, 0, 0, 696, 0, 702, 703, 691, + 0, 730, 729, 388, 0, 0, 33, 200, 0, 0, + 0, 0, 40, 174, 170, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 216, 559, + 0, 84, 777, 0, 91, 88, 777, 0, 255, 777, + 0, 9, 0, 0, 0, 234, 777, 235, 0, 190, + 77, 0, 198, 0, 111, 671, 777, 777, 777, 0, + 0, 0, 359, 0, 358, 0, 357, 756, 0, 0, + 0, 757, 777, 355, 0, 0, 701, 0, 698, 0, + 728, 0, 0, 0, 0, 27, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 566, 0, 574, + 572, 571, 573, 570, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, - 0, 91, 765, 0, 765, 88, 218, 12, 10, 544, - 0, 765, 412, 110, 765, 765, 765, 765, 765, 362, - 361, 360, 359, 358, 357, 346, 0, 0, 0, 0, - 36, 765, 34, 0, 0, 37, 39, 0, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 589, 575, 576, - 577, 578, 579, 580, 581, 582, 588, 0, 572, 573, - 574, 570, 571, 567, 568, 569, 587, 586, 0, 0, - 765, 765, 0, 765, 94, 11, 233, 190, 0, 298, - 297, 296, 262, 273, 683, 682, 684, 681, 0, 0, - 0, 0, 0, 0, 560, 0, 0, 0, 0, 557, - 0, 552, 0, 585, 584, 84, 0, 765, 96, 661, - 197, 0, 28, 0, 0, 30, 0, 0, 0, 559, - 0, 583, 765, 765, 35, 0, 0, 0, 0, 0, - 0, 0, 765, 90, 38, 0, 31, 555, 554, 556, - 553, 92, 0, 32 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, + 0, 93, 777, 0, 777, 90, 221, 12, 10, 552, + 0, 777, 416, 112, 777, 777, 777, 777, 777, 365, + 364, 363, 362, 361, 360, 349, 0, 0, 0, 0, + 36, 777, 34, 0, 0, 37, 39, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 598, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 597, 0, 580, + 581, 582, 578, 579, 575, 576, 577, 596, 595, 0, + 0, 777, 777, 0, 777, 96, 11, 236, 193, 0, + 301, 300, 299, 265, 276, 694, 693, 695, 692, 0, + 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, + 565, 0, 560, 0, 594, 593, 86, 0, 777, 98, + 672, 200, 0, 28, 0, 0, 30, 0, 0, 0, + 567, 0, 592, 777, 777, 35, 0, 0, 0, 0, + 0, 0, 0, 777, 92, 38, 0, 31, 563, 562, + 564, 561, 94, 0, 32 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -930, -930, -312, -930, 34, -930, -930, 835, -130, -930, - 3, -440, 500, -128, -930, -930, -109, -930, -930, -181, - -930, -930, -930, -930, 818, -930, -930, -930, -930, -930, - -595, -930, -930, -110, -930, -930, -930, -930, 263, 452, - -671, -930, -701, -694, -306, -501, -930, -95, -930, 73, - -550, -930, -502, -929, -930, -452, 308, -626, 345, -409, - 747, -82, 194, 217, -281, -633, 824, 1209, -169, -125, - -930, -122, -930, -930, -930, -930, -106, -117, -930, -475, - -930, -930, -33, -8, -930, -930, -930, -930, -28, 40, - -930, -930, -728, -930, -61, -930, -581, -121, -60, 269, - 310, 251, 520, -930, -930, 774, -857, 1161, -56, -490, + -942, -942, -318, -942, -10, -942, -942, 798, -131, -942, + 1279, -426, 459, -130, -942, -942, -156, -942, -942, -228, + -942, -942, -942, -942, 785, -942, -942, -942, -942, -942, + -489, -942, -942, -113, -942, -942, -942, -942, 220, 415, + -678, -942, -708, -765, -357, -591, -942, -149, -942, 32, + -580, -942, -517, -941, -942, -469, 270, -630, -362, -229, + 63, -83, 297, 132, -293, -656, 792, 1092, -163, -124, + -942, -123, -942, -942, -942, -942, -176, -73, -942, -474, + -942, -942, -44, -18, -942, -942, -942, -942, -29, -42, + -942, -942, -734, -942, -107, -942, -595, -125, -60, 294, + 309, 2, 458, -942, -942, 716, -893, 1213, -71, -491, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 4, 5, 925, 926, 139, 528, 140, 141, 311, - 142, 296, 297, 143, 536, 530, 755, 335, 713, 902, - 349, 716, 1333, 720, 350, 923, 1432, 1501, 1106, 1337, - 590, 984, 1088, 144, 332, 704, 705, 706, 707, 708, - 756, 1255, 757, 786, 1077, 469, 470, 676, 677, 1095, - 414, 740, 534, 936, 937, 471, 679, 730, 803, 813, - 282, 283, 91, 92, 351, 182, 352, 93, 293, 94, - 646, 95, 647, 829, 1031, 1032, 1285, 96, 97, 480, - 476, 477, 98, 99, 145, 695, 878, 146, 100, 101, - 102, 103, 741, 742, 931, 1245, 638, 359, 360, 1531, - 216, 65, 680, 681, 231, 232, 1286, 1287, 627, 66, - 147 + -1, 4, 5, 938, 939, 143, 539, 144, 145, 320, + 146, 303, 304, 147, 547, 541, 767, 344, 725, 915, + 358, 728, 1352, 732, 359, 936, 1452, 1522, 1121, 1356, + 602, 998, 1103, 148, 341, 716, 717, 718, 719, 720, + 768, 1274, 769, 798, 1092, 480, 481, 688, 689, 1110, + 424, 752, 545, 949, 950, 482, 691, 742, 815, 825, + 289, 290, 93, 94, 360, 187, 361, 95, 300, 96, + 658, 97, 659, 841, 1045, 1046, 1304, 98, 99, 491, + 487, 488, 100, 101, 149, 707, 891, 150, 102, 103, + 104, 105, 753, 754, 944, 1264, 650, 368, 369, 1552, + 222, 66, 692, 693, 237, 238, 1305, 1306, 639, 67, + 151 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1570,1748 +1549,1823 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 6, 215, 329, 308, 331, 682, 1246, 643, 924, 509, - 285, 183, 903, 712, 613, 395, 185, 353, 497, 1354, - 354, 799, 718, 617, 609, 355, 790, 850, 362, 835, - 364, 365, 366, 367, 411, 369, 184, 371, 772, 373, - 264, 717, 292, 678, 718, 148, 644, 104, 908, 259, - 407, 260, 556, 516, 650, 389, 412, 1112, 287, 288, - 289, 234, 992, 149, 637, 407, 397, 398, 150, 408, - -757, 557, -758, 404, 405, 1113, 810, 942, 943, 151, - 985, 986, 987, 988, 594, 407, 152, 820, 773, 244, - 284, 284, 153, -759, -760, 607, 791, 912, 294, 914, - 915, 916, 917, 918, 1045, 1019, 1074, 265, 154, 356, - 407, 302, 303, 304, 358, 305, 307, 309, 156, 407, - 313, 268, 269, 270, 775, 1075, 407, 320, 273, 1259, - 215, 860, 326, 327, 357, 330, 333, 334, 1260, 338, - 339, -757, 1006, -758, -757, 1261, -758, 361, 361, 155, - 361, 361, 361, 361, 407, 361, 618, 361, 157, 361, - 851, 290, 1416, 158, -759, -760, 801, -759, -760, 719, - 413, 1355, 159, 1262, 353, 361, 682, 354, 822, 440, - 441, 823, 355, 294, 186, 809, 361, 361, 539, 686, - 160, 719, 407, 361, 361, 457, 459, 438, 291, 1383, - 274, 161, 275, 796, 276, 353, 886, 994, 354, 353, - 1083, 1302, 354, 355, 1387, 905, 734, 355, 1384, 909, - 256, 257, 258, 814, 815, 816, 817, 818, 1022, 1390, - 259, 415, 260, 1388, 407, 407, 1101, 491, 1025, 162, - 407, 989, 990, 991, 1102, 1015, 1016, 277, 1391, 268, - 269, 270, 273, 1477, 1514, 995, 990, 991, 413, 1515, - 284, 284, 872, 873, 874, 163, 356, 1094, 164, 261, - 1249, 358, 572, 819, 165, 455, 284, 284, 455, 455, - 474, 1269, 809, 166, 996, 478, 629, 1105, 630, 407, - 631, 357, 262, 1426, 1427, 1428, 167, 356, 407, 901, - 538, 356, 358, 307, 313, 168, 358, 268, 1516, 499, - 1522, 447, 64, 448, 244, 449, 407, 1517, 1556, 407, - 6, 169, 357, 217, 218, 219, 357, 407, 278, 1523, - 407, 481, 407, 632, 827, 1533, 1007, 1557, 1567, 1107, - 1012, 170, 279, 1, 2, 3, 1568, 280, 10, 1569, - 11, 1570, 281, 1097, 171, 531, 294, 532, 450, 533, - 191, 682, 172, 519, 825, 520, 196, 197, 198, 199, - 200, 173, 1264, 235, 919, 920, 736, 220, 737, 738, - 739, 174, 1341, 885, -97, 1014, -97, 175, -97, 221, - 222, 176, 361, 1410, 1411, 1412, 1413, 1414, 1415, 678, - 187, 1098, 1023, -97, 188, -97, 192, -97, 1416, 1263, - 1256, 591, 193, 531, 633, 532, 406, 993, 1440, 607, - 797, 521, 1108, 1363, 1365, 1367, 223, 224, 634, 225, - 990, 991, 1253, 635, 226, 194, 227, 195, 636, 451, - 263, 253, 254, 255, 455, 256, 257, 258, 455, 455, - 455, 455, 455, 452, 990, 991, 1334, 272, 453, 607, - 798, 286, 455, 1271, 1272, 299, 455, 455, 587, 731, - 310, 628, 314, 230, 640, 472, 1369, 1370, 1371, 1085, - 758, 928, 929, 491, 709, 475, 814, 815, 816, 817, - 818, 809, 1021, 315, 683, 316, 649, 317, 473, 318, - 6, 819, 1024, 403, 1332, 1449, 319, 1450, 1336, 1451, - 1270, 710, 1452, 1453, 1454, 323, 1273, 1274, 1104, 920, - 353, 324, 481, 354, 732, 1110, 1111, 6, 355, 217, - 218, 219, 325, 1421, 1422, 1423, 1424, 1425, 525, 1426, - 1427, 1428, 990, 991, 328, 390, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 1072, 392, 439, 1352, - 393, 399, 413, 443, 445, -275, 482, 493, 494, 510, - 495, 512, 407, 220, 522, 523, 535, 415, 474, 787, - 540, 1412, 1413, 1414, 1415, 221, 222, 586, 527, 455, - 547, 554, 541, 542, 1416, 1338, 640, 543, 544, 498, - 628, 545, 356, 546, 847, 591, 548, 358, 549, 628, - 628, 628, 628, 628, 628, 415, 550, 551, 558, 183, - 903, 552, 223, 224, 185, 225, 415, 357, 511, 553, - 226, 555, 227, 559, 560, 6, 830, 574, 561, 562, - 563, 564, 565, 566, 184, 567, 568, 758, 569, 611, - 472, 575, 576, 758, 578, 579, 580, 731, 582, 731, - 731, 731, 731, 731, 709, 589, 583, 600, 596, 598, - -277, 607, 612, 473, 1023, 616, 1267, 875, 876, 472, - 642, 645, 758, 758, 6, 758, 758, 758, 758, 648, - 570, 997, 998, 684, 687, 711, 688, 628, 689, 1002, - 690, 1003, 473, 691, 1508, 474, 584, 585, 723, 474, - 692, 693, 732, 592, 732, 732, 732, 732, 732, 1421, - 1422, 1423, 1424, 1425, 714, 1426, 1427, 1428, 244, 735, - 759, 932, 183, 761, 939, 1435, 762, 185, 769, 771, - 1509, 1510, 1511, 767, 768, 787, 415, 792, 770, 1086, - 802, 1087, 1444, 1445, 1446, 682, 811, 184, 821, -366, - 287, 288, 289, 747, 1360, 824, 1361, 748, 847, 1089, - 828, 832, 833, 472, 834, 639, 836, 840, 841, 879, - 880, 849, 628, 881, 415, 415, 882, 883, 787, 481, - 884, 628, 887, 678, 793, 889, 473, 890, 640, 904, - 906, 907, 472, 1070, 910, 913, 921, 626, 640, 933, - 749, 934, 930, 941, 999, 1000, 1008, 794, 1033, 1001, - 1009, 1416, 1430, 722, 1004, 473, 1433, 809, 1010, 1504, - 1011, 1017, 1018, 746, 819, -284, 1507, 1027, 1030, 1037, - 1039, 758, 1512, 1513, 1044, 1073, 1076, 731, 1079, 1563, - 1080, 1081, 709, 251, 252, 253, 254, 255, 1571, 256, - 257, 258, 750, 290, 1092, 1093, 1248, 6, 1099, 1100, - 1078, 1114, 1115, 1103, 920, 758, 1250, 628, 584, 1109, - 1247, 1251, 330, 628, 628, 628, 628, 628, 628, 1096, - 1252, 751, 415, 788, 1258, 1535, 1416, 1266, 1538, 1275, - 472, 1276, 732, 1277, 472, 752, 1293, 639, 1288, 640, - 753, 1278, 474, 1289, 1265, 754, 1290, 242, 243, 1291, - 1292, 1502, 1296, 473, 939, 1294, 1298, 473, 244, 1297, - 1305, 1306, 1553, 1307, 287, 288, 289, 619, 217, 218, - 219, 620, 1308, 1310, 1311, 826, 795, 1562, 1423, 1424, - 1425, 1312, 1426, 1427, 1428, 1313, 804, 805, 806, 807, - 808, 1309, 183, 1331, 1335, 1339, 1373, 185, 1340, 1357, - 842, 843, 844, 845, 1350, 848, 472, 1346, 1414, 1415, - 640, 1343, 1344, 1358, 621, 1356, 1359, 184, 1372, 1416, - 1536, 1375, 220, 591, 1376, 284, 1378, 1377, 1380, 473, - 474, 1379, 415, 415, 221, 222, 474, 474, 1382, 1385, - 1389, 1386, 1392, 454, 456, 458, 460, 461, 1431, 1434, - 1393, 1421, 1422, 1423, 1424, 1425, 361, 1426, 1427, 1428, - 1394, 1395, 1399, 1436, 1438, 472, 1437, 290, 1441, 1442, - 1443, 223, 224, 900, 225, 938, 1447, 1448, 1460, 226, - 1461, 227, 1462, 251, 252, 253, 254, 255, 473, 256, - 257, 258, 1463, 1464, 1465, 622, 1466, 1467, 1468, 1473, - 1505, 1518, 1476, 1096, 1500, 1503, 1540, 1506, 1520, 623, - 1524, 1529, 628, 1521, 624, 1537, 1525, 1526, 591, 625, - 1539, 1542, 591, 1527, -276, 474, 287, 288, 289, 724, - 1530, 361, 361, 725, 1541, 1543, 1544, 472, 1545, 639, - 1546, 1547, 1548, 1550, 1421, 1422, 1423, 1424, 1425, 639, - 1426, 1427, 1428, 1026, 1549, 1552, 1554, 1555, 1013, 1564, - 473, 1565, 1566, 1572, 1573, 1342, 500, 1020, 831, 1351, - 1429, 1043, 515, 1090, 888, 1519, 726, 1314, 517, 1047, - 1349, 1345, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, - 1066, 1067, 1353, 1374, 1071, 588, 839, 0, 287, 288, - 289, 893, 599, 630, 0, 894, 602, 603, 604, 605, - 606, 0, 758, 0, 0, 472, 0, 0, 0, 290, - 608, 472, 472, 0, 614, 615, 0, 0, 0, 0, - 0, 932, 70, 233, 71, 72, 73, 0, 473, 0, - 639, 0, 0, 1084, 473, 473, 0, 727, 895, 0, - 804, 805, 806, 807, 808, 938, 271, 0, 0, 0, - 0, 728, 80, 0, 683, 0, 729, 0, 0, 0, - 0, 0, 787, 284, 0, 0, 298, 1406, 267, 0, - 214, 0, 0, 0, 474, 758, 474, 1408, 1409, 1410, - 1411, 1412, 1413, 1414, 1415, 0, 322, 6, 82, 83, - 0, 290, 0, 0, 1416, 0, 337, 0, 0, 1254, - 472, 639, 0, 1257, 0, 88, 0, 0, 0, 0, - 90, 0, 0, 0, 0, 1456, 1457, 0, 1458, 896, - 1459, 0, 0, 473, 0, 0, 0, 0, 0, 0, - 0, 0, 474, 897, 0, 0, 474, 1406, 898, 591, - 0, 391, 0, 899, 394, 1330, 939, 789, 0, 0, - 0, 0, 0, 0, 1300, 0, 591, 591, 591, 363, - 0, 0, 0, 1329, 368, 0, 370, 1498, 372, 0, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 0, 0, 0, 0, 0, - 409, 410, 0, 0, 0, 396, 0, 0, 0, 400, - 0, 401, 402, 0, 0, 0, 0, 0, 0, 0, - 0, 1532, 479, 1417, 1418, 1419, 1420, 436, 0, 1421, - 1422, 1423, 1424, 1425, 0, 1426, 1427, 1428, 0, 0, - 0, 474, 0, 591, 0, 0, 446, 0, 1020, 0, - 591, 0, 0, 787, 787, 787, 591, 591, 0, 472, - 0, 0, 0, 0, 490, 70, 492, 71, 72, 73, - 1078, 0, 0, 0, 0, 0, 0, 0, 0, 472, - 0, 472, 473, 502, 0, 503, 504, 505, 506, 507, - 508, 444, 0, 0, 0, 80, 1558, 1559, 1560, 0, - 1561, 0, 473, 0, 473, 0, 0, 518, 0, 591, - 474, 267, 591, 0, 0, 0, 526, 0, 0, 529, - 0, 0, 0, 0, 0, 0, 70, 537, 71, 72, - 73, 82, 83, 0, 0, 0, 0, 472, 266, 0, - 0, 472, 0, 0, 0, 0, 591, 0, 88, 0, - 0, 0, 0, 90, 0, 0, 80, 0, 0, 0, - 473, 591, 787, 0, 473, 0, 573, 0, 1348, 0, - 577, 787, 267, 0, 0, 238, 239, 240, 241, 242, - 243, 1330, 233, 1330, 1330, 1330, 1330, 1330, 0, 1330, - 244, 0, 82, 83, 0, 0, 0, 0, 0, 1398, - 0, 1400, 1401, 1402, 1403, 1404, 0, 1407, 0, 88, - 0, 571, 0, 0, 90, 0, 1300, 0, 0, 601, - 0, 1381, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 298, 472, 176, 0, 0, - 0, 1410, 1411, 1412, 1413, 1414, 1415, 641, 0, 0, - 0, 0, 0, 0, 0, 0, 1416, 298, 0, 473, - 0, 0, 0, 0, 0, 298, 0, 938, 0, 1330, - 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, - 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1478, 1479, 1480, - 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, - 1491, 1492, 1493, 1494, 1495, 472, 0, 0, 0, 0, - 760, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 0, 256, 257, 258, 0, 217, 218, 219, 473, 0, - 0, 0, 0, 0, 0, 0, 0, 1330, 0, 715, - 0, 0, 0, 0, 0, 0, 733, 0, 1499, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 409, 0, - 0, 7, 8, 9, 10, 0, 11, 12, 13, 14, - 0, 0, 0, 763, 0, 764, 0, 765, 1420, 220, - 0, 1421, 1422, 1423, 1424, 1425, 0, 1426, 1427, 1428, - 1330, 221, 222, 1330, 237, 238, 239, 240, 241, 242, - 243, 812, 0, 0, 0, 0, 0, 0, 15, 0, - 244, 1551, 16, 0, 17, 18, 19, 0, 0, 298, - 20, 0, 743, 744, 21, 22, 0, 0, 223, 224, - 0, 225, 0, 23, 24, 25, 226, 0, 227, 26, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 0, 228, 44, 0, 45, - 229, 46, 0, 0, 0, 230, 47, 892, 48, 49, - 50, 0, 0, 51, 0, 0, 0, 0, 52, 0, - 0, 53, 0, 846, 0, 54, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 745, 0, 0, 0, 927, - 0, 0, 0, 56, 0, 0, 57, 58, 59, 0, - 0, 60, 0, 61, 62, 0, 0, 63, 0, 0, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 0, 256, 257, 258, 0, 0, 0, 298, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, - 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, - 0, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 0, 0, 0, 0, 0, 0, 0, 1138, - 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, - 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 0, 0, - 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, - 1167, 1168, 1169, 1170, 1171, 0, 1172, 0, 1173, 1174, - 1175, 1176, 1177, 1178, 1179, 1180, 1181, 0, 1182, 1183, - 1184, 0, 0, 1068, 0, 240, 241, 242, 243, 0, - 0, 1034, 1035, 1036, 0, 1038, 1185, 1040, 244, 1041, - 1042, 0, 1091, 1186, 1187, 1188, 0, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, - 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 0, 0, 0, 1222, 1223, 1224, 1225, 1226, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1439, 1243, 1244, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 239, 240, 241, 242, 243, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 0, 1268, - 0, 249, 250, 251, 252, 253, 254, 255, 0, 256, - 257, 258, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1295, 0, 0, 0, 0, 0, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 0, 1127, 1128, - 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 0, - 0, 0, 0, 0, 0, 0, 1138, 1139, 1140, 1141, - 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, - 1152, 1153, 1154, 1155, 1156, 0, 0, 1157, 1158, 1159, - 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1170, 1171, 927, 1172, 0, 1173, 1174, 1175, 1176, 1177, - 1178, 1179, 1180, 1181, 0, 1182, 1183, 1184, 248, 249, - 250, 251, 252, 253, 254, 255, 0, 256, 257, 258, - 0, 1315, 0, 1185, 0, 0, 0, 0, 0, 0, - 1186, 1187, 1188, 0, 1189, 1190, 1191, 1192, 1193, 1194, - 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, - 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, - 1215, 1216, 1217, 1218, 1219, 1220, 1221, 0, 0, 0, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, - 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, - 1242, 0, 1243, 1244, 0, 7, 8, 9, 10, 0, - 11, 12, 13, 201, 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 237, 238, - 239, 240, 241, 242, 243, 0, 0, 0, 0, 0, - 0, 0, 15, 69, 244, 0, 202, 0, 203, 204, - 205, 74, 75, 0, 20, 76, 0, 0, 206, 22, - 0, 0, 78, 0, 1368, 0, 0, 23, 24, 207, - 0, 0, 0, 26, 0, 0, 208, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 209, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 0, 45, 0, 46, 0, 0, 0, 0, - 47, 0, 210, 211, 50, 0, 0, 51, 84, 0, - 0, 0, 52, 0, 0, 53, 85, 86, 87, 212, - 0, 0, 89, 0, 213, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, - 57, 58, 59, 0, 0, 60, 1405, 61, 62, 0, - 0, 63, 0, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 0, 256, 257, 258, 0, 0, - 0, 595, 0, 7, 8, 9, 10, 0, 11, 12, - 13, 496, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1496, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1469, 1470, 1471, 1472, 0, 1474, 0, 1475, 0, - 15, 342, 0, 0, 202, 0, 203, 204, 205, 74, - 0, 0, 20, 343, 0, 0, 206, 22, 0, 0, - 78, 0, 0, 0, 1528, 23, 24, 207, 0, 0, - 0, 26, 0, 0, 208, 28, 29, 30, 31, 32, + 6, 188, 221, 1006, 317, 338, 340, 1265, 625, 724, + 785, 292, 520, 508, 937, 694, 190, 916, 847, 655, + 784, 1373, 362, 363, 802, 271, 405, 189, 371, 299, + 373, 374, 375, 376, 377, 629, 379, 690, 381, 730, + 383, 275, 276, 277, 862, 266, 1033, 267, 280, 621, + 527, 729, -769, 921, 730, 106, 399, 834, 822, -770, + 835, 251, 240, 294, 295, 296, 423, 407, 408, 832, + 417, 656, -771, 364, 414, 415, -772, 873, 568, 662, + 416, 821, 955, 956, 421, 999, 1000, 1001, 1002, 418, + 619, 803, 291, 291, 272, 417, 417, 569, 160, 458, + 301, 459, 365, 460, 787, 925, 422, 927, 928, 929, + 930, 931, 1436, 1089, 606, 1059, -99, 367, -99, 417, + -99, 638, 266, -769, 267, 417, -769, 152, 366, 154, + -770, 1020, 1090, -770, 532, 221, 293, 918, 1278, 811, + 417, 922, 423, -771, 1279, 153, -771, -772, 461, 417, + -772, 370, 370, 155, 370, 370, 370, 370, 370, 1280, + 370, 813, 370, 423, 370, 417, 319, 530, 1281, 531, + 297, 251, 630, 275, 276, 277, 280, 1374, 831, 156, + 370, 863, 362, 363, 1321, 451, 452, 694, 301, 1008, + 731, 370, 370, 1109, 698, 263, 264, 265, 370, 370, + 1127, 468, 470, 550, 449, 731, 1402, 298, 821, 269, + 1098, 885, 886, 887, 157, 362, 363, 899, 1128, 362, + 363, 746, 619, 809, 1003, 1403, 1036, 1029, 1030, 502, + 158, 462, 275, 364, 1406, 1409, 1039, 425, 159, 1004, + 1005, 417, 1116, 161, 417, 463, 1446, 1447, 1448, 10, + 464, 11, 1009, 1407, 1410, 649, 492, 1, 2, 3, + 1497, 807, 365, 1535, 619, 810, 364, 291, 291, 163, + 364, 816, 817, 818, 819, 820, 1268, 367, 584, 932, + 933, 786, 466, 291, 291, 466, 466, 485, 366, 1288, + 417, 162, 489, 164, 549, 365, 1120, 1010, 787, 365, + 417, 260, 261, 262, 165, 263, 264, 265, 417, 1536, + 367, 65, 788, 1543, 367, 417, 941, 942, 1577, 1537, + 417, 366, 223, 224, 225, 366, 789, 1538, 790, 6, + 821, 1035, 1544, 166, 1554, 1026, 1112, 1578, 1122, 1588, + 839, 167, 417, 168, 791, 1123, 465, 467, 469, 471, + 472, 542, 281, 543, 282, 544, 283, 417, 913, 191, + 196, 1589, 1021, 1283, 837, 301, 201, 202, 203, 204, + 205, 417, 694, 241, 268, 792, 1590, 169, 793, 170, + 226, 794, 748, 171, 749, 750, 751, 831, 1038, 898, + 1591, 1360, 227, 228, 690, 808, -99, 795, -99, 1113, + -99, 284, 370, 1004, 1005, 1117, 1382, 1384, 1386, 796, + 1275, 1004, 1005, 1272, 197, 826, 827, 828, 829, 830, + 484, 603, 542, 797, 543, 1460, 1007, 1119, 933, 229, + 230, 172, 231, 332, 1289, 1125, 1126, 232, 173, 233, + 1292, 1293, 174, 1027, 1004, 1005, 1353, 1290, 1291, 1004, + 1005, 492, 1034, 333, 175, 466, 1436, 176, 177, 466, + 466, 466, 466, 466, 178, 743, 1388, 1389, 1390, 179, + 180, 181, 192, 466, 193, 198, 770, 466, 466, 502, + 199, 334, 640, 1286, 285, 652, 200, 270, 1469, 279, + 1470, 914, 1471, 306, 721, 1472, 1473, 1474, 286, 323, + 324, 325, 326, 287, 327, 695, 328, 413, 288, 337, + 400, 6, 402, 403, 409, 456, 486, 1371, 493, 611, + -278, 504, 722, 614, 615, 616, 617, 618, 505, 1282, + 1357, 506, 521, 362, 363, 744, 533, 620, 6, 1099, + 523, 626, 627, 534, 538, 546, 816, 817, 818, 819, + 820, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 551, 1087, 450, 417, 552, 1028, 553, 454, + 554, 555, 556, 557, 364, 483, 1443, 1444, 1445, 558, + 1446, 1447, 1448, 559, 1037, 294, 295, 296, 736, 425, + 485, 799, 737, 561, 560, 562, 563, 564, 624, 484, + 565, 466, 566, 365, 567, 509, 570, 571, 652, 572, + 573, 574, 640, 575, 576, 1351, 859, 603, 367, 1355, + 188, 640, 640, 640, 640, 640, 640, 425, 484, 366, + 577, 578, 916, 586, 579, 190, 522, 738, 425, 580, + 536, 581, 587, 591, 770, 588, 189, 6, 842, 590, + 770, 592, 594, 598, 743, 595, 743, 743, 743, 743, + 743, 601, 1100, 612, 608, 801, 610, -280, 619, 826, + 827, 828, 829, 830, 628, 721, 654, 657, 660, 770, + 770, 696, 770, 770, 770, 770, 699, 723, 700, 1530, + 1531, 1532, 297, 1379, 701, 1380, 6, 702, 703, 582, + 704, 705, 747, 1011, 1012, 726, 773, 771, 774, 640, + 804, 1016, 779, 1017, 780, 596, 597, 485, 1529, 492, + 739, 485, 604, 484, 744, 781, 744, 744, 744, 744, + 744, 782, 783, 188, 740, 814, 1034, 823, 833, 741, + -369, 836, 840, 945, 806, 844, 952, 845, 190, 853, + 846, 1450, 484, 848, 852, 1453, 861, 799, 425, 189, + 892, 1101, 1102, 623, 483, 893, 894, 895, 896, 897, + 900, 902, 903, 694, 917, 294, 295, 296, 759, 1104, + 859, 943, 760, 919, 923, 651, 920, 926, 946, 934, + 947, 954, 1023, 483, 640, 690, 425, 425, 1022, 1584, + 799, 1013, 1014, 640, 1015, 1018, 1024, 1041, 1592, 1025, + 652, 1031, 1032, 1044, 821, 831, 1085, -287, 1051, 1053, + 652, 1088, 735, 1058, 1091, 1094, 1095, 761, 1096, 1108, + 1047, 249, 250, 734, 1107, 1114, 223, 224, 225, 770, + 1115, 1118, 251, 758, 1129, 743, 1130, 933, 1267, 1269, + 484, 1523, 1124, 1266, 484, 1270, 1271, 1277, 1285, 1294, + 1455, 1295, 1297, 1296, 721, 1307, 1309, 1308, 1310, 1037, + 1311, 1313, 1315, 770, 1316, 1317, 1324, 1464, 1465, 1466, + 6, 762, 297, 1093, 1325, 1326, 1327, 1328, 483, 596, + 640, 641, 1329, 642, 226, 643, 640, 640, 640, 640, + 640, 640, 1111, 1330, 800, 425, 227, 228, 1331, 805, + 763, 1354, 1358, 1332, 1350, 744, 1312, 483, 651, 1359, + 1369, 1557, 652, 1365, 764, 485, 484, 1284, 1391, 765, + 1412, 1404, 1394, 1375, 766, 1376, 1405, 952, 1377, 1378, + 644, 1395, 1396, 229, 230, 1397, 231, 1399, 1398, 1411, + 251, 232, 1401, 233, 1413, 1525, 838, 1408, 1414, 1418, + 1451, 1454, 1528, 1458, 1436, 188, 1462, 1456, 1533, 1534, + 258, 259, 260, 261, 262, 1457, 263, 264, 265, 1392, + 190, 854, 855, 856, 857, 484, 860, 1461, 1463, 1467, + 1468, 189, 1362, 1363, 652, 1480, -279, 294, 295, 296, + 906, 1481, 642, 1482, 907, 1483, 1484, 603, 1485, 291, + 1486, 1487, 1488, 1493, 485, 483, 425, 425, 1496, 483, + 485, 485, 1556, 645, 1521, 1559, 1526, 1524, 1546, 1539, + 1527, 1541, 1542, 1545, 1547, 1550, 1548, 646, 1561, 1558, + 370, 1560, 647, 1562, 1551, 1563, 1564, 648, 1565, 908, + 294, 295, 296, 631, 1566, 1567, 951, 632, 484, 1574, + 1568, 1570, 1575, 1569, 1571, 1427, 1428, 1429, 1430, 1431, + 1432, 1433, 1434, 1435, 1583, 1573, 1576, 1585, 258, 259, + 260, 261, 262, 1436, 263, 264, 265, 1586, 1111, 1587, + 1593, 483, 1441, 1442, 1443, 1444, 1445, 640, 1446, 1447, + 1448, 1349, 633, 603, 297, 1594, 1361, 603, 511, 843, + 485, 1370, 1449, 1105, 1540, 1368, 370, 370, 526, 901, + 651, 1333, 1393, 1061, 1364, 528, 851, 600, 0, 0, + 651, 0, 909, 0, 1040, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 220, 0, 910, 484, 0, 0, + 483, 911, 1057, 484, 484, 0, 912, 297, 0, 0, + 0, 0, 0, 1062, 1063, 1064, 1065, 1066, 1067, 1068, + 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 0, 634, 1086, 0, 0, 0, + 1372, 0, 0, 0, 0, 0, 770, 0, 0, 635, + 0, 0, 0, 1553, 636, 1437, 1438, 1439, 1440, 637, + 0, 1441, 1442, 1443, 1444, 1445, 0, 1446, 1447, 1448, + 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, + 945, 0, 651, 0, 0, 0, 372, 0, 0, 0, + 0, 0, 378, 484, 380, 0, 382, 951, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 695, 0, 0, 239, 0, 0, 770, + 0, 799, 291, 406, 0, 0, 1425, 410, 0, 411, + 412, 0, 0, 485, 0, 485, 0, 0, 0, 0, + 278, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 1273, 0, 651, 0, 1276, 0, 0, 0, + 305, 0, 483, 0, 0, 0, 0, 0, 483, 483, + 0, 0, 0, 0, 1476, 1477, 0, 1478, 0, 1479, + 0, 1349, 331, 1349, 1349, 1349, 1349, 1349, 0, 1349, + 0, 485, 346, 0, 0, 485, 1425, 0, 603, 0, + 0, 0, 0, 0, 0, 952, 0, 1319, 0, 0, + 0, 455, 0, 0, 0, 603, 603, 603, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1519, 0, 309, + 310, 311, 312, 313, 0, 314, 316, 318, 401, 0, + 322, 404, 0, 1348, 0, 0, 484, 329, 0, 0, + 0, 0, 335, 336, 0, 339, 342, 343, 483, 347, + 348, 0, 0, 0, 0, 0, 484, 0, 484, 1349, + 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, + 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 419, 420, + 0, 485, 0, 603, 0, 0, 0, 0, 0, 0, + 603, 0, 0, 799, 799, 799, 603, 603, 0, 0, + 0, 0, 0, 494, 495, 496, 447, 0, 0, 0, + 1093, 0, 0, 0, 484, 0, 0, 0, 484, 0, + 0, 0, 0, 0, 583, 457, 0, 0, 1349, 0, + 0, 0, 0, 0, 0, 0, 0, 1579, 1580, 1581, + 0, 1582, 0, 501, 0, 503, 0, 0, 0, 0, + 603, 485, 0, 603, 0, 0, 0, 0, 0, 0, + 0, 226, 0, 0, 513, 0, 514, 515, 516, 517, + 518, 519, 0, 227, 228, 0, 0, 0, 0, 0, + 349, 350, 1349, 0, 0, 1349, 0, 603, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 537, 0, 0, + 540, 483, 603, 799, 0, 0, 1367, 0, 548, 0, + 499, 230, 799, 231, 484, 0, 316, 322, 232, 0, + 233, 483, 351, 483, 510, 71, 0, 72, 73, 74, + 75, 76, 0, 0, 0, 0, 0, 352, 0, 0, + 79, 0, 0, 0, 80, 0, 0, 298, 585, 0, + 0, 81, 589, 727, 1319, 0, 0, 0, 82, 1400, + 745, 0, 0, 1417, 239, 1419, 1420, 1421, 1422, 1423, + 0, 1426, 0, 0, 83, 494, 495, 496, 0, 483, + 0, 0, 0, 483, 484, 0, 353, 0, 775, 0, + 776, 0, 777, 0, 84, 85, 0, 0, 0, 0, + 86, 0, 613, 0, 0, 951, 0, 0, 354, 355, + 89, 90, 0, 497, 91, 498, 92, 0, 305, 0, + 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, + 653, 0, 0, 226, 0, 0, 0, 357, 0, 0, + 305, 0, 0, 0, 0, 227, 228, 0, 305, 0, + 0, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, + 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, + 7, 8, 9, 10, 0, 11, 12, 13, 507, 483, + 0, 0, 499, 230, 0, 231, 0, 1520, 0, 0, + 232, 0, 233, 772, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 858, 248, + 249, 250, 0, 661, 0, 0, 500, 0, 15, 351, + 0, 251, 207, 0, 208, 209, 210, 211, 76, 0, + 0, 0, 0, 21, 352, 0, 0, 212, 23, 0, + 0, 80, 419, 0, 0, 0, 24, 25, 213, 483, + 0, 0, 27, 0, 0, 214, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 209, 0, 0, 0, 0, 0, 0, 0, 0, 44, - 0, 45, 0, 46, 0, 0, 0, 0, 47, 0, - 210, 211, 50, 0, 0, 51, 84, 0, 0, 0, - 52, 0, 0, 53, 345, 346, 87, 212, 0, 0, - 89, 0, 213, 0, 7, 8, 9, 10, 0, 11, - 12, 13, 14, 0, 0, 56, 189, 0, 57, 58, - 59, 0, 0, 60, 0, 61, 62, 0, 0, 63, - 0, 0, 0, 0, 0, 236, 237, 238, 239, 240, - 241, 242, 243, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 244, 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, 26, 0, 0, 27, 28, 29, 30, 31, + 43, 215, 0, 0, 223, 224, 225, 1572, 0, 0, + 45, 0, 46, 0, 47, 824, 0, 0, 0, 48, + 0, 216, 217, 51, 0, 0, 52, 86, 0, 0, + 0, 53, 0, 305, 54, 354, 355, 89, 218, 0, + 0, 91, 0, 219, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 58, + 59, 60, 226, 0, 61, 0, 62, 63, 0, 0, + 64, 0, 0, 0, 227, 228, 0, 0, 0, 258, + 259, 260, 261, 262, 0, 263, 264, 265, 0, 0, + 0, 905, 0, 0, 0, 0, 1048, 1049, 1050, 0, + 1052, 0, 1054, 0, 1055, 1056, 0, 0, 0, 0, + 0, 229, 230, 0, 231, 0, 0, 0, 0, 232, + 0, 233, 0, 940, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 888, 889, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, + 0, 0, 0, 235, 0, 0, 0, 0, 236, 0, + 0, 305, 0, 0, 0, 0, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 0, 0, 0, 0, 0, 0, 0, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 0, 0, 1173, 1174, + 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 1188, 1189, 1190, 0, 1191, 0, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 0, 1201, + 1202, 1203, 0, 0, 0, 0, 0, 0, 1083, 0, + 0, 0, 0, 0, 0, 0, 0, 1204, 0, 0, + 0, 0, 0, 0, 1205, 1206, 1207, 1106, 1208, 1209, + 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, + 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, + 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, + 1240, 0, 0, 0, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, + 1257, 1258, 1259, 1260, 1261, 1459, 1262, 1263, 0, 0, + 0, 339, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 0, 0, 0, 0, 0, 0, 0, 1334, + 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1287, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 0, 0, 0, 0, 0, 0, 1314, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 0, 0, 1173, 1174, + 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 1188, 1189, 1190, 0, 1191, 0, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 0, 1201, + 1202, 1203, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 0, 263, 264, 265, 1204, 0, 940, + 607, 0, 0, 0, 1205, 1206, 1207, 0, 1208, 1209, + 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, + 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, + 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, + 1240, 0, 0, 786, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, + 1257, 1258, 1259, 1260, 1261, 0, 1262, 1263, 0, 0, + 0, 0, 0, 0, 788, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 789, 0, + 790, 0, 0, 0, 0, 0, 0, 0, 1424, 0, + 0, 0, 0, 0, 0, 0, 791, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 8, 9, 10, 0, 11, + 12, 13, 206, 69, 0, 0, 0, 792, 0, 0, + 793, 0, 0, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 795, + 0, 0, 0, 1489, 1490, 1491, 1492, 0, 1494, 0, + 1495, 796, 15, 70, 0, 1387, 207, 0, 208, 209, + 210, 211, 76, 77, 0, 797, 0, 21, 78, 0, + 0, 212, 23, 0, 0, 80, 0, 0, 0, 0, + 24, 25, 213, 0, 0, 0, 27, 0, 0, 214, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 215, 0, 0, 0, 0, + 0, 0, 0, 0, 45, 0, 46, 0, 47, 0, + 0, 0, 0, 48, 0, 216, 217, 51, 0, 0, + 52, 86, 0, 0, 0, 53, 0, 0, 54, 87, + 88, 89, 218, 0, 0, 91, 0, 219, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 0, 58, 59, 60, 0, 0, 61, 0, + 62, 63, 0, 0, 64, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1517, + 0, 0, 0, 0, 0, 0, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 251, 0, 0, 16, 0, 17, + 18, 19, 20, 1434, 1435, 0, 0, 0, 21, 0, + 755, 756, 22, 23, 1436, 0, 1549, 0, 0, 0, + 0, 24, 25, 26, 0, 0, 0, 27, 0, 0, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 0, 0, 0, + 0, 0, 0, 0, 0, 45, 0, 46, 0, 47, + 0, 0, 0, 0, 48, 0, 49, 50, 51, 0, + 0, 52, 0, 0, 0, 0, 53, 0, 0, 54, + 0, 0, 0, 55, 7, 8, 9, 10, 56, 11, + 12, 13, 14, 757, 0, 0, 194, 0, 0, 0, + 0, 57, 0, 0, 58, 59, 60, 0, 0, 61, + 0, 62, 63, 0, 0, 64, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, + 265, 0, 15, 0, 1322, 0, 16, 0, 17, 18, + 19, 20, 1441, 1442, 1443, 1444, 1445, 21, 1446, 1447, + 1448, 22, 23, 0, 0, 0, 0, 0, 0, 0, + 24, 25, 26, 0, 0, 0, 27, 0, 0, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 0, 0, + 0, 0, 0, 0, 45, 0, 46, 0, 47, 0, + 0, 0, 0, 48, 0, 49, 50, 51, 0, 0, + 52, 0, 0, 0, 0, 53, 0, 0, 54, 0, + 0, 0, 55, 7, 8, 9, 10, 56, 11, 12, + 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 0, 58, 59, 60, 0, 0, 61, 0, + 195, 63, 0, 0, 64, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 251, 0, 16, 0, 17, 18, 19, + 20, 0, 0, 0, 0, 0, 21, 0, 0, 0, + 22, 23, 0, 0, 0, 0, 0, 0, 0, 24, + 25, 26, 0, 0, 0, 27, 0, 0, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 0, 46, 0, 47, 0, 0, + 0, 0, 48, 0, 49, 50, 51, 0, 0, 52, + 0, 0, 0, 0, 53, 0, 0, 54, 0, 0, + 0, 55, 7, 8, 9, 10, 56, 11, 12, 13, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 57, + 0, 0, 58, 59, 60, 0, 0, 61, 0, 62, + 63, 448, 0, 64, 0, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, + 15, 453, 0, 1555, 16, 0, 17, 18, 19, 20, + 0, 0, 0, 0, 0, 21, 0, 0, 0, 22, + 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, + 26, 0, 0, 0, 27, 0, 0, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 0, 0, 0, 0, 0, 0, + 0, 0, 45, 0, 46, 0, 47, 0, 0, 0, + 0, 48, 0, 49, 50, 51, 0, 0, 52, 0, + 0, 0, 0, 53, 0, 0, 54, 0, 0, 0, + 55, 7, 8, 9, 10, 56, 11, 12, 13, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, + 0, 58, 59, 60, 0, 0, 61, 0, 62, 63, + 0, 0, 64, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 0, 0, 0, 0, 0, 0, 15, + 733, 251, 0, 16, 0, 17, 18, 19, 20, 0, + 0, 0, 0, 0, 21, 0, 0, 0, 22, 23, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, - 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, - 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, - 8, 9, 10, 55, 11, 12, 13, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, - 58, 59, 0, 0, 60, 0, 190, 62, 0, 0, - 63, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 0, 256, 257, 258, 15, 0, 0, 1303, - 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, - 0, 0, 21, 22, 0, 483, 484, 485, 0, 0, - 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, - 0, 0, 0, 0, 47, 0, 48, 49, 50, 220, - 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, - 0, 221, 222, 54, 7, 8, 9, 10, 55, 11, - 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, - 0, 61, 62, 437, 0, 63, 0, 0, 488, 224, - 0, 225, 0, 0, 0, 0, 226, 0, 227, 0, - 0, 15, 442, 0, 0, 16, 0, 17, 18, 19, - 0, 0, 0, 20, 0, 0, 0, 21, 22, 0, - 0, 0, 0, 0, 0, 291, 23, 24, 25, 0, - 0, 0, 26, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, - 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, - 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, - 8, 9, 10, 55, 11, 12, 13, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, - 58, 59, 0, 0, 60, 0, 61, 62, 0, 0, - 63, 0, 0, 0, 236, 237, 238, 239, 240, 241, - 242, 243, 0, 0, 0, 0, 15, 721, 0, 0, - 16, 244, 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, 26, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, - 0, 0, 0, 0, 47, 0, 48, 49, 50, 0, - 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, - 0, 0, 0, 54, 7, 8, 9, 10, 55, 11, - 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, - 0, 61, 62, 0, 0, 63, 0, 0, 593, 0, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 15, 256, 257, 258, 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, 26, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, - 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, - 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, - 8, 9, 10, 55, 11, 12, 13, 14, 935, 0, - 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, - 58, 59, 0, 0, 60, 0, 61, 62, 0, 0, - 63, 0, 0, 0, 236, 237, 238, 239, 240, 241, - 242, 243, 0, 0, 0, 0, 15, 0, 0, 0, - 16, 244, 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, 26, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, - 0, 0, 0, 0, 47, 0, 48, 49, 50, 0, - 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, - 0, 0, 0, 54, 7, 8, 9, 10, 55, 11, - 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, - 0, 61, 62, 1069, 0, 63, 0, 940, 0, 0, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 15, 256, 257, 258, 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, 26, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, - 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, - 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, - 8, 9, 10, 55, 11, 12, 13, 14, 1347, 0, - 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, - 58, 59, 0, 0, 60, 0, 61, 62, 0, 0, - 63, 0, 0, 0, 236, 237, 238, 239, 240, 241, - 242, 243, 0, 0, 0, 0, 15, 0, 0, 0, - 16, 244, 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, 26, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, - 0, 0, 0, 0, 47, 0, 48, 49, 50, 0, - 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, - 0, 0, 0, 54, 7, 8, 9, 10, 55, 11, - 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, - 0, 61, 62, 1497, 0, 63, 1279, 0, 0, 0, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 15, 256, 257, 258, 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, 26, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 45, 0, 46, 483, 484, 485, 0, 47, - 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, - 0, 52, 0, 0, 53, 0, 0, 0, 54, 651, - 652, 653, 10, 55, 11, 654, 655, 67, 68, 0, - 0, 656, 486, 0, 487, 0, 56, 0, 0, 57, - 58, 59, 0, 0, 60, 0, 61, 62, 0, 220, - 63, 236, 237, 238, 239, 240, 241, 242, 243, 0, - 0, 221, 222, 464, 0, 0, 657, 69, 244, 0, - 70, 0, 71, 72, 73, 74, 465, 0, 658, 76, - 0, 0, 77, 659, 0, 0, 78, 0, 0, 0, - 0, 660, 661, 79, 0, 0, 0, 0, 488, 224, - 80, 225, 0, 0, 0, 0, 226, 0, 227, 0, - 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 0, 662, 0, 663, 0, 664, - 0, 0, 489, 466, 665, 0, 82, 83, 666, 0, - 0, 667, 84, 0, 0, 0, 668, 0, 0, 669, - 85, 86, 87, 88, 0, 0, 89, 0, 90, 7, + 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 45, 0, 46, 0, 47, 0, 0, 0, 0, + 48, 0, 49, 50, 51, 0, 0, 52, 0, 0, + 0, 0, 53, 0, 0, 54, 0, 0, 0, 55, + 7, 8, 9, 10, 56, 11, 12, 13, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, + 58, 59, 60, 0, 0, 61, 0, 62, 63, 0, + 953, 64, 0, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 263, 264, 265, 15, 0, + 0, 0, 16, 0, 17, 18, 19, 20, 0, 0, + 0, 0, 0, 21, 0, 0, 0, 22, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, + 45, 0, 46, 0, 47, 0, 0, 0, 0, 48, + 0, 49, 50, 51, 0, 0, 52, 0, 0, 0, + 0, 53, 0, 0, 54, 0, 0, 0, 55, 7, + 8, 9, 10, 56, 11, 12, 13, 14, 948, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 58, + 59, 60, 0, 0, 61, 0, 62, 63, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 20, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 0, 0, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 45, + 0, 46, 0, 47, 0, 0, 0, 0, 48, 0, + 49, 50, 51, 0, 0, 52, 0, 0, 0, 0, + 53, 0, 0, 54, 0, 0, 0, 55, 7, 8, + 9, 10, 56, 11, 12, 13, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 57, 0, 0, 58, 59, + 60, 0, 0, 61, 0, 62, 63, 1084, 0, 64, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 251, 0, + 16, 0, 17, 18, 19, 20, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 22, 23, 0, 0, 0, + 0, 0, 0, 0, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, + 46, 0, 47, 0, 0, 0, 0, 48, 0, 49, + 50, 51, 0, 0, 52, 0, 0, 0, 0, 53, + 0, 0, 54, 0, 0, 0, 55, 7, 8, 9, + 10, 56, 11, 12, 13, 14, 1366, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 58, 59, 60, + 0, 0, 61, 0, 62, 63, 1298, 0, 64, 0, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 0, 263, 264, 265, 15, 0, 0, 0, 16, + 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 0, 0, 0, + 0, 0, 0, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 45, 0, 46, + 0, 47, 0, 0, 0, 0, 48, 0, 49, 50, + 51, 0, 0, 52, 0, 0, 0, 0, 53, 0, + 0, 54, 0, 0, 0, 55, 7, 8, 9, 10, + 56, 11, 12, 13, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 0, 0, 58, 59, 60, 0, + 0, 61, 0, 62, 63, 1518, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 16, 0, + 17, 18, 19, 20, 0, 0, 0, 0, 0, 21, + 0, 0, 0, 22, 23, 0, 0, 0, 0, 0, + 0, 0, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 0, 490, 0, 0, 0, 45, 0, 46, 0, + 47, 0, 0, 0, 0, 48, 0, 49, 50, 51, + 0, 0, 52, 0, 0, 0, 0, 53, 0, 0, + 54, 0, 0, 0, 55, 663, 664, 665, 10, 56, + 11, 666, 667, 68, 69, 0, 71, 668, 72, 73, + 74, 75, 57, 0, 0, 58, 59, 60, 0, 0, + 61, 0, 62, 63, 0, 0, 64, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 0, 0, 82, + 475, 0, 0, 669, 70, 251, 0, 71, 0, 72, + 73, 74, 75, 76, 476, 274, 0, 0, 670, 78, + 0, 0, 79, 671, 0, 0, 80, 0, 0, 0, + 0, 672, 673, 81, 0, 84, 85, 0, 0, 0, + 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 90, 0, 0, 0, 83, 92, 0, 0, + 0, 0, 0, 0, 0, 674, 0, 675, 0, 676, + 0, 0, 0, 477, 677, 0, 84, 85, 678, 0, + 0, 679, 86, 0, 0, 0, 680, 0, 0, 681, + 87, 88, 89, 90, 0, 0, 91, 0, 92, 7, 8, 9, 10, 0, 11, 12, 13, 14, 0, 0, - 0, 670, 0, 0, 671, 672, 0, 0, 0, 673, - 0, 674, 0, 0, 0, 675, 0, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 0, 256, - 257, 258, 0, 0, 0, 1534, 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, 26, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, - 217, 218, 219, 0, 47, 0, 48, 49, 50, 0, - 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, - 0, 0, 0, 54, 651, 652, 653, 10, 55, 11, - 654, 655, 67, 68, 0, 0, 1046, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, - 0, 61, 62, 0, 220, 63, 236, 237, 238, 239, - 240, 241, 242, 243, 0, 0, 221, 222, 464, 0, - 0, 657, 69, 244, 0, 70, 0, 71, 72, 73, - 74, 465, 0, 658, 76, 0, 0, 77, 659, 0, - 0, 78, 0, 0, 0, 0, 660, 661, 79, 0, - 0, 0, 0, 223, 224, 80, 225, 0, 0, 0, - 0, 226, 0, 227, 0, 217, 218, 219, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, - 662, 0, 663, 0, 664, 0, 0, 321, 466, 665, - 0, 82, 83, 666, 0, 0, 667, 84, 0, 0, - 0, 668, 0, 0, 669, 85, 86, 87, 88, 0, - 0, 89, 0, 90, 0, 7, 8, 9, 10, 220, - 11, 12, 13, 0, 0, 0, 670, 1396, 0, 671, - 672, 221, 222, 0, 673, 0, 674, 0, 696, 0, - 675, 0, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 0, 256, 257, 258, 697, 0, 0, - 0, 0, 1316, 0, 0, 0, 0, 0, 223, 1280, - 1281, 1282, 0, 0, 1317, 0, 226, 0, 227, 1318, - 0, 0, 0, 0, 0, 0, 0, 23, 24, 1283, - 0, 0, 0, 26, 1284, 0, 0, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 7, 8, 9, 10, 0, - 11, 12, 13, 45, 0, 46, 0, 0, 0, 0, - 1319, 0, 0, 0, 1320, 0, 0, 1321, 0, 0, - 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 682, 0, 0, 683, 684, 0, 0, 0, 685, + 0, 686, 0, 708, 0, 687, 0, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, + 264, 265, 709, 0, 223, 224, 225, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 20, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 0, 0, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 0, 226, 0, 0, 0, 0, 0, 0, 45, + 0, 46, 0, 47, 227, 228, 0, 0, 48, 0, + 49, 50, 51, 0, 0, 52, 0, 0, 0, 0, + 53, 0, 0, 54, 0, 0, 0, 55, 663, 664, + 665, 10, 56, 11, 666, 667, 68, 69, 0, 0, + 1060, 229, 230, 0, 231, 0, 0, 0, 0, 232, + 0, 233, 0, 61, 0, 62, 63, 0, 0, 64, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 0, 0, 0, 475, 0, 330, 669, 70, 251, 0, + 71, 0, 72, 73, 74, 75, 76, 476, 0, 0, + 0, 670, 78, 0, 0, 79, 671, 0, 0, 80, + 0, 0, 0, 0, 672, 673, 81, 0, 0, 0, + 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 224, 225, 0, 83, + 0, 0, 0, 0, 0, 0, 0, 0, 674, 0, + 675, 0, 676, 0, 0, 0, 477, 677, 0, 84, + 85, 678, 0, 0, 679, 86, 0, 0, 0, 680, + 0, 0, 681, 87, 88, 89, 90, 0, 0, 91, + 0, 92, 0, 7, 8, 9, 10, 0, 11, 12, + 13, 0, 0, 226, 682, 1415, 0, 683, 684, 0, + 0, 0, 685, 0, 686, 227, 228, 0, 687, 0, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 0, 263, 264, 265, 593, 0, 0, 0, 0, + 0, 1335, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 0, 231, 1336, 0, 0, 0, + 232, 1337, 233, 0, 0, 223, 224, 225, 0, 24, + 25, 223, 224, 225, 0, 27, 0, 0, 0, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 599, 0, 0, 0, 0, 236, + 0, 0, 0, 0, 0, 46, 0, 47, 7, 8, + 9, 10, 1338, 11, 12, 13, 1339, 0, 0, 1340, + 0, 0, 0, 226, 53, 0, 0, 0, 0, 226, + 0, 0, 0, 0, 0, 227, 228, 0, 0, 0, + 0, 227, 228, 0, 0, 0, 0, 0, 0, 1341, + 0, 0, 1342, 1343, 1344, 0, 1335, 1345, 0, 1416, + 63, 0, 0, 1347, 0, 0, 0, 0, 0, 0, + 0, 1336, 229, 230, 0, 231, 1337, 0, 229, 230, + 232, 231, 233, 0, 24, 25, 232, 0, 233, 0, + 27, 0, 0, 1302, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, + 0, 71, 512, 72, 73, 74, 75, 0, 0, 0, + 46, 0, 47, 7, 8, 9, 10, 1338, 11, 12, + 13, 1339, 0, 0, 1340, 0, 0, 0, 0, 53, + 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1316, 0, 0, 0, 0, 1322, 0, 0, - 1323, 1324, 1325, 0, 1317, 1326, 0, 1397, 62, 1318, - 0, 1328, 0, 0, 0, 0, 0, 23, 24, 0, - 0, 0, 0, 26, 0, 0, 0, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 7, 8, 9, 10, 0, - 11, 12, 13, 45, 0, 46, 0, 0, 0, 0, - 1319, 0, 0, 0, 1320, 0, 0, 1321, 0, 0, - 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 236, 237, 238, 239, 240, 241, 242, 243, 0, - 0, 0, 1316, 0, 0, 0, 0, 1322, 244, 0, - 1323, 1324, 1325, 0, 1317, 1326, 0, 1327, 62, 1318, - 0, 1328, 0, 0, 0, 0, 0, 23, 24, 0, - 0, 0, 0, 26, 0, 0, 0, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 651, 652, 653, 10, 0, 11, 654, 655, - 0, 0, 0, 45, 837, 46, 0, 0, 0, 0, - 1319, 0, 0, 0, 1320, 0, 0, 1321, 0, 774, - 0, 0, 52, 0, 0, 0, 0, 0, 0, 217, - 218, 219, 0, 0, 0, 775, 0, 0, 0, 657, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, - 0, 658, 0, 0, 0, 1326, 659, 1327, 62, 0, - 0, 1328, 777, 778, 660, 661, 0, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 779, 256, - 257, 258, 581, 220, 0, 0, 0, 236, 237, 238, - 239, 240, 241, 242, 243, 221, 222, 0, 662, 0, - 663, 0, 664, 0, 244, 0, 0, 665, 0, 780, - 0, 666, 781, 0, 667, 782, 0, 0, 0, 668, - 0, 0, 669, 0, 0, 0, 70, 0, 71, 72, - 73, 783, 223, 224, 0, 225, 0, 0, 266, 0, - 226, 0, 227, 784, 670, 0, 0, 671, 672, 944, - 0, 0, 673, 1283, 838, 0, 80, 785, 675, 945, - 946, 947, 948, 949, 950, 951, 952, 0, 0, 0, - 0, 0, 267, 0, 0, 0, 953, 0, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 0, 0, 82, 83, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 966, 88, - 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, - 0, 340, 341, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 0, 256, 257, 258, 597, 0, - 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 0, 0, - 0, 0, 967, 0, 0, 0, 0, 1416, 0, 0, - 0, 0, 342, 0, 0, 70, 0, 71, 72, 73, - 74, 0, 0, 0, 343, 0, 0, 77, 0, 0, - 0, 78, 698, 699, 700, 0, 0, 0, 79, 0, - 0, 968, 0, 0, 969, 80, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 979, 980, 0, 981, 982, - 0, 81, 983, 340, 341, 0, 0, 0, 0, 0, - 0, 0, 0, 344, 0, 0, 70, 0, 71, 72, - 73, 82, 83, 0, 0, 0, 0, 84, 77, 0, - 0, 0, 0, 0, 0, 345, 346, 87, 88, 79, - 0, 89, 0, 90, 342, 0, 80, 70, 347, 71, - 72, 73, 74, 0, 0, 0, 343, 0, 0, 77, - 0, 0, 81, 78, 348, 774, 1417, 1418, 1419, 1420, - 79, 0, 1421, 1422, 1423, 1424, 1425, 80, 1426, 1427, - 1428, 0, 82, 83, 0, 0, 0, 0, 0, 0, - 513, 514, 0, 81, 0, 776, 0, 0, 0, 88, - 0, 0, 89, 0, 90, 344, 0, 0, 777, 778, - 0, 0, 0, 82, 83, 0, 0, 0, 0, 84, - 0, 0, 0, 0, 779, 0, 0, 345, 346, 87, - 88, 342, 0, 89, 70, 90, 71, 72, 73, 74, - 0, 0, 0, 343, 0, 0, 77, 0, 0, 0, - 78, 0, 0, 0, 0, 780, 348, 79, 781, 0, - 0, 782, 0, 0, 80, 236, 237, 238, 239, 240, - 241, 242, 243, 0, 0, 0, 0, 783, 0, 0, - 81, 0, 244, 0, 0, 0, 0, 0, 0, 784, - 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, - 82, 83, 0, 785, 0, 0, 84, 0, 0, 0, - 0, 0, 0, 0, 345, 346, 87, 88, 0, 0, - 89, 0, 90, 236, 237, 238, 239, 240, 241, 242, - 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 0, 348, 236, 237, 238, 239, 240, 241, - 242, 243, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 236, 237, 238, 239, 240, 241, 242, 243, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 236, 237, 238, 239, 240, 241, 242, 243, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 244, 0, 0, - 0, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 0, 256, 257, 258, 685, 236, 237, 238, - 239, 240, 241, 242, 243, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 244, 236, 237, 238, 239, 240, - 241, 242, 243, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 0, 0, 0, 0, 0, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 0, 256, 257, 258, 766, 0, 0, 0, 0, 0, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 0, 256, 257, 258, 911, 0, 0, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, - 256, 257, 258, 1028, 0, 0, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 0, 256, 257, - 258, 1299, 852, 853, 854, 855, 856, 857, 858, 859, - 0, 0, 0, 0, 0, 0, 217, 218, 219, 860, - 0, 1301, 0, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 0, 256, 257, 258, 0, 0, - 0, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, -2, 256, 257, 258, 0, 0, 0, 0, - 0, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 0, 0, - 220, 0, 0, 0, 0, 0, 0, 1416, 0, 0, - 0, 0, 221, 222, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, - 0, 106, 0, 0, 107, 108, 0, 0, 0, 0, - 0, 0, 109, 110, 336, 0, 0, 0, 0, 223, - 224, 111, 225, 112, 113, 114, 115, 226, 0, 227, - 116, 0, 0, 0, 0, 117, 0, 0, 861, 862, - 863, 864, 865, 866, 867, 868, 869, 870, 871, 0, - 872, 873, 874, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 126, 127, 128, 129, - 0, 0, 0, 0, 0, 130, 131, 67, 68, 132, - 133, 462, 0, 463, 134, 0, 0, 0, 0, 0, - 135, 136, 0, 137, 0, 0, 0, 1418, 1419, 1420, - 0, 138, 1421, 1422, 1423, 1424, 1425, 0, 1426, 1427, - 1428, 0, 0, 464, 0, 0, 0, 69, 0, 0, - 70, 0, 71, 72, 73, 74, 465, 0, 0, 76, - 0, 0, 77, 0, 0, 0, 78, 238, 239, 240, - 241, 242, 243, 79, 0, 70, 0, 71, 72, 73, - 80, 0, 244, 1410, 1411, 1412, 1413, 1414, 1415, 0, - 0, 0, 0, 0, 0, 0, 81, 0, 1416, 238, - 239, 240, 241, 242, 243, 80, 0, 0, 0, 0, - 0, 0, 0, 466, 244, 0, 82, 83, 0, 0, - 0, 267, 84, 0, 1410, 1411, 1412, 1413, 1414, 1415, - 85, 86, 87, 88, 0, 0, 89, 0, 90, 1416, - 0, 82, 83, 0, 0, 0, 0, 0, 0, 0, - 0, 467, 0, 0, 0, 0, 468, 0, 88, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 274, 0, 0, 0, 1341, 0, 0, 1342, 1343, 1344, + 0, 1335, 1345, 0, 1346, 63, 0, 0, 1347, 0, + 84, 85, 663, 664, 665, 10, 1336, 11, 666, 667, + 0, 1337, 0, 0, 849, 0, 0, 90, 0, 24, + 25, 0, 92, 0, 0, 27, 0, 0, 0, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 0, 192, 0, 0, 0, 0, + 669, 0, 0, 0, 0, 46, 0, 47, 0, 0, + 0, 0, 1338, 0, 0, 670, 1339, 0, 0, 1340, + 671, 1433, 1434, 1435, 53, 0, 0, 0, 672, 673, + 0, 0, 0, 1436, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 710, 711, 712, 0, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 1345, 0, 1346, + 63, 0, 674, 1347, 675, 251, 676, 0, 0, 0, + 0, 677, 0, 0, 0, 678, 0, 0, 679, 0, + 0, 0, 0, 680, 0, 0, 681, 0, 71, 0, + 72, 73, 74, 75, 713, 714, 0, 0, 0, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 682, 0, + 0, 683, 684, 957, 81, 0, 685, 0, 850, 0, + 0, 82, 687, 958, 959, 960, 961, 962, 963, 964, + 965, 966, 0, 0, 0, 0, 0, 83, 0, 0, + 0, 967, 0, 968, 969, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 979, 0, 0, 84, 85, 0, + 0, 1441, 1442, 1443, 1444, 1445, 0, 1446, 1447, 1448, + 0, 715, 0, 0, 90, 0, 980, 91, 0, 92, + 0, 0, 0, 0, 0, 349, 350, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, + 264, 265, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 217, 218, 219, 0, 187, 0, 0, 0, + 981, 0, 0, 0, 0, 0, 0, 351, 0, 0, + 71, 0, 72, 73, 74, 75, 76, 0, 0, 0, + 0, 0, 352, 0, 0, 79, 0, 524, 525, 80, + 0, 0, 0, 0, 0, 0, 81, 0, 0, 982, + 0, 0, 983, 82, 984, 985, 986, 987, 988, 989, + 990, 991, 992, 993, 994, 0, 995, 996, 0, 83, + 997, 0, 0, 0, 0, 0, 0, 0, 0, 351, + 0, 353, 71, 0, 72, 73, 74, 75, 76, 84, + 85, 0, 0, 0, 352, 86, 0, 79, 0, 0, + 0, 80, 0, 354, 355, 89, 90, 0, 81, 91, + 0, 92, 0, 0, 0, 82, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 0, 0, 0, 0, + 0, 83, 357, 0, 251, 223, 224, 225, 0, 0, + 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, + 0, 84, 85, 0, 0, 0, 0, 86, 1431, 1432, + 1433, 1434, 1435, 0, 0, 354, 355, 89, 90, 0, + 0, 91, 1436, 92, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 251, 226, 357, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 227, 228, 0, 0, 0, + 0, 0, 0, 251, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 251, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 229, 230, 0, 231, 0, 0, 0, 0, + 232, 251, 233, 0, 0, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 302, 263, 264, + 265, 697, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 251, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 1441, 1442, 1443, 1444, 1445, 0, 1446, 1447, 1448, 251, + 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 0, 263, 264, 265, 778, + 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, + 924, 0, 0, 0, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 0, 263, 264, 265, 1042, + 0, 0, 0, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 263, 264, 265, 1318, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 251, 0, 0, + 605, 0, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 0, 263, 264, 265, 0, 0, 1320, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 315, 263, 264, 265, 864, 865, 866, 867, + 868, 869, 870, 871, 872, 0, 0, 0, 71, 0, + 72, 73, 74, 75, 873, 1427, 1428, 1429, 1430, 1431, + 1432, 1433, 1434, 1435, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1436, 107, 0, 108, 0, 0, 0, + 110, 82, 0, 0, 0, 0, 0, 0, 111, 112, + 113, 114, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 116, 117, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 308, 0, 0, 0, 84, 85, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 0, 263, 264, 265, 90, 0, 0, 128, 0, 92, + 0, 0, 0, 0, 0, 0, 0, 133, 223, 224, + 225, 0, 0, 134, 0, 0, 0, 136, 137, 0, + 0, 0, -2, 0, 0, 0, 0, 0, 0, 140, + 0, 141, 0, 0, 0, 0, 874, 875, 876, 877, + 878, 879, 880, 881, 882, 883, 884, 0, 885, 886, + 887, 0, 0, 0, 0, 1437, 1438, 1439, 1440, 0, + 0, 1441, 1442, 1443, 1444, 1445, 226, 1446, 1447, 1448, + 107, 0, 108, 0, 0, 109, 110, 0, 227, 228, + 0, 0, 0, 0, 111, 112, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 115, 0, 116, 117, 118, + 119, 223, 224, 225, 120, 0, 904, 0, 0, 121, + 345, 0, 0, 0, 0, 229, 230, 0, 231, 0, + 0, 0, 0, 232, 0, 233, 0, 122, 123, 124, + 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, + 130, 131, 132, 133, 0, 0, 0, 0, 0, 134, + 135, 68, 69, 136, 137, 473, 0, 474, 138, 226, + 0, 0, 0, 0, 139, 140, 0, 141, 0, 0, + 0, 227, 228, 0, 0, 142, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 0, 0, 0, 475, 0, + 0, 0, 70, 251, 0, 71, 0, 72, 73, 74, + 75, 76, 476, 0, 0, 0, 0, 78, 229, 230, + 79, 231, 0, 0, 80, 0, 232, 0, 233, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 82, 1428, + 1429, 1430, 1431, 1432, 1433, 1434, 1435, 0, 0, 0, + 0, 0, 0, 0, 83, 0, 1436, 244, 245, 246, + 247, 248, 249, 250, 0, 0, 0, 0, 0, 0, + 0, 477, 0, 251, 84, 85, 0, 0, 0, 0, + 86, 244, 245, 246, 247, 248, 249, 250, 87, 88, + 89, 90, 0, 0, 91, 0, 92, 251, 0, 244, + 245, 246, 247, 248, 249, 250, 0, 0, 0, 478, + 0, 0, 0, 0, 479, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, + 1429, 1430, 1431, 1432, 1433, 1434, 1435, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1436, 244, 245, 246, + 247, 248, 249, 250, 0, 0, 1429, 1430, 1431, 1432, + 1433, 1434, 1435, 251, 0, 0, 0, 0, 0, 1438, + 1439, 1440, 1436, 0, 1441, 1442, 1443, 1444, 1445, 0, + 1446, 1447, 1448, 0, 0, 0, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, + 0, 0, 0, 0, 1429, 1430, 1431, 1432, 1433, 1434, + 1435, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 1436, 263, 264, 265, 246, 247, 248, 249, 250, 0, + 255, 256, 257, 258, 259, 260, 261, 262, 251, 263, + 264, 265, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1436, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1438, + 1439, 1440, 0, 0, 1441, 1442, 1443, 1444, 1445, 0, + 1446, 1447, 1448, 0, 0, 0, 0, 0, 0, 256, + 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, + 1441, 1442, 1443, 1444, 1445, 0, 1446, 1447, 1448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 0, 256, 257, 258, 0, 0, 1418, 1419, - 1420, 0, 0, 1421, 1422, 1423, 1424, 1425, 0, 1426, - 1427, 1428, 0, 0, 0, 306, 220, 249, 250, 251, - 252, 253, 254, 255, 0, 256, 257, 258, 221, 222, - 0, 0, 0, 0, 0, 0, 217, 218, 219, 0, - 1419, 1420, 306, 0, 1421, 1422, 1423, 1424, 1425, 0, - 1426, 1427, 1428, 0, 0, 0, 105, 0, 106, 0, - 0, 0, 108, 0, 0, 223, 224, 0, 225, 109, - 110, 0, 0, 226, 0, 227, 0, 0, 0, 0, - 112, 113, 114, 105, 0, 106, 0, 0, 0, 108, - 220, 0, 301, 0, 0, 0, 109, 110, 0, 501, - 0, 0, 221, 222, 0, 0, 0, 112, 300, 114, - 0, 0, 0, 217, 218, 219, 124, 0, 0, 301, - 0, 0, 698, 699, 700, 0, 129, 0, 0, 0, - 0, 0, 130, 0, 0, 0, 132, 133, 0, 223, - 224, 0, 225, 124, 0, 0, 0, 226, 136, 227, - 137, 0, 0, 129, 67, 68, 0, 0, 462, 130, - 1283, 0, 0, 0, 133, 1362, 70, 220, 71, 72, - 73, 701, 702, 0, 0, 136, 0, 137, 77, 221, - 222, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 464, 0, 0, 0, 69, 0, 80, 70, 0, 71, - 72, 73, 74, 465, 0, 0, 76, 0, 0, 77, - 0, 0, 81, 78, 0, 0, 223, 224, 0, 225, - 79, 0, 0, 0, 226, 0, 227, 80, 0, 0, - 0, 0, 82, 83, 0, 0, 0, 1283, 0, 0, - 0, 0, 1364, 81, 0, 0, 703, 0, 0, 88, - 0, 0, 89, 0, 90, 67, 68, 0, 0, 800, - 466, 0, 0, 82, 83, 0, 0, 0, 0, 84, - 0, 0, 0, 0, 0, 0, 0, 85, 86, 87, - 88, 0, 0, 89, 0, 90, 67, 68, 0, 0, - 0, 464, 0, 0, 0, 69, 0, 0, 70, 0, - 71, 72, 73, 74, 465, 0, 0, 76, 0, 0, - 77, 0, 0, 0, 78, 0, 0, 0, 0, 0, - 0, 79, 464, 217, 218, 219, 69, 0, 80, 70, - 0, 71, 72, 73, 74, 465, 0, 0, 76, 0, - 0, 77, 0, 0, 81, 78, 0, 0, 0, 0, - 0, 0, 79, 0, 0, 0, 0, 0, 0, 80, - 0, 466, 0, 0, 82, 83, 0, 0, 0, 0, - 84, 0, 0, 67, 68, 81, 0, 220, 85, 86, - 87, 88, 0, 0, 89, 0, 90, 0, 0, 221, - 222, 0, 466, 0, 0, 82, 83, 67, 68, 0, - 0, 84, 0, 0, 0, 0, 0, 0, 0, 85, - 86, 87, 88, 69, 0, 89, 70, 90, 71, 72, - 73, 74, 75, 0, 0, 76, 223, 224, 77, 225, - 0, 0, 78, 0, 226, 0, 227, 69, 0, 79, - 70, 0, 71, 72, 73, 74, 80, 0, 0, 76, - 0, 295, 77, 0, 0, 0, 78, 0, 0, 0, - 0, 0, 81, 79, 0, 0, 0, 0, 0, 0, - 80, 217, 218, 219, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 83, 67, 68, 81, 0, 84, 0, - 0, 0, 0, 0, 0, 0, 85, 86, 87, 88, - 0, 0, 89, 610, 90, 0, 82, 83, 486, 0, - 487, 0, 84, 67, 0, 0, 0, 0, 0, 0, - 85, 86, 87, 88, 69, 220, 89, 70, 90, 71, - 72, 73, 74, 0, 0, 0, 76, 221, 222, 77, - 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, - 79, 0, 0, 69, 0, 0, 70, 80, 71, 72, - 73, 74, 524, 0, 0, 76, 0, 0, 77, 0, - 0, 0, 78, 81, 223, 224, 0, 225, 0, 79, - 0, 0, 226, 0, 227, 0, 80, 0, 0, 0, - 0, 0, 0, 82, 83, 0, 0, 0, 0, 84, - 177, 0, 81, 0, 0, 0, 0, 85, 86, 87, - 88, 0, 0, 89, 0, 90, 0, 0, 0, 0, - 0, 0, 82, 83, 177, 0, 0, 0, 84, 0, - 0, 0, 0, 0, 0, 0, 85, 86, 87, 88, - 178, 0, 89, 70, 90, 71, 72, 73, 74, 1005, - 0, 0, 179, 0, 0, 77, 0, 0, 0, 78, - 0, 0, 0, 0, 178, 0, 79, 70, 0, 71, - 72, 73, 74, 80, 0, 0, 179, 0, 0, 77, - 0, 0, 0, 78, 0, 0, 0, 0, 0, 81, - 79, 0, 0, 0, 0, 0, 0, 80, 217, 218, - 219, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 83, 67, 0, 81, 0, 84, 0, 0, 0, 0, - 0, 0, 0, 180, 181, 87, 88, 0, 0, 89, - 0, 90, 0, 82, 83, 0, 0, 0, 0, 84, - 0, 0, 0, 0, 0, 0, 0, 180, 181, 87, - 88, 69, 220, 89, 70, 90, 71, 72, 73, 74, - 0, 0, 0, 76, 221, 222, 77, 0, 0, 0, - 78, 0, 0, 0, 0, 0, 0, 79, 0, 0, - 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, - 0, 0, 105, 0, 106, 0, 0, 107, 108, 0, - 81, 223, 224, 0, 225, 109, 110, 0, 0, 226, - 0, 227, 0, 0, 111, 0, 112, 113, 114, 115, - 82, 83, 1283, 116, 0, 0, 84, 1366, 117, 0, - 0, 0, 0, 0, 85, 86, 87, 88, 0, 0, - 89, 0, 90, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 126, - 127, 128, 129, 0, 0, 105, 0, 106, 130, 131, - 107, 108, 132, 133, 0, 0, 0, 134, 109, 110, - 0, 0, 0, 135, 136, 0, 137, 111, 0, 112, - 113, 114, 115, 0, 138, 0, 116, 0, 0, 0, - 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 694, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 126, 127, 128, 129, 0, 0, 105, 0, - 106, 130, 131, 107, 108, 132, 133, 0, 0, 0, - 134, 109, 110, 0, 0, 0, 135, 136, 0, 137, - 111, 0, 112, 113, 114, 115, 0, 138, 0, 116, - 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 0, - 0, 105, 0, 106, 130, 131, 107, 108, 132, 133, - 0, 0, 0, 134, 109, 110, 0, 0, 0, 135, - 136, 0, 137, 111, 0, 112, 113, 114, 115, 0, - 138, 0, 116, 0, 0, 0, 0, 117, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, - 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 126, 127, - 128, 129, 0, 0, 105, 0, 106, 130, 131, 107, - 108, 132, 133, 0, 0, 0, 134, 109, 110, 0, - 0, 0, 135, 136, 0, 137, 111, 0, 112, 113, - 114, 115, 0, 138, 0, 116, 0, 0, 0, 0, - 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1029, 0, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 0, 0, 105, 0, 106, - 130, 131, 107, 108, 132, 133, 0, 0, 0, 134, - 109, 110, 0, 0, 0, 135, 136, 0, 137, 111, - 0, 112, 113, 114, 115, 0, 138, 0, 116, 0, - 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1082, 0, 0, 0, 0, - 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 0, 0, 0, 0, 126, 127, 128, 129, 0, 0, - 105, 0, 106, 130, 131, 107, 108, 132, 133, 0, - 0, 0, 134, 109, 110, 0, 0, 0, 135, 136, - 0, 137, 111, 0, 112, 113, 114, 115, 0, 138, - 0, 116, 217, 218, 219, 0, 117, 891, 0, 0, - 0, 0, 0, 217, 218, 219, 0, 0, 1304, 70, - 0, 71, 72, 73, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 0, 0, 0, 0, 0, 130, 131, 0, 80, - 132, 133, 0, 0, 0, 134, 220, 0, 0, 0, - 0, 135, 136, 0, 137, 267, 0, 220, 221, 222, - 0, 0, 138, 0, 70, 0, 71, 72, 73, 221, - 222, 0, 0, 0, 0, 82, 83, 0, 0, 0, - 0, 1455, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 80, 223, 224, 90, 225, 0, - 0, 0, 0, 226, 0, 227, 223, 224, 0, 225, - 267, 0, 0, 105, 226, 106, 227, 0, 0, 108, - 188, 0, 0, 0, 0, 0, 109, 110, 0, 0, - 82, 83, 0, 0, 0, 0, 0, 112, 300, 114, - 0, 0, 0, 0, 116, 0, 0, 88, 0, 301, - 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, + 0, 72, 73, 74, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1439, 1440, 0, 0, 1441, 1442, + 1443, 1444, 1445, 315, 1446, 1447, 1448, 0, 0, 0, + 0, 0, 82, 0, 256, 257, 258, 259, 260, 261, + 262, 0, 263, 264, 265, 0, 0, 0, 274, 0, + 0, 0, 0, 1440, 0, 0, 1441, 1442, 1443, 1444, + 1445, 0, 1446, 1447, 1448, 107, 0, 108, 84, 85, + 0, 110, 710, 711, 712, 0, 0, 0, 0, 111, + 112, 113, 114, 0, 0, 90, 0, 0, 0, 0, + 92, 0, 116, 307, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 308, 223, 224, 225, 0, 0, + 0, 0, 0, 193, 0, 0, 0, 71, 0, 72, + 73, 74, 75, 0, 0, 0, 0, 0, 128, 0, + 0, 0, 79, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 81, 134, 0, 0, 0, 0, 137, + 82, 68, 69, 0, 0, 473, 0, 0, 0, 0, + 140, 0, 141, 226, 0, 0, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 227, 228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 84, 85, 475, 68, + 69, 0, 70, 812, 0, 71, 0, 72, 73, 74, + 75, 76, 476, 90, 0, 0, 91, 78, 92, 0, + 79, 0, 229, 230, 80, 231, 0, 0, 0, 0, + 232, 81, 233, 0, 0, 0, 475, 0, 82, 0, + 70, 0, 0, 71, 0, 72, 73, 74, 75, 76, + 476, 0, 0, 0, 83, 78, 0, 0, 79, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 81, + 0, 477, 0, 0, 84, 85, 82, 0, 0, 0, + 86, 0, 223, 224, 225, 0, 0, 0, 87, 88, + 89, 90, 83, 0, 91, 0, 92, 0, 68, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 477, + 0, 0, 84, 85, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 68, 69, 0, 87, 88, 89, 90, + 0, 0, 91, 0, 92, 475, 0, 0, 0, 70, + 226, 0, 71, 0, 72, 73, 74, 75, 76, 476, + 0, 0, 227, 228, 78, 0, 0, 79, 0, 0, + 0, 80, 0, 0, 70, 0, 0, 71, 81, 72, + 73, 74, 75, 76, 77, 82, 0, 0, 0, 78, + 0, 0, 79, 0, 0, 0, 80, 0, 0, 229, + 230, 83, 231, 81, 0, 0, 0, 232, 0, 233, + 82, 0, 0, 0, 0, 0, 0, 0, 477, 0, + 1302, 84, 85, 68, 69, 1381, 83, 86, 0, 0, + 0, 0, 0, 0, 0, 87, 88, 89, 90, 0, + 0, 91, 0, 92, 0, 0, 84, 85, 68, 69, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 87, 88, 89, 90, 70, 0, 91, 71, 92, 72, + 73, 74, 75, 76, 0, 0, 0, 0, 0, 78, + 0, 0, 79, 0, 0, 0, 80, 0, 0, 70, + 0, 0, 71, 81, 72, 73, 74, 75, 76, 0, + 82, 0, 0, 0, 78, 0, 0, 79, 0, 0, + 0, 80, 0, 0, 0, 0, 83, 0, 81, 0, + 0, 0, 223, 224, 225, 82, 0, 0, 0, 0, + 0, 0, 0, 622, 0, 0, 84, 85, 68, 0, + 0, 83, 86, 0, 0, 0, 0, 0, 0, 0, + 87, 88, 89, 90, 0, 0, 91, 0, 92, 0, + 0, 84, 85, 182, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 87, 88, 89, 90, 70, + 226, 91, 71, 92, 72, 73, 74, 75, 76, 535, + 0, 0, 227, 228, 78, 0, 0, 79, 0, 0, + 0, 80, 0, 0, 183, 0, 0, 71, 81, 72, + 73, 74, 75, 76, 1019, 82, 0, 0, 0, 184, + 0, 0, 79, 0, 0, 0, 80, 0, 0, 229, + 230, 83, 231, 81, 0, 0, 0, 232, 0, 233, + 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1302, 84, 85, 182, 0, 1383, 83, 86, 0, 0, + 0, 0, 0, 0, 0, 87, 88, 89, 90, 0, + 0, 91, 0, 92, 0, 0, 84, 85, 68, 0, + 0, 0, 86, 0, 0, 0, 223, 224, 225, 0, + 185, 186, 89, 90, 183, 0, 91, 71, 92, 72, + 73, 74, 75, 76, 0, 0, 0, 0, 0, 184, + 0, 0, 79, 0, 0, 0, 80, 0, 0, 70, + 0, 0, 71, 81, 72, 73, 74, 75, 76, 0, + 82, 0, 0, 0, 78, 0, 0, 79, 0, 0, + 0, 80, 0, 0, 226, 0, 83, 0, 81, 0, + 0, 223, 224, 225, 0, 82, 227, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 84, 85, 0, 0, + 0, 83, 86, 0, 0, 0, 0, 0, 0, 0, + 185, 186, 89, 90, 0, 0, 91, 0, 92, 0, + 0, 84, 85, 229, 1299, 1300, 1301, 86, 0, 0, + 0, 232, 0, 233, 0, 87, 88, 89, 90, 226, + 0, 91, 0, 92, 1302, 0, 0, 0, 0, 1303, + 0, 227, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 107, 0, 108, 0, 0, + 109, 110, 0, 0, 0, 0, 0, 0, 0, 111, + 112, 113, 114, 0, 0, 0, 0, 0, 229, 230, + 115, 231, 116, 117, 118, 119, 232, 0, 233, 120, + 0, 0, 0, 0, 121, 0, 0, 0, 0, 1302, + 0, 0, 0, 0, 1385, 0, 0, 0, 0, 0, + 0, 0, 122, 123, 124, 125, 126, 127, 128, 129, + 0, 0, 0, 0, 0, 130, 131, 132, 133, 0, + 0, 0, 0, 0, 134, 135, 0, 0, 136, 137, + 0, 0, 107, 138, 108, 0, 0, 109, 110, 139, + 140, 0, 141, 0, 0, 0, 111, 112, 113, 114, + 142, 0, 0, 0, 0, 0, 0, 115, 0, 116, + 117, 118, 119, 0, 0, 0, 120, 0, 0, 706, + 0, 121, 0, 71, 0, 72, 73, 74, 75, 0, + 0, 71, 0, 72, 73, 74, 75, 0, 273, 122, + 123, 124, 125, 126, 127, 128, 129, 0, 0, 0, + 0, 0, 130, 131, 132, 133, 82, 0, 0, 0, + 0, 134, 135, 0, 82, 136, 137, 0, 0, 107, + 138, 108, 274, 0, 109, 110, 139, 140, 0, 141, + 274, 0, 0, 111, 112, 113, 114, 142, 0, 0, + 0, 0, 84, 85, 115, 0, 116, 117, 118, 119, + 84, 85, 0, 120, 0, 0, 890, 0, 121, 90, + 0, 0, 0, 0, 92, 0, 0, 90, 0, 0, + 0, 0, 92, 0, 0, 0, 122, 123, 124, 125, + 126, 127, 128, 129, 0, 0, 0, 181, 0, 130, + 131, 132, 133, 0, 0, 199, 0, 0, 134, 135, + 0, 0, 136, 137, 0, 0, 107, 138, 108, 0, + 0, 109, 110, 139, 140, 0, 141, 0, 0, 0, + 111, 112, 113, 114, 142, 0, 0, 0, 0, 0, + 0, 115, 0, 116, 117, 118, 119, 0, 0, 0, + 120, 0, 0, 935, 0, 121, 0, 71, 0, 72, + 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 273, 122, 123, 124, 125, 126, 127, 128, + 129, 0, 0, 0, 0, 0, 130, 131, 132, 133, + 82, 0, 0, 0, 0, 134, 135, 0, 0, 136, + 137, 0, 0, 107, 138, 108, 274, 0, 109, 110, + 139, 140, 0, 141, 0, 0, 0, 111, 112, 113, + 114, 142, 0, 0, 0, 0, 84, 85, 115, 0, + 116, 117, 118, 119, 0, 0, 0, 120, 0, 0, + 1043, 0, 121, 90, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 124, 0, 194, 0, 0, 0, 0, - 0, 0, 0, 129, 0, 0, 0, 0, 0, 130, - 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 135, 136, 105, 137, 106, 0, - 0, 107, 108, 0, 0, 0, 0, 0, 0, 109, - 110, 0, -155, 0, 0, 0, 0, 0, 111, 0, - 112, 113, 114, 115, 0, 0, 0, 116, 0, 0, - 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, + 122, 123, 124, 125, 126, 127, 128, 129, 0, 0, + 0, 0, 0, 130, 131, 132, 133, 0, 0, 0, + 0, 0, 134, 135, 0, 0, 136, 137, 0, 0, + 107, 138, 108, 0, 0, 109, 110, 139, 140, 0, + 141, 0, 0, 0, 111, 112, 113, 114, 142, 0, + 0, 0, 0, 0, 0, 115, 0, 116, 117, 118, + 119, 0, 0, 0, 120, 0, 0, 1097, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 0, 0, 105, - 0, 106, 130, 131, 0, 108, 132, 133, 0, 0, - 0, 134, 109, 110, 0, 0, 0, 135, 136, 0, - 137, 0, 0, 112, 113, 114, 105, 0, 106, 0, - 116, 0, 108, 0, 0, 301, 0, 0, 0, 109, - 110, 105, 0, 106, 0, 0, 0, 108, 0, 0, - 112, 300, 114, 0, 109, 110, 0, 0, 0, 124, - 0, 0, 301, 0, 0, 112, 300, 114, 0, 129, - 0, 0, 0, 0, 0, 130, 0, 301, 0, 132, - 133, 0, 0, 0, 0, 0, 124, 312, 0, 0, - 135, 136, 0, 137, 0, 0, 129, 0, 0, 0, - 0, 124, 130, 0, 0, 0, 0, 133, 0, 0, - 0, 129, 0, 0, 0, 0, 0, 130, 136, 0, - 137, 0, 133, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 136, 0, 137 + 0, 0, 0, 0, 0, 0, 0, 122, 123, 124, + 125, 126, 127, 128, 129, 0, 0, 0, 0, 0, + 130, 131, 132, 133, 0, 0, 0, 0, 0, 134, + 135, 0, 0, 136, 137, 0, 0, 107, 138, 108, + 0, 0, 109, 110, 139, 140, 0, 141, 223, 224, + 225, 111, 112, 113, 114, 142, 0, 0, 0, 0, + 0, 0, 115, 0, 116, 117, 118, 119, 0, 0, + 0, 120, 0, 0, 1323, 107, 121, 108, 0, 0, + 0, 110, 0, 0, 0, 0, 497, 0, 498, 111, + 112, 113, 114, 0, 122, 123, 124, 125, 126, 127, + 128, 129, 116, 307, 118, 0, 226, 130, 131, 132, + 133, 0, 0, 0, 308, 0, 134, 135, 227, 228, + 136, 137, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 139, 140, 0, 141, 0, 0, 0, 128, 321, + 0, 0, 142, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 0, 134, 229, 230, 0, 231, 137, + 107, 1475, 108, 232, 0, 233, 110, 0, 0, 0, + 140, 0, 141, 0, 111, 112, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 116, 307, 118, + 0, 0, 0, 0, 120, 0, 0, 0, 0, 308, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 107, 0, 108, 0, 134, + 109, 110, 0, 0, 137, 0, 0, 0, 0, 111, + 112, 113, 114, 0, 139, 140, 0, 141, 0, 0, + 115, 0, 116, 117, 118, 119, 0, 0, 0, 120, + 0, 0, -158, 0, 121, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 123, 124, 125, 126, 127, 128, 129, + 0, 0, 0, 0, 0, 130, 131, 132, 133, 0, + 107, 0, 108, 0, 134, 135, 110, 0, 136, 137, + 0, 0, 0, 138, 111, 112, 113, 114, 0, 139, + 140, 0, 141, 0, 0, 0, 0, 116, 117, 118, + 107, 0, 108, 0, 120, 0, 110, 0, 0, 308, + 0, 0, 0, 0, 111, 112, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 116, 307, 118, + 0, 0, 0, 128, 0, 0, 0, 0, 0, 308, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 134, + 0, 0, 0, 136, 137, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 139, 140, 0, 141, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 134, + 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 140, 0, 141 }; static const yytype_int16 yycheck[] = { - 1, 61, 132, 113, 132, 495, 935, 482, 736, 321, - 92, 44, 713, 515, 466, 184, 44, 142, 299, 15, - 142, 616, 13, 15, 464, 142, 607, 15, 149, 662, - 151, 152, 153, 154, 148, 156, 44, 158, 588, 160, - 59, 10, 98, 495, 13, 147, 486, 0, 719, 6, - 148, 8, 148, 334, 494, 176, 170, 147, 10, 11, - 12, 62, 756, 165, 473, 148, 187, 188, 165, 167, - 76, 167, 76, 194, 195, 165, 626, 748, 749, 165, - 751, 752, 753, 754, 167, 148, 165, 637, 589, 33, - 91, 92, 165, 76, 76, 166, 167, 723, 99, 725, - 726, 727, 728, 729, 167, 799, 148, 126, 165, 142, - 148, 108, 109, 110, 142, 112, 113, 114, 165, 148, - 117, 81, 82, 83, 33, 167, 148, 124, 88, 167, - 190, 33, 129, 130, 142, 132, 133, 134, 167, 136, - 137, 147, 775, 147, 150, 167, 150, 148, 149, 156, - 151, 152, 153, 154, 148, 156, 148, 158, 156, 160, - 148, 113, 33, 165, 147, 147, 618, 150, 150, 160, - 151, 167, 165, 167, 299, 176, 666, 299, 148, 261, - 262, 151, 299, 184, 156, 166, 187, 188, 357, 501, - 165, 160, 148, 194, 195, 277, 278, 257, 150, 148, - 13, 165, 15, 612, 17, 330, 696, 757, 330, 334, - 167, 167, 334, 330, 148, 716, 528, 334, 167, 720, - 164, 165, 166, 632, 633, 634, 635, 636, 809, 148, - 6, 232, 8, 167, 148, 148, 907, 293, 819, 165, - 148, 150, 165, 166, 167, 795, 796, 60, 167, 209, - 210, 211, 212, 167, 167, 757, 165, 166, 151, 167, - 261, 262, 164, 165, 166, 165, 299, 151, 165, 75, - 941, 299, 393, 166, 165, 276, 277, 278, 279, 280, - 281, 1009, 166, 165, 759, 286, 13, 913, 15, 148, - 17, 299, 75, 164, 165, 166, 165, 330, 148, 708, - 356, 334, 330, 300, 301, 165, 334, 267, 167, 306, - 148, 13, 2, 15, 33, 17, 148, 167, 148, 148, - 321, 165, 330, 10, 11, 12, 334, 148, 141, 167, - 148, 291, 148, 60, 646, 167, 776, 167, 167, 920, - 792, 165, 155, 144, 145, 146, 167, 160, 6, 167, - 8, 167, 165, 903, 165, 147, 357, 149, 60, 151, - 50, 851, 165, 149, 645, 151, 56, 57, 58, 59, - 60, 165, 1005, 63, 165, 166, 147, 64, 149, 150, - 151, 165, 1110, 695, 147, 794, 149, 165, 151, 76, - 77, 165, 393, 18, 19, 20, 21, 22, 23, 851, - 165, 903, 811, 147, 165, 149, 156, 151, 33, 1004, - 991, 412, 165, 147, 141, 149, 167, 151, 1347, 166, - 167, 165, 923, 1280, 1281, 1282, 113, 114, 155, 116, - 165, 166, 167, 160, 121, 165, 123, 165, 165, 141, - 165, 160, 161, 162, 445, 164, 165, 166, 449, 450, - 451, 452, 453, 155, 165, 166, 167, 165, 160, 166, - 167, 147, 463, 1013, 1014, 165, 467, 468, 155, 525, - 150, 472, 165, 160, 475, 281, 114, 115, 116, 888, - 536, 64, 65, 539, 512, 166, 895, 896, 897, 898, - 899, 166, 167, 165, 495, 165, 493, 165, 281, 165, - 501, 166, 167, 193, 1099, 1362, 165, 1364, 1103, 1366, - 1011, 512, 1369, 1370, 1371, 150, 1017, 1018, 165, 166, - 645, 150, 482, 645, 525, 147, 148, 528, 645, 10, - 11, 12, 150, 158, 159, 160, 161, 162, 344, 164, - 165, 166, 165, 166, 165, 165, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 878, 165, 258, 1263, - 165, 165, 151, 263, 160, 166, 150, 48, 148, 147, - 165, 156, 148, 64, 165, 165, 149, 588, 589, 590, - 168, 20, 21, 22, 23, 76, 77, 15, 165, 600, - 157, 148, 167, 167, 33, 1106, 607, 167, 167, 299, - 611, 167, 645, 167, 674, 616, 167, 645, 157, 620, - 621, 622, 623, 624, 625, 626, 167, 167, 148, 662, - 1331, 167, 113, 114, 662, 116, 637, 645, 328, 167, - 121, 167, 123, 167, 167, 646, 647, 157, 167, 167, - 167, 167, 167, 167, 662, 167, 167, 713, 167, 465, - 466, 167, 167, 719, 167, 157, 167, 723, 167, 725, - 726, 727, 728, 729, 702, 165, 167, 160, 167, 167, - 166, 166, 465, 466, 1093, 167, 167, 684, 685, 495, - 168, 165, 748, 749, 695, 751, 752, 753, 754, 150, - 390, 761, 762, 167, 147, 165, 148, 708, 148, 769, - 148, 771, 495, 148, 1442, 716, 406, 407, 524, 720, - 148, 148, 723, 413, 725, 726, 727, 728, 729, 158, - 159, 160, 161, 162, 149, 164, 165, 166, 33, 165, - 150, 742, 775, 165, 745, 1340, 165, 775, 165, 165, - 1444, 1445, 1446, 167, 167, 756, 757, 48, 167, 889, - 160, 889, 1357, 1358, 1359, 1255, 160, 775, 170, 147, - 10, 11, 12, 13, 1275, 48, 1277, 17, 838, 889, - 76, 165, 156, 589, 156, 475, 156, 156, 165, 10, - 10, 167, 793, 10, 795, 796, 10, 10, 799, 759, - 10, 802, 149, 1255, 610, 157, 589, 148, 809, 149, - 167, 160, 618, 873, 167, 160, 167, 472, 819, 149, - 60, 149, 168, 160, 167, 167, 165, 610, 829, 167, - 147, 33, 1333, 523, 167, 618, 1337, 166, 170, 1434, - 165, 165, 165, 533, 166, 166, 1441, 167, 150, 165, - 165, 907, 1447, 1448, 167, 148, 148, 913, 148, 1553, - 148, 148, 890, 158, 159, 160, 161, 162, 1562, 164, - 165, 166, 112, 113, 151, 160, 148, 878, 167, 165, - 881, 149, 149, 167, 166, 941, 10, 888, 578, 168, - 168, 167, 889, 894, 895, 896, 897, 898, 899, 900, - 170, 141, 903, 593, 148, 1500, 33, 48, 1503, 165, - 716, 170, 913, 165, 720, 155, 1037, 607, 147, 920, - 160, 170, 923, 148, 1006, 165, 167, 22, 23, 157, - 157, 1432, 167, 716, 935, 157, 167, 720, 33, 157, - 10, 10, 1537, 149, 10, 11, 12, 13, 10, 11, - 12, 17, 10, 10, 10, 645, 611, 1552, 160, 161, - 162, 10, 164, 165, 166, 149, 621, 622, 623, 624, - 625, 167, 1005, 148, 165, 170, 1288, 1005, 167, 167, - 670, 671, 672, 673, 170, 675, 792, 168, 22, 23, - 991, 1112, 1113, 167, 60, 168, 167, 1005, 15, 33, - 1501, 165, 64, 1004, 165, 1006, 165, 167, 165, 792, - 1011, 167, 1013, 1014, 76, 77, 1017, 1018, 167, 148, - 167, 149, 165, 276, 277, 278, 279, 280, 165, 167, - 156, 158, 159, 160, 161, 162, 1037, 164, 165, 166, - 156, 156, 156, 168, 167, 851, 168, 113, 167, 147, - 167, 113, 114, 708, 116, 745, 167, 167, 149, 121, - 10, 123, 149, 158, 159, 160, 161, 162, 851, 164, - 165, 166, 10, 10, 149, 141, 149, 10, 149, 165, - 15, 148, 167, 1084, 167, 167, 10, 168, 167, 155, - 167, 167, 1093, 148, 160, 167, 157, 157, 1099, 165, - 168, 149, 1103, 157, 166, 1106, 10, 11, 12, 13, - 157, 1112, 1113, 17, 167, 10, 10, 923, 149, 809, - 165, 165, 165, 165, 158, 159, 160, 161, 162, 819, - 164, 165, 166, 823, 167, 167, 149, 167, 793, 149, - 923, 10, 149, 167, 149, 1111, 311, 802, 648, 1258, - 1331, 841, 334, 890, 702, 1461, 60, 1084, 334, 851, - 1255, 1222, 852, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, - 870, 871, 1264, 1289, 874, 411, 666, -1, 10, 11, - 12, 13, 445, 15, -1, 17, 449, 450, 451, 452, - 453, -1, 1258, -1, -1, 1011, -1, -1, -1, 113, - 463, 1017, 1018, -1, 467, 468, -1, -1, -1, -1, - -1, 1222, 54, 62, 56, 57, 58, -1, 1011, -1, - 920, -1, -1, 888, 1017, 1018, -1, 141, 60, -1, - 895, 896, 897, 898, 899, 935, 85, -1, -1, -1, - -1, 155, 84, -1, 1255, -1, 160, -1, -1, -1, - -1, -1, 1263, 1264, -1, -1, 105, 1327, 100, -1, - 61, -1, -1, -1, 1275, 1331, 1277, 16, 17, 18, - 19, 20, 21, 22, 23, -1, 125, 1288, 120, 121, - -1, 113, -1, -1, 33, -1, 135, -1, -1, 989, - 1106, 991, -1, 993, -1, 137, -1, -1, -1, -1, - 142, -1, -1, -1, -1, 1375, 1376, -1, 1378, 141, - 1380, -1, -1, 1106, -1, -1, -1, -1, -1, -1, - -1, -1, 1333, 155, -1, -1, 1337, 1397, 160, 1340, - -1, 180, -1, 165, 183, 1094, 1347, 600, -1, -1, - -1, -1, -1, -1, 1044, -1, 1357, 1358, 1359, 150, - -1, -1, -1, 1094, 155, -1, 157, 1427, 159, -1, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, - 229, 230, -1, -1, -1, 186, -1, -1, -1, 190, - -1, 192, 193, -1, -1, -1, -1, -1, -1, -1, - -1, 150, 11, 152, 153, 154, 155, 256, -1, 158, - 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, - -1, 1432, -1, 1434, -1, -1, 275, -1, 1093, -1, - 1441, -1, -1, 1444, 1445, 1446, 1447, 1448, -1, 1255, - -1, -1, -1, -1, 293, 54, 295, 56, 57, 58, - 1461, -1, -1, -1, -1, -1, -1, -1, -1, 1275, - -1, 1277, 1255, 312, -1, 314, 315, 316, 317, 318, - 319, 272, -1, -1, -1, 84, 1546, 1547, 1548, -1, - 1550, -1, 1275, -1, 1277, -1, -1, 336, -1, 1500, - 1501, 100, 1503, -1, -1, -1, 345, -1, -1, 348, - -1, -1, -1, -1, -1, -1, 54, 356, 56, 57, - 58, 120, 121, -1, -1, -1, -1, 1333, 66, -1, - -1, 1337, -1, -1, -1, -1, 1537, -1, 137, -1, - -1, -1, -1, 142, -1, -1, 84, -1, -1, -1, - 1333, 1552, 1553, -1, 1337, -1, 395, -1, 1248, -1, - 399, 1562, 100, -1, -1, 18, 19, 20, 21, 22, - 23, 1320, 411, 1322, 1323, 1324, 1325, 1326, -1, 1328, - 33, -1, 120, 121, -1, -1, -1, -1, -1, 1320, - -1, 1322, 1323, 1324, 1325, 1326, -1, 1328, -1, 137, - -1, 392, -1, -1, 142, -1, 1296, -1, -1, 448, - -1, 1301, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 464, 1432, 165, -1, -1, - -1, 18, 19, 20, 21, 22, 23, 476, -1, -1, - -1, -1, -1, -1, -1, -1, 33, 486, -1, 1432, - -1, -1, -1, -1, -1, 494, -1, 1347, -1, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, - 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1408, 1409, 1410, - 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, - 1421, 1422, 1423, 1424, 1425, 1501, -1, -1, -1, -1, - 539, 154, 155, 156, 157, 158, 159, 160, 161, 162, - -1, 164, 165, 166, -1, 10, 11, 12, 1501, -1, - -1, -1, -1, -1, -1, -1, -1, 1476, -1, 520, - -1, -1, -1, -1, -1, -1, 527, -1, 1428, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 587, -1, - -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, -1, -1, 554, -1, 556, -1, 558, 155, 64, - -1, 158, 159, 160, 161, 162, -1, 164, 165, 166, - 1529, 76, 77, 1532, 17, 18, 19, 20, 21, 22, - 23, 630, -1, -1, -1, -1, -1, -1, 50, -1, - 33, 1532, 54, -1, 56, 57, 58, -1, -1, 648, - 62, -1, 64, 65, 66, 67, -1, -1, 113, 114, - -1, 116, -1, 75, 76, 77, 121, -1, 123, 81, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, - -1, -1, -1, -1, -1, -1, 151, 109, -1, 111, - 155, 113, -1, -1, -1, 160, 118, 706, 120, 121, - 122, -1, -1, 125, -1, -1, -1, -1, 130, -1, - -1, 133, -1, 674, -1, 137, -1, -1, -1, -1, - 142, -1, -1, -1, -1, 147, -1, -1, -1, 738, - -1, -1, -1, 155, -1, -1, 158, 159, 160, -1, - -1, 163, -1, 165, 166, -1, -1, 169, -1, -1, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - -1, 164, 165, 166, -1, -1, -1, 776, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, -1, 70, -1, 72, 73, - 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, - 84, -1, -1, 872, -1, 20, 21, 22, 23, -1, - -1, 832, 833, 834, -1, 836, 100, 838, 33, 840, - 841, -1, 891, 107, 108, 109, -1, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 18, 19, 20, 21, 22, 23, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, 1008, - -1, 156, 157, 158, 159, 160, 161, 162, -1, 164, - 165, 166, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1039, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 1, 45, 62, 768, 117, 136, 136, 948, 477, 526, + 601, 94, 330, 306, 748, 506, 45, 725, 674, 493, + 600, 15, 146, 146, 619, 61, 189, 45, 153, 100, + 155, 156, 157, 158, 159, 15, 161, 506, 163, 13, + 165, 83, 84, 85, 15, 6, 811, 8, 90, 475, + 343, 10, 80, 731, 13, 0, 181, 152, 638, 80, + 155, 34, 63, 10, 11, 12, 155, 192, 193, 649, + 152, 497, 80, 146, 199, 200, 80, 34, 152, 505, + 171, 170, 760, 761, 152, 763, 764, 765, 766, 171, + 170, 171, 93, 94, 130, 152, 152, 171, 160, 13, + 101, 15, 146, 17, 34, 735, 174, 737, 738, 739, + 740, 741, 34, 152, 171, 171, 151, 146, 153, 152, + 155, 483, 6, 151, 8, 152, 154, 151, 146, 169, + 151, 787, 171, 154, 169, 195, 151, 728, 171, 628, + 152, 732, 155, 151, 171, 169, 154, 151, 62, 152, + 154, 152, 153, 169, 155, 156, 157, 158, 159, 171, + 161, 630, 163, 155, 165, 152, 154, 153, 171, 155, + 117, 34, 152, 215, 216, 217, 218, 171, 170, 169, + 181, 152, 306, 306, 171, 268, 269, 678, 189, 769, + 164, 192, 193, 155, 512, 168, 169, 170, 199, 200, + 151, 284, 285, 366, 264, 164, 152, 154, 170, 77, + 171, 168, 169, 170, 169, 339, 339, 708, 169, 343, + 343, 539, 170, 171, 154, 171, 821, 807, 808, 300, + 169, 145, 274, 306, 152, 152, 831, 238, 169, 169, + 170, 152, 920, 169, 152, 159, 168, 169, 170, 6, + 164, 8, 769, 171, 171, 484, 298, 148, 149, 150, + 171, 623, 306, 171, 170, 171, 339, 268, 269, 169, + 343, 633, 634, 635, 636, 637, 954, 306, 403, 169, + 170, 17, 283, 284, 285, 286, 287, 288, 306, 1023, + 152, 160, 293, 169, 365, 339, 926, 771, 34, 343, + 152, 164, 165, 166, 169, 168, 169, 170, 152, 171, + 339, 2, 48, 152, 343, 152, 68, 69, 152, 171, + 152, 339, 10, 11, 12, 343, 62, 171, 64, 330, + 170, 171, 171, 169, 171, 804, 916, 171, 933, 171, + 658, 169, 152, 169, 80, 936, 283, 284, 285, 286, + 287, 151, 13, 153, 15, 155, 17, 152, 720, 160, + 51, 171, 788, 1019, 657, 366, 57, 58, 59, 60, + 61, 152, 863, 64, 77, 111, 171, 169, 114, 169, + 68, 117, 151, 169, 153, 154, 155, 170, 171, 707, + 171, 1125, 80, 81, 863, 624, 151, 133, 153, 916, + 155, 62, 403, 169, 170, 171, 1299, 1300, 1301, 145, + 1005, 169, 170, 171, 160, 644, 645, 646, 647, 648, + 288, 422, 151, 159, 153, 1366, 155, 169, 170, 117, + 118, 169, 120, 154, 1025, 151, 152, 125, 169, 127, + 1031, 1032, 169, 805, 169, 170, 171, 1027, 1028, 169, + 170, 493, 814, 154, 169, 456, 34, 169, 169, 460, + 461, 462, 463, 464, 169, 536, 118, 119, 120, 169, + 169, 169, 169, 474, 169, 169, 547, 478, 479, 550, + 169, 154, 483, 171, 145, 486, 169, 169, 1381, 169, + 1383, 720, 1385, 169, 523, 1388, 1389, 1390, 159, 169, + 169, 169, 169, 164, 169, 506, 169, 198, 169, 169, + 169, 512, 169, 169, 169, 164, 170, 1282, 154, 456, + 170, 49, 523, 460, 461, 462, 463, 464, 152, 1018, + 1121, 169, 151, 657, 657, 536, 169, 474, 539, 901, + 160, 478, 479, 169, 169, 153, 908, 909, 910, 911, + 912, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 172, 891, 265, 152, 171, 806, 171, 270, + 171, 171, 171, 171, 657, 288, 164, 165, 166, 171, + 168, 169, 170, 161, 823, 10, 11, 12, 13, 600, + 601, 602, 17, 161, 171, 171, 171, 171, 476, 477, + 171, 612, 152, 657, 171, 306, 152, 171, 619, 171, + 171, 171, 623, 171, 171, 1114, 686, 628, 657, 1118, + 674, 632, 633, 634, 635, 636, 637, 638, 506, 657, + 171, 171, 1350, 161, 171, 674, 337, 62, 649, 171, + 353, 171, 171, 161, 725, 171, 674, 658, 659, 171, + 731, 171, 171, 15, 735, 171, 737, 738, 739, 740, + 741, 169, 901, 164, 171, 612, 171, 170, 170, 908, + 909, 910, 911, 912, 171, 714, 172, 169, 154, 760, + 761, 171, 763, 764, 765, 766, 151, 169, 152, 1464, + 1465, 1466, 117, 1294, 152, 1296, 707, 152, 152, 400, + 152, 152, 169, 773, 774, 153, 169, 154, 169, 720, + 49, 781, 171, 783, 171, 416, 417, 728, 1462, 771, + 145, 732, 423, 601, 735, 169, 737, 738, 739, 740, + 741, 171, 169, 787, 159, 164, 1108, 164, 174, 164, + 151, 49, 80, 754, 622, 169, 757, 160, 787, 169, + 160, 1352, 630, 160, 160, 1356, 171, 768, 769, 787, + 10, 902, 902, 476, 477, 10, 10, 10, 10, 10, + 153, 161, 152, 1274, 153, 10, 11, 12, 13, 902, + 850, 172, 17, 171, 171, 486, 164, 164, 153, 171, + 153, 164, 151, 506, 805, 1274, 807, 808, 169, 1574, + 811, 171, 171, 814, 171, 171, 174, 171, 1583, 169, + 821, 169, 169, 154, 170, 170, 886, 170, 169, 169, + 831, 152, 535, 171, 152, 152, 152, 62, 152, 164, + 841, 23, 24, 534, 155, 171, 10, 11, 12, 920, + 169, 171, 34, 544, 153, 926, 153, 170, 152, 10, + 728, 1452, 172, 172, 732, 171, 174, 152, 49, 169, + 1359, 174, 174, 169, 903, 151, 171, 152, 161, 1108, + 161, 161, 171, 954, 161, 171, 10, 1376, 1377, 1378, + 891, 116, 117, 894, 10, 153, 10, 171, 601, 590, + 901, 13, 10, 15, 68, 17, 907, 908, 909, 910, + 911, 912, 913, 10, 605, 916, 80, 81, 10, 622, + 145, 169, 174, 153, 152, 926, 1051, 630, 619, 171, + 174, 1522, 933, 172, 159, 936, 804, 1020, 15, 164, + 160, 152, 169, 172, 169, 171, 153, 948, 171, 171, + 62, 169, 171, 117, 118, 169, 120, 169, 171, 169, + 34, 125, 171, 127, 160, 1454, 657, 171, 160, 160, + 169, 171, 1461, 171, 34, 1019, 151, 172, 1467, 1468, + 162, 163, 164, 165, 166, 172, 168, 169, 170, 1307, + 1019, 682, 683, 684, 685, 863, 687, 171, 171, 171, + 171, 1019, 1127, 1128, 1005, 153, 170, 10, 11, 12, + 13, 10, 15, 153, 17, 10, 10, 1018, 153, 1020, + 153, 10, 153, 169, 1025, 728, 1027, 1028, 171, 732, + 1031, 1032, 1521, 145, 171, 1524, 15, 171, 161, 152, + 172, 171, 152, 171, 161, 171, 161, 159, 10, 171, + 1051, 172, 164, 171, 161, 153, 10, 169, 10, 62, + 10, 11, 12, 13, 153, 169, 757, 17, 936, 1558, + 169, 171, 153, 169, 169, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 1573, 171, 171, 153, 162, 163, + 164, 165, 166, 34, 168, 169, 170, 10, 1099, 153, + 171, 804, 162, 163, 164, 165, 166, 1108, 168, 169, + 170, 1109, 62, 1114, 117, 153, 1126, 1118, 320, 660, + 1121, 1277, 1350, 903, 1481, 1274, 1127, 1128, 343, 714, + 821, 1099, 1308, 863, 1241, 343, 678, 421, -1, -1, + 831, -1, 145, -1, 835, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 62, -1, 159, 1025, -1, -1, + 863, 164, 853, 1031, 1032, -1, 169, 117, -1, -1, + -1, -1, -1, 864, 865, 866, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, + 881, 882, 883, 884, -1, 145, 887, -1, -1, -1, + 1283, -1, -1, -1, -1, -1, 1277, -1, -1, 159, + -1, -1, -1, 154, 164, 156, 157, 158, 159, 169, + -1, 162, 163, 164, 165, 166, -1, 168, 169, 170, + -1, -1, -1, 936, -1, -1, -1, -1, -1, -1, + 1241, -1, 933, -1, -1, -1, 154, -1, -1, -1, + -1, -1, 160, 1121, 162, -1, 164, 948, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 1274, -1, -1, 63, -1, -1, 1350, + -1, 1282, 1283, 191, -1, -1, 1346, 195, -1, 197, + 198, -1, -1, 1294, -1, 1296, -1, -1, -1, -1, + 87, -1, -1, -1, -1, -1, 1307, -1, -1, -1, + -1, -1, 1003, -1, 1005, -1, 1007, -1, -1, -1, + 107, -1, 1025, -1, -1, -1, -1, -1, 1031, 1032, + -1, -1, -1, -1, 1394, 1395, -1, 1397, -1, 1399, + -1, 1339, 129, 1341, 1342, 1343, 1344, 1345, -1, 1347, + -1, 1352, 139, -1, -1, 1356, 1416, -1, 1359, -1, + -1, -1, -1, -1, -1, 1366, -1, 1058, -1, -1, + -1, 279, -1, -1, -1, 1376, 1377, 1378, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1447, -1, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 185, -1, + 121, 188, -1, 1109, -1, -1, 1274, 128, -1, -1, + -1, -1, 133, 134, -1, 136, 137, 138, 1121, 140, + 141, -1, -1, -1, -1, -1, 1294, -1, 1296, 1427, + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, + 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 235, 236, + -1, 1452, -1, 1454, -1, -1, -1, -1, -1, -1, + 1461, -1, -1, 1464, 1465, 1466, 1467, 1468, -1, -1, + -1, -1, -1, 10, 11, 12, 263, -1, -1, -1, + 1481, -1, -1, -1, 1352, -1, -1, -1, 1356, -1, + -1, -1, -1, -1, 402, 282, -1, -1, 1496, -1, + -1, -1, -1, -1, -1, -1, -1, 1567, 1568, 1569, + -1, 1571, -1, 300, -1, 302, -1, -1, -1, -1, + 1521, 1522, -1, 1524, -1, -1, -1, -1, -1, -1, + -1, 68, -1, -1, 321, -1, 323, 324, 325, 326, + 327, 328, -1, 80, 81, -1, -1, -1, -1, -1, + 10, 11, 1550, -1, -1, 1553, -1, 1558, 345, -1, + -1, -1, -1, -1, -1, -1, -1, 354, -1, -1, + 357, 1274, 1573, 1574, -1, -1, 1267, -1, 365, -1, + 117, 118, 1583, 120, 1452, -1, 307, 308, 125, -1, + 127, 1294, 52, 1296, 315, 55, -1, 57, 58, 59, + 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, + 70, -1, -1, -1, 74, -1, -1, 154, 405, -1, + -1, 81, 409, 531, 1315, -1, -1, -1, 88, 1320, + 538, -1, -1, 1339, 421, 1341, 1342, 1343, 1344, 1345, + -1, 1347, -1, -1, 104, 10, 11, 12, -1, 1352, + -1, -1, -1, 1356, 1522, -1, 116, -1, 566, -1, + 568, -1, 570, -1, 124, 125, -1, -1, -1, -1, + 130, -1, 459, -1, -1, 1366, -1, -1, 138, 139, + 140, 141, -1, 48, 144, 50, 146, -1, 475, -1, + -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, + 487, -1, -1, 68, -1, -1, -1, 167, -1, -1, + 497, -1, -1, -1, -1, 80, 81, -1, 505, -1, + -1, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, + 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 3, 4, 5, 6, -1, 8, 9, 10, 11, 1452, + -1, -1, 117, 118, -1, 120, -1, 1448, -1, -1, + 125, -1, 127, 550, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 686, 22, + 23, 24, -1, 504, -1, -1, 151, -1, 51, 52, + -1, 34, 55, -1, 57, 58, 59, 60, 61, -1, + -1, -1, -1, 66, 67, -1, -1, 70, 71, -1, + -1, 74, 599, -1, -1, -1, 79, 80, 81, 1522, + -1, -1, 85, -1, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, -1, -1, 10, 11, 12, 1553, -1, -1, + 113, -1, 115, -1, 117, 642, -1, -1, -1, 122, + -1, 124, 125, 126, -1, -1, 129, 130, -1, -1, + -1, 134, -1, 660, 137, 138, 139, 140, 141, -1, + -1, 144, -1, 146, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 159, -1, -1, 162, + 163, 164, 68, -1, 167, -1, 169, 170, -1, -1, + 173, -1, -1, -1, 80, 81, -1, -1, -1, 162, + 163, 164, 165, 166, -1, 168, 169, 170, -1, -1, + -1, 718, -1, -1, -1, -1, 844, 845, 846, -1, + 848, -1, 850, -1, 852, 853, -1, -1, -1, -1, + -1, 117, 118, -1, 120, -1, -1, -1, -1, 125, + -1, 127, -1, 750, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 696, 697, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, + -1, -1, -1, 159, -1, -1, -1, -1, 164, -1, + -1, 788, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, - -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, + 47, 48, 49, 50, 51, 52, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 1111, 70, -1, 72, 73, 74, 75, 76, - 77, 78, 79, 80, -1, 82, 83, 84, 155, 156, - 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, - -1, 1092, -1, 100, -1, -1, -1, -1, -1, -1, - 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, + 67, 68, 69, 70, 71, 72, -1, 74, -1, 76, + 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, + 87, 88, -1, -1, -1, -1, -1, -1, 885, -1, + -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, + -1, -1, -1, -1, 111, 112, 113, 904, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, 169, 170, -1, 3, 4, 5, 6, -1, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, + 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, + -1, 902, 16, 17, 18, 19, 20, 21, 22, 23, + 24, -1, -1, -1, -1, -1, -1, -1, -1, 1107, + 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 16, 17, 18, - 19, 20, 21, 22, 23, -1, -1, -1, -1, -1, - -1, -1, 50, 51, 33, -1, 54, -1, 56, 57, - 58, 59, 60, -1, 62, 63, -1, -1, 66, 67, - -1, -1, 70, -1, 1283, -1, -1, 75, 76, 77, - -1, -1, -1, 81, -1, -1, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, - -1, 109, -1, 111, -1, 113, -1, -1, -1, -1, - 118, -1, 120, 121, 122, -1, -1, 125, 126, -1, - -1, -1, 130, -1, -1, 133, 134, 135, 136, 137, - -1, -1, 140, -1, 142, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, - 158, 159, 160, -1, -1, 163, 1327, 165, 166, -1, - -1, 169, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, - -1, 170, -1, 3, 4, 5, 6, -1, 8, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1392, 1393, 1394, 1395, -1, 1397, -1, 1399, -1, - 50, 51, -1, -1, 54, -1, 56, 57, 58, 59, - -1, -1, 62, 63, -1, -1, 66, 67, -1, -1, - 70, -1, -1, -1, 1473, 75, 76, 77, -1, -1, - -1, 81, -1, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, -1, -1, -1, -1, -1, -1, -1, -1, 109, - -1, 111, -1, 113, -1, -1, -1, -1, 118, -1, - 120, 121, 122, -1, -1, 125, 126, -1, -1, -1, - 130, -1, -1, 133, 134, 135, 136, 137, -1, -1, - 140, -1, 142, -1, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, -1, 155, 15, -1, 158, 159, - 160, -1, -1, 163, -1, 165, 166, -1, -1, 169, - -1, -1, -1, -1, -1, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, - -1, 50, 33, -1, -1, 54, -1, 56, 57, 58, - -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, - -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, - 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, - -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, - 4, 5, 6, 142, 8, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, - 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, - 169, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, -1, 164, 165, 166, 50, -1, -1, 170, - 54, -1, 56, 57, 58, -1, -1, -1, 62, -1, - -1, -1, 66, 67, -1, 10, 11, 12, -1, -1, - -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, - -1, -1, -1, -1, 118, -1, 120, 121, 122, 64, - -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, 76, 77, 137, 3, 4, 5, 6, 142, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, - -1, 165, 166, 167, -1, 169, -1, -1, 113, 114, - -1, 116, -1, -1, -1, -1, 121, -1, 123, -1, - -1, 50, 51, -1, -1, 54, -1, 56, 57, 58, - -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, - -1, -1, -1, -1, -1, 150, 75, 76, 77, -1, - -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, - 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, - -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, - 4, 5, 6, 142, 8, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, - 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, - 169, -1, -1, -1, 16, 17, 18, 19, 20, 21, - 22, 23, -1, -1, -1, -1, 50, 51, -1, -1, - 54, 33, 56, 57, 58, -1, -1, -1, 62, -1, - -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, - -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, - -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, - -1, 165, 166, -1, -1, 169, -1, -1, 150, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 50, 164, 165, 166, 54, -1, 56, 57, 58, - -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, - -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, - 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, - -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, - 4, 5, 6, 142, 8, 9, 10, 11, 147, -1, - -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, - 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, - 169, -1, -1, -1, 16, 17, 18, 19, 20, 21, - 22, 23, -1, -1, -1, -1, 50, -1, -1, -1, - 54, 33, 56, 57, 58, -1, -1, -1, 62, -1, - -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, - -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, - -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, - -1, 165, 166, 167, -1, 169, -1, 149, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 50, 164, 165, 166, 54, -1, 56, 57, 58, - -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, - -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, - 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, - -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, - 4, 5, 6, 142, 8, 9, 10, 11, 147, -1, - -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, - 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, - 169, -1, -1, -1, 16, 17, 18, 19, 20, 21, - 22, 23, -1, -1, -1, -1, 50, -1, -1, -1, - 54, 33, 56, 57, 58, -1, -1, -1, 62, -1, - -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, - -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, - -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, - -1, 165, 166, 167, -1, 169, 148, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 50, 164, 165, 166, 54, -1, 56, 57, 58, - -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, - -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, - 109, -1, 111, -1, 113, 10, 11, 12, -1, 118, - -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, - 4, 5, 6, 142, 8, 9, 10, 11, 12, -1, - -1, 15, 47, -1, 49, -1, 155, -1, -1, 158, - 159, 160, -1, -1, 163, -1, 165, 166, -1, 64, - 169, 16, 17, 18, 19, 20, 21, 22, 23, -1, - -1, 76, 77, 47, -1, -1, 50, 51, 33, -1, - 54, -1, 56, 57, 58, 59, 60, -1, 62, 63, - -1, -1, 66, 67, -1, -1, 70, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, -1, 113, 114, - 84, 116, -1, -1, -1, -1, 121, -1, 123, -1, - -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, - -1, -1, 147, 117, 118, -1, 120, 121, 122, -1, - -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, - 134, 135, 136, 137, -1, -1, 140, -1, 142, 3, - 4, 5, 6, -1, 8, 9, 10, 11, -1, -1, - -1, 155, -1, -1, 158, 159, -1, -1, -1, 163, - -1, 165, -1, -1, -1, 169, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, - 165, 166, -1, -1, -1, 170, 50, -1, -1, -1, - 54, -1, 56, 57, 58, -1, -1, -1, 62, -1, - -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, - 10, 11, 12, -1, 118, -1, 120, 121, 122, -1, - -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, - 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, - -1, 165, 166, -1, 64, 169, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, 76, 77, 47, -1, - -1, 50, 51, 33, -1, 54, -1, 56, 57, 58, - 59, 60, -1, 62, 63, -1, -1, 66, 67, -1, - -1, 70, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, -1, 113, 114, 84, 116, -1, -1, -1, - -1, 121, -1, 123, -1, 10, 11, 12, -1, -1, - -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, - 109, -1, 111, -1, 113, -1, -1, 147, 117, 118, - -1, 120, 121, 122, -1, -1, 125, 126, -1, -1, - -1, 130, -1, -1, 133, 134, 135, 136, 137, -1, - -1, 140, -1, 142, -1, 3, 4, 5, 6, 64, - 8, 9, 10, -1, -1, -1, 155, 15, -1, 158, - 159, 76, 77, -1, 163, -1, 165, -1, 148, -1, - 169, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, -1, 164, 165, 166, 167, -1, -1, - -1, -1, 50, -1, -1, -1, -1, -1, 113, 114, - 115, 116, -1, -1, 62, -1, 121, -1, 123, 67, - -1, -1, -1, -1, -1, -1, -1, 75, 76, 134, - -1, -1, -1, 81, 139, -1, -1, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, -1, -1, -1, 3, 4, 5, 6, -1, - 8, 9, 10, 111, -1, 113, -1, -1, -1, -1, - 118, -1, -1, -1, 122, -1, -1, 125, -1, -1, - -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 50, -1, -1, -1, -1, 155, -1, -1, - 158, 159, 160, -1, 62, 163, -1, 165, 166, 67, - -1, 169, -1, -1, -1, -1, -1, 75, 76, -1, - -1, -1, -1, 81, -1, -1, -1, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, -1, -1, -1, 3, 4, 5, 6, -1, - 8, 9, 10, 111, -1, 113, -1, -1, -1, -1, - 118, -1, -1, -1, 122, -1, -1, 125, -1, -1, - -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, - -1, 16, 17, 18, 19, 20, 21, 22, 23, -1, - -1, -1, 50, -1, -1, -1, -1, 155, 33, -1, - 158, 159, 160, -1, 62, 163, -1, 165, 166, 67, - -1, 169, -1, -1, -1, -1, -1, 75, 76, -1, - -1, -1, -1, 81, -1, -1, -1, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 3, 4, 5, 6, -1, 8, 9, 10, - -1, -1, -1, 111, 15, 113, -1, -1, -1, -1, - 118, -1, -1, -1, 122, -1, -1, 125, -1, 17, - -1, -1, 130, -1, -1, -1, -1, -1, -1, 10, - 11, 12, -1, -1, -1, 33, -1, -1, -1, 50, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, - -1, 62, -1, -1, -1, 163, 67, 165, 166, -1, - -1, 169, 60, 61, 75, 76, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 76, 164, - 165, 166, 167, 64, -1, -1, -1, 16, 17, 18, - 19, 20, 21, 22, 23, 76, 77, -1, 109, -1, - 111, -1, 113, -1, 33, -1, -1, 118, -1, 107, - -1, 122, 110, -1, 125, 113, -1, -1, -1, 130, - -1, -1, 133, -1, -1, -1, 54, -1, 56, 57, - 58, 129, 113, 114, -1, 116, -1, -1, 66, -1, - 121, -1, 123, 141, 155, -1, -1, 158, 159, 6, - -1, -1, 163, 134, 165, -1, 84, 155, 169, 16, - 17, 18, 19, 20, 21, 22, 23, -1, -1, -1, - -1, -1, 100, -1, -1, -1, 33, -1, 35, 36, + -1, -1, -1, -1, -1, 1022, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, -1, -1, -1, 1053, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - -1, -1, 120, 121, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 137, - -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, - -1, 10, 11, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, -1, 164, 165, 166, 167, -1, - 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, - -1, -1, 109, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 51, -1, -1, 54, -1, 56, 57, 58, - 59, -1, -1, -1, 63, -1, -1, 66, -1, -1, - -1, 70, 10, 11, 12, -1, -1, -1, 77, -1, - -1, 148, -1, -1, 151, 84, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, - -1, 100, 169, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, 112, -1, -1, 54, -1, 56, 57, - 58, 120, 121, -1, -1, -1, -1, 126, 66, -1, - -1, -1, -1, -1, -1, 134, 135, 136, 137, 77, - -1, 140, -1, 142, 51, -1, 84, 54, 147, 56, - 57, 58, 59, -1, -1, -1, 63, -1, -1, 66, - -1, -1, 100, 70, 163, 17, 152, 153, 154, 155, - 77, -1, 158, 159, 160, 161, 162, 84, 164, 165, - 166, -1, 120, 121, -1, -1, -1, -1, -1, -1, - 10, 11, -1, 100, -1, 47, -1, -1, -1, 137, - -1, -1, 140, -1, 142, 112, -1, -1, 60, 61, - -1, -1, -1, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, -1, 76, -1, -1, 134, 135, 136, - 137, 51, -1, 140, 54, 142, 56, 57, 58, 59, - -1, -1, -1, 63, -1, -1, 66, -1, -1, -1, - 70, -1, -1, -1, -1, 107, 163, 77, 110, -1, - -1, 113, -1, -1, 84, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, -1, 129, -1, -1, - 100, -1, 33, -1, -1, -1, -1, -1, -1, 141, - -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, - 120, 121, -1, 155, -1, -1, 126, -1, -1, -1, - -1, -1, -1, -1, 134, 135, 136, 137, -1, -1, - 140, -1, 142, 16, 17, 18, 19, 20, 21, 22, - 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, 163, 16, 17, 18, 19, 20, 21, - 22, 23, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, 16, 17, 18, 19, 20, 21, 22, 23, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, -1, 164, 165, 166, 167, 16, 17, 18, - 19, 20, 21, 22, 23, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - -1, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, -1, 164, 165, 166, 167, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, - 164, 165, 166, 167, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, - 166, 167, 16, 17, 18, 19, 20, 21, 22, 23, - -1, -1, -1, -1, -1, -1, 10, 11, 12, 33, - -1, 150, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 0, 164, 165, 166, -1, -1, -1, -1, - -1, 17, 18, 19, 20, 21, 22, 23, -1, -1, - 64, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, - -1, 49, -1, -1, 52, 53, -1, -1, -1, -1, - -1, -1, 60, 61, 108, -1, -1, -1, -1, 113, - 114, 69, 116, 71, 72, 73, 74, 121, -1, 123, - 78, -1, -1, -1, -1, 83, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, - 164, 165, 166, 101, 102, 103, 104, 105, 106, 107, - 108, -1, -1, -1, -1, -1, 114, 115, 116, 117, - -1, -1, -1, -1, -1, 123, 124, 11, 12, 127, - 128, 15, -1, 17, 132, -1, -1, -1, -1, -1, - 138, 139, -1, 141, -1, -1, -1, 153, 154, 155, - -1, 149, 158, 159, 160, 161, 162, -1, 164, 165, - 166, -1, -1, 47, -1, -1, -1, 51, -1, -1, - 54, -1, 56, 57, 58, 59, 60, -1, -1, 63, - -1, -1, 66, -1, -1, -1, 70, 18, 19, 20, - 21, 22, 23, 77, -1, 54, -1, 56, 57, 58, - 84, -1, 33, 18, 19, 20, 21, 22, 23, -1, - -1, -1, -1, -1, -1, -1, 100, -1, 33, 18, - 19, 20, 21, 22, 23, 84, -1, -1, -1, -1, - -1, -1, -1, 117, 33, -1, 120, 121, -1, -1, - -1, 100, 126, -1, 18, 19, 20, 21, 22, 23, - 134, 135, 136, 137, -1, -1, 140, -1, 142, 33, - -1, 120, 121, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, -1, -1, -1, 160, -1, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, + 47, 48, 49, 50, 51, 52, -1, -1, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, -1, 74, -1, 76, + 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, + 87, 88, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, 168, 169, 170, 104, -1, 1126, + 174, -1, -1, -1, 111, 112, 113, -1, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, -1, -1, 17, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, + -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, + 64, -1, -1, -1, -1, -1, -1, -1, 1346, -1, + -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 10, 11, 12, -1, 165, -1, -1, -1, + -1, -1, -1, -1, 3, 4, 5, 6, -1, 8, + 9, 10, 11, 12, -1, -1, -1, 111, -1, -1, + 114, -1, -1, 117, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, + -1, -1, -1, 1411, 1412, 1413, 1414, -1, 1416, -1, + 1418, 145, 51, 52, -1, 1302, 55, -1, 57, 58, + 59, 60, 61, 62, -1, 159, -1, 66, 67, -1, + -1, 70, 71, -1, -1, 74, -1, -1, -1, -1, + 79, 80, 81, -1, -1, -1, 85, -1, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, -1, 117, -1, + -1, -1, -1, 122, -1, 124, 125, 126, -1, -1, + 129, 130, -1, -1, -1, 134, -1, -1, 137, 138, + 139, 140, 141, -1, -1, 144, -1, 146, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, -1, 164, 165, 166, -1, -1, 153, 154, - 155, -1, -1, 158, 159, 160, 161, 162, -1, 164, - 165, 166, -1, -1, -1, 6, 64, 156, 157, 158, - 159, 160, 161, 162, -1, 164, 165, 166, 76, 77, - -1, -1, -1, -1, -1, -1, 10, 11, 12, -1, - 154, 155, 6, -1, 158, 159, 160, 161, 162, -1, - 164, 165, 166, -1, -1, -1, 47, -1, 49, -1, - -1, -1, 53, -1, -1, 113, 114, -1, 116, 60, - 61, -1, -1, 121, -1, 123, -1, -1, -1, -1, - 71, 72, 73, 47, -1, 49, -1, -1, -1, 53, - 64, -1, 83, -1, -1, -1, 60, 61, -1, 147, - -1, -1, 76, 77, -1, -1, -1, 71, 72, 73, - -1, -1, -1, 10, 11, 12, 107, -1, -1, 83, - -1, -1, 10, 11, 12, -1, 117, -1, -1, -1, - -1, -1, 123, -1, -1, -1, 127, 128, -1, 113, - 114, -1, 116, 107, -1, -1, -1, 121, 139, 123, - 141, -1, -1, 117, 11, 12, -1, -1, 15, 123, - 134, -1, -1, -1, 128, 139, 54, 64, 56, 57, - 58, 59, 60, -1, -1, 139, -1, 141, 66, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, 77, - 47, -1, -1, -1, 51, -1, 84, 54, -1, 56, - 57, 58, 59, 60, -1, -1, 63, -1, -1, 66, - -1, -1, 100, 70, -1, -1, 113, 114, -1, 116, - 77, -1, -1, -1, 121, -1, 123, 84, -1, -1, - -1, -1, 120, 121, -1, -1, -1, 134, -1, -1, - -1, -1, 139, 100, -1, -1, 134, -1, -1, 137, - -1, -1, 140, -1, 142, 11, 12, -1, -1, 15, - 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, - 137, -1, -1, 140, -1, 142, 11, 12, -1, -1, - -1, 47, -1, -1, -1, 51, -1, -1, 54, -1, - 56, 57, 58, 59, 60, -1, -1, 63, -1, -1, - 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, - -1, 77, 47, 10, 11, 12, 51, -1, 84, 54, - -1, 56, 57, 58, 59, 60, -1, -1, 63, -1, - -1, 66, -1, -1, 100, 70, -1, -1, -1, -1, - -1, -1, 77, -1, -1, -1, -1, -1, -1, 84, - -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, - 126, -1, -1, 11, 12, 100, -1, 64, 134, 135, - 136, 137, -1, -1, 140, -1, 142, -1, -1, 76, - 77, -1, 117, -1, -1, 120, 121, 11, 12, -1, - -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, - 135, 136, 137, 51, -1, 140, 54, 142, 56, 57, - 58, 59, 60, -1, -1, 63, 113, 114, 66, 116, - -1, -1, 70, -1, 121, -1, 123, 51, -1, 77, - 54, -1, 56, 57, 58, 59, 84, -1, -1, 63, - -1, 138, 66, -1, -1, -1, 70, -1, -1, -1, - -1, -1, 100, 77, -1, -1, -1, -1, -1, -1, - 84, 10, 11, 12, -1, -1, -1, -1, -1, -1, - -1, -1, 120, 121, 11, 12, 100, -1, 126, -1, - -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, - -1, -1, 140, 117, 142, -1, 120, 121, 47, -1, - 49, -1, 126, 11, -1, -1, -1, -1, -1, -1, - 134, 135, 136, 137, 51, 64, 140, 54, 142, 56, - 57, 58, 59, -1, -1, -1, 63, 76, 77, 66, - -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, - 77, -1, -1, 51, -1, -1, 54, 84, 56, 57, - 58, 59, 60, -1, -1, 63, -1, -1, 66, -1, - -1, -1, 70, 100, 113, 114, -1, 116, -1, 77, - -1, -1, 121, -1, 123, -1, 84, -1, -1, -1, - -1, -1, -1, 120, 121, -1, -1, -1, -1, 126, - 11, -1, 100, -1, -1, -1, -1, 134, 135, 136, - 137, -1, -1, 140, -1, 142, -1, -1, -1, -1, - -1, -1, 120, 121, 11, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, - 51, -1, 140, 54, 142, 56, 57, 58, 59, 60, - -1, -1, 63, -1, -1, 66, -1, -1, -1, 70, - -1, -1, -1, -1, 51, -1, 77, 54, -1, 56, - 57, 58, 59, 84, -1, -1, 63, -1, -1, 66, - -1, -1, -1, 70, -1, -1, -1, -1, -1, 100, - 77, -1, -1, -1, -1, -1, -1, 84, 10, 11, - 12, -1, -1, -1, -1, -1, -1, -1, -1, 120, - 121, 11, -1, 100, -1, 126, -1, -1, -1, -1, - -1, -1, -1, 134, 135, 136, 137, -1, -1, 140, - -1, 142, -1, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, - 137, 51, 64, 140, 54, 142, 56, 57, 58, 59, - -1, -1, -1, 63, 76, 77, 66, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, 77, -1, -1, - -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, - -1, -1, 47, -1, 49, -1, -1, 52, 53, -1, - 100, 113, 114, -1, 116, 60, 61, -1, -1, 121, - -1, 123, -1, -1, 69, -1, 71, 72, 73, 74, - 120, 121, 134, 78, -1, -1, 126, 139, 83, -1, - -1, -1, -1, -1, 134, 135, 136, 137, -1, -1, - 140, -1, 142, -1, -1, -1, 101, 102, 103, 104, - 105, 106, 107, 108, -1, -1, -1, -1, -1, 114, - 115, 116, 117, -1, -1, 47, -1, 49, 123, 124, - 52, 53, 127, 128, -1, -1, -1, 132, 60, 61, - -1, -1, -1, 138, 139, -1, 141, 69, -1, 71, - 72, 73, 74, -1, 149, -1, 78, -1, -1, -1, - -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 168, -1, -1, -1, -1, -1, 101, - 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, - -1, -1, 114, 115, 116, 117, -1, -1, 47, -1, - 49, 123, 124, 52, 53, 127, 128, -1, -1, -1, - 132, 60, 61, -1, -1, -1, 138, 139, -1, 141, - 69, -1, 71, 72, 73, 74, -1, 149, -1, 78, - -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 168, -1, -1, -1, - -1, -1, 101, 102, 103, 104, 105, 106, 107, 108, - -1, -1, -1, -1, -1, 114, 115, 116, 117, -1, - -1, 47, -1, 49, 123, 124, 52, 53, 127, 128, - -1, -1, -1, 132, 60, 61, -1, -1, -1, 138, - 139, -1, 141, 69, -1, 71, 72, 73, 74, -1, - 149, -1, 78, -1, -1, -1, -1, 83, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 168, - -1, -1, -1, -1, -1, 101, 102, 103, 104, 105, - 106, 107, 108, -1, -1, -1, -1, -1, 114, 115, - 116, 117, -1, -1, 47, -1, 49, 123, 124, 52, - 53, 127, 128, -1, -1, -1, 132, 60, 61, -1, - -1, -1, 138, 139, -1, 141, 69, -1, 71, 72, - 73, 74, -1, 149, -1, 78, -1, -1, -1, -1, - 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 168, -1, -1, -1, -1, -1, 101, 102, - 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, - -1, 114, 115, 116, 117, -1, -1, 47, -1, 49, - 123, 124, 52, 53, 127, 128, -1, -1, -1, 132, - 60, 61, -1, -1, -1, 138, 139, -1, 141, 69, - -1, 71, 72, 73, 74, -1, 149, -1, 78, -1, - -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 168, -1, -1, -1, -1, - -1, 101, 102, 103, 104, 105, 106, 107, 108, -1, - -1, -1, -1, -1, 114, 115, 116, 117, -1, -1, - 47, -1, 49, 123, 124, 52, 53, 127, 128, -1, - -1, -1, 132, 60, 61, -1, -1, -1, 138, 139, - -1, 141, 69, -1, 71, 72, 73, 74, -1, 149, - -1, 78, 10, 11, 12, -1, 83, 15, -1, -1, - -1, -1, -1, 10, 11, 12, -1, -1, 168, 54, - -1, 56, 57, 58, 101, 102, 103, 104, 105, 106, - 107, 108, -1, -1, -1, -1, -1, 114, 115, 116, - 117, -1, -1, -1, -1, -1, 123, 124, -1, 84, - 127, 128, -1, -1, -1, 132, 64, -1, -1, -1, - -1, 138, 139, -1, 141, 100, -1, 64, 76, 77, - -1, -1, 149, -1, 54, -1, 56, 57, 58, 76, - 77, -1, -1, -1, -1, 120, 121, -1, -1, -1, - -1, 168, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 137, -1, 84, 113, 114, 142, 116, -1, - -1, -1, -1, 121, -1, 123, 113, 114, -1, 116, - 100, -1, -1, 47, 121, 49, 123, -1, -1, 53, - 165, -1, -1, -1, -1, -1, 60, 61, -1, -1, - 120, 121, -1, -1, -1, -1, -1, 71, 72, 73, - -1, -1, -1, -1, 78, -1, -1, 137, -1, 83, - -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + 159, -1, -1, 162, 163, 164, -1, -1, 167, -1, + 169, 170, -1, -1, 173, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1446, + -1, -1, -1, -1, -1, -1, 16, 17, 18, 19, + 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, + -1, -1, -1, 51, 34, -1, -1, 55, -1, 57, + 58, 59, 60, 23, 24, -1, -1, -1, 66, -1, + 68, 69, 70, 71, 34, -1, 1493, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, 85, -1, -1, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, + -1, -1, -1, -1, -1, 113, -1, 115, -1, 117, + -1, -1, -1, -1, 122, -1, 124, 125, 126, -1, + -1, 129, -1, -1, -1, -1, 134, -1, -1, 137, + -1, -1, -1, 141, 3, 4, 5, 6, 146, 8, + 9, 10, 11, 151, -1, -1, 15, -1, -1, -1, + -1, 159, -1, -1, 162, 163, 164, -1, -1, 167, + -1, 169, 170, -1, -1, 173, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, + 170, -1, 51, -1, 174, -1, 55, -1, 57, 58, + 59, 60, 162, 163, 164, 165, 166, 66, 168, 169, + 170, 70, 71, -1, -1, -1, -1, -1, -1, -1, + 79, 80, 81, -1, -1, -1, 85, -1, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, -1, 117, -1, + -1, -1, -1, 122, -1, 124, 125, 126, -1, -1, + 129, -1, -1, -1, -1, 134, -1, -1, 137, -1, + -1, -1, 141, 3, 4, 5, 6, 146, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + 159, -1, -1, 162, 163, 164, -1, -1, 167, -1, + 169, 170, -1, -1, 173, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, 51, -1, 34, -1, 55, -1, 57, 58, 59, + 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, 85, -1, -1, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, -1, -1, -1, -1, -1, + -1, -1, -1, 113, -1, 115, -1, 117, -1, -1, + -1, -1, 122, -1, 124, 125, 126, -1, -1, 129, + -1, -1, -1, -1, 134, -1, -1, 137, -1, -1, + -1, 141, 3, 4, 5, 6, 146, 8, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, 159, + -1, -1, 162, 163, 164, -1, -1, 167, -1, 169, + 170, 171, -1, 173, -1, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, + 51, 52, -1, 174, 55, -1, 57, 58, 59, 60, + -1, -1, -1, -1, -1, 66, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + 81, -1, -1, -1, 85, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, -1, -1, -1, -1, -1, -1, + -1, -1, 113, -1, 115, -1, 117, -1, -1, -1, + -1, 122, -1, 124, 125, 126, -1, -1, 129, -1, + -1, -1, -1, 134, -1, -1, 137, -1, -1, -1, + 141, 3, 4, 5, 6, 146, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, + -1, 162, 163, 164, -1, -1, 167, -1, 169, 170, + -1, -1, 173, 16, 17, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, -1, -1, 51, + 52, 34, -1, 55, -1, 57, 58, 59, 60, -1, + -1, -1, -1, -1, 66, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, 85, -1, -1, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, + -1, 113, -1, 115, -1, 117, -1, -1, -1, -1, + 122, -1, 124, 125, 126, -1, -1, 129, -1, -1, + -1, -1, 134, -1, -1, 137, -1, -1, -1, 141, + 3, 4, 5, 6, 146, 8, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, + 162, 163, 164, -1, -1, 167, -1, 169, 170, -1, + 153, 173, -1, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, 168, 169, 170, 51, -1, + -1, -1, 55, -1, 57, 58, 59, 60, -1, -1, + -1, -1, -1, 66, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, + -1, -1, 85, -1, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, -1, -1, -1, -1, -1, -1, -1, -1, + 113, -1, 115, -1, 117, -1, -1, -1, -1, 122, + -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, + -1, 134, -1, -1, 137, -1, -1, -1, 141, 3, + 4, 5, 6, 146, 8, 9, 10, 11, 151, -1, + -1, -1, -1, -1, -1, -1, 159, -1, -1, 162, + 163, 164, -1, -1, 167, -1, 169, 170, -1, -1, + 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 51, -1, -1, + -1, 55, -1, 57, 58, 59, 60, -1, -1, -1, + -1, -1, 66, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, 85, -1, -1, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, -1, -1, -1, -1, -1, -1, -1, -1, 113, + -1, 115, -1, 117, -1, -1, -1, -1, 122, -1, + 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, + 134, -1, -1, 137, -1, -1, -1, 141, 3, 4, + 5, 6, 146, 8, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, -1, 159, -1, -1, 162, 163, + 164, -1, -1, 167, -1, 169, 170, 171, -1, 173, + 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, -1, -1, 51, -1, 34, -1, + 55, -1, 57, 58, 59, 60, -1, -1, -1, -1, + -1, 66, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, + 85, -1, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, + 115, -1, 117, -1, -1, -1, -1, 122, -1, 124, + 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, + -1, -1, 137, -1, -1, -1, 141, 3, 4, 5, + 6, 146, 8, 9, 10, 11, 151, -1, -1, -1, + -1, -1, -1, -1, 159, -1, -1, 162, 163, 164, + -1, -1, 167, -1, 169, 170, 152, -1, 173, -1, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, 168, 169, 170, 51, -1, -1, -1, 55, + -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, + 66, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, 85, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, + -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, + -1, 117, -1, -1, -1, -1, 122, -1, 124, 125, + 126, -1, -1, 129, -1, -1, -1, -1, 134, -1, + -1, 137, -1, -1, -1, 141, 3, 4, 5, 6, + 146, 8, 9, 10, 11, -1, -1, -1, -1, -1, + -1, -1, -1, 159, -1, -1, 162, 163, 164, -1, + -1, 167, -1, 169, 170, 171, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 107, -1, 165, -1, -1, -1, -1, - -1, -1, -1, 117, -1, -1, -1, -1, -1, 123, - -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 139, 47, 141, 49, -1, - -1, 52, 53, -1, -1, -1, -1, -1, -1, 60, - 61, -1, 156, -1, -1, -1, -1, -1, 69, -1, - 71, 72, 73, 74, -1, -1, -1, 78, -1, -1, - -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 51, -1, -1, -1, 55, -1, + 57, 58, 59, 60, -1, -1, -1, -1, -1, 66, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + -1, -1, 79, 80, 81, -1, -1, -1, 85, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, + -1, -1, 11, -1, -1, -1, 113, -1, 115, -1, + 117, -1, -1, -1, -1, 122, -1, 124, 125, 126, + -1, -1, 129, -1, -1, -1, -1, 134, -1, -1, + 137, -1, -1, -1, 141, 3, 4, 5, 6, 146, + 8, 9, 10, 11, 12, -1, 55, 15, 57, 58, + 59, 60, 159, -1, -1, 162, 163, 164, -1, -1, + 167, -1, 169, 170, -1, -1, 173, 16, 17, 18, + 19, 20, 21, 22, 23, 24, -1, -1, -1, 88, + 48, -1, -1, 51, 52, 34, -1, 55, -1, 57, + 58, 59, 60, 61, 62, 104, -1, -1, 66, 67, + -1, -1, 70, 71, -1, -1, 74, -1, -1, -1, + -1, 79, 80, 81, -1, 124, 125, -1, -1, -1, + 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 141, -1, -1, -1, 104, 146, -1, -1, + -1, -1, -1, -1, -1, 113, -1, 115, -1, 117, + -1, -1, -1, 121, 122, -1, 124, 125, 126, -1, + -1, 129, 130, -1, -1, -1, 134, -1, -1, 137, + 138, 139, 140, 141, -1, -1, 144, -1, 146, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, -1, + -1, 159, -1, -1, 162, 163, -1, -1, -1, 167, + -1, 169, -1, 152, -1, 173, -1, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, + 169, 170, 171, -1, 10, 11, 12, 51, -1, -1, + -1, 55, -1, 57, 58, 59, 60, -1, -1, -1, + -1, -1, 66, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, 85, -1, -1, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, -1, 68, -1, -1, -1, -1, -1, -1, 113, + -1, 115, -1, 117, 80, 81, -1, -1, 122, -1, + 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, + 134, -1, -1, 137, -1, -1, -1, 141, 3, 4, + 5, 6, 146, 8, 9, 10, 11, 12, -1, -1, + 15, 117, 118, -1, 120, -1, -1, -1, -1, 125, + -1, 127, -1, 167, -1, 169, 170, -1, -1, 173, + 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, 48, -1, 151, 51, 52, 34, -1, + 55, -1, 57, 58, 59, 60, 61, 62, -1, -1, + -1, 66, 67, -1, -1, 70, 71, -1, -1, 74, + -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, + -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 10, 11, 12, -1, 104, + -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, + 115, -1, 117, -1, -1, -1, 121, 122, -1, 124, + 125, 126, -1, -1, 129, 130, -1, -1, -1, 134, + -1, -1, 137, 138, 139, 140, 141, -1, -1, 144, + -1, 146, -1, 3, 4, 5, 6, -1, 8, 9, + 10, -1, -1, 68, 159, 15, -1, 162, 163, -1, + -1, -1, 167, -1, 169, 80, 81, -1, 173, -1, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, 168, 169, 170, 171, -1, -1, -1, -1, + -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 117, 118, -1, 120, 66, -1, -1, -1, + 125, 71, 127, -1, -1, 10, 11, 12, -1, 79, + 80, 10, 11, 12, -1, 85, -1, -1, -1, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 159, -1, -1, -1, -1, 164, + -1, -1, -1, -1, -1, 115, -1, 117, 3, 4, + 5, 6, 122, 8, 9, 10, 126, -1, -1, 129, + -1, -1, -1, 68, 134, -1, -1, -1, -1, 68, + -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, + -1, 80, 81, -1, -1, -1, -1, -1, -1, 159, + -1, -1, 162, 163, 164, -1, 51, 167, -1, 169, + 170, -1, -1, 173, -1, -1, -1, -1, -1, -1, + -1, 66, 117, 118, -1, 120, 71, -1, 117, 118, + 125, 120, 127, -1, 79, 80, 125, -1, 127, -1, + 85, -1, -1, 138, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, -1, + -1, 55, 151, 57, 58, 59, 60, -1, -1, -1, + 115, -1, 117, 3, 4, 5, 6, 122, 8, 9, + 10, 126, -1, -1, 129, -1, -1, -1, -1, 134, + -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 101, 102, 103, 104, 105, 106, 107, 108, -1, -1, - -1, -1, -1, 114, 115, 116, 117, -1, -1, 47, - -1, 49, 123, 124, -1, 53, 127, 128, -1, -1, - -1, 132, 60, 61, -1, -1, -1, 138, 139, -1, - 141, -1, -1, 71, 72, 73, 47, -1, 49, -1, - 78, -1, 53, -1, -1, 83, -1, -1, -1, 60, - 61, 47, -1, 49, -1, -1, -1, 53, -1, -1, - 71, 72, 73, -1, 60, 61, -1, -1, -1, 107, - -1, -1, 83, -1, -1, 71, 72, 73, -1, 117, - -1, -1, -1, -1, -1, 123, -1, 83, -1, 127, - 128, -1, -1, -1, -1, -1, 107, 108, -1, -1, - 138, 139, -1, 141, -1, -1, 117, -1, -1, -1, - -1, 107, 123, -1, -1, -1, -1, 128, -1, -1, - -1, 117, -1, -1, -1, -1, -1, 123, 139, -1, - 141, -1, 128, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 139, -1, 141 + 104, -1, -1, -1, 159, -1, -1, 162, 163, 164, + -1, 51, 167, -1, 169, 170, -1, -1, 173, -1, + 124, 125, 3, 4, 5, 6, 66, 8, 9, 10, + -1, 71, -1, -1, 15, -1, -1, 141, -1, 79, + 80, -1, 146, -1, -1, 85, -1, -1, -1, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, -1, 169, -1, -1, -1, -1, + 51, -1, -1, -1, -1, 115, -1, 117, -1, -1, + -1, -1, 122, -1, -1, 66, 126, -1, -1, 129, + 71, 22, 23, 24, 134, -1, -1, -1, 79, 80, + -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 10, 11, 12, -1, 16, 17, 18, + 19, 20, 21, 22, 23, 24, -1, 167, -1, 169, + 170, -1, 113, 173, 115, 34, 117, -1, -1, -1, + -1, 122, -1, -1, -1, 126, -1, -1, 129, -1, + -1, -1, -1, 134, -1, -1, 137, -1, 55, -1, + 57, 58, 59, 60, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 70, -1, -1, -1, -1, 159, -1, + -1, 162, 163, 6, 81, -1, 167, -1, 169, -1, + -1, 88, 173, 16, 17, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 104, -1, -1, + -1, 34, -1, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, -1, 124, 125, -1, + -1, 162, 163, 164, 165, 166, -1, 168, 169, 170, + -1, 138, -1, -1, 141, -1, 69, 144, -1, 146, + -1, -1, -1, -1, -1, 10, 11, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, + 169, 170, 171, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 113, -1, -1, -1, -1, -1, -1, 52, -1, -1, + 55, -1, 57, 58, 59, 60, 61, -1, -1, -1, + -1, -1, 67, -1, -1, 70, -1, 10, 11, 74, + -1, -1, -1, -1, -1, -1, 81, -1, -1, 152, + -1, -1, 155, 88, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, -1, 169, 170, -1, 104, + 173, -1, -1, -1, -1, -1, -1, -1, -1, 52, + -1, 116, 55, -1, 57, 58, 59, 60, 61, 124, + 125, -1, -1, -1, 67, 130, -1, 70, -1, -1, + -1, 74, -1, 138, 139, 140, 141, -1, 81, 144, + -1, 146, -1, -1, -1, 88, 16, 17, 18, 19, + 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, + -1, 104, 167, -1, 34, 10, 11, 12, -1, -1, + -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, + -1, 124, 125, -1, -1, -1, -1, 130, 20, 21, + 22, 23, 24, -1, -1, 138, 139, 140, 141, -1, + -1, 144, 34, 146, 16, 17, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 34, 68, 167, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, 80, 81, -1, -1, -1, + -1, -1, -1, 34, 16, 17, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 34, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 117, 118, -1, 120, -1, -1, -1, -1, + 125, 34, 127, -1, -1, -1, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 142, 168, 169, + 170, 171, 16, 17, 18, 19, 20, 21, 22, 23, + 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 34, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 162, 163, 164, 165, 166, -1, 168, 169, 170, 34, + -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, + -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, + 171, -1, -1, -1, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, + -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, 168, 169, 170, 171, 16, + 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, + 154, -1, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, 168, 169, 170, -1, -1, 154, + -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 6, 168, 169, 170, 16, 17, 18, 19, + 20, 21, 22, 23, 24, -1, -1, -1, 55, -1, + 57, 58, 59, 60, 34, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34, 48, -1, 50, -1, -1, -1, + 54, 88, -1, -1, -1, -1, -1, -1, 62, 63, + 64, 65, -1, -1, -1, -1, -1, 104, -1, -1, + -1, 75, 76, 77, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, -1, -1, 124, 125, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, 168, 169, 170, 141, -1, -1, 111, -1, 146, + -1, -1, -1, -1, -1, -1, -1, 121, 10, 11, + 12, -1, -1, 127, -1, -1, -1, 131, 132, -1, + -1, -1, 0, -1, -1, -1, -1, -1, -1, 143, + -1, 145, -1, -1, -1, -1, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, + 170, -1, -1, -1, -1, 156, 157, 158, 159, -1, + -1, 162, 163, 164, 165, 166, 68, 168, 169, 170, + 48, -1, 50, -1, -1, 53, 54, -1, 80, 81, + -1, -1, -1, -1, 62, 63, 64, 65, -1, -1, + -1, -1, -1, -1, -1, 73, -1, 75, 76, 77, + 78, 10, 11, 12, 82, -1, 15, -1, -1, 87, + 112, -1, -1, -1, -1, 117, 118, -1, 120, -1, + -1, -1, -1, 125, -1, 127, -1, 105, 106, 107, + 108, 109, 110, 111, 112, -1, -1, -1, -1, -1, + 118, 119, 120, 121, -1, -1, -1, -1, -1, 127, + 128, 11, 12, 131, 132, 15, -1, 17, 136, 68, + -1, -1, -1, -1, 142, 143, -1, 145, -1, -1, + -1, 80, 81, -1, -1, 153, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, 48, -1, + -1, -1, 52, 34, -1, 55, -1, 57, 58, 59, + 60, 61, 62, -1, -1, -1, -1, 67, 117, 118, + 70, 120, -1, -1, 74, -1, 125, -1, 127, -1, + -1, 81, -1, -1, -1, -1, -1, -1, 88, 17, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, -1, -1, -1, 104, -1, 34, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, 121, -1, 34, 124, 125, -1, -1, -1, -1, + 130, 18, 19, 20, 21, 22, 23, 24, 138, 139, + 140, 141, -1, -1, 144, -1, 146, 34, -1, 18, + 19, 20, 21, 22, 23, 24, -1, -1, -1, 159, + -1, -1, -1, -1, 164, 34, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 34, 18, 19, 20, + 21, 22, 23, 24, -1, -1, 18, 19, 20, 21, + 22, 23, 24, 34, -1, -1, -1, -1, -1, 157, + 158, 159, 34, -1, 162, 163, 164, 165, 166, -1, + 168, 169, 170, -1, -1, -1, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, + -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, + 24, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 34, 168, 169, 170, 20, 21, 22, 23, 24, -1, + 159, 160, 161, 162, 163, 164, 165, 166, 34, 168, + 169, 170, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, + 158, 159, -1, -1, 162, 163, 164, 165, 166, -1, + 168, 169, 170, -1, -1, -1, -1, -1, -1, 160, + 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, + 162, 163, 164, 165, 166, -1, 168, 169, 170, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, + -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 158, 159, -1, -1, 162, 163, + 164, 165, 166, 6, 168, 169, 170, -1, -1, -1, + -1, -1, 88, -1, 160, 161, 162, 163, 164, 165, + 166, -1, 168, 169, 170, -1, -1, -1, 104, -1, + -1, -1, -1, 159, -1, -1, 162, 163, 164, 165, + 166, -1, 168, 169, 170, 48, -1, 50, 124, 125, + -1, 54, 10, 11, 12, -1, -1, -1, -1, 62, + 63, 64, 65, -1, -1, 141, -1, -1, -1, -1, + 146, -1, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, 10, 11, 12, -1, -1, + -1, -1, -1, 169, -1, -1, -1, 55, -1, 57, + 58, 59, 60, -1, -1, -1, -1, -1, 111, -1, + -1, -1, 70, -1, -1, -1, -1, -1, 121, -1, + -1, -1, -1, 81, 127, -1, -1, -1, -1, 132, + 88, 11, 12, -1, -1, 15, -1, -1, -1, -1, + 143, -1, 145, 68, -1, -1, 104, -1, -1, -1, + -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, 48, 11, + 12, -1, 52, 15, -1, 55, -1, 57, 58, 59, + 60, 61, 62, 141, -1, -1, 144, 67, 146, -1, + 70, -1, 117, 118, 74, 120, -1, -1, -1, -1, + 125, 81, 127, -1, -1, -1, 48, -1, 88, -1, + 52, -1, -1, 55, -1, 57, 58, 59, 60, 61, + 62, -1, -1, -1, 104, 67, -1, -1, 70, -1, + -1, -1, 74, -1, -1, -1, -1, -1, -1, 81, + -1, 121, -1, -1, 124, 125, 88, -1, -1, -1, + 130, -1, 10, 11, 12, -1, -1, -1, 138, 139, + 140, 141, 104, -1, 144, -1, 146, -1, 11, 12, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, + -1, -1, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, 11, 12, -1, 138, 139, 140, 141, + -1, -1, 144, -1, 146, 48, -1, -1, -1, 52, + 68, -1, 55, -1, 57, 58, 59, 60, 61, 62, + -1, -1, 80, 81, 67, -1, -1, 70, -1, -1, + -1, 74, -1, -1, 52, -1, -1, 55, 81, 57, + 58, 59, 60, 61, 62, 88, -1, -1, -1, 67, + -1, -1, 70, -1, -1, -1, 74, -1, -1, 117, + 118, 104, 120, 81, -1, -1, -1, 125, -1, 127, + 88, -1, -1, -1, -1, -1, -1, -1, 121, -1, + 138, 124, 125, 11, 12, 143, 104, 130, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, + -1, 144, -1, 146, -1, -1, 124, 125, 11, 12, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + 138, 139, 140, 141, 52, -1, 144, 55, 146, 57, + 58, 59, 60, 61, -1, -1, -1, -1, -1, 67, + -1, -1, 70, -1, -1, -1, 74, -1, -1, 52, + -1, -1, 55, 81, 57, 58, 59, 60, 61, -1, + 88, -1, -1, -1, 67, -1, -1, 70, -1, -1, + -1, 74, -1, -1, -1, -1, 104, -1, 81, -1, + -1, -1, 10, 11, 12, 88, -1, -1, -1, -1, + -1, -1, -1, 121, -1, -1, 124, 125, 11, -1, + -1, 104, 130, -1, -1, -1, -1, -1, -1, -1, + 138, 139, 140, 141, -1, -1, 144, -1, 146, -1, + -1, 124, 125, 11, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, 52, + 68, 144, 55, 146, 57, 58, 59, 60, 61, 62, + -1, -1, 80, 81, 67, -1, -1, 70, -1, -1, + -1, 74, -1, -1, 52, -1, -1, 55, 81, 57, + 58, 59, 60, 61, 62, 88, -1, -1, -1, 67, + -1, -1, 70, -1, -1, -1, 74, -1, -1, 117, + 118, 104, 120, 81, -1, -1, -1, 125, -1, 127, + 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 138, 124, 125, 11, -1, 143, 104, 130, -1, -1, + -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, + -1, 144, -1, 146, -1, -1, 124, 125, 11, -1, + -1, -1, 130, -1, -1, -1, 10, 11, 12, -1, + 138, 139, 140, 141, 52, -1, 144, 55, 146, 57, + 58, 59, 60, 61, -1, -1, -1, -1, -1, 67, + -1, -1, 70, -1, -1, -1, 74, -1, -1, 52, + -1, -1, 55, 81, 57, 58, 59, 60, 61, -1, + 88, -1, -1, -1, 67, -1, -1, 70, -1, -1, + -1, 74, -1, -1, 68, -1, 104, -1, 81, -1, + -1, 10, 11, 12, -1, 88, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, + -1, 104, 130, -1, -1, -1, -1, -1, -1, -1, + 138, 139, 140, 141, -1, -1, 144, -1, 146, -1, + -1, 124, 125, 117, 118, 119, 120, 130, -1, -1, + -1, 125, -1, 127, -1, 138, 139, 140, 141, 68, + -1, 144, -1, 146, 138, -1, -1, -1, -1, 143, + -1, 80, 81, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 48, -1, 50, -1, -1, + 53, 54, -1, -1, -1, -1, -1, -1, -1, 62, + 63, 64, 65, -1, -1, -1, -1, -1, 117, 118, + 73, 120, 75, 76, 77, 78, 125, -1, 127, 82, + -1, -1, -1, -1, 87, -1, -1, -1, -1, 138, + -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, 127, 128, -1, -1, 131, 132, + -1, -1, 48, 136, 50, -1, -1, 53, 54, 142, + 143, -1, 145, -1, -1, -1, 62, 63, 64, 65, + 153, -1, -1, -1, -1, -1, -1, 73, -1, 75, + 76, 77, 78, -1, -1, -1, 82, -1, -1, 172, + -1, 87, -1, 55, -1, 57, 58, 59, 60, -1, + -1, 55, -1, 57, 58, 59, 60, -1, 70, 105, + 106, 107, 108, 109, 110, 111, 112, -1, -1, -1, + -1, -1, 118, 119, 120, 121, 88, -1, -1, -1, + -1, 127, 128, -1, 88, 131, 132, -1, -1, 48, + 136, 50, 104, -1, 53, 54, 142, 143, -1, 145, + 104, -1, -1, 62, 63, 64, 65, 153, -1, -1, + -1, -1, 124, 125, 73, -1, 75, 76, 77, 78, + 124, 125, -1, 82, -1, -1, 172, -1, 87, 141, + -1, -1, -1, -1, 146, -1, -1, 141, -1, -1, + -1, -1, 146, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, -1, -1, -1, 169, -1, 118, + 119, 120, 121, -1, -1, 169, -1, -1, 127, 128, + -1, -1, 131, 132, -1, -1, 48, 136, 50, -1, + -1, 53, 54, 142, 143, -1, 145, -1, -1, -1, + 62, 63, 64, 65, 153, -1, -1, -1, -1, -1, + -1, 73, -1, 75, 76, 77, 78, -1, -1, -1, + 82, -1, -1, 172, -1, 87, -1, 55, -1, 57, + 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, 105, 106, 107, 108, 109, 110, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + 88, -1, -1, -1, -1, 127, 128, -1, -1, 131, + 132, -1, -1, 48, 136, 50, 104, -1, 53, 54, + 142, 143, -1, 145, -1, -1, -1, 62, 63, 64, + 65, 153, -1, -1, -1, -1, 124, 125, 73, -1, + 75, 76, 77, 78, -1, -1, -1, 82, -1, -1, + 172, -1, 87, 141, -1, -1, -1, -1, 146, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, -1, -1, + -1, -1, -1, 118, 119, 120, 121, -1, -1, -1, + -1, -1, 127, 128, -1, -1, 131, 132, -1, -1, + 48, 136, 50, -1, -1, 53, 54, 142, 143, -1, + 145, -1, -1, -1, 62, 63, 64, 65, 153, -1, + -1, -1, -1, -1, -1, 73, -1, 75, 76, 77, + 78, -1, -1, -1, 82, -1, -1, 172, -1, 87, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, -1, -1, -1, -1, -1, + 118, 119, 120, 121, -1, -1, -1, -1, -1, 127, + 128, -1, -1, 131, 132, -1, -1, 48, 136, 50, + -1, -1, 53, 54, 142, 143, -1, 145, 10, 11, + 12, 62, 63, 64, 65, 153, -1, -1, -1, -1, + -1, -1, 73, -1, 75, 76, 77, 78, -1, -1, + -1, 82, -1, -1, 172, 48, 87, 50, -1, -1, + -1, 54, -1, -1, -1, -1, 48, -1, 50, 62, + 63, 64, 65, -1, 105, 106, 107, 108, 109, 110, + 111, 112, 75, 76, 77, -1, 68, 118, 119, 120, + 121, -1, -1, -1, 87, -1, 127, 128, 80, 81, + 131, 132, -1, -1, -1, 136, -1, -1, -1, -1, + -1, 142, 143, -1, 145, -1, -1, -1, 111, 112, + -1, -1, 153, -1, -1, -1, -1, -1, 121, -1, + -1, -1, -1, -1, 127, 117, 118, -1, 120, 132, + 48, 172, 50, 125, -1, 127, 54, -1, -1, -1, + 143, -1, 145, -1, 62, 63, 64, 65, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 75, 76, 77, + -1, -1, -1, -1, 82, -1, -1, -1, -1, 87, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 121, -1, 48, -1, 50, -1, 127, + 53, 54, -1, -1, 132, -1, -1, -1, -1, 62, + 63, 64, 65, -1, 142, 143, -1, 145, -1, -1, + 73, -1, 75, 76, 77, 78, -1, -1, -1, 82, + -1, -1, 160, -1, 87, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + 48, -1, 50, -1, 127, 128, 54, -1, 131, 132, + -1, -1, -1, 136, 62, 63, 64, 65, -1, 142, + 143, -1, 145, -1, -1, -1, -1, 75, 76, 77, + 48, -1, 50, -1, 82, -1, 54, -1, -1, 87, + -1, -1, -1, -1, 62, 63, 64, 65, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 75, 76, 77, + -1, -1, -1, 111, -1, -1, -1, -1, -1, 87, + -1, -1, -1, 121, -1, -1, -1, -1, -1, 127, + -1, -1, -1, 131, 132, -1, -1, -1, -1, -1, + -1, -1, -1, 111, 142, 143, -1, 145, -1, -1, + -1, -1, -1, 121, -1, -1, -1, -1, -1, 127, + -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 143, -1, 145 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 144, 145, 146, 172, 173, 281, 3, 4, 5, - 6, 8, 9, 10, 11, 50, 54, 56, 57, 58, - 62, 66, 67, 75, 76, 77, 81, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 109, 111, 113, 118, 120, 121, - 122, 125, 130, 133, 137, 142, 155, 158, 159, 160, - 163, 165, 166, 169, 271, 272, 280, 11, 12, 51, - 54, 56, 57, 58, 59, 60, 63, 66, 70, 77, - 84, 100, 120, 121, 126, 134, 135, 136, 137, 140, - 142, 233, 234, 238, 240, 242, 248, 249, 253, 254, - 259, 260, 261, 262, 0, 47, 49, 52, 53, 60, - 61, 69, 71, 72, 73, 74, 78, 83, 101, 102, - 103, 104, 105, 106, 107, 108, 114, 115, 116, 117, - 123, 124, 127, 128, 132, 138, 139, 141, 149, 176, - 178, 179, 181, 184, 204, 255, 258, 281, 147, 165, - 165, 165, 165, 165, 165, 156, 165, 156, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 11, 51, 63, - 134, 135, 236, 253, 254, 259, 156, 165, 165, 15, - 165, 271, 156, 165, 165, 165, 271, 271, 271, 271, - 271, 11, 54, 56, 57, 58, 66, 77, 84, 100, - 120, 121, 137, 142, 238, 269, 271, 10, 11, 12, - 64, 76, 77, 113, 114, 116, 121, 123, 151, 155, - 160, 275, 276, 278, 281, 271, 16, 17, 18, 19, - 20, 21, 22, 23, 33, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 164, 165, 166, 6, - 8, 233, 234, 165, 59, 126, 66, 100, 260, 260, - 260, 278, 165, 260, 13, 15, 17, 60, 141, 155, - 160, 165, 231, 232, 281, 232, 147, 10, 11, 12, - 113, 150, 279, 239, 281, 138, 182, 183, 278, 165, - 72, 83, 181, 181, 181, 181, 6, 181, 204, 181, - 150, 180, 108, 181, 165, 165, 165, 165, 165, 165, - 181, 147, 278, 150, 150, 150, 181, 181, 165, 179, - 181, 184, 205, 181, 181, 188, 108, 278, 181, 181, - 10, 11, 51, 63, 112, 134, 135, 147, 163, 191, - 195, 235, 237, 240, 242, 248, 253, 254, 259, 268, - 269, 281, 268, 238, 268, 268, 268, 268, 238, 268, - 238, 268, 238, 268, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 268, - 165, 278, 165, 165, 278, 239, 238, 268, 268, 165, - 238, 238, 238, 271, 268, 268, 167, 148, 167, 278, - 278, 148, 170, 151, 221, 281, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 278, 167, 269, 271, - 232, 232, 51, 271, 238, 160, 278, 13, 15, 17, - 60, 141, 155, 160, 231, 281, 231, 232, 231, 232, - 231, 231, 15, 17, 47, 60, 117, 155, 160, 216, - 217, 226, 233, 234, 281, 166, 251, 252, 281, 11, - 250, 260, 150, 10, 11, 12, 47, 49, 113, 147, - 278, 279, 278, 48, 148, 165, 11, 235, 271, 181, - 178, 147, 278, 278, 278, 278, 278, 278, 278, 173, - 147, 271, 156, 10, 11, 195, 235, 237, 278, 149, - 151, 165, 165, 165, 60, 233, 278, 165, 177, 278, - 186, 147, 149, 151, 223, 149, 185, 278, 279, 239, - 168, 167, 167, 167, 167, 167, 167, 157, 167, 157, - 167, 167, 167, 167, 148, 167, 148, 167, 148, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 271, 238, 268, 278, 157, 167, 167, 278, 167, 157, - 167, 167, 167, 167, 271, 271, 15, 155, 276, 165, - 201, 281, 271, 150, 167, 170, 167, 167, 167, 231, - 160, 278, 231, 231, 231, 231, 231, 166, 231, 182, - 117, 233, 234, 226, 231, 231, 167, 15, 148, 13, - 17, 60, 141, 155, 160, 165, 229, 279, 281, 13, - 15, 17, 60, 141, 155, 160, 165, 230, 267, 271, - 281, 278, 168, 250, 182, 165, 241, 243, 150, 181, - 182, 3, 4, 5, 9, 10, 15, 50, 62, 67, - 75, 76, 109, 111, 113, 118, 122, 125, 130, 133, - 155, 158, 159, 163, 165, 169, 218, 219, 226, 227, - 273, 274, 280, 281, 167, 167, 173, 147, 148, 148, - 148, 148, 148, 148, 168, 256, 148, 167, 10, 11, - 12, 59, 60, 134, 206, 207, 208, 209, 210, 259, - 281, 165, 223, 189, 149, 238, 192, 10, 13, 160, - 194, 51, 271, 233, 13, 17, 60, 141, 155, 160, - 228, 279, 281, 238, 173, 165, 147, 149, 150, 151, - 222, 263, 264, 64, 65, 147, 271, 13, 17, 60, - 112, 141, 155, 160, 165, 187, 211, 213, 279, 150, - 278, 165, 165, 238, 238, 238, 167, 167, 167, 165, - 167, 165, 221, 216, 17, 33, 47, 60, 61, 76, - 107, 110, 113, 129, 141, 155, 214, 281, 271, 231, - 267, 167, 48, 233, 234, 229, 230, 167, 167, 201, - 15, 226, 160, 229, 229, 229, 229, 229, 229, 166, - 221, 160, 278, 230, 230, 230, 230, 230, 230, 166, - 221, 170, 148, 151, 48, 235, 271, 173, 76, 244, - 281, 183, 165, 156, 156, 236, 156, 15, 165, 273, - 156, 165, 271, 271, 271, 271, 238, 269, 271, 167, - 15, 148, 16, 17, 18, 19, 20, 21, 22, 23, - 33, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 164, 165, 166, 181, 181, 168, 257, 10, - 10, 10, 10, 10, 10, 173, 280, 149, 210, 157, - 148, 15, 278, 13, 17, 60, 141, 155, 160, 165, - 229, 230, 190, 213, 149, 216, 167, 160, 211, 216, - 167, 167, 228, 160, 228, 228, 228, 228, 228, 165, - 166, 167, 168, 196, 263, 174, 175, 278, 64, 65, - 168, 265, 281, 149, 149, 147, 224, 225, 271, 281, - 149, 160, 211, 211, 6, 16, 17, 18, 19, 20, - 21, 22, 23, 33, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 65, 109, 148, 151, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 165, 166, 169, 202, 211, 211, 211, 211, 150, - 165, 166, 214, 151, 221, 223, 250, 269, 269, 167, - 167, 167, 269, 269, 167, 60, 236, 182, 165, 147, - 170, 165, 226, 229, 230, 221, 221, 165, 165, 214, - 229, 167, 267, 230, 167, 267, 271, 167, 167, 168, - 150, 245, 246, 281, 238, 238, 238, 165, 238, 165, - 238, 238, 238, 271, 167, 167, 15, 227, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 278, 167, - 269, 271, 173, 148, 148, 167, 148, 215, 281, 148, - 148, 148, 168, 167, 229, 230, 179, 184, 203, 204, - 209, 278, 151, 160, 151, 220, 281, 221, 223, 167, - 165, 211, 167, 167, 165, 228, 199, 267, 216, 168, - 147, 148, 147, 165, 149, 149, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 70, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 100, 107, 108, 109, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 169, 170, 266, 224, 168, 148, 211, - 10, 167, 170, 167, 271, 212, 267, 271, 148, 167, - 167, 167, 167, 201, 236, 232, 48, 167, 278, 263, - 216, 221, 221, 216, 216, 165, 170, 165, 170, 148, - 114, 115, 116, 134, 139, 247, 277, 278, 147, 148, - 167, 157, 157, 268, 157, 278, 167, 157, 167, 167, - 271, 150, 167, 170, 168, 10, 10, 149, 10, 167, - 10, 10, 10, 149, 220, 238, 50, 62, 67, 118, - 122, 125, 155, 158, 159, 160, 163, 165, 169, 270, - 272, 148, 201, 193, 167, 165, 201, 200, 216, 170, - 167, 263, 175, 268, 268, 265, 168, 147, 271, 218, - 170, 187, 214, 232, 15, 167, 168, 167, 167, 167, - 216, 216, 139, 277, 139, 277, 139, 277, 278, 114, - 115, 116, 15, 173, 247, 165, 165, 167, 165, 167, - 165, 271, 167, 148, 167, 148, 149, 148, 167, 167, - 148, 167, 165, 156, 156, 156, 15, 165, 270, 156, - 270, 270, 270, 270, 270, 238, 269, 270, 16, 17, - 18, 19, 20, 21, 22, 23, 33, 152, 153, 154, - 155, 158, 159, 160, 161, 162, 164, 165, 166, 190, - 216, 165, 197, 216, 167, 201, 168, 168, 167, 168, - 224, 167, 147, 167, 201, 201, 201, 167, 167, 277, - 277, 277, 277, 277, 277, 168, 269, 269, 269, 269, - 149, 10, 149, 10, 10, 149, 149, 10, 149, 238, - 238, 238, 238, 165, 238, 238, 167, 167, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 278, 167, 269, 271, - 167, 198, 216, 167, 201, 15, 168, 201, 263, 214, - 214, 214, 201, 201, 167, 167, 167, 167, 148, 215, - 167, 148, 148, 167, 167, 157, 157, 157, 278, 167, - 157, 270, 150, 167, 170, 201, 216, 167, 201, 168, - 10, 167, 149, 10, 10, 149, 165, 165, 165, 167, - 165, 270, 167, 201, 149, 167, 148, 167, 269, 269, - 269, 269, 201, 214, 149, 10, 149, 167, 167, 167, - 167, 214, 167, 149 + 0, 148, 149, 150, 176, 177, 285, 3, 4, 5, + 6, 8, 9, 10, 11, 51, 55, 57, 58, 59, + 60, 66, 70, 71, 79, 80, 81, 85, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 113, 115, 117, 122, 124, + 125, 126, 129, 134, 137, 141, 146, 159, 162, 163, + 164, 167, 169, 170, 173, 275, 276, 284, 11, 12, + 52, 55, 57, 58, 59, 60, 61, 62, 67, 70, + 74, 81, 88, 104, 124, 125, 130, 138, 139, 140, + 141, 144, 146, 237, 238, 242, 244, 246, 252, 253, + 257, 258, 263, 264, 265, 266, 0, 48, 50, 53, + 54, 62, 63, 64, 65, 73, 75, 76, 77, 78, + 82, 87, 105, 106, 107, 108, 109, 110, 111, 112, + 118, 119, 120, 121, 127, 128, 131, 132, 136, 142, + 143, 145, 153, 180, 182, 183, 185, 188, 208, 259, + 262, 285, 151, 169, 169, 169, 169, 169, 169, 169, + 160, 169, 160, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 11, 52, 67, 138, 139, 240, 257, 258, + 263, 160, 169, 169, 15, 169, 275, 160, 169, 169, + 169, 275, 275, 275, 275, 275, 11, 55, 57, 58, + 59, 60, 70, 81, 88, 104, 124, 125, 141, 146, + 242, 273, 275, 10, 11, 12, 68, 80, 81, 117, + 118, 120, 125, 127, 155, 159, 164, 279, 280, 282, + 285, 275, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 34, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 168, 169, 170, 6, 8, 237, 238, + 169, 61, 130, 70, 104, 264, 264, 264, 282, 169, + 264, 13, 15, 17, 62, 145, 159, 164, 169, 235, + 236, 285, 236, 151, 10, 11, 12, 117, 154, 283, + 243, 285, 142, 186, 187, 282, 169, 76, 87, 185, + 185, 185, 185, 185, 185, 6, 185, 208, 185, 154, + 184, 112, 185, 169, 169, 169, 169, 169, 169, 185, + 151, 282, 154, 154, 154, 185, 185, 169, 183, 185, + 188, 209, 185, 185, 192, 112, 282, 185, 185, 10, + 11, 52, 67, 116, 138, 139, 151, 167, 195, 199, + 239, 241, 244, 246, 252, 257, 258, 263, 272, 273, + 285, 272, 242, 272, 272, 272, 272, 272, 242, 272, + 242, 272, 242, 272, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 272, + 169, 282, 169, 169, 282, 243, 242, 272, 272, 169, + 242, 242, 242, 275, 272, 272, 171, 152, 171, 282, + 282, 152, 174, 155, 225, 285, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 282, 171, 273, + 275, 236, 236, 52, 275, 242, 164, 282, 13, 15, + 17, 62, 145, 159, 164, 235, 285, 235, 236, 235, + 236, 235, 235, 15, 17, 48, 62, 121, 159, 164, + 220, 221, 230, 237, 238, 285, 170, 255, 256, 285, + 11, 254, 264, 154, 10, 11, 12, 48, 50, 117, + 151, 282, 283, 282, 49, 152, 169, 11, 239, 275, + 185, 182, 151, 282, 282, 282, 282, 282, 282, 282, + 177, 151, 275, 160, 10, 11, 199, 239, 241, 282, + 153, 155, 169, 169, 169, 62, 237, 282, 169, 181, + 282, 190, 151, 153, 155, 227, 153, 189, 282, 283, + 243, 172, 171, 171, 171, 171, 171, 171, 171, 161, + 171, 161, 171, 171, 171, 171, 152, 171, 152, 171, + 152, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 275, 242, 272, 282, 161, 171, 171, 282, + 171, 161, 171, 171, 171, 171, 275, 275, 15, 159, + 280, 169, 205, 285, 275, 154, 171, 174, 171, 171, + 171, 235, 164, 282, 235, 235, 235, 235, 235, 170, + 235, 186, 121, 237, 238, 230, 235, 235, 171, 15, + 152, 13, 17, 62, 145, 159, 164, 169, 233, 283, + 285, 13, 15, 17, 62, 145, 159, 164, 169, 234, + 271, 275, 285, 282, 172, 254, 186, 169, 245, 247, + 154, 185, 186, 3, 4, 5, 9, 10, 15, 51, + 66, 71, 79, 80, 113, 115, 117, 122, 126, 129, + 134, 137, 159, 162, 163, 167, 169, 173, 222, 223, + 230, 231, 277, 278, 284, 285, 171, 171, 177, 151, + 152, 152, 152, 152, 152, 152, 172, 260, 152, 171, + 10, 11, 12, 61, 62, 138, 210, 211, 212, 213, + 214, 263, 285, 169, 227, 193, 153, 242, 196, 10, + 13, 164, 198, 52, 275, 237, 13, 17, 62, 145, + 159, 164, 232, 283, 285, 242, 177, 169, 151, 153, + 154, 155, 226, 267, 268, 68, 69, 151, 275, 13, + 17, 62, 116, 145, 159, 164, 169, 191, 215, 217, + 283, 154, 282, 169, 169, 242, 242, 242, 171, 171, + 171, 169, 171, 169, 225, 220, 17, 34, 48, 62, + 64, 80, 111, 114, 117, 133, 145, 159, 218, 285, + 275, 235, 271, 171, 49, 237, 238, 233, 234, 171, + 171, 205, 15, 230, 164, 233, 233, 233, 233, 233, + 233, 170, 225, 164, 282, 234, 234, 234, 234, 234, + 234, 170, 225, 174, 152, 155, 49, 239, 275, 177, + 80, 248, 285, 187, 169, 160, 160, 240, 160, 15, + 169, 277, 160, 169, 275, 275, 275, 275, 242, 273, + 275, 171, 15, 152, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 34, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 168, 169, 170, 185, 185, + 172, 261, 10, 10, 10, 10, 10, 10, 177, 284, + 153, 214, 161, 152, 15, 282, 13, 17, 62, 145, + 159, 164, 169, 233, 234, 194, 217, 153, 220, 171, + 164, 215, 220, 171, 171, 232, 164, 232, 232, 232, + 232, 232, 169, 170, 171, 172, 200, 267, 178, 179, + 282, 68, 69, 172, 269, 285, 153, 153, 151, 228, + 229, 275, 285, 153, 164, 215, 215, 6, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 34, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 69, 113, 152, 155, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 169, 170, 173, 206, 215, + 215, 215, 215, 154, 169, 170, 218, 155, 225, 227, + 254, 273, 273, 171, 171, 171, 273, 273, 171, 62, + 240, 186, 169, 151, 174, 169, 230, 233, 234, 225, + 225, 169, 169, 218, 233, 171, 271, 234, 171, 271, + 275, 171, 171, 172, 154, 249, 250, 285, 242, 242, + 242, 169, 242, 169, 242, 242, 242, 275, 171, 171, + 15, 231, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 282, 171, 273, 275, 177, 152, 152, + 171, 152, 219, 285, 152, 152, 152, 172, 171, 233, + 234, 183, 188, 207, 208, 213, 282, 155, 164, 155, + 224, 285, 225, 227, 171, 169, 215, 171, 171, 169, + 232, 203, 271, 220, 172, 151, 152, 151, 169, 153, + 153, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 86, 87, 88, 104, 111, 112, 113, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 173, 174, 270, 228, 172, 152, 215, 10, + 171, 174, 171, 275, 216, 271, 275, 152, 171, 171, + 171, 171, 205, 240, 236, 49, 171, 282, 267, 220, + 225, 225, 220, 220, 169, 174, 169, 174, 152, 118, + 119, 120, 138, 143, 251, 281, 282, 151, 152, 171, + 161, 161, 272, 161, 282, 171, 161, 171, 171, 275, + 154, 171, 174, 172, 10, 10, 153, 10, 171, 10, + 10, 10, 153, 224, 242, 51, 66, 71, 122, 126, + 129, 159, 162, 163, 164, 167, 169, 173, 274, 276, + 152, 205, 197, 171, 169, 205, 204, 220, 174, 171, + 267, 179, 272, 272, 269, 172, 151, 275, 222, 174, + 191, 218, 236, 15, 171, 172, 171, 171, 171, 220, + 220, 143, 281, 143, 281, 143, 281, 282, 118, 119, + 120, 15, 177, 251, 169, 169, 171, 169, 171, 169, + 275, 171, 152, 171, 152, 153, 152, 171, 171, 152, + 171, 169, 160, 160, 160, 15, 169, 274, 160, 274, + 274, 274, 274, 274, 242, 273, 274, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 34, 156, 157, 158, + 159, 162, 163, 164, 165, 166, 168, 169, 170, 194, + 220, 169, 201, 220, 171, 205, 172, 172, 171, 172, + 228, 171, 151, 171, 205, 205, 205, 171, 171, 281, + 281, 281, 281, 281, 281, 172, 273, 273, 273, 273, + 153, 10, 153, 10, 10, 153, 153, 10, 153, 242, + 242, 242, 242, 169, 242, 242, 171, 171, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 282, 171, 273, + 275, 171, 202, 220, 171, 205, 15, 172, 205, 267, + 218, 218, 218, 205, 205, 171, 171, 171, 171, 152, + 219, 171, 152, 152, 171, 171, 161, 161, 161, 282, + 171, 161, 274, 154, 171, 174, 205, 220, 171, 205, + 172, 10, 171, 153, 10, 10, 153, 169, 169, 169, + 171, 169, 274, 171, 205, 153, 171, 152, 171, 273, + 273, 273, 273, 205, 218, 153, 10, 153, 171, 171, + 171, 171, 218, 171, 153 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 171, 172, 172, 172, 173, 173, 173, 174, 174, - 175, 175, 175, 177, 176, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 180, 179, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 182, 182, 183, 183, 183, 185, 184, 184, - 186, 184, 184, 184, 187, 187, 189, 188, 188, 190, - 190, 192, 191, 193, 191, 194, 191, 196, 195, 197, - 195, 198, 195, 199, 195, 200, 195, 195, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 203, 203, 203, 204, 205, 204, 204, 204, 206, - 206, 207, 207, 208, 208, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 210, 210, 210, 210, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, - 211, 213, 213, 214, 214, 214, 215, 215, 216, 216, - 216, 216, 216, 217, 217, 218, 218, 218, 218, 218, - 219, 219, 220, 220, 221, 221, 222, 222, 222, 222, - 222, 223, 223, 223, 223, 223, 223, 224, 224, 224, - 225, 225, 225, 225, 226, 226, 226, 226, 226, 226, - 226, 226, 227, 227, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 234, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, - 236, 236, 236, 237, 237, 238, 238, 238, 238, 239, - 239, 239, 239, 241, 240, 243, 242, 244, 244, 245, - 245, 246, 246, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 248, 249, 249, 249, 249, 250, 250, - 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, - 254, 254, 256, 255, 257, 255, 255, 255, 258, 258, - 258, 259, 259, 259, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 261, 261, - 261, 262, 264, 263, 265, 265, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 267, 267, 268, 268, 269, - 269, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 0, 175, 176, 176, 176, 177, 177, 177, 178, 178, + 179, 179, 179, 181, 180, 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, 184, 183, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 186, 186, 187, 187, 187, 189, + 188, 188, 190, 188, 188, 188, 191, 191, 193, 192, + 192, 194, 194, 196, 195, 197, 195, 198, 195, 200, + 199, 201, 199, 202, 199, 203, 199, 204, 199, 199, + 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, + 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 207, 207, 207, 208, 209, 208, + 208, 208, 210, 210, 211, 211, 212, 212, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, + 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 216, 215, 217, 217, 218, 218, 218, 219, + 219, 220, 220, 220, 220, 220, 221, 221, 222, 222, + 222, 222, 222, 223, 223, 224, 224, 225, 225, 226, + 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, + 228, 228, 228, 229, 229, 229, 229, 230, 230, 230, + 230, 230, 230, 230, 230, 231, 231, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 238, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, + 240, 240, 240, 240, 240, 240, 241, 241, 242, 242, + 242, 242, 243, 243, 243, 243, 245, 244, 247, 246, + 248, 248, 249, 249, 250, 250, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 252, 253, 253, 253, + 253, 254, 254, 255, 255, 255, 256, 256, 256, 257, + 257, 257, 258, 258, 258, 260, 259, 261, 259, 259, + 259, 262, 262, 262, 263, 263, 263, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 265, 265, 265, 266, 268, 267, 269, 269, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 275, 275, 275, 275, 275, 276, - 276, 276, 276, 277, 277, 277, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 279, 279, 279, - 279, 280, 280, 280, 280, 281 + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 271, 271, 272, 272, 273, 273, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 279, 279, 279, 279, + 279, 280, 280, 280, 280, 281, 281, 281, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, 282, 283, + 283, 283, 283, 284, 284, 284, 284, 285 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -3322,43 +3376,43 @@ static const yytype_int8 yyr2[] = 2, 1, 1, 2, 2, 2, 2, 8, 11, 9, 11, 13, 15, 7, 9, 12, 9, 9, 13, 9, 7, 5, 0, 3, 1, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, - 5, 5, 1, 3, 1, 4, 4, 0, 4, 3, - 0, 4, 3, 1, 2, 4, 0, 4, 3, 2, - 4, 0, 6, 0, 9, 0, 6, 0, 7, 0, - 11, 0, 12, 0, 8, 0, 9, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, - 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 4, 5, 5, 1, 3, 1, 4, 4, 0, + 4, 3, 0, 4, 3, 1, 2, 4, 0, 4, + 3, 2, 4, 0, 6, 0, 9, 0, 6, 0, + 7, 0, 11, 0, 12, 0, 8, 0, 9, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 5, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 0, 6, 2, 2, 1, - 1, 1, 3, 1, 1, 1, 2, 4, 2, 3, - 3, 4, 2, 3, 1, 1, 1, 1, 1, 2, - 3, 2, 2, 2, 2, 2, 3, 4, 3, 0, - 6, 2, 3, 1, 3, 4, 1, 2, 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, 3, 4, 5, - 2, 4, 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, - 2, 3, 4, 7, 3, 1, 1, 2, 2, 2, - 2, 2, 2, 3, 4, 1, 1, 2, 2, 2, - 2, 2, 2, 3, 4, 5, 9, 9, 9, 1, - 1, 2, 1, 1, 1, 3, 4, 4, 4, 4, - 1, 1, 1, 1, 2, 1, 1, 1, 3, 4, - 2, 4, 4, 4, 1, 1, 1, 2, 3, 2, - 4, 4, 1, 1, 1, 2, 3, 2, 3, 1, - 4, 5, 5, 0, 6, 0, 9, 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, 1, 1, + 2, 2, 1, 1, 1, 1, 1, 2, 0, 6, + 2, 2, 1, 1, 1, 3, 1, 1, 1, 2, + 4, 2, 3, 3, 4, 2, 3, 1, 1, 1, + 1, 1, 2, 3, 2, 2, 2, 2, 2, 3, + 4, 3, 0, 6, 2, 3, 1, 3, 4, 1, + 2, 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, + 3, 4, 5, 2, 4, 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, 2, 3, 4, 7, 3, 1, 1, + 2, 2, 2, 2, 2, 2, 3, 4, 1, 1, + 2, 2, 2, 2, 2, 2, 3, 4, 5, 9, + 9, 9, 1, 1, 2, 1, 1, 1, 3, 4, + 4, 4, 4, 1, 1, 1, 1, 2, 1, 1, + 1, 3, 4, 2, 4, 4, 4, 1, 1, 1, + 2, 3, 2, 4, 4, 1, 1, 1, 2, 3, + 2, 3, 1, 4, 5, 5, 0, 6, 0, 9, + 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, + 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, @@ -3371,36 +3425,37 @@ static const yytype_int8 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, 2, 5, - 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, + 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, 2, 5, 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, 5, 4, 4, 3, 3, 3, 3, - 1, 4, 7, 7, 7, 7, 4, 4, 4, 4, + 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, 4, 2, 5, 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, 5, 4, 4, 3, 3, 3, 3, 1, + 3, 3, 3, 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 8, 11, 4, 4, 6, 4, 4, 6, 6, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 7, 7, 7, 7, 4, 2, 5, 4, 2, - 5, 4, 4, 2, 2, 2, 2, 2, 3, 3, + 1, 8, 11, 4, 4, 6, 4, 4, 6, 6, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 1, 4, 7, 7, 7, 7, 4, 2, 5, 4, + 2, 5, 4, 4, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, - 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, - 3, 1, 2, 1, 2, 2, 1, 1, 1, 1, + 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, 1, 2, + 4, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 0 + 1, 1, 1, 1, 1, 2, 2, 0 }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -3426,10 +3481,9 @@ static const yytype_int8 yyr2[] = } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -3477,8 +3531,8 @@ do { \ This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ @@ -3508,22 +3562,22 @@ yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) return res; } -# define YY_LOCATION_PRINT(File, Loc) \ +# define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +# endif /* !defined YY_LOCATION_PRINT */ -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, Location); \ + Kind, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -3534,7 +3588,8 @@ do { \ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { FILE *yyoutput = yyo; YYUSE (yyoutput); @@ -3542,11 +3597,11 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YY if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YYUSE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3556,14 +3611,15 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YY `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); - yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp); + yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp); YYFPRINTF (yyo, ")"); } @@ -3596,7 +3652,8 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, + int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; @@ -3608,9 +3665,9 @@ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[+yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , &(yylsp[(yyi + 1) - (yynrhs)]) ); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], + &(yylsp[(yyi + 1) - (yynrhs)])); YYFPRINTF (stderr, "\n"); } } @@ -3625,8 +3682,8 @@ do { \ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -3649,259 +3706,34 @@ int yydebug; #endif -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) -# else -/* Return the length of YYSTR. */ -static YYPTRDIFF_T -yystrlen (const char *yystr) -{ - YYPTRDIFF_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYPTRDIFF_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYPTRDIFF_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (yyres) - return yystpcpy (yyres, yystr) - yyres; - else - return yystrlen (yystr); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - yy_state_t *yyssp, int yytoken) -{ - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat: reported tokens (one for the "unexpected", - one per "expected"). */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Actual size of YYARG. */ - int yycount = 0; - /* Cumulated lengths of YYARG. */ - YYPTRDIFF_T yysize = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[+*yyssp]; - YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - yysize = yysize0; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYPTRDIFF_T yysize1 - = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - default: /* Avoid compiler warnings. */ - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - /* Don't count the "%s"s in the final size, but reserve room for - the terminator. */ - YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - ++yyp; - ++yyformat; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) { YYUSE (yyvaluep); YYUSE (yylocationp); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YYUSE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } + + /*----------. | yyparse. | `----------*/ @@ -3909,7 +3741,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio int yyparse (void) { -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; @@ -3928,55 +3760,47 @@ static YYLTYPE yyloc_default YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ - int yynerrs; + int yynerrs = 0; - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - 'yyls': related to locations. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; - /* The location stack. */ + /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls; - YYLTYPE *yylsp; - - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[3]; - - YYPTRDIFF_T yystacksize; + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp = yyls; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -3984,16 +3808,8 @@ YYLTYPE yylloc = yyloc_default; Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yylsp = yyls = yylsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; goto yysetstate; @@ -4017,6 +3833,7 @@ yysetstate: YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -4066,7 +3883,7 @@ yysetstate: YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -4106,18 +3923,30 @@ yybackup: /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval, &yylloc); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + yyerror_range[1] = yylloc; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -4189,65 +4018,65 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 3: -#line 454 "dtool/src/cppparser/cppBison.yxx" + case 3: /* grammar: START_CONST_EXPR const_expr */ +#line 459 "dtool/src/cppparser/cppBison.yxx" { current_expr = (yyvsp[0].u.expr); } -#line 4198 "built/tmp/cppBison.yxx.c" +#line 4027 "built/tmp/cppBison.yxx.c" break; - case 4: -#line 458 "dtool/src/cppparser/cppBison.yxx" + case 4: /* grammar: START_TYPE full_type */ +#line 463 "dtool/src/cppparser/cppBison.yxx" { current_type = (yyvsp[0].u.type); } -#line 4206 "built/tmp/cppBison.yxx.c" +#line 4035 "built/tmp/cppBison.yxx.c" break; - case 10: -#line 476 "dtool/src/cppparser/cppBison.yxx" + case 10: /* constructor_init: name '(' optional_const_expr_comma ')' */ +#line 481 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[-1].u.expr); } -#line 4214 "built/tmp/cppBison.yxx.c" +#line 4043 "built/tmp/cppBison.yxx.c" break; - case 11: -#line 480 "dtool/src/cppparser/cppBison.yxx" + case 11: /* constructor_init: name '(' optional_const_expr_comma ')' ELLIPSIS */ +#line 485 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[-2].u.expr); } -#line 4222 "built/tmp/cppBison.yxx.c" +#line 4051 "built/tmp/cppBison.yxx.c" break; - case 12: -#line 484 "dtool/src/cppparser/cppBison.yxx" + case 12: /* constructor_init: name '{' optional_const_expr_comma '}' */ +#line 489 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[-1].u.expr); } -#line 4230 "built/tmp/cppBison.yxx.c" +#line 4059 "built/tmp/cppBison.yxx.c" break; - case 13: -#line 496 "dtool/src/cppparser/cppBison.yxx" + case 13: /* $@1: %empty */ +#line 501 "dtool/src/cppparser/cppBison.yxx" { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } -#line 4239 "built/tmp/cppBison.yxx.c" +#line 4068 "built/tmp/cppBison.yxx.c" break; - case 14: -#line 501 "dtool/src/cppparser/cppBison.yxx" + case 14: /* extern_c: storage_class '{' $@1 cpp '}' */ +#line 506 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } -#line 4247 "built/tmp/cppBison.yxx.c" +#line 4076 "built/tmp/cppBison.yxx.c" break; - case 21: -#line 514 "dtool/src/cppparser/cppBison.yxx" + case 21: /* declaration: KW_BEGIN_PUBLISH */ +#line 519 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -4260,11 +4089,11 @@ yyreduce: publish_nest_level++; current_scope->set_current_vis(V_published); } -#line 4264 "built/tmp/cppBison.yxx.c" +#line 4093 "built/tmp/cppBison.yxx.c" break; - case 22: -#line 527 "dtool/src/cppparser/cppBison.yxx" + case 22: /* declaration: KW_END_PUBLISH */ +#line 532 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[0])); @@ -4273,19 +4102,19 @@ yyreduce: } publish_nest_level = 0; } -#line 4277 "built/tmp/cppBison.yxx.c" +#line 4106 "built/tmp/cppBison.yxx.c" break; - case 23: -#line 536 "dtool/src/cppparser/cppBison.yxx" + case 23: /* declaration: KW_PUBLISHED ':' */ +#line 541 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_published); } -#line 4285 "built/tmp/cppBison.yxx.c" +#line 4114 "built/tmp/cppBison.yxx.c" break; - case 24: -#line 540 "dtool/src/cppparser/cppBison.yxx" + case 24: /* declaration: KW_PUBLIC ':' */ +#line 545 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -4293,27 +4122,27 @@ yyreduce: current_scope->set_current_vis(V_public); } } -#line 4297 "built/tmp/cppBison.yxx.c" +#line 4126 "built/tmp/cppBison.yxx.c" break; - case 25: -#line 548 "dtool/src/cppparser/cppBison.yxx" + case 25: /* declaration: KW_PROTECTED ':' */ +#line 553 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_protected); } -#line 4305 "built/tmp/cppBison.yxx.c" +#line 4134 "built/tmp/cppBison.yxx.c" break; - case 26: -#line 552 "dtool/src/cppparser/cppBison.yxx" + case 26: /* declaration: KW_PRIVATE ':' */ +#line 557 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_private); } -#line 4313 "built/tmp/cppBison.yxx.c" +#line 4142 "built/tmp/cppBison.yxx.c" break; - case 27: -#line 556 "dtool/src/cppparser/cppBison.yxx" + case 27: /* declaration: KW_MAKE_PROPERTY '(' name ',' IDENTIFIER maybe_comma_identifier ')' ';' */ +#line 561 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-3].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4334,11 +4163,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-7])); } } -#line 4338 "built/tmp/cppBison.yxx.c" +#line 4167 "built/tmp/cppBison.yxx.c" break; - case 28: -#line 577 "dtool/src/cppparser/cppBison.yxx" + case 28: /* declaration: KW_MAKE_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 582 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4365,11 +4194,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); } } -#line 4369 "built/tmp/cppBison.yxx.c" +#line 4198 "built/tmp/cppBison.yxx.c" break; - case 29: -#line 604 "dtool/src/cppparser/cppBison.yxx" + case 29: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 609 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4390,11 +4219,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4394 "built/tmp/cppBison.yxx.c" +#line 4223 "built/tmp/cppBison.yxx.c" break; - case 30: -#line 625 "dtool/src/cppparser/cppBison.yxx" + case 30: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 630 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4423,11 +4252,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); } } -#line 4427 "built/tmp/cppBison.yxx.c" +#line 4256 "built/tmp/cppBison.yxx.c" break; - case 31: -#line 654 "dtool/src/cppparser/cppBison.yxx" + case 31: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 659 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[-8].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4463,11 +4292,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 4467 "built/tmp/cppBison.yxx.c" +#line 4296 "built/tmp/cppBison.yxx.c" break; - case 32: -#line 690 "dtool/src/cppparser/cppBison.yxx" + case 32: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 695 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[-10].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4510,11 +4339,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-14])); } } -#line 4514 "built/tmp/cppBison.yxx.c" +#line 4343 "built/tmp/cppBison.yxx.c" break; - case 33: -#line 733 "dtool/src/cppparser/cppBison.yxx" + case 33: /* declaration: KW_MAKE_MAP_PROPERTY '(' name ',' IDENTIFIER ')' ';' */ +#line 738 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4526,11 +4355,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-6])); } } -#line 4530 "built/tmp/cppBison.yxx.c" +#line 4359 "built/tmp/cppBison.yxx.c" break; - case 34: -#line 745 "dtool/src/cppparser/cppBison.yxx" + case 34: /* declaration: KW_MAKE_MAP_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 750 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4551,11 +4380,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4555 "built/tmp/cppBison.yxx.c" +#line 4384 "built/tmp/cppBison.yxx.c" break; - case 35: -#line 766 "dtool/src/cppparser/cppBison.yxx" + case 35: /* declaration: KW_MAKE_MAP_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER maybe_comma_identifier ')' ';' */ +#line 771 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-5].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4591,11 +4420,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-11])); } } -#line 4595 "built/tmp/cppBison.yxx.c" +#line 4424 "built/tmp/cppBison.yxx.c" break; - case 36: -#line 802 "dtool/src/cppparser/cppBison.yxx" + case 36: /* declaration: KW_MAKE_MAP_KEYS_SEQ '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 807 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4629,11 +4458,11 @@ yyreduce: } } } -#line 4633 "built/tmp/cppBison.yxx.c" +#line 4462 "built/tmp/cppBison.yxx.c" break; - case 37: -#line 836 "dtool/src/cppparser/cppBison.yxx" + case 37: /* declaration: KW_MAKE_PROPERTY2 '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 841 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4655,11 +4484,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4659 "built/tmp/cppBison.yxx.c" +#line 4488 "built/tmp/cppBison.yxx.c" break; - case 38: -#line 858 "dtool/src/cppparser/cppBison.yxx" + case 38: /* declaration: KW_MAKE_PROPERTY2 '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 863 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4695,11 +4524,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 4699 "built/tmp/cppBison.yxx.c" +#line 4528 "built/tmp/cppBison.yxx.c" break; - case 39: -#line 894 "dtool/src/cppparser/cppBison.yxx" + case 39: /* declaration: KW_MAKE_SEQ '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ +#line 899 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -4721,11 +4550,11 @@ yyreduce: current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } -#line 4725 "built/tmp/cppBison.yxx.c" +#line 4554 "built/tmp/cppBison.yxx.c" break; - case 40: -#line 916 "dtool/src/cppparser/cppBison.yxx" + case 40: /* declaration: KW_STATIC_ASSERT '(' const_expr ',' string_literal ')' ';' */ +#line 921 "dtool/src/cppparser/cppBison.yxx" { CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { @@ -4736,11 +4565,11 @@ yyreduce: yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } -#line 4740 "built/tmp/cppBison.yxx.c" +#line 4569 "built/tmp/cppBison.yxx.c" break; - case 41: -#line 927 "dtool/src/cppparser/cppBison.yxx" + case 41: /* declaration: KW_STATIC_ASSERT '(' const_expr ')' ';' */ +#line 932 "dtool/src/cppparser/cppBison.yxx" { // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); @@ -4750,55 +4579,55 @@ yyreduce: yywarning("static_assert failed", (yylsp[-2])); } } -#line 4754 "built/tmp/cppBison.yxx.c" +#line 4583 "built/tmp/cppBison.yxx.c" break; - case 42: -#line 940 "dtool/src/cppparser/cppBison.yxx" + case 42: /* $@2: %empty */ +#line 945 "dtool/src/cppparser/cppBison.yxx" { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } -#line 4764 "built/tmp/cppBison.yxx.c" +#line 4593 "built/tmp/cppBison.yxx.c" break; - case 43: -#line 946 "dtool/src/cppparser/cppBison.yxx" + case 43: /* friend_declaration: KW_FRIEND $@2 declaration */ +#line 951 "dtool/src/cppparser/cppBison.yxx" { delete current_scope; pop_scope(); } -#line 4773 "built/tmp/cppBison.yxx.c" +#line 4602 "built/tmp/cppBison.yxx.c" break; - case 44: -#line 955 "dtool/src/cppparser/cppBison.yxx" + case 44: /* storage_class: empty */ +#line 960 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } -#line 4781 "built/tmp/cppBison.yxx.c" +#line 4610 "built/tmp/cppBison.yxx.c" break; - case 45: -#line 959 "dtool/src/cppparser/cppBison.yxx" + case 45: /* storage_class: KW_CONST storage_class */ +#line 964 "dtool/src/cppparser/cppBison.yxx" { // This isn't really a storage class, but it helps with parsing. (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_const; } -#line 4790 "built/tmp/cppBison.yxx.c" +#line 4619 "built/tmp/cppBison.yxx.c" break; - case 46: -#line 964 "dtool/src/cppparser/cppBison.yxx" + case 46: /* storage_class: KW_EXTERN storage_class */ +#line 969 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } -#line 4798 "built/tmp/cppBison.yxx.c" +#line 4627 "built/tmp/cppBison.yxx.c" break; - case 47: -#line 968 "dtool/src/cppparser/cppBison.yxx" + case 47: /* storage_class: KW_EXTERN SIMPLE_STRING storage_class */ +#line 973 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[-1].str) == "C") { @@ -4809,124 +4638,140 @@ yyreduce: yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } -#line 4813 "built/tmp/cppBison.yxx.c" +#line 4642 "built/tmp/cppBison.yxx.c" break; - case 48: -#line 979 "dtool/src/cppparser/cppBison.yxx" + case 48: /* storage_class: KW_STATIC storage_class */ +#line 984 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } -#line 4821 "built/tmp/cppBison.yxx.c" +#line 4650 "built/tmp/cppBison.yxx.c" break; - case 49: -#line 983 "dtool/src/cppparser/cppBison.yxx" + case 49: /* storage_class: KW_INLINE storage_class */ +#line 988 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } -#line 4829 "built/tmp/cppBison.yxx.c" +#line 4658 "built/tmp/cppBison.yxx.c" break; - case 50: -#line 987 "dtool/src/cppparser/cppBison.yxx" + case 50: /* storage_class: KW_VIRTUAL storage_class */ +#line 992 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } -#line 4837 "built/tmp/cppBison.yxx.c" +#line 4666 "built/tmp/cppBison.yxx.c" break; - case 51: -#line 991 "dtool/src/cppparser/cppBison.yxx" + case 51: /* storage_class: KW_EXPLICIT storage_class */ +#line 996 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } -#line 4845 "built/tmp/cppBison.yxx.c" +#line 4674 "built/tmp/cppBison.yxx.c" break; - case 52: -#line 995 "dtool/src/cppparser/cppBison.yxx" + case 52: /* storage_class: KW_REGISTER storage_class */ +#line 1000 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } -#line 4853 "built/tmp/cppBison.yxx.c" +#line 4682 "built/tmp/cppBison.yxx.c" break; - case 53: -#line 999 "dtool/src/cppparser/cppBison.yxx" + case 53: /* storage_class: KW_VOLATILE storage_class */ +#line 1004 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } -#line 4861 "built/tmp/cppBison.yxx.c" +#line 4690 "built/tmp/cppBison.yxx.c" break; - case 54: -#line 1003 "dtool/src/cppparser/cppBison.yxx" + case 54: /* storage_class: KW_MUTABLE storage_class */ +#line 1008 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } -#line 4869 "built/tmp/cppBison.yxx.c" +#line 4698 "built/tmp/cppBison.yxx.c" break; - case 55: -#line 1007 "dtool/src/cppparser/cppBison.yxx" + case 55: /* storage_class: KW_CONSTEVAL storage_class */ +#line 1012 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_consteval; +} +#line 4706 "built/tmp/cppBison.yxx.c" + break; + + case 56: /* storage_class: KW_CONSTEXPR storage_class */ +#line 1016 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; } -#line 4877 "built/tmp/cppBison.yxx.c" +#line 4714 "built/tmp/cppBison.yxx.c" break; - case 56: -#line 1011 "dtool/src/cppparser/cppBison.yxx" + case 57: /* storage_class: KW_CONSTINIT storage_class */ +#line 1020 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constinit; +} +#line 4722 "built/tmp/cppBison.yxx.c" + break; + + case 58: /* storage_class: KW_BLOCKING storage_class */ +#line 1024 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; } -#line 4885 "built/tmp/cppBison.yxx.c" +#line 4730 "built/tmp/cppBison.yxx.c" break; - case 57: -#line 1015 "dtool/src/cppparser/cppBison.yxx" + case 59: /* storage_class: KW_EXTENSION storage_class */ +#line 1028 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; } -#line 4893 "built/tmp/cppBison.yxx.c" +#line 4738 "built/tmp/cppBison.yxx.c" break; - case 58: -#line 1019 "dtool/src/cppparser/cppBison.yxx" + case 60: /* storage_class: KW_THREAD_LOCAL storage_class */ +#line 1032 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; } -#line 4901 "built/tmp/cppBison.yxx.c" +#line 4746 "built/tmp/cppBison.yxx.c" break; - case 59: -#line 1023 "dtool/src/cppparser/cppBison.yxx" + case 61: /* storage_class: ATTR_LEFT attribute_specifiers ATTR_RIGHT storage_class */ +#line 1036 "dtool/src/cppparser/cppBison.yxx" { // Ignore attribute specifiers for now. (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4910 "built/tmp/cppBison.yxx.c" +#line 4755 "built/tmp/cppBison.yxx.c" break; - case 60: -#line 1028 "dtool/src/cppparser/cppBison.yxx" + case 62: /* storage_class: KW_ALIGNAS '(' const_expr ')' storage_class */ +#line 1041 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4918 "built/tmp/cppBison.yxx.c" +#line 4763 "built/tmp/cppBison.yxx.c" break; - case 61: -#line 1032 "dtool/src/cppparser/cppBison.yxx" + case 63: /* storage_class: KW_ALIGNAS '(' type_decl ')' storage_class */ +#line 1045 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4926 "built/tmp/cppBison.yxx.c" +#line 4771 "built/tmp/cppBison.yxx.c" break; - case 67: -#line 1050 "dtool/src/cppparser/cppBison.yxx" + case 69: /* $@3: %empty */ +#line 1063 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // type_like_declaration. @@ -4937,19 +4782,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4941 "built/tmp/cppBison.yxx.c" +#line 4786 "built/tmp/cppBison.yxx.c" break; - case 68: -#line 1061 "dtool/src/cppparser/cppBison.yxx" + case 70: /* type_like_declaration: storage_class var_type_decl $@3 multiple_instance_identifiers */ +#line 1074 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } -#line 4949 "built/tmp/cppBison.yxx.c" +#line 4794 "built/tmp/cppBison.yxx.c" break; - case 69: -#line 1066 "dtool/src/cppparser/cppBison.yxx" + case 71: /* type_like_declaration: storage_class type_decl ';' */ +#line 1079 "dtool/src/cppparser/cppBison.yxx" { // 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 @@ -4958,11 +4803,11 @@ yyreduce: current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } -#line 4962 "built/tmp/cppBison.yxx.c" +#line 4807 "built/tmp/cppBison.yxx.c" break; - case 70: -#line 1075 "dtool/src/cppparser/cppBison.yxx" + case 72: /* $@4: %empty */ +#line 1088 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[0].u.instance) != nullptr) { // Push the scope so that the initializers can make use of things defined @@ -4971,11 +4816,11 @@ yyreduce: (yyvsp[0].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-1].u.integer)); } } -#line 4975 "built/tmp/cppBison.yxx.c" +#line 4820 "built/tmp/cppBison.yxx.c" break; - case 71: -#line 1084 "dtool/src/cppparser/cppBison.yxx" + case 73: /* type_like_declaration: storage_class constructor_prototype $@4 maybe_initialize_or_constructor_body */ +#line 1097 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-2].u.instance) != nullptr) { pop_scope(); @@ -4983,11 +4828,11 @@ yyreduce: (yyvsp[-2].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 4987 "built/tmp/cppBison.yxx.c" +#line 4832 "built/tmp/cppBison.yxx.c" break; - case 72: -#line 1092 "dtool/src/cppparser/cppBison.yxx" + case 74: /* type_like_declaration: storage_class function_prototype maybe_initialize_or_function_body */ +#line 1105 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-1].u.instance) != nullptr) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); @@ -4995,11 +4840,11 @@ yyreduce: (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 4999 "built/tmp/cppBison.yxx.c" +#line 4844 "built/tmp/cppBison.yxx.c" break; - case 74: -#line 1108 "dtool/src/cppparser/cppBison.yxx" + case 76: /* multiple_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize_or_function_body */ +#line 1121 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); @@ -5010,11 +4855,11 @@ yyreduce: inst->set_initializer((yyvsp[0].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } -#line 5014 "built/tmp/cppBison.yxx.c" +#line 4859 "built/tmp/cppBison.yxx.c" break; - case 75: -#line 1119 "dtool/src/cppparser/cppBison.yxx" + case 77: /* multiple_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize ',' multiple_instance_identifiers */ +#line 1132 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); @@ -5025,11 +4870,11 @@ yyreduce: inst->set_initializer((yyvsp[-2].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } -#line 5029 "built/tmp/cppBison.yxx.c" +#line 4874 "built/tmp/cppBison.yxx.c" break; - case 76: -#line 1134 "dtool/src/cppparser/cppBison.yxx" + case 78: /* $@5: %empty */ +#line 1147 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -5040,19 +4885,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 5044 "built/tmp/cppBison.yxx.c" +#line 4889 "built/tmp/cppBison.yxx.c" break; - case 77: -#line 1145 "dtool/src/cppparser/cppBison.yxx" + case 79: /* typedef_declaration: storage_class var_type_decl $@5 typedef_instance_identifiers */ +#line 1158 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } -#line 5052 "built/tmp/cppBison.yxx.c" +#line 4897 "built/tmp/cppBison.yxx.c" break; - case 78: -#line 1149 "dtool/src/cppparser/cppBison.yxx" + case 80: /* typedef_declaration: storage_class function_prototype maybe_initialize_or_function_body */ +#line 1162 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-1].u.instance) != nullptr) { CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); @@ -5064,11 +4909,11 @@ yyreduce: } } } -#line 5068 "built/tmp/cppBison.yxx.c" +#line 4913 "built/tmp/cppBison.yxx.c" break; - case 79: -#line 1164 "dtool/src/cppparser/cppBison.yxx" + case 81: /* typedef_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize_or_function_body */ +#line 1177 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); @@ -5077,11 +4922,11 @@ yyreduce: 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 5081 "built/tmp/cppBison.yxx.c" +#line 4926 "built/tmp/cppBison.yxx.c" break; - case 80: -#line 1173 "dtool/src/cppparser/cppBison.yxx" + case 82: /* typedef_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize ',' typedef_instance_identifiers */ +#line 1186 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); @@ -5090,11 +4935,11 @@ yyreduce: 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 5094 "built/tmp/cppBison.yxx.c" +#line 4939 "built/tmp/cppBison.yxx.c" break; - case 81: -#line 1187 "dtool/src/cppparser/cppBison.yxx" + case 83: /* $@6: %empty */ +#line 1200 "dtool/src/cppparser/cppBison.yxx" { // Create a scope for this function. CPPScope *scope = new CPPScope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope), @@ -5107,11 +4952,11 @@ yyreduce: push_scope(scope); } -#line 5111 "built/tmp/cppBison.yxx.c" +#line 4956 "built/tmp/cppBison.yxx.c" break; - case 82: -#line 1200 "dtool/src/cppparser/cppBison.yxx" + case 84: /* constructor_prototype: IDENTIFIER '(' $@6 function_parameter_list ')' function_post */ +#line 1213 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[-5].u.identifier)->get_scope(current_scope, global_scope); CPPType *type; @@ -5135,11 +4980,11 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 5139 "built/tmp/cppBison.yxx.c" +#line 4984 "built/tmp/cppBison.yxx.c" break; - case 83: -#line 1226 "dtool/src/cppparser/cppBison.yxx" + case 85: /* $@7: %empty */ +#line 1239 "dtool/src/cppparser/cppBison.yxx" { // Create a scope for this function. CPPScope *scope = new CPPScope((yyvsp[-2].u.identifier)->get_scope(current_scope, global_scope), @@ -5152,11 +4997,11 @@ yyreduce: push_scope(scope); } -#line 5156 "built/tmp/cppBison.yxx.c" +#line 5001 "built/tmp/cppBison.yxx.c" break; - case 84: -#line 1239 "dtool/src/cppparser/cppBison.yxx" + case 86: /* constructor_prototype: TYPENAME_IDENTIFIER '(' IDENTIFIER ')' '(' $@7 function_parameter_list ')' function_post */ +#line 1252 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[-8].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -5170,11 +5015,11 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-8]).file); } -#line 5174 "built/tmp/cppBison.yxx.c" +#line 5019 "built/tmp/cppBison.yxx.c" break; - case 85: -#line 1253 "dtool/src/cppparser/cppBison.yxx" + case 87: /* $@8: %empty */ +#line 1266 "dtool/src/cppparser/cppBison.yxx" { // Create a scope for this function. CPPScope *scope = new CPPScope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope), @@ -5187,11 +5032,11 @@ yyreduce: push_scope(scope); } -#line 5191 "built/tmp/cppBison.yxx.c" +#line 5036 "built/tmp/cppBison.yxx.c" break; - case 86: -#line 1266 "dtool/src/cppparser/cppBison.yxx" + case 88: /* constructor_prototype: TYPENAME_IDENTIFIER '(' $@8 function_parameter_list ')' function_post */ +#line 1279 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -5209,19 +5054,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 5213 "built/tmp/cppBison.yxx.c" +#line 5058 "built/tmp/cppBison.yxx.c" break; - case 87: -#line 1289 "dtool/src/cppparser/cppBison.yxx" + case 89: /* $@9: %empty */ +#line 1302 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 5221 "built/tmp/cppBison.yxx.c" +#line 5066 "built/tmp/cppBison.yxx.c" break; - case 88: -#line 1293 "dtool/src/cppparser/cppBison.yxx" + case 90: /* function_prototype: '~' name '(' $@9 function_parameter_list ')' function_post */ +#line 1306 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); if ((yyvsp[-5].u.identifier)->is_scoped()) { @@ -5240,19 +5085,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } -#line 5244 "built/tmp/cppBison.yxx.c" +#line 5089 "built/tmp/cppBison.yxx.c" break; - case 89: -#line 1319 "dtool/src/cppparser/cppBison.yxx" + case 91: /* $@10: %empty */ +#line 1332 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5252 "built/tmp/cppBison.yxx.c" +#line 5097 "built/tmp/cppBison.yxx.c" break; - case 90: -#line 1323 "dtool/src/cppparser/cppBison.yxx" + case 92: /* function_prototype: TYPENAME_IDENTIFIER '(' '*' instance_identifier ')' '(' $@10 function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 1336 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -5266,19 +5111,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 5270 "built/tmp/cppBison.yxx.c" +#line 5115 "built/tmp/cppBison.yxx.c" break; - case 91: -#line 1337 "dtool/src/cppparser/cppBison.yxx" + case 93: /* $@11: %empty */ +#line 1350 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5278 "built/tmp/cppBison.yxx.c" +#line 5123 "built/tmp/cppBison.yxx.c" break; - case 92: -#line 1341 "dtool/src/cppparser/cppBison.yxx" + case 94: /* function_prototype: TYPENAME_IDENTIFIER '(' SCOPING '*' instance_identifier ')' '(' $@11 function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 1354 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -5292,21 +5137,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 5296 "built/tmp/cppBison.yxx.c" +#line 5141 "built/tmp/cppBison.yxx.c" break; - case 93: -#line 1357 "dtool/src/cppparser/cppBison.yxx" + case 95: /* $@12: %empty */ +#line 1370 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-3].u.identifier) != nullptr) { push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 5306 "built/tmp/cppBison.yxx.c" +#line 5151 "built/tmp/cppBison.yxx.c" break; - case 94: -#line 1363 "dtool/src/cppparser/cppBison.yxx" + case 96: /* function_prototype: KW_OPERATOR type not_paren_formal_parameter_identifier '(' $@12 function_parameter_list ')' function_post */ +#line 1376 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-7].u.identifier) != nullptr) { pop_scope(); @@ -5331,21 +5176,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 5335 "built/tmp/cppBison.yxx.c" +#line 5180 "built/tmp/cppBison.yxx.c" break; - case 95: -#line 1388 "dtool/src/cppparser/cppBison.yxx" + case 97: /* $@13: %empty */ +#line 1401 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-4].u.identifier) != nullptr) { push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 5345 "built/tmp/cppBison.yxx.c" +#line 5190 "built/tmp/cppBison.yxx.c" break; - case 96: -#line 1394 "dtool/src/cppparser/cppBison.yxx" + case 98: /* function_prototype: KW_OPERATOR KW_CONST type not_paren_formal_parameter_identifier '(' $@13 function_parameter_list ')' function_post */ +#line 1407 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-8].u.identifier) != nullptr) { pop_scope(); @@ -5361,11 +5206,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 5365 "built/tmp/cppBison.yxx.c" +#line 5210 "built/tmp/cppBison.yxx.c" break; - case 97: -#line 1414 "dtool/src/cppparser/cppBison.yxx" + case 99: /* function_prototype: IDENTIFIER */ +#line 1427 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *decl = (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -5375,574 +5220,582 @@ yyreduce: (yyval.u.instance) = nullptr; } } -#line 5379 "built/tmp/cppBison.yxx.c" +#line 5224 "built/tmp/cppBison.yxx.c" break; - case 98: -#line 1427 "dtool/src/cppparser/cppBison.yxx" + case 100: /* function_post: empty */ +#line 1440 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } -#line 5387 "built/tmp/cppBison.yxx.c" +#line 5232 "built/tmp/cppBison.yxx.c" break; - case 99: -#line 1431 "dtool/src/cppparser/cppBison.yxx" + case 101: /* function_post: function_post KW_CONST */ +#line 1444 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_const_method; } -#line 5395 "built/tmp/cppBison.yxx.c" +#line 5240 "built/tmp/cppBison.yxx.c" break; - case 100: -#line 1435 "dtool/src/cppparser/cppBison.yxx" + case 102: /* function_post: function_post KW_VOLATILE */ +#line 1448 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_volatile_method; } -#line 5403 "built/tmp/cppBison.yxx.c" +#line 5248 "built/tmp/cppBison.yxx.c" break; - case 101: -#line 1439 "dtool/src/cppparser/cppBison.yxx" + case 103: /* function_post: function_post KW_NOEXCEPT */ +#line 1452 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_noexcept; } -#line 5411 "built/tmp/cppBison.yxx.c" +#line 5256 "built/tmp/cppBison.yxx.c" break; - case 102: -#line 1452 "dtool/src/cppparser/cppBison.yxx" + case 104: /* function_post: function_post KW_FINAL */ +#line 1465 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_final; } -#line 5419 "built/tmp/cppBison.yxx.c" +#line 5264 "built/tmp/cppBison.yxx.c" break; - case 103: -#line 1456 "dtool/src/cppparser/cppBison.yxx" + case 105: /* function_post: function_post KW_OVERRIDE */ +#line 1469 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_override; } -#line 5427 "built/tmp/cppBison.yxx.c" +#line 5272 "built/tmp/cppBison.yxx.c" break; - case 104: -#line 1460 "dtool/src/cppparser/cppBison.yxx" + case 106: /* function_post: function_post '&' */ +#line 1473 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_lvalue_method; } -#line 5435 "built/tmp/cppBison.yxx.c" +#line 5280 "built/tmp/cppBison.yxx.c" break; - case 105: -#line 1464 "dtool/src/cppparser/cppBison.yxx" + case 107: /* function_post: function_post ANDAND */ +#line 1477 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_rvalue_method; } -#line 5443 "built/tmp/cppBison.yxx.c" +#line 5288 "built/tmp/cppBison.yxx.c" break; - case 106: -#line 1468 "dtool/src/cppparser/cppBison.yxx" + case 108: /* function_post: function_post KW_MUTABLE */ +#line 1481 "dtool/src/cppparser/cppBison.yxx" { // Used for lambdas, currently ignored. (yyval.u.integer) = (yyvsp[-1].u.integer); } -#line 5452 "built/tmp/cppBison.yxx.c" +#line 5297 "built/tmp/cppBison.yxx.c" break; - case 107: -#line 1473 "dtool/src/cppparser/cppBison.yxx" + case 109: /* function_post: function_post KW_CONSTEXPR */ +#line 1486 "dtool/src/cppparser/cppBison.yxx" { // Used for lambdas in C++17, currently ignored. (yyval.u.integer) = (yyvsp[-1].u.integer); } -#line 5461 "built/tmp/cppBison.yxx.c" +#line 5306 "built/tmp/cppBison.yxx.c" break; - case 108: -#line 1478 "dtool/src/cppparser/cppBison.yxx" + case 110: /* function_post: function_post KW_THROW '(' ')' */ +#line 1491 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-3].u.integer); } -#line 5469 "built/tmp/cppBison.yxx.c" +#line 5314 "built/tmp/cppBison.yxx.c" break; - case 109: -#line 1482 "dtool/src/cppparser/cppBison.yxx" + case 111: /* function_post: function_post KW_THROW '(' name ')' */ +#line 1495 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-4].u.integer); } -#line 5477 "built/tmp/cppBison.yxx.c" +#line 5322 "built/tmp/cppBison.yxx.c" break; - case 110: -#line 1486 "dtool/src/cppparser/cppBison.yxx" + case 112: /* function_post: function_post KW_THROW '(' name ELLIPSIS ')' */ +#line 1499 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-5].u.integer); } -#line 5485 "built/tmp/cppBison.yxx.c" +#line 5330 "built/tmp/cppBison.yxx.c" break; - case 111: -#line 1490 "dtool/src/cppparser/cppBison.yxx" + case 113: /* function_post: function_post ATTR_LEFT attribute_specifiers ATTR_RIGHT */ +#line 1503 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-3].u.integer); } -#line 5493 "built/tmp/cppBison.yxx.c" +#line 5338 "built/tmp/cppBison.yxx.c" break; - case 112: -#line 1497 "dtool/src/cppparser/cppBison.yxx" + case 114: /* function_operator: '!' */ +#line 1510 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!"; } -#line 5501 "built/tmp/cppBison.yxx.c" +#line 5346 "built/tmp/cppBison.yxx.c" break; - case 113: -#line 1501 "dtool/src/cppparser/cppBison.yxx" + case 115: /* function_operator: '~' */ +#line 1514 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "~"; } -#line 5509 "built/tmp/cppBison.yxx.c" +#line 5354 "built/tmp/cppBison.yxx.c" break; - case 114: -#line 1505 "dtool/src/cppparser/cppBison.yxx" + case 116: /* function_operator: '*' */ +#line 1518 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*"; } -#line 5517 "built/tmp/cppBison.yxx.c" +#line 5362 "built/tmp/cppBison.yxx.c" break; - case 115: -#line 1509 "dtool/src/cppparser/cppBison.yxx" + case 117: /* function_operator: '/' */ +#line 1522 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/"; } -#line 5525 "built/tmp/cppBison.yxx.c" +#line 5370 "built/tmp/cppBison.yxx.c" break; - case 116: -#line 1513 "dtool/src/cppparser/cppBison.yxx" + case 118: /* function_operator: '%' */ +#line 1526 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%"; } -#line 5533 "built/tmp/cppBison.yxx.c" +#line 5378 "built/tmp/cppBison.yxx.c" break; - case 117: -#line 1517 "dtool/src/cppparser/cppBison.yxx" + case 119: /* function_operator: '+' */ +#line 1530 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+"; } -#line 5541 "built/tmp/cppBison.yxx.c" +#line 5386 "built/tmp/cppBison.yxx.c" break; - case 118: -#line 1521 "dtool/src/cppparser/cppBison.yxx" + case 120: /* function_operator: '-' */ +#line 1534 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-"; } -#line 5549 "built/tmp/cppBison.yxx.c" +#line 5394 "built/tmp/cppBison.yxx.c" break; - case 119: -#line 1525 "dtool/src/cppparser/cppBison.yxx" + case 121: /* function_operator: '|' */ +#line 1538 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|"; } -#line 5557 "built/tmp/cppBison.yxx.c" +#line 5402 "built/tmp/cppBison.yxx.c" break; - case 120: -#line 1529 "dtool/src/cppparser/cppBison.yxx" + case 122: /* function_operator: '&' */ +#line 1542 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&"; } -#line 5565 "built/tmp/cppBison.yxx.c" +#line 5410 "built/tmp/cppBison.yxx.c" break; - case 121: -#line 1533 "dtool/src/cppparser/cppBison.yxx" + case 123: /* function_operator: '^' */ +#line 1546 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^"; } -#line 5573 "built/tmp/cppBison.yxx.c" +#line 5418 "built/tmp/cppBison.yxx.c" break; - case 122: -#line 1537 "dtool/src/cppparser/cppBison.yxx" + case 124: /* function_operator: OROR */ +#line 1550 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "||"; } -#line 5581 "built/tmp/cppBison.yxx.c" +#line 5426 "built/tmp/cppBison.yxx.c" break; - case 123: -#line 1541 "dtool/src/cppparser/cppBison.yxx" + case 125: /* function_operator: ANDAND */ +#line 1554 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&&"; } -#line 5589 "built/tmp/cppBison.yxx.c" +#line 5434 "built/tmp/cppBison.yxx.c" break; - case 124: -#line 1545 "dtool/src/cppparser/cppBison.yxx" + case 126: /* function_operator: EQCOMPARE */ +#line 1558 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "=="; } -#line 5597 "built/tmp/cppBison.yxx.c" +#line 5442 "built/tmp/cppBison.yxx.c" break; - case 125: -#line 1549 "dtool/src/cppparser/cppBison.yxx" + case 127: /* function_operator: NECOMPARE */ +#line 1562 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!="; } -#line 5605 "built/tmp/cppBison.yxx.c" +#line 5450 "built/tmp/cppBison.yxx.c" break; - case 126: -#line 1553 "dtool/src/cppparser/cppBison.yxx" + case 128: /* function_operator: LECOMPARE */ +#line 1566 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<="; } -#line 5613 "built/tmp/cppBison.yxx.c" +#line 5458 "built/tmp/cppBison.yxx.c" break; - case 127: -#line 1557 "dtool/src/cppparser/cppBison.yxx" + case 129: /* function_operator: GECOMPARE */ +#line 1570 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">="; } -#line 5621 "built/tmp/cppBison.yxx.c" +#line 5466 "built/tmp/cppBison.yxx.c" break; - case 128: -#line 1561 "dtool/src/cppparser/cppBison.yxx" + case 130: /* function_operator: '<' */ +#line 1574 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<"; } -#line 5629 "built/tmp/cppBison.yxx.c" +#line 5474 "built/tmp/cppBison.yxx.c" break; - case 129: -#line 1565 "dtool/src/cppparser/cppBison.yxx" + case 131: /* function_operator: '>' */ +#line 1578 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">"; } -#line 5637 "built/tmp/cppBison.yxx.c" +#line 5482 "built/tmp/cppBison.yxx.c" break; - case 130: -#line 1569 "dtool/src/cppparser/cppBison.yxx" + case 132: /* function_operator: SPACESHIP */ +#line 1582 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "<=>"; +} +#line 5490 "built/tmp/cppBison.yxx.c" + break; + + case 133: /* function_operator: LSHIFT */ +#line 1586 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<"; } -#line 5645 "built/tmp/cppBison.yxx.c" +#line 5498 "built/tmp/cppBison.yxx.c" break; - case 131: -#line 1573 "dtool/src/cppparser/cppBison.yxx" + case 134: /* function_operator: RSHIFT */ +#line 1590 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>"; } -#line 5653 "built/tmp/cppBison.yxx.c" +#line 5506 "built/tmp/cppBison.yxx.c" break; - case 132: -#line 1577 "dtool/src/cppparser/cppBison.yxx" + case 135: /* function_operator: '=' */ +#line 1594 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "="; } -#line 5661 "built/tmp/cppBison.yxx.c" +#line 5514 "built/tmp/cppBison.yxx.c" break; - case 133: -#line 1581 "dtool/src/cppparser/cppBison.yxx" + case 136: /* function_operator: ',' */ +#line 1598 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ","; } -#line 5669 "built/tmp/cppBison.yxx.c" +#line 5522 "built/tmp/cppBison.yxx.c" break; - case 134: -#line 1585 "dtool/src/cppparser/cppBison.yxx" + case 137: /* function_operator: PLUSPLUS */ +#line 1602 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "++"; } -#line 5677 "built/tmp/cppBison.yxx.c" +#line 5530 "built/tmp/cppBison.yxx.c" break; - case 135: -#line 1589 "dtool/src/cppparser/cppBison.yxx" + case 138: /* function_operator: MINUSMINUS */ +#line 1606 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "--"; } -#line 5685 "built/tmp/cppBison.yxx.c" +#line 5538 "built/tmp/cppBison.yxx.c" break; - case 136: -#line 1593 "dtool/src/cppparser/cppBison.yxx" + case 139: /* function_operator: TIMESEQUAL */ +#line 1610 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*="; } -#line 5693 "built/tmp/cppBison.yxx.c" +#line 5546 "built/tmp/cppBison.yxx.c" break; - case 137: -#line 1597 "dtool/src/cppparser/cppBison.yxx" + case 140: /* function_operator: DIVIDEEQUAL */ +#line 1614 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/="; } -#line 5701 "built/tmp/cppBison.yxx.c" +#line 5554 "built/tmp/cppBison.yxx.c" break; - case 138: -#line 1601 "dtool/src/cppparser/cppBison.yxx" + case 141: /* function_operator: MODEQUAL */ +#line 1618 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%="; } -#line 5709 "built/tmp/cppBison.yxx.c" +#line 5562 "built/tmp/cppBison.yxx.c" break; - case 139: -#line 1605 "dtool/src/cppparser/cppBison.yxx" + case 142: /* function_operator: PLUSEQUAL */ +#line 1622 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+="; } -#line 5717 "built/tmp/cppBison.yxx.c" +#line 5570 "built/tmp/cppBison.yxx.c" break; - case 140: -#line 1609 "dtool/src/cppparser/cppBison.yxx" + case 143: /* function_operator: MINUSEQUAL */ +#line 1626 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-="; } -#line 5725 "built/tmp/cppBison.yxx.c" +#line 5578 "built/tmp/cppBison.yxx.c" break; - case 141: -#line 1613 "dtool/src/cppparser/cppBison.yxx" + case 144: /* function_operator: OREQUAL */ +#line 1630 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|="; } -#line 5733 "built/tmp/cppBison.yxx.c" +#line 5586 "built/tmp/cppBison.yxx.c" break; - case 142: -#line 1617 "dtool/src/cppparser/cppBison.yxx" + case 145: /* function_operator: ANDEQUAL */ +#line 1634 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&="; } -#line 5741 "built/tmp/cppBison.yxx.c" +#line 5594 "built/tmp/cppBison.yxx.c" break; - case 143: -#line 1621 "dtool/src/cppparser/cppBison.yxx" + case 146: /* function_operator: XOREQUAL */ +#line 1638 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^="; } -#line 5749 "built/tmp/cppBison.yxx.c" +#line 5602 "built/tmp/cppBison.yxx.c" break; - case 144: -#line 1625 "dtool/src/cppparser/cppBison.yxx" + case 147: /* function_operator: LSHIFTEQUAL */ +#line 1642 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<="; } -#line 5757 "built/tmp/cppBison.yxx.c" +#line 5610 "built/tmp/cppBison.yxx.c" break; - case 145: -#line 1629 "dtool/src/cppparser/cppBison.yxx" + case 148: /* function_operator: RSHIFTEQUAL */ +#line 1646 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>="; } -#line 5765 "built/tmp/cppBison.yxx.c" +#line 5618 "built/tmp/cppBison.yxx.c" break; - case 146: -#line 1633 "dtool/src/cppparser/cppBison.yxx" + case 149: /* function_operator: POINTSAT */ +#line 1650 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "->"; } -#line 5773 "built/tmp/cppBison.yxx.c" +#line 5626 "built/tmp/cppBison.yxx.c" break; - case 147: -#line 1637 "dtool/src/cppparser/cppBison.yxx" + case 150: /* function_operator: '[' ']' */ +#line 1654 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "[]"; } -#line 5781 "built/tmp/cppBison.yxx.c" +#line 5634 "built/tmp/cppBison.yxx.c" break; - case 148: -#line 1641 "dtool/src/cppparser/cppBison.yxx" + case 151: /* function_operator: '(' ')' */ +#line 1658 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "()"; } -#line 5789 "built/tmp/cppBison.yxx.c" +#line 5642 "built/tmp/cppBison.yxx.c" break; - case 149: -#line 1645 "dtool/src/cppparser/cppBison.yxx" + case 152: /* function_operator: KW_NEW */ +#line 1662 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "new"; } -#line 5797 "built/tmp/cppBison.yxx.c" +#line 5650 "built/tmp/cppBison.yxx.c" break; - case 150: -#line 1649 "dtool/src/cppparser/cppBison.yxx" + case 153: /* function_operator: KW_DELETE */ +#line 1666 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "delete"; } -#line 5805 "built/tmp/cppBison.yxx.c" +#line 5658 "built/tmp/cppBison.yxx.c" break; - case 155: -#line 1663 "dtool/src/cppparser/cppBison.yxx" + case 158: /* $@14: %empty */ +#line 1680 "dtool/src/cppparser/cppBison.yxx" { push_scope(new CPPTemplateScope(current_scope)); } -#line 5813 "built/tmp/cppBison.yxx.c" +#line 5666 "built/tmp/cppBison.yxx.c" break; - case 156: -#line 1667 "dtool/src/cppparser/cppBison.yxx" + case 159: /* template_declaration: KW_TEMPLATE $@14 '<' template_formal_parameters '>' more_template_declaration */ +#line 1684 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } -#line 5821 "built/tmp/cppBison.yxx.c" +#line 5674 "built/tmp/cppBison.yxx.c" break; - case 161: -#line 1681 "dtool/src/cppparser/cppBison.yxx" + case 164: /* template_nonempty_formal_parameters: template_formal_parameter */ +#line 1698 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != nullptr); ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 5831 "built/tmp/cppBison.yxx.c" +#line 5684 "built/tmp/cppBison.yxx.c" break; - case 162: -#line 1687 "dtool/src/cppparser/cppBison.yxx" + case 165: /* template_nonempty_formal_parameters: template_nonempty_formal_parameters ',' template_formal_parameter */ +#line 1704 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != nullptr); ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 5841 "built/tmp/cppBison.yxx.c" +#line 5694 "built/tmp/cppBison.yxx.c" break; - case 165: -#line 1701 "dtool/src/cppparser/cppBison.yxx" + case 168: /* template_formal_parameter: typename_keyword */ +#line 1718 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter(nullptr)); } -#line 5849 "built/tmp/cppBison.yxx.c" +#line 5702 "built/tmp/cppBison.yxx.c" break; - case 166: -#line 1705 "dtool/src/cppparser/cppBison.yxx" + case 169: /* template_formal_parameter: typename_keyword name */ +#line 1722 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); } -#line 5857 "built/tmp/cppBison.yxx.c" +#line 5710 "built/tmp/cppBison.yxx.c" break; - case 167: -#line 1709 "dtool/src/cppparser/cppBison.yxx" + case 170: /* template_formal_parameter: typename_keyword name '=' full_type */ +#line 1726 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); } -#line 5865 "built/tmp/cppBison.yxx.c" +#line 5718 "built/tmp/cppBison.yxx.c" break; - case 168: -#line 1713 "dtool/src/cppparser/cppBison.yxx" + case 171: /* template_formal_parameter: typename_keyword ELLIPSIS */ +#line 1730 "dtool/src/cppparser/cppBison.yxx" { CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter(nullptr); ctp->_packed = true; (yyval.u.decl) = CPPType::new_type(ctp); } -#line 5875 "built/tmp/cppBison.yxx.c" +#line 5728 "built/tmp/cppBison.yxx.c" break; - case 169: -#line 1719 "dtool/src/cppparser/cppBison.yxx" + case 172: /* template_formal_parameter: typename_keyword ELLIPSIS name */ +#line 1736 "dtool/src/cppparser/cppBison.yxx" { CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[0].u.identifier)); ctp->_packed = true; (yyval.u.decl) = CPPType::new_type(ctp); } -#line 5885 "built/tmp/cppBison.yxx.c" +#line 5738 "built/tmp/cppBison.yxx.c" break; - case 170: -#line 1725 "dtool/src/cppparser/cppBison.yxx" + case 173: /* template_formal_parameter: template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize */ +#line 1742 "dtool/src/cppparser/cppBison.yxx" { 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 5895 "built/tmp/cppBison.yxx.c" +#line 5748 "built/tmp/cppBison.yxx.c" break; - case 171: -#line 1731 "dtool/src/cppparser/cppBison.yxx" + case 174: /* template_formal_parameter: KW_CONST template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize */ +#line 1748 "dtool/src/cppparser/cppBison.yxx" { (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 5906 "built/tmp/cppBison.yxx.c" +#line 5759 "built/tmp/cppBison.yxx.c" break; - case 172: -#line 1738 "dtool/src/cppparser/cppBison.yxx" + case 175: /* template_formal_parameter: template_formal_parameter_type parameter_pack_identifier */ +#line 1755 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[0]).file); (yyval.u.decl) = inst; } -#line 5915 "built/tmp/cppBison.yxx.c" +#line 5768 "built/tmp/cppBison.yxx.c" break; - case 173: -#line 1743 "dtool/src/cppparser/cppBison.yxx" + case 176: /* template_formal_parameter: KW_CONST template_formal_parameter_type parameter_pack_identifier */ +#line 1760 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[0]).file); (yyval.u.decl) = inst; } -#line 5925 "built/tmp/cppBison.yxx.c" +#line 5778 "built/tmp/cppBison.yxx.c" break; - case 174: -#line 1752 "dtool/src/cppparser/cppBison.yxx" + case 177: /* template_formal_parameter_type: simple_type */ +#line 1769 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5933 "built/tmp/cppBison.yxx.c" +#line 5786 "built/tmp/cppBison.yxx.c" break; - case 175: -#line 1756 "dtool/src/cppparser/cppBison.yxx" + case 178: /* template_formal_parameter_type: IDENTIFIER */ +#line 1773 "dtool/src/cppparser/cppBison.yxx" { 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 5942 "built/tmp/cppBison.yxx.c" +#line 5795 "built/tmp/cppBison.yxx.c" break; - case 176: -#line 1761 "dtool/src/cppparser/cppBison.yxx" + case 179: /* template_formal_parameter_type: TYPENAME_IDENTIFIER */ +#line 1778 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { @@ -5950,11 +5803,11 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 5954 "built/tmp/cppBison.yxx.c" +#line 5807 "built/tmp/cppBison.yxx.c" break; - case 177: -#line 1769 "dtool/src/cppparser/cppBison.yxx" + case 180: /* template_formal_parameter_type: TYPEPACK_IDENTIFIER */ +#line 1786 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { @@ -5962,19 +5815,19 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 5966 "built/tmp/cppBison.yxx.c" +#line 5819 "built/tmp/cppBison.yxx.c" break; - case 178: -#line 1781 "dtool/src/cppparser/cppBison.yxx" + case 181: /* instance_identifier: name_no_final */ +#line 1798 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 5974 "built/tmp/cppBison.yxx.c" +#line 5827 "built/tmp/cppBison.yxx.c" break; - case 179: -#line 1785 "dtool/src/cppparser/cppBison.yxx" + case 182: /* instance_identifier: KW_OPERATOR function_operator */ +#line 1802 "dtool/src/cppparser/cppBison.yxx" { // For an operator function. We implement this simply by building a // ficticious name for the function; in other respects it's just @@ -5988,11 +5841,11 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 5992 "built/tmp/cppBison.yxx.c" +#line 5845 "built/tmp/cppBison.yxx.c" break; - case 180: -#line 1799 "dtool/src/cppparser/cppBison.yxx" + case 183: /* instance_identifier: KW_OPERATOR SIMPLE_STRING IDENTIFIER */ +#line 1816 "dtool/src/cppparser/cppBison.yxx" { // A C++11 literal operator. if (!(yyvsp[-1].str).empty()) { @@ -6007,83 +5860,83 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 6011 "built/tmp/cppBison.yxx.c" +#line 5864 "built/tmp/cppBison.yxx.c" break; - case 181: -#line 1814 "dtool/src/cppparser/cppBison.yxx" + case 184: /* instance_identifier: KW_CONST instance_identifier */ +#line 1831 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6020 "built/tmp/cppBison.yxx.c" +#line 5873 "built/tmp/cppBison.yxx.c" break; - case 182: -#line 1819 "dtool/src/cppparser/cppBison.yxx" + case 185: /* instance_identifier: KW_VOLATILE instance_identifier */ +#line 1836 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6029 "built/tmp/cppBison.yxx.c" +#line 5882 "built/tmp/cppBison.yxx.c" break; - case 183: -#line 1824 "dtool/src/cppparser/cppBison.yxx" + case 186: /* instance_identifier: '*' instance_identifier */ +#line 1841 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6038 "built/tmp/cppBison.yxx.c" +#line 5891 "built/tmp/cppBison.yxx.c" break; - case 184: -#line 1829 "dtool/src/cppparser/cppBison.yxx" + case 187: /* instance_identifier: '&' instance_identifier */ +#line 1846 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6047 "built/tmp/cppBison.yxx.c" +#line 5900 "built/tmp/cppBison.yxx.c" break; - case 185: -#line 1834 "dtool/src/cppparser/cppBison.yxx" + case 188: /* instance_identifier: ANDAND instance_identifier */ +#line 1851 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 6056 "built/tmp/cppBison.yxx.c" +#line 5909 "built/tmp/cppBison.yxx.c" break; - case 186: -#line 1839 "dtool/src/cppparser/cppBison.yxx" + case 189: /* instance_identifier: SCOPING '*' instance_identifier */ +#line 1856 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 6065 "built/tmp/cppBison.yxx.c" +#line 5918 "built/tmp/cppBison.yxx.c" break; - case 187: -#line 1844 "dtool/src/cppparser/cppBison.yxx" + case 190: /* instance_identifier: instance_identifier '[' optional_const_expr ']' */ +#line 1861 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 6074 "built/tmp/cppBison.yxx.c" +#line 5927 "built/tmp/cppBison.yxx.c" break; - case 188: -#line 1849 "dtool/src/cppparser/cppBison.yxx" + case 191: /* instance_identifier: '(' instance_identifier ')' */ +#line 1866 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 6083 "built/tmp/cppBison.yxx.c" +#line 5936 "built/tmp/cppBison.yxx.c" break; - case 189: -#line 1854 "dtool/src/cppparser/cppBison.yxx" + case 192: /* $@15: %empty */ +#line 1871 "dtool/src/cppparser/cppBison.yxx" { // Create a scope for this function (in case it is a function) CPPScope *scope = new CPPScope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope), @@ -6096,11 +5949,11 @@ yyreduce: push_scope(scope); } -#line 6100 "built/tmp/cppBison.yxx.c" +#line 5953 "built/tmp/cppBison.yxx.c" break; - case 190: -#line 1867 "dtool/src/cppparser/cppBison.yxx" + case 193: /* instance_identifier: instance_identifier '(' $@15 formal_parameter_list ')' function_post */ +#line 1884 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); @@ -6114,11 +5967,11 @@ yyreduce: (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } } -#line 6118 "built/tmp/cppBison.yxx.c" +#line 5971 "built/tmp/cppBison.yxx.c" break; - case 191: -#line 1885 "dtool/src/cppparser/cppBison.yxx" + case 194: /* instance_identifier_and_maybe_trailing_return_type: instance_identifier maybe_trailing_return_type */ +#line 1902 "dtool/src/cppparser/cppBison.yxx" { // 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 @@ -6128,910 +5981,910 @@ yyreduce: } (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } -#line 6132 "built/tmp/cppBison.yxx.c" +#line 5985 "built/tmp/cppBison.yxx.c" break; - case 192: -#line 1895 "dtool/src/cppparser/cppBison.yxx" + case 195: /* instance_identifier_and_maybe_trailing_return_type: instance_identifier ':' const_expr */ +#line 1912 "dtool/src/cppparser/cppBison.yxx" { // Bitfield definition. (yyvsp[-2].u.inst_ident)->_bit_width = (yyvsp[0].u.expr); (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); } -#line 6142 "built/tmp/cppBison.yxx.c" +#line 5995 "built/tmp/cppBison.yxx.c" break; - case 193: -#line 1905 "dtool/src/cppparser/cppBison.yxx" + case 196: /* maybe_trailing_return_type: empty */ +#line 1922 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = nullptr; } -#line 6150 "built/tmp/cppBison.yxx.c" +#line 6003 "built/tmp/cppBison.yxx.c" break; - case 194: -#line 1909 "dtool/src/cppparser/cppBison.yxx" + case 197: /* maybe_trailing_return_type: POINTSAT predefined_type empty_instance_identifier */ +#line 1926 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6158 "built/tmp/cppBison.yxx.c" +#line 6011 "built/tmp/cppBison.yxx.c" break; - case 195: -#line 1913 "dtool/src/cppparser/cppBison.yxx" + case 198: /* maybe_trailing_return_type: POINTSAT KW_CONST predefined_type empty_instance_identifier */ +#line 1930 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6167 "built/tmp/cppBison.yxx.c" +#line 6020 "built/tmp/cppBison.yxx.c" break; - case 196: -#line 1922 "dtool/src/cppparser/cppBison.yxx" + case 199: /* maybe_comma_identifier: empty */ +#line 1939 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = nullptr; } -#line 6175 "built/tmp/cppBison.yxx.c" +#line 6028 "built/tmp/cppBison.yxx.c" break; - case 197: -#line 1926 "dtool/src/cppparser/cppBison.yxx" + case 200: /* maybe_comma_identifier: ',' IDENTIFIER */ +#line 1943 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 6183 "built/tmp/cppBison.yxx.c" +#line 6036 "built/tmp/cppBison.yxx.c" break; - case 198: -#line 1934 "dtool/src/cppparser/cppBison.yxx" + case 201: /* function_parameter_list: empty */ +#line 1951 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; } -#line 6191 "built/tmp/cppBison.yxx.c" +#line 6044 "built/tmp/cppBison.yxx.c" break; - case 199: -#line 1938 "dtool/src/cppparser/cppBison.yxx" + case 202: /* function_parameter_list: ELLIPSIS */ +#line 1955 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6200 "built/tmp/cppBison.yxx.c" +#line 6053 "built/tmp/cppBison.yxx.c" break; - case 200: -#line 1943 "dtool/src/cppparser/cppBison.yxx" + case 203: /* function_parameter_list: function_parameters */ +#line 1960 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[0].u.param_list); } -#line 6208 "built/tmp/cppBison.yxx.c" +#line 6061 "built/tmp/cppBison.yxx.c" break; - case 201: -#line 1947 "dtool/src/cppparser/cppBison.yxx" + case 204: /* function_parameter_list: function_parameters ',' ELLIPSIS */ +#line 1964 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6217 "built/tmp/cppBison.yxx.c" +#line 6070 "built/tmp/cppBison.yxx.c" break; - case 202: -#line 1952 "dtool/src/cppparser/cppBison.yxx" + case 205: /* function_parameter_list: function_parameters ELLIPSIS */ +#line 1969 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[-1].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6226 "built/tmp/cppBison.yxx.c" +#line 6079 "built/tmp/cppBison.yxx.c" break; - case 203: -#line 1960 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 6235 "built/tmp/cppBison.yxx.c" - break; - - case 204: -#line 1965 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 6244 "built/tmp/cppBison.yxx.c" - break; - - case 205: -#line 1973 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.param_list) = new CPPParameterList; -} -#line 6252 "built/tmp/cppBison.yxx.c" - break; - - case 206: + case 206: /* function_parameters: function_parameter */ #line 1977 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } -#line 6261 "built/tmp/cppBison.yxx.c" +#line 6088 "built/tmp/cppBison.yxx.c" break; - case 207: + case 207: /* function_parameters: function_parameters ',' function_parameter */ #line 1982 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 6097 "built/tmp/cppBison.yxx.c" + break; + + case 208: /* formal_parameter_list: empty */ +#line 1990 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; +} +#line 6105 "built/tmp/cppBison.yxx.c" + break; + + case 209: /* formal_parameter_list: ELLIPSIS */ +#line 1994 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 6114 "built/tmp/cppBison.yxx.c" + break; + + case 210: /* formal_parameter_list: formal_parameters */ +#line 1999 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[0].u.param_list); } -#line 6269 "built/tmp/cppBison.yxx.c" +#line 6122 "built/tmp/cppBison.yxx.c" break; - case 208: -#line 1986 "dtool/src/cppparser/cppBison.yxx" + case 211: /* formal_parameter_list: formal_parameters ',' ELLIPSIS */ +#line 2003 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 6131 "built/tmp/cppBison.yxx.c" + break; + + case 212: /* formal_parameter_list: formal_parameters ELLIPSIS */ +#line 2008 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 6140 "built/tmp/cppBison.yxx.c" + break; + + case 213: /* formal_parameters: formal_parameter */ +#line 2016 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 6149 "built/tmp/cppBison.yxx.c" + break; + + case 214: /* formal_parameters: formal_parameters ',' formal_parameter */ +#line 2021 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 6158 "built/tmp/cppBison.yxx.c" + break; + + case 215: /* template_parameter_maybe_initialize: empty */ +#line 2029 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6166 "built/tmp/cppBison.yxx.c" + break; + + case 216: /* template_parameter_maybe_initialize: '=' no_angle_bracket_const_expr */ +#line 2033 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6174 "built/tmp/cppBison.yxx.c" + break; + + case 217: /* maybe_initialize: empty */ +#line 2040 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6182 "built/tmp/cppBison.yxx.c" + break; + + case 218: /* maybe_initialize: '=' const_expr */ +#line 2044 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6190 "built/tmp/cppBison.yxx.c" + break; + + case 219: /* maybe_initialize_or_constructor_body: ';' */ +#line 2051 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6198 "built/tmp/cppBison.yxx.c" + break; + + case 220: /* maybe_initialize_or_constructor_body: '{' code '}' */ +#line 2055 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6206 "built/tmp/cppBison.yxx.c" + break; + + case 221: /* maybe_initialize_or_constructor_body: ':' constructor_inits '{' code '}' */ +#line 2059 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6214 "built/tmp/cppBison.yxx.c" + break; + + case 222: /* maybe_initialize_or_constructor_body: '=' KW_DEFAULT ';' */ +#line 2063 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 6222 "built/tmp/cppBison.yxx.c" + break; + + case 223: /* maybe_initialize_or_constructor_body: '=' KW_DELETE ';' */ +#line 2067 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 6230 "built/tmp/cppBison.yxx.c" + break; + + case 224: /* maybe_initialize_or_function_body: ';' */ +#line 2074 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6238 "built/tmp/cppBison.yxx.c" + break; + + case 225: /* maybe_initialize_or_function_body: '{' code '}' */ +#line 2078 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6246 "built/tmp/cppBison.yxx.c" + break; + + case 226: /* maybe_initialize_or_function_body: '=' const_expr ';' */ +#line 2082 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 6254 "built/tmp/cppBison.yxx.c" + break; + + case 227: /* maybe_initialize_or_function_body: '=' KW_DEFAULT ';' */ +#line 2086 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 6262 "built/tmp/cppBison.yxx.c" + break; + + case 228: /* maybe_initialize_or_function_body: '=' KW_DELETE ';' */ +#line 2090 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 6270 "built/tmp/cppBison.yxx.c" + break; + + case 229: /* maybe_initialize_or_function_body: '=' '{' structure_init '}' */ +#line 2094 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} #line 6278 "built/tmp/cppBison.yxx.c" break; - case 209: -#line 1991 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6287 "built/tmp/cppBison.yxx.c" - break; - - case 210: -#line 1999 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 6296 "built/tmp/cppBison.yxx.c" - break; - - case 211: -#line 2004 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 6305 "built/tmp/cppBison.yxx.c" - break; - - case 212: -#line 2012 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6313 "built/tmp/cppBison.yxx.c" - break; - - case 213: -#line 2016 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 6321 "built/tmp/cppBison.yxx.c" - break; - - case 214: -#line 2023 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6329 "built/tmp/cppBison.yxx.c" - break; - - case 215: -#line 2027 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 6337 "built/tmp/cppBison.yxx.c" - break; - - case 216: -#line 2034 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6345 "built/tmp/cppBison.yxx.c" - break; - - case 217: -#line 2038 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6353 "built/tmp/cppBison.yxx.c" - break; - - case 218: -#line 2042 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6361 "built/tmp/cppBison.yxx.c" - break; - - case 219: -#line 2046 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); -} -#line 6369 "built/tmp/cppBison.yxx.c" - break; - - case 220: -#line 2050 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); -} -#line 6377 "built/tmp/cppBison.yxx.c" - break; - - case 221: -#line 2057 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6385 "built/tmp/cppBison.yxx.c" - break; - - case 222: -#line 2061 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6393 "built/tmp/cppBison.yxx.c" - break; - - case 223: -#line 2065 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 6401 "built/tmp/cppBison.yxx.c" - break; - - case 224: -#line 2069 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); -} -#line 6409 "built/tmp/cppBison.yxx.c" - break; - - case 225: -#line 2073 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); -} -#line 6417 "built/tmp/cppBison.yxx.c" - break; - - case 226: -#line 2077 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 6425 "built/tmp/cppBison.yxx.c" - break; - - case 230: -#line 2090 "dtool/src/cppparser/cppBison.yxx" + case 233: /* structure_init_body: const_expr */ +#line 2107 "dtool/src/cppparser/cppBison.yxx" { } -#line 6432 "built/tmp/cppBison.yxx.c" +#line 6285 "built/tmp/cppBison.yxx.c" break; - case 234: -#line 2099 "dtool/src/cppparser/cppBison.yxx" -{ - (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 6441 "built/tmp/cppBison.yxx.c" - break; - - case 235: -#line 2104 "dtool/src/cppparser/cppBison.yxx" -{ - (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 6451 "built/tmp/cppBison.yxx.c" - break; - - case 236: -#line 2110 "dtool/src/cppparser/cppBison.yxx" -{ - (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 6461 "built/tmp/cppBison.yxx.c" - break; - - case 237: + case 237: /* function_parameter: type formal_parameter_identifier maybe_initialize */ #line 2116 "dtool/src/cppparser/cppBison.yxx" { (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 6470 "built/tmp/cppBison.yxx.c" +#line 6294 "built/tmp/cppBison.yxx.c" break; - case 238: + case 238: /* function_parameter: KW_CONST type formal_parameter_identifier maybe_initialize */ #line 2121 "dtool/src/cppparser/cppBison.yxx" { (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 6480 "built/tmp/cppBison.yxx.c" +#line 6304 "built/tmp/cppBison.yxx.c" break; - case 239: + case 239: /* function_parameter: KW_CONST KW_REGISTER type formal_parameter_identifier maybe_initialize */ #line 2127 "dtool/src/cppparser/cppBison.yxx" { (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 6490 "built/tmp/cppBison.yxx.c" +#line 6314 "built/tmp/cppBison.yxx.c" break; - case 240: + case 240: /* function_parameter: type_pack parameter_pack_identifier maybe_initialize */ #line 2133 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.instance) = (yyvsp[0].u.instance); + (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 6498 "built/tmp/cppBison.yxx.c" +#line 6323 "built/tmp/cppBison.yxx.c" break; - case 241: -#line 2137 "dtool/src/cppparser/cppBison.yxx" + case 241: /* function_parameter: KW_CONST type_pack parameter_pack_identifier maybe_initialize */ +#line 2138 "dtool/src/cppparser/cppBison.yxx" +{ + (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 6333 "built/tmp/cppBison.yxx.c" + break; + + case 242: /* function_parameter: KW_CONST KW_REGISTER type_pack parameter_pack_identifier maybe_initialize */ +#line 2144 "dtool/src/cppparser/cppBison.yxx" +{ + (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 6343 "built/tmp/cppBison.yxx.c" + break; + + case 243: /* function_parameter: KW_REGISTER function_parameter */ +#line 2150 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6506 "built/tmp/cppBison.yxx.c" +#line 6351 "built/tmp/cppBison.yxx.c" break; - case 242: -#line 2148 "dtool/src/cppparser/cppBison.yxx" + case 244: /* function_parameter: ATTR_LEFT attribute_specifiers ATTR_RIGHT function_parameter */ +#line 2154 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6514 "built/tmp/cppBison.yxx.c" +#line 6359 "built/tmp/cppBison.yxx.c" break; - case 243: -#line 2152 "dtool/src/cppparser/cppBison.yxx" + case 245: /* formal_parameter: function_parameter */ +#line 2165 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.instance) = (yyvsp[0].u.instance); +} +#line 6367 "built/tmp/cppBison.yxx.c" + break; + + case 246: /* formal_parameter: formal_const_expr */ +#line 2169 "dtool/src/cppparser/cppBison.yxx" { 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 6525 "built/tmp/cppBison.yxx.c" +#line 6378 "built/tmp/cppBison.yxx.c" break; - case 244: -#line 2162 "dtool/src/cppparser/cppBison.yxx" + case 247: /* not_paren_formal_parameter_identifier: empty */ +#line 2179 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } -#line 6533 "built/tmp/cppBison.yxx.c" +#line 6386 "built/tmp/cppBison.yxx.c" break; - case 245: -#line 2166 "dtool/src/cppparser/cppBison.yxx" + case 248: /* not_paren_formal_parameter_identifier: name_no_final */ +#line 2183 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 6541 "built/tmp/cppBison.yxx.c" +#line 6394 "built/tmp/cppBison.yxx.c" break; - case 246: -#line 2170 "dtool/src/cppparser/cppBison.yxx" + case 249: /* not_paren_formal_parameter_identifier: KW_CONST not_paren_formal_parameter_identifier */ +#line 2187 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6550 "built/tmp/cppBison.yxx.c" +#line 6403 "built/tmp/cppBison.yxx.c" break; - case 247: -#line 2175 "dtool/src/cppparser/cppBison.yxx" + case 250: /* not_paren_formal_parameter_identifier: KW_VOLATILE not_paren_formal_parameter_identifier */ +#line 2192 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6559 "built/tmp/cppBison.yxx.c" +#line 6412 "built/tmp/cppBison.yxx.c" break; - case 248: -#line 2180 "dtool/src/cppparser/cppBison.yxx" + case 251: /* not_paren_formal_parameter_identifier: '*' not_paren_formal_parameter_identifier */ +#line 2197 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6568 "built/tmp/cppBison.yxx.c" +#line 6421 "built/tmp/cppBison.yxx.c" break; - case 249: -#line 2185 "dtool/src/cppparser/cppBison.yxx" + case 252: /* not_paren_formal_parameter_identifier: '&' not_paren_formal_parameter_identifier */ +#line 2202 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6577 "built/tmp/cppBison.yxx.c" +#line 6430 "built/tmp/cppBison.yxx.c" break; - case 250: -#line 2190 "dtool/src/cppparser/cppBison.yxx" + case 253: /* not_paren_formal_parameter_identifier: ANDAND not_paren_formal_parameter_identifier */ +#line 2207 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 6586 "built/tmp/cppBison.yxx.c" +#line 6439 "built/tmp/cppBison.yxx.c" break; - case 251: -#line 2195 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 6595 "built/tmp/cppBison.yxx.c" - break; - - case 252: -#line 2200 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 6604 "built/tmp/cppBison.yxx.c" - break; - - case 253: -#line 2208 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); -} -#line 6612 "built/tmp/cppBison.yxx.c" - break; - - case 254: + case 254: /* not_paren_formal_parameter_identifier: SCOPING '*' not_paren_formal_parameter_identifier */ #line 2212 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); -} -#line 6620 "built/tmp/cppBison.yxx.c" - break; - - case 255: -#line 2216 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 6629 "built/tmp/cppBison.yxx.c" - break; - - case 256: -#line 2221 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); -} -#line 6638 "built/tmp/cppBison.yxx.c" - break; - - case 257: -#line 2226 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 6647 "built/tmp/cppBison.yxx.c" - break; - - case 258: -#line 2231 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 6656 "built/tmp/cppBison.yxx.c" - break; - - case 259: -#line 2236 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 6665 "built/tmp/cppBison.yxx.c" - break; - - case 260: -#line 2241 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 6674 "built/tmp/cppBison.yxx.c" +#line 6448 "built/tmp/cppBison.yxx.c" break; - case 261: -#line 2246 "dtool/src/cppparser/cppBison.yxx" + case 255: /* not_paren_formal_parameter_identifier: not_paren_formal_parameter_identifier '[' optional_const_expr ']' */ +#line 2217 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 6683 "built/tmp/cppBison.yxx.c" +#line 6457 "built/tmp/cppBison.yxx.c" break; - case 262: -#line 2251 "dtool/src/cppparser/cppBison.yxx" + case 256: /* formal_parameter_identifier: empty */ +#line 2225 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); +} +#line 6465 "built/tmp/cppBison.yxx.c" + break; + + case 257: /* formal_parameter_identifier: name_no_final */ +#line 2229 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} +#line 6473 "built/tmp/cppBison.yxx.c" + break; + + case 258: /* formal_parameter_identifier: KW_CONST formal_parameter_identifier */ +#line 2233 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 6482 "built/tmp/cppBison.yxx.c" + break; + + case 259: /* formal_parameter_identifier: KW_VOLATILE formal_parameter_identifier */ +#line 2238 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 6491 "built/tmp/cppBison.yxx.c" + break; + + case 260: /* formal_parameter_identifier: '*' formal_parameter_identifier */ +#line 2243 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 6500 "built/tmp/cppBison.yxx.c" + break; + + case 261: /* formal_parameter_identifier: '&' formal_parameter_identifier */ +#line 2248 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 6509 "built/tmp/cppBison.yxx.c" + break; + + case 262: /* formal_parameter_identifier: ANDAND formal_parameter_identifier */ +#line 2253 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6518 "built/tmp/cppBison.yxx.c" + break; + + case 263: /* formal_parameter_identifier: SCOPING '*' formal_parameter_identifier */ +#line 2258 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 6527 "built/tmp/cppBison.yxx.c" + break; + + case 264: /* formal_parameter_identifier: formal_parameter_identifier '[' optional_const_expr ']' */ +#line 2263 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 6536 "built/tmp/cppBison.yxx.c" + break; + + case 265: /* formal_parameter_identifier: '(' formal_parameter_identifier ')' '(' function_parameter_list ')' function_post */ +#line 2268 "dtool/src/cppparser/cppBison.yxx" { (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 6693 "built/tmp/cppBison.yxx.c" +#line 6546 "built/tmp/cppBison.yxx.c" break; - case 263: -#line 2257 "dtool/src/cppparser/cppBison.yxx" + case 266: /* formal_parameter_identifier: '(' formal_parameter_identifier ')' */ +#line 2274 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 6702 "built/tmp/cppBison.yxx.c" +#line 6555 "built/tmp/cppBison.yxx.c" break; - case 264: -#line 2265 "dtool/src/cppparser/cppBison.yxx" + case 267: /* parameter_pack_identifier: ELLIPSIS */ +#line 2282 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); (yyval.u.inst_ident)->_packed = true; } -#line 6711 "built/tmp/cppBison.yxx.c" +#line 6564 "built/tmp/cppBison.yxx.c" break; - case 265: -#line 2270 "dtool/src/cppparser/cppBison.yxx" + case 268: /* parameter_pack_identifier: ELLIPSIS name */ +#line 2287 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); (yyval.u.inst_ident)->_packed = true; } -#line 6720 "built/tmp/cppBison.yxx.c" +#line 6573 "built/tmp/cppBison.yxx.c" break; - case 266: -#line 2275 "dtool/src/cppparser/cppBison.yxx" + case 269: /* parameter_pack_identifier: KW_CONST parameter_pack_identifier */ +#line 2292 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6729 "built/tmp/cppBison.yxx.c" +#line 6582 "built/tmp/cppBison.yxx.c" break; - case 267: -#line 2280 "dtool/src/cppparser/cppBison.yxx" + case 270: /* parameter_pack_identifier: KW_VOLATILE parameter_pack_identifier */ +#line 2297 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6738 "built/tmp/cppBison.yxx.c" +#line 6591 "built/tmp/cppBison.yxx.c" break; - case 268: -#line 2285 "dtool/src/cppparser/cppBison.yxx" + case 271: /* parameter_pack_identifier: '*' parameter_pack_identifier */ +#line 2302 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6747 "built/tmp/cppBison.yxx.c" +#line 6600 "built/tmp/cppBison.yxx.c" break; - case 269: -#line 2290 "dtool/src/cppparser/cppBison.yxx" + case 272: /* parameter_pack_identifier: '&' parameter_pack_identifier */ +#line 2307 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6756 "built/tmp/cppBison.yxx.c" +#line 6609 "built/tmp/cppBison.yxx.c" break; - case 270: -#line 2295 "dtool/src/cppparser/cppBison.yxx" + case 273: /* parameter_pack_identifier: ANDAND parameter_pack_identifier */ +#line 2312 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 6765 "built/tmp/cppBison.yxx.c" +#line 6618 "built/tmp/cppBison.yxx.c" break; - case 271: -#line 2300 "dtool/src/cppparser/cppBison.yxx" + case 274: /* parameter_pack_identifier: SCOPING '*' parameter_pack_identifier */ +#line 2317 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 6774 "built/tmp/cppBison.yxx.c" +#line 6627 "built/tmp/cppBison.yxx.c" break; - case 272: -#line 2305 "dtool/src/cppparser/cppBison.yxx" + case 275: /* parameter_pack_identifier: parameter_pack_identifier '[' optional_const_expr ']' */ +#line 2322 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 6783 "built/tmp/cppBison.yxx.c" +#line 6636 "built/tmp/cppBison.yxx.c" break; - case 273: -#line 2310 "dtool/src/cppparser/cppBison.yxx" + case 276: /* parameter_pack_identifier: '(' parameter_pack_identifier ')' '(' function_parameter_list ')' function_post */ +#line 2327 "dtool/src/cppparser/cppBison.yxx" { (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 6793 "built/tmp/cppBison.yxx.c" +#line 6646 "built/tmp/cppBison.yxx.c" break; - case 274: -#line 2316 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); -} -#line 6802 "built/tmp/cppBison.yxx.c" - break; - - case 275: -#line 2324 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); -} -#line 6810 "built/tmp/cppBison.yxx.c" - break; - - case 276: -#line 2328 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); - (yyval.u.inst_ident)->_packed = true; -} -#line 6819 "built/tmp/cppBison.yxx.c" - break; - - case 277: + case 277: /* parameter_pack_identifier: '(' parameter_pack_identifier ')' */ #line 2333 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); +} +#line 6655 "built/tmp/cppBison.yxx.c" + break; + + case 278: /* not_paren_empty_instance_identifier: empty */ +#line 2341 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); +} +#line 6663 "built/tmp/cppBison.yxx.c" + break; + + case 279: /* not_paren_empty_instance_identifier: ELLIPSIS */ +#line 2345 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->_packed = true; +} +#line 6672 "built/tmp/cppBison.yxx.c" + break; + + case 280: /* not_paren_empty_instance_identifier: ELLIPSIS name */ +#line 2350 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); (yyval.u.inst_ident)->_packed = true; } -#line 6828 "built/tmp/cppBison.yxx.c" +#line 6681 "built/tmp/cppBison.yxx.c" break; - case 278: -#line 2338 "dtool/src/cppparser/cppBison.yxx" + case 281: /* not_paren_empty_instance_identifier: KW_CONST not_paren_empty_instance_identifier */ +#line 2355 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6837 "built/tmp/cppBison.yxx.c" +#line 6690 "built/tmp/cppBison.yxx.c" break; - case 279: -#line 2343 "dtool/src/cppparser/cppBison.yxx" + case 282: /* not_paren_empty_instance_identifier: KW_VOLATILE not_paren_empty_instance_identifier */ +#line 2360 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6846 "built/tmp/cppBison.yxx.c" +#line 6699 "built/tmp/cppBison.yxx.c" break; - case 280: -#line 2348 "dtool/src/cppparser/cppBison.yxx" + case 283: /* not_paren_empty_instance_identifier: '*' not_paren_empty_instance_identifier */ +#line 2365 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6855 "built/tmp/cppBison.yxx.c" +#line 6708 "built/tmp/cppBison.yxx.c" break; - case 281: -#line 2353 "dtool/src/cppparser/cppBison.yxx" + case 284: /* not_paren_empty_instance_identifier: '&' not_paren_empty_instance_identifier */ +#line 2370 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6864 "built/tmp/cppBison.yxx.c" +#line 6717 "built/tmp/cppBison.yxx.c" break; - case 282: -#line 2358 "dtool/src/cppparser/cppBison.yxx" + case 285: /* not_paren_empty_instance_identifier: ANDAND not_paren_empty_instance_identifier */ +#line 2375 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 6873 "built/tmp/cppBison.yxx.c" +#line 6726 "built/tmp/cppBison.yxx.c" break; - case 283: -#line 2363 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 6882 "built/tmp/cppBison.yxx.c" - break; - - case 284: -#line 2368 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 6891 "built/tmp/cppBison.yxx.c" - break; - - case 285: -#line 2376 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); -} -#line 6899 "built/tmp/cppBison.yxx.c" - break; - - case 286: + case 286: /* not_paren_empty_instance_identifier: SCOPING '*' not_paren_empty_instance_identifier */ #line 2380 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); - (yyval.u.inst_ident)->_packed = true; -} -#line 6908 "built/tmp/cppBison.yxx.c" - break; - - case 287: -#line 2385 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); - (yyval.u.inst_ident)->_packed = true; -} -#line 6917 "built/tmp/cppBison.yxx.c" - break; - - case 288: -#line 2390 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 6926 "built/tmp/cppBison.yxx.c" - break; - - case 289: -#line 2395 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); -} -#line 6935 "built/tmp/cppBison.yxx.c" - break; - - case 290: -#line 2400 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 6944 "built/tmp/cppBison.yxx.c" - break; - - case 291: -#line 2405 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 6953 "built/tmp/cppBison.yxx.c" - break; - - case 292: -#line 2410 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 6962 "built/tmp/cppBison.yxx.c" - break; - - case 293: -#line 2415 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 6971 "built/tmp/cppBison.yxx.c" +#line 6735 "built/tmp/cppBison.yxx.c" break; - case 294: -#line 2420 "dtool/src/cppparser/cppBison.yxx" + case 287: /* not_paren_empty_instance_identifier: not_paren_empty_instance_identifier '[' optional_const_expr ']' */ +#line 2385 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 6980 "built/tmp/cppBison.yxx.c" +#line 6744 "built/tmp/cppBison.yxx.c" break; - case 295: -#line 2425 "dtool/src/cppparser/cppBison.yxx" + case 288: /* empty_instance_identifier: empty */ +#line 2393 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); +} +#line 6752 "built/tmp/cppBison.yxx.c" + break; + + case 289: /* empty_instance_identifier: ELLIPSIS */ +#line 2397 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->_packed = true; +} +#line 6761 "built/tmp/cppBison.yxx.c" + break; + + case 290: /* empty_instance_identifier: ELLIPSIS name */ +#line 2402 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); + (yyval.u.inst_ident)->_packed = true; +} +#line 6770 "built/tmp/cppBison.yxx.c" + break; + + case 291: /* empty_instance_identifier: KW_CONST empty_instance_identifier */ +#line 2407 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 6779 "built/tmp/cppBison.yxx.c" + break; + + case 292: /* empty_instance_identifier: KW_VOLATILE empty_instance_identifier */ +#line 2412 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 6788 "built/tmp/cppBison.yxx.c" + break; + + case 293: /* empty_instance_identifier: '*' not_paren_empty_instance_identifier */ +#line 2417 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 6797 "built/tmp/cppBison.yxx.c" + break; + + case 294: /* empty_instance_identifier: '&' not_paren_empty_instance_identifier */ +#line 2422 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 6806 "built/tmp/cppBison.yxx.c" + break; + + case 295: /* empty_instance_identifier: ANDAND not_paren_empty_instance_identifier */ +#line 2427 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6815 "built/tmp/cppBison.yxx.c" + break; + + case 296: /* empty_instance_identifier: SCOPING '*' not_paren_empty_instance_identifier */ +#line 2432 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 6824 "built/tmp/cppBison.yxx.c" + break; + + case 297: /* empty_instance_identifier: not_paren_empty_instance_identifier '[' optional_const_expr ']' */ +#line 2437 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 6833 "built/tmp/cppBison.yxx.c" + break; + + case 298: /* empty_instance_identifier: '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2442 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); (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 6990 "built/tmp/cppBison.yxx.c" +#line 6843 "built/tmp/cppBison.yxx.c" break; - case 296: -#line 2431 "dtool/src/cppparser/cppBison.yxx" + case 299: /* empty_instance_identifier: '(' '*' not_paren_empty_instance_identifier ')' '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2448 "dtool/src/cppparser/cppBison.yxx" { (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 7001 "built/tmp/cppBison.yxx.c" +#line 6854 "built/tmp/cppBison.yxx.c" break; - case 297: -#line 2438 "dtool/src/cppparser/cppBison.yxx" + case 300: /* empty_instance_identifier: '(' '&' not_paren_empty_instance_identifier ')' '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2455 "dtool/src/cppparser/cppBison.yxx" { (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 7012 "built/tmp/cppBison.yxx.c" +#line 6865 "built/tmp/cppBison.yxx.c" break; - case 298: -#line 2445 "dtool/src/cppparser/cppBison.yxx" + case 301: /* empty_instance_identifier: '(' ANDAND not_paren_empty_instance_identifier ')' '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2462 "dtool/src/cppparser/cppBison.yxx" { (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 7023 "built/tmp/cppBison.yxx.c" +#line 6876 "built/tmp/cppBison.yxx.c" break; - case 299: -#line 2455 "dtool/src/cppparser/cppBison.yxx" + case 302: /* type: simple_type */ +#line 2472 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7031 "built/tmp/cppBison.yxx.c" +#line 6884 "built/tmp/cppBison.yxx.c" break; - case 300: -#line 2459 "dtool/src/cppparser/cppBison.yxx" + case 303: /* type: TYPENAME_IDENTIFIER */ +#line 2476 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { @@ -7039,43 +6892,43 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 7043 "built/tmp/cppBison.yxx.c" +#line 6896 "built/tmp/cppBison.yxx.c" break; - case 301: -#line 2467 "dtool/src/cppparser/cppBison.yxx" + case 304: /* type: KW_TYPENAME name */ +#line 2484 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7051 "built/tmp/cppBison.yxx.c" +#line 6904 "built/tmp/cppBison.yxx.c" break; - case 302: -#line 2471 "dtool/src/cppparser/cppBison.yxx" + case 305: /* type: anonymous_struct */ +#line 2488 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 7059 "built/tmp/cppBison.yxx.c" +#line 6912 "built/tmp/cppBison.yxx.c" break; - case 303: -#line 2475 "dtool/src/cppparser/cppBison.yxx" + case 306: /* type: named_struct */ +#line 2492 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 7067 "built/tmp/cppBison.yxx.c" +#line 6920 "built/tmp/cppBison.yxx.c" break; - case 304: -#line 2479 "dtool/src/cppparser/cppBison.yxx" + case 307: /* type: enum */ +#line 2496 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); } -#line 7075 "built/tmp/cppBison.yxx.c" +#line 6928 "built/tmp/cppBison.yxx.c" break; - case 305: -#line 2483 "dtool/src/cppparser/cppBison.yxx" + case 308: /* type: struct_keyword struct_attributes name */ +#line 2500 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7091,11 +6944,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 7095 "built/tmp/cppBison.yxx.c" +#line 6948 "built/tmp/cppBison.yxx.c" break; - case 306: -#line 2499 "dtool/src/cppparser/cppBison.yxx" + case 309: /* type: enum_keyword name_no_final ':' enum_element_type */ +#line 2516 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7111,11 +6964,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 7115 "built/tmp/cppBison.yxx.c" +#line 6968 "built/tmp/cppBison.yxx.c" break; - case 307: -#line 2515 "dtool/src/cppparser/cppBison.yxx" + case 310: /* type: KW_DECLTYPE '(' const_expr ')' */ +#line 2532 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == nullptr) { @@ -7124,19 +6977,19 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7128 "built/tmp/cppBison.yxx.c" +#line 6981 "built/tmp/cppBison.yxx.c" break; - case 308: -#line 2524 "dtool/src/cppparser/cppBison.yxx" + case 311: /* type: KW_DECLTYPE '(' KW_AUTO ')' */ +#line 2541 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7136 "built/tmp/cppBison.yxx.c" +#line 6989 "built/tmp/cppBison.yxx.c" break; - case 309: -#line 2528 "dtool/src/cppparser/cppBison.yxx" + case 312: /* type: KW_UNDERLYING_TYPE '(' full_type ')' */ +#line 2545 "dtool/src/cppparser/cppBison.yxx" { CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { @@ -7146,19 +6999,19 @@ yyreduce: (yyval.u.type) = enum_type->get_underlying_type(); } } -#line 7150 "built/tmp/cppBison.yxx.c" +#line 7003 "built/tmp/cppBison.yxx.c" break; - case 310: -#line 2538 "dtool/src/cppparser/cppBison.yxx" + case 313: /* type: KW_AUTO */ +#line 2555 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7158 "built/tmp/cppBison.yxx.c" +#line 7011 "built/tmp/cppBison.yxx.c" break; - case 311: -#line 2545 "dtool/src/cppparser/cppBison.yxx" + case 314: /* type_pack: TYPEPACK_IDENTIFIER */ +#line 2562 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { @@ -7166,19 +7019,19 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 7170 "built/tmp/cppBison.yxx.c" +#line 7023 "built/tmp/cppBison.yxx.c" break; - case 312: -#line 2556 "dtool/src/cppparser/cppBison.yxx" + case 315: /* type_decl: simple_type */ +#line 2573 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7178 "built/tmp/cppBison.yxx.c" +#line 7031 "built/tmp/cppBison.yxx.c" break; - case 313: -#line 2560 "dtool/src/cppparser/cppBison.yxx" + case 316: /* type_decl: TYPENAME_IDENTIFIER */ +#line 2577 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == nullptr) { @@ -7186,43 +7039,43 @@ yyreduce: } assert((yyval.u.decl) != nullptr); } -#line 7190 "built/tmp/cppBison.yxx.c" +#line 7043 "built/tmp/cppBison.yxx.c" break; - case 314: -#line 2568 "dtool/src/cppparser/cppBison.yxx" + case 317: /* type_decl: KW_TYPENAME name */ +#line 2585 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7198 "built/tmp/cppBison.yxx.c" +#line 7051 "built/tmp/cppBison.yxx.c" break; - case 315: -#line 2572 "dtool/src/cppparser/cppBison.yxx" + case 318: /* type_decl: anonymous_struct */ +#line 2589 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 7206 "built/tmp/cppBison.yxx.c" +#line 7059 "built/tmp/cppBison.yxx.c" break; - case 316: -#line 2576 "dtool/src/cppparser/cppBison.yxx" + case 319: /* type_decl: named_struct */ +#line 2593 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); } -#line 7214 "built/tmp/cppBison.yxx.c" +#line 7067 "built/tmp/cppBison.yxx.c" break; - case 317: -#line 2580 "dtool/src/cppparser/cppBison.yxx" + case 320: /* type_decl: enum */ +#line 2597 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); } -#line 7222 "built/tmp/cppBison.yxx.c" +#line 7075 "built/tmp/cppBison.yxx.c" break; - case 318: -#line 2584 "dtool/src/cppparser/cppBison.yxx" + case 321: /* type_decl: struct_keyword struct_attributes name */ +#line 2601 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7238,11 +7091,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7242 "built/tmp/cppBison.yxx.c" +#line 7095 "built/tmp/cppBison.yxx.c" break; - case 319: -#line 2600 "dtool/src/cppparser/cppBison.yxx" + case 322: /* type_decl: enum_keyword name_no_final ':' enum_element_type */ +#line 2617 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7258,11 +7111,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7262 "built/tmp/cppBison.yxx.c" +#line 7115 "built/tmp/cppBison.yxx.c" break; - case 320: -#line 2616 "dtool/src/cppparser/cppBison.yxx" + case 323: /* type_decl: enum_keyword name */ +#line 2633 "dtool/src/cppparser/cppBison.yxx" { yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); @@ -7280,11 +7133,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7284 "built/tmp/cppBison.yxx.c" +#line 7137 "built/tmp/cppBison.yxx.c" break; - case 321: -#line 2634 "dtool/src/cppparser/cppBison.yxx" + case 324: /* type_decl: KW_DECLTYPE '(' const_expr ')' */ +#line 2651 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == nullptr) { @@ -7293,19 +7146,19 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7297 "built/tmp/cppBison.yxx.c" +#line 7150 "built/tmp/cppBison.yxx.c" break; - case 322: -#line 2643 "dtool/src/cppparser/cppBison.yxx" + case 325: /* type_decl: KW_DECLTYPE '(' KW_AUTO ')' */ +#line 2660 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7305 "built/tmp/cppBison.yxx.c" +#line 7158 "built/tmp/cppBison.yxx.c" break; - case 323: -#line 2647 "dtool/src/cppparser/cppBison.yxx" + case 326: /* type_decl: KW_UNDERLYING_TYPE '(' full_type ')' */ +#line 2664 "dtool/src/cppparser/cppBison.yxx" { CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { @@ -7315,27 +7168,27 @@ yyreduce: (yyval.u.decl) = enum_type->get_underlying_type(); } } -#line 7319 "built/tmp/cppBison.yxx.c" +#line 7172 "built/tmp/cppBison.yxx.c" break; - case 324: -#line 2657 "dtool/src/cppparser/cppBison.yxx" + case 327: /* type_decl: KW_AUTO */ +#line 2674 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7327 "built/tmp/cppBison.yxx.c" +#line 7180 "built/tmp/cppBison.yxx.c" break; - case 325: -#line 2664 "dtool/src/cppparser/cppBison.yxx" + case 328: /* predefined_type: simple_type */ +#line 2681 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7335 "built/tmp/cppBison.yxx.c" +#line 7188 "built/tmp/cppBison.yxx.c" break; - case 326: -#line 2668 "dtool/src/cppparser/cppBison.yxx" + case 329: /* predefined_type: TYPENAME_IDENTIFIER */ +#line 2685 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { @@ -7343,19 +7196,19 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 7347 "built/tmp/cppBison.yxx.c" +#line 7200 "built/tmp/cppBison.yxx.c" break; - case 327: -#line 2676 "dtool/src/cppparser/cppBison.yxx" + case 330: /* predefined_type: KW_TYPENAME name */ +#line 2693 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7355 "built/tmp/cppBison.yxx.c" +#line 7208 "built/tmp/cppBison.yxx.c" break; - case 328: -#line 2680 "dtool/src/cppparser/cppBison.yxx" + case 331: /* predefined_type: struct_keyword struct_attributes name */ +#line 2697 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7371,11 +7224,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 7375 "built/tmp/cppBison.yxx.c" +#line 7228 "built/tmp/cppBison.yxx.c" break; - case 329: -#line 2696 "dtool/src/cppparser/cppBison.yxx" + case 332: /* predefined_type: enum_keyword name */ +#line 2713 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7391,11 +7244,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 7395 "built/tmp/cppBison.yxx.c" +#line 7248 "built/tmp/cppBison.yxx.c" break; - case 330: -#line 2712 "dtool/src/cppparser/cppBison.yxx" + case 333: /* predefined_type: KW_DECLTYPE '(' const_expr ')' */ +#line 2729 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == nullptr) { @@ -7404,11 +7257,11 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7408 "built/tmp/cppBison.yxx.c" +#line 7261 "built/tmp/cppBison.yxx.c" break; - case 331: -#line 2721 "dtool/src/cppparser/cppBison.yxx" + case 334: /* predefined_type: KW_UNDERLYING_TYPE '(' full_type ')' */ +#line 2738 "dtool/src/cppparser/cppBison.yxx" { CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { @@ -7418,71 +7271,71 @@ yyreduce: (yyval.u.type) = enum_type->get_underlying_type(); } } -#line 7422 "built/tmp/cppBison.yxx.c" +#line 7275 "built/tmp/cppBison.yxx.c" break; - case 332: -#line 2731 "dtool/src/cppparser/cppBison.yxx" + case 335: /* predefined_type: KW_AUTO */ +#line 2748 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7430 "built/tmp/cppBison.yxx.c" +#line 7283 "built/tmp/cppBison.yxx.c" break; - case 333: -#line 2738 "dtool/src/cppparser/cppBison.yxx" + case 336: /* var_type_decl: type_decl */ +#line 2755 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[0].u.decl); } -#line 7438 "built/tmp/cppBison.yxx.c" +#line 7291 "built/tmp/cppBison.yxx.c" break; - case 334: -#line 2742 "dtool/src/cppparser/cppBison.yxx" + case 337: /* var_type_decl: IDENTIFIER */ +#line 2759 "dtool/src/cppparser/cppBison.yxx" { 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 7448 "built/tmp/cppBison.yxx.c" +#line 7301 "built/tmp/cppBison.yxx.c" break; - case 335: -#line 2750 "dtool/src/cppparser/cppBison.yxx" + case 338: /* full_type: type empty_instance_identifier */ +#line 2767 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7456 "built/tmp/cppBison.yxx.c" +#line 7309 "built/tmp/cppBison.yxx.c" break; - case 336: -#line 2754 "dtool/src/cppparser/cppBison.yxx" + case 339: /* full_type: KW_CONST type empty_instance_identifier */ +#line 2771 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7465 "built/tmp/cppBison.yxx.c" +#line 7318 "built/tmp/cppBison.yxx.c" break; - case 337: -#line 2759 "dtool/src/cppparser/cppBison.yxx" + case 340: /* full_type: type_pack empty_instance_identifier */ +#line 2776 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7473 "built/tmp/cppBison.yxx.c" +#line 7326 "built/tmp/cppBison.yxx.c" break; - case 338: -#line 2763 "dtool/src/cppparser/cppBison.yxx" + case 341: /* full_type: KW_CONST type_pack empty_instance_identifier */ +#line 2780 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7482 "built/tmp/cppBison.yxx.c" +#line 7335 "built/tmp/cppBison.yxx.c" break; - case 343: -#line 2778 "dtool/src/cppparser/cppBison.yxx" + case 346: /* $@16: %empty */ +#line 2795 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[-2].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -7496,22 +7349,22 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 7500 "built/tmp/cppBison.yxx.c" +#line 7353 "built/tmp/cppBison.yxx.c" break; - case 344: -#line 2792 "dtool/src/cppparser/cppBison.yxx" + case 347: /* anonymous_struct: struct_keyword struct_attributes '{' $@16 cpp '}' */ +#line 2809 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 7511 "built/tmp/cppBison.yxx.c" +#line 7364 "built/tmp/cppBison.yxx.c" break; - case 345: -#line 2802 "dtool/src/cppparser/cppBison.yxx" + case 348: /* $@17: %empty */ +#line 2819 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[-2].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -7531,253 +7384,253 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 7535 "built/tmp/cppBison.yxx.c" +#line 7388 "built/tmp/cppBison.yxx.c" break; - case 346: -#line 2822 "dtool/src/cppparser/cppBison.yxx" + case 349: /* named_struct: struct_keyword struct_attributes name_no_final $@17 maybe_final maybe_class_derivation '{' cpp '}' */ +#line 2839 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 7546 "built/tmp/cppBison.yxx.c" +#line 7399 "built/tmp/cppBison.yxx.c" break; - case 348: -#line 2833 "dtool/src/cppparser/cppBison.yxx" + case 351: /* maybe_final: KW_FINAL */ +#line 2850 "dtool/src/cppparser/cppBison.yxx" { current_struct->_final = true; } -#line 7554 "built/tmp/cppBison.yxx.c" +#line 7407 "built/tmp/cppBison.yxx.c" break; - case 353: -#line 2850 "dtool/src/cppparser/cppBison.yxx" + case 356: /* base_specification: class_derivation_name */ +#line 2867 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); } -#line 7562 "built/tmp/cppBison.yxx.c" +#line 7415 "built/tmp/cppBison.yxx.c" break; - case 354: -#line 2854 "dtool/src/cppparser/cppBison.yxx" + case 357: /* base_specification: KW_PUBLIC class_derivation_name */ +#line 2871 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_public, false); } -#line 7570 "built/tmp/cppBison.yxx.c" +#line 7423 "built/tmp/cppBison.yxx.c" break; - case 355: -#line 2858 "dtool/src/cppparser/cppBison.yxx" + case 358: /* base_specification: KW_PROTECTED class_derivation_name */ +#line 2875 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); } -#line 7578 "built/tmp/cppBison.yxx.c" +#line 7431 "built/tmp/cppBison.yxx.c" break; - case 356: -#line 2862 "dtool/src/cppparser/cppBison.yxx" + case 359: /* base_specification: KW_PRIVATE class_derivation_name */ +#line 2879 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_private, false); } -#line 7586 "built/tmp/cppBison.yxx.c" +#line 7439 "built/tmp/cppBison.yxx.c" break; - case 357: -#line 2866 "dtool/src/cppparser/cppBison.yxx" + case 360: /* base_specification: KW_VIRTUAL KW_PUBLIC class_derivation_name */ +#line 2883 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } -#line 7594 "built/tmp/cppBison.yxx.c" +#line 7447 "built/tmp/cppBison.yxx.c" break; - case 358: -#line 2870 "dtool/src/cppparser/cppBison.yxx" + case 361: /* base_specification: KW_VIRTUAL KW_PROTECTED class_derivation_name */ +#line 2887 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } -#line 7602 "built/tmp/cppBison.yxx.c" +#line 7455 "built/tmp/cppBison.yxx.c" break; - case 359: -#line 2874 "dtool/src/cppparser/cppBison.yxx" + case 362: /* base_specification: KW_VIRTUAL KW_PRIVATE class_derivation_name */ +#line 2891 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } -#line 7610 "built/tmp/cppBison.yxx.c" +#line 7463 "built/tmp/cppBison.yxx.c" break; - case 360: -#line 2878 "dtool/src/cppparser/cppBison.yxx" + case 363: /* base_specification: KW_PUBLIC KW_VIRTUAL class_derivation_name */ +#line 2895 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } -#line 7618 "built/tmp/cppBison.yxx.c" +#line 7471 "built/tmp/cppBison.yxx.c" break; - case 361: -#line 2882 "dtool/src/cppparser/cppBison.yxx" + case 364: /* base_specification: KW_PROTECTED KW_VIRTUAL class_derivation_name */ +#line 2899 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } -#line 7626 "built/tmp/cppBison.yxx.c" +#line 7479 "built/tmp/cppBison.yxx.c" break; - case 362: -#line 2886 "dtool/src/cppparser/cppBison.yxx" + case 365: /* base_specification: KW_PRIVATE KW_VIRTUAL class_derivation_name */ +#line 2903 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } -#line 7634 "built/tmp/cppBison.yxx.c" +#line 7487 "built/tmp/cppBison.yxx.c" break; - case 363: -#line 2893 "dtool/src/cppparser/cppBison.yxx" + case 366: /* enum: enum_decl '{' enum_body '}' */ +#line 2910 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.enum_type) = current_enum; current_enum = nullptr; } -#line 7643 "built/tmp/cppBison.yxx.c" +#line 7496 "built/tmp/cppBison.yxx.c" break; - case 364: -#line 2901 "dtool/src/cppparser/cppBison.yxx" + case 367: /* enum_decl: enum_keyword ':' enum_element_type */ +#line 2918 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[-2].u.extension_enum), nullptr, (yyvsp[0].u.type), current_scope, nullptr, (yylsp[-2]).file); } -#line 7651 "built/tmp/cppBison.yxx.c" +#line 7504 "built/tmp/cppBison.yxx.c" break; - case 365: -#line 2905 "dtool/src/cppparser/cppBison.yxx" + case 368: /* enum_decl: enum_keyword */ +#line 2922 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[0].u.extension_enum), nullptr, current_scope, nullptr, (yylsp[0]).file); } -#line 7659 "built/tmp/cppBison.yxx.c" +#line 7512 "built/tmp/cppBison.yxx.c" break; - case 366: -#line 2909 "dtool/src/cppparser/cppBison.yxx" + case 369: /* enum_decl: enum_keyword name_no_final ':' enum_element_type */ +#line 2926 "dtool/src/cppparser/cppBison.yxx" { 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 7668 "built/tmp/cppBison.yxx.c" +#line 7521 "built/tmp/cppBison.yxx.c" break; - case 367: -#line 2914 "dtool/src/cppparser/cppBison.yxx" + case 370: /* enum_decl: enum_keyword name_no_final */ +#line 2931 "dtool/src/cppparser/cppBison.yxx" { 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 7677 "built/tmp/cppBison.yxx.c" +#line 7530 "built/tmp/cppBison.yxx.c" break; - case 368: -#line 2922 "dtool/src/cppparser/cppBison.yxx" + case 371: /* enum_element_type: simple_int_type */ +#line 2939 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7685 "built/tmp/cppBison.yxx.c" +#line 7538 "built/tmp/cppBison.yxx.c" break; - case 369: -#line 2926 "dtool/src/cppparser/cppBison.yxx" + case 372: /* enum_element_type: TYPENAME_IDENTIFIER */ +#line 2943 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } -#line 7693 "built/tmp/cppBison.yxx.c" +#line 7546 "built/tmp/cppBison.yxx.c" break; - case 371: -#line 2934 "dtool/src/cppparser/cppBison.yxx" + case 374: /* enum_body_trailing_comma: enum_body_trailing_comma name ',' */ +#line 2951 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != nullptr); current_enum->add_element((yyvsp[-1].u.identifier)->get_simple_name(), nullptr, current_lexer, (yylsp[-1])); } -#line 7702 "built/tmp/cppBison.yxx.c" +#line 7555 "built/tmp/cppBison.yxx.c" break; - case 372: -#line 2939 "dtool/src/cppparser/cppBison.yxx" + case 375: /* enum_body_trailing_comma: enum_body_trailing_comma name '=' const_expr ',' */ +#line 2956 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != nullptr); current_enum->add_element((yyvsp[-3].u.identifier)->get_simple_name(), (yyvsp[-1].u.expr), current_lexer, (yylsp[-3])); } -#line 7711 "built/tmp/cppBison.yxx.c" +#line 7564 "built/tmp/cppBison.yxx.c" break; - case 374: -#line 2947 "dtool/src/cppparser/cppBison.yxx" + case 377: /* enum_body: enum_body_trailing_comma name */ +#line 2964 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != nullptr); current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), nullptr, current_lexer, (yylsp[0])); } -#line 7720 "built/tmp/cppBison.yxx.c" +#line 7573 "built/tmp/cppBison.yxx.c" break; - case 375: -#line 2952 "dtool/src/cppparser/cppBison.yxx" + case 378: /* enum_body: enum_body_trailing_comma name '=' const_expr */ +#line 2969 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != nullptr); current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), (yyvsp[0].u.expr), current_lexer, (yylsp[-2])); } -#line 7729 "built/tmp/cppBison.yxx.c" +#line 7582 "built/tmp/cppBison.yxx.c" break; - case 376: -#line 2960 "dtool/src/cppparser/cppBison.yxx" + case 379: /* enum_keyword: KW_ENUM */ +#line 2977 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } -#line 7737 "built/tmp/cppBison.yxx.c" +#line 7590 "built/tmp/cppBison.yxx.c" break; - case 377: -#line 2964 "dtool/src/cppparser/cppBison.yxx" + case 380: /* enum_keyword: KW_ENUM KW_CLASS */ +#line 2981 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } -#line 7745 "built/tmp/cppBison.yxx.c" +#line 7598 "built/tmp/cppBison.yxx.c" break; - case 378: -#line 2968 "dtool/src/cppparser/cppBison.yxx" + case 381: /* enum_keyword: KW_ENUM KW_STRUCT */ +#line 2985 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; } -#line 7753 "built/tmp/cppBison.yxx.c" +#line 7606 "built/tmp/cppBison.yxx.c" break; - case 379: -#line 2975 "dtool/src/cppparser/cppBison.yxx" + case 382: /* struct_keyword: KW_CLASS */ +#line 2992 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_class; } -#line 7761 "built/tmp/cppBison.yxx.c" +#line 7614 "built/tmp/cppBison.yxx.c" break; - case 380: -#line 2979 "dtool/src/cppparser/cppBison.yxx" + case 383: /* struct_keyword: KW_STRUCT */ +#line 2996 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_struct; } -#line 7769 "built/tmp/cppBison.yxx.c" +#line 7622 "built/tmp/cppBison.yxx.c" break; - case 381: -#line 2983 "dtool/src/cppparser/cppBison.yxx" + case 384: /* struct_keyword: KW_UNION */ +#line 3000 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_union; } -#line 7777 "built/tmp/cppBison.yxx.c" +#line 7630 "built/tmp/cppBison.yxx.c" break; - case 382: -#line 2990 "dtool/src/cppparser/cppBison.yxx" + case 385: /* $@18: %empty */ +#line 3007 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == nullptr) { @@ -7795,19 +7648,19 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 7799 "built/tmp/cppBison.yxx.c" +#line 7652 "built/tmp/cppBison.yxx.c" break; - case 383: -#line 3008 "dtool/src/cppparser/cppBison.yxx" + case 386: /* namespace_declaration: KW_NAMESPACE name '{' $@18 cpp '}' */ +#line 3025 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } -#line 7807 "built/tmp/cppBison.yxx.c" +#line 7660 "built/tmp/cppBison.yxx.c" break; - case 384: -#line 3012 "dtool/src/cppparser/cppBison.yxx" + case 387: /* $@19: %empty */ +#line 3029 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == nullptr) { @@ -7826,143 +7679,151 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 7830 "built/tmp/cppBison.yxx.c" +#line 7683 "built/tmp/cppBison.yxx.c" break; - case 385: -#line 3031 "dtool/src/cppparser/cppBison.yxx" + case 388: /* namespace_declaration: KW_INLINE KW_NAMESPACE name '{' $@19 cpp '}' */ +#line 3048 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } -#line 7838 "built/tmp/cppBison.yxx.c" +#line 7691 "built/tmp/cppBison.yxx.c" break; - case 388: -#line 3040 "dtool/src/cppparser/cppBison.yxx" + case 391: /* using_declaration: KW_USING name ';' */ +#line 3057 "dtool/src/cppparser/cppBison.yxx" { 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 7848 "built/tmp/cppBison.yxx.c" +#line 7701 "built/tmp/cppBison.yxx.c" break; - case 389: -#line 3046 "dtool/src/cppparser/cppBison.yxx" + case 392: /* using_declaration: KW_USING name '=' full_type ';' */ +#line 3063 "dtool/src/cppparser/cppBison.yxx" { // 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 7859 "built/tmp/cppBison.yxx.c" +#line 7712 "built/tmp/cppBison.yxx.c" break; - case 390: -#line 3053 "dtool/src/cppparser/cppBison.yxx" + case 393: /* using_declaration: KW_USING KW_NAMESPACE name ';' */ +#line 3070 "dtool/src/cppparser/cppBison.yxx" { 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 7869 "built/tmp/cppBison.yxx.c" +#line 7722 "built/tmp/cppBison.yxx.c" break; - case 394: -#line 3068 "dtool/src/cppparser/cppBison.yxx" + case 397: /* simple_int_type: KW_BOOL */ +#line 3085 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } -#line 7877 "built/tmp/cppBison.yxx.c" +#line 7730 "built/tmp/cppBison.yxx.c" break; - case 395: -#line 3072 "dtool/src/cppparser/cppBison.yxx" + case 398: /* simple_int_type: KW_CHAR */ +#line 3089 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } -#line 7885 "built/tmp/cppBison.yxx.c" +#line 7738 "built/tmp/cppBison.yxx.c" break; - case 396: -#line 3076 "dtool/src/cppparser/cppBison.yxx" + case 399: /* simple_int_type: KW_WCHAR_T */ +#line 3093 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } -#line 7893 "built/tmp/cppBison.yxx.c" +#line 7746 "built/tmp/cppBison.yxx.c" break; - case 397: -#line 3080 "dtool/src/cppparser/cppBison.yxx" + case 400: /* simple_int_type: KW_CHAR8_T */ +#line 3097 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char8_t); +} +#line 7754 "built/tmp/cppBison.yxx.c" + break; + + case 401: /* simple_int_type: KW_CHAR16_T */ +#line 3101 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } -#line 7901 "built/tmp/cppBison.yxx.c" +#line 7762 "built/tmp/cppBison.yxx.c" break; - case 398: -#line 3084 "dtool/src/cppparser/cppBison.yxx" + case 402: /* simple_int_type: KW_CHAR32_T */ +#line 3105 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } -#line 7909 "built/tmp/cppBison.yxx.c" +#line 7770 "built/tmp/cppBison.yxx.c" break; - case 399: -#line 3088 "dtool/src/cppparser/cppBison.yxx" + case 403: /* simple_int_type: KW_SHORT */ +#line 3109 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } -#line 7918 "built/tmp/cppBison.yxx.c" +#line 7779 "built/tmp/cppBison.yxx.c" break; - case 400: -#line 3093 "dtool/src/cppparser/cppBison.yxx" + case 404: /* simple_int_type: KW_LONG */ +#line 3114 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } -#line 7927 "built/tmp/cppBison.yxx.c" +#line 7788 "built/tmp/cppBison.yxx.c" break; - case 401: -#line 3098 "dtool/src/cppparser/cppBison.yxx" + case 405: /* simple_int_type: KW_UNSIGNED */ +#line 3119 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } -#line 7936 "built/tmp/cppBison.yxx.c" +#line 7797 "built/tmp/cppBison.yxx.c" break; - case 402: -#line 3103 "dtool/src/cppparser/cppBison.yxx" + case 406: /* simple_int_type: KW_SIGNED */ +#line 3124 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } -#line 7945 "built/tmp/cppBison.yxx.c" +#line 7806 "built/tmp/cppBison.yxx.c" break; - case 403: -#line 3108 "dtool/src/cppparser/cppBison.yxx" + case 407: /* simple_int_type: KW_INT */ +#line 3129 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } -#line 7953 "built/tmp/cppBison.yxx.c" +#line 7814 "built/tmp/cppBison.yxx.c" break; - case 404: -#line 3112 "dtool/src/cppparser/cppBison.yxx" + case 408: /* simple_int_type: KW_SHORT simple_int_type */ +#line 3133 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; } -#line 7962 "built/tmp/cppBison.yxx.c" +#line 7823 "built/tmp/cppBison.yxx.c" break; - case 405: -#line 3117 "dtool/src/cppparser/cppBison.yxx" + case 409: /* simple_int_type: KW_LONG simple_int_type */ +#line 3138 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { @@ -7971,493 +7832,501 @@ yyreduce: (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } -#line 7975 "built/tmp/cppBison.yxx.c" +#line 7836 "built/tmp/cppBison.yxx.c" break; - case 406: -#line 3126 "dtool/src/cppparser/cppBison.yxx" + case 410: /* simple_int_type: KW_UNSIGNED simple_int_type */ +#line 3147 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } -#line 7984 "built/tmp/cppBison.yxx.c" +#line 7845 "built/tmp/cppBison.yxx.c" break; - case 407: -#line 3131 "dtool/src/cppparser/cppBison.yxx" + case 411: /* simple_int_type: KW_SIGNED simple_int_type */ +#line 3152 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } -#line 7993 "built/tmp/cppBison.yxx.c" +#line 7854 "built/tmp/cppBison.yxx.c" break; - case 408: -#line 3139 "dtool/src/cppparser/cppBison.yxx" + case 412: /* simple_float_type: KW_FLOAT */ +#line 3160 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } -#line 8001 "built/tmp/cppBison.yxx.c" +#line 7862 "built/tmp/cppBison.yxx.c" break; - case 409: -#line 3143 "dtool/src/cppparser/cppBison.yxx" + case 413: /* simple_float_type: KW_DOUBLE */ +#line 3164 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } -#line 8009 "built/tmp/cppBison.yxx.c" +#line 7870 "built/tmp/cppBison.yxx.c" break; - case 410: -#line 3147 "dtool/src/cppparser/cppBison.yxx" + case 414: /* simple_float_type: KW_LONG KW_DOUBLE */ +#line 3168 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } -#line 8018 "built/tmp/cppBison.yxx.c" +#line 7879 "built/tmp/cppBison.yxx.c" break; - case 411: -#line 3155 "dtool/src/cppparser/cppBison.yxx" + case 415: /* simple_void_type: KW_VOID */ +#line 3176 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } -#line 8026 "built/tmp/cppBison.yxx.c" +#line 7887 "built/tmp/cppBison.yxx.c" break; - case 412: -#line 3164 "dtool/src/cppparser/cppBison.yxx" + case 416: /* $@20: %empty */ +#line 3185 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = false; } -#line 8034 "built/tmp/cppBison.yxx.c" +#line 7895 "built/tmp/cppBison.yxx.c" break; - case 413: -#line 3168 "dtool/src/cppparser/cppBison.yxx" + case 417: /* code: $@20 code_block */ +#line 3189 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = true; } -#line 8042 "built/tmp/cppBison.yxx.c" +#line 7903 "built/tmp/cppBison.yxx.c" break; - case 521: -#line 3212 "dtool/src/cppparser/cppBison.yxx" + case 529: /* element: KW_WHILE */ +#line 3234 "dtool/src/cppparser/cppBison.yxx" { } -#line 8049 "built/tmp/cppBison.yxx.c" +#line 7910 "built/tmp/cppBison.yxx.c" break; - case 545: -#line 3221 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 8057 "built/tmp/cppBison.yxx.c" - break; - - case 546: -#line 3225 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 8065 "built/tmp/cppBison.yxx.c" - break; - - case 547: -#line 3232 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = nullptr; -} -#line 8073 "built/tmp/cppBison.yxx.c" - break; - - case 548: -#line 3236 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 8081 "built/tmp/cppBison.yxx.c" - break; - - case 549: + case 553: /* optional_const_expr: empty */ #line 3243 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = nullptr; } -#line 8089 "built/tmp/cppBison.yxx.c" +#line 7918 "built/tmp/cppBison.yxx.c" break; - case 550: + case 554: /* optional_const_expr: const_expr */ #line 3247 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7926 "built/tmp/cppBison.yxx.c" + break; + + case 555: /* optional_const_expr_comma: empty */ +#line 3254 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 7934 "built/tmp/cppBison.yxx.c" + break; + + case 556: /* optional_const_expr_comma: const_expr_comma */ +#line 3258 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7942 "built/tmp/cppBison.yxx.c" + break; + + case 557: /* const_expr_comma: const_expr */ +#line 3265 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7950 "built/tmp/cppBison.yxx.c" + break; + + case 558: /* const_expr_comma: const_expr_comma ',' const_expr */ +#line 3269 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8097 "built/tmp/cppBison.yxx.c" +#line 7958 "built/tmp/cppBison.yxx.c" break; - case 551: -#line 3254 "dtool/src/cppparser/cppBison.yxx" + case 559: /* no_angle_bracket_const_expr: const_operand */ +#line 3276 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8105 "built/tmp/cppBison.yxx.c" +#line 7966 "built/tmp/cppBison.yxx.c" break; - case 552: -#line 3258 "dtool/src/cppparser/cppBison.yxx" + case 560: /* no_angle_bracket_const_expr: '(' full_type ')' no_angle_bracket_const_expr */ +#line 3280 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 8113 "built/tmp/cppBison.yxx.c" +#line 7974 "built/tmp/cppBison.yxx.c" break; - case 553: -#line 3262 "dtool/src/cppparser/cppBison.yxx" + case 561: /* no_angle_bracket_const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3284 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 8121 "built/tmp/cppBison.yxx.c" +#line 7982 "built/tmp/cppBison.yxx.c" break; - case 554: -#line 3266 "dtool/src/cppparser/cppBison.yxx" + case 562: /* no_angle_bracket_const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3288 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 8129 "built/tmp/cppBison.yxx.c" +#line 7990 "built/tmp/cppBison.yxx.c" break; - case 555: -#line 3270 "dtool/src/cppparser/cppBison.yxx" + case 563: /* no_angle_bracket_const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3292 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 8137 "built/tmp/cppBison.yxx.c" +#line 7998 "built/tmp/cppBison.yxx.c" break; - case 556: -#line 3274 "dtool/src/cppparser/cppBison.yxx" + case 564: /* no_angle_bracket_const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3296 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 8145 "built/tmp/cppBison.yxx.c" +#line 8006 "built/tmp/cppBison.yxx.c" break; - case 557: -#line 3278 "dtool/src/cppparser/cppBison.yxx" + case 565: /* no_angle_bracket_const_expr: KW_SIZEOF '(' full_type ')' */ +#line 3300 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 8153 "built/tmp/cppBison.yxx.c" +#line 8014 "built/tmp/cppBison.yxx.c" break; - case 558: -#line 3282 "dtool/src/cppparser/cppBison.yxx" + case 566: /* no_angle_bracket_const_expr: KW_SIZEOF no_angle_bracket_const_expr */ +#line 3304 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 8161 "built/tmp/cppBison.yxx.c" +#line 8022 "built/tmp/cppBison.yxx.c" break; - case 559: -#line 3286 "dtool/src/cppparser/cppBison.yxx" + case 567: /* no_angle_bracket_const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ +#line 3308 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 8169 "built/tmp/cppBison.yxx.c" +#line 8030 "built/tmp/cppBison.yxx.c" break; - case 560: -#line 3290 "dtool/src/cppparser/cppBison.yxx" + case 568: /* no_angle_bracket_const_expr: KW_ALIGNOF '(' full_type ')' */ +#line 3312 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 8177 "built/tmp/cppBison.yxx.c" +#line 8038 "built/tmp/cppBison.yxx.c" break; - case 561: -#line 3294 "dtool/src/cppparser/cppBison.yxx" + case 569: /* no_angle_bracket_const_expr: '!' no_angle_bracket_const_expr */ +#line 3316 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 8185 "built/tmp/cppBison.yxx.c" +#line 8046 "built/tmp/cppBison.yxx.c" break; - case 562: -#line 3298 "dtool/src/cppparser/cppBison.yxx" + case 570: /* no_angle_bracket_const_expr: '~' no_angle_bracket_const_expr */ +#line 3320 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 8193 "built/tmp/cppBison.yxx.c" +#line 8054 "built/tmp/cppBison.yxx.c" break; - case 563: -#line 3302 "dtool/src/cppparser/cppBison.yxx" + case 571: /* no_angle_bracket_const_expr: '-' no_angle_bracket_const_expr */ +#line 3324 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 8201 "built/tmp/cppBison.yxx.c" +#line 8062 "built/tmp/cppBison.yxx.c" break; - case 564: -#line 3306 "dtool/src/cppparser/cppBison.yxx" + case 572: /* no_angle_bracket_const_expr: '+' no_angle_bracket_const_expr */ +#line 3328 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 8209 "built/tmp/cppBison.yxx.c" +#line 8070 "built/tmp/cppBison.yxx.c" break; - case 565: -#line 3310 "dtool/src/cppparser/cppBison.yxx" + case 573: /* no_angle_bracket_const_expr: '*' no_angle_bracket_const_expr */ +#line 3332 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 8217 "built/tmp/cppBison.yxx.c" +#line 8078 "built/tmp/cppBison.yxx.c" break; - case 566: -#line 3314 "dtool/src/cppparser/cppBison.yxx" + case 574: /* no_angle_bracket_const_expr: '&' no_angle_bracket_const_expr */ +#line 3336 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 8225 "built/tmp/cppBison.yxx.c" +#line 8086 "built/tmp/cppBison.yxx.c" break; - case 567: -#line 3318 "dtool/src/cppparser/cppBison.yxx" + case 575: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '*' no_angle_bracket_const_expr */ +#line 3340 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8233 "built/tmp/cppBison.yxx.c" +#line 8094 "built/tmp/cppBison.yxx.c" break; - case 568: -#line 3322 "dtool/src/cppparser/cppBison.yxx" + case 576: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '/' no_angle_bracket_const_expr */ +#line 3344 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8241 "built/tmp/cppBison.yxx.c" +#line 8102 "built/tmp/cppBison.yxx.c" break; - case 569: -#line 3326 "dtool/src/cppparser/cppBison.yxx" + case 577: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '%' no_angle_bracket_const_expr */ +#line 3348 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8249 "built/tmp/cppBison.yxx.c" +#line 8110 "built/tmp/cppBison.yxx.c" break; - case 570: -#line 3330 "dtool/src/cppparser/cppBison.yxx" + case 578: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '+' no_angle_bracket_const_expr */ +#line 3352 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8257 "built/tmp/cppBison.yxx.c" +#line 8118 "built/tmp/cppBison.yxx.c" break; - case 571: -#line 3334 "dtool/src/cppparser/cppBison.yxx" + case 579: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '-' no_angle_bracket_const_expr */ +#line 3356 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8265 "built/tmp/cppBison.yxx.c" +#line 8126 "built/tmp/cppBison.yxx.c" break; - case 572: -#line 3338 "dtool/src/cppparser/cppBison.yxx" + case 580: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '|' no_angle_bracket_const_expr */ +#line 3360 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8273 "built/tmp/cppBison.yxx.c" +#line 8134 "built/tmp/cppBison.yxx.c" break; - case 573: -#line 3342 "dtool/src/cppparser/cppBison.yxx" + case 581: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '^' no_angle_bracket_const_expr */ +#line 3364 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8281 "built/tmp/cppBison.yxx.c" +#line 8142 "built/tmp/cppBison.yxx.c" break; - case 574: -#line 3346 "dtool/src/cppparser/cppBison.yxx" + case 582: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '&' no_angle_bracket_const_expr */ +#line 3368 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8289 "built/tmp/cppBison.yxx.c" +#line 8150 "built/tmp/cppBison.yxx.c" break; - case 575: -#line 3350 "dtool/src/cppparser/cppBison.yxx" + case 583: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr OROR no_angle_bracket_const_expr */ +#line 3372 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8297 "built/tmp/cppBison.yxx.c" +#line 8158 "built/tmp/cppBison.yxx.c" break; - case 576: -#line 3354 "dtool/src/cppparser/cppBison.yxx" + case 584: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr ANDAND no_angle_bracket_const_expr */ +#line 3376 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8305 "built/tmp/cppBison.yxx.c" +#line 8166 "built/tmp/cppBison.yxx.c" break; - case 577: -#line 3358 "dtool/src/cppparser/cppBison.yxx" + case 585: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr EQCOMPARE no_angle_bracket_const_expr */ +#line 3380 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8313 "built/tmp/cppBison.yxx.c" +#line 8174 "built/tmp/cppBison.yxx.c" break; - case 578: -#line 3362 "dtool/src/cppparser/cppBison.yxx" + case 586: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr NECOMPARE no_angle_bracket_const_expr */ +#line 3384 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8321 "built/tmp/cppBison.yxx.c" +#line 8182 "built/tmp/cppBison.yxx.c" break; - case 579: -#line 3366 "dtool/src/cppparser/cppBison.yxx" + case 587: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr LECOMPARE no_angle_bracket_const_expr */ +#line 3388 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8329 "built/tmp/cppBison.yxx.c" +#line 8190 "built/tmp/cppBison.yxx.c" break; - case 580: -#line 3370 "dtool/src/cppparser/cppBison.yxx" + case 588: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr GECOMPARE no_angle_bracket_const_expr */ +#line 3392 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8337 "built/tmp/cppBison.yxx.c" +#line 8198 "built/tmp/cppBison.yxx.c" break; - case 581: -#line 3374 "dtool/src/cppparser/cppBison.yxx" + case 589: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr SPACESHIP no_angle_bracket_const_expr */ +#line 3396 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(SPACESHIP, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 8206 "built/tmp/cppBison.yxx.c" + break; + + case 590: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr LSHIFT no_angle_bracket_const_expr */ +#line 3400 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8345 "built/tmp/cppBison.yxx.c" +#line 8214 "built/tmp/cppBison.yxx.c" break; - case 582: -#line 3378 "dtool/src/cppparser/cppBison.yxx" + case 591: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr RSHIFT no_angle_bracket_const_expr */ +#line 3404 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8353 "built/tmp/cppBison.yxx.c" +#line 8222 "built/tmp/cppBison.yxx.c" break; - case 583: -#line 3382 "dtool/src/cppparser/cppBison.yxx" + case 592: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '?' no_angle_bracket_const_expr ':' no_angle_bracket_const_expr */ +#line 3408 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8361 "built/tmp/cppBison.yxx.c" +#line 8230 "built/tmp/cppBison.yxx.c" break; - case 584: -#line 3386 "dtool/src/cppparser/cppBison.yxx" + case 593: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '[' const_expr ']' */ +#line 3412 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8369 "built/tmp/cppBison.yxx.c" +#line 8238 "built/tmp/cppBison.yxx.c" break; - case 585: -#line 3390 "dtool/src/cppparser/cppBison.yxx" + case 594: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '(' const_expr_comma ')' */ +#line 3416 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8377 "built/tmp/cppBison.yxx.c" +#line 8246 "built/tmp/cppBison.yxx.c" break; - case 586: -#line 3394 "dtool/src/cppparser/cppBison.yxx" + case 595: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '(' ')' */ +#line 3420 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 8385 "built/tmp/cppBison.yxx.c" +#line 8254 "built/tmp/cppBison.yxx.c" break; - case 587: -#line 3398 "dtool/src/cppparser/cppBison.yxx" + case 596: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '.' name */ +#line 3424 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer)); } -#line 8393 "built/tmp/cppBison.yxx.c" +#line 8262 "built/tmp/cppBison.yxx.c" break; - case 588: -#line 3402 "dtool/src/cppparser/cppBison.yxx" + case 597: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr POINTSAT no_angle_bracket_const_expr */ +#line 3428 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8401 "built/tmp/cppBison.yxx.c" +#line 8270 "built/tmp/cppBison.yxx.c" break; - case 589: -#line 3406 "dtool/src/cppparser/cppBison.yxx" + case 598: /* no_angle_bracket_const_expr: '(' const_expr_comma ')' */ +#line 3432 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8409 "built/tmp/cppBison.yxx.c" +#line 8278 "built/tmp/cppBison.yxx.c" break; - case 590: -#line 3414 "dtool/src/cppparser/cppBison.yxx" + case 599: /* const_expr: const_operand */ +#line 3440 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8417 "built/tmp/cppBison.yxx.c" +#line 8286 "built/tmp/cppBison.yxx.c" break; - case 591: -#line 3418 "dtool/src/cppparser/cppBison.yxx" + case 600: /* const_expr: '(' full_type ')' const_expr */ +#line 3444 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 8425 "built/tmp/cppBison.yxx.c" +#line 8294 "built/tmp/cppBison.yxx.c" break; - case 592: -#line 3422 "dtool/src/cppparser/cppBison.yxx" + case 601: /* const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3448 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 8433 "built/tmp/cppBison.yxx.c" +#line 8302 "built/tmp/cppBison.yxx.c" break; - case 593: -#line 3426 "dtool/src/cppparser/cppBison.yxx" + case 602: /* const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3452 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 8441 "built/tmp/cppBison.yxx.c" +#line 8310 "built/tmp/cppBison.yxx.c" break; - case 594: -#line 3430 "dtool/src/cppparser/cppBison.yxx" + case 603: /* const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3456 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 8449 "built/tmp/cppBison.yxx.c" +#line 8318 "built/tmp/cppBison.yxx.c" break; - case 595: -#line 3434 "dtool/src/cppparser/cppBison.yxx" + case 604: /* const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3460 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 8457 "built/tmp/cppBison.yxx.c" +#line 8326 "built/tmp/cppBison.yxx.c" break; - case 596: -#line 3438 "dtool/src/cppparser/cppBison.yxx" + case 605: /* const_expr: TYPENAME_IDENTIFIER '(' optional_const_expr_comma ')' */ +#line 3464 "dtool/src/cppparser/cppBison.yxx" { // A constructor call. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -8467,11 +8336,11 @@ yyreduce: assert(type != nullptr); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8471 "built/tmp/cppBison.yxx.c" +#line 8340 "built/tmp/cppBison.yxx.c" break; - case 597: -#line 3448 "dtool/src/cppparser/cppBison.yxx" + case 606: /* const_expr: TYPENAME_IDENTIFIER '{' optional_const_expr_comma '}' */ +#line 3474 "dtool/src/cppparser/cppBison.yxx" { // Aggregate initialization. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -8481,183 +8350,193 @@ yyreduce: assert(type != nullptr); (yyval.u.expr) = new CPPExpression(CPPExpression::aggregate_init_op(type, (yyvsp[-1].u.expr))); } -#line 8485 "built/tmp/cppBison.yxx.c" +#line 8354 "built/tmp/cppBison.yxx.c" break; - case 598: -#line 3458 "dtool/src/cppparser/cppBison.yxx" + case 607: /* const_expr: KW_INT '(' optional_const_expr_comma ')' */ +#line 3484 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8495 "built/tmp/cppBison.yxx.c" +#line 8364 "built/tmp/cppBison.yxx.c" break; - case 599: -#line 3464 "dtool/src/cppparser/cppBison.yxx" + case 608: /* const_expr: KW_CHAR '(' optional_const_expr_comma ')' */ +#line 3490 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8505 "built/tmp/cppBison.yxx.c" +#line 8374 "built/tmp/cppBison.yxx.c" break; - case 600: -#line 3470 "dtool/src/cppparser/cppBison.yxx" + case 609: /* const_expr: KW_WCHAR_T '(' optional_const_expr_comma ')' */ +#line 3496 "dtool/src/cppparser/cppBison.yxx" { 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 8515 "built/tmp/cppBison.yxx.c" +#line 8384 "built/tmp/cppBison.yxx.c" break; - case 601: -#line 3476 "dtool/src/cppparser/cppBison.yxx" + case 610: /* const_expr: KW_CHAR8_T '(' optional_const_expr_comma ')' */ +#line 3502 "dtool/src/cppparser/cppBison.yxx" +{ + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char8_t)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} +#line 8394 "built/tmp/cppBison.yxx.c" + break; + + case 611: /* const_expr: KW_CHAR16_T '(' optional_const_expr_comma ')' */ +#line 3508 "dtool/src/cppparser/cppBison.yxx" { 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 8525 "built/tmp/cppBison.yxx.c" +#line 8404 "built/tmp/cppBison.yxx.c" break; - case 602: -#line 3482 "dtool/src/cppparser/cppBison.yxx" + case 612: /* const_expr: KW_CHAR32_T '(' optional_const_expr_comma ')' */ +#line 3514 "dtool/src/cppparser/cppBison.yxx" { 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 8535 "built/tmp/cppBison.yxx.c" +#line 8414 "built/tmp/cppBison.yxx.c" break; - case 603: -#line 3488 "dtool/src/cppparser/cppBison.yxx" + case 613: /* const_expr: KW_BOOL '(' optional_const_expr_comma ')' */ +#line 3520 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8545 "built/tmp/cppBison.yxx.c" +#line 8424 "built/tmp/cppBison.yxx.c" break; - case 604: -#line 3494 "dtool/src/cppparser/cppBison.yxx" + case 614: /* const_expr: KW_SHORT '(' optional_const_expr_comma ')' */ +#line 3526 "dtool/src/cppparser/cppBison.yxx" { 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 8556 "built/tmp/cppBison.yxx.c" +#line 8435 "built/tmp/cppBison.yxx.c" break; - case 605: -#line 3501 "dtool/src/cppparser/cppBison.yxx" + case 615: /* const_expr: KW_LONG '(' optional_const_expr_comma ')' */ +#line 3533 "dtool/src/cppparser/cppBison.yxx" { 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 8567 "built/tmp/cppBison.yxx.c" +#line 8446 "built/tmp/cppBison.yxx.c" break; - case 606: -#line 3508 "dtool/src/cppparser/cppBison.yxx" + case 616: /* const_expr: KW_UNSIGNED '(' optional_const_expr_comma ')' */ +#line 3540 "dtool/src/cppparser/cppBison.yxx" { 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 8578 "built/tmp/cppBison.yxx.c" +#line 8457 "built/tmp/cppBison.yxx.c" break; - case 607: -#line 3515 "dtool/src/cppparser/cppBison.yxx" + case 617: /* const_expr: KW_SIGNED '(' optional_const_expr_comma ')' */ +#line 3547 "dtool/src/cppparser/cppBison.yxx" { 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 8589 "built/tmp/cppBison.yxx.c" +#line 8468 "built/tmp/cppBison.yxx.c" break; - case 608: -#line 3522 "dtool/src/cppparser/cppBison.yxx" + case 618: /* const_expr: KW_FLOAT '(' optional_const_expr_comma ')' */ +#line 3554 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8599 "built/tmp/cppBison.yxx.c" +#line 8478 "built/tmp/cppBison.yxx.c" break; - case 609: -#line 3528 "dtool/src/cppparser/cppBison.yxx" + case 619: /* const_expr: KW_DOUBLE '(' optional_const_expr_comma ')' */ +#line 3560 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8609 "built/tmp/cppBison.yxx.c" +#line 8488 "built/tmp/cppBison.yxx.c" break; - case 610: -#line 3534 "dtool/src/cppparser/cppBison.yxx" + case 620: /* const_expr: KW_SIZEOF '(' full_type ')' */ +#line 3566 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 8617 "built/tmp/cppBison.yxx.c" +#line 8496 "built/tmp/cppBison.yxx.c" break; - case 611: -#line 3538 "dtool/src/cppparser/cppBison.yxx" + case 621: /* const_expr: KW_SIZEOF const_expr */ +#line 3570 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 8625 "built/tmp/cppBison.yxx.c" +#line 8504 "built/tmp/cppBison.yxx.c" break; - case 612: -#line 3542 "dtool/src/cppparser/cppBison.yxx" + case 622: /* const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ +#line 3574 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 8633 "built/tmp/cppBison.yxx.c" +#line 8512 "built/tmp/cppBison.yxx.c" break; - case 613: -#line 3546 "dtool/src/cppparser/cppBison.yxx" + case 623: /* const_expr: KW_ALIGNOF '(' full_type ')' */ +#line 3578 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 8641 "built/tmp/cppBison.yxx.c" +#line 8520 "built/tmp/cppBison.yxx.c" break; - case 614: -#line 3550 "dtool/src/cppparser/cppBison.yxx" + case 624: /* const_expr: KW_NEW predefined_type */ +#line 3582 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } -#line 8649 "built/tmp/cppBison.yxx.c" +#line 8528 "built/tmp/cppBison.yxx.c" break; - case 615: -#line 3554 "dtool/src/cppparser/cppBison.yxx" + case 625: /* const_expr: KW_NEW predefined_type '(' optional_const_expr_comma ')' */ +#line 3586 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } -#line 8657 "built/tmp/cppBison.yxx.c" +#line 8536 "built/tmp/cppBison.yxx.c" break; - case 616: -#line 3558 "dtool/src/cppparser/cppBison.yxx" + case 626: /* const_expr: KW_TYPEID '(' full_type ')' */ +#line 3590 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -8668,11 +8547,11 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 8672 "built/tmp/cppBison.yxx.c" +#line 8551 "built/tmp/cppBison.yxx.c" break; - case 617: -#line 3569 "dtool/src/cppparser/cppBison.yxx" + case 627: /* const_expr: KW_TYPEID '(' const_expr ')' */ +#line 3601 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -8683,604 +8562,612 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 8687 "built/tmp/cppBison.yxx.c" +#line 8566 "built/tmp/cppBison.yxx.c" break; - case 618: -#line 3580 "dtool/src/cppparser/cppBison.yxx" + case 628: /* const_expr: '!' const_expr */ +#line 3612 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 8695 "built/tmp/cppBison.yxx.c" +#line 8574 "built/tmp/cppBison.yxx.c" break; - case 619: -#line 3584 "dtool/src/cppparser/cppBison.yxx" + case 629: /* const_expr: '~' const_expr */ +#line 3616 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 8703 "built/tmp/cppBison.yxx.c" +#line 8582 "built/tmp/cppBison.yxx.c" break; - case 620: -#line 3588 "dtool/src/cppparser/cppBison.yxx" + case 630: /* const_expr: '-' const_expr */ +#line 3620 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 8711 "built/tmp/cppBison.yxx.c" +#line 8590 "built/tmp/cppBison.yxx.c" break; - case 621: -#line 3592 "dtool/src/cppparser/cppBison.yxx" + case 631: /* const_expr: '+' const_expr */ +#line 3624 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 8719 "built/tmp/cppBison.yxx.c" +#line 8598 "built/tmp/cppBison.yxx.c" break; - case 622: -#line 3596 "dtool/src/cppparser/cppBison.yxx" + case 632: /* const_expr: '*' const_expr */ +#line 3628 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 8727 "built/tmp/cppBison.yxx.c" +#line 8606 "built/tmp/cppBison.yxx.c" break; - case 623: -#line 3600 "dtool/src/cppparser/cppBison.yxx" + case 633: /* const_expr: '&' const_expr */ +#line 3632 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 8735 "built/tmp/cppBison.yxx.c" +#line 8614 "built/tmp/cppBison.yxx.c" break; - case 624: -#line 3604 "dtool/src/cppparser/cppBison.yxx" + case 634: /* const_expr: const_expr '*' const_expr */ +#line 3636 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8743 "built/tmp/cppBison.yxx.c" +#line 8622 "built/tmp/cppBison.yxx.c" break; - case 625: -#line 3608 "dtool/src/cppparser/cppBison.yxx" + case 635: /* const_expr: const_expr '/' const_expr */ +#line 3640 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8751 "built/tmp/cppBison.yxx.c" +#line 8630 "built/tmp/cppBison.yxx.c" break; - case 626: -#line 3612 "dtool/src/cppparser/cppBison.yxx" + case 636: /* const_expr: const_expr '%' const_expr */ +#line 3644 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8759 "built/tmp/cppBison.yxx.c" +#line 8638 "built/tmp/cppBison.yxx.c" break; - case 627: -#line 3616 "dtool/src/cppparser/cppBison.yxx" + case 637: /* const_expr: const_expr '+' const_expr */ +#line 3648 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8767 "built/tmp/cppBison.yxx.c" +#line 8646 "built/tmp/cppBison.yxx.c" break; - case 628: -#line 3620 "dtool/src/cppparser/cppBison.yxx" + case 638: /* const_expr: const_expr '-' const_expr */ +#line 3652 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8775 "built/tmp/cppBison.yxx.c" +#line 8654 "built/tmp/cppBison.yxx.c" break; - case 629: -#line 3624 "dtool/src/cppparser/cppBison.yxx" + case 639: /* const_expr: const_expr '|' const_expr */ +#line 3656 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8783 "built/tmp/cppBison.yxx.c" +#line 8662 "built/tmp/cppBison.yxx.c" break; - case 630: -#line 3628 "dtool/src/cppparser/cppBison.yxx" + case 640: /* const_expr: const_expr '^' const_expr */ +#line 3660 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8791 "built/tmp/cppBison.yxx.c" +#line 8670 "built/tmp/cppBison.yxx.c" break; - case 631: -#line 3632 "dtool/src/cppparser/cppBison.yxx" + case 641: /* const_expr: const_expr '&' const_expr */ +#line 3664 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8799 "built/tmp/cppBison.yxx.c" +#line 8678 "built/tmp/cppBison.yxx.c" break; - case 632: -#line 3636 "dtool/src/cppparser/cppBison.yxx" + case 642: /* const_expr: const_expr OROR const_expr */ +#line 3668 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8807 "built/tmp/cppBison.yxx.c" +#line 8686 "built/tmp/cppBison.yxx.c" break; - case 633: -#line 3640 "dtool/src/cppparser/cppBison.yxx" + case 643: /* const_expr: const_expr ANDAND const_expr */ +#line 3672 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8815 "built/tmp/cppBison.yxx.c" +#line 8694 "built/tmp/cppBison.yxx.c" break; - case 634: -#line 3644 "dtool/src/cppparser/cppBison.yxx" + case 644: /* const_expr: const_expr EQCOMPARE const_expr */ +#line 3676 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8823 "built/tmp/cppBison.yxx.c" +#line 8702 "built/tmp/cppBison.yxx.c" break; - case 635: -#line 3648 "dtool/src/cppparser/cppBison.yxx" + case 645: /* const_expr: const_expr NECOMPARE const_expr */ +#line 3680 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8831 "built/tmp/cppBison.yxx.c" +#line 8710 "built/tmp/cppBison.yxx.c" break; - case 636: -#line 3652 "dtool/src/cppparser/cppBison.yxx" + case 646: /* const_expr: const_expr LECOMPARE const_expr */ +#line 3684 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8839 "built/tmp/cppBison.yxx.c" +#line 8718 "built/tmp/cppBison.yxx.c" break; - case 637: -#line 3656 "dtool/src/cppparser/cppBison.yxx" + case 647: /* const_expr: const_expr GECOMPARE const_expr */ +#line 3688 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8847 "built/tmp/cppBison.yxx.c" +#line 8726 "built/tmp/cppBison.yxx.c" break; - case 638: -#line 3660 "dtool/src/cppparser/cppBison.yxx" + case 648: /* const_expr: const_expr SPACESHIP const_expr */ +#line 3692 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(SPACESHIP, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 8734 "built/tmp/cppBison.yxx.c" + break; + + case 649: /* const_expr: const_expr '<' const_expr */ +#line 3696 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8855 "built/tmp/cppBison.yxx.c" +#line 8742 "built/tmp/cppBison.yxx.c" break; - case 639: -#line 3664 "dtool/src/cppparser/cppBison.yxx" + case 650: /* const_expr: const_expr '>' const_expr */ +#line 3700 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8863 "built/tmp/cppBison.yxx.c" +#line 8750 "built/tmp/cppBison.yxx.c" break; - case 640: -#line 3668 "dtool/src/cppparser/cppBison.yxx" + case 651: /* const_expr: const_expr LSHIFT const_expr */ +#line 3704 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8871 "built/tmp/cppBison.yxx.c" +#line 8758 "built/tmp/cppBison.yxx.c" break; - case 641: -#line 3672 "dtool/src/cppparser/cppBison.yxx" + case 652: /* const_expr: const_expr RSHIFT const_expr */ +#line 3708 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8879 "built/tmp/cppBison.yxx.c" +#line 8766 "built/tmp/cppBison.yxx.c" break; - case 642: -#line 3676 "dtool/src/cppparser/cppBison.yxx" + case 653: /* const_expr: const_expr '?' const_expr ':' const_expr */ +#line 3712 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8887 "built/tmp/cppBison.yxx.c" +#line 8774 "built/tmp/cppBison.yxx.c" break; - case 643: -#line 3680 "dtool/src/cppparser/cppBison.yxx" + case 654: /* const_expr: const_expr '[' const_expr ']' */ +#line 3716 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8895 "built/tmp/cppBison.yxx.c" +#line 8782 "built/tmp/cppBison.yxx.c" break; - case 644: -#line 3684 "dtool/src/cppparser/cppBison.yxx" + case 655: /* const_expr: const_expr '(' const_expr_comma ')' */ +#line 3720 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8903 "built/tmp/cppBison.yxx.c" +#line 8790 "built/tmp/cppBison.yxx.c" break; - case 645: -#line 3688 "dtool/src/cppparser/cppBison.yxx" + case 656: /* const_expr: const_expr '(' ')' */ +#line 3724 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 8911 "built/tmp/cppBison.yxx.c" +#line 8798 "built/tmp/cppBison.yxx.c" break; - case 646: -#line 3692 "dtool/src/cppparser/cppBison.yxx" + case 657: /* const_expr: const_expr '.' name */ +#line 3728 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer)); } -#line 8919 "built/tmp/cppBison.yxx.c" +#line 8806 "built/tmp/cppBison.yxx.c" break; - case 647: -#line 3696 "dtool/src/cppparser/cppBison.yxx" + case 658: /* const_expr: const_expr POINTSAT const_expr */ +#line 3732 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8927 "built/tmp/cppBison.yxx.c" +#line 8814 "built/tmp/cppBison.yxx.c" break; - case 648: -#line 3700 "dtool/src/cppparser/cppBison.yxx" + case 659: /* const_expr: '(' const_expr_comma ')' */ +#line 3736 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8935 "built/tmp/cppBison.yxx.c" +#line 8822 "built/tmp/cppBison.yxx.c" break; - case 649: -#line 3707 "dtool/src/cppparser/cppBison.yxx" + case 660: /* const_operand: INTEGER */ +#line 3743 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8943 "built/tmp/cppBison.yxx.c" +#line 8830 "built/tmp/cppBison.yxx.c" break; - case 650: -#line 3711 "dtool/src/cppparser/cppBison.yxx" + case 661: /* const_operand: KW_TRUE */ +#line 3747 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } -#line 8951 "built/tmp/cppBison.yxx.c" +#line 8838 "built/tmp/cppBison.yxx.c" break; - case 651: -#line 3715 "dtool/src/cppparser/cppBison.yxx" + case 662: /* const_operand: KW_FALSE */ +#line 3751 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } -#line 8959 "built/tmp/cppBison.yxx.c" +#line 8846 "built/tmp/cppBison.yxx.c" break; - case 652: -#line 3719 "dtool/src/cppparser/cppBison.yxx" + case 663: /* const_operand: CHAR_TOK */ +#line 3755 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8967 "built/tmp/cppBison.yxx.c" +#line 8854 "built/tmp/cppBison.yxx.c" break; - case 653: -#line 3723 "dtool/src/cppparser/cppBison.yxx" + case 664: /* const_operand: REAL */ +#line 3759 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } -#line 8975 "built/tmp/cppBison.yxx.c" +#line 8862 "built/tmp/cppBison.yxx.c" break; - case 654: -#line 3727 "dtool/src/cppparser/cppBison.yxx" + case 665: /* const_operand: string_literal */ +#line 3763 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8983 "built/tmp/cppBison.yxx.c" +#line 8870 "built/tmp/cppBison.yxx.c" break; - case 655: -#line 3731 "dtool/src/cppparser/cppBison.yxx" + case 666: /* const_operand: CUSTOM_LITERAL */ +#line 3767 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8991 "built/tmp/cppBison.yxx.c" +#line 8878 "built/tmp/cppBison.yxx.c" break; - case 656: -#line 3735 "dtool/src/cppparser/cppBison.yxx" + case 667: /* const_operand: IDENTIFIER */ +#line 3771 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } -#line 8999 "built/tmp/cppBison.yxx.c" +#line 8886 "built/tmp/cppBison.yxx.c" break; - case 657: -#line 3739 "dtool/src/cppparser/cppBison.yxx" + case 668: /* const_operand: KW_FINAL */ +#line 3775 "dtool/src/cppparser/cppBison.yxx" { // 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 9009 "built/tmp/cppBison.yxx.c" +#line 8896 "built/tmp/cppBison.yxx.c" break; - case 658: -#line 3745 "dtool/src/cppparser/cppBison.yxx" + case 669: /* const_operand: KW_OVERRIDE */ +#line 3781 "dtool/src/cppparser/cppBison.yxx" { // 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 9019 "built/tmp/cppBison.yxx.c" +#line 8906 "built/tmp/cppBison.yxx.c" break; - case 659: -#line 3751 "dtool/src/cppparser/cppBison.yxx" + case 670: /* const_operand: KW_NULLPTR */ +#line 3787 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 9027 "built/tmp/cppBison.yxx.c" +#line 8914 "built/tmp/cppBison.yxx.c" break; - case 660: -#line 3755 "dtool/src/cppparser/cppBison.yxx" + case 671: /* const_operand: '[' capture_list ']' function_post maybe_trailing_return_type '{' code '}' */ +#line 3791 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[-6].u.closure_type)->_flags = (yyvsp[-4].u.integer); (yyvsp[-6].u.closure_type)->_return_type = (yyvsp[-3].u.type); (yyval.u.expr) = new CPPExpression(CPPExpression::lambda((yyvsp[-6].u.closure_type))); } -#line 9037 "built/tmp/cppBison.yxx.c" +#line 8924 "built/tmp/cppBison.yxx.c" break; - case 661: -#line 3761 "dtool/src/cppparser/cppBison.yxx" + case 672: /* const_operand: '[' capture_list ']' '(' function_parameter_list ')' function_post maybe_trailing_return_type '{' code '}' */ +#line 3797 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[-9].u.closure_type)->_parameters = (yyvsp[-6].u.param_list); (yyvsp[-9].u.closure_type)->_flags = (yyvsp[-4].u.integer); (yyvsp[-9].u.closure_type)->_return_type = (yyvsp[-3].u.type); (yyval.u.expr) = new CPPExpression(CPPExpression::lambda((yyvsp[-9].u.closure_type))); } -#line 9048 "built/tmp/cppBison.yxx.c" +#line 8935 "built/tmp/cppBison.yxx.c" break; - case 662: -#line 3768 "dtool/src/cppparser/cppBison.yxx" + case 673: /* const_operand: KW_HAS_VIRTUAL_DESTRUCTOR '(' full_type ')' */ +#line 3804 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_HAS_VIRTUAL_DESTRUCTOR, (yyvsp[-1].u.type))); } -#line 9056 "built/tmp/cppBison.yxx.c" +#line 8943 "built/tmp/cppBison.yxx.c" break; - case 663: -#line 3772 "dtool/src/cppparser/cppBison.yxx" + case 674: /* const_operand: KW_IS_ABSTRACT '(' full_type ')' */ +#line 3808 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_ABSTRACT, (yyvsp[-1].u.type))); } -#line 9064 "built/tmp/cppBison.yxx.c" +#line 8951 "built/tmp/cppBison.yxx.c" break; - case 664: -#line 3776 "dtool/src/cppparser/cppBison.yxx" + case 675: /* const_operand: KW_IS_BASE_OF '(' full_type ',' full_type ')' */ +#line 3812 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CLASS, (yyvsp[-3].u.type), (yyvsp[-1].u.type))); } -#line 9072 "built/tmp/cppBison.yxx.c" +#line 8959 "built/tmp/cppBison.yxx.c" break; - case 665: -#line 3780 "dtool/src/cppparser/cppBison.yxx" + case 676: /* const_operand: KW_IS_CLASS '(' full_type ')' */ +#line 3816 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CLASS, (yyvsp[-1].u.type))); } -#line 9080 "built/tmp/cppBison.yxx.c" +#line 8967 "built/tmp/cppBison.yxx.c" break; - case 666: -#line 3784 "dtool/src/cppparser/cppBison.yxx" + case 677: /* const_operand: KW_IS_CONSTRUCTIBLE '(' full_type ')' */ +#line 3820 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONSTRUCTIBLE, (yyvsp[-1].u.type))); } -#line 9088 "built/tmp/cppBison.yxx.c" +#line 8975 "built/tmp/cppBison.yxx.c" break; - case 667: -#line 3788 "dtool/src/cppparser/cppBison.yxx" + case 678: /* const_operand: KW_IS_CONSTRUCTIBLE '(' full_type ',' full_type ')' */ +#line 3824 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONSTRUCTIBLE, (yyvsp[-3].u.type), (yyvsp[-1].u.type))); } -#line 9096 "built/tmp/cppBison.yxx.c" +#line 8983 "built/tmp/cppBison.yxx.c" break; - case 668: -#line 3792 "dtool/src/cppparser/cppBison.yxx" + case 679: /* const_operand: KW_IS_CONVERTIBLE_TO '(' full_type ',' full_type ')' */ +#line 3828 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONVERTIBLE_TO, (yyvsp[-3].u.type), (yyvsp[-1].u.type))); } -#line 9104 "built/tmp/cppBison.yxx.c" +#line 8991 "built/tmp/cppBison.yxx.c" break; - case 669: -#line 3796 "dtool/src/cppparser/cppBison.yxx" + case 680: /* const_operand: KW_IS_DESTRUCTIBLE '(' full_type ')' */ +#line 3832 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_DESTRUCTIBLE, (yyvsp[-1].u.type))); } -#line 9112 "built/tmp/cppBison.yxx.c" +#line 8999 "built/tmp/cppBison.yxx.c" break; - case 670: -#line 3800 "dtool/src/cppparser/cppBison.yxx" + case 681: /* const_operand: KW_IS_EMPTY '(' full_type ')' */ +#line 3836 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_EMPTY, (yyvsp[-1].u.type))); } -#line 9120 "built/tmp/cppBison.yxx.c" +#line 9007 "built/tmp/cppBison.yxx.c" break; - case 671: -#line 3804 "dtool/src/cppparser/cppBison.yxx" + case 682: /* const_operand: KW_IS_ENUM '(' full_type ')' */ +#line 3840 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_ENUM, (yyvsp[-1].u.type))); } -#line 9128 "built/tmp/cppBison.yxx.c" +#line 9015 "built/tmp/cppBison.yxx.c" break; - case 672: -#line 3808 "dtool/src/cppparser/cppBison.yxx" + case 683: /* const_operand: KW_IS_FINAL '(' full_type ')' */ +#line 3844 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_FINAL, (yyvsp[-1].u.type))); } -#line 9136 "built/tmp/cppBison.yxx.c" +#line 9023 "built/tmp/cppBison.yxx.c" break; - case 673: -#line 3812 "dtool/src/cppparser/cppBison.yxx" + case 684: /* const_operand: KW_IS_FUNDAMENTAL '(' full_type ')' */ +#line 3848 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_FUNDAMENTAL, (yyvsp[-1].u.type))); } -#line 9144 "built/tmp/cppBison.yxx.c" +#line 9031 "built/tmp/cppBison.yxx.c" break; - case 674: -#line 3816 "dtool/src/cppparser/cppBison.yxx" + case 685: /* const_operand: KW_IS_POD '(' full_type ')' */ +#line 3852 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_POD, (yyvsp[-1].u.type))); } -#line 9152 "built/tmp/cppBison.yxx.c" +#line 9039 "built/tmp/cppBison.yxx.c" break; - case 675: -#line 3820 "dtool/src/cppparser/cppBison.yxx" + case 686: /* const_operand: KW_IS_POLYMORPHIC '(' full_type ')' */ +#line 3856 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_POLYMORPHIC, (yyvsp[-1].u.type))); } -#line 9160 "built/tmp/cppBison.yxx.c" +#line 9047 "built/tmp/cppBison.yxx.c" break; - case 676: -#line 3824 "dtool/src/cppparser/cppBison.yxx" + case 687: /* const_operand: KW_IS_STANDARD_LAYOUT '(' full_type ')' */ +#line 3860 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_STANDARD_LAYOUT, (yyvsp[-1].u.type))); } -#line 9168 "built/tmp/cppBison.yxx.c" +#line 9055 "built/tmp/cppBison.yxx.c" break; - case 677: -#line 3828 "dtool/src/cppparser/cppBison.yxx" + case 688: /* const_operand: KW_IS_TRIVIAL '(' full_type ')' */ +#line 3864 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_TRIVIAL, (yyvsp[-1].u.type))); } -#line 9176 "built/tmp/cppBison.yxx.c" +#line 9063 "built/tmp/cppBison.yxx.c" break; - case 678: -#line 3832 "dtool/src/cppparser/cppBison.yxx" + case 689: /* const_operand: KW_IS_UNION '(' full_type ')' */ +#line 3868 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_UNION, (yyvsp[-1].u.type))); } -#line 9184 "built/tmp/cppBison.yxx.c" +#line 9071 "built/tmp/cppBison.yxx.c" break; - case 679: -#line 3846 "dtool/src/cppparser/cppBison.yxx" + case 690: /* formal_const_expr: formal_const_operand */ +#line 3882 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9192 "built/tmp/cppBison.yxx.c" +#line 9079 "built/tmp/cppBison.yxx.c" break; - case 680: -#line 3850 "dtool/src/cppparser/cppBison.yxx" + case 691: /* formal_const_expr: '(' full_type ')' const_expr */ +#line 3886 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 9200 "built/tmp/cppBison.yxx.c" +#line 9087 "built/tmp/cppBison.yxx.c" break; - case 681: -#line 3854 "dtool/src/cppparser/cppBison.yxx" + case 692: /* formal_const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3890 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 9208 "built/tmp/cppBison.yxx.c" +#line 9095 "built/tmp/cppBison.yxx.c" break; - case 682: -#line 3858 "dtool/src/cppparser/cppBison.yxx" + case 693: /* formal_const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3894 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 9216 "built/tmp/cppBison.yxx.c" +#line 9103 "built/tmp/cppBison.yxx.c" break; - case 683: -#line 3862 "dtool/src/cppparser/cppBison.yxx" + case 694: /* formal_const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3898 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 9224 "built/tmp/cppBison.yxx.c" +#line 9111 "built/tmp/cppBison.yxx.c" break; - case 684: -#line 3866 "dtool/src/cppparser/cppBison.yxx" + case 695: /* formal_const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3902 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 9232 "built/tmp/cppBison.yxx.c" +#line 9119 "built/tmp/cppBison.yxx.c" break; - case 685: -#line 3870 "dtool/src/cppparser/cppBison.yxx" + case 696: /* formal_const_expr: KW_SIZEOF '(' full_type ')' */ +#line 3906 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 9240 "built/tmp/cppBison.yxx.c" +#line 9127 "built/tmp/cppBison.yxx.c" break; - case 686: -#line 3874 "dtool/src/cppparser/cppBison.yxx" + case 697: /* formal_const_expr: KW_SIZEOF formal_const_expr */ +#line 3910 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 9248 "built/tmp/cppBison.yxx.c" +#line 9135 "built/tmp/cppBison.yxx.c" break; - case 687: -#line 3878 "dtool/src/cppparser/cppBison.yxx" + case 698: /* formal_const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ +#line 3914 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 9256 "built/tmp/cppBison.yxx.c" +#line 9143 "built/tmp/cppBison.yxx.c" break; - case 688: -#line 3882 "dtool/src/cppparser/cppBison.yxx" + case 699: /* formal_const_expr: KW_ALIGNOF '(' full_type ')' */ +#line 3918 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 9264 "built/tmp/cppBison.yxx.c" +#line 9151 "built/tmp/cppBison.yxx.c" break; - case 689: -#line 3886 "dtool/src/cppparser/cppBison.yxx" + case 700: /* formal_const_expr: KW_NEW predefined_type */ +#line 3922 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } -#line 9272 "built/tmp/cppBison.yxx.c" +#line 9159 "built/tmp/cppBison.yxx.c" break; - case 690: -#line 3890 "dtool/src/cppparser/cppBison.yxx" + case 701: /* formal_const_expr: KW_NEW predefined_type '(' optional_const_expr_comma ')' */ +#line 3926 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } -#line 9280 "built/tmp/cppBison.yxx.c" +#line 9167 "built/tmp/cppBison.yxx.c" break; - case 691: -#line 3894 "dtool/src/cppparser/cppBison.yxx" + case 702: /* formal_const_expr: KW_TYPEID '(' full_type ')' */ +#line 3930 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -9291,11 +9178,11 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 9295 "built/tmp/cppBison.yxx.c" +#line 9182 "built/tmp/cppBison.yxx.c" break; - case 692: -#line 3905 "dtool/src/cppparser/cppBison.yxx" + case 703: /* formal_const_expr: KW_TYPEID '(' const_expr ')' */ +#line 3941 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -9306,409 +9193,417 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 9310 "built/tmp/cppBison.yxx.c" +#line 9197 "built/tmp/cppBison.yxx.c" break; - case 693: -#line 3916 "dtool/src/cppparser/cppBison.yxx" + case 704: /* formal_const_expr: '!' const_expr */ +#line 3952 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 9318 "built/tmp/cppBison.yxx.c" +#line 9205 "built/tmp/cppBison.yxx.c" break; - case 694: -#line 3920 "dtool/src/cppparser/cppBison.yxx" + case 705: /* formal_const_expr: '~' const_expr */ +#line 3956 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 9326 "built/tmp/cppBison.yxx.c" +#line 9213 "built/tmp/cppBison.yxx.c" break; - case 695: -#line 3924 "dtool/src/cppparser/cppBison.yxx" + case 706: /* formal_const_expr: '-' const_expr */ +#line 3960 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 9334 "built/tmp/cppBison.yxx.c" +#line 9221 "built/tmp/cppBison.yxx.c" break; - case 696: -#line 3928 "dtool/src/cppparser/cppBison.yxx" + case 707: /* formal_const_expr: '+' const_expr */ +#line 3964 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 9342 "built/tmp/cppBison.yxx.c" +#line 9229 "built/tmp/cppBison.yxx.c" break; - case 697: -#line 3932 "dtool/src/cppparser/cppBison.yxx" + case 708: /* formal_const_expr: '&' const_expr */ +#line 3968 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 9350 "built/tmp/cppBison.yxx.c" +#line 9237 "built/tmp/cppBison.yxx.c" break; - case 698: -#line 3936 "dtool/src/cppparser/cppBison.yxx" + case 709: /* formal_const_expr: formal_const_expr '*' const_expr */ +#line 3972 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9358 "built/tmp/cppBison.yxx.c" +#line 9245 "built/tmp/cppBison.yxx.c" break; - case 699: -#line 3940 "dtool/src/cppparser/cppBison.yxx" + case 710: /* formal_const_expr: formal_const_expr '/' const_expr */ +#line 3976 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9366 "built/tmp/cppBison.yxx.c" +#line 9253 "built/tmp/cppBison.yxx.c" break; - case 700: -#line 3944 "dtool/src/cppparser/cppBison.yxx" + case 711: /* formal_const_expr: formal_const_expr '%' const_expr */ +#line 3980 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9374 "built/tmp/cppBison.yxx.c" +#line 9261 "built/tmp/cppBison.yxx.c" break; - case 701: -#line 3948 "dtool/src/cppparser/cppBison.yxx" + case 712: /* formal_const_expr: formal_const_expr '+' const_expr */ +#line 3984 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9382 "built/tmp/cppBison.yxx.c" +#line 9269 "built/tmp/cppBison.yxx.c" break; - case 702: -#line 3952 "dtool/src/cppparser/cppBison.yxx" + case 713: /* formal_const_expr: formal_const_expr '-' const_expr */ +#line 3988 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9390 "built/tmp/cppBison.yxx.c" +#line 9277 "built/tmp/cppBison.yxx.c" break; - case 703: -#line 3956 "dtool/src/cppparser/cppBison.yxx" + case 714: /* formal_const_expr: formal_const_expr '|' const_expr */ +#line 3992 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9398 "built/tmp/cppBison.yxx.c" +#line 9285 "built/tmp/cppBison.yxx.c" break; - case 704: -#line 3960 "dtool/src/cppparser/cppBison.yxx" + case 715: /* formal_const_expr: formal_const_expr '^' const_expr */ +#line 3996 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9406 "built/tmp/cppBison.yxx.c" +#line 9293 "built/tmp/cppBison.yxx.c" break; - case 705: -#line 3964 "dtool/src/cppparser/cppBison.yxx" + case 716: /* formal_const_expr: formal_const_expr '&' const_expr */ +#line 4000 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9414 "built/tmp/cppBison.yxx.c" +#line 9301 "built/tmp/cppBison.yxx.c" break; - case 706: -#line 3968 "dtool/src/cppparser/cppBison.yxx" + case 717: /* formal_const_expr: formal_const_expr OROR const_expr */ +#line 4004 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9422 "built/tmp/cppBison.yxx.c" +#line 9309 "built/tmp/cppBison.yxx.c" break; - case 707: -#line 3972 "dtool/src/cppparser/cppBison.yxx" + case 718: /* formal_const_expr: formal_const_expr ANDAND const_expr */ +#line 4008 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9430 "built/tmp/cppBison.yxx.c" +#line 9317 "built/tmp/cppBison.yxx.c" break; - case 708: -#line 3976 "dtool/src/cppparser/cppBison.yxx" + case 719: /* formal_const_expr: formal_const_expr EQCOMPARE const_expr */ +#line 4012 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9438 "built/tmp/cppBison.yxx.c" +#line 9325 "built/tmp/cppBison.yxx.c" break; - case 709: -#line 3980 "dtool/src/cppparser/cppBison.yxx" + case 720: /* formal_const_expr: formal_const_expr NECOMPARE const_expr */ +#line 4016 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9446 "built/tmp/cppBison.yxx.c" +#line 9333 "built/tmp/cppBison.yxx.c" break; - case 710: -#line 3984 "dtool/src/cppparser/cppBison.yxx" + case 721: /* formal_const_expr: formal_const_expr LECOMPARE const_expr */ +#line 4020 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9454 "built/tmp/cppBison.yxx.c" +#line 9341 "built/tmp/cppBison.yxx.c" break; - case 711: -#line 3988 "dtool/src/cppparser/cppBison.yxx" + case 722: /* formal_const_expr: formal_const_expr GECOMPARE const_expr */ +#line 4024 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9462 "built/tmp/cppBison.yxx.c" +#line 9349 "built/tmp/cppBison.yxx.c" break; - case 712: -#line 3992 "dtool/src/cppparser/cppBison.yxx" + case 723: /* formal_const_expr: formal_const_expr SPACESHIP const_expr */ +#line 4028 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(SPACESHIP, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 9357 "built/tmp/cppBison.yxx.c" + break; + + case 724: /* formal_const_expr: formal_const_expr '<' const_expr */ +#line 4032 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9470 "built/tmp/cppBison.yxx.c" +#line 9365 "built/tmp/cppBison.yxx.c" break; - case 713: -#line 3996 "dtool/src/cppparser/cppBison.yxx" + case 725: /* formal_const_expr: formal_const_expr '>' const_expr */ +#line 4036 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9478 "built/tmp/cppBison.yxx.c" +#line 9373 "built/tmp/cppBison.yxx.c" break; - case 714: -#line 4000 "dtool/src/cppparser/cppBison.yxx" + case 726: /* formal_const_expr: formal_const_expr LSHIFT const_expr */ +#line 4040 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9486 "built/tmp/cppBison.yxx.c" +#line 9381 "built/tmp/cppBison.yxx.c" break; - case 715: -#line 4004 "dtool/src/cppparser/cppBison.yxx" + case 727: /* formal_const_expr: formal_const_expr RSHIFT const_expr */ +#line 4044 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9494 "built/tmp/cppBison.yxx.c" +#line 9389 "built/tmp/cppBison.yxx.c" break; - case 716: -#line 4008 "dtool/src/cppparser/cppBison.yxx" + case 728: /* formal_const_expr: formal_const_expr '?' const_expr ':' const_expr */ +#line 4048 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9502 "built/tmp/cppBison.yxx.c" +#line 9397 "built/tmp/cppBison.yxx.c" break; - case 717: -#line 4012 "dtool/src/cppparser/cppBison.yxx" + case 729: /* formal_const_expr: formal_const_expr '[' const_expr ']' */ +#line 4052 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 9510 "built/tmp/cppBison.yxx.c" +#line 9405 "built/tmp/cppBison.yxx.c" break; - case 718: -#line 4016 "dtool/src/cppparser/cppBison.yxx" + case 730: /* formal_const_expr: formal_const_expr '(' const_expr_comma ')' */ +#line 4056 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 9518 "built/tmp/cppBison.yxx.c" +#line 9413 "built/tmp/cppBison.yxx.c" break; - case 719: -#line 4020 "dtool/src/cppparser/cppBison.yxx" + case 731: /* formal_const_expr: formal_const_expr '(' ')' */ +#line 4060 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 9526 "built/tmp/cppBison.yxx.c" +#line 9421 "built/tmp/cppBison.yxx.c" break; - case 720: -#line 4024 "dtool/src/cppparser/cppBison.yxx" + case 732: /* formal_const_expr: formal_const_expr '.' name */ +#line 4064 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer)); } -#line 9534 "built/tmp/cppBison.yxx.c" +#line 9429 "built/tmp/cppBison.yxx.c" break; - case 721: -#line 4028 "dtool/src/cppparser/cppBison.yxx" + case 733: /* formal_const_expr: formal_const_expr POINTSAT const_expr */ +#line 4068 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9542 "built/tmp/cppBison.yxx.c" +#line 9437 "built/tmp/cppBison.yxx.c" break; - case 722: -#line 4032 "dtool/src/cppparser/cppBison.yxx" + case 734: /* formal_const_expr: '(' const_expr_comma ')' */ +#line 4072 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 9550 "built/tmp/cppBison.yxx.c" +#line 9445 "built/tmp/cppBison.yxx.c" break; - case 723: -#line 4039 "dtool/src/cppparser/cppBison.yxx" + case 735: /* formal_const_operand: INTEGER */ +#line 4079 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 9558 "built/tmp/cppBison.yxx.c" +#line 9453 "built/tmp/cppBison.yxx.c" break; - case 724: -#line 4043 "dtool/src/cppparser/cppBison.yxx" + case 736: /* formal_const_operand: KW_TRUE */ +#line 4083 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } -#line 9566 "built/tmp/cppBison.yxx.c" +#line 9461 "built/tmp/cppBison.yxx.c" break; - case 725: -#line 4047 "dtool/src/cppparser/cppBison.yxx" + case 737: /* formal_const_operand: KW_FALSE */ +#line 4087 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } -#line 9574 "built/tmp/cppBison.yxx.c" +#line 9469 "built/tmp/cppBison.yxx.c" break; - case 726: -#line 4051 "dtool/src/cppparser/cppBison.yxx" + case 738: /* formal_const_operand: CHAR_TOK */ +#line 4091 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 9582 "built/tmp/cppBison.yxx.c" +#line 9477 "built/tmp/cppBison.yxx.c" break; - case 727: -#line 4055 "dtool/src/cppparser/cppBison.yxx" + case 739: /* formal_const_operand: REAL */ +#line 4095 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } -#line 9590 "built/tmp/cppBison.yxx.c" +#line 9485 "built/tmp/cppBison.yxx.c" break; - case 728: -#line 4059 "dtool/src/cppparser/cppBison.yxx" + case 740: /* formal_const_operand: string_literal */ +#line 4099 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9598 "built/tmp/cppBison.yxx.c" +#line 9493 "built/tmp/cppBison.yxx.c" break; - case 729: -#line 4063 "dtool/src/cppparser/cppBison.yxx" + case 741: /* formal_const_operand: CUSTOM_LITERAL */ +#line 4103 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9606 "built/tmp/cppBison.yxx.c" +#line 9501 "built/tmp/cppBison.yxx.c" break; - case 730: -#line 4067 "dtool/src/cppparser/cppBison.yxx" + case 742: /* formal_const_operand: IDENTIFIER */ +#line 4107 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } -#line 9614 "built/tmp/cppBison.yxx.c" +#line 9509 "built/tmp/cppBison.yxx.c" break; - case 731: -#line 4071 "dtool/src/cppparser/cppBison.yxx" + case 743: /* formal_const_operand: KW_FINAL */ +#line 4111 "dtool/src/cppparser/cppBison.yxx" { // 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 9624 "built/tmp/cppBison.yxx.c" +#line 9519 "built/tmp/cppBison.yxx.c" break; - case 732: -#line 4077 "dtool/src/cppparser/cppBison.yxx" + case 744: /* formal_const_operand: KW_OVERRIDE */ +#line 4117 "dtool/src/cppparser/cppBison.yxx" { // 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 9634 "built/tmp/cppBison.yxx.c" +#line 9529 "built/tmp/cppBison.yxx.c" break; - case 733: -#line 4083 "dtool/src/cppparser/cppBison.yxx" + case 745: /* formal_const_operand: KW_NULLPTR */ +#line 4123 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 9642 "built/tmp/cppBison.yxx.c" +#line 9537 "built/tmp/cppBison.yxx.c" break; - case 734: -#line 4091 "dtool/src/cppparser/cppBison.yxx" + case 746: /* capture_list: empty */ +#line 4131 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(); } -#line 9650 "built/tmp/cppBison.yxx.c" +#line 9545 "built/tmp/cppBison.yxx.c" break; - case 735: -#line 4095 "dtool/src/cppparser/cppBison.yxx" + case 747: /* capture_list: '=' */ +#line 4135 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(CPPClosureType::CT_by_value); } -#line 9658 "built/tmp/cppBison.yxx.c" +#line 9553 "built/tmp/cppBison.yxx.c" break; - case 736: -#line 4099 "dtool/src/cppparser/cppBison.yxx" + case 748: /* capture_list: '&' */ +#line 4139 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(CPPClosureType::CT_by_reference); } -#line 9666 "built/tmp/cppBison.yxx.c" +#line 9561 "built/tmp/cppBison.yxx.c" break; - case 737: -#line 4103 "dtool/src/cppparser/cppBison.yxx" + case 749: /* capture_list: capture maybe_initialize */ +#line 4143 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(); (yyvsp[-1].u.capture)->_initializer = (yyvsp[0].u.expr); (yyval.u.closure_type)->_captures.push_back(*(yyvsp[-1].u.capture)); delete (yyvsp[-1].u.capture); } -#line 9677 "built/tmp/cppBison.yxx.c" +#line 9572 "built/tmp/cppBison.yxx.c" break; - case 738: -#line 4110 "dtool/src/cppparser/cppBison.yxx" + case 750: /* capture_list: capture_list ',' capture maybe_initialize */ +#line 4150 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = (yyvsp[-3].u.closure_type); (yyvsp[-1].u.capture)->_initializer = (yyvsp[0].u.expr); (yyval.u.closure_type)->_captures.push_back(*(yyvsp[-1].u.capture)); delete (yyvsp[-1].u.capture); } -#line 9688 "built/tmp/cppBison.yxx.c" +#line 9583 "built/tmp/cppBison.yxx.c" break; - case 739: -#line 4120 "dtool/src/cppparser/cppBison.yxx" + case 751: /* capture: '&' name */ +#line 4160 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); (yyval.u.capture)->_type = CPPClosureType::CT_by_reference; } -#line 9698 "built/tmp/cppBison.yxx.c" +#line 9593 "built/tmp/cppBison.yxx.c" break; - case 740: -#line 4126 "dtool/src/cppparser/cppBison.yxx" + case 752: /* capture: '&' name ELLIPSIS */ +#line 4166 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[-1].u.identifier)->get_simple_name(); (yyval.u.capture)->_type = CPPClosureType::CT_by_reference; } -#line 9708 "built/tmp/cppBison.yxx.c" +#line 9603 "built/tmp/cppBison.yxx.c" break; - case 741: -#line 4132 "dtool/src/cppparser/cppBison.yxx" + case 753: /* capture: name */ +#line 4172 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); @@ -9718,11 +9613,11 @@ yyreduce: (yyval.u.capture)->_type = CPPClosureType::CT_by_value; } } -#line 9722 "built/tmp/cppBison.yxx.c" +#line 9617 "built/tmp/cppBison.yxx.c" break; - case 742: -#line 4142 "dtool/src/cppparser/cppBison.yxx" + case 754: /* capture: '*' name */ +#line 4182 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); @@ -9731,11 +9626,11 @@ yyreduce: yywarning("only capture name 'this' may be preceded by an asterisk", (yylsp[0])); } } -#line 9735 "built/tmp/cppBison.yxx.c" +#line 9630 "built/tmp/cppBison.yxx.c" break; - case 743: -#line 4154 "dtool/src/cppparser/cppBison.yxx" + case 755: /* class_derivation_name: name */ +#line 4194 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); if (type == nullptr) { @@ -9743,177 +9638,177 @@ yyreduce: } (yyval.u.type) = type; } -#line 9747 "built/tmp/cppBison.yxx.c" +#line 9642 "built/tmp/cppBison.yxx.c" break; - case 744: -#line 4162 "dtool/src/cppparser/cppBison.yxx" + case 756: /* class_derivation_name: KW_TYPENAME name */ +#line 4202 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 9755 "built/tmp/cppBison.yxx.c" +#line 9650 "built/tmp/cppBison.yxx.c" break; - case 745: -#line 4166 "dtool/src/cppparser/cppBison.yxx" + case 757: /* class_derivation_name: name ELLIPSIS */ +#line 4206 "dtool/src/cppparser/cppBison.yxx" { CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[-1].u.identifier)); ctp->_packed = true; (yyval.u.type) = CPPType::new_type(ctp); } -#line 9765 "built/tmp/cppBison.yxx.c" +#line 9660 "built/tmp/cppBison.yxx.c" break; - case 746: -#line 4196 "dtool/src/cppparser/cppBison.yxx" + case 758: /* name: IDENTIFIER */ +#line 4236 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 9773 "built/tmp/cppBison.yxx.c" +#line 9668 "built/tmp/cppBison.yxx.c" break; - case 747: -#line 4200 "dtool/src/cppparser/cppBison.yxx" + case 759: /* name: TYPENAME_IDENTIFIER */ +#line 4240 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 9781 "built/tmp/cppBison.yxx.c" +#line 9676 "built/tmp/cppBison.yxx.c" break; - case 748: -#line 4204 "dtool/src/cppparser/cppBison.yxx" + case 760: /* name: TYPEPACK_IDENTIFIER */ +#line 4244 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 9789 "built/tmp/cppBison.yxx.c" +#line 9684 "built/tmp/cppBison.yxx.c" break; - case 749: -#line 4208 "dtool/src/cppparser/cppBison.yxx" + case 761: /* name: KW_FINAL */ +#line 4248 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); } -#line 9797 "built/tmp/cppBison.yxx.c" +#line 9692 "built/tmp/cppBison.yxx.c" break; - case 750: -#line 4212 "dtool/src/cppparser/cppBison.yxx" + case 762: /* name: KW_OVERRIDE */ +#line 4252 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); } -#line 9805 "built/tmp/cppBison.yxx.c" +#line 9700 "built/tmp/cppBison.yxx.c" break; - case 751: -#line 4216 "dtool/src/cppparser/cppBison.yxx" + case 763: /* name: KW_SIGNED */ +#line 4256 "dtool/src/cppparser/cppBison.yxx" { // 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 9815 "built/tmp/cppBison.yxx.c" +#line 9710 "built/tmp/cppBison.yxx.c" break; - case 752: -#line 4222 "dtool/src/cppparser/cppBison.yxx" + case 764: /* name: KW_FLOAT */ +#line 4262 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); } -#line 9823 "built/tmp/cppBison.yxx.c" +#line 9718 "built/tmp/cppBison.yxx.c" break; - case 753: -#line 4226 "dtool/src/cppparser/cppBison.yxx" + case 765: /* name: KW_PUBLIC */ +#line 4266 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); } -#line 9831 "built/tmp/cppBison.yxx.c" +#line 9726 "built/tmp/cppBison.yxx.c" break; - case 754: -#line 4230 "dtool/src/cppparser/cppBison.yxx" + case 766: /* name: KW_PRIVATE */ +#line 4270 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); } -#line 9839 "built/tmp/cppBison.yxx.c" +#line 9734 "built/tmp/cppBison.yxx.c" break; - case 755: -#line 4234 "dtool/src/cppparser/cppBison.yxx" + case 767: /* name: KW_STATIC */ +#line 4274 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); } -#line 9847 "built/tmp/cppBison.yxx.c" +#line 9742 "built/tmp/cppBison.yxx.c" break; - case 756: -#line 4238 "dtool/src/cppparser/cppBison.yxx" + case 768: /* name: KW_DEFAULT */ +#line 4278 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("default", (yylsp[0])); } -#line 9855 "built/tmp/cppBison.yxx.c" +#line 9750 "built/tmp/cppBison.yxx.c" break; - case 757: -#line 4249 "dtool/src/cppparser/cppBison.yxx" + case 769: /* name_no_final: IDENTIFIER */ +#line 4289 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 9863 "built/tmp/cppBison.yxx.c" +#line 9758 "built/tmp/cppBison.yxx.c" break; - case 758: -#line 4253 "dtool/src/cppparser/cppBison.yxx" + case 770: /* name_no_final: TYPENAME_IDENTIFIER */ +#line 4293 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 9871 "built/tmp/cppBison.yxx.c" +#line 9766 "built/tmp/cppBison.yxx.c" break; - case 759: -#line 4257 "dtool/src/cppparser/cppBison.yxx" + case 771: /* name_no_final: TYPEPACK_IDENTIFIER */ +#line 4297 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 9879 "built/tmp/cppBison.yxx.c" +#line 9774 "built/tmp/cppBison.yxx.c" break; - case 760: -#line 4261 "dtool/src/cppparser/cppBison.yxx" + case 772: /* name_no_final: KW_OVERRIDE */ +#line 4301 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); } -#line 9887 "built/tmp/cppBison.yxx.c" +#line 9782 "built/tmp/cppBison.yxx.c" break; - case 761: -#line 4269 "dtool/src/cppparser/cppBison.yxx" + case 773: /* string_literal: SIMPLE_STRING */ +#line 4309 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); } -#line 9895 "built/tmp/cppBison.yxx.c" +#line 9790 "built/tmp/cppBison.yxx.c" break; - case 762: -#line 4273 "dtool/src/cppparser/cppBison.yxx" + case 774: /* string_literal: STRING_LITERAL */ +#line 4313 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9903 "built/tmp/cppBison.yxx.c" +#line 9798 "built/tmp/cppBison.yxx.c" break; - case 763: -#line 4277 "dtool/src/cppparser/cppBison.yxx" + case 775: /* string_literal: string_literal SIMPLE_STRING */ +#line 4317 "dtool/src/cppparser/cppBison.yxx" { // 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 9913 "built/tmp/cppBison.yxx.c" +#line 9808 "built/tmp/cppBison.yxx.c" break; - case 764: -#line 4283 "dtool/src/cppparser/cppBison.yxx" + case 776: /* string_literal: string_literal STRING_LITERAL */ +#line 4323 "dtool/src/cppparser/cppBison.yxx" { // We have to check that the two literal types match up. (yyval.u.expr) = (yyvsp[-1].u.expr); @@ -9922,11 +9817,11 @@ yyreduce: } (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } -#line 9926 "built/tmp/cppBison.yxx.c" +#line 9821 "built/tmp/cppBison.yxx.c" break; -#line 9930 "built/tmp/cppBison.yxx.c" +#line 9825 "built/tmp/cppBison.yxx.c" default: break; } @@ -9941,11 +9836,10 @@ yyreduce: case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; @@ -9970,50 +9864,15 @@ yyreduce: yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (&yylloc, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (&yylloc, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } yyerror_range[1] = yylloc; - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -10062,13 +9921,14 @@ yyerrorlab: yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -10082,7 +9942,7 @@ yyerrlab1: yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -10093,13 +9953,11 @@ yyerrlab1: YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; - /* Using YYLLOC is tempting, but would change the location of - the lookahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, yyerror_range, 2); - *++yylsp = yyloc; + ++yylsp; + YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -10121,20 +9979,20 @@ yyabortlab: goto yyreturn; -#if !defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -10151,16 +10009,14 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[+*yyssp], yyvsp, yylsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } + diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index aa0980c959..15588c760d 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.5.3. */ +/* A Bison parser, made by GNU Bison 3.7.3. */ /* Bison interface for Yacc-like parsers in C @@ -31,8 +31,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ #ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED # define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED @@ -44,158 +45,170 @@ extern int cppyydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - REAL = 258, - INTEGER = 259, - CHAR_TOK = 260, - SIMPLE_STRING = 261, - SIMPLE_IDENTIFIER = 262, - STRING_LITERAL = 263, - CUSTOM_LITERAL = 264, - IDENTIFIER = 265, - TYPENAME_IDENTIFIER = 266, - TYPEPACK_IDENTIFIER = 267, - SCOPING = 268, - TYPEDEFNAME = 269, - ELLIPSIS = 270, - OROR = 271, - ANDAND = 272, - EQCOMPARE = 273, - NECOMPARE = 274, - LECOMPARE = 275, - GECOMPARE = 276, - LSHIFT = 277, - RSHIFT = 278, - POINTSAT_STAR = 279, - DOT_STAR = 280, - UNARY = 281, - UNARY_NOT = 282, - UNARY_NEGATE = 283, - UNARY_MINUS = 284, - UNARY_PLUS = 285, - UNARY_STAR = 286, - UNARY_REF = 287, - POINTSAT = 288, - SCOPE = 289, - PLUSPLUS = 290, - MINUSMINUS = 291, - TIMESEQUAL = 292, - DIVIDEEQUAL = 293, - MODEQUAL = 294, - PLUSEQUAL = 295, - MINUSEQUAL = 296, - OREQUAL = 297, - ANDEQUAL = 298, - XOREQUAL = 299, - LSHIFTEQUAL = 300, - RSHIFTEQUAL = 301, - ATTR_LEFT = 302, - ATTR_RIGHT = 303, - KW_ALIGNAS = 304, - KW_ALIGNOF = 305, - KW_AUTO = 306, - KW_BEGIN_PUBLISH = 307, - KW_BLOCKING = 308, - KW_BOOL = 309, - KW_CATCH = 310, - KW_CHAR = 311, - KW_CHAR16_T = 312, - KW_CHAR32_T = 313, - KW_CLASS = 314, - KW_CONST = 315, - KW_CONSTEXPR = 316, - KW_CONST_CAST = 317, - KW_DECLTYPE = 318, - KW_DEFAULT = 319, - KW_DELETE = 320, - KW_DOUBLE = 321, - KW_DYNAMIC_CAST = 322, - KW_ELSE = 323, - KW_END_PUBLISH = 324, - KW_ENUM = 325, - KW_EXTENSION = 326, - KW_EXTERN = 327, - KW_EXPLICIT = 328, - KW_PUBLISHED = 329, - KW_FALSE = 330, - KW_FINAL = 331, - KW_FLOAT = 332, - KW_FRIEND = 333, - KW_FOR = 334, - KW_GOTO = 335, - KW_HAS_VIRTUAL_DESTRUCTOR = 336, - KW_IF = 337, - KW_INLINE = 338, - KW_INT = 339, - KW_IS_ABSTRACT = 340, - KW_IS_BASE_OF = 341, - KW_IS_CLASS = 342, - KW_IS_CONSTRUCTIBLE = 343, - KW_IS_CONVERTIBLE_TO = 344, - KW_IS_DESTRUCTIBLE = 345, - KW_IS_EMPTY = 346, - KW_IS_ENUM = 347, - KW_IS_FINAL = 348, - KW_IS_FUNDAMENTAL = 349, - KW_IS_POD = 350, - KW_IS_POLYMORPHIC = 351, - KW_IS_STANDARD_LAYOUT = 352, - KW_IS_TRIVIAL = 353, - KW_IS_UNION = 354, - KW_LONG = 355, - KW_MAKE_MAP_KEYS_SEQ = 356, - KW_MAKE_MAP_PROPERTY = 357, - KW_MAKE_PROPERTY = 358, - KW_MAKE_PROPERTY2 = 359, - KW_MAKE_SEQ = 360, - KW_MAKE_SEQ_PROPERTY = 361, - KW_MUTABLE = 362, - KW_NAMESPACE = 363, - KW_NEW = 364, - KW_NOEXCEPT = 365, - KW_NULLPTR = 366, - KW_OPERATOR = 367, - KW_OVERRIDE = 368, - KW_PRIVATE = 369, - KW_PROTECTED = 370, - KW_PUBLIC = 371, - KW_REGISTER = 372, - KW_REINTERPRET_CAST = 373, - KW_RETURN = 374, - KW_SHORT = 375, - KW_SIGNED = 376, - KW_SIZEOF = 377, - KW_STATIC = 378, - KW_STATIC_ASSERT = 379, - KW_STATIC_CAST = 380, - KW_STRUCT = 381, - KW_TEMPLATE = 382, - KW_THREAD_LOCAL = 383, - KW_THROW = 384, - KW_TRUE = 385, - KW_TRY = 386, - KW_TYPEDEF = 387, - KW_TYPEID = 388, - KW_TYPENAME = 389, - KW_UNDERLYING_TYPE = 390, - KW_UNION = 391, - KW_UNSIGNED = 392, - KW_USING = 393, - KW_VIRTUAL = 394, - KW_VOID = 395, - KW_VOLATILE = 396, - KW_WCHAR_T = 397, - KW_WHILE = 398, - START_CPP = 399, - START_CONST_EXPR = 400, - START_TYPE = 401 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + REAL = 258, /* REAL */ + INTEGER = 259, /* INTEGER */ + CHAR_TOK = 260, /* CHAR_TOK */ + SIMPLE_STRING = 261, /* SIMPLE_STRING */ + SIMPLE_IDENTIFIER = 262, /* SIMPLE_IDENTIFIER */ + STRING_LITERAL = 263, /* STRING_LITERAL */ + CUSTOM_LITERAL = 264, /* CUSTOM_LITERAL */ + IDENTIFIER = 265, /* IDENTIFIER */ + TYPENAME_IDENTIFIER = 266, /* TYPENAME_IDENTIFIER */ + TYPEPACK_IDENTIFIER = 267, /* TYPEPACK_IDENTIFIER */ + SCOPING = 268, /* SCOPING */ + TYPEDEFNAME = 269, /* TYPEDEFNAME */ + ELLIPSIS = 270, /* ELLIPSIS */ + OROR = 271, /* OROR */ + ANDAND = 272, /* ANDAND */ + EQCOMPARE = 273, /* EQCOMPARE */ + NECOMPARE = 274, /* NECOMPARE */ + LECOMPARE = 275, /* LECOMPARE */ + GECOMPARE = 276, /* GECOMPARE */ + SPACESHIP = 277, /* SPACESHIP */ + LSHIFT = 278, /* LSHIFT */ + RSHIFT = 279, /* RSHIFT */ + POINTSAT_STAR = 280, /* POINTSAT_STAR */ + DOT_STAR = 281, /* DOT_STAR */ + UNARY = 282, /* UNARY */ + UNARY_NOT = 283, /* UNARY_NOT */ + UNARY_NEGATE = 284, /* UNARY_NEGATE */ + UNARY_MINUS = 285, /* UNARY_MINUS */ + UNARY_PLUS = 286, /* UNARY_PLUS */ + UNARY_STAR = 287, /* UNARY_STAR */ + UNARY_REF = 288, /* UNARY_REF */ + POINTSAT = 289, /* POINTSAT */ + SCOPE = 290, /* SCOPE */ + PLUSPLUS = 291, /* PLUSPLUS */ + MINUSMINUS = 292, /* MINUSMINUS */ + TIMESEQUAL = 293, /* TIMESEQUAL */ + DIVIDEEQUAL = 294, /* DIVIDEEQUAL */ + MODEQUAL = 295, /* MODEQUAL */ + PLUSEQUAL = 296, /* PLUSEQUAL */ + MINUSEQUAL = 297, /* MINUSEQUAL */ + OREQUAL = 298, /* OREQUAL */ + ANDEQUAL = 299, /* ANDEQUAL */ + XOREQUAL = 300, /* XOREQUAL */ + LSHIFTEQUAL = 301, /* LSHIFTEQUAL */ + RSHIFTEQUAL = 302, /* RSHIFTEQUAL */ + ATTR_LEFT = 303, /* ATTR_LEFT */ + ATTR_RIGHT = 304, /* ATTR_RIGHT */ + KW_ALIGNAS = 305, /* KW_ALIGNAS */ + KW_ALIGNOF = 306, /* KW_ALIGNOF */ + KW_AUTO = 307, /* KW_AUTO */ + KW_BEGIN_PUBLISH = 308, /* KW_BEGIN_PUBLISH */ + KW_BLOCKING = 309, /* KW_BLOCKING */ + KW_BOOL = 310, /* KW_BOOL */ + KW_CATCH = 311, /* KW_CATCH */ + KW_CHAR = 312, /* KW_CHAR */ + KW_CHAR8_T = 313, /* KW_CHAR8_T */ + KW_CHAR16_T = 314, /* KW_CHAR16_T */ + KW_CHAR32_T = 315, /* KW_CHAR32_T */ + KW_CLASS = 316, /* KW_CLASS */ + KW_CONST = 317, /* KW_CONST */ + KW_CONSTEVAL = 318, /* KW_CONSTEVAL */ + KW_CONSTEXPR = 319, /* KW_CONSTEXPR */ + KW_CONSTINIT = 320, /* KW_CONSTINIT */ + KW_CONST_CAST = 321, /* KW_CONST_CAST */ + KW_DECLTYPE = 322, /* KW_DECLTYPE */ + KW_DEFAULT = 323, /* KW_DEFAULT */ + KW_DELETE = 324, /* KW_DELETE */ + KW_DOUBLE = 325, /* KW_DOUBLE */ + KW_DYNAMIC_CAST = 326, /* KW_DYNAMIC_CAST */ + KW_ELSE = 327, /* KW_ELSE */ + KW_END_PUBLISH = 328, /* KW_END_PUBLISH */ + KW_ENUM = 329, /* KW_ENUM */ + KW_EXTENSION = 330, /* KW_EXTENSION */ + KW_EXTERN = 331, /* KW_EXTERN */ + KW_EXPLICIT = 332, /* KW_EXPLICIT */ + KW_PUBLISHED = 333, /* KW_PUBLISHED */ + KW_FALSE = 334, /* KW_FALSE */ + KW_FINAL = 335, /* KW_FINAL */ + KW_FLOAT = 336, /* KW_FLOAT */ + KW_FRIEND = 337, /* KW_FRIEND */ + KW_FOR = 338, /* KW_FOR */ + KW_GOTO = 339, /* KW_GOTO */ + KW_HAS_VIRTUAL_DESTRUCTOR = 340, /* KW_HAS_VIRTUAL_DESTRUCTOR */ + KW_IF = 341, /* KW_IF */ + KW_INLINE = 342, /* KW_INLINE */ + KW_INT = 343, /* KW_INT */ + KW_IS_ABSTRACT = 344, /* KW_IS_ABSTRACT */ + KW_IS_BASE_OF = 345, /* KW_IS_BASE_OF */ + KW_IS_CLASS = 346, /* KW_IS_CLASS */ + KW_IS_CONSTRUCTIBLE = 347, /* KW_IS_CONSTRUCTIBLE */ + KW_IS_CONVERTIBLE_TO = 348, /* KW_IS_CONVERTIBLE_TO */ + KW_IS_DESTRUCTIBLE = 349, /* KW_IS_DESTRUCTIBLE */ + KW_IS_EMPTY = 350, /* KW_IS_EMPTY */ + KW_IS_ENUM = 351, /* KW_IS_ENUM */ + KW_IS_FINAL = 352, /* KW_IS_FINAL */ + KW_IS_FUNDAMENTAL = 353, /* KW_IS_FUNDAMENTAL */ + KW_IS_POD = 354, /* KW_IS_POD */ + KW_IS_POLYMORPHIC = 355, /* KW_IS_POLYMORPHIC */ + KW_IS_STANDARD_LAYOUT = 356, /* KW_IS_STANDARD_LAYOUT */ + KW_IS_TRIVIAL = 357, /* KW_IS_TRIVIAL */ + KW_IS_UNION = 358, /* KW_IS_UNION */ + KW_LONG = 359, /* KW_LONG */ + KW_MAKE_MAP_KEYS_SEQ = 360, /* KW_MAKE_MAP_KEYS_SEQ */ + KW_MAKE_MAP_PROPERTY = 361, /* KW_MAKE_MAP_PROPERTY */ + KW_MAKE_PROPERTY = 362, /* KW_MAKE_PROPERTY */ + KW_MAKE_PROPERTY2 = 363, /* KW_MAKE_PROPERTY2 */ + KW_MAKE_SEQ = 364, /* KW_MAKE_SEQ */ + KW_MAKE_SEQ_PROPERTY = 365, /* KW_MAKE_SEQ_PROPERTY */ + KW_MUTABLE = 366, /* KW_MUTABLE */ + KW_NAMESPACE = 367, /* KW_NAMESPACE */ + KW_NEW = 368, /* KW_NEW */ + KW_NOEXCEPT = 369, /* KW_NOEXCEPT */ + KW_NULLPTR = 370, /* KW_NULLPTR */ + KW_OPERATOR = 371, /* KW_OPERATOR */ + KW_OVERRIDE = 372, /* KW_OVERRIDE */ + KW_PRIVATE = 373, /* KW_PRIVATE */ + KW_PROTECTED = 374, /* KW_PROTECTED */ + KW_PUBLIC = 375, /* KW_PUBLIC */ + KW_REGISTER = 376, /* KW_REGISTER */ + KW_REINTERPRET_CAST = 377, /* KW_REINTERPRET_CAST */ + KW_RETURN = 378, /* KW_RETURN */ + KW_SHORT = 379, /* KW_SHORT */ + KW_SIGNED = 380, /* KW_SIGNED */ + KW_SIZEOF = 381, /* KW_SIZEOF */ + KW_STATIC = 382, /* KW_STATIC */ + KW_STATIC_ASSERT = 383, /* KW_STATIC_ASSERT */ + KW_STATIC_CAST = 384, /* KW_STATIC_CAST */ + KW_STRUCT = 385, /* KW_STRUCT */ + KW_TEMPLATE = 386, /* KW_TEMPLATE */ + KW_THREAD_LOCAL = 387, /* KW_THREAD_LOCAL */ + KW_THROW = 388, /* KW_THROW */ + KW_TRUE = 389, /* KW_TRUE */ + KW_TRY = 390, /* KW_TRY */ + KW_TYPEDEF = 391, /* KW_TYPEDEF */ + KW_TYPEID = 392, /* KW_TYPEID */ + KW_TYPENAME = 393, /* KW_TYPENAME */ + KW_UNDERLYING_TYPE = 394, /* KW_UNDERLYING_TYPE */ + KW_UNION = 395, /* KW_UNION */ + KW_UNSIGNED = 396, /* KW_UNSIGNED */ + KW_USING = 397, /* KW_USING */ + KW_VIRTUAL = 398, /* KW_VIRTUAL */ + KW_VOID = 399, /* KW_VOID */ + KW_VOLATILE = 400, /* KW_VOLATILE */ + KW_WCHAR_T = 401, /* KW_WCHAR_T */ + KW_WHILE = 402, /* KW_WHILE */ + START_CPP = 403, /* START_CPP */ + START_CONST_EXPR = 404, /* START_CONST_EXPR */ + START_TYPE = 405 /* START_TYPE */ }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define REAL 258 #define INTEGER 259 #define CHAR_TOK 260 @@ -215,131 +228,135 @@ extern int cppyydebug; #define NECOMPARE 274 #define LECOMPARE 275 #define GECOMPARE 276 -#define LSHIFT 277 -#define RSHIFT 278 -#define POINTSAT_STAR 279 -#define DOT_STAR 280 -#define UNARY 281 -#define UNARY_NOT 282 -#define UNARY_NEGATE 283 -#define UNARY_MINUS 284 -#define UNARY_PLUS 285 -#define UNARY_STAR 286 -#define UNARY_REF 287 -#define POINTSAT 288 -#define SCOPE 289 -#define PLUSPLUS 290 -#define MINUSMINUS 291 -#define TIMESEQUAL 292 -#define DIVIDEEQUAL 293 -#define MODEQUAL 294 -#define PLUSEQUAL 295 -#define MINUSEQUAL 296 -#define OREQUAL 297 -#define ANDEQUAL 298 -#define XOREQUAL 299 -#define LSHIFTEQUAL 300 -#define RSHIFTEQUAL 301 -#define ATTR_LEFT 302 -#define ATTR_RIGHT 303 -#define KW_ALIGNAS 304 -#define KW_ALIGNOF 305 -#define KW_AUTO 306 -#define KW_BEGIN_PUBLISH 307 -#define KW_BLOCKING 308 -#define KW_BOOL 309 -#define KW_CATCH 310 -#define KW_CHAR 311 -#define KW_CHAR16_T 312 -#define KW_CHAR32_T 313 -#define KW_CLASS 314 -#define KW_CONST 315 -#define KW_CONSTEXPR 316 -#define KW_CONST_CAST 317 -#define KW_DECLTYPE 318 -#define KW_DEFAULT 319 -#define KW_DELETE 320 -#define KW_DOUBLE 321 -#define KW_DYNAMIC_CAST 322 -#define KW_ELSE 323 -#define KW_END_PUBLISH 324 -#define KW_ENUM 325 -#define KW_EXTENSION 326 -#define KW_EXTERN 327 -#define KW_EXPLICIT 328 -#define KW_PUBLISHED 329 -#define KW_FALSE 330 -#define KW_FINAL 331 -#define KW_FLOAT 332 -#define KW_FRIEND 333 -#define KW_FOR 334 -#define KW_GOTO 335 -#define KW_HAS_VIRTUAL_DESTRUCTOR 336 -#define KW_IF 337 -#define KW_INLINE 338 -#define KW_INT 339 -#define KW_IS_ABSTRACT 340 -#define KW_IS_BASE_OF 341 -#define KW_IS_CLASS 342 -#define KW_IS_CONSTRUCTIBLE 343 -#define KW_IS_CONVERTIBLE_TO 344 -#define KW_IS_DESTRUCTIBLE 345 -#define KW_IS_EMPTY 346 -#define KW_IS_ENUM 347 -#define KW_IS_FINAL 348 -#define KW_IS_FUNDAMENTAL 349 -#define KW_IS_POD 350 -#define KW_IS_POLYMORPHIC 351 -#define KW_IS_STANDARD_LAYOUT 352 -#define KW_IS_TRIVIAL 353 -#define KW_IS_UNION 354 -#define KW_LONG 355 -#define KW_MAKE_MAP_KEYS_SEQ 356 -#define KW_MAKE_MAP_PROPERTY 357 -#define KW_MAKE_PROPERTY 358 -#define KW_MAKE_PROPERTY2 359 -#define KW_MAKE_SEQ 360 -#define KW_MAKE_SEQ_PROPERTY 361 -#define KW_MUTABLE 362 -#define KW_NAMESPACE 363 -#define KW_NEW 364 -#define KW_NOEXCEPT 365 -#define KW_NULLPTR 366 -#define KW_OPERATOR 367 -#define KW_OVERRIDE 368 -#define KW_PRIVATE 369 -#define KW_PROTECTED 370 -#define KW_PUBLIC 371 -#define KW_REGISTER 372 -#define KW_REINTERPRET_CAST 373 -#define KW_RETURN 374 -#define KW_SHORT 375 -#define KW_SIGNED 376 -#define KW_SIZEOF 377 -#define KW_STATIC 378 -#define KW_STATIC_ASSERT 379 -#define KW_STATIC_CAST 380 -#define KW_STRUCT 381 -#define KW_TEMPLATE 382 -#define KW_THREAD_LOCAL 383 -#define KW_THROW 384 -#define KW_TRUE 385 -#define KW_TRY 386 -#define KW_TYPEDEF 387 -#define KW_TYPEID 388 -#define KW_TYPENAME 389 -#define KW_UNDERLYING_TYPE 390 -#define KW_UNION 391 -#define KW_UNSIGNED 392 -#define KW_USING 393 -#define KW_VIRTUAL 394 -#define KW_VOID 395 -#define KW_VOLATILE 396 -#define KW_WCHAR_T 397 -#define KW_WHILE 398 -#define START_CPP 399 -#define START_CONST_EXPR 400 -#define START_TYPE 401 +#define SPACESHIP 277 +#define LSHIFT 278 +#define RSHIFT 279 +#define POINTSAT_STAR 280 +#define DOT_STAR 281 +#define UNARY 282 +#define UNARY_NOT 283 +#define UNARY_NEGATE 284 +#define UNARY_MINUS 285 +#define UNARY_PLUS 286 +#define UNARY_STAR 287 +#define UNARY_REF 288 +#define POINTSAT 289 +#define SCOPE 290 +#define PLUSPLUS 291 +#define MINUSMINUS 292 +#define TIMESEQUAL 293 +#define DIVIDEEQUAL 294 +#define MODEQUAL 295 +#define PLUSEQUAL 296 +#define MINUSEQUAL 297 +#define OREQUAL 298 +#define ANDEQUAL 299 +#define XOREQUAL 300 +#define LSHIFTEQUAL 301 +#define RSHIFTEQUAL 302 +#define ATTR_LEFT 303 +#define ATTR_RIGHT 304 +#define KW_ALIGNAS 305 +#define KW_ALIGNOF 306 +#define KW_AUTO 307 +#define KW_BEGIN_PUBLISH 308 +#define KW_BLOCKING 309 +#define KW_BOOL 310 +#define KW_CATCH 311 +#define KW_CHAR 312 +#define KW_CHAR8_T 313 +#define KW_CHAR16_T 314 +#define KW_CHAR32_T 315 +#define KW_CLASS 316 +#define KW_CONST 317 +#define KW_CONSTEVAL 318 +#define KW_CONSTEXPR 319 +#define KW_CONSTINIT 320 +#define KW_CONST_CAST 321 +#define KW_DECLTYPE 322 +#define KW_DEFAULT 323 +#define KW_DELETE 324 +#define KW_DOUBLE 325 +#define KW_DYNAMIC_CAST 326 +#define KW_ELSE 327 +#define KW_END_PUBLISH 328 +#define KW_ENUM 329 +#define KW_EXTENSION 330 +#define KW_EXTERN 331 +#define KW_EXPLICIT 332 +#define KW_PUBLISHED 333 +#define KW_FALSE 334 +#define KW_FINAL 335 +#define KW_FLOAT 336 +#define KW_FRIEND 337 +#define KW_FOR 338 +#define KW_GOTO 339 +#define KW_HAS_VIRTUAL_DESTRUCTOR 340 +#define KW_IF 341 +#define KW_INLINE 342 +#define KW_INT 343 +#define KW_IS_ABSTRACT 344 +#define KW_IS_BASE_OF 345 +#define KW_IS_CLASS 346 +#define KW_IS_CONSTRUCTIBLE 347 +#define KW_IS_CONVERTIBLE_TO 348 +#define KW_IS_DESTRUCTIBLE 349 +#define KW_IS_EMPTY 350 +#define KW_IS_ENUM 351 +#define KW_IS_FINAL 352 +#define KW_IS_FUNDAMENTAL 353 +#define KW_IS_POD 354 +#define KW_IS_POLYMORPHIC 355 +#define KW_IS_STANDARD_LAYOUT 356 +#define KW_IS_TRIVIAL 357 +#define KW_IS_UNION 358 +#define KW_LONG 359 +#define KW_MAKE_MAP_KEYS_SEQ 360 +#define KW_MAKE_MAP_PROPERTY 361 +#define KW_MAKE_PROPERTY 362 +#define KW_MAKE_PROPERTY2 363 +#define KW_MAKE_SEQ 364 +#define KW_MAKE_SEQ_PROPERTY 365 +#define KW_MUTABLE 366 +#define KW_NAMESPACE 367 +#define KW_NEW 368 +#define KW_NOEXCEPT 369 +#define KW_NULLPTR 370 +#define KW_OPERATOR 371 +#define KW_OVERRIDE 372 +#define KW_PRIVATE 373 +#define KW_PROTECTED 374 +#define KW_PUBLIC 375 +#define KW_REGISTER 376 +#define KW_REINTERPRET_CAST 377 +#define KW_RETURN 378 +#define KW_SHORT 379 +#define KW_SIGNED 380 +#define KW_SIZEOF 381 +#define KW_STATIC 382 +#define KW_STATIC_ASSERT 383 +#define KW_STATIC_CAST 384 +#define KW_STRUCT 385 +#define KW_TEMPLATE 386 +#define KW_THREAD_LOCAL 387 +#define KW_THROW 388 +#define KW_TRUE 389 +#define KW_TRY 390 +#define KW_TYPEDEF 391 +#define KW_TYPEID 392 +#define KW_TYPENAME 393 +#define KW_UNDERLYING_TYPE 394 +#define KW_UNION 395 +#define KW_UNSIGNED 396 +#define KW_USING 397 +#define KW_VIRTUAL 398 +#define KW_VOID 399 +#define KW_VOLATILE 400 +#define KW_WCHAR_T 401 +#define KW_WHILE 402 +#define START_CPP 403 +#define START_CONST_EXPR 404 +#define START_TYPE 405 /* Value type. */ diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index f9a2c2ab9b..12a0db10a5 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -226,6 +226,7 @@ pop_struct() { %token NECOMPARE %token LECOMPARE %token GECOMPARE +%token SPACESHIP %token LSHIFT %token RSHIFT %token POINTSAT_STAR @@ -262,11 +263,14 @@ pop_struct() { %token KW_BOOL %token KW_CATCH %token KW_CHAR +%token KW_CHAR8_T %token KW_CHAR16_T %token KW_CHAR32_T %token KW_CLASS %token KW_CONST +%token KW_CONSTEVAL %token KW_CONSTEXPR +%token KW_CONSTINIT %token KW_CONST_CAST %token KW_DECLTYPE %token KW_DEFAULT @@ -421,7 +425,7 @@ pop_struct() { /* Precedence rules. */ -%left IDENTIFIER TYPENAME_IDENTIFIER TYPEDEFNAME KW_ENUM ELLIPSIS KW_OPERATOR KW_TYPENAME KW_INT KW_SHORT KW_UNSIGNED KW_SIGNED KW_LONG KW_FLOAT KW_DOUBLE KW_CHAR KW_WCHAR_T KW_CHAR16_T KW_CHAR32_T KW_BOOL +%left IDENTIFIER TYPENAME_IDENTIFIER TYPEDEFNAME KW_ENUM ELLIPSIS KW_OPERATOR KW_TYPENAME KW_INT KW_SHORT KW_UNSIGNED KW_SIGNED KW_LONG KW_FLOAT KW_DOUBLE KW_CHAR KW_WCHAR_T KW_CHAR8_T KW_CHAR16_T KW_CHAR32_T KW_BOOL %left '{' ',' ';' @@ -436,6 +440,7 @@ pop_struct() { %left '&' %left EQCOMPARE NECOMPARE %left LECOMPARE GECOMPARE '<' '>' +%left SPACESHIP %left LSHIFT RSHIFT %left '+' '-' %left '*' '/' '%' @@ -1002,10 +1007,18 @@ storage_class: | KW_MUTABLE storage_class { $$ = $2 | (int)CPPInstance::SC_mutable; +} + | KW_CONSTEVAL storage_class +{ + $$ = $2 | (int)CPPInstance::SC_consteval; } | KW_CONSTEXPR storage_class { $$ = $2 | (int)CPPInstance::SC_constexpr; +} + | KW_CONSTINIT storage_class +{ + $$ = $2 | (int)CPPInstance::SC_constinit; } | KW_BLOCKING storage_class { @@ -1564,6 +1577,10 @@ function_operator: | '>' { $$ = ">"; +} + | SPACESHIP +{ + $$ = "<=>"; } | LSHIFT { @@ -3075,6 +3092,10 @@ simple_int_type: | KW_WCHAR_T { $$ = new CPPSimpleType(CPPSimpleType::T_wchar_t); +} + | KW_CHAR8_T +{ + $$ = new CPPSimpleType(CPPSimpleType::T_char8_t); } | KW_CHAR16_T { @@ -3188,18 +3209,19 @@ element: | SCOPING | SIMPLE_IDENTIFIER | ELLIPSIS | OROR | ANDAND - | EQCOMPARE | NECOMPARE | LECOMPARE | GECOMPARE + | EQCOMPARE | NECOMPARE | LECOMPARE | GECOMPARE | SPACESHIP | LSHIFT | RSHIFT | POINTSAT_STAR | DOT_STAR | POINTSAT | SCOPE | PLUSPLUS | MINUSMINUS | TIMESEQUAL | DIVIDEEQUAL | MODEQUAL | PLUSEQUAL | MINUSEQUAL | OREQUAL | ANDEQUAL | XOREQUAL | LSHIFTEQUAL | RSHIFTEQUAL | ATTR_LEFT | ATTR_RIGHT | KW_ALIGNAS | KW_ALIGNOF | KW_AUTO | KW_BOOL | KW_CATCH - | KW_CHAR | KW_CHAR16_T | KW_CHAR32_T | KW_CLASS | KW_CONST - | KW_CONSTEXPR | KW_CONST_CAST | KW_DECLTYPE | KW_DEFAULT - | KW_DELETE | KW_DOUBLE | KW_DYNAMIC_CAST | KW_ELSE | KW_ENUM - | KW_EXTERN | KW_EXPLICIT | KW_FALSE | KW_FINAL | KW_FLOAT - | KW_FRIEND | KW_FOR | KW_GOTO | KW_IF | KW_INLINE | KW_INT + | KW_CHAR | KW_CHAR8_T | KW_CHAR16_T | KW_CHAR32_T | KW_CLASS + | KW_CONST | KW_CONSTEVAL | KW_CONSTEXPR | KW_CONSTINIT | KW_CONST_CAST + | KW_DECLTYPE | KW_DEFAULT | KW_DELETE | KW_DOUBLE | KW_DYNAMIC_CAST + | KW_ELSE | KW_ENUM | KW_EXTERN | KW_EXPLICIT + | KW_FALSE | KW_FINAL | KW_FLOAT | KW_FRIEND | KW_FOR + | KW_GOTO | KW_IF | KW_INLINE | KW_INT | KW_LONG | KW_MUTABLE | KW_NAMESPACE | KW_NEW | KW_NULLPTR | KW_OPERATOR | KW_OVERRIDE | KW_PRIVATE | KW_PROTECTED | KW_PUBLIC | KW_PUBLISHED | KW_REGISTER | KW_REINTERPRET_CAST @@ -3369,6 +3391,10 @@ no_angle_bracket_const_expr: | no_angle_bracket_const_expr GECOMPARE no_angle_bracket_const_expr { $$ = new CPPExpression(GECOMPARE, $1, $3); +} + | no_angle_bracket_const_expr SPACESHIP no_angle_bracket_const_expr +{ + $$ = new CPPExpression(SPACESHIP, $1, $3); } | no_angle_bracket_const_expr LSHIFT no_angle_bracket_const_expr { @@ -3471,6 +3497,12 @@ const_expr: CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); $$ = new CPPExpression(CPPExpression::construct_op(type, $3)); +} + | KW_CHAR8_T '(' optional_const_expr_comma ')' +{ + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char8_t)); + $$ = new CPPExpression(CPPExpression::construct_op(type, $3)); } | KW_CHAR16_T '(' optional_const_expr_comma ')' { @@ -3655,6 +3687,10 @@ const_expr: | const_expr GECOMPARE const_expr { $$ = new CPPExpression(GECOMPARE, $1, $3); +} + | const_expr SPACESHIP const_expr +{ + $$ = new CPPExpression(SPACESHIP, $1, $3); } | const_expr '<' const_expr { @@ -3987,6 +4023,10 @@ formal_const_expr: | formal_const_expr GECOMPARE const_expr { $$ = new CPPExpression(GECOMPARE, $1, $3); +} + | formal_const_expr SPACESHIP const_expr +{ + $$ = new CPPExpression(SPACESHIP, $1, $3); } | formal_const_expr '<' const_expr { diff --git a/dtool/src/cppparser/cppExpression.cxx b/dtool/src/cppparser/cppExpression.cxx index 2ded01f836..1092c89d39 100644 --- a/dtool/src/cppparser/cppExpression.cxx +++ b/dtool/src/cppparser/cppExpression.cxx @@ -591,7 +591,7 @@ evaluate() const { if (_u._variable->_type != nullptr && _u._variable->_initializer != nullptr) { // A constexpr variable, which is treated as const. - if (_u._variable->_storage_class & CPPInstance::SC_constexpr) { + if (_u._variable->_storage_class & (CPPInstance::SC_constexpr | CPPInstance::SC_constinit)) { return _u._variable->_initializer->evaluate(); } // A const variable. Fetch its assigned value. @@ -816,6 +816,13 @@ evaluate() const { return Result(r1.as_integer() >= r2.as_integer()); } + case SPACESHIP: + if (r1._type == RT_real || r2._type == RT_real) { + return Result((r1.as_real() > r2.as_real()) - (r1.as_real() < r2.as_real())); + } else { + return Result((r1.as_integer() > r2.as_integer()) - (r1.as_integer() < r2.as_integer())); + } + case '<': if (r1._type == RT_real || r2._type == RT_real) { return Result(r1.as_real() < r2.as_real()); @@ -1175,6 +1182,9 @@ determine_type() const { case '>': return bool_type; + case SPACESHIP: + return nullptr; + case '?': return t2; @@ -1566,7 +1576,7 @@ is_tbd() const { case T_variable: if (_u._variable->_type != nullptr && _u._variable->_initializer != nullptr) { - if (_u._variable->_storage_class & CPPInstance::SC_constexpr) { + if (_u._variable->_storage_class & (CPPInstance::SC_constexpr | CPPInstance::SC_constinit)) { return false; } CPPConstType *const_type = _u._variable->_type->as_const_type(); @@ -1956,6 +1966,14 @@ output(std::ostream &out, int indent_level, CPPScope *scope, bool) const { out << ")"; break; + case SPACESHIP: + out << "("; + _u._op._op1->output(out, indent_level, scope, false); + out << " <=> "; + _u._op._op2->output(out, indent_level, scope, false); + out << ")"; + break; + case LSHIFT: out << "("; _u._op._op1->output(out, indent_level, scope, false); diff --git a/dtool/src/cppparser/cppInstance.cxx b/dtool/src/cppparser/cppInstance.cxx index 3bb3bb725a..750f8cc8be 100644 --- a/dtool/src/cppparser/cppInstance.cxx +++ b/dtool/src/cppparser/cppInstance.cxx @@ -575,9 +575,15 @@ output(std::ostream &out, int indent_level, CPPScope *scope, bool complete, if (_storage_class & SC_mutable) { out << "mutable "; } + if (_storage_class & SC_consteval) { + out << "consteval "; + } if (_storage_class & SC_constexpr) { out << "constexpr "; } + if (_storage_class & SC_constinit) { + out << "constinit "; + } if (_storage_class & SC_thread_local) { out << "thread_local "; } diff --git a/dtool/src/cppparser/cppInstance.h b/dtool/src/cppparser/cppInstance.h index 0cfd4bea43..8e2118186a 100644 --- a/dtool/src/cppparser/cppInstance.h +++ b/dtool/src/cppparser/cppInstance.h @@ -44,7 +44,9 @@ public: SC_pure_virtual = 0x0080, SC_volatile = 0x0100, SC_mutable = 0x0200, - SC_constexpr = 0x0400, + SC_consteval = 0x080000, + SC_constexpr = 0x000400, + SC_constinit = 0x100000, // This bit is only set by CPPStructType::check_virtual(). SC_inherited_virtual = 0x0800, diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index f594291e0c..51e6b5c515 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -1140,6 +1140,10 @@ check_trigraph(int c) { case RSHIFT: if (next_c == '=') return RSHIFTEQUAL; break; + + case LECOMPARE: + if (next_c == '>') return SPACESHIP; + break; } return 0; @@ -2089,6 +2093,7 @@ get_literal(int token, YYLTYPE loc, const string &str, const YYSTYPE &value) { break; } else if (token == CHAR_TOK && (simple == CPPSimpleType::T_char || simple == CPPSimpleType::T_wchar_t || + simple == CPPSimpleType::T_char8_t || simple == CPPSimpleType::T_char16_t || simple == CPPSimpleType::T_char32_t)) { // We currently don't have the means to check the exact character @@ -2126,7 +2131,7 @@ get_literal(int token, YYLTYPE loc, const string &str, const YYSTYPE &value) { CPPExpression::Type str_type = value.u.expr->_type; if ((str_type == CPPExpression::T_string && simple == CPPSimpleType::T_char) || (str_type == CPPExpression::T_wstring && simple == CPPSimpleType::T_wchar_t) || - (str_type == CPPExpression::T_u8string && simple == CPPSimpleType::T_char) || + (str_type == CPPExpression::T_u8string && (simple == CPPSimpleType::T_char || simple == CPPSimpleType::T_char8_t)) || (str_type == CPPExpression::T_u16string && simple == CPPSimpleType::T_char16_t) || (str_type == CPPExpression::T_u32string && simple == CPPSimpleType::T_char32_t)) { expr = value.u.expr; @@ -2608,13 +2613,16 @@ check_keyword(const string &name) { if (name == "bool") return KW_BOOL; if (name == "catch") return KW_CATCH; if (name == "char") return KW_CHAR; + if (name == "char8_t") return KW_CHAR8_T; if (name == "char16_t") return KW_CHAR16_T; if (name == "char32_t") return KW_CHAR32_T; if (name == "class") return KW_CLASS; if (name == "const") return KW_CONST; if (name == "__const") return KW_CONST; if (name == "__const__") return KW_CONST; + if (name == "consteval") return KW_CONSTEVAL; if (name == "constexpr") return KW_CONSTEXPR; + if (name == "constinit") return KW_CONSTINIT; if (name == "const_cast") return KW_CONST_CAST; if (name == "decltype") return KW_DECLTYPE; if (name == "default") return KW_DEFAULT; diff --git a/dtool/src/cppparser/cppSimpleType.cxx b/dtool/src/cppparser/cppSimpleType.cxx index 1ed364a175..5ff2f64da4 100644 --- a/dtool/src/cppparser/cppSimpleType.cxx +++ b/dtool/src/cppparser/cppSimpleType.cxx @@ -185,6 +185,10 @@ output(std::ostream &out, int, CPPScope *, bool) const { out << "wchar_t"; break; + case T_char8_t: + out << "char8_t"; + break; + case T_char16_t: out << "char16_t"; break; diff --git a/dtool/src/cppparser/cppSimpleType.h b/dtool/src/cppparser/cppSimpleType.h index a674374502..31442fee8d 100644 --- a/dtool/src/cppparser/cppSimpleType.h +++ b/dtool/src/cppparser/cppSimpleType.h @@ -28,6 +28,7 @@ public: T_bool, T_char, T_wchar_t, + T_char8_t, T_char16_t, T_char32_t, T_int, diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index 77528e6474..618fc11fdc 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -2430,6 +2430,11 @@ define_atomic_type(InterrogateType &itype, CPPSimpleType *cpptype) { itype._atomic_token = AT_int; break; + case CPPSimpleType::T_char8_t: + itype._flags |= InterrogateType::F_unsigned; + itype._atomic_token = AT_int; + break; + case CPPSimpleType::T_char16_t: itype._flags |= InterrogateType::F_unsigned; itype._atomic_token = AT_int; diff --git a/dtool/src/interrogate/typeManager.cxx b/dtool/src/interrogate/typeManager.cxx index dba10f4520..44154c65ea 100644 --- a/dtool/src/interrogate/typeManager.cxx +++ b/dtool/src/interrogate/typeManager.cxx @@ -1111,6 +1111,7 @@ is_integer(CPPType *type) { (simple_type->_type == CPPSimpleType::T_bool || simple_type->_type == CPPSimpleType::T_char || simple_type->_type == CPPSimpleType::T_wchar_t || + simple_type->_type == CPPSimpleType::T_char8_t || simple_type->_type == CPPSimpleType::T_char16_t || simple_type->_type == CPPSimpleType::T_char32_t || simple_type->_type == CPPSimpleType::T_int); @@ -1148,7 +1149,8 @@ is_unsigned_integer(CPPType *type) { simple_type->_type == CPPSimpleType::T_wchar_t || simple_type->_type == CPPSimpleType::T_int) && (simple_type->_flags & CPPSimpleType::F_unsigned) != 0) || - (simple_type->_type == CPPSimpleType::T_char16_t || + (simple_type->_type == CPPSimpleType::T_char8_t || + simple_type->_type == CPPSimpleType::T_char16_t || simple_type->_type == CPPSimpleType::T_char32_t); } } diff --git a/dtool/src/parser-inc/compare b/dtool/src/parser-inc/compare new file mode 100644 index 0000000000..d2e45d4a31 --- /dev/null +++ b/dtool/src/parser-inc/compare @@ -0,0 +1,23 @@ +#pragma once + +namespace std { + class partial_ordering { + static inline constexpr partial_ordering less; + static inline constexpr partial_ordering equivalent; + static inline constexpr partial_ordering greater; + static inline constexpr partial_ordering unordered; + }; + + class strong_ordering { + static inline constexpr strong_ordering less; + static inline constexpr strong_ordering equivalent; + static inline constexpr strong_ordering equal; + static inline constexpr strong_ordering greater; + }; + + class weak_ordering { + static inline constexpr weak_ordering less; + static inline constexpr weak_ordering equivalent; + static inline constexpr weak_ordering greater; + }; +};