diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index 162037033a..b8ea13fb0b 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -376,214 +376,216 @@ enum yysymbol_kind_t 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 */ + YYSYMBOL_KW_EXPLICIT_LPAREN = 78, /* KW_EXPLICIT_LPAREN */ + YYSYMBOL_KW_PUBLISHED = 79, /* KW_PUBLISHED */ + YYSYMBOL_KW_FALSE = 80, /* KW_FALSE */ + YYSYMBOL_KW_FINAL = 81, /* KW_FINAL */ + YYSYMBOL_KW_FLOAT = 82, /* KW_FLOAT */ + YYSYMBOL_KW_FRIEND = 83, /* KW_FRIEND */ + YYSYMBOL_KW_FOR = 84, /* KW_FOR */ + YYSYMBOL_KW_GOTO = 85, /* KW_GOTO */ + YYSYMBOL_KW_HAS_VIRTUAL_DESTRUCTOR = 86, /* KW_HAS_VIRTUAL_DESTRUCTOR */ + YYSYMBOL_KW_IF = 87, /* KW_IF */ + YYSYMBOL_KW_INLINE = 88, /* KW_INLINE */ + YYSYMBOL_KW_INT = 89, /* KW_INT */ + YYSYMBOL_KW_IS_ABSTRACT = 90, /* KW_IS_ABSTRACT */ + YYSYMBOL_KW_IS_BASE_OF = 91, /* KW_IS_BASE_OF */ + YYSYMBOL_KW_IS_CLASS = 92, /* KW_IS_CLASS */ + YYSYMBOL_KW_IS_CONSTRUCTIBLE = 93, /* KW_IS_CONSTRUCTIBLE */ + YYSYMBOL_KW_IS_CONVERTIBLE_TO = 94, /* KW_IS_CONVERTIBLE_TO */ + YYSYMBOL_KW_IS_DESTRUCTIBLE = 95, /* KW_IS_DESTRUCTIBLE */ + YYSYMBOL_KW_IS_EMPTY = 96, /* KW_IS_EMPTY */ + YYSYMBOL_KW_IS_ENUM = 97, /* KW_IS_ENUM */ + YYSYMBOL_KW_IS_FINAL = 98, /* KW_IS_FINAL */ + YYSYMBOL_KW_IS_FUNDAMENTAL = 99, /* KW_IS_FUNDAMENTAL */ + YYSYMBOL_KW_IS_POD = 100, /* KW_IS_POD */ + YYSYMBOL_KW_IS_POLYMORPHIC = 101, /* KW_IS_POLYMORPHIC */ + YYSYMBOL_KW_IS_STANDARD_LAYOUT = 102, /* KW_IS_STANDARD_LAYOUT */ + YYSYMBOL_KW_IS_TRIVIAL = 103, /* KW_IS_TRIVIAL */ + YYSYMBOL_KW_IS_UNION = 104, /* KW_IS_UNION */ + YYSYMBOL_KW_LONG = 105, /* KW_LONG */ + YYSYMBOL_KW_MAKE_MAP_KEYS_SEQ = 106, /* KW_MAKE_MAP_KEYS_SEQ */ + YYSYMBOL_KW_MAKE_MAP_PROPERTY = 107, /* KW_MAKE_MAP_PROPERTY */ + YYSYMBOL_KW_MAKE_PROPERTY = 108, /* KW_MAKE_PROPERTY */ + YYSYMBOL_KW_MAKE_PROPERTY2 = 109, /* KW_MAKE_PROPERTY2 */ + YYSYMBOL_KW_MAKE_SEQ = 110, /* KW_MAKE_SEQ */ + YYSYMBOL_KW_MAKE_SEQ_PROPERTY = 111, /* KW_MAKE_SEQ_PROPERTY */ + YYSYMBOL_KW_MUTABLE = 112, /* KW_MUTABLE */ + YYSYMBOL_KW_NAMESPACE = 113, /* KW_NAMESPACE */ + YYSYMBOL_KW_NEW = 114, /* KW_NEW */ + YYSYMBOL_KW_NOEXCEPT = 115, /* KW_NOEXCEPT */ + YYSYMBOL_KW_NOEXCEPT_LPAREN = 116, /* KW_NOEXCEPT_LPAREN */ + YYSYMBOL_KW_NULLPTR = 117, /* KW_NULLPTR */ + YYSYMBOL_KW_OPERATOR = 118, /* KW_OPERATOR */ + YYSYMBOL_KW_OVERRIDE = 119, /* KW_OVERRIDE */ + YYSYMBOL_KW_PRIVATE = 120, /* KW_PRIVATE */ + YYSYMBOL_KW_PROTECTED = 121, /* KW_PROTECTED */ + YYSYMBOL_KW_PUBLIC = 122, /* KW_PUBLIC */ + YYSYMBOL_KW_REGISTER = 123, /* KW_REGISTER */ + YYSYMBOL_KW_REINTERPRET_CAST = 124, /* KW_REINTERPRET_CAST */ + YYSYMBOL_KW_RETURN = 125, /* KW_RETURN */ + YYSYMBOL_KW_SHORT = 126, /* KW_SHORT */ + YYSYMBOL_KW_SIGNED = 127, /* KW_SIGNED */ + YYSYMBOL_KW_SIZEOF = 128, /* KW_SIZEOF */ + YYSYMBOL_KW_STATIC = 129, /* KW_STATIC */ + YYSYMBOL_KW_STATIC_ASSERT = 130, /* KW_STATIC_ASSERT */ + YYSYMBOL_KW_STATIC_CAST = 131, /* KW_STATIC_CAST */ + YYSYMBOL_KW_STRUCT = 132, /* KW_STRUCT */ + YYSYMBOL_KW_TEMPLATE = 133, /* KW_TEMPLATE */ + YYSYMBOL_KW_THREAD_LOCAL = 134, /* KW_THREAD_LOCAL */ + YYSYMBOL_KW_THROW = 135, /* KW_THROW */ + YYSYMBOL_KW_TRUE = 136, /* KW_TRUE */ + YYSYMBOL_KW_TRY = 137, /* KW_TRY */ + YYSYMBOL_KW_TYPEDEF = 138, /* KW_TYPEDEF */ + YYSYMBOL_KW_TYPEID = 139, /* KW_TYPEID */ + YYSYMBOL_KW_TYPENAME = 140, /* KW_TYPENAME */ + YYSYMBOL_KW_UNDERLYING_TYPE = 141, /* KW_UNDERLYING_TYPE */ + YYSYMBOL_KW_UNION = 142, /* KW_UNION */ + YYSYMBOL_KW_UNSIGNED = 143, /* KW_UNSIGNED */ + YYSYMBOL_KW_USING = 144, /* KW_USING */ + YYSYMBOL_KW_VIRTUAL = 145, /* KW_VIRTUAL */ + YYSYMBOL_KW_VOID = 146, /* KW_VOID */ + YYSYMBOL_KW_VOLATILE = 147, /* KW_VOLATILE */ + YYSYMBOL_KW_WCHAR_T = 148, /* KW_WCHAR_T */ + YYSYMBOL_KW_WHILE = 149, /* KW_WHILE */ + YYSYMBOL_START_CPP = 150, /* START_CPP */ + YYSYMBOL_START_CONST_EXPR = 151, /* START_CONST_EXPR */ + YYSYMBOL_START_TYPE = 152, /* START_TYPE */ + 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_175_ = 175, /* '!' */ + YYSYMBOL_176_ = 176, /* ']' */ + YYSYMBOL_YYACCEPT = 177, /* $accept */ + YYSYMBOL_grammar = 178, /* grammar */ + YYSYMBOL_cpp = 179, /* cpp */ + YYSYMBOL_constructor_inits = 180, /* constructor_inits */ + YYSYMBOL_constructor_init = 181, /* constructor_init */ + YYSYMBOL_extern_c = 182, /* extern_c */ + YYSYMBOL_183_1 = 183, /* $@1 */ + YYSYMBOL_declaration = 184, /* declaration */ + YYSYMBOL_friend_declaration = 185, /* friend_declaration */ + YYSYMBOL_186_2 = 186, /* $@2 */ + YYSYMBOL_storage_class = 187, /* storage_class */ + YYSYMBOL_attribute_specifiers = 188, /* attribute_specifiers */ + YYSYMBOL_attribute_specifier = 189, /* attribute_specifier */ + YYSYMBOL_type_like_declaration = 190, /* type_like_declaration */ + YYSYMBOL_191_3 = 191, /* $@3 */ + YYSYMBOL_192_4 = 192, /* $@4 */ + YYSYMBOL_multiple_instance_identifiers = 193, /* multiple_instance_identifiers */ + YYSYMBOL_typedef_declaration = 194, /* typedef_declaration */ + YYSYMBOL_195_5 = 195, /* $@5 */ + YYSYMBOL_typedef_instance_identifiers = 196, /* typedef_instance_identifiers */ + YYSYMBOL_constructor_prototype = 197, /* constructor_prototype */ + YYSYMBOL_198_6 = 198, /* $@6 */ + YYSYMBOL_199_7 = 199, /* $@7 */ + YYSYMBOL_200_8 = 200, /* $@8 */ + YYSYMBOL_function_prototype = 201, /* function_prototype */ + YYSYMBOL_202_9 = 202, /* $@9 */ + YYSYMBOL_203_10 = 203, /* $@10 */ + YYSYMBOL_204_11 = 204, /* $@11 */ + YYSYMBOL_205_12 = 205, /* $@12 */ + YYSYMBOL_206_13 = 206, /* $@13 */ + YYSYMBOL_function_post = 207, /* function_post */ + YYSYMBOL_function_operator = 208, /* function_operator */ + YYSYMBOL_more_template_declaration = 209, /* more_template_declaration */ + YYSYMBOL_template_declaration = 210, /* template_declaration */ + YYSYMBOL_211_14 = 211, /* $@14 */ + YYSYMBOL_template_formal_parameters = 212, /* template_formal_parameters */ + YYSYMBOL_template_nonempty_formal_parameters = 213, /* template_nonempty_formal_parameters */ + YYSYMBOL_typename_keyword = 214, /* typename_keyword */ + YYSYMBOL_template_formal_parameter = 215, /* template_formal_parameter */ + YYSYMBOL_template_formal_parameter_type = 216, /* template_formal_parameter_type */ + YYSYMBOL_instance_identifier = 217, /* instance_identifier */ + YYSYMBOL_218_15 = 218, /* $@15 */ + YYSYMBOL_instance_identifier_and_maybe_trailing_return_type = 219, /* instance_identifier_and_maybe_trailing_return_type */ + YYSYMBOL_maybe_trailing_return_type = 220, /* maybe_trailing_return_type */ + YYSYMBOL_maybe_comma_identifier = 221, /* maybe_comma_identifier */ + YYSYMBOL_function_parameter_list = 222, /* function_parameter_list */ + YYSYMBOL_function_parameters = 223, /* function_parameters */ + YYSYMBOL_formal_parameter_list = 224, /* formal_parameter_list */ + YYSYMBOL_formal_parameters = 225, /* formal_parameters */ + YYSYMBOL_template_parameter_maybe_initialize = 226, /* template_parameter_maybe_initialize */ + YYSYMBOL_maybe_initialize = 227, /* maybe_initialize */ + YYSYMBOL_maybe_initialize_or_constructor_body = 228, /* maybe_initialize_or_constructor_body */ + YYSYMBOL_maybe_initialize_or_function_body = 229, /* maybe_initialize_or_function_body */ + YYSYMBOL_structure_init = 230, /* structure_init */ + YYSYMBOL_structure_init_body = 231, /* structure_init_body */ + YYSYMBOL_function_parameter = 232, /* function_parameter */ + YYSYMBOL_formal_parameter = 233, /* formal_parameter */ + YYSYMBOL_not_paren_formal_parameter_identifier = 234, /* not_paren_formal_parameter_identifier */ + YYSYMBOL_formal_parameter_identifier = 235, /* formal_parameter_identifier */ + YYSYMBOL_parameter_pack_identifier = 236, /* parameter_pack_identifier */ + YYSYMBOL_not_paren_empty_instance_identifier = 237, /* not_paren_empty_instance_identifier */ + YYSYMBOL_empty_instance_identifier = 238, /* empty_instance_identifier */ + YYSYMBOL_type = 239, /* type */ + YYSYMBOL_type_pack = 240, /* type_pack */ + YYSYMBOL_type_decl = 241, /* type_decl */ + YYSYMBOL_predefined_type = 242, /* predefined_type */ + YYSYMBOL_var_type_decl = 243, /* var_type_decl */ + YYSYMBOL_full_type = 244, /* full_type */ + YYSYMBOL_struct_attributes = 245, /* struct_attributes */ + YYSYMBOL_anonymous_struct = 246, /* anonymous_struct */ + YYSYMBOL_247_16 = 247, /* $@16 */ + YYSYMBOL_named_struct = 248, /* named_struct */ + YYSYMBOL_249_17 = 249, /* $@17 */ + YYSYMBOL_maybe_final = 250, /* maybe_final */ + YYSYMBOL_maybe_class_derivation = 251, /* maybe_class_derivation */ + YYSYMBOL_class_derivation = 252, /* class_derivation */ + YYSYMBOL_base_specification = 253, /* base_specification */ + YYSYMBOL_enum = 254, /* enum */ + YYSYMBOL_enum_decl = 255, /* enum_decl */ + YYSYMBOL_enum_element_type = 256, /* enum_element_type */ + YYSYMBOL_enum_body_trailing_comma = 257, /* enum_body_trailing_comma */ + YYSYMBOL_enum_body = 258, /* enum_body */ + YYSYMBOL_enum_keyword = 259, /* enum_keyword */ + YYSYMBOL_struct_keyword = 260, /* struct_keyword */ + YYSYMBOL_namespace_declaration = 261, /* namespace_declaration */ + YYSYMBOL_262_18 = 262, /* $@18 */ + YYSYMBOL_263_19 = 263, /* $@19 */ + YYSYMBOL_using_declaration = 264, /* using_declaration */ + YYSYMBOL_simple_type = 265, /* simple_type */ + YYSYMBOL_simple_int_type = 266, /* simple_int_type */ + YYSYMBOL_simple_float_type = 267, /* simple_float_type */ + YYSYMBOL_simple_void_type = 268, /* simple_void_type */ + YYSYMBOL_code = 269, /* code */ + YYSYMBOL_270_20 = 270, /* $@20 */ + YYSYMBOL_code_block = 271, /* code_block */ + YYSYMBOL_element = 272, /* element */ + YYSYMBOL_optional_const_expr = 273, /* optional_const_expr */ + YYSYMBOL_optional_const_expr_comma = 274, /* optional_const_expr_comma */ + YYSYMBOL_const_expr_comma = 275, /* const_expr_comma */ + YYSYMBOL_no_angle_bracket_const_expr = 276, /* no_angle_bracket_const_expr */ + YYSYMBOL_const_expr = 277, /* const_expr */ + YYSYMBOL_const_operand = 278, /* const_operand */ + YYSYMBOL_formal_const_expr = 279, /* formal_const_expr */ + YYSYMBOL_formal_const_operand = 280, /* formal_const_operand */ + YYSYMBOL_capture_list = 281, /* capture_list */ + YYSYMBOL_capture = 282, /* capture */ + YYSYMBOL_class_derivation_name = 283, /* class_derivation_name */ + YYSYMBOL_name = 284, /* name */ + YYSYMBOL_name_no_final = 285, /* name_no_final */ + YYSYMBOL_string_literal = 286, /* string_literal */ + YYSYMBOL_empty = 287 /* empty */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -894,21 +896,21 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 106 +#define YYFINAL 107 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 7817 +#define YYLAST 8025 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 175 +#define YYNTOKENS 177 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 111 /* YYNRULES -- Number of rules. */ -#define YYNRULES 777 +#define YYNRULES 784 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1595 +#define YYNSTATES 1611 /* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 405 +#define YYMAXUTOK 407 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -925,16 +927,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, 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, 175, 2, 2, 2, 168, 161, 2, + 171, 173, 166, 164, 154, 165, 170, 167, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 156, 155, + 162, 157, 163, 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, 170, 2, 174, 158, 2, 2, 2, 2, 2, + 2, 172, 2, 176, 160, 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, 151, 157, 172, 167, 2, 2, 2, + 2, 2, 2, 153, 159, 174, 169, 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, @@ -962,91 +964,92 @@ 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, 147, 148, 149, 150 + 145, 146, 147, 148, 149, 150, 151, 152 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 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 + 0, 459, 459, 460, 464, 471, 472, 473, 477, 478, + 482, 486, 490, 503, 502, 514, 515, 516, 517, 518, + 519, 520, 533, 542, 546, 554, 558, 562, 583, 610, + 631, 660, 696, 739, 751, 772, 808, 842, 864, 900, + 922, 933, 947, 946, 961, 965, 970, 974, 985, 989, + 993, 997, 1001, 1010, 1014, 1018, 1022, 1026, 1030, 1034, + 1038, 1042, 1046, 1051, 1055, 1062, 1063, 1067, 1068, 1069, + 1074, 1073, 1089, 1099, 1098, 1115, 1123, 1131, 1142, 1158, + 1157, 1172, 1187, 1196, 1211, 1210, 1250, 1249, 1277, 1276, + 1313, 1312, 1343, 1342, 1361, 1360, 1381, 1380, 1412, 1411, + 1437, 1450, 1454, 1458, 1462, 1466, 1475, 1479, 1483, 1487, + 1491, 1496, 1501, 1505, 1509, 1513, 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, 1652, + 1656, 1660, 1664, 1668, 1672, 1676, 1683, 1684, 1685, 1689, + 1691, 1690, 1698, 1699, 1703, 1704, 1708, 1714, 1723, 1724, + 1728, 1732, 1736, 1740, 1746, 1752, 1758, 1765, 1770, 1779, + 1783, 1788, 1796, 1808, 1812, 1826, 1841, 1846, 1851, 1856, + 1861, 1866, 1871, 1876, 1882, 1881, 1912, 1922, 1932, 1936, + 1940, 1949, 1953, 1961, 1965, 1970, 1974, 1979, 1987, 1992, + 2000, 2004, 2009, 2013, 2018, 2026, 2031, 2039, 2043, 2050, + 2054, 2061, 2065, 2069, 2073, 2077, 2084, 2088, 2092, 2096, + 2100, 2104, 2111, 2112, 2113, 2117, 2120, 2121, 2122, 2126, + 2131, 2137, 2143, 2148, 2154, 2160, 2164, 2175, 2179, 2189, + 2193, 2197, 2202, 2207, 2212, 2217, 2222, 2227, 2235, 2239, + 2243, 2248, 2253, 2258, 2263, 2268, 2273, 2278, 2284, 2292, + 2297, 2302, 2307, 2312, 2317, 2322, 2327, 2332, 2337, 2343, + 2351, 2355, 2360, 2365, 2370, 2375, 2380, 2385, 2390, 2395, + 2403, 2407, 2412, 2417, 2422, 2427, 2432, 2437, 2442, 2447, + 2452, 2458, 2465, 2472, 2482, 2486, 2494, 2498, 2502, 2506, + 2510, 2526, 2542, 2551, 2555, 2565, 2572, 2583, 2587, 2595, + 2599, 2603, 2607, 2611, 2627, 2643, 2661, 2670, 2674, 2684, + 2691, 2695, 2703, 2707, 2723, 2739, 2748, 2758, 2765, 2769, + 2777, 2781, 2786, 2790, 2798, 2799, 2800, 2801, 2806, 2805, + 2830, 2829, 2859, 2860, 2867, 2868, 2872, 2873, 2877, 2881, + 2885, 2889, 2893, 2897, 2901, 2905, 2909, 2913, 2920, 2928, + 2932, 2936, 2941, 2949, 2953, 2960, 2961, 2966, 2973, 2974, + 2979, 2987, 2991, 2995, 3002, 3006, 3010, 3018, 3017, 3040, + 3039, 3062, 3063, 3067, 3073, 3080, 3086, 3095, 3096, 3097, + 3101, 3105, 3109, 3113, 3117, 3121, 3125, 3130, 3135, 3140, + 3145, 3149, 3154, 3163, 3168, 3176, 3180, 3184, 3192, 3202, + 3202, 3212, 3213, 3217, 3218, 3219, 3220, 3221, 3222, 3223, + 3224, 3225, 3226, 3227, 3228, 3228, 3228, 3229, 3229, 3229, + 3229, 3229, 3230, 3230, 3230, 3230, 3230, 3231, 3231, 3231, + 3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233, 3233, 3233, + 3234, 3234, 3235, 3235, 3235, 3235, 3235, 3236, 3236, 3236, + 3236, 3236, 3237, 3237, 3237, 3237, 3237, 3238, 3238, 3238, + 3238, 3238, 3239, 3239, 3239, 3239, 3239, 3240, 3240, 3240, + 3240, 3240, 3241, 3241, 3241, 3241, 3241, 3241, 3242, 3242, + 3242, 3242, 3242, 3243, 3243, 3243, 3243, 3244, 3244, 3244, + 3244, 3245, 3245, 3245, 3245, 3245, 3246, 3246, 3246, 3246, + 3247, 3247, 3247, 3247, 3247, 3248, 3248, 3248, 3248, 3249, + 3249, 3249, 3249, 3249, 3250, 3250, 3253, 3253, 3253, 3253, + 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3254, 3254, 3254, + 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3255, 3255, 3259, + 3263, 3270, 3274, 3281, 3285, 3292, 3296, 3300, 3304, 3308, + 3312, 3316, 3320, 3324, 3328, 3332, 3336, 3340, 3344, 3348, + 3352, 3356, 3360, 3364, 3368, 3372, 3376, 3380, 3384, 3388, + 3392, 3396, 3400, 3404, 3408, 3412, 3416, 3420, 3424, 3428, + 3432, 3436, 3440, 3444, 3448, 3456, 3460, 3464, 3468, 3472, + 3476, 3480, 3490, 3500, 3506, 3512, 3518, 3524, 3530, 3536, + 3542, 3549, 3556, 3563, 3570, 3576, 3582, 3586, 3590, 3594, + 3598, 3602, 3606, 3617, 3628, 3632, 3636, 3640, 3644, 3648, + 3652, 3656, 3660, 3664, 3668, 3672, 3676, 3680, 3684, 3688, + 3692, 3696, 3700, 3704, 3708, 3712, 3716, 3720, 3724, 3728, + 3732, 3736, 3740, 3744, 3748, 3752, 3756, 3763, 3767, 3771, + 3775, 3779, 3783, 3787, 3791, 3795, 3801, 3807, 3811, 3817, + 3824, 3828, 3832, 3836, 3840, 3844, 3848, 3852, 3856, 3860, + 3864, 3868, 3872, 3876, 3880, 3884, 3888, 3902, 3906, 3910, + 3914, 3918, 3922, 3926, 3930, 3934, 3938, 3942, 3946, 3950, + 3961, 3972, 3976, 3980, 3984, 3988, 3992, 3996, 4000, 4004, + 4008, 4012, 4016, 4020, 4024, 4028, 4032, 4036, 4040, 4044, + 4048, 4052, 4056, 4060, 4064, 4068, 4072, 4076, 4080, 4084, + 4088, 4092, 4099, 4103, 4107, 4111, 4115, 4119, 4123, 4127, + 4131, 4137, 4143, 4151, 4155, 4159, 4163, 4170, 4180, 4186, + 4192, 4202, 4214, 4222, 4226, 4256, 4260, 4264, 4268, 4272, + 4276, 4282, 4286, 4290, 4294, 4298, 4309, 4313, 4317, 4321, + 4329, 4333, 4337, 4343, 4354 }; #endif @@ -1078,37 +1081,38 @@ static const char *const yytname[] = "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_EXPLICIT_LPAREN", "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", - "$@3", "$@4", "multiple_instance_identifiers", "typedef_declaration", - "$@5", "typedef_instance_identifiers", "constructor_prototype", "$@6", - "$@7", "$@8", "function_prototype", "$@9", "$@10", "$@11", "$@12", - "$@13", "function_post", "function_operator", - "more_template_declaration", "template_declaration", "$@14", - "template_formal_parameters", "template_nonempty_formal_parameters", - "typename_keyword", "template_formal_parameter", - "template_formal_parameter_type", "instance_identifier", "$@15", + "KW_NEW", "KW_NOEXCEPT", "KW_NOEXCEPT_LPAREN", "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", "$@3", "$@4", + "multiple_instance_identifiers", "typedef_declaration", "$@5", + "typedef_instance_identifiers", "constructor_prototype", "$@6", "$@7", + "$@8", "function_prototype", "$@9", "$@10", "$@11", "$@12", "$@13", + "function_post", "function_operator", "more_template_declaration", + "template_declaration", "$@14", "template_formal_parameters", + "template_nonempty_formal_parameters", "typename_keyword", + "template_formal_parameter", "template_formal_parameter_type", + "instance_identifier", "$@15", "instance_identifier_and_maybe_trailing_return_type", "maybe_trailing_return_type", "maybe_comma_identifier", "function_parameter_list", "function_parameters", @@ -1161,18 +1165,18 @@ static const yytype_int16 yytoknum[] = 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 123, 44, 59, 58, 61, 63, 124, 94, 38, - 60, 62, 43, 45, 42, 47, 37, 126, 46, 40, - 91, 41, 125, 33, 93 + 405, 406, 407, 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 -#define YYPACT_NINF (-942) +#define YYPACT_NINF (-943) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-773) +#define YYTABLE_NINF (-780) #define yytable_value_is_error(Yyn) \ 0 @@ -1181,166 +1185,168 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 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 + 351, -943, 4051, 6509, 55, 5643, -943, -943, -943, -943, + -943, -943, -943, -943, -43, -99, -60, -53, 1, 28, + 32, -104, 35, -30, -943, -943, 45, 81, 84, 105, + 141, 154, 161, 176, 179, 193, 196, 237, 258, 267, + 271, 274, 289, 291, 299, 6771, 4051, -943, -943, -23, + 305, 309, 2923, -20, -943, 311, 315, 319, 4051, 4051, + 4051, 4051, 4051, 2045, 967, 4051, 4070, -943, 169, -943, + -943, -943, -943, -943, -943, -943, -943, -943, 6627, 334, + -943, -19, -943, -943, 7877, 4754, 4754, -943, 6780, 346, + -943, 4754, -943, -943, 415, 415, -943, -943, -943, -943, + -31, 88, -943, -943, -943, -943, -943, -943, 6268, 359, + -943, 7838, 7838, 7838, 7838, 7838, -943, 7838, 6077, 7838, + 4051, -4, -943, 7799, 365, 379, 380, 387, 392, 393, + 7838, 4736, 65, 92, 275, 7838, 7838, 403, 7640, 7838, + 7838, 7510, 7838, 7838, -943, -943, -943, -943, 4899, -943, + -943, -943, -943, -943, 4051, 4051, 6509, 4051, 4051, 4051, + 4051, 4051, 6509, 4051, 6509, 4051, 6509, 4051, 6509, 6509, + 6509, 6509, 6509, 6509, 6509, 6509, 6509, 6509, 6509, 6509, + 6509, 6509, 6509, 4051, -943, -943, 406, 6780, 408, 409, + 6780, -943, -943, 4758, 6509, 4051, 4051, 412, 2045, 103, + 6509, 2045, 4051, 4051, 103, 103, 103, 103, 103, -43, + -60, -53, 1, 28, 32, 35, 45, 84, 6473, 6215, + 7539, 7553, 319, 144, -70, 4070, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, 6780, 6780, + -81, 266, -943, -943, 103, 4051, 4051, 4051, 4051, 4051, + 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, + 4051, 4051, 4051, 4051, 4051, 4051, 6780, 3064, 4051, -943, + -943, 415, 415, 3205, -943, -943, -943, 4754, -943, -943, + -943, -943, 6509, -943, 356, 446, 202, 415, 415, 202, + 202, 5763, 413, -943, 416, -943, -943, -943, -943, -943, + -943, 5019, 428, 5798, -943, 6780, 511, 433, 427, 2636, + 6116, 7838, -943, -943, -943, -943, -943, -943, 7838, -943, + -943, -943, 5120, -943, 7683, 4814, -943, 6780, 6780, 6780, + 6780, 6780, 6780, -943, -943, 453, -943, -943, -943, -943, + -943, 4051, -943, 4954, -943, 448, -943, 5046, -943, 6780, + 6780, 124, -943, -943, 284, 440, -943, 441, 6653, 6780, + 442, -943, 6780, -943, 269, 459, -943, -943, -943, -943, + 4315, -943, -943, 443, 461, -943, 447, 452, 456, 458, + 463, 464, 465, 460, 473, 471, 475, 476, 479, 480, + 462, 481, -67, 501, 484, 486, 489, 490, 491, 494, + 499, 500, 503, 505, 506, 4051, -943, 6509, 4051, -943, + 7521, -943, 522, 513, 515, 6780, 518, 529, 520, 5179, + 524, 526, 4051, 4051, -943, 680, -943, 1132, 530, 4051, + -943, -943, 1784, 5573, 4544, 4544, 1058, 1058, 1271, 429, + 429, -943, 5474, 5773, 5820, 4187, 1058, 1058, 95, 95, + 103, 103, 103, -943, -943, -66, 2655, -943, -943, 531, + 5200, 532, 202, 540, 548, 6780, 202, 202, 202, 202, + 202, 546, -943, 413, -943, 413, -943, 546, 546, -943, + 202, 6268, 6535, 6412, 202, 202, 547, 13, -943, 922, + 683, -943, 4051, 6780, 545, -943, -943, -943, -943, 5019, + -44, 152, 165, 6268, 553, 213, -943, -943, -943, 569, + 7838, 6268, 4333, -43, 554, 5219, -943, 7838, -943, -943, + 573, 576, 589, 598, 602, 603, 608, 6908, -943, 4352, + 6176, 332, 593, 269, -943, -943, 614, 615, -943, 6509, + -943, 22, 3346, 6863, 993, -943, 6509, -943, 600, 219, + -943, -943, 2782, -943, -943, 826, -943, 616, 5798, -943, + -943, -943, -943, -943, -943, -943, -943, 605, -943, 617, + -943, -943, -943, -943, 6509, -943, 6509, -943, 6509, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + 5238, 601, 621, -943, 625, -943, -943, 627, 4192, 630, + -943, -943, -943, -943, 103, 4070, -943, 6780, 266, 6273, + 5989, -943, 4070, 4051, -943, -943, -943, -943, -943, 546, + 202, -943, 546, 546, 546, 546, 546, 4051, 162, 724, + 6627, 922, 683, -943, 188, 246, -943, -943, 6370, 632, + 922, 922, 922, 922, 922, 922, -101, -943, -943, 636, + 6780, 683, 683, 683, 683, 683, 683, -75, 611, 4070, + -943, -113, -943, 650, 757, 2636, -943, 730, 6268, -943, + -943, -943, -943, -943, -943, -943, -943, 641, 652, 658, + -943, -943, 6771, -943, -943, 660, 1715, 665, -943, 661, + 4051, 4051, 4051, 4051, 2045, 4051, 656, 50, -943, -943, + 5512, -943, 169, -943, 7838, 7838, -943, 6995, -943, 823, + 824, 830, 832, 835, 836, -943, -943, 301, 692, -943, + -943, -943, -943, 389, -943, 685, 696, 5146, -943, 542, + -943, -943, 73, -943, 826, -943, -943, 697, 6273, 682, + 687, 826, 6273, 684, 5278, 993, 690, 993, 993, 993, + 993, 993, 321, -943, -943, 686, 7082, -943, -943, -943, + 6780, 404, -943, 688, -943, 703, 705, 3487, 3506, 695, + 826, 826, 4830, 826, 826, 826, 826, -943, 86, 343, + -943, 5019, -943, 4051, 4051, 691, 693, 716, -943, -943, + -943, 4051, -943, 4051, -943, 718, -943, 6745, 6268, -943, + -943, -943, -943, -943, 4051, -943, 694, -943, -943, 710, + -943, 4070, 546, 717, 721, 6412, 922, 683, -101, -75, + 726, 727, 5989, -943, -943, 922, 728, 728, 728, 728, + 728, 340, 4051, -943, 683, -943, 731, 731, 731, 731, + 731, 352, 4051, -943, 733, -943, 4051, -943, 729, 5297, + 7169, -943, 750, -943, -943, 6509, 6509, 6509, 737, 6509, + 739, 2045, 121, 6509, 2045, 103, 103, 103, 103, 740, + -52, 103, -943, -943, 4480, 4051, 4051, 4051, 4051, 4051, + 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, + 4051, 4051, 4051, 4051, 4051, 4051, 6780, 3628, 4051, -943, + -943, -943, -943, 758, -50, 761, 762, 770, 771, 7256, + 77, -943, 542, 7760, 6176, 6780, 772, 764, 542, 542, + 542, 542, 542, 542, 111, 731, -943, 343, -943, 754, + 766, 826, 348, 755, -943, -943, 362, 993, 769, 769, + 769, 769, 769, -943, 4051, -943, -943, 6273, 768, 388, + -943, 143, 783, 792, -943, 2462, -943, -943, -943, 3487, + 774, 795, 4070, -943, -943, 826, 373, 373, 940, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, 780, 778, -943, -943, + 373, 373, 373, 367, 4051, -943, 4051, -943, 2782, 801, + -943, 650, -49, -46, -943, -943, -943, -40, -39, -943, + 6771, 415, 908, 5396, 49, -943, -943, 6273, -943, -101, + -75, -943, -943, 6273, 6273, -943, 728, 788, 784, 731, + 790, 786, 3788, -943, -943, -943, 6076, 811, 812, -943, + 794, 809, 813, 4051, 817, 6780, 802, 818, 810, 5455, + 4051, -943, -943, -943, 1784, 5573, 4544, 4544, 1058, 1058, + 1271, 429, 429, -943, 5493, 5773, 5820, 4187, 1058, 1058, + 95, 95, 103, 103, 103, -943, -943, -35, 2942, 7343, + 964, 972, 831, 975, 815, -943, 983, 984, 990, -943, + 846, 111, 731, -943, -943, -943, -943, -943, -943, 6509, + 542, 4669, -943, -943, 848, -943, -943, -943, 376, 838, + -943, -943, 769, 6273, 837, 841, -943, -943, 6780, 4051, + 4051, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + -943, -943, -943, -943, -943, -943, -943, -943, -943, -943, + 842, -943, 3769, 373, -943, -943, -943, -943, 4070, 4333, + 843, 3506, 826, -943, -943, -943, -943, 5989, 415, -943, + -943, -943, -943, 18, 844, 847, -943, -943, 849, 851, + 6273, -943, 6273, -943, -943, 5949, 6172, 6232, 6780, 450, + -943, -943, 996, -943, 6076, -943, 850, 855, 856, 860, + 859, 4192, 862, -943, -943, 103, 4051, -943, -943, -943, + 861, -29, -943, 863, 885, -28, 874, -8, -943, -943, + -943, 879, 892, 894, 895, 4567, 896, 4669, 4669, 4669, + 4669, 4669, 2045, 4669, 1804, -943, 826, 5999, 6273, 890, + -943, 5999, 6273, 891, -943, -943, 889, -943, 893, 900, + 2234, -943, 3487, 4070, 902, -943, -943, 912, -943, 904, + -943, -943, -943, -943, -943, 911, 917, 6621, -943, 6621, + -943, 6621, -943, -943, 6621, 6621, 6621, -943, 7430, -943, + 4051, 4051, -943, 4051, -943, 4051, 4070, 913, 1056, 936, + 1085, -943, 1087, 943, 944, 1090, 946, 6509, 6509, 6509, + 6509, 931, 2045, 127, 6509, 127, 127, 127, 127, 127, + 930, 16, 127, 4669, 4669, 4669, 4669, 4669, 4669, 4669, + 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, + 4669, 4669, 6780, 3910, 4051, -943, 932, -943, 6273, 933, + -943, 5999, -943, -943, 1089, -943, 934, -943, -943, -943, + 5989, 5989, 5989, -943, -943, -943, -943, -943, -943, -943, + -943, -943, 19, 25, 130, 146, -943, 953, -943, 938, + 955, -943, -943, 147, -943, 942, 954, 957, 958, 6780, + 945, 960, 4669, -943, 2394, 5837, 1506, 1506, 1193, 1193, + 1461, 568, 568, -943, 1257, 5854, 5878, 1894, 186, 186, + 127, 127, 127, -943, -943, 170, 3224, -943, 6273, 962, + -943, 5999, -943, -943, 5999, 952, -943, -943, -943, 5999, + 5999, -943, -943, -943, -943, 1117, 963, 976, 1120, 1127, + 986, -943, 974, 977, 978, 973, 1916, 980, 127, 4669, + -943, -943, 5999, 979, -943, 5999, -943, -943, 992, -943, + 985, 205, -943, 4051, 4051, 4051, -943, 4051, 1804, -943, + 5989, -943, 998, 1146, 1002, 248, 252, 260, 263, 5989, + -943, -943, 987, -943, -943, -943, -943, -943, -943, 1006, + -943 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1348,200 +1354,202 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 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, 784, 0, 0, 0, 784, 5, 671, 667, 670, + 780, 781, 673, 674, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 669, 675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 677, 676, 0, + 0, 0, 0, 0, 668, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 784, 0, 3, 605, 672, 305, + 316, 315, 400, 401, 403, 404, 405, 384, 0, 0, + 416, 381, 415, 410, 407, 406, 409, 385, 0, 0, + 386, 408, 418, 402, 784, 784, 4, 307, 308, 309, + 0, 370, 784, 304, 397, 398, 399, 1, 0, 0, + 21, 784, 784, 784, 784, 784, 22, 784, 784, 784, + 0, 0, 42, 784, 0, 0, 0, 0, 0, 0, + 784, 0, 0, 0, 0, 784, 784, 0, 784, 784, + 784, 0, 784, 784, 6, 17, 7, 19, 0, 15, + 16, 18, 76, 44, 784, 784, 0, 784, 784, 784, + 784, 784, 0, 784, 0, 784, 0, 784, 0, 0, 0, 0, 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, 784, 331, 337, 0, 0, 0, 630, + 0, 784, 330, 0, 0, 784, 784, 0, 0, 627, + 0, 0, 784, 784, 639, 637, 636, 638, 635, 305, + 400, 401, 403, 404, 405, 416, 415, 410, 407, 406, + 409, 408, 402, 0, 0, 563, 765, 766, 767, 775, + 768, 771, 769, 773, 772, 770, 774, 754, 755, 0, + 0, 784, 760, 753, 634, 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, 782, + 783, 784, 784, 0, 382, 383, 417, 407, 412, 411, + 414, 306, 0, 413, 0, 291, 784, 784, 784, 784, + 784, 784, 0, 340, 290, 342, 784, 776, 777, 778, + 779, 0, 372, 0, 344, 0, 0, 65, 67, 0, + 784, 784, 59, 45, 56, 57, 58, 60, 784, 46, + 159, 51, 0, 23, 784, 0, 49, 0, 0, 0, + 0, 0, 0, 55, 784, 0, 26, 25, 24, 53, + 48, 0, 163, 0, 162, 0, 61, 0, 20, 0, + 0, 0, 50, 54, 339, 318, 329, 0, 0, 0, + 0, 13, 0, 73, 0, 338, 70, 320, 321, 322, + 370, 784, 317, 0, 562, 561, 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, 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, 332, 0, 784, 334, + 0, 663, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 666, 758, 761, 0, 784, 0, + 756, 219, 648, 649, 650, 651, 652, 653, 654, 657, + 658, 665, 0, 645, 646, 647, 655, 656, 643, 644, + 640, 641, 642, 664, 662, 0, 0, 341, 343, 0, + 0, 0, 784, 292, 0, 281, 784, 784, 784, 784, + 784, 297, 280, 0, 293, 0, 294, 296, 295, 204, + 784, 0, 0, 0, 784, 784, 0, 205, 208, 784, + 0, 203, 784, 378, 0, 375, 374, 369, 373, 0, + 765, 766, 767, 0, 0, 769, 348, 310, 350, 0, + 784, 0, 784, 318, 0, 0, 47, 784, 43, 784, + 0, 0, 0, 0, 0, 0, 0, 784, 387, 0, + 784, 339, 318, 0, 338, 79, 0, 0, 393, 0, + 84, 88, 0, 0, 784, 319, 0, 784, 0, 0, + 419, 226, 0, 75, 72, 0, 325, 372, 0, 612, + 611, 629, 619, 614, 616, 617, 618, 0, 625, 0, + 624, 680, 613, 681, 0, 683, 0, 684, 0, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 621, + 0, 0, 0, 333, 0, 620, 623, 0, 626, 0, + 632, 633, 622, 615, 606, 564, 759, 0, 784, 784, + 784, 101, 220, 0, 661, 660, 313, 312, 314, 298, + 784, 282, 287, 283, 284, 286, 285, 784, 0, 0, + 0, 784, 0, 245, 0, 0, 784, 207, 0, 0, + 784, 784, 784, 784, 784, 784, 784, 259, 258, 0, + 269, 0, 0, 0, 0, 0, 0, 784, 0, 560, + 559, 379, 368, 311, 0, 0, 784, 784, 0, 62, + 66, 746, 742, 745, 748, 749, 211, 0, 0, 0, + 744, 750, 0, 752, 751, 0, 0, 0, 743, 0, + 0, 0, 0, 0, 0, 0, 0, 212, 247, 215, + 248, 697, 747, 210, 784, 784, 52, 784, 389, 0, + 0, 0, 0, 0, 0, 391, 784, 0, 0, 180, + 181, 182, 168, 0, 169, 0, 165, 170, 166, 784, + 179, 164, 0, 81, 0, 396, 395, 0, 784, 0, + 0, 0, 784, 0, 0, 784, 0, 784, 784, 784, + 784, 784, 0, 250, 249, 0, 784, 90, 419, 221, + 0, 0, 74, 0, 784, 0, 0, 784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 784, 784, + 183, 0, 323, 0, 0, 0, 0, 0, 335, 336, + 631, 0, 628, 0, 757, 0, 109, 0, 0, 102, + 111, 106, 110, 104, 0, 107, 0, 103, 108, 0, + 198, 659, 288, 0, 0, 0, 784, 0, 784, 784, + 0, 0, 784, 206, 209, 784, 264, 260, 261, 263, + 262, 0, 784, 239, 0, 270, 275, 271, 272, 274, + 273, 0, 784, 242, 299, 376, 0, 345, 0, 0, + 784, 353, 784, 352, 69, 0, 0, 0, 707, 0, + 0, 0, 704, 0, 0, 715, 714, 713, 712, 0, + 0, 711, 68, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, + 63, 392, 784, 0, 0, 784, 0, 0, 0, 784, + 0, 41, 784, 784, 0, 173, 171, 0, 784, 784, + 784, 784, 784, 784, 784, 177, 80, 784, 394, 0, + 0, 0, 0, 0, 327, 326, 0, 784, 255, 251, + 252, 254, 253, 96, 784, 328, 14, 784, 0, 0, + 8, 0, 0, 0, 227, 420, 421, 229, 230, 784, + 0, 233, 235, 232, 228, 0, 190, 186, 0, 126, + 127, 128, 129, 130, 131, 134, 135, 136, 151, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 155, 154, 138, 137, 123, 125, 124, 132, 133, + 121, 122, 118, 119, 120, 117, 0, 0, 116, 184, + 187, 189, 188, 0, 0, 194, 784, 196, 0, 0, + 77, 324, 0, 0, 682, 685, 686, 0, 0, 784, + 0, 784, 0, 0, 0, 419, 289, 784, 246, 784, + 784, 240, 243, 784, 784, 300, 265, 268, 0, 276, + 279, 0, 380, 347, 346, 349, 0, 0, 355, 354, + 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, + 0, 741, 213, 216, 724, 725, 726, 727, 728, 729, + 730, 733, 734, 740, 0, 721, 722, 723, 731, 732, + 719, 720, 716, 717, 718, 739, 738, 0, 0, 784, + 0, 0, 0, 0, 0, 201, 0, 0, 0, 388, + 0, 784, 178, 158, 156, 161, 157, 167, 174, 0, + 784, 0, 175, 217, 0, 82, 784, 86, 0, 0, + 784, 98, 256, 784, 0, 0, 222, 419, 0, 784, + 784, 224, 225, 423, 424, 428, 425, 433, 426, 427, + 429, 430, 431, 432, 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, 483, 484, 485, 486, 508, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 784, 552, 553, 554, + 545, 557, 541, 542, 540, 547, 548, 536, 537, 538, + 539, 546, 544, 551, 549, 555, 550, 543, 556, 422, + 0, 231, 234, 191, 185, 153, 152, 193, 197, 784, + 0, 220, 0, 609, 608, 610, 607, 784, 784, 199, + 115, 105, 112, 0, 0, 0, 241, 244, 0, 0, + 784, 266, 784, 277, 377, 773, 0, 772, 0, 0, + 356, 358, 762, 784, 0, 706, 0, 0, 0, 0, + 0, 703, 0, 709, 710, 698, 0, 737, 736, 390, + 0, 0, 33, 202, 0, 0, 0, 0, 40, 176, + 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 218, 565, 0, 85, 784, 0, + 92, 89, 784, 0, 257, 784, 0, 9, 0, 0, + 0, 236, 784, 237, 0, 192, 78, 0, 200, 0, + 113, 678, 784, 784, 784, 0, 0, 0, 361, 0, + 360, 0, 359, 763, 0, 0, 0, 764, 784, 357, + 0, 0, 708, 0, 705, 0, 735, 0, 0, 0, + 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 572, 0, 580, 578, 577, 579, 576, + 0, 0, 575, 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, 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 + 0, 0, 0, 0, 0, 83, 0, 94, 784, 0, + 784, 91, 223, 12, 10, 558, 0, 784, 419, 114, + 784, 784, 784, 784, 784, 367, 366, 365, 364, 363, + 362, 351, 0, 0, 0, 0, 36, 784, 34, 0, + 0, 37, 39, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 604, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 603, 0, 586, 587, 588, 584, 585, + 581, 582, 583, 602, 601, 0, 0, 784, 784, 0, + 784, 97, 11, 238, 195, 0, 303, 302, 301, 267, + 278, 701, 700, 702, 699, 0, 0, 0, 0, 0, + 0, 574, 0, 0, 0, 0, 571, 0, 566, 0, + 600, 599, 87, 0, 784, 99, 679, 202, 0, 28, + 0, 0, 30, 0, 0, 0, 573, 0, 598, 784, + 784, 35, 0, 0, 0, 0, 0, 0, 0, 784, + 93, 38, 0, 31, 569, 568, 570, 567, 95, 0, + 32 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -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, + -943, -943, -311, -943, 24, -943, -943, 845, -133, -943, + 1066, -454, 498, -118, -943, -943, -125, -943, -943, -198, + -943, -943, -943, -943, 825, -943, -943, -943, -943, -943, + -424, -943, -943, -116, -943, -943, -943, -943, 256, 467, + -696, -943, -719, -771, -326, -416, -943, -114, -943, 62, + -565, -943, -507, -942, -943, -464, 302, -681, -413, -469, + -139, -91, -48, 525, -285, -657, 839, 215, -162, -109, + -943, -98, -943, -943, -943, -943, -142, -96, -943, -468, + -943, -943, -32, -5, -943, -943, -943, -943, -7, 5, + -943, -943, -755, -943, -69, -943, -605, -149, -62, 293, + 622, 98, 502, -943, -943, 765, -646, 1430, 34, -476, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -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 + -1, 4, 5, 949, 950, 145, 547, 146, 147, 324, + 148, 306, 307, 149, 555, 549, 777, 348, 734, 926, + 363, 738, 1368, 742, 364, 947, 1468, 1538, 1133, 1372, + 610, 1009, 1115, 150, 345, 725, 726, 727, 728, 729, + 778, 1289, 779, 809, 1104, 486, 487, 696, 697, 1122, + 430, 762, 553, 960, 961, 488, 699, 752, 826, 836, + 292, 293, 94, 95, 365, 189, 366, 96, 303, 97, + 666, 98, 667, 852, 1057, 1058, 1320, 99, 100, 497, + 493, 494, 101, 102, 151, 716, 902, 152, 103, 104, + 105, 106, 763, 764, 955, 1279, 658, 373, 374, 1568, + 225, 67, 700, 701, 240, 241, 1321, 1322, 647, 68, + 153 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1549,1823 +1557,1868 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 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, + 6, 224, 320, 948, 295, 342, 376, 1017, 378, 379, + 380, 381, 382, 190, 384, 927, 386, 1280, 388, 633, + 344, 657, 813, 527, 514, 858, 733, 629, 637, 410, + 271, 663, 739, 1389, 404, 740, 702, -776, 192, 367, + 191, 845, 274, 794, 846, 932, 413, 414, 698, 664, + 368, 1045, 369, 420, 421, 107, 429, 670, 162, 226, + 227, 228, 534, 243, 936, 873, 938, 939, 940, 941, + 942, 832, 156, 427, 966, 967, 646, 1010, 1011, 1012, + 1013, 833, 429, 269, 423, 270, 740, 576, 423, 278, + 279, 280, 843, 294, 294, 428, 283, 842, 297, 298, + 299, 304, 423, 424, 1101, 423, 577, 614, 423, -776, + 154, 157, -776, 275, 423, 423, 370, 229, 158, 423, + 797, 1071, 296, 1102, 1293, 1418, 1422, 1294, 155, 254, + 230, 231, 164, 1295, 1296, 302, 224, 254, 1337, 194, + 1031, 372, 200, 371, 1419, 1423, 1425, 471, 473, 475, + 477, 478, 323, 375, 375, 884, 375, 375, 375, 375, + 375, 1452, 375, 819, 375, 1426, 375, 638, 232, 233, + 423, 234, 159, 423, 824, 269, 235, 270, 236, 423, + 457, 458, 375, 837, 838, 839, 840, 841, 741, 1513, + 304, 1390, 1551, 795, 375, 375, 474, 476, 1552, 160, + 367, 375, 375, 161, 874, 455, 163, 300, 707, 558, + 702, 368, 822, 369, 1019, 464, 165, 465, 818, 466, + 1452, 336, 1302, 278, 279, 280, 283, 1048, 827, 828, + 829, 830, 831, -777, 367, 1128, 756, 1051, 367, 741, + 431, 910, 1014, 489, 301, 368, -778, 369, 337, 368, + 1110, 369, 166, 1041, 1042, 167, 1132, 1015, 1016, 592, + 925, 263, 264, 265, 467, 266, 267, 268, 1121, 1283, + 294, 294, 1020, 266, 267, 268, 168, 370, 223, 538, + 1304, 539, 278, 832, 423, 472, 294, 294, 472, 472, + 491, 896, 897, 898, -779, 495, 1139, 1462, 1463, 1464, + 423, 1559, 372, 1553, 371, -777, 498, 10, -777, 11, + 544, 370, 169, 1021, 1140, 370, 924, 422, -778, 1554, + 1560, -778, 929, 619, 423, 170, 933, 622, 623, 624, + 625, 626, 171, 6, 627, 814, 372, 508, 371, 1134, + 372, 628, 371, 1570, 1032, 634, 635, 172, 1040, 468, + 173, 1038, 1459, 1460, 1461, 850, 1462, 1463, 1464, 1593, + 627, 820, 1124, 469, 174, 1049, -779, 175, 470, -779, + 304, 377, 758, 1298, 759, 760, 761, 383, 1594, 385, + 848, 387, 1376, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 702, 719, + 720, 721, 423, 1039, 557, 909, 423, 375, 176, 412, + 698, 1290, 1046, 416, 423, 417, 418, 423, 627, 821, + 1125, 1604, 550, 429, 551, 1605, 552, 611, 284, 177, + 285, 338, 286, 1606, 631, 489, 1607, -100, 178, -100, + 1476, -100, 179, 1112, 72, 180, 73, 74, 75, 76, + 837, 838, 839, 840, 841, 540, 226, 227, 228, 80, + 181, 472, 182, 254, 489, 472, 472, 472, 472, 472, + 183, 82, 952, 953, 1306, 1307, 195, 287, 83, 472, + 196, 812, 201, 472, 472, -100, 202, -100, 648, -100, + 203, 660, 943, 944, 84, 745, 550, 461, 551, 1111, + 1018, 1, 2, 3, 498, 273, 827, 828, 829, 830, + 831, 703, 832, 1047, 229, 85, 86, 282, 6, 1015, + 1016, 1129, 462, 730, 842, 1050, 1387, 230, 231, 731, + 309, 1135, 91, 1131, 944, 92, 327, 93, 1015, 1016, + 1287, 1137, 1138, 754, 1015, 1016, 6, 1015, 1016, 1369, + 328, 329, 297, 298, 299, 917, 367, 650, 330, 918, + 510, 489, 288, 331, 332, 232, 233, 368, 234, 369, + 1404, 1405, 1406, 235, 341, 236, 289, 405, 753, 407, + 408, 290, 816, 415, 499, 492, 291, 511, -280, 780, + 489, 1099, 508, 261, 262, 263, 264, 265, 512, 266, + 267, 268, 1452, 272, 919, 1297, 528, 431, 491, 810, + 530, 541, 542, 546, 554, 423, 574, 559, -281, 472, + 560, 1305, 591, 567, 66, 561, 660, 1308, 1309, 562, + 648, 563, 870, 370, 569, 611, 564, 565, 566, 648, + 648, 648, 648, 648, 648, 431, 568, 927, 570, 571, + 190, 1049, 572, 573, 575, 578, 431, 579, 372, 580, + 371, 300, 581, 582, 583, 6, 853, 584, 193, 1398, + 1400, 1402, 585, 586, 199, 192, 587, 191, 588, 589, + 204, 205, 206, 207, 208, 594, 595, 244, 596, 920, + 489, 598, 599, 600, 489, 606, 649, 602, 650, 603, + 651, 609, 1367, 921, 616, 618, 1371, 1046, 922, 1546, + 1547, 1548, -282, 923, 620, 6, 730, 1373, 627, 662, + 636, 1022, 1023, 1545, 665, 668, 708, 704, 648, 1027, + 709, 1028, 1457, 1458, 1459, 1460, 1461, 491, 1462, 1463, + 1464, 491, 322, 710, 754, 652, 754, 754, 754, 754, + 754, 1485, 711, 1486, 737, 1487, 712, 713, 1488, 1489, + 1490, 755, 714, 956, 732, 190, 963, 489, 780, 735, + 736, 757, 781, 815, 789, 780, 783, 810, 431, 753, + 1113, 753, 753, 753, 753, 753, 498, 844, 784, 785, + 192, 786, 191, 787, 790, 1114, 791, 1116, 825, 870, + 792, 793, 834, -371, 780, 780, 847, 780, 780, 780, + 780, 851, 855, 702, 856, 648, 490, 431, 431, 1600, + 857, 810, 859, 419, 648, 698, 489, 863, 1608, 872, + 653, 660, 864, 903, 904, 1097, 297, 298, 299, 769, + 905, 660, 906, 770, 654, 907, 908, 911, 913, 655, + 914, 1059, 928, 931, 656, 930, 937, 934, 957, 945, + 958, 965, 954, 1035, 1024, 1034, 1025, 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, + 445, 446, 447, 448, 449, 450, 451, 452, 771, 1026, + 456, 1029, 1037, 1036, 1395, 460, 1396, 1043, 1044, 489, + 832, 6, 1053, 842, 1105, -289, 1056, 730, 1063, 869, + 1065, 648, 1100, 1070, 1328, 1103, 1106, 648, 648, 648, + 648, 648, 648, 1123, 1107, 1108, 431, 1126, 1130, 1119, + 1120, 515, 297, 298, 299, 639, 754, 1127, 1141, 640, + 1299, 944, 1136, 660, 772, 300, 491, 1142, 1281, 1282, + 1284, 1471, 1466, 1285, 1286, 1292, 1469, 1300, 963, 1310, + 1311, 1312, 1313, 529, 1323, 780, 1324, 1325, 1480, 1481, + 1482, 753, 1326, 773, 1340, 1331, 1327, 226, 227, 228, + 1329, 1332, 1341, 1333, 641, 1343, 1342, 774, 1344, 489, + 1378, 1379, 775, 1345, 1346, 489, 489, 776, 190, 780, + 1347, 1348, 1366, 297, 298, 299, 746, 632, 490, 1370, + 747, 1407, 1408, 1374, 1375, 660, 1381, 1420, 1391, 1385, + 1392, 1410, 1393, 192, 1394, 191, 1411, 590, 611, 1412, + 294, 1413, 1414, 1415, 1417, 229, 491, 490, 431, 431, + 1421, 300, 491, 491, 604, 605, 1541, 1424, 230, 231, + 1427, 612, 1539, 1544, 1428, 748, 1429, 1430, 1434, 1549, + 1550, 1467, 375, 1472, 1470, 1478, 1497, 1473, 1496, 642, + 1060, 1061, 1062, 1474, 1064, 1477, 1066, 1479, 1067, 1068, + 251, 252, 253, 643, 1483, 489, 232, 233, 644, 234, + 1484, 1498, 254, 645, 235, 1499, 236, 1500, 1501, 1502, + 1503, 1504, 1509, 1512, 1542, 1537, 1540, 1555, 1543, 1558, + 1123, 1557, 300, 1572, 659, 1561, 1575, 1562, 1566, 648, + 1563, 1564, 1573, 1567, 237, 611, 1576, 1577, 238, 611, + 1580, 1579, 491, 239, 490, 1574, 1578, 1581, 375, 375, + 749, 1582, 226, 227, 228, 1583, 1586, 1591, 1584, 1585, + 1590, 1587, 1589, 1601, 750, 817, 1602, 1603, 1592, 751, + 1609, 1610, 1377, 490, 744, 1599, 854, 1386, 1465, 518, + 1117, 1556, 533, 1349, 768, 1384, 1073, 312, 313, 314, + 315, 316, 1409, 317, 319, 321, 535, 1380, 862, 326, + 912, 0, 608, 0, 0, 0, 333, 0, 0, 0, + 229, 339, 340, 0, 343, 346, 347, 1388, 352, 353, + 0, 0, 0, 230, 231, 1449, 1450, 1451, 0, 1365, + 604, 0, 261, 262, 263, 264, 265, 1452, 266, 267, + 268, 0, 0, 0, 0, 811, 0, 0, 0, 0, + 0, 489, 0, 0, 0, 0, 0, 0, 0, 659, + 0, 232, 233, 0, 234, 956, 0, 0, 0, 235, + 0, 236, 489, 490, 489, 0, 0, 490, 0, 0, + 0, 0, 0, 1443, 1444, 1445, 1446, 1447, 1448, 1449, + 1450, 1451, 0, 0, 0, 0, 0, 849, 703, 0, + 0, 1452, 0, 607, 252, 253, 810, 294, 239, 0, + 1441, 0, 0, 0, 0, 254, 0, 0, 0, 491, + 0, 491, 865, 866, 867, 868, 0, 871, 0, 0, + 489, 0, 6, 0, 489, 0, 780, 0, 0, 0, + 0, 0, 0, 0, 1350, 0, 0, 0, 0, 0, + 490, 0, 0, 0, 0, 0, 0, 0, 1492, 1493, + 0, 1494, 0, 1495, 0, 0, 0, 1457, 1458, 1459, + 1460, 1461, 0, 1462, 1463, 1464, 0, 491, 0, 0, + 1441, 491, 0, 0, 611, 0, 319, 326, 0, 0, + 0, 963, 0, 0, 516, 0, 0, 0, 0, 962, + 0, 611, 611, 611, 0, 0, 0, 0, 0, 490, + 780, 1535, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1569, 1364, 1453, 1454, 1455, 1456, 0, + 489, 1457, 1458, 1459, 1460, 1461, 1033, 1462, 1463, 1464, + 0, 0, 0, 0, 0, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1365, 659, 1365, 1365, 1365, 1365, 1365, + 0, 1365, 0, 0, 659, 0, 0, 491, 1052, 611, + 0, 0, 490, 0, 0, 0, 611, 0, 0, 810, + 810, 810, 611, 611, 1450, 1451, 1069, 0, 0, 0, + 489, 0, 0, 0, 242, 1452, 1105, 1074, 1075, 1076, + 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, + 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 281, 0, + 1098, 1595, 1596, 1597, 0, 1598, 1447, 1448, 1449, 1450, + 1451, 0, 0, 0, 0, 0, 611, 491, 308, 611, + 1452, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, + 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, + 0, 335, 490, 0, 0, 0, 659, 0, 490, 490, + 0, 351, 0, 611, 0, 0, 669, 1440, 0, 0, + 0, 962, 0, 706, 0, 0, 0, 0, 611, 810, + 0, 0, 0, 0, 0, 0, 0, 0, 810, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1365, 0, 0, 0, 0, 0, 0, 406, 0, 0, + 409, 0, 0, 0, 0, 1457, 1458, 1459, 1460, 1461, + 0, 1462, 1463, 1464, 0, 0, 1288, 0, 659, 0, + 1291, 0, 1505, 1506, 1507, 1508, 0, 1510, 1433, 1511, + 1435, 1436, 1437, 1438, 1439, 0, 1442, 0, 490, 0, + 0, 0, 0, 0, 1365, 0, 0, 1365, 425, 426, + 1457, 1458, 1459, 1460, 1461, 0, 1462, 1463, 1464, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1335, 0, 0, 0, 453, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 463, 0, 0, 671, 672, + 673, 10, 0, 11, 674, 675, 0, 0, 0, 0, + 860, 0, 0, 507, 0, 509, 1514, 1515, 1516, 1517, + 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, + 1528, 1529, 1530, 1531, 1532, 520, 0, 521, 522, 523, + 524, 525, 526, 0, 0, 0, 677, 0, 0, 0, + 899, 900, 0, 0, 0, 0, 0, 0, 0, 536, + 537, 678, 0, 0, 0, 0, 679, 0, 0, 545, + 0, 0, 548, 0, 0, 680, 681, 0, 0, 0, + 556, 246, 247, 248, 249, 250, 251, 252, 253, 0, + 0, 0, 0, 0, 490, 0, 0, 0, 254, 0, + 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 682, + 0, 0, 683, 0, 684, 490, 0, 490, 1452, 685, + 593, 0, 0, 686, 0, 597, 687, 0, 0, 0, + 0, 688, 0, 0, 689, 0, 0, 242, 0, 0, + 0, 0, 1588, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 690, 0, 0, 691, + 692, 0, 0, 0, 693, 0, 861, 0, 0, 0, + 695, 0, 0, 490, 0, 621, 0, 490, 0, 0, + 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, + 0, 308, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 7, + 8, 9, 10, 661, 11, 12, 13, 0, 1452, 0, + 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, + 0, 308, 0, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 1335, 266, 267, 268, 0, 1416, 0, + 0, 0, 1453, 1454, 1455, 1456, 0, 1351, 1457, 1458, + 1459, 1460, 1461, 0, 1462, 1463, 1464, 0, 0, 343, + 0, 0, 1352, 0, 0, 0, 0, 1353, 782, 0, + 0, 0, 0, 490, 0, 0, 24, 25, 0, 0, + 0, 0, 27, 0, 962, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 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, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 48, 0, 425, 0, 0, + 1354, 0, 0, 0, 1355, 0, 0, 1356, 7, 8, + 9, 10, 54, 11, 12, 13, 209, 70, 1457, 1458, + 1459, 1460, 1461, 490, 1462, 1463, 1464, 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, 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, + 835, 0, 0, 0, 0, 1361, 1536, 1362, 64, 0, + 0, 1363, 0, 0, 0, 0, 15, 71, 308, 0, + 210, 0, 211, 212, 213, 214, 77, 78, 0, 0, + 0, 21, 79, 0, 0, 215, 23, 0, 0, 81, + 0, 0, 0, 0, 0, 24, 25, 216, 0, 0, + 0, 27, 0, 0, 217, 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, + 218, 0, 0, 0, 0, 0, 0, 916, 0, 45, + 0, 46, 47, 0, 48, 0, 0, 0, 0, 49, + 0, 219, 220, 52, 0, 0, 53, 87, 0, 0, + 0, 54, 0, 0, 55, 88, 89, 90, 221, 0, + 951, 92, 0, 222, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58, 0, 0, 59, + 60, 61, 0, 0, 62, 0, 63, 64, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 308, 0, + 0, 0, 0, 0, 0, 0, 0, 1143, 1144, 1145, + 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 0, 1154, + 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, + 1165, 0, 0, 0, 0, 0, 0, 0, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 0, 0, 1185, + 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, + 1196, 1197, 1198, 1199, 1200, 1201, 1202, 0, 1203, 0, + 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, + 0, 1214, 1215, 1216, 0, 0, 1095, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1217, + 0, 0, 0, 0, 0, 1118, 1218, 1219, 1220, 1221, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, + 1252, 1253, 1254, 1255, 0, 0, 0, 1256, 1257, 1258, + 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1475, 1277, + 1278, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1452, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1303, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 1152, 1153, 0, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, + 0, 0, 0, 0, 0, 1330, 1166, 1167, 1168, 1169, + 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, + 1180, 1181, 1182, 1183, 1184, 0, 0, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1201, 1202, 0, 1203, 0, 1204, 1205, + 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 0, 1214, + 1215, 1216, 0, 1454, 1455, 1456, 0, 0, 1457, 1458, + 1459, 1460, 1461, 0, 1462, 1463, 1464, 1217, 951, 0, + 0, 0, 0, 0, 1218, 1219, 1220, 1221, 1222, 1223, + 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, + 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, + 1254, 1255, 0, 0, 0, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1274, 1275, 1276, 0, 1277, 1278, 7, + 8, 9, 10, 0, 11, 12, 13, 513, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 0, 0, 0, 0, 0, 0, 0, 15, 356, 254, + 0, 210, 0, 211, 212, 213, 214, 77, 0, 0, + 0, 0, 21, 357, 0, 0, 215, 23, 0, 0, + 81, 0, 0, 0, 0, 0, 24, 25, 216, 0, + 0, 0, 27, 0, 0, 217, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 218, 0, 0, 0, 0, 0, 0, 1403, 0, + 45, 0, 46, 47, 0, 48, 0, 0, 0, 0, + 49, 0, 219, 220, 52, 0, 0, 53, 87, 0, + 0, 0, 54, 0, 0, 55, 359, 360, 90, 221, + 0, 0, 92, 0, 222, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 0, 0, 58, 0, 0, + 59, 60, 61, 0, 0, 62, 0, 63, 64, 0, + 0, 65, 0, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 0, 0, + 0, 615, 0, 15, 0, 0, 0, 16, 0, 17, + 18, 19, 20, 0, 0, 0, 0, 0, 21, 0, + 765, 766, 22, 23, 0, 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, 1533, 0, 0, 0, 45, 0, 46, 47, + 0, 48, 0, 0, 0, 0, 49, 0, 50, 51, + 52, 0, 0, 53, 0, 0, 0, 0, 54, 0, + 0, 55, 0, 0, 0, 56, 7, 8, 9, 10, + 57, 11, 12, 13, 14, 767, 0, 0, 197, 1565, + 0, 0, 0, 58, 0, 0, 59, 60, 61, 0, + 0, 62, 0, 63, 64, 0, 0, 65, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 254, 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, 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, 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, + 47, 0, 48, 0, 0, 0, 0, 49, 0, 50, + 51, 52, 0, 0, 53, 0, 0, 0, 0, 54, + 0, 0, 55, 0, 0, 0, 56, 7, 8, 9, + 10, 57, 11, 12, 13, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 0, 0, 59, 60, 61, + 0, 0, 62, 0, 198, 64, 0, 0, 65, 0, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 15, 0, 0, 1338, 16, + 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 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, 47, 0, 48, 0, 0, 0, 0, 49, 0, + 50, 51, 52, 0, 0, 53, 0, 0, 0, 0, + 54, 0, 0, 55, 0, 0, 0, 56, 7, 8, + 9, 10, 57, 11, 12, 13, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 58, 0, 0, 59, 60, + 61, 0, 0, 62, 0, 63, 64, 454, 0, 65, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, + 0, 0, 0, 0, 0, 0, 15, 459, 254, 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, 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, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 45, + 0, 46, 47, 0, 48, 0, 0, 0, 0, 49, + 0, 50, 51, 52, 0, 0, 53, 0, 0, 0, + 0, 54, 0, 0, 55, 0, 0, 0, 56, 7, + 8, 9, 10, 57, 11, 12, 13, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 58, 0, 0, 59, + 60, 61, 0, 0, 62, 0, 63, 64, 0, 0, + 65, 0, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 15, 743, 0, + 1571, 16, 0, 17, 18, 19, 20, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 22, 23, 0, 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, 47, 0, 48, 0, 0, 0, 0, + 49, 0, 50, 51, 52, 0, 0, 53, 0, 0, + 0, 0, 54, 0, 0, 55, 0, 0, 0, 56, + 7, 8, 9, 10, 57, 11, 12, 13, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, + 59, 60, 61, 0, 0, 62, 0, 63, 64, 0, + 0, 65, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 254, 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, 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, 47, 0, 48, 0, 0, 0, + 0, 49, 0, 50, 51, 52, 0, 0, 53, 0, + 0, 0, 0, 54, 0, 0, 55, 0, 0, 0, + 56, 7, 8, 9, 10, 57, 11, 12, 13, 14, + 959, 0, 0, 0, 0, 0, 0, 0, 58, 0, + 0, 59, 60, 61, 0, 0, 62, 0, 63, 64, + 0, 964, 65, 0, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 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, 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, 47, 0, 48, 0, 0, + 0, 0, 49, 0, 50, 51, 52, 0, 0, 53, + 0, 0, 0, 0, 54, 0, 0, 55, 0, 0, + 0, 56, 7, 8, 9, 10, 57, 11, 12, 13, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 0, 0, 59, 60, 61, 0, 0, 62, 0, 63, + 64, 1096, 0, 65, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 254, 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, 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, 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, - 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, + 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 0, 46, 47, 0, 48, 0, + 0, 0, 0, 49, 0, 50, 51, 52, 0, 0, + 53, 0, 0, 0, 0, 54, 0, 0, 55, 0, + 0, 0, 56, 7, 8, 9, 10, 57, 11, 12, + 13, 14, 1382, 0, 0, 0, 0, 0, 0, 0, + 58, 0, 0, 59, 60, 61, 0, 0, 62, 0, + 63, 64, 1314, 0, 65, 0, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 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, 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, 47, 0, 48, + 0, 0, 0, 0, 49, 0, 50, 51, 52, 0, + 0, 53, 0, 0, 0, 0, 54, 0, 0, 55, + 0, 0, 0, 56, 7, 8, 9, 10, 57, 11, + 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 58, 0, 0, 59, 60, 61, 0, 0, 62, + 0, 63, 64, 1534, 0, 65, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 254, 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, + 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, 47, 0, + 48, 0, 0, 0, 0, 49, 0, 50, 51, 52, + 0, 0, 53, 0, 0, 0, 0, 54, 0, 0, + 55, 0, 0, 0, 56, 7, 8, 9, 10, 57, + 11, 12, 13, 14, 0, 247, 248, 249, 250, 251, + 252, 253, 58, 0, 0, 59, 60, 61, 0, 0, + 62, 254, 63, 64, 0, 0, 65, 0, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 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, 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, 47, + 0, 48, 0, 0, 0, 0, 49, 0, 50, 51, + 52, 0, 0, 53, 0, 500, 501, 502, 54, 0, + 0, 55, 0, 0, 0, 56, 671, 672, 673, 10, + 57, 11, 674, 675, 69, 70, 0, 0, 676, 259, + 260, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 0, 62, 0, 63, 64, 0, 0, 65, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 0, 0, 0, + 0, 481, 0, 229, 677, 71, 254, 0, 72, 0, + 73, 74, 75, 76, 77, 482, 230, 231, 0, 678, + 79, 0, 0, 80, 679, 0, 0, 81, 0, 0, + 0, 0, 0, 680, 681, 82, 0, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 505, 233, 0, 234, 84, 0, + 0, 0, 235, 0, 236, 0, 0, 682, 0, 0, + 683, 0, 684, 0, 0, 0, 483, 685, 0, 85, + 86, 686, 0, 0, 687, 87, 0, 0, 0, 688, + 0, 301, 689, 88, 89, 90, 91, 0, 0, 92, + 0, 93, 0, 671, 672, 673, 10, 0, 11, 674, + 675, 69, 70, 0, 690, 1072, 0, 691, 692, 0, + 0, 0, 693, 0, 694, 0, 717, 0, 695, 0, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 718, 0, 0, 481, 0, + 0, 677, 71, 0, 0, 72, 0, 73, 74, 75, + 76, 77, 482, 0, 0, 0, 678, 79, 0, 0, + 80, 679, 0, 0, 81, 0, 0, 0, 0, 0, + 680, 681, 82, 0, 249, 250, 251, 252, 253, 83, + 7, 8, 9, 10, 0, 11, 12, 13, 254, 0, + 0, 0, 1431, 0, 0, 84, 0, 0, 0, 0, + 0, 0, 0, 0, 682, 0, 0, 683, 0, 684, + 0, 0, 0, 483, 685, 0, 85, 86, 686, 0, + 0, 687, 87, 0, 0, 0, 688, 0, 1351, 689, + 88, 89, 90, 91, 0, 0, 92, 0, 93, 0, + 0, 0, 0, 1352, 0, 0, 0, 0, 1353, 0, + 0, 690, 0, 0, 691, 692, 0, 24, 25, 693, + 0, 694, 0, 27, 0, 695, 0, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 7, 8, 9, 10, 0, 11, 12, 13, + 0, 0, 0, 0, 47, 0, 48, 0, 0, 0, + 0, 1354, 0, 0, 0, 1355, 0, 0, 1356, 0, + 0, 0, 0, 54, 0, 0, 259, 260, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 0, 0, 0, + 1351, 0, 0, 0, 0, 0, 0, 0, 1357, 0, + 0, 1358, 1359, 1360, 0, 1352, 1361, 0, 1432, 64, + 1353, 0, 1363, 0, 0, 0, 226, 227, 228, 24, + 25, 0, 0, 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, - 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, 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, - 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, - 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, + 40, 41, 42, 43, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 0, 0, 0, 47, 0, 48, 0, + 0, 0, 254, 1354, 0, 0, 0, 1355, 0, 0, + 1356, 0, 0, 0, 229, 54, 0, 0, 0, 72, + 0, 73, 74, 75, 76, 0, 0, 230, 231, 0, + 0, 0, 0, 0, 226, 227, 228, 0, 0, 0, + 1357, 0, 0, 1358, 1359, 1360, 968, 0, 1361, 0, + 1362, 64, 0, 83, 1363, 0, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 232, 233, 0, 234, 277, + 0, 0, 0, 235, 978, 236, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 0, 0, + 85, 86, 229, 0, 0, 0, 0, 0, 0, 334, + 0, 0, 0, 0, 0, 230, 231, 91, 0, 991, + 0, 0, 93, 0, 0, 0, 0, 0, 0, 354, + 355, 0, 0, 0, 0, 0, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 411, 0, 232, 233, 0, 234, 0, 0, 0, + 0, 235, 0, 236, 992, 0, 0, 0, 0, 0, + 0, 356, 0, 0, 72, 0, 73, 74, 75, 76, + 77, 0, 0, 0, 354, 355, 357, 519, 0, 80, + 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, + 0, 82, 0, 0, 993, 0, 0, 994, 83, 995, + 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 0, 1006, 1007, 0, 84, 1008, 356, 0, 0, 72, + 0, 73, 74, 75, 76, 77, 0, 358, 0, 0, + 0, 357, 0, 0, 80, 85, 86, 0, 81, 0, + 496, 87, 0, 0, 0, 0, 82, 0, 0, 359, + 360, 90, 91, 83, 0, 92, 0, 93, 0, 0, + 0, 0, 361, 0, 0, 0, 531, 532, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 0, 0, 358, 0, 72, 0, 73, 74, 75, 76, + 85, 86, 0, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 359, 360, 90, 91, 356, 0, + 92, 72, 93, 73, 74, 75, 76, 77, 83, 0, + 0, 0, 0, 357, 0, 0, 80, 0, 0, 0, + 81, 0, 0, 362, 277, 0, 0, 0, 82, 0, + 0, 0, 0, 0, 0, 83, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 85, 86, 0, 0, 0, + 0, 84, 0, 0, 254, 0, 226, 227, 228, 0, + 0, 915, 91, 0, 358, 0, 0, 93, 0, 0, + 0, 0, 85, 86, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 0, 0, 0, 359, 360, 90, 91, + 0, 0, 92, 0, 93, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 254, 229, 362, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 0, 0, 230, 231, 0, + 0, 0, 0, 0, 254, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 254, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 0, 0, 232, 233, 0, 234, 0, + 0, 0, 254, 235, 0, 236, 0, 0, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 517, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 254, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 254, 0, 0, 0, 0, 0, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 601, 0, 0, 0, 0, 0, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 617, 0, 0, 0, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 705, 0, 0, 0, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 788, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 254, 0, 0, 0, 0, 0, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 935, 0, 0, 0, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 1054, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 254, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 254, 875, 876, + 877, 878, 879, 880, 881, 882, 883, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, + 0, 0, 0, 0, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 1301, 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, 247, 248, 249, 250, 251, 252, 253, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, + 0, 0, 0, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 1334, 0, + 613, 0, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -2, 266, 267, 268, 0, 0, 1336, + 0, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 0, 0, 0, 0, + 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, + 895, 0, 896, 897, 898, 0, 0, 0, 0, 0, + 0, 108, 0, 109, 0, 0, 110, 111, 0, 0, + 0, 0, 0, 0, 0, 112, 113, 114, 115, 0, + 0, 0, 0, 0, 0, 0, 116, 0, 117, 118, + 119, 120, 121, 0, 0, 0, 122, 0, 0, 0, + 0, 123, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 0, 0, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, + 0, 0, 0, 132, 133, 134, 135, 0, 0, 0, + 0, 0, 136, 137, 69, 70, 138, 139, 479, 0, + 480, 140, 0, 0, 0, 0, 0, 141, 142, 0, + 143, 247, 248, 249, 250, 251, 252, 253, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 254, 500, 501, + 502, 481, 0, 0, 0, 71, 0, 0, 72, 0, + 73, 74, 75, 76, 77, 482, 0, 0, 0, 0, + 79, 0, 0, 80, 0, 0, 0, 81, 247, 248, + 249, 250, 251, 252, 253, 82, 503, 0, 504, 0, + 0, 0, 83, 0, 254, 1445, 1446, 1447, 1448, 1449, + 1450, 1451, 0, 0, 0, 0, 229, 0, 84, 0, + 0, 1452, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 230, + 231, 0, 0, 0, 0, 0, 483, 0, 1452, 85, + 86, 0, 0, 0, 0, 87, 1445, 1446, 1447, 1448, + 1449, 1450, 1451, 88, 89, 90, 91, 0, 0, 92, + 0, 93, 1452, 0, 0, 0, 0, 505, 233, 0, + 234, 0, 0, 0, 484, 235, 0, 236, 0, 485, + 0, 0, 0, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 0, 0, 0, 0, + 0, 506, 0, 0, 0, 0, 0, 0, 0, 226, + 227, 228, 0, 0, 0, 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 + 0, 258, 259, 260, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 0, 0, 0, 1454, 1455, 1456, 0, + 0, 1457, 1458, 1459, 1460, 1461, 796, 1462, 1463, 1464, + 0, 0, 0, 0, 1455, 1456, 796, 229, 1457, 1458, + 1459, 1460, 1461, 797, 1462, 1463, 1464, 0, 0, 0, + 230, 231, 0, 0, 0, 0, 0, 798, 0, 1456, + 0, 0, 1457, 1458, 1459, 1460, 1461, 798, 1462, 1463, + 1464, 799, 0, 800, 0, 0, 0, 0, 0, 0, + 0, 799, 0, 800, 0, 0, 0, 0, 232, 233, + 801, 234, 0, 0, 0, 0, 235, 0, 236, 0, + 801, 0, 0, 318, 0, 0, 226, 227, 228, 1318, + 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, + 0, 802, 0, 0, 803, 804, 0, 0, 805, 0, + 0, 802, 0, 0, 803, 804, 0, 0, 805, 0, + 0, 0, 318, 0, 806, 108, 0, 109, 0, 0, + 0, 111, 0, 0, 806, 0, 807, 0, 0, 112, + 113, 114, 115, 0, 229, 0, 807, 0, 0, 0, + 808, 0, 117, 118, 119, 120, 0, 230, 231, 0, + 808, 0, 0, 0, 108, 311, 109, 0, 0, 0, + 111, 0, 0, 0, 0, 0, 0, 0, 112, 113, + 114, 115, 226, 227, 228, 0, 719, 720, 721, 130, + 0, 117, 310, 119, 120, 232, 1315, 1316, 1317, 0, + 135, 0, 0, 235, 311, 236, 136, 0, 0, 0, + 138, 139, 0, 0, 0, 0, 1318, 0, 0, 0, + 0, 1319, 142, 0, 143, 0, 0, 0, 130, 0, + 0, 72, 0, 73, 74, 75, 76, 722, 723, 135, + 229, 0, 226, 227, 228, 136, 80, 0, 0, 0, + 139, 0, 0, 230, 231, 0, 0, 0, 82, 0, + 0, 142, 0, 143, 0, 83, 0, 0, 0, 0, + 72, 0, 73, 74, 75, 76, 0, 0, 226, 227, + 228, 84, 0, 0, 69, 70, 0, 0, 479, 0, + 0, 232, 233, 0, 234, 0, 0, 0, 0, 235, + 229, 236, 85, 86, 83, 0, 0, 0, 0, 0, + 0, 0, 1318, 230, 231, 0, 724, 1399, 0, 91, + 277, 481, 92, 0, 93, 71, 0, 0, 72, 0, + 73, 74, 75, 76, 77, 482, 229, 0, 0, 0, + 79, 85, 86, 80, 0, 0, 0, 81, 0, 230, + 231, 232, 233, 0, 234, 82, 0, 0, 91, 235, + 0, 236, 83, 93, 0, 0, 0, 0, 0, 0, + 0, 0, 1318, 0, 0, 0, 0, 1401, 84, 0, + 0, 69, 70, 0, 0, 823, 195, 232, 233, 0, + 234, 0, 0, 0, 0, 235, 483, 236, 0, 85, + 86, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 0, 0, 305, 88, 89, 90, 91, 0, 481, 92, + 0, 93, 71, 69, 70, 72, 0, 73, 74, 75, + 76, 77, 482, 0, 0, 0, 0, 79, 0, 0, + 80, 0, 0, 0, 81, 0, 0, 0, 0, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 0, 83, + 481, 0, 0, 0, 71, 0, 0, 72, 0, 73, + 74, 75, 76, 77, 482, 84, 0, 0, 0, 79, + 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 483, 82, 0, 85, 86, 0, 0, + 0, 83, 87, 0, 0, 0, 0, 0, 0, 0, + 88, 89, 90, 91, 0, 0, 92, 84, 93, 0, + 69, 70, 0, 0, 0, 0, 0, 0, 72, 0, + 73, 74, 75, 76, 0, 483, 0, 0, 85, 86, + 0, 0, 0, 276, 87, 0, 69, 70, 0, 0, + 0, 0, 88, 89, 90, 91, 0, 0, 92, 0, + 93, 71, 83, 0, 72, 0, 73, 74, 75, 76, + 77, 78, 0, 0, 0, 0, 79, 0, 277, 80, + 0, 0, 0, 81, 0, 0, 0, 71, 0, 0, + 72, 82, 73, 74, 75, 76, 77, 0, 83, 85, + 86, 0, 79, 0, 0, 80, 0, 0, 0, 81, + 0, 0, 0, 0, 84, 0, 91, 82, 0, 0, + 0, 93, 0, 0, 83, 0, 0, 0, 0, 0, + 0, 226, 227, 228, 0, 85, 86, 0, 69, 70, + 84, 87, 0, 0, 183, 0, 0, 0, 0, 88, + 89, 90, 91, 0, 0, 92, 0, 93, 630, 0, + 0, 85, 86, 0, 69, 0, 0, 87, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 90, 91, 71, + 0, 92, 72, 93, 73, 74, 75, 76, 77, 229, + 0, 0, 0, 0, 79, 0, 0, 80, 0, 0, + 0, 81, 230, 231, 0, 71, 0, 0, 72, 82, + 73, 74, 75, 76, 77, 543, 83, 0, 0, 0, + 79, 0, 0, 80, 0, 0, 0, 81, 0, 0, + 0, 0, 84, 0, 0, 82, 0, 0, 0, 0, + 232, 233, 83, 234, 0, 0, 0, 0, 235, 0, + 236, 0, 0, 85, 86, 0, 184, 0, 84, 87, + 0, 1318, 0, 0, 0, 0, 0, 88, 89, 90, + 91, 0, 0, 92, 0, 93, 0, 0, 0, 85, + 86, 0, 184, 0, 0, 87, 0, 0, 0, 0, + 226, 227, 228, 88, 89, 90, 91, 185, 0, 92, + 72, 93, 73, 74, 75, 76, 77, 1030, 0, 0, + 0, 0, 186, 0, 0, 80, 0, 0, 0, 81, + 0, 0, 0, 185, 0, 0, 72, 82, 73, 74, + 75, 76, 77, 0, 83, 0, 0, 0, 186, 0, + 0, 80, 0, 0, 0, 81, 0, 0, 229, 0, + 84, 0, 0, 82, 0, 0, 0, 0, 0, 0, + 83, 230, 231, 0, 0, 0, 0, 0, 0, 0, + 0, 85, 86, 0, 69, 0, 84, 87, 0, 0, + 0, 0, 0, 0, 0, 187, 188, 90, 91, 0, + 0, 92, 0, 93, 0, 0, 0, 85, 86, 232, + 233, 0, 234, 87, 0, 0, 0, 235, 0, 236, + 0, 187, 188, 90, 91, 71, 0, 92, 72, 93, + 73, 74, 75, 76, 77, 0, 0, 0, 0, 0, + 79, 0, 0, 80, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 108, 0, 109, 0, + 0, 110, 111, 0, 0, 0, 0, 0, 84, 0, + 112, 113, 114, 115, 0, 0, 0, 0, 0, 0, + 0, 116, 0, 117, 118, 119, 120, 121, 0, 85, + 86, 122, 0, 0, 0, 87, 123, 0, 0, 0, + 0, 0, 0, 88, 89, 90, 91, 0, 0, 92, + 0, 93, 0, 0, 124, 125, 126, 127, 128, 129, + 130, 131, 0, 0, 0, 0, 0, 0, 132, 133, + 134, 135, 0, 0, 0, 0, 0, 136, 137, 0, + 0, 138, 139, 108, 0, 109, 140, 0, 110, 111, + 0, 0, 141, 142, 0, 143, 0, 112, 113, 114, + 115, 0, 0, 144, 0, 0, 0, 0, 116, 0, + 117, 118, 119, 120, 121, 0, 0, 0, 122, 0, + 0, 0, 715, 123, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 0, 0, 0, 0, 0, 132, 133, 134, 135, 0, + 0, 0, 0, 0, 136, 137, 0, 0, 138, 139, + 108, 0, 109, 140, 0, 110, 111, 0, 0, 141, + 142, 0, 143, 0, 112, 113, 114, 115, 0, 0, + 144, 0, 0, 0, 0, 116, 0, 117, 118, 119, + 120, 121, 0, 0, 0, 122, 0, 0, 0, 901, + 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 125, + 126, 127, 128, 129, 130, 131, 0, 0, 0, 0, + 0, 0, 132, 133, 134, 135, 0, 0, 0, 0, + 0, 136, 137, 0, 0, 138, 139, 108, 0, 109, + 140, 0, 110, 111, 0, 0, 141, 142, 0, 143, + 0, 112, 113, 114, 115, 0, 0, 144, 0, 0, + 0, 0, 116, 0, 117, 118, 119, 120, 121, 0, + 0, 0, 122, 0, 0, 0, 946, 123, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 0, 0, 0, 0, 0, 0, 132, + 133, 134, 135, 0, 0, 0, 0, 0, 136, 137, + 0, 0, 138, 139, 108, 0, 109, 140, 0, 110, + 111, 0, 0, 141, 142, 0, 143, 0, 112, 113, + 114, 115, 0, 0, 144, 0, 0, 0, 0, 116, + 0, 117, 118, 119, 120, 121, 0, 0, 0, 122, + 0, 0, 0, 1055, 123, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 125, 126, 127, 128, 129, 130, 131, + 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, + 0, 0, 0, 0, 0, 136, 137, 0, 0, 138, + 139, 108, 0, 109, 140, 0, 110, 111, 0, 0, + 141, 142, 0, 143, 0, 112, 113, 114, 115, 0, + 0, 144, 0, 0, 0, 0, 116, 0, 117, 118, + 119, 120, 121, 0, 0, 0, 122, 0, 0, 0, + 1109, 123, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, + 0, 0, 0, 132, 133, 134, 135, 0, 0, 0, + 0, 0, 136, 137, 0, 0, 138, 139, 108, 0, + 109, 140, 0, 110, 111, 0, 0, 141, 142, 0, + 143, 0, 112, 113, 114, 115, 0, 0, 144, 0, + 0, 0, 0, 116, 0, 117, 118, 119, 120, 121, + 0, 0, 0, 122, 0, 0, 0, 1339, 123, 0, + 226, 227, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 226, 227, 228, 0, 0, 124, 125, 126, 127, + 128, 129, 130, 131, 0, 0, 0, 0, 0, 0, + 132, 133, 134, 135, 0, 0, 0, 0, 0, 136, + 137, 0, 0, 138, 139, 0, 0, 0, 140, 503, + 0, 504, 0, 0, 141, 142, 0, 143, 229, 0, + 0, 0, 0, 0, 349, 144, 0, 0, 0, 229, + 0, 230, 231, 0, 72, 0, 73, 74, 75, 76, + 0, 0, 230, 231, 1491, 0, 0, 0, 72, 0, + 73, 74, 75, 76, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 350, 0, 0, 0, 0, 83, 232, + 233, 0, 234, 0, 0, 0, 0, 235, 0, 236, + 232, 233, 83, 234, 277, 0, 0, 0, 235, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 277, 0, + 0, 0, 0, 0, 0, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, + 86, 0, 91, 0, 0, 0, 0, 93, 108, 0, + 109, 0, 0, 0, 111, 0, 91, 0, 0, 0, + 0, 93, 112, 113, 114, 115, 0, 0, 0, 0, + 196, 0, 0, 0, 0, 117, 310, 119, 120, 0, + 0, 0, 0, 122, 202, 0, 0, 0, 311, 0, + 0, 108, 0, 109, 0, 0, 110, 111, 0, 0, + 0, 0, 0, 0, 0, 112, 113, 114, 115, 0, + 0, 0, 130, 0, 0, 0, 116, 0, 117, 118, + 119, 120, 121, 135, 0, 0, 122, 0, 0, 136, + 0, 123, 0, 0, 139, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 141, 142, 0, 143, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, + 0, 0, -160, 132, 133, 134, 135, 0, 108, 0, + 109, 0, 136, 137, 111, 0, 138, 139, 0, 0, + 0, 140, 112, 113, 114, 115, 0, 141, 142, 0, + 143, 0, 0, 0, 0, 117, 118, 119, 120, 0, + 0, 0, 0, 122, 0, 0, 0, 108, 311, 109, + 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, + 0, 112, 113, 114, 115, 0, 0, 0, 0, 0, + 0, 0, 130, 0, 117, 310, 119, 120, 0, 0, + 0, 0, 0, 135, 0, 0, 108, 311, 109, 136, + 0, 0, 111, 138, 139, 0, 0, 0, 0, 0, + 112, 113, 114, 115, 141, 142, 0, 143, 0, 0, + 0, 130, 325, 117, 310, 119, 120, 0, 0, 0, + 0, 0, 135, 0, 0, 0, 311, 0, 136, 0, + 0, 0, 72, 139, 73, 74, 75, 76, 0, 0, + 0, 0, 0, 0, 142, 0, 143, 276, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 135, 0, 0, 0, 0, 83, 136, 0, 0, + 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 277, 142, 0, 143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 85, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 0, 0, 0, 0, 93 }; static const yytype_int16 yycheck[] = { - 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, 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, 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, -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, 144, 145, 146, - 147, -1, -1, -1, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 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, 63, 118, 758, 95, 138, 155, 778, 157, 158, + 159, 160, 161, 45, 163, 734, 165, 959, 167, 483, + 138, 490, 627, 334, 309, 682, 533, 481, 15, 191, + 78, 499, 10, 15, 183, 13, 512, 81, 45, 148, + 45, 154, 61, 608, 157, 741, 195, 196, 512, 503, + 148, 822, 148, 202, 203, 0, 157, 511, 162, 10, + 11, 12, 347, 64, 745, 15, 747, 748, 749, 750, + 751, 172, 171, 154, 770, 771, 489, 773, 774, 775, + 776, 646, 157, 6, 154, 8, 13, 154, 154, 84, + 85, 86, 657, 94, 95, 176, 91, 172, 10, 11, + 12, 102, 154, 173, 154, 154, 173, 173, 154, 153, + 153, 171, 156, 132, 154, 154, 148, 68, 171, 154, + 34, 173, 153, 173, 173, 154, 154, 173, 171, 34, + 81, 82, 162, 173, 173, 101, 198, 34, 173, 162, + 797, 148, 162, 148, 173, 173, 154, 286, 287, 288, + 289, 290, 156, 154, 155, 34, 157, 158, 159, 160, + 161, 34, 163, 632, 165, 173, 167, 154, 119, 120, + 154, 122, 171, 154, 638, 6, 127, 8, 129, 154, + 271, 272, 183, 652, 653, 654, 655, 656, 166, 173, + 191, 173, 173, 609, 195, 196, 287, 288, 173, 171, + 309, 202, 203, 171, 154, 267, 171, 119, 519, 371, + 686, 309, 636, 309, 779, 13, 171, 15, 631, 17, + 34, 156, 173, 218, 219, 220, 221, 832, 641, 642, + 643, 644, 645, 81, 343, 931, 547, 842, 347, 166, + 241, 717, 156, 291, 156, 343, 81, 343, 156, 347, + 173, 347, 171, 818, 819, 171, 937, 171, 172, 408, + 729, 166, 167, 168, 62, 170, 171, 172, 157, 965, + 271, 272, 779, 170, 171, 172, 171, 309, 63, 155, + 1035, 157, 277, 172, 154, 286, 287, 288, 289, 290, + 291, 170, 171, 172, 81, 296, 153, 170, 171, 172, + 154, 154, 309, 173, 309, 153, 301, 6, 156, 8, + 358, 343, 171, 781, 171, 347, 729, 173, 153, 173, + 173, 156, 738, 462, 154, 171, 742, 466, 467, 468, + 469, 470, 171, 334, 172, 173, 343, 303, 343, 944, + 347, 480, 347, 173, 798, 484, 485, 171, 817, 147, + 171, 815, 166, 167, 168, 666, 170, 171, 172, 154, + 172, 173, 927, 161, 171, 834, 153, 171, 166, 156, + 371, 156, 153, 1030, 155, 156, 157, 162, 173, 164, + 665, 166, 1137, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 874, 10, + 11, 12, 154, 816, 370, 716, 154, 408, 171, 194, + 874, 1016, 825, 198, 154, 200, 201, 154, 172, 173, + 927, 173, 153, 157, 155, 173, 157, 428, 13, 171, + 15, 156, 17, 173, 482, 483, 173, 153, 171, 155, + 1382, 157, 171, 912, 55, 171, 57, 58, 59, 60, + 919, 920, 921, 922, 923, 171, 10, 11, 12, 70, + 171, 462, 171, 34, 512, 466, 467, 468, 469, 470, + 171, 82, 68, 69, 1039, 1040, 171, 62, 89, 480, + 171, 620, 171, 484, 485, 153, 171, 155, 489, 157, + 171, 492, 171, 172, 105, 543, 153, 282, 155, 912, + 157, 150, 151, 152, 499, 171, 919, 920, 921, 922, + 923, 512, 172, 173, 68, 126, 127, 171, 519, 171, + 172, 173, 166, 530, 172, 173, 1297, 81, 82, 530, + 171, 947, 143, 171, 172, 146, 171, 148, 171, 172, + 173, 153, 154, 544, 171, 172, 547, 171, 172, 173, + 171, 171, 10, 11, 12, 13, 665, 15, 171, 17, + 49, 609, 147, 171, 171, 119, 120, 665, 122, 665, + 120, 121, 122, 127, 171, 129, 161, 171, 544, 171, + 171, 166, 630, 171, 156, 172, 171, 154, 172, 555, + 638, 902, 558, 164, 165, 166, 167, 168, 171, 170, + 171, 172, 34, 78, 62, 1029, 153, 608, 609, 610, + 162, 171, 171, 171, 155, 154, 154, 174, 172, 620, + 173, 1037, 407, 163, 2, 173, 627, 1043, 1044, 173, + 631, 173, 694, 665, 163, 636, 173, 173, 173, 640, + 641, 642, 643, 644, 645, 646, 173, 1366, 173, 173, + 682, 1120, 173, 173, 173, 154, 657, 173, 665, 173, + 665, 119, 173, 173, 173, 666, 667, 173, 46, 1315, + 1316, 1317, 173, 173, 52, 682, 173, 682, 173, 173, + 58, 59, 60, 61, 62, 163, 173, 65, 173, 147, + 738, 173, 163, 173, 742, 15, 13, 173, 15, 173, + 17, 171, 1126, 161, 173, 173, 1130, 1120, 166, 1480, + 1481, 1482, 172, 171, 166, 716, 723, 1133, 172, 174, + 173, 783, 784, 1478, 171, 156, 153, 173, 729, 791, + 154, 793, 164, 165, 166, 167, 168, 738, 170, 171, + 172, 742, 120, 154, 745, 62, 747, 748, 749, 750, + 751, 1397, 154, 1399, 539, 1401, 154, 154, 1404, 1405, + 1406, 546, 154, 764, 171, 797, 767, 815, 734, 155, + 155, 171, 156, 49, 173, 741, 171, 778, 779, 745, + 913, 747, 748, 749, 750, 751, 781, 176, 171, 574, + 797, 576, 797, 578, 173, 913, 171, 913, 166, 861, + 173, 171, 166, 153, 770, 771, 49, 773, 774, 775, + 776, 81, 171, 1289, 162, 816, 291, 818, 819, 1590, + 162, 822, 162, 201, 825, 1289, 874, 162, 1599, 173, + 147, 832, 171, 10, 10, 897, 10, 11, 12, 13, + 10, 842, 10, 17, 161, 10, 10, 155, 163, 166, + 154, 852, 155, 166, 171, 173, 166, 173, 155, 173, + 155, 166, 174, 153, 173, 171, 173, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 62, 173, + 268, 173, 171, 176, 1310, 273, 1312, 171, 171, 947, + 172, 902, 173, 172, 905, 172, 156, 914, 171, 694, + 171, 912, 154, 173, 1063, 154, 154, 918, 919, 920, + 921, 922, 923, 924, 154, 154, 927, 173, 173, 157, + 166, 309, 10, 11, 12, 13, 937, 171, 155, 17, + 1031, 172, 174, 944, 118, 119, 947, 155, 174, 154, + 10, 1375, 1368, 173, 176, 154, 1372, 49, 959, 171, + 176, 171, 176, 341, 153, 931, 154, 173, 1392, 1393, + 1394, 937, 163, 147, 10, 173, 163, 10, 11, 12, + 163, 163, 10, 173, 62, 10, 155, 161, 173, 1037, + 1139, 1140, 166, 10, 10, 1043, 1044, 171, 1030, 965, + 10, 155, 154, 10, 11, 12, 13, 482, 483, 171, + 17, 15, 1323, 176, 173, 1016, 174, 154, 174, 176, + 173, 171, 173, 1030, 173, 1030, 171, 405, 1029, 173, + 1031, 171, 173, 171, 173, 68, 1037, 512, 1039, 1040, + 155, 119, 1043, 1044, 422, 423, 1470, 173, 81, 82, + 171, 429, 1468, 1477, 162, 62, 162, 162, 162, 1483, + 1484, 171, 1063, 174, 173, 153, 10, 174, 155, 147, + 855, 856, 857, 173, 859, 173, 861, 173, 863, 864, + 22, 23, 24, 161, 173, 1133, 119, 120, 166, 122, + 173, 155, 34, 171, 127, 10, 129, 10, 155, 155, + 10, 155, 171, 173, 15, 173, 173, 154, 174, 154, + 1111, 173, 119, 1537, 492, 173, 1540, 163, 173, 1120, + 163, 163, 1538, 163, 157, 1126, 174, 10, 161, 1130, + 10, 155, 1133, 166, 609, 173, 173, 10, 1139, 1140, + 147, 155, 10, 11, 12, 171, 173, 155, 171, 171, + 1574, 171, 173, 155, 161, 630, 10, 155, 173, 166, + 173, 155, 1138, 638, 542, 1589, 668, 1292, 1366, 324, + 914, 1497, 347, 1111, 552, 1289, 874, 111, 112, 113, + 114, 115, 1324, 117, 118, 119, 347, 1256, 686, 123, + 723, -1, 427, -1, -1, -1, 130, -1, -1, -1, + 68, 135, 136, -1, 138, 139, 140, 1298, 142, 143, + -1, -1, -1, 81, 82, 22, 23, 24, -1, 1121, + 598, -1, 164, 165, 166, 167, 168, 34, 170, 171, + 172, -1, -1, -1, -1, 613, -1, -1, -1, -1, + -1, 1289, -1, -1, -1, -1, -1, -1, -1, 627, + -1, 119, 120, -1, 122, 1256, -1, -1, -1, 127, + -1, 129, 1310, 738, 1312, -1, -1, 742, -1, -1, + -1, -1, -1, 16, 17, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 665, 1289, -1, + -1, 34, -1, 161, 23, 24, 1297, 1298, 166, -1, + 1362, -1, -1, -1, -1, 34, -1, -1, -1, 1310, + -1, 1312, 690, 691, 692, 693, -1, 695, -1, -1, + 1368, -1, 1323, -1, 1372, -1, 1292, -1, -1, -1, + -1, -1, -1, -1, 1119, -1, -1, -1, -1, -1, + 815, -1, -1, -1, -1, -1, -1, -1, 1410, 1411, + -1, 1413, -1, 1415, -1, -1, -1, 164, 165, 166, + 167, 168, -1, 170, 171, 172, -1, 1368, -1, -1, + 1432, 1372, -1, -1, 1375, -1, 310, 311, -1, -1, + -1, 1382, -1, -1, 318, -1, -1, -1, -1, 767, + -1, 1392, 1393, 1394, -1, -1, -1, -1, -1, 874, + 1366, 1463, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 156, 1121, 158, 159, 160, 161, -1, + 1468, 164, 165, 166, 167, 168, 804, 170, 171, 172, + -1, -1, -1, -1, -1, 164, 165, 166, 167, 168, + -1, 170, 171, 172, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1355, 832, 1357, 1358, 1359, 1360, 1361, + -1, 1363, -1, -1, 842, -1, -1, 1468, 846, 1470, + -1, -1, 947, -1, -1, -1, 1477, -1, -1, 1480, + 1481, 1482, 1483, 1484, 23, 24, 864, -1, -1, -1, + 1538, -1, -1, -1, 64, 34, 1497, 875, 876, 877, + 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, + 888, 889, 890, 891, 892, 893, 894, 895, 88, -1, + 898, 1583, 1584, 1585, -1, 1587, 20, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 1537, 1538, 108, 1540, + 34, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, + 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, + -1, 131, 1037, -1, -1, -1, 944, -1, 1043, 1044, + -1, 141, -1, 1574, -1, -1, 510, 1362, -1, -1, + -1, 959, -1, 517, -1, -1, -1, -1, 1589, 1590, + -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1512, -1, -1, -1, -1, -1, -1, 187, -1, -1, + 190, -1, -1, -1, -1, 164, 165, 166, 167, 168, + -1, 170, 171, 172, -1, -1, 1014, -1, 1016, -1, + 1018, -1, 1427, 1428, 1429, 1430, -1, 1432, 1355, 1434, + 1357, 1358, 1359, 1360, 1361, -1, 1363, -1, 1133, -1, + -1, -1, -1, -1, 1566, -1, -1, 1569, 238, 239, + 164, 165, 166, 167, 168, -1, 170, 171, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -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, - 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, 1070, -1, -1, -1, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, - 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, + -1, -1, -1, -1, -1, 285, -1, -1, 3, 4, + 5, 6, -1, 8, 9, 10, -1, -1, -1, -1, + 15, -1, -1, 303, -1, 305, 1443, 1444, 1445, 1446, + 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, + 1457, 1458, 1459, 1460, 1461, 325, -1, 327, 328, 329, + 330, 331, 332, -1, -1, -1, 51, -1, -1, -1, + 704, 705, -1, -1, -1, -1, -1, -1, -1, 349, + 350, 66, -1, -1, -1, -1, 71, -1, -1, 359, + -1, -1, 362, -1, -1, 80, 81, -1, -1, -1, + 370, 17, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 1289, -1, -1, -1, 34, -1, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 114, + -1, -1, 117, -1, 119, 1310, -1, 1312, 34, 124, + 410, -1, -1, 128, -1, 415, 131, -1, -1, -1, + -1, 136, -1, -1, 139, -1, -1, 427, -1, -1, + -1, -1, 1569, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 161, -1, -1, 164, + 165, -1, -1, -1, 169, -1, 171, -1, -1, -1, + 175, -1, -1, 1368, -1, 465, -1, 1372, -1, -1, + -1, -1, -1, -1, 1282, -1, -1, -1, -1, -1, + -1, 481, 18, 19, 20, 21, 22, 23, 24, 3, + 4, 5, 6, 493, 8, 9, 10, -1, 34, -1, + -1, -1, -1, 503, -1, -1, -1, -1, -1, -1, + -1, 511, -1, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 1331, 170, 171, 172, -1, 1336, -1, + -1, -1, 158, 159, 160, 161, -1, 51, 164, 165, + 166, 167, 168, -1, 170, 171, 172, -1, -1, 913, + -1, -1, 66, -1, -1, -1, -1, 71, 558, -1, + -1, -1, -1, 1468, -1, -1, 80, 81, -1, -1, + -1, -1, 86, -1, 1382, -1, 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, + 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 117, -1, 119, -1, 607, -1, -1, + 124, -1, -1, -1, 128, -1, -1, 131, 3, 4, + 5, 6, 136, 8, 9, 10, 11, 12, 164, 165, + 166, 167, 168, 1538, 170, 171, 172, -1, -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, 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, + 650, -1, -1, -1, -1, 169, 1464, 171, 172, -1, + -1, 175, -1, -1, -1, -1, 51, 52, 668, -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, + -1, -1, -1, -1, -1, 80, 81, 82, -1, -1, + -1, 86, -1, -1, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, -1, -1, -1, -1, -1, -1, 727, -1, 114, + -1, 116, 117, -1, 119, -1, -1, -1, -1, 124, + -1, 126, 127, 128, -1, -1, 131, 132, -1, -1, + -1, 136, -1, -1, 139, 140, 141, 142, 143, -1, + 760, 146, -1, 148, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 161, -1, -1, 164, + 165, 166, -1, -1, 169, -1, 171, 172, -1, -1, + 175, -1, -1, -1, -1, -1, -1, -1, 798, -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, + 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, 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, 85, + -1, 87, 88, 89, -1, -1, 896, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, -1, 915, 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, 144, 145, + 146, 147, 148, 149, -1, -1, -1, 153, 154, 155, 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, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 17, 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, -1, - 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, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1034, 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, 1065, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 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, 85, -1, 87, + 88, 89, -1, 159, 160, 161, -1, -1, 164, 165, + 166, 167, 168, -1, 170, 171, 172, 105, 1138, -1, + -1, -1, -1, -1, 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, 144, 145, 146, 147, + 148, 149, -1, -1, -1, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, -1, 175, 176, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -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, 24, + -1, -1, -1, -1, -1, -1, -1, 51, 52, 34, + -1, 55, -1, 57, 58, 59, 60, 61, -1, -1, + -1, -1, 66, 67, -1, -1, 70, 71, -1, -1, + 74, -1, -1, -1, -1, -1, 80, 81, 82, -1, + -1, -1, 86, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, -1, -1, -1, -1, -1, -1, 1318, -1, + 114, -1, 116, 117, -1, 119, -1, -1, -1, -1, + 124, -1, 126, 127, 128, -1, -1, 131, 132, -1, + -1, -1, 136, -1, -1, 139, 140, 141, 142, 143, + -1, -1, 146, -1, 148, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, -1, 161, -1, -1, + 164, 165, 166, -1, -1, 169, -1, 171, 172, -1, + -1, 175, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, -1, 170, 171, 172, -1, -1, + -1, 176, -1, 51, -1, -1, -1, 55, -1, 57, + 58, 59, 60, -1, -1, -1, -1, -1, 66, -1, + 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, -1, -1, + -1, -1, 1462, -1, -1, -1, 114, -1, 116, 117, + -1, 119, -1, -1, -1, -1, 124, -1, 126, 127, + 128, -1, -1, 131, -1, -1, -1, -1, 136, -1, + -1, 139, -1, -1, -1, 143, 3, 4, 5, 6, + 148, 8, 9, 10, 11, 153, -1, -1, 15, 1509, + -1, -1, -1, 161, -1, -1, 164, 165, 166, -1, + -1, 169, -1, 171, 172, -1, -1, 175, 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, -1, 80, 81, 82, -1, -1, -1, 86, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, -1, + -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, + 117, -1, 119, -1, -1, -1, -1, 124, -1, 126, + 127, 128, -1, -1, 131, -1, -1, -1, -1, 136, + -1, -1, 139, -1, -1, -1, 143, 3, 4, 5, + 6, 148, 8, 9, 10, 11, -1, -1, -1, -1, + -1, -1, -1, -1, 161, -1, -1, 164, 165, 166, + -1, -1, 169, -1, 171, 172, -1, -1, 175, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, -1, 170, 171, 172, 51, -1, -1, 176, 55, + -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, + 66, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, + 86, -1, -1, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, + 116, 117, -1, 119, -1, -1, -1, -1, 124, -1, + 126, 127, 128, -1, -1, 131, -1, -1, -1, -1, + 136, -1, -1, 139, -1, -1, -1, 143, 3, 4, + 5, 6, 148, 8, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, -1, 161, -1, -1, 164, 165, + 166, -1, -1, 169, -1, 171, 172, 173, -1, 175, + 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, -1, 80, 81, 82, -1, -1, + -1, 86, -1, -1, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, -1, -1, -1, -1, -1, -1, -1, -1, 114, + -1, 116, 117, -1, 119, -1, -1, -1, -1, 124, + -1, 126, 127, 128, -1, -1, 131, -1, -1, -1, + -1, 136, -1, -1, 139, -1, -1, -1, 143, 3, + 4, 5, 6, 148, 8, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, -1, 161, -1, -1, 164, + 165, 166, -1, -1, 169, -1, 171, 172, -1, -1, + 175, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, -1, 170, 171, 172, 51, 52, -1, + 176, 55, -1, 57, 58, 59, 60, -1, -1, -1, + -1, -1, 66, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, -1, -1, -1, 80, 81, 82, -1, + -1, -1, 86, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, + 114, -1, 116, 117, -1, 119, -1, -1, -1, -1, + 124, -1, 126, 127, 128, -1, -1, 131, -1, -1, + -1, -1, 136, -1, -1, 139, -1, -1, -1, 143, + 3, 4, 5, 6, 148, 8, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, -1, 161, -1, -1, + 164, 165, 166, -1, -1, 169, -1, 171, 172, -1, + -1, 175, 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, -1, 80, 81, 82, + -1, -1, -1, 86, -1, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, + -1, 114, -1, 116, 117, -1, 119, -1, -1, -1, + -1, 124, -1, 126, 127, 128, -1, -1, 131, -1, + -1, -1, -1, 136, -1, -1, 139, -1, -1, -1, + 143, 3, 4, 5, 6, 148, 8, 9, 10, 11, + 153, -1, -1, -1, -1, -1, -1, -1, 161, -1, + -1, 164, 165, 166, -1, -1, 169, -1, 171, 172, + -1, 155, 175, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, -1, 170, 171, 172, 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, -1, 80, 81, + 82, -1, -1, -1, 86, -1, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, -1, -1, -1, -1, -1, -1, + -1, -1, 114, -1, 116, 117, -1, 119, -1, -1, + -1, -1, 124, -1, 126, 127, 128, -1, -1, 131, + -1, -1, -1, -1, 136, -1, -1, 139, -1, -1, + -1, 143, 3, 4, 5, 6, 148, 8, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, 161, + -1, -1, 164, 165, 166, -1, -1, 169, -1, 171, + 172, 173, -1, 175, 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, + 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, -1, 80, + 81, 82, -1, -1, -1, 86, -1, -1, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, -1, -1, -1, -1, -1, + -1, -1, -1, 114, -1, 116, 117, -1, 119, -1, + -1, -1, -1, 124, -1, 126, 127, 128, -1, -1, + 131, -1, -1, -1, -1, 136, -1, -1, 139, -1, + -1, -1, 143, 3, 4, 5, 6, 148, 8, 9, + 10, 11, 153, -1, -1, -1, -1, -1, -1, -1, + 161, -1, -1, 164, 165, 166, -1, -1, 169, -1, + 171, 172, 154, -1, 175, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, + 172, 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, -1, + 80, 81, 82, -1, -1, -1, 86, -1, -1, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, -1, -1, -1, -1, + -1, -1, -1, -1, 114, -1, 116, 117, -1, 119, + -1, -1, -1, -1, 124, -1, 126, 127, 128, -1, + -1, 131, -1, -1, -1, -1, 136, -1, -1, 139, + -1, -1, -1, 143, 3, 4, 5, 6, 148, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 161, -1, -1, 164, 165, 166, -1, -1, 169, + -1, 171, 172, 173, -1, 175, 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, + -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, -1, -1, -1, + -1, -1, -1, -1, -1, 114, -1, 116, 117, -1, + 119, -1, -1, -1, -1, 124, -1, 126, 127, 128, + -1, -1, 131, -1, -1, -1, -1, 136, -1, -1, + 139, -1, -1, -1, 143, 3, 4, 5, 6, 148, + 8, 9, 10, 11, -1, 18, 19, 20, 21, 22, + 23, 24, 161, -1, -1, 164, 165, 166, -1, -1, + 169, 34, 171, 172, -1, -1, 175, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, -1, + 170, 171, 172, 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, -1, 80, 81, 82, -1, -1, -1, 86, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, -1, -1, + -1, -1, -1, -1, -1, -1, 114, -1, 116, 117, + -1, 119, -1, -1, -1, -1, 124, -1, 126, 127, + 128, -1, -1, 131, -1, 10, 11, 12, 136, -1, + -1, 139, -1, -1, -1, 143, 3, 4, 5, 6, + 148, 8, 9, 10, 11, 12, -1, -1, 15, 162, + 163, 164, 165, 166, 167, 168, -1, 170, 171, 172, + -1, 169, -1, 171, 172, -1, -1, 175, 16, 17, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, 48, -1, 68, 51, 52, 34, -1, 55, -1, + 57, 58, 59, 60, 61, 62, 81, 82, -1, 66, + 67, -1, -1, 70, 71, -1, -1, 74, -1, -1, + -1, -1, -1, 80, 81, 82, -1, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 119, 120, -1, 122, 105, -1, + -1, -1, 127, -1, 129, -1, -1, 114, -1, -1, + 117, -1, 119, -1, -1, -1, 123, 124, -1, 126, + 127, 128, -1, -1, 131, 132, -1, -1, -1, 136, + -1, 156, 139, 140, 141, 142, 143, -1, -1, 146, + -1, 148, -1, 3, 4, 5, 6, -1, 8, 9, + 10, 11, 12, -1, 161, 15, -1, 164, 165, -1, + -1, -1, 169, -1, 171, -1, 154, -1, 175, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, -1, 170, 171, 172, 173, -1, -1, 48, -1, + -1, 51, 52, -1, -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, -1, + 80, 81, 82, -1, 20, 21, 22, 23, 24, 89, + 3, 4, 5, 6, -1, 8, 9, 10, 34, -1, + -1, -1, 15, -1, -1, 105, -1, -1, -1, -1, + -1, -1, -1, -1, 114, -1, -1, 117, -1, 119, + -1, -1, -1, 123, 124, -1, 126, 127, 128, -1, + -1, 131, 132, -1, -1, -1, 136, -1, 51, 139, + 140, 141, 142, 143, -1, -1, 146, -1, 148, -1, + -1, -1, -1, 66, -1, -1, -1, -1, 71, -1, + -1, 161, -1, -1, 164, 165, -1, 80, 81, 169, + -1, 171, -1, 86, -1, 175, -1, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 3, 4, 5, 6, -1, 8, 9, 10, + -1, -1, -1, -1, 117, -1, 119, -1, -1, -1, + -1, 124, -1, -1, -1, 128, -1, -1, 131, -1, + -1, -1, -1, 136, -1, -1, 162, 163, 164, 165, + 166, 167, 168, -1, 170, 171, 172, -1, -1, -1, + 51, -1, -1, -1, -1, -1, -1, -1, 161, -1, + -1, 164, 165, 166, -1, 66, 169, -1, 171, 172, + 71, -1, 175, -1, -1, -1, 10, 11, 12, 80, + 81, -1, -1, -1, -1, 86, -1, -1, -1, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 16, 17, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, 117, -1, 119, -1, + -1, -1, 34, 124, -1, -1, -1, 128, -1, -1, + 131, -1, -1, -1, 68, 136, -1, -1, -1, 55, + -1, 57, 58, 59, 60, -1, -1, 81, 82, -1, + -1, -1, -1, -1, 10, 11, 12, -1, -1, -1, + 161, -1, -1, 164, 165, 166, 6, -1, 169, -1, + 171, 172, -1, 89, 175, -1, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 119, 120, -1, 122, 105, + -1, -1, -1, 127, 34, 129, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, + 126, 127, 68, -1, -1, -1, -1, -1, -1, 153, + -1, -1, -1, -1, -1, 81, 82, 143, -1, 69, + -1, -1, 148, -1, -1, -1, -1, -1, -1, 10, + 11, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, + 172, 173, -1, 119, 120, -1, 122, -1, -1, -1, + -1, 127, -1, 129, 114, -1, -1, -1, -1, -1, + -1, 52, -1, -1, 55, -1, 57, 58, 59, 60, + 61, -1, -1, -1, 10, 11, 67, 153, -1, 70, + -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, 154, -1, -1, 157, 89, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + -1, 171, 172, -1, 105, 175, 52, -1, -1, 55, + -1, 57, 58, 59, 60, 61, -1, 118, -1, -1, + -1, 67, -1, -1, 70, 126, 127, -1, 74, -1, + 11, 132, -1, -1, -1, -1, 82, -1, -1, 140, + 141, 142, 143, 89, -1, 146, -1, 148, -1, -1, + -1, -1, 153, -1, -1, -1, 10, 11, -1, 105, + -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, + -1, -1, 118, -1, 55, -1, 57, 58, 59, 60, + 126, 127, -1, -1, -1, -1, 132, -1, -1, -1, + -1, -1, -1, -1, 140, 141, 142, 143, 52, -1, + 146, 55, 148, 57, 58, 59, 60, 61, 89, -1, + -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, + 74, -1, -1, 169, 105, -1, -1, -1, 82, -1, + -1, -1, -1, -1, -1, 89, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 126, 127, -1, -1, -1, + -1, 105, -1, -1, 34, -1, 10, 11, 12, -1, + -1, 15, 143, -1, 118, -1, -1, 148, -1, -1, + -1, -1, 126, 127, -1, -1, -1, -1, 132, -1, + -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, + -1, -1, 146, -1, 148, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34, 68, 169, 16, 17, 18, 19, + 20, 21, 22, 23, 24, -1, -1, 81, 82, -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, -1, -1, 119, 120, -1, 122, -1, + -1, -1, 34, 127, -1, 129, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, -1, + 170, 171, 172, 173, 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, + 23, 24, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 34, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, + 171, 172, 173, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, -1, + 170, 171, 172, 173, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, + 171, 172, 173, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, + 172, 173, 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, + 34, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, + 172, 173, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, -1, 170, 171, 172, + 173, 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, -1, + -1, -1, -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, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, -1, 170, 171, 172, 173, + -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, 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, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, -1, 170, 171, 172, 173, -1, + 156, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 0, 170, 171, 172, -1, -1, 156, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, -1, 170, 171, 172, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, -1, 170, 171, 172, -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, -1, -1, 73, -1, 75, 76, + 77, 78, 79, -1, -1, -1, 83, -1, -1, -1, + -1, 88, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, -1, 170, 171, 172, -1, -1, -1, 106, + 107, 108, 109, 110, 111, 112, 113, -1, -1, -1, + -1, -1, -1, 120, 121, 122, 123, -1, -1, -1, + -1, -1, 129, 130, 11, 12, 133, 134, 15, -1, + 17, 138, -1, -1, -1, -1, -1, 144, 145, -1, + 147, 18, 19, 20, 21, 22, 23, 24, 155, -1, + -1, -1, -1, -1, -1, -1, -1, 34, 10, 11, + 12, 48, -1, -1, -1, 52, -1, -1, 55, -1, + 57, 58, 59, 60, 61, 62, -1, -1, -1, -1, + 67, -1, -1, 70, -1, -1, -1, 74, 18, 19, + 20, 21, 22, 23, 24, 82, 48, -1, 50, -1, + -1, -1, 89, -1, 34, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, 68, -1, 105, -1, + -1, 34, 18, 19, 20, 21, 22, 23, 24, 81, + 82, -1, -1, -1, -1, -1, 123, -1, 34, 126, + 127, -1, -1, -1, -1, 132, 18, 19, 20, 21, + 22, 23, 24, 140, 141, 142, 143, -1, -1, 146, + -1, 148, 34, -1, -1, -1, -1, 119, 120, -1, + 122, -1, -1, -1, 161, 127, -1, 129, -1, 166, + -1, -1, -1, 160, 161, 162, 163, 164, 165, 166, + 167, 168, -1, 170, 171, 172, -1, -1, -1, -1, + -1, 153, -1, -1, -1, -1, -1, -1, -1, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, -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, + -1, 161, 162, 163, 164, 165, 166, 167, 168, -1, + 170, 171, 172, -1, -1, -1, 159, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 17, 170, 171, 172, + -1, -1, -1, -1, 160, 161, 17, 68, 164, 165, + 166, 167, 168, 34, 170, 171, 172, -1, -1, -1, + 81, 82, -1, -1, -1, -1, -1, 48, -1, 161, + -1, -1, 164, 165, 166, 167, 168, 48, 170, 171, + 172, 62, -1, 64, -1, -1, -1, -1, -1, -1, + -1, 62, -1, 64, -1, -1, -1, -1, 119, 120, + 81, 122, -1, -1, -1, -1, 127, -1, 129, -1, + 81, -1, -1, 6, -1, -1, 10, 11, 12, 140, + -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, + -1, 112, -1, -1, 115, 116, -1, -1, 119, -1, + -1, 112, -1, -1, 115, 116, -1, -1, 119, -1, + -1, -1, 6, -1, 135, 48, -1, 50, -1, -1, + -1, 54, -1, -1, 135, -1, 147, -1, -1, 62, + 63, 64, 65, -1, 68, -1, 147, -1, -1, -1, + 161, -1, 75, 76, 77, 78, -1, 81, 82, -1, + 161, -1, -1, -1, 48, 88, 50, -1, -1, -1, + 54, -1, -1, -1, -1, -1, -1, -1, 62, 63, + 64, 65, 10, 11, 12, -1, 10, 11, 12, 112, + -1, 75, 76, 77, 78, 119, 120, 121, 122, -1, + 123, -1, -1, 127, 88, 129, 129, -1, -1, -1, + 133, 134, -1, -1, -1, -1, 140, -1, -1, -1, + -1, 145, 145, -1, 147, -1, -1, -1, 112, -1, + -1, 55, -1, 57, 58, 59, 60, 61, 62, 123, + 68, -1, 10, 11, 12, 129, 70, -1, -1, -1, + 134, -1, -1, 81, 82, -1, -1, -1, 82, -1, + -1, 145, -1, 147, -1, 89, -1, -1, -1, -1, + 55, -1, 57, 58, 59, 60, -1, -1, 10, 11, + 12, 105, -1, -1, 11, 12, -1, -1, 15, -1, + -1, 119, 120, -1, 122, -1, -1, -1, -1, 127, + 68, 129, 126, 127, 89, -1, -1, -1, -1, -1, + -1, -1, 140, 81, 82, -1, 140, 145, -1, 143, + 105, 48, 146, -1, 148, 52, -1, -1, 55, -1, + 57, 58, 59, 60, 61, 62, 68, -1, -1, -1, + 67, 126, 127, 70, -1, -1, -1, 74, -1, 81, + 82, 119, 120, -1, 122, 82, -1, -1, 143, 127, + -1, 129, 89, 148, -1, -1, -1, -1, -1, -1, + -1, -1, 140, -1, -1, -1, -1, 145, 105, -1, + -1, 11, 12, -1, -1, 15, 171, 119, 120, -1, + 122, -1, -1, -1, -1, 127, 123, 129, -1, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 144, 140, 141, 142, 143, -1, 48, 146, + -1, 148, 52, 11, 12, 55, -1, 57, 58, 59, + 60, 61, 62, -1, -1, -1, -1, 67, -1, -1, + 70, -1, -1, -1, 74, -1, -1, -1, -1, -1, + -1, -1, 82, -1, -1, -1, -1, -1, -1, 89, + 48, -1, -1, -1, 52, -1, -1, 55, -1, 57, + 58, 59, 60, 61, 62, 105, -1, -1, -1, 67, + -1, -1, 70, -1, -1, -1, 74, -1, -1, -1, + -1, -1, -1, 123, 82, -1, 126, 127, -1, -1, + -1, 89, 132, -1, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, -1, 146, 105, 148, -1, + 11, 12, -1, -1, -1, -1, -1, -1, 55, -1, + 57, 58, 59, 60, -1, 123, -1, -1, 126, 127, + -1, -1, -1, 70, 132, -1, 11, 12, -1, -1, + -1, -1, 140, 141, 142, 143, -1, -1, 146, -1, + 148, 52, 89, -1, 55, -1, 57, 58, 59, 60, + 61, 62, -1, -1, -1, -1, 67, -1, 105, 70, + -1, -1, -1, 74, -1, -1, -1, 52, -1, -1, + 55, 82, 57, 58, 59, 60, 61, -1, 89, 126, + 127, -1, 67, -1, -1, 70, -1, -1, -1, 74, + -1, -1, -1, -1, 105, -1, 143, 82, -1, -1, + -1, 148, -1, -1, 89, -1, -1, -1, -1, -1, + -1, 10, 11, 12, -1, 126, 127, -1, 11, 12, + 105, 132, -1, -1, 171, -1, -1, -1, -1, 140, + 141, 142, 143, -1, -1, 146, -1, 148, 123, -1, + -1, 126, 127, -1, 11, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, 140, 141, 142, 143, 52, + -1, 146, 55, 148, 57, 58, 59, 60, 61, 68, + -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, + -1, 74, 81, 82, -1, 52, -1, -1, 55, 82, + 57, 58, 59, 60, 61, 62, 89, -1, -1, -1, + 67, -1, -1, 70, -1, -1, -1, 74, -1, -1, + -1, -1, 105, -1, -1, 82, -1, -1, -1, -1, + 119, 120, 89, 122, -1, -1, -1, -1, 127, -1, + 129, -1, -1, 126, 127, -1, 11, -1, 105, 132, + -1, 140, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, -1, 146, -1, 148, -1, -1, -1, 126, + 127, -1, 11, -1, -1, 132, -1, -1, -1, -1, + 10, 11, 12, 140, 141, 142, 143, 52, -1, 146, + 55, 148, 57, 58, 59, 60, 61, 62, -1, -1, + -1, -1, 67, -1, -1, 70, -1, -1, -1, 74, + -1, -1, -1, 52, -1, -1, 55, 82, 57, 58, + 59, 60, 61, -1, 89, -1, -1, -1, 67, -1, + -1, 70, -1, -1, -1, 74, -1, -1, 68, -1, + 105, -1, -1, 82, -1, -1, -1, -1, -1, -1, + 89, 81, 82, -1, -1, -1, -1, -1, -1, -1, + -1, 126, 127, -1, 11, -1, 105, 132, -1, -1, + -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, + -1, 146, -1, 148, -1, -1, -1, 126, 127, 119, + 120, -1, 122, 132, -1, -1, -1, 127, -1, 129, + -1, 140, 141, 142, 143, 52, -1, 146, 55, 148, + 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, + 67, -1, -1, 70, -1, -1, -1, 74, -1, -1, + -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, + -1, -1, 89, -1, -1, -1, 48, -1, 50, -1, + -1, 53, 54, -1, -1, -1, -1, -1, 105, -1, + 62, 63, 64, 65, -1, -1, -1, -1, -1, -1, + -1, 73, -1, 75, 76, 77, 78, 79, -1, 126, + 127, 83, -1, -1, -1, 132, 88, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, -1, 146, + -1, 148, -1, -1, 106, 107, 108, 109, 110, 111, + 112, 113, -1, -1, -1, -1, -1, -1, 120, 121, + 122, 123, -1, -1, -1, -1, -1, 129, 130, -1, + -1, 133, 134, 48, -1, 50, 138, -1, 53, 54, + -1, -1, 144, 145, -1, 147, -1, 62, 63, 64, + 65, -1, -1, 155, -1, -1, -1, -1, 73, -1, + 75, 76, 77, 78, 79, -1, -1, -1, 83, -1, + -1, -1, 174, 88, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 106, 107, 108, 109, 110, 111, 112, 113, -1, + -1, -1, -1, -1, -1, 120, 121, 122, 123, -1, + -1, -1, -1, -1, 129, 130, -1, -1, 133, 134, + 48, -1, 50, 138, -1, 53, 54, -1, -1, 144, + 145, -1, 147, -1, 62, 63, 64, 65, -1, -1, + 155, -1, -1, -1, -1, 73, -1, 75, 76, 77, + 78, 79, -1, -1, -1, 83, -1, -1, -1, 174, 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, 106, 107, + 108, 109, 110, 111, 112, 113, -1, -1, -1, -1, + -1, -1, 120, 121, 122, 123, -1, -1, -1, -1, + -1, 129, 130, -1, -1, 133, 134, 48, -1, 50, + 138, -1, 53, 54, -1, -1, 144, 145, -1, 147, + -1, 62, 63, 64, 65, -1, -1, 155, -1, -1, + -1, -1, 73, -1, 75, 76, 77, 78, 79, -1, + -1, -1, 83, -1, -1, -1, 174, 88, -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, -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, 106, 107, 108, 109, 110, + 111, 112, 113, -1, -1, -1, -1, -1, -1, 120, + 121, 122, 123, -1, -1, -1, -1, -1, 129, 130, + -1, -1, 133, 134, 48, -1, 50, 138, -1, 53, + 54, -1, -1, 144, 145, -1, 147, -1, 62, 63, + 64, 65, -1, -1, 155, -1, -1, -1, -1, 73, + -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, + -1, -1, -1, 174, 88, -1, -1, -1, -1, -1, -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, 106, 107, 108, 109, 110, 111, 112, 113, + -1, -1, -1, -1, -1, -1, 120, 121, 122, 123, + -1, -1, -1, -1, -1, 129, 130, -1, -1, 133, + 134, 48, -1, 50, 138, -1, 53, 54, -1, -1, + 144, 145, -1, 147, -1, 62, 63, 64, 65, -1, + -1, 155, -1, -1, -1, -1, 73, -1, 75, 76, + 77, 78, 79, -1, -1, -1, 83, -1, -1, -1, + 174, 88, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, + 107, 108, 109, 110, 111, 112, 113, -1, -1, -1, + -1, -1, -1, 120, 121, 122, 123, -1, -1, -1, + -1, -1, 129, 130, -1, -1, 133, 134, 48, -1, + 50, 138, -1, 53, 54, -1, -1, 144, 145, -1, + 147, -1, 62, 63, 64, 65, -1, -1, 155, -1, + -1, -1, -1, 73, -1, 75, 76, 77, 78, 79, + -1, -1, -1, 83, -1, -1, -1, 174, 88, -1, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, -1, -1, 106, 107, 108, 109, + 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, + 120, 121, 122, 123, -1, -1, -1, -1, -1, 129, + 130, -1, -1, 133, 134, -1, -1, -1, 138, 48, + -1, 50, -1, -1, 144, 145, -1, 147, 68, -1, + -1, -1, -1, -1, 74, 155, -1, -1, -1, 68, + -1, 81, 82, -1, 55, -1, 57, 58, 59, 60, + -1, -1, 81, 82, 174, -1, -1, -1, 55, -1, + 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 113, -1, -1, -1, -1, 89, 119, + 120, -1, 122, -1, -1, -1, -1, 127, -1, 129, + 119, 120, 89, 122, 105, -1, -1, -1, 127, -1, + 129, -1, -1, -1, -1, -1, -1, -1, 105, -1, + -1, -1, -1, -1, -1, 126, 127, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, + 127, -1, 143, -1, -1, -1, -1, 148, 48, -1, + 50, -1, -1, -1, 54, -1, 143, -1, -1, -1, + -1, 148, 62, 63, 64, 65, -1, -1, -1, -1, + 171, -1, -1, -1, -1, 75, 76, 77, 78, -1, + -1, -1, -1, 83, 171, -1, -1, -1, 88, -1, + -1, 48, -1, 50, -1, -1, 53, 54, -1, -1, + -1, -1, -1, -1, -1, 62, 63, 64, 65, -1, + -1, -1, 112, -1, -1, -1, 73, -1, 75, 76, + 77, 78, 79, 123, -1, -1, 83, -1, -1, 129, + -1, 88, -1, -1, 134, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 144, 145, -1, 147, -1, 106, + 107, 108, 109, 110, 111, 112, 113, -1, -1, -1, + -1, -1, 162, 120, 121, 122, 123, -1, 48, -1, + 50, -1, 129, 130, 54, -1, 133, 134, -1, -1, + -1, 138, 62, 63, 64, 65, -1, 144, 145, -1, + 147, -1, -1, -1, -1, 75, 76, 77, 78, -1, + -1, -1, -1, 83, -1, -1, -1, 48, 88, 50, + -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, + -1, 62, 63, 64, 65, -1, -1, -1, -1, -1, + -1, -1, 112, -1, 75, 76, 77, 78, -1, -1, + -1, -1, -1, 123, -1, -1, 48, 88, 50, 129, + -1, -1, 54, 133, 134, -1, -1, -1, -1, -1, + 62, 63, 64, 65, 144, 145, -1, 147, -1, -1, + -1, 112, 113, 75, 76, 77, 78, -1, -1, -1, + -1, -1, 123, -1, -1, -1, 88, -1, 129, -1, + -1, -1, 55, 134, 57, 58, 59, 60, -1, -1, + -1, -1, -1, -1, 145, -1, 147, 70, -1, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, -1, -1, -1, 89, 129, -1, -1, + -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 105, 145, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, 127, -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 + 143, -1, -1, -1, -1, 148 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 148, 149, 150, 176, 177, 285, 3, 4, 5, + 0, 150, 151, 152, 178, 179, 287, 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, + 60, 66, 70, 71, 80, 81, 82, 86, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 114, 116, 117, 119, 124, + 126, 127, 128, 131, 136, 139, 143, 148, 161, 164, + 165, 166, 169, 171, 172, 175, 277, 278, 286, 11, + 12, 52, 55, 57, 58, 59, 60, 61, 62, 67, + 70, 74, 82, 89, 105, 126, 127, 132, 140, 141, + 142, 143, 146, 148, 239, 240, 244, 246, 248, 254, + 255, 259, 260, 265, 266, 267, 268, 0, 48, 50, + 53, 54, 62, 63, 64, 65, 73, 75, 76, 77, + 78, 79, 83, 88, 106, 107, 108, 109, 110, 111, + 112, 113, 120, 121, 122, 123, 129, 130, 133, 134, + 138, 144, 145, 147, 155, 182, 184, 185, 187, 190, + 210, 261, 264, 287, 153, 171, 171, 171, 171, 171, + 171, 171, 162, 171, 162, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 11, 52, 67, 140, 141, 242, + 259, 260, 265, 277, 162, 171, 171, 15, 171, 277, + 162, 171, 171, 171, 277, 277, 277, 277, 277, 11, + 55, 57, 58, 59, 60, 70, 82, 89, 105, 126, + 127, 143, 148, 244, 275, 277, 10, 11, 12, 68, + 81, 82, 119, 120, 122, 127, 129, 157, 161, 166, + 281, 282, 284, 287, 277, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 34, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 170, 171, 172, 6, + 8, 239, 240, 171, 61, 132, 70, 105, 266, 266, + 266, 284, 171, 266, 13, 15, 17, 62, 147, 161, + 166, 171, 237, 238, 287, 238, 153, 10, 11, 12, + 119, 156, 285, 245, 287, 144, 188, 189, 284, 171, + 76, 88, 187, 187, 187, 187, 187, 187, 6, 187, + 210, 187, 277, 156, 186, 113, 187, 171, 171, 171, + 171, 171, 171, 187, 153, 284, 156, 156, 156, 187, + 187, 171, 185, 187, 190, 211, 187, 187, 194, 74, + 113, 284, 187, 187, 10, 11, 52, 67, 118, 140, + 141, 153, 169, 197, 201, 241, 243, 246, 248, 254, + 259, 260, 265, 274, 275, 287, 274, 244, 274, 274, + 274, 274, 274, 244, 274, 244, 274, 244, 274, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 274, 171, 284, 171, 171, 284, + 245, 173, 244, 274, 274, 171, 244, 244, 244, 277, + 274, 274, 173, 154, 173, 284, 284, 154, 176, 157, + 227, 287, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 284, 173, 275, 277, 238, 238, 52, + 277, 244, 166, 284, 13, 15, 17, 62, 147, 161, + 166, 237, 287, 237, 238, 237, 238, 237, 237, 15, + 17, 48, 62, 123, 161, 166, 222, 223, 232, 239, + 240, 287, 172, 257, 258, 287, 11, 256, 266, 156, + 10, 11, 12, 48, 50, 119, 153, 284, 285, 284, + 49, 154, 171, 11, 241, 277, 187, 173, 184, 153, + 284, 284, 284, 284, 284, 284, 284, 179, 153, 277, + 162, 10, 11, 201, 241, 243, 284, 284, 155, 157, + 171, 171, 171, 62, 239, 284, 171, 183, 284, 192, + 153, 155, 157, 229, 155, 191, 284, 285, 245, 174, + 173, 173, 173, 173, 173, 173, 173, 163, 173, 163, + 173, 173, 173, 173, 154, 173, 154, 173, 154, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 277, 244, 274, 284, 163, 173, 173, 284, 173, 163, + 173, 173, 173, 173, 277, 277, 15, 161, 282, 171, + 207, 287, 277, 156, 173, 176, 173, 173, 173, 237, + 166, 284, 237, 237, 237, 237, 237, 172, 237, 188, + 123, 239, 240, 232, 237, 237, 173, 15, 154, 13, + 17, 62, 147, 161, 166, 171, 235, 285, 287, 13, + 15, 17, 62, 147, 161, 166, 171, 236, 273, 277, + 287, 284, 174, 256, 188, 171, 247, 249, 156, 187, + 188, 3, 4, 5, 9, 10, 15, 51, 66, 71, + 80, 81, 114, 117, 119, 124, 128, 131, 136, 139, + 161, 164, 165, 169, 171, 175, 224, 225, 232, 233, + 279, 280, 286, 287, 173, 173, 187, 179, 153, 154, + 154, 154, 154, 154, 154, 174, 262, 154, 173, 10, + 11, 12, 61, 62, 140, 212, 213, 214, 215, 216, + 265, 287, 171, 229, 195, 155, 155, 244, 198, 10, + 13, 166, 200, 52, 277, 239, 13, 17, 62, 147, + 161, 166, 234, 285, 287, 244, 179, 171, 153, 155, + 156, 157, 228, 269, 270, 68, 69, 153, 277, 13, + 17, 62, 118, 147, 161, 166, 171, 193, 217, 219, + 285, 156, 284, 171, 171, 244, 244, 244, 173, 173, + 173, 171, 173, 171, 227, 222, 17, 34, 48, 62, + 64, 81, 112, 115, 116, 119, 135, 147, 161, 220, + 287, 277, 237, 273, 173, 49, 239, 240, 235, 236, + 173, 173, 207, 15, 232, 166, 235, 235, 235, 235, + 235, 235, 172, 227, 166, 284, 236, 236, 236, 236, + 236, 236, 172, 227, 176, 154, 157, 49, 241, 277, + 179, 81, 250, 287, 189, 171, 162, 162, 242, 162, + 15, 171, 279, 162, 171, 277, 277, 277, 277, 244, + 275, 277, 173, 15, 154, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 34, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 170, 171, 172, 187, + 187, 174, 263, 10, 10, 10, 10, 10, 10, 179, + 286, 155, 216, 163, 154, 15, 284, 13, 17, 62, + 147, 161, 166, 171, 235, 236, 196, 219, 155, 222, + 173, 166, 217, 222, 173, 173, 234, 166, 234, 234, + 234, 234, 234, 171, 172, 173, 174, 202, 269, 180, + 181, 284, 68, 69, 174, 271, 287, 155, 155, 153, + 230, 231, 277, 287, 155, 166, 217, 217, 6, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 34, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 69, 114, 154, 157, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 171, 172, 175, 208, + 217, 217, 217, 217, 156, 171, 172, 220, 157, 227, + 229, 256, 275, 275, 173, 173, 173, 275, 275, 173, + 62, 242, 188, 277, 171, 153, 176, 171, 232, 235, + 236, 227, 227, 171, 171, 220, 235, 173, 273, 236, + 173, 273, 277, 173, 173, 174, 156, 251, 252, 287, + 244, 244, 244, 171, 244, 171, 244, 244, 244, 277, + 173, 173, 15, 233, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 284, 173, 275, 277, 179, + 154, 154, 173, 154, 221, 287, 154, 154, 154, 174, + 173, 235, 236, 185, 190, 209, 210, 215, 284, 157, + 166, 157, 226, 287, 227, 229, 173, 171, 217, 173, + 173, 171, 234, 205, 273, 222, 174, 153, 154, 153, + 171, 155, 155, 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, - 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 + 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, 85, 87, 88, 89, 105, 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, + 144, 145, 146, 147, 148, 149, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 175, 176, 272, + 230, 174, 154, 217, 10, 173, 176, 173, 277, 218, + 273, 277, 154, 173, 173, 173, 173, 207, 242, 238, + 49, 173, 173, 284, 269, 222, 227, 227, 222, 222, + 171, 176, 171, 176, 154, 120, 121, 122, 140, 145, + 253, 283, 284, 153, 154, 173, 163, 163, 274, 163, + 284, 173, 163, 173, 173, 277, 156, 173, 176, 174, + 10, 10, 155, 10, 173, 10, 10, 10, 155, 226, + 244, 51, 66, 71, 124, 128, 131, 161, 164, 165, + 166, 169, 171, 175, 276, 278, 154, 207, 199, 173, + 171, 207, 206, 222, 176, 173, 269, 181, 274, 274, + 271, 174, 153, 277, 224, 176, 193, 220, 238, 15, + 173, 174, 173, 173, 173, 222, 222, 145, 283, 145, + 283, 145, 283, 284, 120, 121, 122, 15, 179, 253, + 171, 171, 173, 171, 173, 171, 277, 173, 154, 173, + 154, 155, 154, 173, 173, 154, 173, 171, 162, 162, + 162, 15, 171, 276, 162, 276, 276, 276, 276, 276, + 244, 275, 276, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 34, 158, 159, 160, 161, 164, 165, 166, + 167, 168, 170, 171, 172, 196, 222, 171, 203, 222, + 173, 207, 174, 174, 173, 174, 230, 173, 153, 173, + 207, 207, 207, 173, 173, 283, 283, 283, 283, 283, + 283, 174, 275, 275, 275, 275, 155, 10, 155, 10, + 10, 155, 155, 10, 155, 244, 244, 244, 244, 171, + 244, 244, 173, 173, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 284, 173, 275, 277, 173, 204, 222, + 173, 207, 15, 174, 207, 269, 220, 220, 220, 207, + 207, 173, 173, 173, 173, 154, 221, 173, 154, 154, + 173, 173, 163, 163, 163, 284, 173, 163, 276, 156, + 173, 176, 207, 222, 173, 207, 174, 10, 173, 155, + 10, 10, 155, 171, 171, 171, 173, 171, 276, 173, + 207, 155, 173, 154, 173, 275, 275, 275, 275, 207, + 220, 155, 10, 155, 173, 173, 173, 173, 220, 173, + 155 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 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, + 0, 177, 178, 178, 178, 179, 179, 179, 180, 180, + 181, 181, 181, 183, 182, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 186, 185, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 188, 188, 189, 189, 189, + 191, 190, 190, 192, 190, 190, 190, 193, 193, 195, + 194, 194, 196, 196, 198, 197, 199, 197, 200, 197, + 202, 201, 203, 201, 204, 201, 205, 201, 206, 201, + 201, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 209, 209, 209, 210, + 211, 210, 210, 210, 212, 212, 213, 213, 214, 214, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 216, + 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 218, 217, 219, 219, 220, 220, + 220, 221, 221, 222, 222, 222, 222, 222, 223, 223, + 224, 224, 224, 224, 224, 225, 225, 226, 226, 227, + 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, + 229, 229, 230, 230, 230, 231, 231, 231, 231, 232, + 232, 232, 232, 232, 232, 232, 232, 233, 233, 234, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 236, 236, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 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, - 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, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 240, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, + 244, 244, 244, 244, 245, 245, 245, 245, 247, 246, + 249, 248, 250, 250, 251, 251, 252, 252, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 254, 255, + 255, 255, 255, 256, 256, 257, 257, 257, 258, 258, + 258, 259, 259, 259, 260, 260, 260, 262, 261, 263, + 261, 261, 261, 264, 264, 264, 264, 265, 265, 265, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 267, 267, 267, 268, 270, + 269, 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, 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, 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, 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, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 273, + 273, 274, 274, 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, 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, - 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 + 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, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 281, 281, 281, 281, 281, 282, 282, + 282, 282, 283, 283, 283, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, + 286, 286, 286, 286, 287 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -3376,43 +3429,44 @@ 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, 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, + 2, 2, 4, 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, 4, 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, 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, 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, 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, 1, 1, 1, 1, 1, 1, 1, @@ -3425,30 +3479,30 @@ 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, 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, 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, 3, 5, 4, 4, 3, 3, 3, 3, - 1, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 1, 1, 3, 1, 4, 7, 7, 7, + 7, 4, 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, 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, + 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, 3, 5, + 4, 4, 3, 3, 3, 3, 3, 1, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 0 + 1, 1, 2, 2, 0 }; @@ -4019,64 +4073,64 @@ yyreduce: switch (yyn) { case 3: /* grammar: START_CONST_EXPR const_expr */ -#line 459 "dtool/src/cppparser/cppBison.yxx" +#line 461 "dtool/src/cppparser/cppBison.yxx" { current_expr = (yyvsp[0].u.expr); } -#line 4027 "built/tmp/cppBison.yxx.c" +#line 4081 "built/tmp/cppBison.yxx.c" break; case 4: /* grammar: START_TYPE full_type */ -#line 463 "dtool/src/cppparser/cppBison.yxx" +#line 465 "dtool/src/cppparser/cppBison.yxx" { current_type = (yyvsp[0].u.type); } -#line 4035 "built/tmp/cppBison.yxx.c" +#line 4089 "built/tmp/cppBison.yxx.c" break; case 10: /* constructor_init: name '(' optional_const_expr_comma ')' */ -#line 481 "dtool/src/cppparser/cppBison.yxx" +#line 483 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[-1].u.expr); } -#line 4043 "built/tmp/cppBison.yxx.c" +#line 4097 "built/tmp/cppBison.yxx.c" break; case 11: /* constructor_init: name '(' optional_const_expr_comma ')' ELLIPSIS */ -#line 485 "dtool/src/cppparser/cppBison.yxx" +#line 487 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[-2].u.expr); } -#line 4051 "built/tmp/cppBison.yxx.c" +#line 4105 "built/tmp/cppBison.yxx.c" break; case 12: /* constructor_init: name '{' optional_const_expr_comma '}' */ -#line 489 "dtool/src/cppparser/cppBison.yxx" +#line 491 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[-1].u.expr); } -#line 4059 "built/tmp/cppBison.yxx.c" +#line 4113 "built/tmp/cppBison.yxx.c" break; case 13: /* $@1: %empty */ -#line 501 "dtool/src/cppparser/cppBison.yxx" +#line 503 "dtool/src/cppparser/cppBison.yxx" { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } -#line 4068 "built/tmp/cppBison.yxx.c" +#line 4122 "built/tmp/cppBison.yxx.c" break; case 14: /* extern_c: storage_class '{' $@1 cpp '}' */ -#line 506 "dtool/src/cppparser/cppBison.yxx" +#line 508 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } -#line 4076 "built/tmp/cppBison.yxx.c" +#line 4130 "built/tmp/cppBison.yxx.c" break; case 21: /* declaration: KW_BEGIN_PUBLISH */ -#line 519 "dtool/src/cppparser/cppBison.yxx" +#line 521 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -4089,11 +4143,11 @@ yyreduce: publish_nest_level++; current_scope->set_current_vis(V_published); } -#line 4093 "built/tmp/cppBison.yxx.c" +#line 4147 "built/tmp/cppBison.yxx.c" break; case 22: /* declaration: KW_END_PUBLISH */ -#line 532 "dtool/src/cppparser/cppBison.yxx" +#line 534 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[0])); @@ -4102,19 +4156,19 @@ yyreduce: } publish_nest_level = 0; } -#line 4106 "built/tmp/cppBison.yxx.c" +#line 4160 "built/tmp/cppBison.yxx.c" break; case 23: /* declaration: KW_PUBLISHED ':' */ -#line 541 "dtool/src/cppparser/cppBison.yxx" +#line 543 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_published); } -#line 4114 "built/tmp/cppBison.yxx.c" +#line 4168 "built/tmp/cppBison.yxx.c" break; case 24: /* declaration: KW_PUBLIC ':' */ -#line 545 "dtool/src/cppparser/cppBison.yxx" +#line 547 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -4122,27 +4176,27 @@ yyreduce: current_scope->set_current_vis(V_public); } } -#line 4126 "built/tmp/cppBison.yxx.c" +#line 4180 "built/tmp/cppBison.yxx.c" break; case 25: /* declaration: KW_PROTECTED ':' */ -#line 553 "dtool/src/cppparser/cppBison.yxx" +#line 555 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_protected); } -#line 4134 "built/tmp/cppBison.yxx.c" +#line 4188 "built/tmp/cppBison.yxx.c" break; case 26: /* declaration: KW_PRIVATE ':' */ -#line 557 "dtool/src/cppparser/cppBison.yxx" +#line 559 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_private); } -#line 4142 "built/tmp/cppBison.yxx.c" +#line 4196 "built/tmp/cppBison.yxx.c" break; case 27: /* declaration: KW_MAKE_PROPERTY '(' name ',' IDENTIFIER maybe_comma_identifier ')' ';' */ -#line 561 "dtool/src/cppparser/cppBison.yxx" +#line 563 "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) { @@ -4163,11 +4217,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-7])); } } -#line 4167 "built/tmp/cppBison.yxx.c" +#line 4221 "built/tmp/cppBison.yxx.c" break; case 28: /* declaration: KW_MAKE_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 582 "dtool/src/cppparser/cppBison.yxx" +#line 584 "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) { @@ -4194,11 +4248,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); } } -#line 4198 "built/tmp/cppBison.yxx.c" +#line 4252 "built/tmp/cppBison.yxx.c" break; case 29: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 609 "dtool/src/cppparser/cppBison.yxx" +#line 611 "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) { @@ -4219,11 +4273,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4223 "built/tmp/cppBison.yxx.c" +#line 4277 "built/tmp/cppBison.yxx.c" break; case 30: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 630 "dtool/src/cppparser/cppBison.yxx" +#line 632 "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) { @@ -4252,11 +4306,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); } } -#line 4256 "built/tmp/cppBison.yxx.c" +#line 4310 "built/tmp/cppBison.yxx.c" break; case 31: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 659 "dtool/src/cppparser/cppBison.yxx" +#line 661 "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) { @@ -4292,11 +4346,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 4296 "built/tmp/cppBison.yxx.c" +#line 4350 "built/tmp/cppBison.yxx.c" break; case 32: /* declaration: KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 695 "dtool/src/cppparser/cppBison.yxx" +#line 697 "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) { @@ -4339,11 +4393,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-14])); } } -#line 4343 "built/tmp/cppBison.yxx.c" +#line 4397 "built/tmp/cppBison.yxx.c" break; case 33: /* declaration: KW_MAKE_MAP_PROPERTY '(' name ',' IDENTIFIER ')' ';' */ -#line 738 "dtool/src/cppparser/cppBison.yxx" +#line 740 "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) { @@ -4355,11 +4409,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-6])); } } -#line 4359 "built/tmp/cppBison.yxx.c" +#line 4413 "built/tmp/cppBison.yxx.c" break; case 34: /* declaration: KW_MAKE_MAP_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 750 "dtool/src/cppparser/cppBison.yxx" +#line 752 "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) { @@ -4380,11 +4434,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4384 "built/tmp/cppBison.yxx.c" +#line 4438 "built/tmp/cppBison.yxx.c" break; case 35: /* declaration: KW_MAKE_MAP_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER maybe_comma_identifier ')' ';' */ -#line 771 "dtool/src/cppparser/cppBison.yxx" +#line 773 "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) { @@ -4420,11 +4474,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-11])); } } -#line 4424 "built/tmp/cppBison.yxx.c" +#line 4478 "built/tmp/cppBison.yxx.c" break; case 36: /* declaration: KW_MAKE_MAP_KEYS_SEQ '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 807 "dtool/src/cppparser/cppBison.yxx" +#line 809 "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) { @@ -4458,11 +4512,11 @@ yyreduce: } } } -#line 4462 "built/tmp/cppBison.yxx.c" +#line 4516 "built/tmp/cppBison.yxx.c" break; case 37: /* declaration: KW_MAKE_PROPERTY2 '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 841 "dtool/src/cppparser/cppBison.yxx" +#line 843 "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) { @@ -4484,11 +4538,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4488 "built/tmp/cppBison.yxx.c" +#line 4542 "built/tmp/cppBison.yxx.c" break; case 38: /* declaration: KW_MAKE_PROPERTY2 '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 863 "dtool/src/cppparser/cppBison.yxx" +#line 865 "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) { @@ -4524,11 +4578,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 4528 "built/tmp/cppBison.yxx.c" +#line 4582 "built/tmp/cppBison.yxx.c" break; case 39: /* declaration: KW_MAKE_SEQ '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' */ -#line 899 "dtool/src/cppparser/cppBison.yxx" +#line 901 "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) { @@ -4550,11 +4604,11 @@ yyreduce: current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } -#line 4554 "built/tmp/cppBison.yxx.c" +#line 4608 "built/tmp/cppBison.yxx.c" break; case 40: /* declaration: KW_STATIC_ASSERT '(' const_expr ',' string_literal ')' ';' */ -#line 921 "dtool/src/cppparser/cppBison.yxx" +#line 923 "dtool/src/cppparser/cppBison.yxx" { CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { @@ -4565,11 +4619,11 @@ yyreduce: yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } -#line 4569 "built/tmp/cppBison.yxx.c" +#line 4623 "built/tmp/cppBison.yxx.c" break; case 41: /* declaration: KW_STATIC_ASSERT '(' const_expr ')' ';' */ -#line 932 "dtool/src/cppparser/cppBison.yxx" +#line 934 "dtool/src/cppparser/cppBison.yxx" { // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); @@ -4579,55 +4633,55 @@ yyreduce: yywarning("static_assert failed", (yylsp[-2])); } } -#line 4583 "built/tmp/cppBison.yxx.c" +#line 4637 "built/tmp/cppBison.yxx.c" break; case 42: /* $@2: %empty */ -#line 945 "dtool/src/cppparser/cppBison.yxx" +#line 947 "dtool/src/cppparser/cppBison.yxx" { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } -#line 4593 "built/tmp/cppBison.yxx.c" +#line 4647 "built/tmp/cppBison.yxx.c" break; case 43: /* friend_declaration: KW_FRIEND $@2 declaration */ -#line 951 "dtool/src/cppparser/cppBison.yxx" +#line 953 "dtool/src/cppparser/cppBison.yxx" { delete current_scope; pop_scope(); } -#line 4602 "built/tmp/cppBison.yxx.c" +#line 4656 "built/tmp/cppBison.yxx.c" break; case 44: /* storage_class: empty */ -#line 960 "dtool/src/cppparser/cppBison.yxx" +#line 962 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } -#line 4610 "built/tmp/cppBison.yxx.c" +#line 4664 "built/tmp/cppBison.yxx.c" break; case 45: /* storage_class: KW_CONST storage_class */ -#line 964 "dtool/src/cppparser/cppBison.yxx" +#line 966 "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 4619 "built/tmp/cppBison.yxx.c" +#line 4673 "built/tmp/cppBison.yxx.c" break; case 46: /* storage_class: KW_EXTERN storage_class */ -#line 969 "dtool/src/cppparser/cppBison.yxx" +#line 971 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } -#line 4627 "built/tmp/cppBison.yxx.c" +#line 4681 "built/tmp/cppBison.yxx.c" break; case 47: /* storage_class: KW_EXTERN SIMPLE_STRING storage_class */ -#line 973 "dtool/src/cppparser/cppBison.yxx" +#line 975 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[-1].str) == "C") { @@ -4638,140 +4692,153 @@ yyreduce: yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } -#line 4642 "built/tmp/cppBison.yxx.c" +#line 4696 "built/tmp/cppBison.yxx.c" break; case 48: /* storage_class: KW_STATIC storage_class */ -#line 984 "dtool/src/cppparser/cppBison.yxx" +#line 986 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } -#line 4650 "built/tmp/cppBison.yxx.c" +#line 4704 "built/tmp/cppBison.yxx.c" break; case 49: /* storage_class: KW_INLINE storage_class */ -#line 988 "dtool/src/cppparser/cppBison.yxx" +#line 990 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } -#line 4658 "built/tmp/cppBison.yxx.c" +#line 4712 "built/tmp/cppBison.yxx.c" break; case 50: /* storage_class: KW_VIRTUAL storage_class */ -#line 992 "dtool/src/cppparser/cppBison.yxx" +#line 994 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } -#line 4666 "built/tmp/cppBison.yxx.c" +#line 4720 "built/tmp/cppBison.yxx.c" break; case 51: /* storage_class: KW_EXPLICIT storage_class */ -#line 996 "dtool/src/cppparser/cppBison.yxx" +#line 998 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } -#line 4674 "built/tmp/cppBison.yxx.c" +#line 4728 "built/tmp/cppBison.yxx.c" break; - case 52: /* storage_class: KW_REGISTER storage_class */ -#line 1000 "dtool/src/cppparser/cppBison.yxx" + case 52: /* storage_class: KW_EXPLICIT_LPAREN const_expr ')' storage_class */ +#line 1002 "dtool/src/cppparser/cppBison.yxx" +{ + CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); + if (result._type == CPPExpression::RT_error) { + yywarning("explicit() requires a constant expression", (yylsp[-2])); + } else if (result.as_boolean()) { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; + } +} +#line 4741 "built/tmp/cppBison.yxx.c" + break; + + case 53: /* storage_class: KW_REGISTER storage_class */ +#line 1011 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } -#line 4682 "built/tmp/cppBison.yxx.c" +#line 4749 "built/tmp/cppBison.yxx.c" break; - case 53: /* storage_class: KW_VOLATILE storage_class */ -#line 1004 "dtool/src/cppparser/cppBison.yxx" + case 54: /* storage_class: KW_VOLATILE storage_class */ +#line 1015 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } -#line 4690 "built/tmp/cppBison.yxx.c" +#line 4757 "built/tmp/cppBison.yxx.c" break; - case 54: /* storage_class: KW_MUTABLE storage_class */ -#line 1008 "dtool/src/cppparser/cppBison.yxx" + case 55: /* storage_class: KW_MUTABLE storage_class */ +#line 1019 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } -#line 4698 "built/tmp/cppBison.yxx.c" +#line 4765 "built/tmp/cppBison.yxx.c" break; - case 55: /* storage_class: KW_CONSTEVAL storage_class */ -#line 1012 "dtool/src/cppparser/cppBison.yxx" + case 56: /* storage_class: KW_CONSTEVAL storage_class */ +#line 1023 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_consteval; } -#line 4706 "built/tmp/cppBison.yxx.c" +#line 4773 "built/tmp/cppBison.yxx.c" break; - case 56: /* storage_class: KW_CONSTEXPR storage_class */ -#line 1016 "dtool/src/cppparser/cppBison.yxx" + case 57: /* storage_class: KW_CONSTEXPR storage_class */ +#line 1027 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; } -#line 4714 "built/tmp/cppBison.yxx.c" +#line 4781 "built/tmp/cppBison.yxx.c" break; - case 57: /* storage_class: KW_CONSTINIT storage_class */ -#line 1020 "dtool/src/cppparser/cppBison.yxx" + case 58: /* storage_class: KW_CONSTINIT storage_class */ +#line 1031 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constinit; } -#line 4722 "built/tmp/cppBison.yxx.c" +#line 4789 "built/tmp/cppBison.yxx.c" break; - case 58: /* storage_class: KW_BLOCKING storage_class */ -#line 1024 "dtool/src/cppparser/cppBison.yxx" + case 59: /* storage_class: KW_BLOCKING storage_class */ +#line 1035 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; } -#line 4730 "built/tmp/cppBison.yxx.c" +#line 4797 "built/tmp/cppBison.yxx.c" break; - case 59: /* storage_class: KW_EXTENSION storage_class */ -#line 1028 "dtool/src/cppparser/cppBison.yxx" + case 60: /* storage_class: KW_EXTENSION storage_class */ +#line 1039 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; } -#line 4738 "built/tmp/cppBison.yxx.c" +#line 4805 "built/tmp/cppBison.yxx.c" break; - case 60: /* storage_class: KW_THREAD_LOCAL storage_class */ -#line 1032 "dtool/src/cppparser/cppBison.yxx" + case 61: /* storage_class: KW_THREAD_LOCAL storage_class */ +#line 1043 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; } -#line 4746 "built/tmp/cppBison.yxx.c" +#line 4813 "built/tmp/cppBison.yxx.c" break; - case 61: /* storage_class: ATTR_LEFT attribute_specifiers ATTR_RIGHT storage_class */ -#line 1036 "dtool/src/cppparser/cppBison.yxx" + case 62: /* storage_class: ATTR_LEFT attribute_specifiers ATTR_RIGHT storage_class */ +#line 1047 "dtool/src/cppparser/cppBison.yxx" { // Ignore attribute specifiers for now. (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4755 "built/tmp/cppBison.yxx.c" +#line 4822 "built/tmp/cppBison.yxx.c" break; - case 62: /* storage_class: KW_ALIGNAS '(' const_expr ')' storage_class */ -#line 1041 "dtool/src/cppparser/cppBison.yxx" + case 63: /* storage_class: KW_ALIGNAS '(' const_expr ')' storage_class */ +#line 1052 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4763 "built/tmp/cppBison.yxx.c" +#line 4830 "built/tmp/cppBison.yxx.c" break; - case 63: /* storage_class: KW_ALIGNAS '(' type_decl ')' storage_class */ -#line 1045 "dtool/src/cppparser/cppBison.yxx" + case 64: /* storage_class: KW_ALIGNAS '(' type_decl ')' storage_class */ +#line 1056 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4771 "built/tmp/cppBison.yxx.c" +#line 4838 "built/tmp/cppBison.yxx.c" break; - case 69: /* $@3: %empty */ -#line 1063 "dtool/src/cppparser/cppBison.yxx" + case 70: /* $@3: %empty */ +#line 1074 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // type_like_declaration. @@ -4782,19 +4849,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4786 "built/tmp/cppBison.yxx.c" +#line 4853 "built/tmp/cppBison.yxx.c" break; - case 70: /* type_like_declaration: storage_class var_type_decl $@3 multiple_instance_identifiers */ -#line 1074 "dtool/src/cppparser/cppBison.yxx" + case 71: /* type_like_declaration: storage_class var_type_decl $@3 multiple_instance_identifiers */ +#line 1085 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } -#line 4794 "built/tmp/cppBison.yxx.c" +#line 4861 "built/tmp/cppBison.yxx.c" break; - case 71: /* type_like_declaration: storage_class type_decl ';' */ -#line 1079 "dtool/src/cppparser/cppBison.yxx" + case 72: /* type_like_declaration: storage_class type_decl ';' */ +#line 1090 "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 @@ -4803,11 +4870,11 @@ yyreduce: current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } -#line 4807 "built/tmp/cppBison.yxx.c" +#line 4874 "built/tmp/cppBison.yxx.c" break; - case 72: /* $@4: %empty */ -#line 1088 "dtool/src/cppparser/cppBison.yxx" + case 73: /* $@4: %empty */ +#line 1099 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[0].u.instance) != nullptr) { // Push the scope so that the initializers can make use of things defined @@ -4816,11 +4883,11 @@ yyreduce: (yyvsp[0].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-1].u.integer)); } } -#line 4820 "built/tmp/cppBison.yxx.c" +#line 4887 "built/tmp/cppBison.yxx.c" break; - case 73: /* type_like_declaration: storage_class constructor_prototype $@4 maybe_initialize_or_constructor_body */ -#line 1097 "dtool/src/cppparser/cppBison.yxx" + case 74: /* type_like_declaration: storage_class constructor_prototype $@4 maybe_initialize_or_constructor_body */ +#line 1108 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-2].u.instance) != nullptr) { pop_scope(); @@ -4828,11 +4895,11 @@ yyreduce: (yyvsp[-2].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 4832 "built/tmp/cppBison.yxx.c" +#line 4899 "built/tmp/cppBison.yxx.c" break; - case 74: /* type_like_declaration: storage_class function_prototype maybe_initialize_or_function_body */ -#line 1105 "dtool/src/cppparser/cppBison.yxx" + case 75: /* type_like_declaration: storage_class function_prototype maybe_initialize_or_function_body */ +#line 1116 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-1].u.instance) != nullptr) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); @@ -4840,11 +4907,11 @@ yyreduce: (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 4844 "built/tmp/cppBison.yxx.c" +#line 4911 "built/tmp/cppBison.yxx.c" break; - case 76: /* multiple_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize_or_function_body */ -#line 1121 "dtool/src/cppparser/cppBison.yxx" + case 77: /* multiple_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize_or_function_body */ +#line 1132 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); @@ -4855,11 +4922,11 @@ yyreduce: inst->set_initializer((yyvsp[0].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } -#line 4859 "built/tmp/cppBison.yxx.c" +#line 4926 "built/tmp/cppBison.yxx.c" break; - case 77: /* multiple_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize ',' multiple_instance_identifiers */ -#line 1132 "dtool/src/cppparser/cppBison.yxx" + case 78: /* multiple_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize ',' multiple_instance_identifiers */ +#line 1143 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); @@ -4870,11 +4937,11 @@ yyreduce: inst->set_initializer((yyvsp[-2].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } -#line 4874 "built/tmp/cppBison.yxx.c" +#line 4941 "built/tmp/cppBison.yxx.c" break; - case 78: /* $@5: %empty */ -#line 1147 "dtool/src/cppparser/cppBison.yxx" + case 79: /* $@5: %empty */ +#line 1158 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4885,19 +4952,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4889 "built/tmp/cppBison.yxx.c" +#line 4956 "built/tmp/cppBison.yxx.c" break; - case 79: /* typedef_declaration: storage_class var_type_decl $@5 typedef_instance_identifiers */ -#line 1158 "dtool/src/cppparser/cppBison.yxx" + case 80: /* typedef_declaration: storage_class var_type_decl $@5 typedef_instance_identifiers */ +#line 1169 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } -#line 4897 "built/tmp/cppBison.yxx.c" +#line 4964 "built/tmp/cppBison.yxx.c" break; - case 80: /* typedef_declaration: storage_class function_prototype maybe_initialize_or_function_body */ -#line 1162 "dtool/src/cppparser/cppBison.yxx" + case 81: /* typedef_declaration: storage_class function_prototype maybe_initialize_or_function_body */ +#line 1173 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-1].u.instance) != nullptr) { CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); @@ -4909,11 +4976,11 @@ yyreduce: } } } -#line 4913 "built/tmp/cppBison.yxx.c" +#line 4980 "built/tmp/cppBison.yxx.c" break; - case 81: /* typedef_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize_or_function_body */ -#line 1177 "dtool/src/cppparser/cppBison.yxx" + case 82: /* typedef_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize_or_function_body */ +#line 1188 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); @@ -4922,11 +4989,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 4926 "built/tmp/cppBison.yxx.c" +#line 4993 "built/tmp/cppBison.yxx.c" break; - case 82: /* typedef_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize ',' typedef_instance_identifiers */ -#line 1186 "dtool/src/cppparser/cppBison.yxx" + case 83: /* typedef_instance_identifiers: instance_identifier_and_maybe_trailing_return_type maybe_initialize ',' typedef_instance_identifiers */ +#line 1197 "dtool/src/cppparser/cppBison.yxx" { if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); @@ -4935,11 +5002,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 4939 "built/tmp/cppBison.yxx.c" +#line 5006 "built/tmp/cppBison.yxx.c" break; - case 83: /* $@6: %empty */ -#line 1200 "dtool/src/cppparser/cppBison.yxx" + case 84: /* $@6: %empty */ +#line 1211 "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), @@ -4952,11 +5019,11 @@ yyreduce: push_scope(scope); } -#line 4956 "built/tmp/cppBison.yxx.c" +#line 5023 "built/tmp/cppBison.yxx.c" break; - case 84: /* constructor_prototype: IDENTIFIER '(' $@6 function_parameter_list ')' function_post */ -#line 1213 "dtool/src/cppparser/cppBison.yxx" + case 85: /* constructor_prototype: IDENTIFIER '(' $@6 function_parameter_list ')' function_post */ +#line 1224 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[-5].u.identifier)->get_scope(current_scope, global_scope); CPPType *type; @@ -4980,11 +5047,11 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 4984 "built/tmp/cppBison.yxx.c" +#line 5051 "built/tmp/cppBison.yxx.c" break; - case 85: /* $@7: %empty */ -#line 1239 "dtool/src/cppparser/cppBison.yxx" + case 86: /* $@7: %empty */ +#line 1250 "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), @@ -4997,11 +5064,11 @@ yyreduce: push_scope(scope); } -#line 5001 "built/tmp/cppBison.yxx.c" +#line 5068 "built/tmp/cppBison.yxx.c" break; - case 86: /* constructor_prototype: TYPENAME_IDENTIFIER '(' IDENTIFIER ')' '(' $@7 function_parameter_list ')' function_post */ -#line 1252 "dtool/src/cppparser/cppBison.yxx" + case 87: /* constructor_prototype: TYPENAME_IDENTIFIER '(' IDENTIFIER ')' '(' $@7 function_parameter_list ')' function_post */ +#line 1263 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[-8].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -5015,11 +5082,11 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-8]).file); } -#line 5019 "built/tmp/cppBison.yxx.c" +#line 5086 "built/tmp/cppBison.yxx.c" break; - case 87: /* $@8: %empty */ -#line 1266 "dtool/src/cppparser/cppBison.yxx" + case 88: /* $@8: %empty */ +#line 1277 "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), @@ -5032,11 +5099,11 @@ yyreduce: push_scope(scope); } -#line 5036 "built/tmp/cppBison.yxx.c" +#line 5103 "built/tmp/cppBison.yxx.c" break; - case 88: /* constructor_prototype: TYPENAME_IDENTIFIER '(' $@8 function_parameter_list ')' function_post */ -#line 1279 "dtool/src/cppparser/cppBison.yxx" + case 89: /* constructor_prototype: TYPENAME_IDENTIFIER '(' $@8 function_parameter_list ')' function_post */ +#line 1290 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -5054,19 +5121,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 5058 "built/tmp/cppBison.yxx.c" +#line 5125 "built/tmp/cppBison.yxx.c" break; - case 89: /* $@9: %empty */ -#line 1302 "dtool/src/cppparser/cppBison.yxx" + case 90: /* $@9: %empty */ +#line 1313 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 5066 "built/tmp/cppBison.yxx.c" +#line 5133 "built/tmp/cppBison.yxx.c" break; - case 90: /* function_prototype: '~' name '(' $@9 function_parameter_list ')' function_post */ -#line 1306 "dtool/src/cppparser/cppBison.yxx" + case 91: /* function_prototype: '~' name '(' $@9 function_parameter_list ')' function_post */ +#line 1317 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); if ((yyvsp[-5].u.identifier)->is_scoped()) { @@ -5085,19 +5152,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } -#line 5089 "built/tmp/cppBison.yxx.c" +#line 5156 "built/tmp/cppBison.yxx.c" break; - case 91: /* $@10: %empty */ -#line 1332 "dtool/src/cppparser/cppBison.yxx" + case 92: /* $@10: %empty */ +#line 1343 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5097 "built/tmp/cppBison.yxx.c" +#line 5164 "built/tmp/cppBison.yxx.c" break; - 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" + case 93: /* function_prototype: TYPENAME_IDENTIFIER '(' '*' instance_identifier ')' '(' $@10 function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 1347 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -5111,19 +5178,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 5115 "built/tmp/cppBison.yxx.c" +#line 5182 "built/tmp/cppBison.yxx.c" break; - case 93: /* $@11: %empty */ -#line 1350 "dtool/src/cppparser/cppBison.yxx" + case 94: /* $@11: %empty */ +#line 1361 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5123 "built/tmp/cppBison.yxx.c" +#line 5190 "built/tmp/cppBison.yxx.c" break; - 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" + case 95: /* function_prototype: TYPENAME_IDENTIFIER '(' SCOPING '*' instance_identifier ')' '(' $@11 function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 1365 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -5137,21 +5204,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 5141 "built/tmp/cppBison.yxx.c" +#line 5208 "built/tmp/cppBison.yxx.c" break; - case 95: /* $@12: %empty */ -#line 1370 "dtool/src/cppparser/cppBison.yxx" + case 96: /* $@12: %empty */ +#line 1381 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-3].u.identifier) != nullptr) { push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 5151 "built/tmp/cppBison.yxx.c" +#line 5218 "built/tmp/cppBison.yxx.c" break; - 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" + case 97: /* function_prototype: KW_OPERATOR type not_paren_formal_parameter_identifier '(' $@12 function_parameter_list ')' function_post */ +#line 1387 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-7].u.identifier) != nullptr) { pop_scope(); @@ -5176,21 +5243,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 5180 "built/tmp/cppBison.yxx.c" +#line 5247 "built/tmp/cppBison.yxx.c" break; - case 97: /* $@13: %empty */ -#line 1401 "dtool/src/cppparser/cppBison.yxx" + case 98: /* $@13: %empty */ +#line 1412 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-4].u.identifier) != nullptr) { push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 5190 "built/tmp/cppBison.yxx.c" +#line 5257 "built/tmp/cppBison.yxx.c" break; - 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" + case 99: /* function_prototype: KW_OPERATOR KW_CONST type not_paren_formal_parameter_identifier '(' $@13 function_parameter_list ')' function_post */ +#line 1418 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[-8].u.identifier) != nullptr) { pop_scope(); @@ -5206,11 +5273,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 5210 "built/tmp/cppBison.yxx.c" +#line 5277 "built/tmp/cppBison.yxx.c" break; - case 99: /* function_prototype: IDENTIFIER */ -#line 1427 "dtool/src/cppparser/cppBison.yxx" + case 100: /* function_prototype: IDENTIFIER */ +#line 1438 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *decl = (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -5220,582 +5287,595 @@ yyreduce: (yyval.u.instance) = nullptr; } } -#line 5224 "built/tmp/cppBison.yxx.c" +#line 5291 "built/tmp/cppBison.yxx.c" break; - case 100: /* function_post: empty */ -#line 1440 "dtool/src/cppparser/cppBison.yxx" + case 101: /* function_post: empty */ +#line 1451 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } -#line 5232 "built/tmp/cppBison.yxx.c" +#line 5299 "built/tmp/cppBison.yxx.c" break; - case 101: /* function_post: function_post KW_CONST */ -#line 1444 "dtool/src/cppparser/cppBison.yxx" + case 102: /* function_post: function_post KW_CONST */ +#line 1455 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_const_method; } -#line 5240 "built/tmp/cppBison.yxx.c" +#line 5307 "built/tmp/cppBison.yxx.c" break; - case 102: /* function_post: function_post KW_VOLATILE */ -#line 1448 "dtool/src/cppparser/cppBison.yxx" + case 103: /* function_post: function_post KW_VOLATILE */ +#line 1459 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_volatile_method; } -#line 5248 "built/tmp/cppBison.yxx.c" +#line 5315 "built/tmp/cppBison.yxx.c" break; - case 103: /* function_post: function_post KW_NOEXCEPT */ -#line 1452 "dtool/src/cppparser/cppBison.yxx" + case 104: /* function_post: function_post KW_NOEXCEPT */ +#line 1463 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_noexcept; } -#line 5256 "built/tmp/cppBison.yxx.c" +#line 5323 "built/tmp/cppBison.yxx.c" break; - case 104: /* function_post: function_post KW_FINAL */ -#line 1465 "dtool/src/cppparser/cppBison.yxx" + case 105: /* function_post: function_post KW_NOEXCEPT_LPAREN const_expr ')' */ +#line 1467 "dtool/src/cppparser/cppBison.yxx" +{ + CPPExpression::Result result = (yyvsp[-1].u.expr)->evaluate(); + if (result._type == CPPExpression::RT_error) { + yywarning("noexcept() requires a constant expression", (yylsp[-1])); + } else if (result.as_boolean()) { + (yyval.u.integer) = (yyvsp[-3].u.integer) | (int)CPPFunctionType::F_noexcept; + } +} +#line 5336 "built/tmp/cppBison.yxx.c" + break; + + case 106: /* function_post: function_post KW_FINAL */ +#line 1476 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_final; } -#line 5264 "built/tmp/cppBison.yxx.c" +#line 5344 "built/tmp/cppBison.yxx.c" break; - case 105: /* function_post: function_post KW_OVERRIDE */ -#line 1469 "dtool/src/cppparser/cppBison.yxx" + case 107: /* function_post: function_post KW_OVERRIDE */ +#line 1480 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_override; } -#line 5272 "built/tmp/cppBison.yxx.c" +#line 5352 "built/tmp/cppBison.yxx.c" break; - case 106: /* function_post: function_post '&' */ -#line 1473 "dtool/src/cppparser/cppBison.yxx" + case 108: /* function_post: function_post '&' */ +#line 1484 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_lvalue_method; } -#line 5280 "built/tmp/cppBison.yxx.c" +#line 5360 "built/tmp/cppBison.yxx.c" break; - case 107: /* function_post: function_post ANDAND */ -#line 1477 "dtool/src/cppparser/cppBison.yxx" + case 109: /* function_post: function_post ANDAND */ +#line 1488 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_rvalue_method; } -#line 5288 "built/tmp/cppBison.yxx.c" +#line 5368 "built/tmp/cppBison.yxx.c" break; - case 108: /* function_post: function_post KW_MUTABLE */ -#line 1481 "dtool/src/cppparser/cppBison.yxx" + case 110: /* function_post: function_post KW_MUTABLE */ +#line 1492 "dtool/src/cppparser/cppBison.yxx" { // Used for lambdas, currently ignored. (yyval.u.integer) = (yyvsp[-1].u.integer); } -#line 5297 "built/tmp/cppBison.yxx.c" +#line 5377 "built/tmp/cppBison.yxx.c" break; - case 109: /* function_post: function_post KW_CONSTEXPR */ -#line 1486 "dtool/src/cppparser/cppBison.yxx" + case 111: /* function_post: function_post KW_CONSTEXPR */ +#line 1497 "dtool/src/cppparser/cppBison.yxx" { // Used for lambdas in C++17, currently ignored. (yyval.u.integer) = (yyvsp[-1].u.integer); } -#line 5306 "built/tmp/cppBison.yxx.c" - break; - - case 110: /* function_post: function_post KW_THROW '(' ')' */ -#line 1491 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.integer) = (yyvsp[-3].u.integer); -} -#line 5314 "built/tmp/cppBison.yxx.c" - break; - - case 111: /* function_post: function_post KW_THROW '(' name ')' */ -#line 1495 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.integer) = (yyvsp[-4].u.integer); -} -#line 5322 "built/tmp/cppBison.yxx.c" - break; - - 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 5330 "built/tmp/cppBison.yxx.c" - break; - - 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 5338 "built/tmp/cppBison.yxx.c" - break; - - case 114: /* function_operator: '!' */ -#line 1510 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.str) = "!"; -} -#line 5346 "built/tmp/cppBison.yxx.c" - break; - - case 115: /* function_operator: '~' */ -#line 1514 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.str) = "~"; -} -#line 5354 "built/tmp/cppBison.yxx.c" - break; - - case 116: /* function_operator: '*' */ -#line 1518 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.str) = "*"; -} -#line 5362 "built/tmp/cppBison.yxx.c" - break; - - case 117: /* function_operator: '/' */ -#line 1522 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.str) = "/"; -} -#line 5370 "built/tmp/cppBison.yxx.c" - break; - - case 118: /* function_operator: '%' */ -#line 1526 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.str) = "%"; -} -#line 5378 "built/tmp/cppBison.yxx.c" - break; - - case 119: /* function_operator: '+' */ -#line 1530 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.str) = "+"; -} #line 5386 "built/tmp/cppBison.yxx.c" break; - case 120: /* function_operator: '-' */ -#line 1534 "dtool/src/cppparser/cppBison.yxx" + case 112: /* function_post: function_post KW_THROW '(' ')' */ +#line 1502 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "-"; + (yyval.u.integer) = (yyvsp[-3].u.integer); } #line 5394 "built/tmp/cppBison.yxx.c" break; - case 121: /* function_operator: '|' */ -#line 1538 "dtool/src/cppparser/cppBison.yxx" + case 113: /* function_post: function_post KW_THROW '(' name ')' */ +#line 1506 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "|"; + (yyval.u.integer) = (yyvsp[-4].u.integer); } #line 5402 "built/tmp/cppBison.yxx.c" break; - case 122: /* function_operator: '&' */ -#line 1542 "dtool/src/cppparser/cppBison.yxx" + case 114: /* function_post: function_post KW_THROW '(' name ELLIPSIS ')' */ +#line 1510 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "&"; + (yyval.u.integer) = (yyvsp[-5].u.integer); } #line 5410 "built/tmp/cppBison.yxx.c" break; - case 123: /* function_operator: '^' */ -#line 1546 "dtool/src/cppparser/cppBison.yxx" + case 115: /* function_post: function_post ATTR_LEFT attribute_specifiers ATTR_RIGHT */ +#line 1514 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "^"; + (yyval.u.integer) = (yyvsp[-3].u.integer); } #line 5418 "built/tmp/cppBison.yxx.c" break; - case 124: /* function_operator: OROR */ -#line 1550 "dtool/src/cppparser/cppBison.yxx" + case 116: /* function_operator: '!' */ +#line 1521 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "||"; + (yyval.str) = "!"; } #line 5426 "built/tmp/cppBison.yxx.c" break; - case 125: /* function_operator: ANDAND */ -#line 1554 "dtool/src/cppparser/cppBison.yxx" + case 117: /* function_operator: '~' */ +#line 1525 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "&&"; + (yyval.str) = "~"; } #line 5434 "built/tmp/cppBison.yxx.c" break; - case 126: /* function_operator: EQCOMPARE */ -#line 1558 "dtool/src/cppparser/cppBison.yxx" + case 118: /* function_operator: '*' */ +#line 1529 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "=="; + (yyval.str) = "*"; } #line 5442 "built/tmp/cppBison.yxx.c" break; - case 127: /* function_operator: NECOMPARE */ -#line 1562 "dtool/src/cppparser/cppBison.yxx" + case 119: /* function_operator: '/' */ +#line 1533 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "!="; + (yyval.str) = "/"; } #line 5450 "built/tmp/cppBison.yxx.c" break; - case 128: /* function_operator: LECOMPARE */ -#line 1566 "dtool/src/cppparser/cppBison.yxx" + case 120: /* function_operator: '%' */ +#line 1537 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "<="; + (yyval.str) = "%"; } #line 5458 "built/tmp/cppBison.yxx.c" break; - case 129: /* function_operator: GECOMPARE */ -#line 1570 "dtool/src/cppparser/cppBison.yxx" + case 121: /* function_operator: '+' */ +#line 1541 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = ">="; + (yyval.str) = "+"; } #line 5466 "built/tmp/cppBison.yxx.c" break; - case 130: /* function_operator: '<' */ -#line 1574 "dtool/src/cppparser/cppBison.yxx" + case 122: /* function_operator: '-' */ +#line 1545 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "<"; + (yyval.str) = "-"; } #line 5474 "built/tmp/cppBison.yxx.c" break; - case 131: /* function_operator: '>' */ -#line 1578 "dtool/src/cppparser/cppBison.yxx" + case 123: /* function_operator: '|' */ +#line 1549 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = ">"; + (yyval.str) = "|"; } #line 5482 "built/tmp/cppBison.yxx.c" break; - case 132: /* function_operator: SPACESHIP */ -#line 1582 "dtool/src/cppparser/cppBison.yxx" + case 124: /* function_operator: '&' */ +#line 1553 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "<=>"; + (yyval.str) = "&"; } #line 5490 "built/tmp/cppBison.yxx.c" break; - case 133: /* function_operator: LSHIFT */ -#line 1586 "dtool/src/cppparser/cppBison.yxx" + case 125: /* function_operator: '^' */ +#line 1557 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "<<"; + (yyval.str) = "^"; } #line 5498 "built/tmp/cppBison.yxx.c" break; - case 134: /* function_operator: RSHIFT */ -#line 1590 "dtool/src/cppparser/cppBison.yxx" + case 126: /* function_operator: OROR */ +#line 1561 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = ">>"; + (yyval.str) = "||"; } #line 5506 "built/tmp/cppBison.yxx.c" break; - case 135: /* function_operator: '=' */ -#line 1594 "dtool/src/cppparser/cppBison.yxx" + case 127: /* function_operator: ANDAND */ +#line 1565 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "="; + (yyval.str) = "&&"; } #line 5514 "built/tmp/cppBison.yxx.c" break; - case 136: /* function_operator: ',' */ -#line 1598 "dtool/src/cppparser/cppBison.yxx" + case 128: /* function_operator: EQCOMPARE */ +#line 1569 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = ","; + (yyval.str) = "=="; } #line 5522 "built/tmp/cppBison.yxx.c" break; - case 137: /* function_operator: PLUSPLUS */ -#line 1602 "dtool/src/cppparser/cppBison.yxx" + case 129: /* function_operator: NECOMPARE */ +#line 1573 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "++"; + (yyval.str) = "!="; } #line 5530 "built/tmp/cppBison.yxx.c" break; - case 138: /* function_operator: MINUSMINUS */ -#line 1606 "dtool/src/cppparser/cppBison.yxx" + case 130: /* function_operator: LECOMPARE */ +#line 1577 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "--"; + (yyval.str) = "<="; } #line 5538 "built/tmp/cppBison.yxx.c" break; - case 139: /* function_operator: TIMESEQUAL */ -#line 1610 "dtool/src/cppparser/cppBison.yxx" + case 131: /* function_operator: GECOMPARE */ +#line 1581 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "*="; + (yyval.str) = ">="; } #line 5546 "built/tmp/cppBison.yxx.c" break; - case 140: /* function_operator: DIVIDEEQUAL */ -#line 1614 "dtool/src/cppparser/cppBison.yxx" + case 132: /* function_operator: '<' */ +#line 1585 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "/="; + (yyval.str) = "<"; } #line 5554 "built/tmp/cppBison.yxx.c" break; - case 141: /* function_operator: MODEQUAL */ -#line 1618 "dtool/src/cppparser/cppBison.yxx" + case 133: /* function_operator: '>' */ +#line 1589 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "%="; + (yyval.str) = ">"; } #line 5562 "built/tmp/cppBison.yxx.c" break; - case 142: /* function_operator: PLUSEQUAL */ -#line 1622 "dtool/src/cppparser/cppBison.yxx" + case 134: /* function_operator: SPACESHIP */ +#line 1593 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "+="; + (yyval.str) = "<=>"; } #line 5570 "built/tmp/cppBison.yxx.c" break; - case 143: /* function_operator: MINUSEQUAL */ -#line 1626 "dtool/src/cppparser/cppBison.yxx" + case 135: /* function_operator: LSHIFT */ +#line 1597 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "-="; + (yyval.str) = "<<"; } #line 5578 "built/tmp/cppBison.yxx.c" break; - case 144: /* function_operator: OREQUAL */ -#line 1630 "dtool/src/cppparser/cppBison.yxx" + case 136: /* function_operator: RSHIFT */ +#line 1601 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "|="; + (yyval.str) = ">>"; } #line 5586 "built/tmp/cppBison.yxx.c" break; - case 145: /* function_operator: ANDEQUAL */ -#line 1634 "dtool/src/cppparser/cppBison.yxx" + case 137: /* function_operator: '=' */ +#line 1605 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "&="; + (yyval.str) = "="; } #line 5594 "built/tmp/cppBison.yxx.c" break; - case 146: /* function_operator: XOREQUAL */ -#line 1638 "dtool/src/cppparser/cppBison.yxx" + case 138: /* function_operator: ',' */ +#line 1609 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "^="; + (yyval.str) = ","; } #line 5602 "built/tmp/cppBison.yxx.c" break; - case 147: /* function_operator: LSHIFTEQUAL */ -#line 1642 "dtool/src/cppparser/cppBison.yxx" + case 139: /* function_operator: PLUSPLUS */ +#line 1613 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "<<="; + (yyval.str) = "++"; } #line 5610 "built/tmp/cppBison.yxx.c" break; - case 148: /* function_operator: RSHIFTEQUAL */ -#line 1646 "dtool/src/cppparser/cppBison.yxx" + case 140: /* function_operator: MINUSMINUS */ +#line 1617 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = ">>="; + (yyval.str) = "--"; } #line 5618 "built/tmp/cppBison.yxx.c" break; - case 149: /* function_operator: POINTSAT */ -#line 1650 "dtool/src/cppparser/cppBison.yxx" + case 141: /* function_operator: TIMESEQUAL */ +#line 1621 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "->"; + (yyval.str) = "*="; } #line 5626 "built/tmp/cppBison.yxx.c" break; - case 150: /* function_operator: '[' ']' */ -#line 1654 "dtool/src/cppparser/cppBison.yxx" + case 142: /* function_operator: DIVIDEEQUAL */ +#line 1625 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "[]"; + (yyval.str) = "/="; } #line 5634 "built/tmp/cppBison.yxx.c" break; - case 151: /* function_operator: '(' ')' */ -#line 1658 "dtool/src/cppparser/cppBison.yxx" + case 143: /* function_operator: MODEQUAL */ +#line 1629 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "()"; + (yyval.str) = "%="; } #line 5642 "built/tmp/cppBison.yxx.c" break; - case 152: /* function_operator: KW_NEW */ -#line 1662 "dtool/src/cppparser/cppBison.yxx" + case 144: /* function_operator: PLUSEQUAL */ +#line 1633 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "new"; + (yyval.str) = "+="; } #line 5650 "built/tmp/cppBison.yxx.c" break; - case 153: /* function_operator: KW_DELETE */ -#line 1666 "dtool/src/cppparser/cppBison.yxx" + case 145: /* function_operator: MINUSEQUAL */ +#line 1637 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = "delete"; + (yyval.str) = "-="; } #line 5658 "built/tmp/cppBison.yxx.c" break; - case 158: /* $@14: %empty */ -#line 1680 "dtool/src/cppparser/cppBison.yxx" + case 146: /* function_operator: OREQUAL */ +#line 1641 "dtool/src/cppparser/cppBison.yxx" { - push_scope(new CPPTemplateScope(current_scope)); + (yyval.str) = "|="; } #line 5666 "built/tmp/cppBison.yxx.c" break; - case 159: /* template_declaration: KW_TEMPLATE $@14 '<' template_formal_parameters '>' more_template_declaration */ -#line 1684 "dtool/src/cppparser/cppBison.yxx" + case 147: /* function_operator: ANDEQUAL */ +#line 1645 "dtool/src/cppparser/cppBison.yxx" { - pop_scope(); + (yyval.str) = "&="; } #line 5674 "built/tmp/cppBison.yxx.c" break; - case 164: /* template_nonempty_formal_parameters: template_formal_parameter */ -#line 1698 "dtool/src/cppparser/cppBison.yxx" + case 148: /* function_operator: XOREQUAL */ +#line 1649 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "^="; +} +#line 5682 "built/tmp/cppBison.yxx.c" + break; + + case 149: /* function_operator: LSHIFTEQUAL */ +#line 1653 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "<<="; +} +#line 5690 "built/tmp/cppBison.yxx.c" + break; + + case 150: /* function_operator: RSHIFTEQUAL */ +#line 1657 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = ">>="; +} +#line 5698 "built/tmp/cppBison.yxx.c" + break; + + case 151: /* function_operator: POINTSAT */ +#line 1661 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "->"; +} +#line 5706 "built/tmp/cppBison.yxx.c" + break; + + case 152: /* function_operator: '[' ']' */ +#line 1665 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "[]"; +} +#line 5714 "built/tmp/cppBison.yxx.c" + break; + + case 153: /* function_operator: '(' ')' */ +#line 1669 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "()"; +} +#line 5722 "built/tmp/cppBison.yxx.c" + break; + + case 154: /* function_operator: KW_NEW */ +#line 1673 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "new"; +} +#line 5730 "built/tmp/cppBison.yxx.c" + break; + + case 155: /* function_operator: KW_DELETE */ +#line 1677 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "delete"; +} +#line 5738 "built/tmp/cppBison.yxx.c" + break; + + case 160: /* $@14: %empty */ +#line 1691 "dtool/src/cppparser/cppBison.yxx" +{ + push_scope(new CPPTemplateScope(current_scope)); +} +#line 5746 "built/tmp/cppBison.yxx.c" + break; + + case 161: /* template_declaration: KW_TEMPLATE $@14 '<' template_formal_parameters '>' more_template_declaration */ +#line 1695 "dtool/src/cppparser/cppBison.yxx" +{ + pop_scope(); +} +#line 5754 "built/tmp/cppBison.yxx.c" + break; + + case 166: /* template_nonempty_formal_parameters: template_formal_parameter */ +#line 1709 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != nullptr); ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 5684 "built/tmp/cppBison.yxx.c" +#line 5764 "built/tmp/cppBison.yxx.c" break; - case 165: /* template_nonempty_formal_parameters: template_nonempty_formal_parameters ',' template_formal_parameter */ -#line 1704 "dtool/src/cppparser/cppBison.yxx" + case 167: /* template_nonempty_formal_parameters: template_nonempty_formal_parameters ',' template_formal_parameter */ +#line 1715 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != nullptr); ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 5694 "built/tmp/cppBison.yxx.c" +#line 5774 "built/tmp/cppBison.yxx.c" break; - case 168: /* template_formal_parameter: typename_keyword */ -#line 1718 "dtool/src/cppparser/cppBison.yxx" + case 170: /* template_formal_parameter: typename_keyword */ +#line 1729 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter(nullptr)); } -#line 5702 "built/tmp/cppBison.yxx.c" +#line 5782 "built/tmp/cppBison.yxx.c" break; - case 169: /* template_formal_parameter: typename_keyword name */ -#line 1722 "dtool/src/cppparser/cppBison.yxx" + case 171: /* template_formal_parameter: typename_keyword name */ +#line 1733 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); } -#line 5710 "built/tmp/cppBison.yxx.c" +#line 5790 "built/tmp/cppBison.yxx.c" break; - case 170: /* template_formal_parameter: typename_keyword name '=' full_type */ -#line 1726 "dtool/src/cppparser/cppBison.yxx" + case 172: /* template_formal_parameter: typename_keyword name '=' full_type */ +#line 1737 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); } -#line 5718 "built/tmp/cppBison.yxx.c" +#line 5798 "built/tmp/cppBison.yxx.c" break; - case 171: /* template_formal_parameter: typename_keyword ELLIPSIS */ -#line 1730 "dtool/src/cppparser/cppBison.yxx" + case 173: /* template_formal_parameter: typename_keyword ELLIPSIS */ +#line 1741 "dtool/src/cppparser/cppBison.yxx" { CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter(nullptr); ctp->_packed = true; (yyval.u.decl) = CPPType::new_type(ctp); } -#line 5728 "built/tmp/cppBison.yxx.c" +#line 5808 "built/tmp/cppBison.yxx.c" break; - case 172: /* template_formal_parameter: typename_keyword ELLIPSIS name */ -#line 1736 "dtool/src/cppparser/cppBison.yxx" + case 174: /* template_formal_parameter: typename_keyword ELLIPSIS name */ +#line 1747 "dtool/src/cppparser/cppBison.yxx" { CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[0].u.identifier)); ctp->_packed = true; (yyval.u.decl) = CPPType::new_type(ctp); } -#line 5738 "built/tmp/cppBison.yxx.c" +#line 5818 "built/tmp/cppBison.yxx.c" break; - case 173: /* template_formal_parameter: template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize */ -#line 1742 "dtool/src/cppparser/cppBison.yxx" + case 175: /* template_formal_parameter: template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize */ +#line 1753 "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 5748 "built/tmp/cppBison.yxx.c" +#line 5828 "built/tmp/cppBison.yxx.c" break; - 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" + case 176: /* template_formal_parameter: KW_CONST template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize */ +#line 1759 "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 5759 "built/tmp/cppBison.yxx.c" +#line 5839 "built/tmp/cppBison.yxx.c" break; - case 175: /* template_formal_parameter: template_formal_parameter_type parameter_pack_identifier */ -#line 1755 "dtool/src/cppparser/cppBison.yxx" + case 177: /* template_formal_parameter: template_formal_parameter_type parameter_pack_identifier */ +#line 1766 "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 5768 "built/tmp/cppBison.yxx.c" +#line 5848 "built/tmp/cppBison.yxx.c" break; - case 176: /* template_formal_parameter: KW_CONST template_formal_parameter_type parameter_pack_identifier */ -#line 1760 "dtool/src/cppparser/cppBison.yxx" + case 178: /* template_formal_parameter: KW_CONST template_formal_parameter_type parameter_pack_identifier */ +#line 1771 "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 5778 "built/tmp/cppBison.yxx.c" +#line 5858 "built/tmp/cppBison.yxx.c" break; - case 177: /* template_formal_parameter_type: simple_type */ -#line 1769 "dtool/src/cppparser/cppBison.yxx" + case 179: /* template_formal_parameter_type: simple_type */ +#line 1780 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5786 "built/tmp/cppBison.yxx.c" +#line 5866 "built/tmp/cppBison.yxx.c" break; - case 178: /* template_formal_parameter_type: IDENTIFIER */ -#line 1773 "dtool/src/cppparser/cppBison.yxx" + case 180: /* template_formal_parameter_type: IDENTIFIER */ +#line 1784 "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 5795 "built/tmp/cppBison.yxx.c" +#line 5875 "built/tmp/cppBison.yxx.c" break; - case 179: /* template_formal_parameter_type: TYPENAME_IDENTIFIER */ -#line 1778 "dtool/src/cppparser/cppBison.yxx" + case 181: /* template_formal_parameter_type: TYPENAME_IDENTIFIER */ +#line 1789 "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) { @@ -5803,11 +5883,11 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 5807 "built/tmp/cppBison.yxx.c" +#line 5887 "built/tmp/cppBison.yxx.c" break; - case 180: /* template_formal_parameter_type: TYPEPACK_IDENTIFIER */ -#line 1786 "dtool/src/cppparser/cppBison.yxx" + case 182: /* template_formal_parameter_type: TYPEPACK_IDENTIFIER */ +#line 1797 "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) { @@ -5815,19 +5895,19 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 5819 "built/tmp/cppBison.yxx.c" +#line 5899 "built/tmp/cppBison.yxx.c" break; - case 181: /* instance_identifier: name_no_final */ -#line 1798 "dtool/src/cppparser/cppBison.yxx" + case 183: /* instance_identifier: name_no_final */ +#line 1809 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 5827 "built/tmp/cppBison.yxx.c" +#line 5907 "built/tmp/cppBison.yxx.c" break; - case 182: /* instance_identifier: KW_OPERATOR function_operator */ -#line 1802 "dtool/src/cppparser/cppBison.yxx" + case 184: /* instance_identifier: KW_OPERATOR function_operator */ +#line 1813 "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 @@ -5841,11 +5921,11 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 5845 "built/tmp/cppBison.yxx.c" +#line 5925 "built/tmp/cppBison.yxx.c" break; - case 183: /* instance_identifier: KW_OPERATOR SIMPLE_STRING IDENTIFIER */ -#line 1816 "dtool/src/cppparser/cppBison.yxx" + case 185: /* instance_identifier: KW_OPERATOR SIMPLE_STRING IDENTIFIER */ +#line 1827 "dtool/src/cppparser/cppBison.yxx" { // A C++11 literal operator. if (!(yyvsp[-1].str).empty()) { @@ -5860,83 +5940,83 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 5864 "built/tmp/cppBison.yxx.c" +#line 5944 "built/tmp/cppBison.yxx.c" break; - case 184: /* instance_identifier: KW_CONST instance_identifier */ -#line 1831 "dtool/src/cppparser/cppBison.yxx" + case 186: /* instance_identifier: KW_CONST instance_identifier */ +#line 1842 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 5873 "built/tmp/cppBison.yxx.c" +#line 5953 "built/tmp/cppBison.yxx.c" break; - case 185: /* instance_identifier: KW_VOLATILE instance_identifier */ -#line 1836 "dtool/src/cppparser/cppBison.yxx" + case 187: /* instance_identifier: KW_VOLATILE instance_identifier */ +#line 1847 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 5882 "built/tmp/cppBison.yxx.c" +#line 5962 "built/tmp/cppBison.yxx.c" break; - case 186: /* instance_identifier: '*' instance_identifier */ -#line 1841 "dtool/src/cppparser/cppBison.yxx" + case 188: /* instance_identifier: '*' instance_identifier */ +#line 1852 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 5891 "built/tmp/cppBison.yxx.c" +#line 5971 "built/tmp/cppBison.yxx.c" break; - case 187: /* instance_identifier: '&' instance_identifier */ -#line 1846 "dtool/src/cppparser/cppBison.yxx" + case 189: /* instance_identifier: '&' instance_identifier */ +#line 1857 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 5900 "built/tmp/cppBison.yxx.c" +#line 5980 "built/tmp/cppBison.yxx.c" break; - case 188: /* instance_identifier: ANDAND instance_identifier */ -#line 1851 "dtool/src/cppparser/cppBison.yxx" + case 190: /* instance_identifier: ANDAND instance_identifier */ +#line 1862 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 5909 "built/tmp/cppBison.yxx.c" +#line 5989 "built/tmp/cppBison.yxx.c" break; - case 189: /* instance_identifier: SCOPING '*' instance_identifier */ -#line 1856 "dtool/src/cppparser/cppBison.yxx" + case 191: /* instance_identifier: SCOPING '*' instance_identifier */ +#line 1867 "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 5918 "built/tmp/cppBison.yxx.c" +#line 5998 "built/tmp/cppBison.yxx.c" break; - case 190: /* instance_identifier: instance_identifier '[' optional_const_expr ']' */ -#line 1861 "dtool/src/cppparser/cppBison.yxx" + case 192: /* instance_identifier: instance_identifier '[' optional_const_expr ']' */ +#line 1872 "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 5927 "built/tmp/cppBison.yxx.c" +#line 6007 "built/tmp/cppBison.yxx.c" break; - case 191: /* instance_identifier: '(' instance_identifier ')' */ -#line 1866 "dtool/src/cppparser/cppBison.yxx" + case 193: /* instance_identifier: '(' instance_identifier ')' */ +#line 1877 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 5936 "built/tmp/cppBison.yxx.c" +#line 6016 "built/tmp/cppBison.yxx.c" break; - case 192: /* $@15: %empty */ -#line 1871 "dtool/src/cppparser/cppBison.yxx" + case 194: /* $@15: %empty */ +#line 1882 "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), @@ -5949,11 +6029,11 @@ yyreduce: push_scope(scope); } -#line 5953 "built/tmp/cppBison.yxx.c" +#line 6033 "built/tmp/cppBison.yxx.c" break; - case 193: /* instance_identifier: instance_identifier '(' $@15 formal_parameter_list ')' function_post */ -#line 1884 "dtool/src/cppparser/cppBison.yxx" + case 195: /* instance_identifier: instance_identifier '(' $@15 formal_parameter_list ')' function_post */ +#line 1895 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); @@ -5967,11 +6047,11 @@ yyreduce: (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } } -#line 5971 "built/tmp/cppBison.yxx.c" +#line 6051 "built/tmp/cppBison.yxx.c" break; - case 194: /* instance_identifier_and_maybe_trailing_return_type: instance_identifier maybe_trailing_return_type */ -#line 1902 "dtool/src/cppparser/cppBison.yxx" + case 196: /* instance_identifier_and_maybe_trailing_return_type: instance_identifier maybe_trailing_return_type */ +#line 1913 "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 @@ -5981,910 +6061,910 @@ yyreduce: } (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } -#line 5985 "built/tmp/cppBison.yxx.c" +#line 6065 "built/tmp/cppBison.yxx.c" break; - case 195: /* instance_identifier_and_maybe_trailing_return_type: instance_identifier ':' const_expr */ -#line 1912 "dtool/src/cppparser/cppBison.yxx" + case 197: /* instance_identifier_and_maybe_trailing_return_type: instance_identifier ':' const_expr */ +#line 1923 "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 5995 "built/tmp/cppBison.yxx.c" +#line 6075 "built/tmp/cppBison.yxx.c" break; - case 196: /* maybe_trailing_return_type: empty */ -#line 1922 "dtool/src/cppparser/cppBison.yxx" + case 198: /* maybe_trailing_return_type: empty */ +#line 1933 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = nullptr; } -#line 6003 "built/tmp/cppBison.yxx.c" +#line 6083 "built/tmp/cppBison.yxx.c" break; - case 197: /* maybe_trailing_return_type: POINTSAT predefined_type empty_instance_identifier */ -#line 1926 "dtool/src/cppparser/cppBison.yxx" + case 199: /* maybe_trailing_return_type: POINTSAT predefined_type empty_instance_identifier */ +#line 1937 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6011 "built/tmp/cppBison.yxx.c" +#line 6091 "built/tmp/cppBison.yxx.c" break; - case 198: /* maybe_trailing_return_type: POINTSAT KW_CONST predefined_type empty_instance_identifier */ -#line 1930 "dtool/src/cppparser/cppBison.yxx" + case 200: /* maybe_trailing_return_type: POINTSAT KW_CONST predefined_type empty_instance_identifier */ +#line 1941 "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 6020 "built/tmp/cppBison.yxx.c" +#line 6100 "built/tmp/cppBison.yxx.c" break; - case 199: /* maybe_comma_identifier: empty */ -#line 1939 "dtool/src/cppparser/cppBison.yxx" + case 201: /* maybe_comma_identifier: empty */ +#line 1950 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = nullptr; } -#line 6028 "built/tmp/cppBison.yxx.c" +#line 6108 "built/tmp/cppBison.yxx.c" break; - case 200: /* maybe_comma_identifier: ',' IDENTIFIER */ -#line 1943 "dtool/src/cppparser/cppBison.yxx" + case 202: /* maybe_comma_identifier: ',' IDENTIFIER */ +#line 1954 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } -#line 6036 "built/tmp/cppBison.yxx.c" +#line 6116 "built/tmp/cppBison.yxx.c" break; - case 201: /* function_parameter_list: empty */ -#line 1951 "dtool/src/cppparser/cppBison.yxx" + case 203: /* function_parameter_list: empty */ +#line 1962 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; } -#line 6044 "built/tmp/cppBison.yxx.c" +#line 6124 "built/tmp/cppBison.yxx.c" break; - case 202: /* function_parameter_list: ELLIPSIS */ -#line 1955 "dtool/src/cppparser/cppBison.yxx" + case 204: /* function_parameter_list: ELLIPSIS */ +#line 1966 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6053 "built/tmp/cppBison.yxx.c" +#line 6133 "built/tmp/cppBison.yxx.c" break; - case 203: /* function_parameter_list: function_parameters */ -#line 1960 "dtool/src/cppparser/cppBison.yxx" + case 205: /* function_parameter_list: function_parameters */ +#line 1971 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[0].u.param_list); } -#line 6061 "built/tmp/cppBison.yxx.c" +#line 6141 "built/tmp/cppBison.yxx.c" break; - case 204: /* function_parameter_list: function_parameters ',' ELLIPSIS */ -#line 1964 "dtool/src/cppparser/cppBison.yxx" + case 206: /* function_parameter_list: function_parameters ',' ELLIPSIS */ +#line 1975 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6070 "built/tmp/cppBison.yxx.c" +#line 6150 "built/tmp/cppBison.yxx.c" break; - case 205: /* function_parameter_list: function_parameters ELLIPSIS */ -#line 1969 "dtool/src/cppparser/cppBison.yxx" + case 207: /* function_parameter_list: function_parameters ELLIPSIS */ +#line 1980 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[-1].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6079 "built/tmp/cppBison.yxx.c" +#line 6159 "built/tmp/cppBison.yxx.c" break; - case 206: /* function_parameters: function_parameter */ -#line 1977 "dtool/src/cppparser/cppBison.yxx" + case 208: /* function_parameters: function_parameter */ +#line 1988 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } -#line 6088 "built/tmp/cppBison.yxx.c" +#line 6168 "built/tmp/cppBison.yxx.c" break; - case 207: /* function_parameters: function_parameters ',' function_parameter */ -#line 1982 "dtool/src/cppparser/cppBison.yxx" + case 209: /* function_parameters: function_parameters ',' function_parameter */ +#line 1993 "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" +#line 6177 "built/tmp/cppBison.yxx.c" break; - case 208: /* formal_parameter_list: empty */ -#line 1990 "dtool/src/cppparser/cppBison.yxx" + case 210: /* formal_parameter_list: empty */ +#line 2001 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; } -#line 6105 "built/tmp/cppBison.yxx.c" +#line 6185 "built/tmp/cppBison.yxx.c" break; - case 209: /* formal_parameter_list: ELLIPSIS */ -#line 1994 "dtool/src/cppparser/cppBison.yxx" + case 211: /* formal_parameter_list: ELLIPSIS */ +#line 2005 "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" +#line 6194 "built/tmp/cppBison.yxx.c" break; - case 210: /* formal_parameter_list: formal_parameters */ -#line 1999 "dtool/src/cppparser/cppBison.yxx" + case 212: /* formal_parameter_list: formal_parameters */ +#line 2010 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[0].u.param_list); } -#line 6122 "built/tmp/cppBison.yxx.c" +#line 6202 "built/tmp/cppBison.yxx.c" break; - case 211: /* formal_parameter_list: formal_parameters ',' ELLIPSIS */ -#line 2003 "dtool/src/cppparser/cppBison.yxx" + case 213: /* formal_parameter_list: formal_parameters ',' ELLIPSIS */ +#line 2014 "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" +#line 6211 "built/tmp/cppBison.yxx.c" break; - case 212: /* formal_parameter_list: formal_parameters ELLIPSIS */ -#line 2008 "dtool/src/cppparser/cppBison.yxx" + case 214: /* formal_parameter_list: formal_parameters ELLIPSIS */ +#line 2019 "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" +#line 6220 "built/tmp/cppBison.yxx.c" break; - case 213: /* formal_parameters: formal_parameter */ -#line 2016 "dtool/src/cppparser/cppBison.yxx" + case 215: /* formal_parameters: formal_parameter */ +#line 2027 "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" +#line 6229 "built/tmp/cppBison.yxx.c" break; - case 214: /* formal_parameters: formal_parameters ',' formal_parameter */ -#line 2021 "dtool/src/cppparser/cppBison.yxx" + case 216: /* formal_parameters: formal_parameters ',' formal_parameter */ +#line 2032 "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" + case 217: /* template_parameter_maybe_initialize: empty */ +#line 2040 "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" + case 218: /* template_parameter_maybe_initialize: '=' no_angle_bracket_const_expr */ +#line 2044 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[-1].u.expr); + (yyval.u.expr) = (yyvsp[0].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" + case 219: /* maybe_initialize: empty */ +#line 2051 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); + (yyval.u.expr) = nullptr; } #line 6262 "built/tmp/cppBison.yxx.c" break; - case 228: /* maybe_initialize_or_function_body: '=' KW_DELETE ';' */ -#line 2090 "dtool/src/cppparser/cppBison.yxx" + case 220: /* maybe_initialize: '=' const_expr */ +#line 2055 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); + (yyval.u.expr) = (yyvsp[0].u.expr); } #line 6270 "built/tmp/cppBison.yxx.c" break; - case 229: /* maybe_initialize_or_function_body: '=' '{' structure_init '}' */ -#line 2094 "dtool/src/cppparser/cppBison.yxx" + case 221: /* maybe_initialize_or_constructor_body: ';' */ +#line 2062 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = nullptr; } #line 6278 "built/tmp/cppBison.yxx.c" break; - case 233: /* structure_init_body: const_expr */ -#line 2107 "dtool/src/cppparser/cppBison.yxx" + case 222: /* maybe_initialize_or_constructor_body: '{' code '}' */ +#line 2066 "dtool/src/cppparser/cppBison.yxx" { + (yyval.u.expr) = nullptr; } -#line 6285 "built/tmp/cppBison.yxx.c" +#line 6286 "built/tmp/cppBison.yxx.c" break; - case 237: /* function_parameter: type formal_parameter_identifier maybe_initialize */ -#line 2116 "dtool/src/cppparser/cppBison.yxx" + case 223: /* maybe_initialize_or_constructor_body: ':' constructor_inits '{' code '}' */ +#line 2070 "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)); + (yyval.u.expr) = nullptr; } #line 6294 "built/tmp/cppBison.yxx.c" break; - case 238: /* function_parameter: KW_CONST type formal_parameter_identifier maybe_initialize */ -#line 2121 "dtool/src/cppparser/cppBison.yxx" + case 224: /* maybe_initialize_or_constructor_body: '=' KW_DEFAULT ';' */ +#line 2074 "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)); + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); } -#line 6304 "built/tmp/cppBison.yxx.c" +#line 6302 "built/tmp/cppBison.yxx.c" break; - case 239: /* function_parameter: KW_CONST KW_REGISTER type formal_parameter_identifier maybe_initialize */ + case 225: /* maybe_initialize_or_constructor_body: '=' KW_DELETE ';' */ +#line 2078 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 6310 "built/tmp/cppBison.yxx.c" + break; + + case 226: /* maybe_initialize_or_function_body: ';' */ +#line 2085 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6318 "built/tmp/cppBison.yxx.c" + break; + + case 227: /* maybe_initialize_or_function_body: '{' code '}' */ +#line 2089 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6326 "built/tmp/cppBison.yxx.c" + break; + + case 228: /* maybe_initialize_or_function_body: '=' const_expr ';' */ +#line 2093 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 6334 "built/tmp/cppBison.yxx.c" + break; + + case 229: /* maybe_initialize_or_function_body: '=' KW_DEFAULT ';' */ +#line 2097 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 6342 "built/tmp/cppBison.yxx.c" + break; + + case 230: /* maybe_initialize_or_function_body: '=' KW_DELETE ';' */ +#line 2101 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 6350 "built/tmp/cppBison.yxx.c" + break; + + case 231: /* maybe_initialize_or_function_body: '=' '{' structure_init '}' */ +#line 2105 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6358 "built/tmp/cppBison.yxx.c" + break; + + case 235: /* structure_init_body: const_expr */ +#line 2118 "dtool/src/cppparser/cppBison.yxx" +{ +} +#line 6365 "built/tmp/cppBison.yxx.c" + break; + + case 239: /* function_parameter: 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 6314 "built/tmp/cppBison.yxx.c" - break; - - case 240: /* function_parameter: type_pack parameter_pack_identifier maybe_initialize */ -#line 2133 "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 6323 "built/tmp/cppBison.yxx.c" +#line 6374 "built/tmp/cppBison.yxx.c" break; - case 241: /* function_parameter: KW_CONST type_pack parameter_pack_identifier maybe_initialize */ + case 240: /* function_parameter: KW_CONST type formal_parameter_identifier maybe_initialize */ +#line 2132 "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 6384 "built/tmp/cppBison.yxx.c" + break; + + case 241: /* function_parameter: KW_CONST KW_REGISTER type formal_parameter_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[-2]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} +#line 6394 "built/tmp/cppBison.yxx.c" + break; + + case 242: /* function_parameter: type_pack parameter_pack_identifier maybe_initialize */ +#line 2144 "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 6333 "built/tmp/cppBison.yxx.c" +#line 6403 "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" + case 243: /* function_parameter: KW_CONST type_pack parameter_pack_identifier maybe_initialize */ +#line 2149 "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 6413 "built/tmp/cppBison.yxx.c" + break; + + case 244: /* function_parameter: KW_CONST KW_REGISTER type_pack parameter_pack_identifier maybe_initialize */ +#line 2155 "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" +#line 6423 "built/tmp/cppBison.yxx.c" break; - case 243: /* function_parameter: KW_REGISTER function_parameter */ -#line 2150 "dtool/src/cppparser/cppBison.yxx" + case 245: /* function_parameter: KW_REGISTER function_parameter */ +#line 2161 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6351 "built/tmp/cppBison.yxx.c" +#line 6431 "built/tmp/cppBison.yxx.c" break; - 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 6359 "built/tmp/cppBison.yxx.c" - break; - - case 245: /* formal_parameter: function_parameter */ + case 246: /* function_parameter: ATTR_LEFT attribute_specifiers ATTR_RIGHT function_parameter */ #line 2165 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6367 "built/tmp/cppBison.yxx.c" +#line 6439 "built/tmp/cppBison.yxx.c" break; - case 246: /* formal_parameter: formal_const_expr */ -#line 2169 "dtool/src/cppparser/cppBison.yxx" + case 247: /* formal_parameter: function_parameter */ +#line 2176 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.instance) = (yyvsp[0].u.instance); +} +#line 6447 "built/tmp/cppBison.yxx.c" + break; + + case 248: /* formal_parameter: formal_const_expr */ +#line 2180 "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 6378 "built/tmp/cppBison.yxx.c" +#line 6458 "built/tmp/cppBison.yxx.c" break; - case 247: /* not_paren_formal_parameter_identifier: empty */ -#line 2179 "dtool/src/cppparser/cppBison.yxx" + case 249: /* not_paren_formal_parameter_identifier: empty */ +#line 2190 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } -#line 6386 "built/tmp/cppBison.yxx.c" +#line 6466 "built/tmp/cppBison.yxx.c" break; - case 248: /* not_paren_formal_parameter_identifier: name_no_final */ -#line 2183 "dtool/src/cppparser/cppBison.yxx" + case 250: /* not_paren_formal_parameter_identifier: name_no_final */ +#line 2194 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 6394 "built/tmp/cppBison.yxx.c" +#line 6474 "built/tmp/cppBison.yxx.c" break; - case 249: /* not_paren_formal_parameter_identifier: KW_CONST not_paren_formal_parameter_identifier */ -#line 2187 "dtool/src/cppparser/cppBison.yxx" + case 251: /* not_paren_formal_parameter_identifier: KW_CONST not_paren_formal_parameter_identifier */ +#line 2198 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6403 "built/tmp/cppBison.yxx.c" +#line 6483 "built/tmp/cppBison.yxx.c" break; - case 250: /* not_paren_formal_parameter_identifier: KW_VOLATILE not_paren_formal_parameter_identifier */ -#line 2192 "dtool/src/cppparser/cppBison.yxx" + case 252: /* not_paren_formal_parameter_identifier: KW_VOLATILE not_paren_formal_parameter_identifier */ +#line 2203 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6412 "built/tmp/cppBison.yxx.c" +#line 6492 "built/tmp/cppBison.yxx.c" break; - case 251: /* not_paren_formal_parameter_identifier: '*' not_paren_formal_parameter_identifier */ -#line 2197 "dtool/src/cppparser/cppBison.yxx" + case 253: /* not_paren_formal_parameter_identifier: '*' not_paren_formal_parameter_identifier */ +#line 2208 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6421 "built/tmp/cppBison.yxx.c" +#line 6501 "built/tmp/cppBison.yxx.c" break; - case 252: /* not_paren_formal_parameter_identifier: '&' not_paren_formal_parameter_identifier */ -#line 2202 "dtool/src/cppparser/cppBison.yxx" + case 254: /* not_paren_formal_parameter_identifier: '&' not_paren_formal_parameter_identifier */ +#line 2213 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6430 "built/tmp/cppBison.yxx.c" +#line 6510 "built/tmp/cppBison.yxx.c" break; - case 253: /* not_paren_formal_parameter_identifier: ANDAND not_paren_formal_parameter_identifier */ -#line 2207 "dtool/src/cppparser/cppBison.yxx" + case 255: /* not_paren_formal_parameter_identifier: ANDAND not_paren_formal_parameter_identifier */ +#line 2218 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 6439 "built/tmp/cppBison.yxx.c" +#line 6519 "built/tmp/cppBison.yxx.c" break; - case 254: /* not_paren_formal_parameter_identifier: SCOPING '*' not_paren_formal_parameter_identifier */ -#line 2212 "dtool/src/cppparser/cppBison.yxx" + case 256: /* not_paren_formal_parameter_identifier: SCOPING '*' not_paren_formal_parameter_identifier */ +#line 2223 "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 6448 "built/tmp/cppBison.yxx.c" +#line 6528 "built/tmp/cppBison.yxx.c" break; - case 255: /* not_paren_formal_parameter_identifier: not_paren_formal_parameter_identifier '[' optional_const_expr ']' */ -#line 2217 "dtool/src/cppparser/cppBison.yxx" + case 257: /* not_paren_formal_parameter_identifier: not_paren_formal_parameter_identifier '[' optional_const_expr ']' */ +#line 2228 "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 6457 "built/tmp/cppBison.yxx.c" +#line 6537 "built/tmp/cppBison.yxx.c" break; - case 256: /* formal_parameter_identifier: empty */ -#line 2225 "dtool/src/cppparser/cppBison.yxx" + case 258: /* formal_parameter_identifier: empty */ +#line 2236 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } -#line 6465 "built/tmp/cppBison.yxx.c" +#line 6545 "built/tmp/cppBison.yxx.c" break; - case 257: /* formal_parameter_identifier: name_no_final */ -#line 2229 "dtool/src/cppparser/cppBison.yxx" + case 259: /* formal_parameter_identifier: name_no_final */ +#line 2240 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 6473 "built/tmp/cppBison.yxx.c" +#line 6553 "built/tmp/cppBison.yxx.c" break; - case 258: /* formal_parameter_identifier: KW_CONST formal_parameter_identifier */ -#line 2233 "dtool/src/cppparser/cppBison.yxx" + case 260: /* formal_parameter_identifier: KW_CONST formal_parameter_identifier */ +#line 2244 "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" +#line 6562 "built/tmp/cppBison.yxx.c" break; - case 259: /* formal_parameter_identifier: KW_VOLATILE formal_parameter_identifier */ -#line 2238 "dtool/src/cppparser/cppBison.yxx" + case 261: /* formal_parameter_identifier: KW_VOLATILE formal_parameter_identifier */ +#line 2249 "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" +#line 6571 "built/tmp/cppBison.yxx.c" break; - case 260: /* formal_parameter_identifier: '*' formal_parameter_identifier */ -#line 2243 "dtool/src/cppparser/cppBison.yxx" + case 262: /* formal_parameter_identifier: '*' formal_parameter_identifier */ +#line 2254 "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" +#line 6580 "built/tmp/cppBison.yxx.c" break; - case 261: /* formal_parameter_identifier: '&' formal_parameter_identifier */ -#line 2248 "dtool/src/cppparser/cppBison.yxx" + case 263: /* formal_parameter_identifier: '&' formal_parameter_identifier */ +#line 2259 "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" +#line 6589 "built/tmp/cppBison.yxx.c" break; - case 262: /* formal_parameter_identifier: ANDAND formal_parameter_identifier */ -#line 2253 "dtool/src/cppparser/cppBison.yxx" + case 264: /* formal_parameter_identifier: ANDAND formal_parameter_identifier */ +#line 2264 "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" +#line 6598 "built/tmp/cppBison.yxx.c" break; - case 263: /* formal_parameter_identifier: SCOPING '*' formal_parameter_identifier */ -#line 2258 "dtool/src/cppparser/cppBison.yxx" + case 265: /* formal_parameter_identifier: SCOPING '*' formal_parameter_identifier */ +#line 2269 "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" +#line 6607 "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 6546 "built/tmp/cppBison.yxx.c" - break; - - case 266: /* formal_parameter_identifier: '(' formal_parameter_identifier ')' */ + case 266: /* formal_parameter_identifier: formal_parameter_identifier '[' optional_const_expr ']' */ #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 6555 "built/tmp/cppBison.yxx.c" - break; - - 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 6564 "built/tmp/cppBison.yxx.c" - break; - - 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 6573 "built/tmp/cppBison.yxx.c" - break; - - 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 6582 "built/tmp/cppBison.yxx.c" - break; - - 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 6591 "built/tmp/cppBison.yxx.c" - break; - - 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 6600 "built/tmp/cppBison.yxx.c" - break; - - 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 6609 "built/tmp/cppBison.yxx.c" - break; - - 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 6618 "built/tmp/cppBison.yxx.c" - break; - - 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 6627 "built/tmp/cppBison.yxx.c" - break; - - 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 6636 "built/tmp/cppBison.yxx.c" +#line 6616 "built/tmp/cppBison.yxx.c" break; - case 276: /* parameter_pack_identifier: '(' parameter_pack_identifier ')' '(' function_parameter_list ')' function_post */ -#line 2327 "dtool/src/cppparser/cppBison.yxx" + case 267: /* formal_parameter_identifier: '(' formal_parameter_identifier ')' '(' function_parameter_list ')' function_post */ +#line 2279 "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 6646 "built/tmp/cppBison.yxx.c" +#line 6626 "built/tmp/cppBison.yxx.c" break; - case 277: /* parameter_pack_identifier: '(' parameter_pack_identifier ')' */ -#line 2333 "dtool/src/cppparser/cppBison.yxx" + case 268: /* formal_parameter_identifier: '(' formal_parameter_identifier ')' */ +#line 2285 "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" +#line 6635 "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" + case 269: /* parameter_pack_identifier: ELLIPSIS */ +#line 2293 "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" +#line 6644 "built/tmp/cppBison.yxx.c" break; - case 280: /* not_paren_empty_instance_identifier: ELLIPSIS name */ -#line 2350 "dtool/src/cppparser/cppBison.yxx" + case 270: /* parameter_pack_identifier: ELLIPSIS name */ +#line 2298 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); (yyval.u.inst_ident)->_packed = true; } -#line 6681 "built/tmp/cppBison.yxx.c" +#line 6653 "built/tmp/cppBison.yxx.c" break; - case 281: /* not_paren_empty_instance_identifier: KW_CONST not_paren_empty_instance_identifier */ -#line 2355 "dtool/src/cppparser/cppBison.yxx" + case 271: /* parameter_pack_identifier: KW_CONST parameter_pack_identifier */ +#line 2303 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6690 "built/tmp/cppBison.yxx.c" +#line 6662 "built/tmp/cppBison.yxx.c" break; - case 282: /* not_paren_empty_instance_identifier: KW_VOLATILE not_paren_empty_instance_identifier */ -#line 2360 "dtool/src/cppparser/cppBison.yxx" + case 272: /* parameter_pack_identifier: KW_VOLATILE parameter_pack_identifier */ +#line 2308 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6699 "built/tmp/cppBison.yxx.c" +#line 6671 "built/tmp/cppBison.yxx.c" break; - case 283: /* not_paren_empty_instance_identifier: '*' not_paren_empty_instance_identifier */ -#line 2365 "dtool/src/cppparser/cppBison.yxx" + case 273: /* parameter_pack_identifier: '*' parameter_pack_identifier */ +#line 2313 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6708 "built/tmp/cppBison.yxx.c" +#line 6680 "built/tmp/cppBison.yxx.c" break; - case 284: /* not_paren_empty_instance_identifier: '&' not_paren_empty_instance_identifier */ -#line 2370 "dtool/src/cppparser/cppBison.yxx" + case 274: /* parameter_pack_identifier: '&' parameter_pack_identifier */ +#line 2318 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6717 "built/tmp/cppBison.yxx.c" +#line 6689 "built/tmp/cppBison.yxx.c" break; - case 285: /* not_paren_empty_instance_identifier: ANDAND not_paren_empty_instance_identifier */ -#line 2375 "dtool/src/cppparser/cppBison.yxx" + case 275: /* parameter_pack_identifier: ANDAND parameter_pack_identifier */ +#line 2323 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 6698 "built/tmp/cppBison.yxx.c" + break; + + case 276: /* parameter_pack_identifier: SCOPING '*' parameter_pack_identifier */ +#line 2328 "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 6707 "built/tmp/cppBison.yxx.c" + break; + + case 277: /* parameter_pack_identifier: parameter_pack_identifier '[' optional_const_expr ']' */ +#line 2333 "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 6716 "built/tmp/cppBison.yxx.c" + break; + + case 278: /* parameter_pack_identifier: '(' parameter_pack_identifier ')' '(' function_parameter_list ')' function_post */ +#line 2338 "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 6726 "built/tmp/cppBison.yxx.c" break; - case 286: /* not_paren_empty_instance_identifier: SCOPING '*' not_paren_empty_instance_identifier */ -#line 2380 "dtool/src/cppparser/cppBison.yxx" + case 279: /* parameter_pack_identifier: '(' parameter_pack_identifier ')' */ +#line 2344 "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)); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); } #line 6735 "built/tmp/cppBison.yxx.c" break; - 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 6744 "built/tmp/cppBison.yxx.c" - break; - - case 288: /* empty_instance_identifier: empty */ -#line 2393 "dtool/src/cppparser/cppBison.yxx" + case 280: /* not_paren_empty_instance_identifier: empty */ +#line 2352 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } +#line 6743 "built/tmp/cppBison.yxx.c" + break; + + case 281: /* not_paren_empty_instance_identifier: ELLIPSIS */ +#line 2356 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->_packed = true; +} #line 6752 "built/tmp/cppBison.yxx.c" break; - case 289: /* empty_instance_identifier: ELLIPSIS */ -#line 2397 "dtool/src/cppparser/cppBison.yxx" + case 282: /* not_paren_empty_instance_identifier: ELLIPSIS name */ +#line 2361 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); (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" + case 283: /* not_paren_empty_instance_identifier: KW_CONST not_paren_empty_instance_identifier */ +#line 2366 "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" +#line 6770 "built/tmp/cppBison.yxx.c" break; - case 292: /* empty_instance_identifier: KW_VOLATILE empty_instance_identifier */ -#line 2412 "dtool/src/cppparser/cppBison.yxx" + case 284: /* not_paren_empty_instance_identifier: KW_VOLATILE not_paren_empty_instance_identifier */ +#line 2371 "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" +#line 6779 "built/tmp/cppBison.yxx.c" break; - case 293: /* empty_instance_identifier: '*' not_paren_empty_instance_identifier */ -#line 2417 "dtool/src/cppparser/cppBison.yxx" + case 285: /* not_paren_empty_instance_identifier: '*' not_paren_empty_instance_identifier */ +#line 2376 "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" +#line 6788 "built/tmp/cppBison.yxx.c" break; - case 294: /* empty_instance_identifier: '&' not_paren_empty_instance_identifier */ -#line 2422 "dtool/src/cppparser/cppBison.yxx" + case 286: /* not_paren_empty_instance_identifier: '&' not_paren_empty_instance_identifier */ +#line 2381 "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" +#line 6797 "built/tmp/cppBison.yxx.c" break; - case 295: /* empty_instance_identifier: ANDAND not_paren_empty_instance_identifier */ -#line 2427 "dtool/src/cppparser/cppBison.yxx" + case 287: /* not_paren_empty_instance_identifier: ANDAND not_paren_empty_instance_identifier */ +#line 2386 "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" +#line 6806 "built/tmp/cppBison.yxx.c" break; - case 296: /* empty_instance_identifier: SCOPING '*' not_paren_empty_instance_identifier */ -#line 2432 "dtool/src/cppparser/cppBison.yxx" + case 288: /* not_paren_empty_instance_identifier: SCOPING '*' not_paren_empty_instance_identifier */ +#line 2391 "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" +#line 6815 "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" + case 289: /* not_paren_empty_instance_identifier: not_paren_empty_instance_identifier '[' optional_const_expr ']' */ +#line 2396 "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" +#line 6824 "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" + case 290: /* empty_instance_identifier: empty */ +#line 2404 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); +} +#line 6832 "built/tmp/cppBison.yxx.c" + break; + + case 291: /* empty_instance_identifier: ELLIPSIS */ +#line 2408 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->_packed = true; +} +#line 6841 "built/tmp/cppBison.yxx.c" + break; + + case 292: /* empty_instance_identifier: ELLIPSIS name */ +#line 2413 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); + (yyval.u.inst_ident)->_packed = true; +} +#line 6850 "built/tmp/cppBison.yxx.c" + break; + + case 293: /* empty_instance_identifier: KW_CONST empty_instance_identifier */ +#line 2418 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 6859 "built/tmp/cppBison.yxx.c" + break; + + case 294: /* empty_instance_identifier: KW_VOLATILE empty_instance_identifier */ +#line 2423 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 6868 "built/tmp/cppBison.yxx.c" + break; + + case 295: /* empty_instance_identifier: '*' not_paren_empty_instance_identifier */ +#line 2428 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 6877 "built/tmp/cppBison.yxx.c" + break; + + case 296: /* empty_instance_identifier: '&' not_paren_empty_instance_identifier */ +#line 2433 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 6886 "built/tmp/cppBison.yxx.c" + break; + + case 297: /* empty_instance_identifier: ANDAND not_paren_empty_instance_identifier */ +#line 2438 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6895 "built/tmp/cppBison.yxx.c" + break; + + case 298: /* empty_instance_identifier: SCOPING '*' not_paren_empty_instance_identifier */ +#line 2443 "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 6904 "built/tmp/cppBison.yxx.c" + break; + + case 299: /* empty_instance_identifier: not_paren_empty_instance_identifier '[' optional_const_expr ']' */ +#line 2448 "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 6913 "built/tmp/cppBison.yxx.c" + break; + + case 300: /* empty_instance_identifier: '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2453 "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 6843 "built/tmp/cppBison.yxx.c" +#line 6923 "built/tmp/cppBison.yxx.c" break; - 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" + case 301: /* empty_instance_identifier: '(' '*' not_paren_empty_instance_identifier ')' '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2459 "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 6854 "built/tmp/cppBison.yxx.c" +#line 6934 "built/tmp/cppBison.yxx.c" break; - 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" + case 302: /* empty_instance_identifier: '(' '&' not_paren_empty_instance_identifier ')' '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2466 "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 6865 "built/tmp/cppBison.yxx.c" +#line 6945 "built/tmp/cppBison.yxx.c" break; - 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" + case 303: /* empty_instance_identifier: '(' ANDAND not_paren_empty_instance_identifier ')' '(' function_parameter_list ')' function_post maybe_trailing_return_type */ +#line 2473 "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 6876 "built/tmp/cppBison.yxx.c" +#line 6956 "built/tmp/cppBison.yxx.c" break; - case 302: /* type: simple_type */ -#line 2472 "dtool/src/cppparser/cppBison.yxx" + case 304: /* type: simple_type */ +#line 2483 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 6884 "built/tmp/cppBison.yxx.c" +#line 6964 "built/tmp/cppBison.yxx.c" break; - case 303: /* type: TYPENAME_IDENTIFIER */ -#line 2476 "dtool/src/cppparser/cppBison.yxx" + case 305: /* type: TYPENAME_IDENTIFIER */ +#line 2487 "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) { @@ -6892,43 +6972,43 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 6896 "built/tmp/cppBison.yxx.c" +#line 6976 "built/tmp/cppBison.yxx.c" break; - case 304: /* type: KW_TYPENAME name */ -#line 2484 "dtool/src/cppparser/cppBison.yxx" + case 306: /* type: KW_TYPENAME name */ +#line 2495 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 6904 "built/tmp/cppBison.yxx.c" +#line 6984 "built/tmp/cppBison.yxx.c" break; - case 305: /* type: anonymous_struct */ -#line 2488 "dtool/src/cppparser/cppBison.yxx" + case 307: /* type: anonymous_struct */ +#line 2499 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 6912 "built/tmp/cppBison.yxx.c" +#line 6992 "built/tmp/cppBison.yxx.c" break; - case 306: /* type: named_struct */ -#line 2492 "dtool/src/cppparser/cppBison.yxx" + case 308: /* type: named_struct */ +#line 2503 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 6920 "built/tmp/cppBison.yxx.c" +#line 7000 "built/tmp/cppBison.yxx.c" break; - case 307: /* type: enum */ -#line 2496 "dtool/src/cppparser/cppBison.yxx" + case 309: /* type: enum */ +#line 2507 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); } -#line 6928 "built/tmp/cppBison.yxx.c" +#line 7008 "built/tmp/cppBison.yxx.c" break; - case 308: /* type: struct_keyword struct_attributes name */ -#line 2500 "dtool/src/cppparser/cppBison.yxx" + case 310: /* type: struct_keyword struct_attributes name */ +#line 2511 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -6944,11 +7024,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 6948 "built/tmp/cppBison.yxx.c" +#line 7028 "built/tmp/cppBison.yxx.c" break; - case 309: /* type: enum_keyword name_no_final ':' enum_element_type */ -#line 2516 "dtool/src/cppparser/cppBison.yxx" + case 311: /* type: enum_keyword name_no_final ':' enum_element_type */ +#line 2527 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -6964,11 +7044,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 6968 "built/tmp/cppBison.yxx.c" +#line 7048 "built/tmp/cppBison.yxx.c" break; - case 310: /* type: KW_DECLTYPE '(' const_expr ')' */ -#line 2532 "dtool/src/cppparser/cppBison.yxx" + case 312: /* type: KW_DECLTYPE '(' const_expr ')' */ +#line 2543 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == nullptr) { @@ -6977,19 +7057,19 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 6981 "built/tmp/cppBison.yxx.c" +#line 7061 "built/tmp/cppBison.yxx.c" break; - case 311: /* type: KW_DECLTYPE '(' KW_AUTO ')' */ -#line 2541 "dtool/src/cppparser/cppBison.yxx" + case 313: /* type: KW_DECLTYPE '(' KW_AUTO ')' */ +#line 2552 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 6989 "built/tmp/cppBison.yxx.c" +#line 7069 "built/tmp/cppBison.yxx.c" break; - case 312: /* type: KW_UNDERLYING_TYPE '(' full_type ')' */ -#line 2545 "dtool/src/cppparser/cppBison.yxx" + case 314: /* type: KW_UNDERLYING_TYPE '(' full_type ')' */ +#line 2556 "dtool/src/cppparser/cppBison.yxx" { CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { @@ -6999,19 +7079,19 @@ yyreduce: (yyval.u.type) = enum_type->get_underlying_type(); } } -#line 7003 "built/tmp/cppBison.yxx.c" +#line 7083 "built/tmp/cppBison.yxx.c" break; - case 313: /* type: KW_AUTO */ -#line 2555 "dtool/src/cppparser/cppBison.yxx" + case 315: /* type: KW_AUTO */ +#line 2566 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7011 "built/tmp/cppBison.yxx.c" +#line 7091 "built/tmp/cppBison.yxx.c" break; - case 314: /* type_pack: TYPEPACK_IDENTIFIER */ -#line 2562 "dtool/src/cppparser/cppBison.yxx" + case 316: /* type_pack: TYPEPACK_IDENTIFIER */ +#line 2573 "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) { @@ -7019,19 +7099,19 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 7023 "built/tmp/cppBison.yxx.c" +#line 7103 "built/tmp/cppBison.yxx.c" break; - case 315: /* type_decl: simple_type */ -#line 2573 "dtool/src/cppparser/cppBison.yxx" + case 317: /* type_decl: simple_type */ +#line 2584 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7031 "built/tmp/cppBison.yxx.c" +#line 7111 "built/tmp/cppBison.yxx.c" break; - case 316: /* type_decl: TYPENAME_IDENTIFIER */ -#line 2577 "dtool/src/cppparser/cppBison.yxx" + case 318: /* type_decl: TYPENAME_IDENTIFIER */ +#line 2588 "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) { @@ -7039,43 +7119,43 @@ yyreduce: } assert((yyval.u.decl) != nullptr); } -#line 7043 "built/tmp/cppBison.yxx.c" +#line 7123 "built/tmp/cppBison.yxx.c" break; - case 317: /* type_decl: KW_TYPENAME name */ -#line 2585 "dtool/src/cppparser/cppBison.yxx" + case 319: /* type_decl: KW_TYPENAME name */ +#line 2596 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7051 "built/tmp/cppBison.yxx.c" +#line 7131 "built/tmp/cppBison.yxx.c" break; - case 318: /* type_decl: anonymous_struct */ -#line 2589 "dtool/src/cppparser/cppBison.yxx" + case 320: /* type_decl: anonymous_struct */ +#line 2600 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 7059 "built/tmp/cppBison.yxx.c" +#line 7139 "built/tmp/cppBison.yxx.c" break; - case 319: /* type_decl: named_struct */ -#line 2593 "dtool/src/cppparser/cppBison.yxx" + case 321: /* type_decl: named_struct */ +#line 2604 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); } -#line 7067 "built/tmp/cppBison.yxx.c" +#line 7147 "built/tmp/cppBison.yxx.c" break; - case 320: /* type_decl: enum */ -#line 2597 "dtool/src/cppparser/cppBison.yxx" + case 322: /* type_decl: enum */ +#line 2608 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); } -#line 7075 "built/tmp/cppBison.yxx.c" +#line 7155 "built/tmp/cppBison.yxx.c" break; - case 321: /* type_decl: struct_keyword struct_attributes name */ -#line 2601 "dtool/src/cppparser/cppBison.yxx" + case 323: /* type_decl: struct_keyword struct_attributes name */ +#line 2612 "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 +7171,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7095 "built/tmp/cppBison.yxx.c" +#line 7175 "built/tmp/cppBison.yxx.c" break; - case 322: /* type_decl: enum_keyword name_no_final ':' enum_element_type */ -#line 2617 "dtool/src/cppparser/cppBison.yxx" + case 324: /* type_decl: enum_keyword name_no_final ':' enum_element_type */ +#line 2628 "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 +7191,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7115 "built/tmp/cppBison.yxx.c" +#line 7195 "built/tmp/cppBison.yxx.c" break; - case 323: /* type_decl: enum_keyword name */ -#line 2633 "dtool/src/cppparser/cppBison.yxx" + case 325: /* type_decl: enum_keyword name */ +#line 2644 "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])); @@ -7133,11 +7213,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7137 "built/tmp/cppBison.yxx.c" +#line 7217 "built/tmp/cppBison.yxx.c" break; - case 324: /* type_decl: KW_DECLTYPE '(' const_expr ')' */ -#line 2651 "dtool/src/cppparser/cppBison.yxx" + case 326: /* type_decl: KW_DECLTYPE '(' const_expr ')' */ +#line 2662 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == nullptr) { @@ -7146,19 +7226,19 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7150 "built/tmp/cppBison.yxx.c" +#line 7230 "built/tmp/cppBison.yxx.c" break; - case 325: /* type_decl: KW_DECLTYPE '(' KW_AUTO ')' */ -#line 2660 "dtool/src/cppparser/cppBison.yxx" + case 327: /* type_decl: KW_DECLTYPE '(' KW_AUTO ')' */ +#line 2671 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7158 "built/tmp/cppBison.yxx.c" +#line 7238 "built/tmp/cppBison.yxx.c" break; - case 326: /* type_decl: KW_UNDERLYING_TYPE '(' full_type ')' */ -#line 2664 "dtool/src/cppparser/cppBison.yxx" + case 328: /* type_decl: KW_UNDERLYING_TYPE '(' full_type ')' */ +#line 2675 "dtool/src/cppparser/cppBison.yxx" { CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { @@ -7168,27 +7248,27 @@ yyreduce: (yyval.u.decl) = enum_type->get_underlying_type(); } } -#line 7172 "built/tmp/cppBison.yxx.c" +#line 7252 "built/tmp/cppBison.yxx.c" break; - case 327: /* type_decl: KW_AUTO */ -#line 2674 "dtool/src/cppparser/cppBison.yxx" + case 329: /* type_decl: KW_AUTO */ +#line 2685 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7180 "built/tmp/cppBison.yxx.c" +#line 7260 "built/tmp/cppBison.yxx.c" break; - case 328: /* predefined_type: simple_type */ -#line 2681 "dtool/src/cppparser/cppBison.yxx" + case 330: /* predefined_type: simple_type */ +#line 2692 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7188 "built/tmp/cppBison.yxx.c" +#line 7268 "built/tmp/cppBison.yxx.c" break; - case 329: /* predefined_type: TYPENAME_IDENTIFIER */ -#line 2685 "dtool/src/cppparser/cppBison.yxx" + case 331: /* predefined_type: TYPENAME_IDENTIFIER */ +#line 2696 "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) { @@ -7196,19 +7276,19 @@ yyreduce: } assert((yyval.u.type) != nullptr); } -#line 7200 "built/tmp/cppBison.yxx.c" +#line 7280 "built/tmp/cppBison.yxx.c" break; - case 330: /* predefined_type: KW_TYPENAME name */ -#line 2693 "dtool/src/cppparser/cppBison.yxx" + case 332: /* predefined_type: KW_TYPENAME name */ +#line 2704 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7208 "built/tmp/cppBison.yxx.c" +#line 7288 "built/tmp/cppBison.yxx.c" break; - case 331: /* predefined_type: struct_keyword struct_attributes name */ -#line 2697 "dtool/src/cppparser/cppBison.yxx" + case 333: /* predefined_type: struct_keyword struct_attributes name */ +#line 2708 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7224,11 +7304,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 7228 "built/tmp/cppBison.yxx.c" +#line 7308 "built/tmp/cppBison.yxx.c" break; - case 332: /* predefined_type: enum_keyword name */ -#line 2713 "dtool/src/cppparser/cppBison.yxx" + case 334: /* predefined_type: enum_keyword name */ +#line 2724 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { @@ -7244,11 +7324,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 7248 "built/tmp/cppBison.yxx.c" +#line 7328 "built/tmp/cppBison.yxx.c" break; - case 333: /* predefined_type: KW_DECLTYPE '(' const_expr ')' */ -#line 2729 "dtool/src/cppparser/cppBison.yxx" + case 335: /* predefined_type: KW_DECLTYPE '(' const_expr ')' */ +#line 2740 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == nullptr) { @@ -7257,11 +7337,11 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7261 "built/tmp/cppBison.yxx.c" +#line 7341 "built/tmp/cppBison.yxx.c" break; - case 334: /* predefined_type: KW_UNDERLYING_TYPE '(' full_type ')' */ -#line 2738 "dtool/src/cppparser/cppBison.yxx" + case 336: /* predefined_type: KW_UNDERLYING_TYPE '(' full_type ')' */ +#line 2749 "dtool/src/cppparser/cppBison.yxx" { CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { @@ -7271,71 +7351,71 @@ yyreduce: (yyval.u.type) = enum_type->get_underlying_type(); } } -#line 7275 "built/tmp/cppBison.yxx.c" +#line 7355 "built/tmp/cppBison.yxx.c" break; - case 335: /* predefined_type: KW_AUTO */ -#line 2748 "dtool/src/cppparser/cppBison.yxx" + case 337: /* predefined_type: KW_AUTO */ +#line 2759 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7283 "built/tmp/cppBison.yxx.c" +#line 7363 "built/tmp/cppBison.yxx.c" break; - case 336: /* var_type_decl: type_decl */ -#line 2755 "dtool/src/cppparser/cppBison.yxx" + case 338: /* var_type_decl: type_decl */ +#line 2766 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[0].u.decl); } -#line 7291 "built/tmp/cppBison.yxx.c" +#line 7371 "built/tmp/cppBison.yxx.c" break; - case 337: /* var_type_decl: IDENTIFIER */ -#line 2759 "dtool/src/cppparser/cppBison.yxx" + case 339: /* var_type_decl: IDENTIFIER */ +#line 2770 "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 7301 "built/tmp/cppBison.yxx.c" +#line 7381 "built/tmp/cppBison.yxx.c" break; - case 338: /* full_type: type empty_instance_identifier */ -#line 2767 "dtool/src/cppparser/cppBison.yxx" + case 340: /* full_type: type empty_instance_identifier */ +#line 2778 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7309 "built/tmp/cppBison.yxx.c" +#line 7389 "built/tmp/cppBison.yxx.c" break; - case 339: /* full_type: KW_CONST type empty_instance_identifier */ -#line 2771 "dtool/src/cppparser/cppBison.yxx" + case 341: /* full_type: KW_CONST type empty_instance_identifier */ +#line 2782 "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 7318 "built/tmp/cppBison.yxx.c" +#line 7398 "built/tmp/cppBison.yxx.c" break; - case 340: /* full_type: type_pack empty_instance_identifier */ -#line 2776 "dtool/src/cppparser/cppBison.yxx" + case 342: /* full_type: type_pack empty_instance_identifier */ +#line 2787 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7326 "built/tmp/cppBison.yxx.c" +#line 7406 "built/tmp/cppBison.yxx.c" break; - case 341: /* full_type: KW_CONST type_pack empty_instance_identifier */ -#line 2780 "dtool/src/cppparser/cppBison.yxx" + case 343: /* full_type: KW_CONST type_pack empty_instance_identifier */ +#line 2791 "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 7335 "built/tmp/cppBison.yxx.c" +#line 7415 "built/tmp/cppBison.yxx.c" break; - case 346: /* $@16: %empty */ -#line 2795 "dtool/src/cppparser/cppBison.yxx" + case 348: /* $@16: %empty */ +#line 2806 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[-2].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -7349,22 +7429,22 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 7353 "built/tmp/cppBison.yxx.c" +#line 7433 "built/tmp/cppBison.yxx.c" break; - case 347: /* anonymous_struct: struct_keyword struct_attributes '{' $@16 cpp '}' */ -#line 2809 "dtool/src/cppparser/cppBison.yxx" + case 349: /* anonymous_struct: struct_keyword struct_attributes '{' $@16 cpp '}' */ +#line 2820 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 7364 "built/tmp/cppBison.yxx.c" +#line 7444 "built/tmp/cppBison.yxx.c" break; - case 348: /* $@17: %empty */ -#line 2819 "dtool/src/cppparser/cppBison.yxx" + case 350: /* $@17: %empty */ +#line 2830 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[-2].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -7384,253 +7464,253 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 7388 "built/tmp/cppBison.yxx.c" +#line 7468 "built/tmp/cppBison.yxx.c" break; - 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" + case 351: /* named_struct: struct_keyword struct_attributes name_no_final $@17 maybe_final maybe_class_derivation '{' cpp '}' */ +#line 2850 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 7399 "built/tmp/cppBison.yxx.c" - break; - - case 351: /* maybe_final: KW_FINAL */ -#line 2850 "dtool/src/cppparser/cppBison.yxx" -{ - current_struct->_final = true; -} -#line 7407 "built/tmp/cppBison.yxx.c" - break; - - 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 7415 "built/tmp/cppBison.yxx.c" - break; - - 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 7423 "built/tmp/cppBison.yxx.c" - break; - - 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 7431 "built/tmp/cppBison.yxx.c" - break; - - 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 7439 "built/tmp/cppBison.yxx.c" - break; - - 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 7447 "built/tmp/cppBison.yxx.c" - break; - - 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 7455 "built/tmp/cppBison.yxx.c" - break; - - 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 7463 "built/tmp/cppBison.yxx.c" - break; - - 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 7471 "built/tmp/cppBison.yxx.c" - break; - - 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 7479 "built/tmp/cppBison.yxx.c" break; - case 365: /* base_specification: KW_PRIVATE KW_VIRTUAL class_derivation_name */ -#line 2903 "dtool/src/cppparser/cppBison.yxx" + case 353: /* maybe_final: KW_FINAL */ +#line 2861 "dtool/src/cppparser/cppBison.yxx" { - current_struct->append_derivation((yyvsp[0].u.type), V_private, true); + current_struct->_final = true; } #line 7487 "built/tmp/cppBison.yxx.c" break; - case 366: /* enum: enum_decl '{' enum_body '}' */ + case 358: /* base_specification: class_derivation_name */ +#line 2878 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); +} +#line 7495 "built/tmp/cppBison.yxx.c" + break; + + case 359: /* base_specification: KW_PUBLIC class_derivation_name */ +#line 2882 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_public, false); +} +#line 7503 "built/tmp/cppBison.yxx.c" + break; + + case 360: /* base_specification: KW_PROTECTED class_derivation_name */ +#line 2886 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); +} +#line 7511 "built/tmp/cppBison.yxx.c" + break; + + case 361: /* base_specification: KW_PRIVATE class_derivation_name */ +#line 2890 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); +} +#line 7519 "built/tmp/cppBison.yxx.c" + break; + + case 362: /* base_specification: KW_VIRTUAL KW_PUBLIC class_derivation_name */ +#line 2894 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} +#line 7527 "built/tmp/cppBison.yxx.c" + break; + + case 363: /* base_specification: KW_VIRTUAL KW_PROTECTED class_derivation_name */ +#line 2898 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} +#line 7535 "built/tmp/cppBison.yxx.c" + break; + + case 364: /* base_specification: KW_VIRTUAL KW_PRIVATE class_derivation_name */ +#line 2902 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 7543 "built/tmp/cppBison.yxx.c" + break; + + case 365: /* base_specification: KW_PUBLIC KW_VIRTUAL class_derivation_name */ +#line 2906 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} +#line 7551 "built/tmp/cppBison.yxx.c" + break; + + case 366: /* base_specification: KW_PROTECTED KW_VIRTUAL class_derivation_name */ #line 2910 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} +#line 7559 "built/tmp/cppBison.yxx.c" + break; + + case 367: /* base_specification: KW_PRIVATE KW_VIRTUAL class_derivation_name */ +#line 2914 "dtool/src/cppparser/cppBison.yxx" +{ + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 7567 "built/tmp/cppBison.yxx.c" + break; + + case 368: /* enum: enum_decl '{' enum_body '}' */ +#line 2921 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.enum_type) = current_enum; current_enum = nullptr; } -#line 7496 "built/tmp/cppBison.yxx.c" +#line 7576 "built/tmp/cppBison.yxx.c" break; - case 367: /* enum_decl: enum_keyword ':' enum_element_type */ -#line 2918 "dtool/src/cppparser/cppBison.yxx" + case 369: /* enum_decl: enum_keyword ':' enum_element_type */ +#line 2929 "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 7504 "built/tmp/cppBison.yxx.c" +#line 7584 "built/tmp/cppBison.yxx.c" break; - case 368: /* enum_decl: enum_keyword */ -#line 2922 "dtool/src/cppparser/cppBison.yxx" + case 370: /* enum_decl: enum_keyword */ +#line 2933 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[0].u.extension_enum), nullptr, current_scope, nullptr, (yylsp[0]).file); } -#line 7512 "built/tmp/cppBison.yxx.c" +#line 7592 "built/tmp/cppBison.yxx.c" break; - case 369: /* enum_decl: enum_keyword name_no_final ':' enum_element_type */ -#line 2926 "dtool/src/cppparser/cppBison.yxx" + case 371: /* enum_decl: enum_keyword name_no_final ':' enum_element_type */ +#line 2937 "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 7521 "built/tmp/cppBison.yxx.c" +#line 7601 "built/tmp/cppBison.yxx.c" break; - case 370: /* enum_decl: enum_keyword name_no_final */ -#line 2931 "dtool/src/cppparser/cppBison.yxx" + case 372: /* enum_decl: enum_keyword name_no_final */ +#line 2942 "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 7530 "built/tmp/cppBison.yxx.c" +#line 7610 "built/tmp/cppBison.yxx.c" break; - case 371: /* enum_element_type: simple_int_type */ -#line 2939 "dtool/src/cppparser/cppBison.yxx" + case 373: /* enum_element_type: simple_int_type */ +#line 2950 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7538 "built/tmp/cppBison.yxx.c" +#line 7618 "built/tmp/cppBison.yxx.c" break; - case 372: /* enum_element_type: TYPENAME_IDENTIFIER */ -#line 2943 "dtool/src/cppparser/cppBison.yxx" + case 374: /* enum_element_type: TYPENAME_IDENTIFIER */ +#line 2954 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } -#line 7546 "built/tmp/cppBison.yxx.c" +#line 7626 "built/tmp/cppBison.yxx.c" break; - case 374: /* enum_body_trailing_comma: enum_body_trailing_comma name ',' */ -#line 2951 "dtool/src/cppparser/cppBison.yxx" + case 376: /* enum_body_trailing_comma: enum_body_trailing_comma name ',' */ +#line 2962 "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 7555 "built/tmp/cppBison.yxx.c" +#line 7635 "built/tmp/cppBison.yxx.c" break; - case 375: /* enum_body_trailing_comma: enum_body_trailing_comma name '=' const_expr ',' */ -#line 2956 "dtool/src/cppparser/cppBison.yxx" + case 377: /* enum_body_trailing_comma: enum_body_trailing_comma name '=' const_expr ',' */ +#line 2967 "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 7564 "built/tmp/cppBison.yxx.c" +#line 7644 "built/tmp/cppBison.yxx.c" break; - case 377: /* enum_body: enum_body_trailing_comma name */ -#line 2964 "dtool/src/cppparser/cppBison.yxx" + case 379: /* enum_body: enum_body_trailing_comma name */ +#line 2975 "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 7573 "built/tmp/cppBison.yxx.c" +#line 7653 "built/tmp/cppBison.yxx.c" break; - case 378: /* enum_body: enum_body_trailing_comma name '=' const_expr */ -#line 2969 "dtool/src/cppparser/cppBison.yxx" + case 380: /* enum_body: enum_body_trailing_comma name '=' const_expr */ +#line 2980 "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 7582 "built/tmp/cppBison.yxx.c" +#line 7662 "built/tmp/cppBison.yxx.c" break; - case 379: /* enum_keyword: KW_ENUM */ -#line 2977 "dtool/src/cppparser/cppBison.yxx" + case 381: /* enum_keyword: KW_ENUM */ +#line 2988 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } -#line 7590 "built/tmp/cppBison.yxx.c" +#line 7670 "built/tmp/cppBison.yxx.c" break; - case 380: /* enum_keyword: KW_ENUM KW_CLASS */ -#line 2981 "dtool/src/cppparser/cppBison.yxx" + case 382: /* enum_keyword: KW_ENUM KW_CLASS */ +#line 2992 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } -#line 7598 "built/tmp/cppBison.yxx.c" +#line 7678 "built/tmp/cppBison.yxx.c" break; - case 381: /* enum_keyword: KW_ENUM KW_STRUCT */ -#line 2985 "dtool/src/cppparser/cppBison.yxx" + case 383: /* enum_keyword: KW_ENUM KW_STRUCT */ +#line 2996 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; } -#line 7606 "built/tmp/cppBison.yxx.c" +#line 7686 "built/tmp/cppBison.yxx.c" break; - case 382: /* struct_keyword: KW_CLASS */ -#line 2992 "dtool/src/cppparser/cppBison.yxx" + case 384: /* struct_keyword: KW_CLASS */ +#line 3003 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_class; } -#line 7614 "built/tmp/cppBison.yxx.c" +#line 7694 "built/tmp/cppBison.yxx.c" break; - case 383: /* struct_keyword: KW_STRUCT */ -#line 2996 "dtool/src/cppparser/cppBison.yxx" + case 385: /* struct_keyword: KW_STRUCT */ +#line 3007 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_struct; } -#line 7622 "built/tmp/cppBison.yxx.c" +#line 7702 "built/tmp/cppBison.yxx.c" break; - case 384: /* struct_keyword: KW_UNION */ -#line 3000 "dtool/src/cppparser/cppBison.yxx" + case 386: /* struct_keyword: KW_UNION */ +#line 3011 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_union; } -#line 7630 "built/tmp/cppBison.yxx.c" +#line 7710 "built/tmp/cppBison.yxx.c" break; - case 385: /* $@18: %empty */ -#line 3007 "dtool/src/cppparser/cppBison.yxx" + case 387: /* $@18: %empty */ +#line 3018 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == nullptr) { @@ -7648,19 +7728,19 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 7652 "built/tmp/cppBison.yxx.c" +#line 7732 "built/tmp/cppBison.yxx.c" break; - case 386: /* namespace_declaration: KW_NAMESPACE name '{' $@18 cpp '}' */ -#line 3025 "dtool/src/cppparser/cppBison.yxx" + case 388: /* namespace_declaration: KW_NAMESPACE name '{' $@18 cpp '}' */ +#line 3036 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } -#line 7660 "built/tmp/cppBison.yxx.c" +#line 7740 "built/tmp/cppBison.yxx.c" break; - case 387: /* $@19: %empty */ -#line 3029 "dtool/src/cppparser/cppBison.yxx" + case 389: /* $@19: %empty */ +#line 3040 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == nullptr) { @@ -7679,151 +7759,161 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 7683 "built/tmp/cppBison.yxx.c" +#line 7763 "built/tmp/cppBison.yxx.c" break; - case 388: /* namespace_declaration: KW_INLINE KW_NAMESPACE name '{' $@19 cpp '}' */ -#line 3048 "dtool/src/cppparser/cppBison.yxx" + case 390: /* namespace_declaration: KW_INLINE KW_NAMESPACE name '{' $@19 cpp '}' */ +#line 3059 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } -#line 7691 "built/tmp/cppBison.yxx.c" +#line 7771 "built/tmp/cppBison.yxx.c" break; - case 391: /* using_declaration: KW_USING name ';' */ -#line 3057 "dtool/src/cppparser/cppBison.yxx" + case 393: /* using_declaration: KW_USING name ';' */ +#line 3068 "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 7701 "built/tmp/cppBison.yxx.c" +#line 7781 "built/tmp/cppBison.yxx.c" break; - case 392: /* using_declaration: KW_USING name '=' full_type ';' */ -#line 3063 "dtool/src/cppparser/cppBison.yxx" + case 394: /* using_declaration: KW_USING name '=' full_type ';' */ +#line 3074 "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 7712 "built/tmp/cppBison.yxx.c" +#line 7792 "built/tmp/cppBison.yxx.c" break; - case 393: /* using_declaration: KW_USING KW_NAMESPACE name ';' */ -#line 3070 "dtool/src/cppparser/cppBison.yxx" + case 395: /* using_declaration: KW_USING KW_NAMESPACE name ';' */ +#line 3081 "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 7722 "built/tmp/cppBison.yxx.c" +#line 7802 "built/tmp/cppBison.yxx.c" break; - case 397: /* simple_int_type: KW_BOOL */ -#line 3085 "dtool/src/cppparser/cppBison.yxx" + case 396: /* using_declaration: KW_USING KW_ENUM name ';' */ +#line 3087 "dtool/src/cppparser/cppBison.yxx" +{ + CPPUsing *using_decl = new CPPUsing((yyvsp[-1].u.identifier), false, (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 7812 "built/tmp/cppBison.yxx.c" + break; + + case 400: /* simple_int_type: KW_BOOL */ +#line 3102 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } -#line 7730 "built/tmp/cppBison.yxx.c" +#line 7820 "built/tmp/cppBison.yxx.c" break; - case 398: /* simple_int_type: KW_CHAR */ -#line 3089 "dtool/src/cppparser/cppBison.yxx" + case 401: /* simple_int_type: KW_CHAR */ +#line 3106 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } -#line 7738 "built/tmp/cppBison.yxx.c" +#line 7828 "built/tmp/cppBison.yxx.c" break; - case 399: /* simple_int_type: KW_WCHAR_T */ -#line 3093 "dtool/src/cppparser/cppBison.yxx" + case 402: /* simple_int_type: KW_WCHAR_T */ +#line 3110 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } -#line 7746 "built/tmp/cppBison.yxx.c" +#line 7836 "built/tmp/cppBison.yxx.c" break; - case 400: /* simple_int_type: KW_CHAR8_T */ -#line 3097 "dtool/src/cppparser/cppBison.yxx" + case 403: /* simple_int_type: KW_CHAR8_T */ +#line 3114 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char8_t); } -#line 7754 "built/tmp/cppBison.yxx.c" +#line 7844 "built/tmp/cppBison.yxx.c" break; - case 401: /* simple_int_type: KW_CHAR16_T */ -#line 3101 "dtool/src/cppparser/cppBison.yxx" + case 404: /* simple_int_type: KW_CHAR16_T */ +#line 3118 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } -#line 7762 "built/tmp/cppBison.yxx.c" +#line 7852 "built/tmp/cppBison.yxx.c" break; - case 402: /* simple_int_type: KW_CHAR32_T */ -#line 3105 "dtool/src/cppparser/cppBison.yxx" + case 405: /* simple_int_type: KW_CHAR32_T */ +#line 3122 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } -#line 7770 "built/tmp/cppBison.yxx.c" +#line 7860 "built/tmp/cppBison.yxx.c" break; - case 403: /* simple_int_type: KW_SHORT */ -#line 3109 "dtool/src/cppparser/cppBison.yxx" + case 406: /* simple_int_type: KW_SHORT */ +#line 3126 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } -#line 7779 "built/tmp/cppBison.yxx.c" +#line 7869 "built/tmp/cppBison.yxx.c" break; - case 404: /* simple_int_type: KW_LONG */ -#line 3114 "dtool/src/cppparser/cppBison.yxx" + case 407: /* simple_int_type: KW_LONG */ +#line 3131 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } -#line 7788 "built/tmp/cppBison.yxx.c" +#line 7878 "built/tmp/cppBison.yxx.c" break; - case 405: /* simple_int_type: KW_UNSIGNED */ -#line 3119 "dtool/src/cppparser/cppBison.yxx" + case 408: /* simple_int_type: KW_UNSIGNED */ +#line 3136 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } -#line 7797 "built/tmp/cppBison.yxx.c" +#line 7887 "built/tmp/cppBison.yxx.c" break; - case 406: /* simple_int_type: KW_SIGNED */ -#line 3124 "dtool/src/cppparser/cppBison.yxx" + case 409: /* simple_int_type: KW_SIGNED */ +#line 3141 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } -#line 7806 "built/tmp/cppBison.yxx.c" +#line 7896 "built/tmp/cppBison.yxx.c" break; - case 407: /* simple_int_type: KW_INT */ -#line 3129 "dtool/src/cppparser/cppBison.yxx" + case 410: /* simple_int_type: KW_INT */ +#line 3146 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } -#line 7814 "built/tmp/cppBison.yxx.c" +#line 7904 "built/tmp/cppBison.yxx.c" break; - case 408: /* simple_int_type: KW_SHORT simple_int_type */ -#line 3133 "dtool/src/cppparser/cppBison.yxx" + case 411: /* simple_int_type: KW_SHORT simple_int_type */ +#line 3150 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; } -#line 7823 "built/tmp/cppBison.yxx.c" +#line 7913 "built/tmp/cppBison.yxx.c" break; - case 409: /* simple_int_type: KW_LONG simple_int_type */ -#line 3138 "dtool/src/cppparser/cppBison.yxx" + case 412: /* simple_int_type: KW_LONG simple_int_type */ +#line 3155 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { @@ -7832,501 +7922,501 @@ yyreduce: (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } -#line 7836 "built/tmp/cppBison.yxx.c" +#line 7926 "built/tmp/cppBison.yxx.c" break; - case 410: /* simple_int_type: KW_UNSIGNED simple_int_type */ -#line 3147 "dtool/src/cppparser/cppBison.yxx" + case 413: /* simple_int_type: KW_UNSIGNED simple_int_type */ +#line 3164 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } -#line 7845 "built/tmp/cppBison.yxx.c" +#line 7935 "built/tmp/cppBison.yxx.c" break; - case 411: /* simple_int_type: KW_SIGNED simple_int_type */ -#line 3152 "dtool/src/cppparser/cppBison.yxx" + case 414: /* simple_int_type: KW_SIGNED simple_int_type */ +#line 3169 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } -#line 7854 "built/tmp/cppBison.yxx.c" +#line 7944 "built/tmp/cppBison.yxx.c" break; - case 412: /* simple_float_type: KW_FLOAT */ -#line 3160 "dtool/src/cppparser/cppBison.yxx" + case 415: /* simple_float_type: KW_FLOAT */ +#line 3177 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } -#line 7862 "built/tmp/cppBison.yxx.c" +#line 7952 "built/tmp/cppBison.yxx.c" break; - case 413: /* simple_float_type: KW_DOUBLE */ -#line 3164 "dtool/src/cppparser/cppBison.yxx" + case 416: /* simple_float_type: KW_DOUBLE */ +#line 3181 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } -#line 7870 "built/tmp/cppBison.yxx.c" +#line 7960 "built/tmp/cppBison.yxx.c" break; - case 414: /* simple_float_type: KW_LONG KW_DOUBLE */ -#line 3168 "dtool/src/cppparser/cppBison.yxx" + case 417: /* simple_float_type: KW_LONG KW_DOUBLE */ +#line 3185 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } -#line 7879 "built/tmp/cppBison.yxx.c" +#line 7969 "built/tmp/cppBison.yxx.c" break; - case 415: /* simple_void_type: KW_VOID */ -#line 3176 "dtool/src/cppparser/cppBison.yxx" + case 418: /* simple_void_type: KW_VOID */ +#line 3193 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } -#line 7887 "built/tmp/cppBison.yxx.c" +#line 7977 "built/tmp/cppBison.yxx.c" break; - case 416: /* $@20: %empty */ -#line 3185 "dtool/src/cppparser/cppBison.yxx" + case 419: /* $@20: %empty */ +#line 3202 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = false; } -#line 7895 "built/tmp/cppBison.yxx.c" +#line 7985 "built/tmp/cppBison.yxx.c" break; - case 417: /* code: $@20 code_block */ -#line 3189 "dtool/src/cppparser/cppBison.yxx" + case 420: /* code: $@20 code_block */ +#line 3206 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = true; } -#line 7903 "built/tmp/cppBison.yxx.c" +#line 7993 "built/tmp/cppBison.yxx.c" break; - case 529: /* element: KW_WHILE */ -#line 3234 "dtool/src/cppparser/cppBison.yxx" + case 535: /* element: KW_WHILE */ +#line 3251 "dtool/src/cppparser/cppBison.yxx" { } -#line 7910 "built/tmp/cppBison.yxx.c" +#line 8000 "built/tmp/cppBison.yxx.c" break; - case 553: /* optional_const_expr: empty */ -#line 3243 "dtool/src/cppparser/cppBison.yxx" + case 559: /* optional_const_expr: empty */ +#line 3260 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = nullptr; } -#line 7918 "built/tmp/cppBison.yxx.c" +#line 8008 "built/tmp/cppBison.yxx.c" break; - case 554: /* optional_const_expr: const_expr */ -#line 3247 "dtool/src/cppparser/cppBison.yxx" + case 560: /* optional_const_expr: const_expr */ +#line 3264 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7926 "built/tmp/cppBison.yxx.c" +#line 8016 "built/tmp/cppBison.yxx.c" break; - case 555: /* optional_const_expr_comma: empty */ -#line 3254 "dtool/src/cppparser/cppBison.yxx" + case 561: /* optional_const_expr_comma: empty */ +#line 3271 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = nullptr; } -#line 7934 "built/tmp/cppBison.yxx.c" +#line 8024 "built/tmp/cppBison.yxx.c" break; - case 556: /* optional_const_expr_comma: const_expr_comma */ -#line 3258 "dtool/src/cppparser/cppBison.yxx" + case 562: /* optional_const_expr_comma: const_expr_comma */ +#line 3275 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7942 "built/tmp/cppBison.yxx.c" +#line 8032 "built/tmp/cppBison.yxx.c" break; - case 557: /* const_expr_comma: const_expr */ -#line 3265 "dtool/src/cppparser/cppBison.yxx" + case 563: /* const_expr_comma: const_expr */ +#line 3282 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7950 "built/tmp/cppBison.yxx.c" +#line 8040 "built/tmp/cppBison.yxx.c" break; - case 558: /* const_expr_comma: const_expr_comma ',' const_expr */ -#line 3269 "dtool/src/cppparser/cppBison.yxx" + case 564: /* const_expr_comma: const_expr_comma ',' const_expr */ +#line 3286 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7958 "built/tmp/cppBison.yxx.c" +#line 8048 "built/tmp/cppBison.yxx.c" break; - case 559: /* no_angle_bracket_const_expr: const_operand */ -#line 3276 "dtool/src/cppparser/cppBison.yxx" + case 565: /* no_angle_bracket_const_expr: const_operand */ +#line 3293 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7966 "built/tmp/cppBison.yxx.c" +#line 8056 "built/tmp/cppBison.yxx.c" break; - case 560: /* no_angle_bracket_const_expr: '(' full_type ')' no_angle_bracket_const_expr */ -#line 3280 "dtool/src/cppparser/cppBison.yxx" + case 566: /* no_angle_bracket_const_expr: '(' full_type ')' no_angle_bracket_const_expr */ +#line 3297 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 7974 "built/tmp/cppBison.yxx.c" +#line 8064 "built/tmp/cppBison.yxx.c" break; - case 561: /* no_angle_bracket_const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3284 "dtool/src/cppparser/cppBison.yxx" + case 567: /* no_angle_bracket_const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3301 "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 7982 "built/tmp/cppBison.yxx.c" +#line 8072 "built/tmp/cppBison.yxx.c" break; - case 562: /* no_angle_bracket_const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3288 "dtool/src/cppparser/cppBison.yxx" + case 568: /* no_angle_bracket_const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3305 "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 7990 "built/tmp/cppBison.yxx.c" +#line 8080 "built/tmp/cppBison.yxx.c" break; - case 563: /* no_angle_bracket_const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3292 "dtool/src/cppparser/cppBison.yxx" + case 569: /* no_angle_bracket_const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3309 "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 7998 "built/tmp/cppBison.yxx.c" +#line 8088 "built/tmp/cppBison.yxx.c" break; - case 564: /* no_angle_bracket_const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3296 "dtool/src/cppparser/cppBison.yxx" + case 570: /* no_angle_bracket_const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3313 "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 8006 "built/tmp/cppBison.yxx.c" +#line 8096 "built/tmp/cppBison.yxx.c" break; - case 565: /* no_angle_bracket_const_expr: KW_SIZEOF '(' full_type ')' */ -#line 3300 "dtool/src/cppparser/cppBison.yxx" + case 571: /* no_angle_bracket_const_expr: KW_SIZEOF '(' full_type ')' */ +#line 3317 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 8014 "built/tmp/cppBison.yxx.c" +#line 8104 "built/tmp/cppBison.yxx.c" break; - case 566: /* no_angle_bracket_const_expr: KW_SIZEOF no_angle_bracket_const_expr */ -#line 3304 "dtool/src/cppparser/cppBison.yxx" + case 572: /* no_angle_bracket_const_expr: KW_SIZEOF no_angle_bracket_const_expr */ +#line 3321 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 8022 "built/tmp/cppBison.yxx.c" +#line 8112 "built/tmp/cppBison.yxx.c" break; - case 567: /* no_angle_bracket_const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ -#line 3308 "dtool/src/cppparser/cppBison.yxx" + case 573: /* no_angle_bracket_const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ +#line 3325 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 8030 "built/tmp/cppBison.yxx.c" +#line 8120 "built/tmp/cppBison.yxx.c" break; - case 568: /* no_angle_bracket_const_expr: KW_ALIGNOF '(' full_type ')' */ -#line 3312 "dtool/src/cppparser/cppBison.yxx" + case 574: /* no_angle_bracket_const_expr: KW_ALIGNOF '(' full_type ')' */ +#line 3329 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 8038 "built/tmp/cppBison.yxx.c" +#line 8128 "built/tmp/cppBison.yxx.c" break; - case 569: /* no_angle_bracket_const_expr: '!' no_angle_bracket_const_expr */ -#line 3316 "dtool/src/cppparser/cppBison.yxx" + case 575: /* no_angle_bracket_const_expr: '!' no_angle_bracket_const_expr */ +#line 3333 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 8046 "built/tmp/cppBison.yxx.c" +#line 8136 "built/tmp/cppBison.yxx.c" break; - case 570: /* no_angle_bracket_const_expr: '~' no_angle_bracket_const_expr */ -#line 3320 "dtool/src/cppparser/cppBison.yxx" + case 576: /* no_angle_bracket_const_expr: '~' no_angle_bracket_const_expr */ +#line 3337 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 8054 "built/tmp/cppBison.yxx.c" +#line 8144 "built/tmp/cppBison.yxx.c" break; - case 571: /* no_angle_bracket_const_expr: '-' no_angle_bracket_const_expr */ -#line 3324 "dtool/src/cppparser/cppBison.yxx" + case 577: /* no_angle_bracket_const_expr: '-' no_angle_bracket_const_expr */ +#line 3341 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 8062 "built/tmp/cppBison.yxx.c" +#line 8152 "built/tmp/cppBison.yxx.c" break; - case 572: /* no_angle_bracket_const_expr: '+' no_angle_bracket_const_expr */ -#line 3328 "dtool/src/cppparser/cppBison.yxx" + case 578: /* no_angle_bracket_const_expr: '+' no_angle_bracket_const_expr */ +#line 3345 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 8070 "built/tmp/cppBison.yxx.c" +#line 8160 "built/tmp/cppBison.yxx.c" break; - case 573: /* no_angle_bracket_const_expr: '*' no_angle_bracket_const_expr */ -#line 3332 "dtool/src/cppparser/cppBison.yxx" + case 579: /* no_angle_bracket_const_expr: '*' no_angle_bracket_const_expr */ +#line 3349 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 8078 "built/tmp/cppBison.yxx.c" +#line 8168 "built/tmp/cppBison.yxx.c" break; - case 574: /* no_angle_bracket_const_expr: '&' no_angle_bracket_const_expr */ -#line 3336 "dtool/src/cppparser/cppBison.yxx" + case 580: /* no_angle_bracket_const_expr: '&' no_angle_bracket_const_expr */ +#line 3353 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 8086 "built/tmp/cppBison.yxx.c" +#line 8176 "built/tmp/cppBison.yxx.c" break; - case 575: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '*' no_angle_bracket_const_expr */ -#line 3340 "dtool/src/cppparser/cppBison.yxx" + case 581: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '*' no_angle_bracket_const_expr */ +#line 3357 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8094 "built/tmp/cppBison.yxx.c" +#line 8184 "built/tmp/cppBison.yxx.c" break; - case 576: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '/' no_angle_bracket_const_expr */ -#line 3344 "dtool/src/cppparser/cppBison.yxx" + case 582: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '/' no_angle_bracket_const_expr */ +#line 3361 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8102 "built/tmp/cppBison.yxx.c" +#line 8192 "built/tmp/cppBison.yxx.c" break; - case 577: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '%' no_angle_bracket_const_expr */ -#line 3348 "dtool/src/cppparser/cppBison.yxx" + case 583: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '%' no_angle_bracket_const_expr */ +#line 3365 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8110 "built/tmp/cppBison.yxx.c" +#line 8200 "built/tmp/cppBison.yxx.c" break; - case 578: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '+' no_angle_bracket_const_expr */ -#line 3352 "dtool/src/cppparser/cppBison.yxx" + case 584: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '+' no_angle_bracket_const_expr */ +#line 3369 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8118 "built/tmp/cppBison.yxx.c" +#line 8208 "built/tmp/cppBison.yxx.c" break; - case 579: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '-' no_angle_bracket_const_expr */ -#line 3356 "dtool/src/cppparser/cppBison.yxx" + case 585: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '-' no_angle_bracket_const_expr */ +#line 3373 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8126 "built/tmp/cppBison.yxx.c" +#line 8216 "built/tmp/cppBison.yxx.c" break; - case 580: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '|' no_angle_bracket_const_expr */ -#line 3360 "dtool/src/cppparser/cppBison.yxx" + case 586: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '|' no_angle_bracket_const_expr */ +#line 3377 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8134 "built/tmp/cppBison.yxx.c" +#line 8224 "built/tmp/cppBison.yxx.c" break; - case 581: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '^' no_angle_bracket_const_expr */ -#line 3364 "dtool/src/cppparser/cppBison.yxx" + case 587: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '^' no_angle_bracket_const_expr */ +#line 3381 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8142 "built/tmp/cppBison.yxx.c" +#line 8232 "built/tmp/cppBison.yxx.c" break; - case 582: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '&' no_angle_bracket_const_expr */ -#line 3368 "dtool/src/cppparser/cppBison.yxx" + case 588: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '&' no_angle_bracket_const_expr */ +#line 3385 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8150 "built/tmp/cppBison.yxx.c" +#line 8240 "built/tmp/cppBison.yxx.c" break; - 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" + case 589: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr OROR no_angle_bracket_const_expr */ +#line 3389 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8158 "built/tmp/cppBison.yxx.c" +#line 8248 "built/tmp/cppBison.yxx.c" break; - 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" + case 590: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr ANDAND no_angle_bracket_const_expr */ +#line 3393 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8166 "built/tmp/cppBison.yxx.c" +#line 8256 "built/tmp/cppBison.yxx.c" break; - 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" + case 591: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr EQCOMPARE no_angle_bracket_const_expr */ +#line 3397 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8174 "built/tmp/cppBison.yxx.c" +#line 8264 "built/tmp/cppBison.yxx.c" break; - 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" + case 592: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr NECOMPARE no_angle_bracket_const_expr */ +#line 3401 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8182 "built/tmp/cppBison.yxx.c" +#line 8272 "built/tmp/cppBison.yxx.c" break; - 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" + case 593: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr LECOMPARE no_angle_bracket_const_expr */ +#line 3405 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8190 "built/tmp/cppBison.yxx.c" +#line 8280 "built/tmp/cppBison.yxx.c" break; - 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" + case 594: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr GECOMPARE no_angle_bracket_const_expr */ +#line 3409 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8198 "built/tmp/cppBison.yxx.c" +#line 8288 "built/tmp/cppBison.yxx.c" break; - 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" + case 595: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr SPACESHIP no_angle_bracket_const_expr */ +#line 3413 "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" +#line 8296 "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" + case 596: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr LSHIFT no_angle_bracket_const_expr */ +#line 3417 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8214 "built/tmp/cppBison.yxx.c" +#line 8304 "built/tmp/cppBison.yxx.c" break; - 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" + case 597: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr RSHIFT no_angle_bracket_const_expr */ +#line 3421 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8222 "built/tmp/cppBison.yxx.c" +#line 8312 "built/tmp/cppBison.yxx.c" break; - 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" + case 598: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '?' no_angle_bracket_const_expr ':' no_angle_bracket_const_expr */ +#line 3425 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8230 "built/tmp/cppBison.yxx.c" +#line 8320 "built/tmp/cppBison.yxx.c" break; - case 593: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '[' const_expr ']' */ -#line 3412 "dtool/src/cppparser/cppBison.yxx" + case 599: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '[' const_expr ']' */ +#line 3429 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8238 "built/tmp/cppBison.yxx.c" +#line 8328 "built/tmp/cppBison.yxx.c" break; - case 594: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '(' const_expr_comma ')' */ -#line 3416 "dtool/src/cppparser/cppBison.yxx" + case 600: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '(' const_expr_comma ')' */ +#line 3433 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8246 "built/tmp/cppBison.yxx.c" +#line 8336 "built/tmp/cppBison.yxx.c" break; - case 595: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '(' ')' */ -#line 3420 "dtool/src/cppparser/cppBison.yxx" + case 601: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '(' ')' */ +#line 3437 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 8254 "built/tmp/cppBison.yxx.c" +#line 8344 "built/tmp/cppBison.yxx.c" break; - case 596: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '.' name */ -#line 3424 "dtool/src/cppparser/cppBison.yxx" + case 602: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr '.' name */ +#line 3441 "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 8262 "built/tmp/cppBison.yxx.c" +#line 8352 "built/tmp/cppBison.yxx.c" break; - 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" + case 603: /* no_angle_bracket_const_expr: no_angle_bracket_const_expr POINTSAT no_angle_bracket_const_expr */ +#line 3445 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8270 "built/tmp/cppBison.yxx.c" +#line 8360 "built/tmp/cppBison.yxx.c" break; - case 598: /* no_angle_bracket_const_expr: '(' const_expr_comma ')' */ -#line 3432 "dtool/src/cppparser/cppBison.yxx" + case 604: /* no_angle_bracket_const_expr: '(' const_expr_comma ')' */ +#line 3449 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8278 "built/tmp/cppBison.yxx.c" +#line 8368 "built/tmp/cppBison.yxx.c" break; - case 599: /* const_expr: const_operand */ -#line 3440 "dtool/src/cppparser/cppBison.yxx" + case 605: /* const_expr: const_operand */ +#line 3457 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8286 "built/tmp/cppBison.yxx.c" +#line 8376 "built/tmp/cppBison.yxx.c" break; - case 600: /* const_expr: '(' full_type ')' const_expr */ -#line 3444 "dtool/src/cppparser/cppBison.yxx" + case 606: /* const_expr: '(' full_type ')' const_expr */ +#line 3461 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 8294 "built/tmp/cppBison.yxx.c" +#line 8384 "built/tmp/cppBison.yxx.c" break; - case 601: /* const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3448 "dtool/src/cppparser/cppBison.yxx" + case 607: /* const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3465 "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 8302 "built/tmp/cppBison.yxx.c" +#line 8392 "built/tmp/cppBison.yxx.c" break; - case 602: /* const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3452 "dtool/src/cppparser/cppBison.yxx" + case 608: /* const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3469 "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 8310 "built/tmp/cppBison.yxx.c" +#line 8400 "built/tmp/cppBison.yxx.c" break; - case 603: /* const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3456 "dtool/src/cppparser/cppBison.yxx" + case 609: /* const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3473 "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 8318 "built/tmp/cppBison.yxx.c" +#line 8408 "built/tmp/cppBison.yxx.c" break; - case 604: /* const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3460 "dtool/src/cppparser/cppBison.yxx" + case 610: /* const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3477 "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 8326 "built/tmp/cppBison.yxx.c" +#line 8416 "built/tmp/cppBison.yxx.c" break; - case 605: /* const_expr: TYPENAME_IDENTIFIER '(' optional_const_expr_comma ')' */ -#line 3464 "dtool/src/cppparser/cppBison.yxx" + case 611: /* const_expr: TYPENAME_IDENTIFIER '(' optional_const_expr_comma ')' */ +#line 3481 "dtool/src/cppparser/cppBison.yxx" { // A constructor call. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -8336,11 +8426,11 @@ yyreduce: assert(type != nullptr); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8340 "built/tmp/cppBison.yxx.c" +#line 8430 "built/tmp/cppBison.yxx.c" break; - case 606: /* const_expr: TYPENAME_IDENTIFIER '{' optional_const_expr_comma '}' */ -#line 3474 "dtool/src/cppparser/cppBison.yxx" + case 612: /* const_expr: TYPENAME_IDENTIFIER '{' optional_const_expr_comma '}' */ +#line 3491 "dtool/src/cppparser/cppBison.yxx" { // Aggregate initialization. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -8350,193 +8440,193 @@ yyreduce: assert(type != nullptr); (yyval.u.expr) = new CPPExpression(CPPExpression::aggregate_init_op(type, (yyvsp[-1].u.expr))); } -#line 8354 "built/tmp/cppBison.yxx.c" +#line 8444 "built/tmp/cppBison.yxx.c" break; - case 607: /* const_expr: KW_INT '(' optional_const_expr_comma ')' */ -#line 3484 "dtool/src/cppparser/cppBison.yxx" + case 613: /* const_expr: KW_INT '(' optional_const_expr_comma ')' */ +#line 3501 "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 8364 "built/tmp/cppBison.yxx.c" +#line 8454 "built/tmp/cppBison.yxx.c" break; - case 608: /* const_expr: KW_CHAR '(' optional_const_expr_comma ')' */ -#line 3490 "dtool/src/cppparser/cppBison.yxx" + case 614: /* const_expr: KW_CHAR '(' optional_const_expr_comma ')' */ +#line 3507 "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 8374 "built/tmp/cppBison.yxx.c" +#line 8464 "built/tmp/cppBison.yxx.c" break; - case 609: /* const_expr: KW_WCHAR_T '(' optional_const_expr_comma ')' */ -#line 3496 "dtool/src/cppparser/cppBison.yxx" + case 615: /* const_expr: KW_WCHAR_T '(' optional_const_expr_comma ')' */ +#line 3513 "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 8384 "built/tmp/cppBison.yxx.c" +#line 8474 "built/tmp/cppBison.yxx.c" break; - case 610: /* const_expr: KW_CHAR8_T '(' optional_const_expr_comma ')' */ -#line 3502 "dtool/src/cppparser/cppBison.yxx" + case 616: /* const_expr: KW_CHAR8_T '(' optional_const_expr_comma ')' */ +#line 3519 "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" +#line 8484 "built/tmp/cppBison.yxx.c" break; - case 611: /* const_expr: KW_CHAR16_T '(' optional_const_expr_comma ')' */ -#line 3508 "dtool/src/cppparser/cppBison.yxx" + case 617: /* const_expr: KW_CHAR16_T '(' optional_const_expr_comma ')' */ +#line 3525 "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 8404 "built/tmp/cppBison.yxx.c" +#line 8494 "built/tmp/cppBison.yxx.c" break; - case 612: /* const_expr: KW_CHAR32_T '(' optional_const_expr_comma ')' */ -#line 3514 "dtool/src/cppparser/cppBison.yxx" + case 618: /* const_expr: KW_CHAR32_T '(' optional_const_expr_comma ')' */ +#line 3531 "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 8414 "built/tmp/cppBison.yxx.c" +#line 8504 "built/tmp/cppBison.yxx.c" break; - case 613: /* const_expr: KW_BOOL '(' optional_const_expr_comma ')' */ -#line 3520 "dtool/src/cppparser/cppBison.yxx" + case 619: /* const_expr: KW_BOOL '(' optional_const_expr_comma ')' */ +#line 3537 "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 8424 "built/tmp/cppBison.yxx.c" +#line 8514 "built/tmp/cppBison.yxx.c" break; - case 614: /* const_expr: KW_SHORT '(' optional_const_expr_comma ')' */ -#line 3526 "dtool/src/cppparser/cppBison.yxx" + case 620: /* const_expr: KW_SHORT '(' optional_const_expr_comma ')' */ +#line 3543 "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 8435 "built/tmp/cppBison.yxx.c" +#line 8525 "built/tmp/cppBison.yxx.c" break; - case 615: /* const_expr: KW_LONG '(' optional_const_expr_comma ')' */ -#line 3533 "dtool/src/cppparser/cppBison.yxx" + case 621: /* const_expr: KW_LONG '(' optional_const_expr_comma ')' */ +#line 3550 "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 8446 "built/tmp/cppBison.yxx.c" +#line 8536 "built/tmp/cppBison.yxx.c" break; - case 616: /* const_expr: KW_UNSIGNED '(' optional_const_expr_comma ')' */ -#line 3540 "dtool/src/cppparser/cppBison.yxx" + case 622: /* const_expr: KW_UNSIGNED '(' optional_const_expr_comma ')' */ +#line 3557 "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 8457 "built/tmp/cppBison.yxx.c" +#line 8547 "built/tmp/cppBison.yxx.c" break; - case 617: /* const_expr: KW_SIGNED '(' optional_const_expr_comma ')' */ -#line 3547 "dtool/src/cppparser/cppBison.yxx" + case 623: /* const_expr: KW_SIGNED '(' optional_const_expr_comma ')' */ +#line 3564 "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 8468 "built/tmp/cppBison.yxx.c" +#line 8558 "built/tmp/cppBison.yxx.c" break; - case 618: /* const_expr: KW_FLOAT '(' optional_const_expr_comma ')' */ -#line 3554 "dtool/src/cppparser/cppBison.yxx" + case 624: /* const_expr: KW_FLOAT '(' optional_const_expr_comma ')' */ +#line 3571 "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 8478 "built/tmp/cppBison.yxx.c" +#line 8568 "built/tmp/cppBison.yxx.c" break; - case 619: /* const_expr: KW_DOUBLE '(' optional_const_expr_comma ')' */ -#line 3560 "dtool/src/cppparser/cppBison.yxx" + case 625: /* const_expr: KW_DOUBLE '(' optional_const_expr_comma ')' */ +#line 3577 "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 8488 "built/tmp/cppBison.yxx.c" +#line 8578 "built/tmp/cppBison.yxx.c" break; - case 620: /* const_expr: KW_SIZEOF '(' full_type ')' */ -#line 3566 "dtool/src/cppparser/cppBison.yxx" + case 626: /* const_expr: KW_SIZEOF '(' full_type ')' */ +#line 3583 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 8496 "built/tmp/cppBison.yxx.c" +#line 8586 "built/tmp/cppBison.yxx.c" break; - case 621: /* const_expr: KW_SIZEOF const_expr */ -#line 3570 "dtool/src/cppparser/cppBison.yxx" + case 627: /* const_expr: KW_SIZEOF const_expr */ +#line 3587 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 8504 "built/tmp/cppBison.yxx.c" +#line 8594 "built/tmp/cppBison.yxx.c" break; - case 622: /* const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ -#line 3574 "dtool/src/cppparser/cppBison.yxx" + case 628: /* const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ +#line 3591 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 8512 "built/tmp/cppBison.yxx.c" +#line 8602 "built/tmp/cppBison.yxx.c" break; - case 623: /* const_expr: KW_ALIGNOF '(' full_type ')' */ -#line 3578 "dtool/src/cppparser/cppBison.yxx" + case 629: /* const_expr: KW_ALIGNOF '(' full_type ')' */ +#line 3595 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 8520 "built/tmp/cppBison.yxx.c" +#line 8610 "built/tmp/cppBison.yxx.c" break; - case 624: /* const_expr: KW_NEW predefined_type */ -#line 3582 "dtool/src/cppparser/cppBison.yxx" + case 630: /* const_expr: KW_NEW predefined_type */ +#line 3599 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } -#line 8528 "built/tmp/cppBison.yxx.c" +#line 8618 "built/tmp/cppBison.yxx.c" break; - case 625: /* const_expr: KW_NEW predefined_type '(' optional_const_expr_comma ')' */ -#line 3586 "dtool/src/cppparser/cppBison.yxx" + case 631: /* const_expr: KW_NEW predefined_type '(' optional_const_expr_comma ')' */ +#line 3603 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } -#line 8536 "built/tmp/cppBison.yxx.c" +#line 8626 "built/tmp/cppBison.yxx.c" break; - case 626: /* const_expr: KW_TYPEID '(' full_type ')' */ -#line 3590 "dtool/src/cppparser/cppBison.yxx" + case 632: /* const_expr: KW_TYPEID '(' full_type ')' */ +#line 3607 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -8547,11 +8637,11 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 8551 "built/tmp/cppBison.yxx.c" +#line 8641 "built/tmp/cppBison.yxx.c" break; - case 627: /* const_expr: KW_TYPEID '(' const_expr ')' */ -#line 3601 "dtool/src/cppparser/cppBison.yxx" + case 633: /* const_expr: KW_TYPEID '(' const_expr ')' */ +#line 3618 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -8562,612 +8652,620 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 8566 "built/tmp/cppBison.yxx.c" +#line 8656 "built/tmp/cppBison.yxx.c" break; - case 628: /* const_expr: '!' const_expr */ -#line 3612 "dtool/src/cppparser/cppBison.yxx" + case 634: /* const_expr: '!' const_expr */ +#line 3629 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 8574 "built/tmp/cppBison.yxx.c" +#line 8664 "built/tmp/cppBison.yxx.c" break; - case 629: /* const_expr: '~' const_expr */ -#line 3616 "dtool/src/cppparser/cppBison.yxx" + case 635: /* const_expr: '~' const_expr */ +#line 3633 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 8582 "built/tmp/cppBison.yxx.c" +#line 8672 "built/tmp/cppBison.yxx.c" break; - case 630: /* const_expr: '-' const_expr */ -#line 3620 "dtool/src/cppparser/cppBison.yxx" + case 636: /* const_expr: '-' const_expr */ +#line 3637 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 8590 "built/tmp/cppBison.yxx.c" +#line 8680 "built/tmp/cppBison.yxx.c" break; - case 631: /* const_expr: '+' const_expr */ -#line 3624 "dtool/src/cppparser/cppBison.yxx" + case 637: /* const_expr: '+' const_expr */ +#line 3641 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 8598 "built/tmp/cppBison.yxx.c" +#line 8688 "built/tmp/cppBison.yxx.c" break; - case 632: /* const_expr: '*' const_expr */ -#line 3628 "dtool/src/cppparser/cppBison.yxx" + case 638: /* const_expr: '*' const_expr */ +#line 3645 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 8606 "built/tmp/cppBison.yxx.c" +#line 8696 "built/tmp/cppBison.yxx.c" break; - case 633: /* const_expr: '&' const_expr */ -#line 3632 "dtool/src/cppparser/cppBison.yxx" + case 639: /* const_expr: '&' const_expr */ +#line 3649 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 8614 "built/tmp/cppBison.yxx.c" +#line 8704 "built/tmp/cppBison.yxx.c" break; - case 634: /* const_expr: const_expr '*' const_expr */ -#line 3636 "dtool/src/cppparser/cppBison.yxx" + case 640: /* const_expr: const_expr '*' const_expr */ +#line 3653 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8622 "built/tmp/cppBison.yxx.c" +#line 8712 "built/tmp/cppBison.yxx.c" break; - case 635: /* const_expr: const_expr '/' const_expr */ -#line 3640 "dtool/src/cppparser/cppBison.yxx" + case 641: /* const_expr: const_expr '/' const_expr */ +#line 3657 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8630 "built/tmp/cppBison.yxx.c" +#line 8720 "built/tmp/cppBison.yxx.c" break; - case 636: /* const_expr: const_expr '%' const_expr */ -#line 3644 "dtool/src/cppparser/cppBison.yxx" + case 642: /* const_expr: const_expr '%' const_expr */ +#line 3661 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8638 "built/tmp/cppBison.yxx.c" +#line 8728 "built/tmp/cppBison.yxx.c" break; - case 637: /* const_expr: const_expr '+' const_expr */ -#line 3648 "dtool/src/cppparser/cppBison.yxx" + case 643: /* const_expr: const_expr '+' const_expr */ +#line 3665 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8646 "built/tmp/cppBison.yxx.c" +#line 8736 "built/tmp/cppBison.yxx.c" break; - case 638: /* const_expr: const_expr '-' const_expr */ -#line 3652 "dtool/src/cppparser/cppBison.yxx" + case 644: /* const_expr: const_expr '-' const_expr */ +#line 3669 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8654 "built/tmp/cppBison.yxx.c" +#line 8744 "built/tmp/cppBison.yxx.c" break; - case 639: /* const_expr: const_expr '|' const_expr */ -#line 3656 "dtool/src/cppparser/cppBison.yxx" + case 645: /* const_expr: const_expr '|' const_expr */ +#line 3673 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8662 "built/tmp/cppBison.yxx.c" +#line 8752 "built/tmp/cppBison.yxx.c" break; - case 640: /* const_expr: const_expr '^' const_expr */ -#line 3660 "dtool/src/cppparser/cppBison.yxx" + case 646: /* const_expr: const_expr '^' const_expr */ +#line 3677 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8670 "built/tmp/cppBison.yxx.c" +#line 8760 "built/tmp/cppBison.yxx.c" break; - case 641: /* const_expr: const_expr '&' const_expr */ -#line 3664 "dtool/src/cppparser/cppBison.yxx" + case 647: /* const_expr: const_expr '&' const_expr */ +#line 3681 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8678 "built/tmp/cppBison.yxx.c" +#line 8768 "built/tmp/cppBison.yxx.c" break; - case 642: /* const_expr: const_expr OROR const_expr */ -#line 3668 "dtool/src/cppparser/cppBison.yxx" + case 648: /* const_expr: const_expr OROR const_expr */ +#line 3685 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8686 "built/tmp/cppBison.yxx.c" +#line 8776 "built/tmp/cppBison.yxx.c" break; - case 643: /* const_expr: const_expr ANDAND const_expr */ -#line 3672 "dtool/src/cppparser/cppBison.yxx" + case 649: /* const_expr: const_expr ANDAND const_expr */ +#line 3689 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8694 "built/tmp/cppBison.yxx.c" +#line 8784 "built/tmp/cppBison.yxx.c" break; - case 644: /* const_expr: const_expr EQCOMPARE const_expr */ -#line 3676 "dtool/src/cppparser/cppBison.yxx" + case 650: /* const_expr: const_expr EQCOMPARE const_expr */ +#line 3693 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8702 "built/tmp/cppBison.yxx.c" +#line 8792 "built/tmp/cppBison.yxx.c" break; - case 645: /* const_expr: const_expr NECOMPARE const_expr */ -#line 3680 "dtool/src/cppparser/cppBison.yxx" + case 651: /* const_expr: const_expr NECOMPARE const_expr */ +#line 3697 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8710 "built/tmp/cppBison.yxx.c" +#line 8800 "built/tmp/cppBison.yxx.c" break; - case 646: /* const_expr: const_expr LECOMPARE const_expr */ -#line 3684 "dtool/src/cppparser/cppBison.yxx" + case 652: /* const_expr: const_expr LECOMPARE const_expr */ +#line 3701 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8718 "built/tmp/cppBison.yxx.c" +#line 8808 "built/tmp/cppBison.yxx.c" break; - case 647: /* const_expr: const_expr GECOMPARE const_expr */ -#line 3688 "dtool/src/cppparser/cppBison.yxx" + case 653: /* const_expr: const_expr GECOMPARE const_expr */ +#line 3705 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8726 "built/tmp/cppBison.yxx.c" +#line 8816 "built/tmp/cppBison.yxx.c" break; - case 648: /* const_expr: const_expr SPACESHIP const_expr */ -#line 3692 "dtool/src/cppparser/cppBison.yxx" + case 654: /* const_expr: const_expr SPACESHIP const_expr */ +#line 3709 "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" +#line 8824 "built/tmp/cppBison.yxx.c" break; - case 649: /* const_expr: const_expr '<' const_expr */ -#line 3696 "dtool/src/cppparser/cppBison.yxx" + case 655: /* const_expr: const_expr '<' const_expr */ +#line 3713 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8742 "built/tmp/cppBison.yxx.c" +#line 8832 "built/tmp/cppBison.yxx.c" break; - case 650: /* const_expr: const_expr '>' const_expr */ -#line 3700 "dtool/src/cppparser/cppBison.yxx" + case 656: /* const_expr: const_expr '>' const_expr */ +#line 3717 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8750 "built/tmp/cppBison.yxx.c" +#line 8840 "built/tmp/cppBison.yxx.c" break; - case 651: /* const_expr: const_expr LSHIFT const_expr */ -#line 3704 "dtool/src/cppparser/cppBison.yxx" + case 657: /* const_expr: const_expr LSHIFT const_expr */ +#line 3721 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8758 "built/tmp/cppBison.yxx.c" +#line 8848 "built/tmp/cppBison.yxx.c" break; - case 652: /* const_expr: const_expr RSHIFT const_expr */ -#line 3708 "dtool/src/cppparser/cppBison.yxx" + case 658: /* const_expr: const_expr RSHIFT const_expr */ +#line 3725 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8766 "built/tmp/cppBison.yxx.c" +#line 8856 "built/tmp/cppBison.yxx.c" break; - case 653: /* const_expr: const_expr '?' const_expr ':' const_expr */ -#line 3712 "dtool/src/cppparser/cppBison.yxx" + case 659: /* const_expr: const_expr '?' const_expr ':' const_expr */ +#line 3729 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8774 "built/tmp/cppBison.yxx.c" +#line 8864 "built/tmp/cppBison.yxx.c" break; - case 654: /* const_expr: const_expr '[' const_expr ']' */ -#line 3716 "dtool/src/cppparser/cppBison.yxx" + case 660: /* const_expr: const_expr '[' const_expr ']' */ +#line 3733 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8782 "built/tmp/cppBison.yxx.c" +#line 8872 "built/tmp/cppBison.yxx.c" break; - case 655: /* const_expr: const_expr '(' const_expr_comma ')' */ -#line 3720 "dtool/src/cppparser/cppBison.yxx" + case 661: /* const_expr: const_expr '(' const_expr_comma ')' */ +#line 3737 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8790 "built/tmp/cppBison.yxx.c" +#line 8880 "built/tmp/cppBison.yxx.c" break; - case 656: /* const_expr: const_expr '(' ')' */ -#line 3724 "dtool/src/cppparser/cppBison.yxx" + case 662: /* const_expr: const_expr '(' ')' */ +#line 3741 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 8798 "built/tmp/cppBison.yxx.c" +#line 8888 "built/tmp/cppBison.yxx.c" break; - case 657: /* const_expr: const_expr '.' name */ -#line 3728 "dtool/src/cppparser/cppBison.yxx" + case 663: /* const_expr: KW_NOEXCEPT_LPAREN const_expr ')' */ +#line 3745 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(KW_NOEXCEPT, (yyvsp[-1].u.expr)); +} +#line 8896 "built/tmp/cppBison.yxx.c" + break; + + case 664: /* const_expr: const_expr '.' name */ +#line 3749 "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 8806 "built/tmp/cppBison.yxx.c" +#line 8904 "built/tmp/cppBison.yxx.c" break; - case 658: /* const_expr: const_expr POINTSAT const_expr */ -#line 3732 "dtool/src/cppparser/cppBison.yxx" + case 665: /* const_expr: const_expr POINTSAT const_expr */ +#line 3753 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8814 "built/tmp/cppBison.yxx.c" +#line 8912 "built/tmp/cppBison.yxx.c" break; - case 659: /* const_expr: '(' const_expr_comma ')' */ -#line 3736 "dtool/src/cppparser/cppBison.yxx" + case 666: /* const_expr: '(' const_expr_comma ')' */ +#line 3757 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8822 "built/tmp/cppBison.yxx.c" +#line 8920 "built/tmp/cppBison.yxx.c" break; - case 660: /* const_operand: INTEGER */ -#line 3743 "dtool/src/cppparser/cppBison.yxx" + case 667: /* const_operand: INTEGER */ +#line 3764 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8830 "built/tmp/cppBison.yxx.c" +#line 8928 "built/tmp/cppBison.yxx.c" break; - case 661: /* const_operand: KW_TRUE */ -#line 3747 "dtool/src/cppparser/cppBison.yxx" + case 668: /* const_operand: KW_TRUE */ +#line 3768 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } -#line 8838 "built/tmp/cppBison.yxx.c" +#line 8936 "built/tmp/cppBison.yxx.c" break; - case 662: /* const_operand: KW_FALSE */ -#line 3751 "dtool/src/cppparser/cppBison.yxx" + case 669: /* const_operand: KW_FALSE */ +#line 3772 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } -#line 8846 "built/tmp/cppBison.yxx.c" +#line 8944 "built/tmp/cppBison.yxx.c" break; - case 663: /* const_operand: CHAR_TOK */ -#line 3755 "dtool/src/cppparser/cppBison.yxx" + case 670: /* const_operand: CHAR_TOK */ +#line 3776 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8854 "built/tmp/cppBison.yxx.c" +#line 8952 "built/tmp/cppBison.yxx.c" break; - case 664: /* const_operand: REAL */ -#line 3759 "dtool/src/cppparser/cppBison.yxx" + case 671: /* const_operand: REAL */ +#line 3780 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } -#line 8862 "built/tmp/cppBison.yxx.c" +#line 8960 "built/tmp/cppBison.yxx.c" break; - case 665: /* const_operand: string_literal */ -#line 3763 "dtool/src/cppparser/cppBison.yxx" + case 672: /* const_operand: string_literal */ +#line 3784 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8870 "built/tmp/cppBison.yxx.c" +#line 8968 "built/tmp/cppBison.yxx.c" break; - case 666: /* const_operand: CUSTOM_LITERAL */ -#line 3767 "dtool/src/cppparser/cppBison.yxx" + case 673: /* const_operand: CUSTOM_LITERAL */ +#line 3788 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8878 "built/tmp/cppBison.yxx.c" +#line 8976 "built/tmp/cppBison.yxx.c" break; - case 667: /* const_operand: IDENTIFIER */ -#line 3771 "dtool/src/cppparser/cppBison.yxx" + case 674: /* const_operand: IDENTIFIER */ +#line 3792 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } -#line 8886 "built/tmp/cppBison.yxx.c" +#line 8984 "built/tmp/cppBison.yxx.c" break; - case 668: /* const_operand: KW_FINAL */ -#line 3775 "dtool/src/cppparser/cppBison.yxx" + case 675: /* const_operand: KW_FINAL */ +#line 3796 "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 8896 "built/tmp/cppBison.yxx.c" +#line 8994 "built/tmp/cppBison.yxx.c" break; - case 669: /* const_operand: KW_OVERRIDE */ -#line 3781 "dtool/src/cppparser/cppBison.yxx" + case 676: /* const_operand: KW_OVERRIDE */ +#line 3802 "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 8906 "built/tmp/cppBison.yxx.c" +#line 9004 "built/tmp/cppBison.yxx.c" break; - case 670: /* const_operand: KW_NULLPTR */ -#line 3787 "dtool/src/cppparser/cppBison.yxx" + case 677: /* const_operand: KW_NULLPTR */ +#line 3808 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 8914 "built/tmp/cppBison.yxx.c" +#line 9012 "built/tmp/cppBison.yxx.c" break; - case 671: /* const_operand: '[' capture_list ']' function_post maybe_trailing_return_type '{' code '}' */ -#line 3791 "dtool/src/cppparser/cppBison.yxx" + case 678: /* const_operand: '[' capture_list ']' function_post maybe_trailing_return_type '{' code '}' */ +#line 3812 "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 8924 "built/tmp/cppBison.yxx.c" +#line 9022 "built/tmp/cppBison.yxx.c" break; - case 672: /* const_operand: '[' capture_list ']' '(' function_parameter_list ')' function_post maybe_trailing_return_type '{' code '}' */ -#line 3797 "dtool/src/cppparser/cppBison.yxx" + case 679: /* const_operand: '[' capture_list ']' '(' function_parameter_list ')' function_post maybe_trailing_return_type '{' code '}' */ +#line 3818 "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 8935 "built/tmp/cppBison.yxx.c" +#line 9033 "built/tmp/cppBison.yxx.c" break; - case 673: /* const_operand: KW_HAS_VIRTUAL_DESTRUCTOR '(' full_type ')' */ -#line 3804 "dtool/src/cppparser/cppBison.yxx" + case 680: /* const_operand: KW_HAS_VIRTUAL_DESTRUCTOR '(' full_type ')' */ +#line 3825 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_HAS_VIRTUAL_DESTRUCTOR, (yyvsp[-1].u.type))); } -#line 8943 "built/tmp/cppBison.yxx.c" +#line 9041 "built/tmp/cppBison.yxx.c" break; - case 674: /* const_operand: KW_IS_ABSTRACT '(' full_type ')' */ -#line 3808 "dtool/src/cppparser/cppBison.yxx" + case 681: /* const_operand: KW_IS_ABSTRACT '(' full_type ')' */ +#line 3829 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_ABSTRACT, (yyvsp[-1].u.type))); } -#line 8951 "built/tmp/cppBison.yxx.c" +#line 9049 "built/tmp/cppBison.yxx.c" break; - case 675: /* const_operand: KW_IS_BASE_OF '(' full_type ',' full_type ')' */ -#line 3812 "dtool/src/cppparser/cppBison.yxx" + case 682: /* const_operand: KW_IS_BASE_OF '(' full_type ',' full_type ')' */ +#line 3833 "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 8959 "built/tmp/cppBison.yxx.c" +#line 9057 "built/tmp/cppBison.yxx.c" break; - case 676: /* const_operand: KW_IS_CLASS '(' full_type ')' */ -#line 3816 "dtool/src/cppparser/cppBison.yxx" + case 683: /* const_operand: KW_IS_CLASS '(' full_type ')' */ +#line 3837 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CLASS, (yyvsp[-1].u.type))); } -#line 8967 "built/tmp/cppBison.yxx.c" +#line 9065 "built/tmp/cppBison.yxx.c" break; - case 677: /* const_operand: KW_IS_CONSTRUCTIBLE '(' full_type ')' */ -#line 3820 "dtool/src/cppparser/cppBison.yxx" + case 684: /* const_operand: KW_IS_CONSTRUCTIBLE '(' full_type ')' */ +#line 3841 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONSTRUCTIBLE, (yyvsp[-1].u.type))); } -#line 8975 "built/tmp/cppBison.yxx.c" +#line 9073 "built/tmp/cppBison.yxx.c" break; - case 678: /* const_operand: KW_IS_CONSTRUCTIBLE '(' full_type ',' full_type ')' */ -#line 3824 "dtool/src/cppparser/cppBison.yxx" + case 685: /* const_operand: KW_IS_CONSTRUCTIBLE '(' full_type ',' full_type ')' */ +#line 3845 "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 8983 "built/tmp/cppBison.yxx.c" +#line 9081 "built/tmp/cppBison.yxx.c" break; - case 679: /* const_operand: KW_IS_CONVERTIBLE_TO '(' full_type ',' full_type ')' */ -#line 3828 "dtool/src/cppparser/cppBison.yxx" + case 686: /* const_operand: KW_IS_CONVERTIBLE_TO '(' full_type ',' full_type ')' */ +#line 3849 "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 8991 "built/tmp/cppBison.yxx.c" +#line 9089 "built/tmp/cppBison.yxx.c" break; - case 680: /* const_operand: KW_IS_DESTRUCTIBLE '(' full_type ')' */ -#line 3832 "dtool/src/cppparser/cppBison.yxx" + case 687: /* const_operand: KW_IS_DESTRUCTIBLE '(' full_type ')' */ +#line 3853 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_DESTRUCTIBLE, (yyvsp[-1].u.type))); } -#line 8999 "built/tmp/cppBison.yxx.c" +#line 9097 "built/tmp/cppBison.yxx.c" break; - case 681: /* const_operand: KW_IS_EMPTY '(' full_type ')' */ -#line 3836 "dtool/src/cppparser/cppBison.yxx" + case 688: /* const_operand: KW_IS_EMPTY '(' full_type ')' */ +#line 3857 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_EMPTY, (yyvsp[-1].u.type))); } -#line 9007 "built/tmp/cppBison.yxx.c" +#line 9105 "built/tmp/cppBison.yxx.c" break; - case 682: /* const_operand: KW_IS_ENUM '(' full_type ')' */ -#line 3840 "dtool/src/cppparser/cppBison.yxx" + case 689: /* const_operand: KW_IS_ENUM '(' full_type ')' */ +#line 3861 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_ENUM, (yyvsp[-1].u.type))); } -#line 9015 "built/tmp/cppBison.yxx.c" +#line 9113 "built/tmp/cppBison.yxx.c" break; - case 683: /* const_operand: KW_IS_FINAL '(' full_type ')' */ -#line 3844 "dtool/src/cppparser/cppBison.yxx" + case 690: /* const_operand: KW_IS_FINAL '(' full_type ')' */ +#line 3865 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_FINAL, (yyvsp[-1].u.type))); } -#line 9023 "built/tmp/cppBison.yxx.c" +#line 9121 "built/tmp/cppBison.yxx.c" break; - case 684: /* const_operand: KW_IS_FUNDAMENTAL '(' full_type ')' */ -#line 3848 "dtool/src/cppparser/cppBison.yxx" + case 691: /* const_operand: KW_IS_FUNDAMENTAL '(' full_type ')' */ +#line 3869 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_FUNDAMENTAL, (yyvsp[-1].u.type))); } -#line 9031 "built/tmp/cppBison.yxx.c" +#line 9129 "built/tmp/cppBison.yxx.c" break; - case 685: /* const_operand: KW_IS_POD '(' full_type ')' */ -#line 3852 "dtool/src/cppparser/cppBison.yxx" + case 692: /* const_operand: KW_IS_POD '(' full_type ')' */ +#line 3873 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_POD, (yyvsp[-1].u.type))); } -#line 9039 "built/tmp/cppBison.yxx.c" +#line 9137 "built/tmp/cppBison.yxx.c" break; - case 686: /* const_operand: KW_IS_POLYMORPHIC '(' full_type ')' */ -#line 3856 "dtool/src/cppparser/cppBison.yxx" + case 693: /* const_operand: KW_IS_POLYMORPHIC '(' full_type ')' */ +#line 3877 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_POLYMORPHIC, (yyvsp[-1].u.type))); } -#line 9047 "built/tmp/cppBison.yxx.c" +#line 9145 "built/tmp/cppBison.yxx.c" break; - case 687: /* const_operand: KW_IS_STANDARD_LAYOUT '(' full_type ')' */ -#line 3860 "dtool/src/cppparser/cppBison.yxx" + case 694: /* const_operand: KW_IS_STANDARD_LAYOUT '(' full_type ')' */ +#line 3881 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_STANDARD_LAYOUT, (yyvsp[-1].u.type))); } -#line 9055 "built/tmp/cppBison.yxx.c" +#line 9153 "built/tmp/cppBison.yxx.c" break; - case 688: /* const_operand: KW_IS_TRIVIAL '(' full_type ')' */ -#line 3864 "dtool/src/cppparser/cppBison.yxx" + case 695: /* const_operand: KW_IS_TRIVIAL '(' full_type ')' */ +#line 3885 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_TRIVIAL, (yyvsp[-1].u.type))); } -#line 9063 "built/tmp/cppBison.yxx.c" +#line 9161 "built/tmp/cppBison.yxx.c" break; - case 689: /* const_operand: KW_IS_UNION '(' full_type ')' */ -#line 3868 "dtool/src/cppparser/cppBison.yxx" + case 696: /* const_operand: KW_IS_UNION '(' full_type ')' */ +#line 3889 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_UNION, (yyvsp[-1].u.type))); } -#line 9071 "built/tmp/cppBison.yxx.c" +#line 9169 "built/tmp/cppBison.yxx.c" break; - case 690: /* formal_const_expr: formal_const_operand */ -#line 3882 "dtool/src/cppparser/cppBison.yxx" + case 697: /* formal_const_expr: formal_const_operand */ +#line 3903 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9079 "built/tmp/cppBison.yxx.c" +#line 9177 "built/tmp/cppBison.yxx.c" break; - case 691: /* formal_const_expr: '(' full_type ')' const_expr */ -#line 3886 "dtool/src/cppparser/cppBison.yxx" + case 698: /* formal_const_expr: '(' full_type ')' const_expr */ +#line 3907 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 9087 "built/tmp/cppBison.yxx.c" +#line 9185 "built/tmp/cppBison.yxx.c" break; - case 692: /* formal_const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3890 "dtool/src/cppparser/cppBison.yxx" + case 699: /* formal_const_expr: KW_STATIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3911 "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 9095 "built/tmp/cppBison.yxx.c" +#line 9193 "built/tmp/cppBison.yxx.c" break; - case 693: /* formal_const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3894 "dtool/src/cppparser/cppBison.yxx" + case 700: /* formal_const_expr: KW_DYNAMIC_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3915 "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 9103 "built/tmp/cppBison.yxx.c" +#line 9201 "built/tmp/cppBison.yxx.c" break; - case 694: /* formal_const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3898 "dtool/src/cppparser/cppBison.yxx" + case 701: /* formal_const_expr: KW_CONST_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3919 "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 9111 "built/tmp/cppBison.yxx.c" +#line 9209 "built/tmp/cppBison.yxx.c" break; - case 695: /* formal_const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ -#line 3902 "dtool/src/cppparser/cppBison.yxx" + case 702: /* formal_const_expr: KW_REINTERPRET_CAST '<' full_type '>' '(' const_expr_comma ')' */ +#line 3923 "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 9119 "built/tmp/cppBison.yxx.c" +#line 9217 "built/tmp/cppBison.yxx.c" break; - case 696: /* formal_const_expr: KW_SIZEOF '(' full_type ')' */ -#line 3906 "dtool/src/cppparser/cppBison.yxx" + case 703: /* formal_const_expr: KW_SIZEOF '(' full_type ')' */ +#line 3927 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 9127 "built/tmp/cppBison.yxx.c" +#line 9225 "built/tmp/cppBison.yxx.c" break; - case 697: /* formal_const_expr: KW_SIZEOF formal_const_expr */ -#line 3910 "dtool/src/cppparser/cppBison.yxx" + case 704: /* formal_const_expr: KW_SIZEOF formal_const_expr */ +#line 3931 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 9135 "built/tmp/cppBison.yxx.c" +#line 9233 "built/tmp/cppBison.yxx.c" break; - case 698: /* formal_const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ -#line 3914 "dtool/src/cppparser/cppBison.yxx" + case 705: /* formal_const_expr: KW_SIZEOF ELLIPSIS '(' name ')' */ +#line 3935 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 9143 "built/tmp/cppBison.yxx.c" +#line 9241 "built/tmp/cppBison.yxx.c" break; - case 699: /* formal_const_expr: KW_ALIGNOF '(' full_type ')' */ -#line 3918 "dtool/src/cppparser/cppBison.yxx" + case 706: /* formal_const_expr: KW_ALIGNOF '(' full_type ')' */ +#line 3939 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 9151 "built/tmp/cppBison.yxx.c" +#line 9249 "built/tmp/cppBison.yxx.c" break; - case 700: /* formal_const_expr: KW_NEW predefined_type */ -#line 3922 "dtool/src/cppparser/cppBison.yxx" + case 707: /* formal_const_expr: KW_NEW predefined_type */ +#line 3943 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } -#line 9159 "built/tmp/cppBison.yxx.c" +#line 9257 "built/tmp/cppBison.yxx.c" break; - case 701: /* formal_const_expr: KW_NEW predefined_type '(' optional_const_expr_comma ')' */ -#line 3926 "dtool/src/cppparser/cppBison.yxx" + case 708: /* formal_const_expr: KW_NEW predefined_type '(' optional_const_expr_comma ')' */ +#line 3947 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } -#line 9167 "built/tmp/cppBison.yxx.c" +#line 9265 "built/tmp/cppBison.yxx.c" break; - case 702: /* formal_const_expr: KW_TYPEID '(' full_type ')' */ -#line 3930 "dtool/src/cppparser/cppBison.yxx" + case 709: /* formal_const_expr: KW_TYPEID '(' full_type ')' */ +#line 3951 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -9178,11 +9276,11 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 9182 "built/tmp/cppBison.yxx.c" +#line 9280 "built/tmp/cppBison.yxx.c" break; - case 703: /* formal_const_expr: KW_TYPEID '(' const_expr ')' */ -#line 3941 "dtool/src/cppparser/cppBison.yxx" + case 710: /* formal_const_expr: KW_TYPEID '(' const_expr ')' */ +#line 3962 "dtool/src/cppparser/cppBison.yxx" { CPPIdentifier ident(""); ident.add_name("std"); @@ -9193,417 +9291,417 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 9197 "built/tmp/cppBison.yxx.c" +#line 9295 "built/tmp/cppBison.yxx.c" break; - case 704: /* formal_const_expr: '!' const_expr */ -#line 3952 "dtool/src/cppparser/cppBison.yxx" + case 711: /* formal_const_expr: '!' const_expr */ +#line 3973 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 9205 "built/tmp/cppBison.yxx.c" +#line 9303 "built/tmp/cppBison.yxx.c" break; - case 705: /* formal_const_expr: '~' const_expr */ -#line 3956 "dtool/src/cppparser/cppBison.yxx" + case 712: /* formal_const_expr: '~' const_expr */ +#line 3977 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 9213 "built/tmp/cppBison.yxx.c" +#line 9311 "built/tmp/cppBison.yxx.c" break; - case 706: /* formal_const_expr: '-' const_expr */ -#line 3960 "dtool/src/cppparser/cppBison.yxx" + case 713: /* formal_const_expr: '-' const_expr */ +#line 3981 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 9221 "built/tmp/cppBison.yxx.c" +#line 9319 "built/tmp/cppBison.yxx.c" break; - case 707: /* formal_const_expr: '+' const_expr */ -#line 3964 "dtool/src/cppparser/cppBison.yxx" + case 714: /* formal_const_expr: '+' const_expr */ +#line 3985 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 9229 "built/tmp/cppBison.yxx.c" +#line 9327 "built/tmp/cppBison.yxx.c" break; - case 708: /* formal_const_expr: '&' const_expr */ -#line 3968 "dtool/src/cppparser/cppBison.yxx" + case 715: /* formal_const_expr: '&' const_expr */ +#line 3989 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 9237 "built/tmp/cppBison.yxx.c" +#line 9335 "built/tmp/cppBison.yxx.c" break; - case 709: /* formal_const_expr: formal_const_expr '*' const_expr */ -#line 3972 "dtool/src/cppparser/cppBison.yxx" + case 716: /* formal_const_expr: formal_const_expr '*' const_expr */ +#line 3993 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9245 "built/tmp/cppBison.yxx.c" +#line 9343 "built/tmp/cppBison.yxx.c" break; - case 710: /* formal_const_expr: formal_const_expr '/' const_expr */ -#line 3976 "dtool/src/cppparser/cppBison.yxx" + case 717: /* formal_const_expr: formal_const_expr '/' const_expr */ +#line 3997 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9253 "built/tmp/cppBison.yxx.c" +#line 9351 "built/tmp/cppBison.yxx.c" break; - case 711: /* formal_const_expr: formal_const_expr '%' const_expr */ -#line 3980 "dtool/src/cppparser/cppBison.yxx" + case 718: /* formal_const_expr: formal_const_expr '%' const_expr */ +#line 4001 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9261 "built/tmp/cppBison.yxx.c" +#line 9359 "built/tmp/cppBison.yxx.c" break; - case 712: /* formal_const_expr: formal_const_expr '+' const_expr */ -#line 3984 "dtool/src/cppparser/cppBison.yxx" + case 719: /* formal_const_expr: formal_const_expr '+' const_expr */ +#line 4005 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9269 "built/tmp/cppBison.yxx.c" +#line 9367 "built/tmp/cppBison.yxx.c" break; - case 713: /* formal_const_expr: formal_const_expr '-' const_expr */ -#line 3988 "dtool/src/cppparser/cppBison.yxx" + case 720: /* formal_const_expr: formal_const_expr '-' const_expr */ +#line 4009 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9277 "built/tmp/cppBison.yxx.c" +#line 9375 "built/tmp/cppBison.yxx.c" break; - case 714: /* formal_const_expr: formal_const_expr '|' const_expr */ -#line 3992 "dtool/src/cppparser/cppBison.yxx" + case 721: /* formal_const_expr: formal_const_expr '|' const_expr */ +#line 4013 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9285 "built/tmp/cppBison.yxx.c" +#line 9383 "built/tmp/cppBison.yxx.c" break; - case 715: /* formal_const_expr: formal_const_expr '^' const_expr */ -#line 3996 "dtool/src/cppparser/cppBison.yxx" + case 722: /* formal_const_expr: formal_const_expr '^' const_expr */ +#line 4017 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9293 "built/tmp/cppBison.yxx.c" +#line 9391 "built/tmp/cppBison.yxx.c" break; - case 716: /* formal_const_expr: formal_const_expr '&' const_expr */ -#line 4000 "dtool/src/cppparser/cppBison.yxx" + case 723: /* formal_const_expr: formal_const_expr '&' const_expr */ +#line 4021 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9301 "built/tmp/cppBison.yxx.c" +#line 9399 "built/tmp/cppBison.yxx.c" break; - case 717: /* formal_const_expr: formal_const_expr OROR const_expr */ -#line 4004 "dtool/src/cppparser/cppBison.yxx" + case 724: /* formal_const_expr: formal_const_expr OROR const_expr */ +#line 4025 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9309 "built/tmp/cppBison.yxx.c" +#line 9407 "built/tmp/cppBison.yxx.c" break; - case 718: /* formal_const_expr: formal_const_expr ANDAND const_expr */ -#line 4008 "dtool/src/cppparser/cppBison.yxx" + case 725: /* formal_const_expr: formal_const_expr ANDAND const_expr */ +#line 4029 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9317 "built/tmp/cppBison.yxx.c" +#line 9415 "built/tmp/cppBison.yxx.c" break; - case 719: /* formal_const_expr: formal_const_expr EQCOMPARE const_expr */ -#line 4012 "dtool/src/cppparser/cppBison.yxx" + case 726: /* formal_const_expr: formal_const_expr EQCOMPARE const_expr */ +#line 4033 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9325 "built/tmp/cppBison.yxx.c" +#line 9423 "built/tmp/cppBison.yxx.c" break; - case 720: /* formal_const_expr: formal_const_expr NECOMPARE const_expr */ -#line 4016 "dtool/src/cppparser/cppBison.yxx" + case 727: /* formal_const_expr: formal_const_expr NECOMPARE const_expr */ +#line 4037 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9333 "built/tmp/cppBison.yxx.c" +#line 9431 "built/tmp/cppBison.yxx.c" break; - case 721: /* formal_const_expr: formal_const_expr LECOMPARE const_expr */ -#line 4020 "dtool/src/cppparser/cppBison.yxx" + case 728: /* formal_const_expr: formal_const_expr LECOMPARE const_expr */ +#line 4041 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9341 "built/tmp/cppBison.yxx.c" +#line 9439 "built/tmp/cppBison.yxx.c" break; - case 722: /* formal_const_expr: formal_const_expr GECOMPARE const_expr */ -#line 4024 "dtool/src/cppparser/cppBison.yxx" + case 729: /* formal_const_expr: formal_const_expr GECOMPARE const_expr */ +#line 4045 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9349 "built/tmp/cppBison.yxx.c" +#line 9447 "built/tmp/cppBison.yxx.c" break; - case 723: /* formal_const_expr: formal_const_expr SPACESHIP const_expr */ -#line 4028 "dtool/src/cppparser/cppBison.yxx" + case 730: /* formal_const_expr: formal_const_expr SPACESHIP const_expr */ +#line 4049 "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" +#line 9455 "built/tmp/cppBison.yxx.c" break; - case 724: /* formal_const_expr: formal_const_expr '<' const_expr */ -#line 4032 "dtool/src/cppparser/cppBison.yxx" + case 731: /* formal_const_expr: formal_const_expr '<' const_expr */ +#line 4053 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9365 "built/tmp/cppBison.yxx.c" +#line 9463 "built/tmp/cppBison.yxx.c" break; - case 725: /* formal_const_expr: formal_const_expr '>' const_expr */ -#line 4036 "dtool/src/cppparser/cppBison.yxx" + case 732: /* formal_const_expr: formal_const_expr '>' const_expr */ +#line 4057 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9373 "built/tmp/cppBison.yxx.c" +#line 9471 "built/tmp/cppBison.yxx.c" break; - case 726: /* formal_const_expr: formal_const_expr LSHIFT const_expr */ -#line 4040 "dtool/src/cppparser/cppBison.yxx" + case 733: /* formal_const_expr: formal_const_expr LSHIFT const_expr */ +#line 4061 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9381 "built/tmp/cppBison.yxx.c" +#line 9479 "built/tmp/cppBison.yxx.c" break; - case 727: /* formal_const_expr: formal_const_expr RSHIFT const_expr */ -#line 4044 "dtool/src/cppparser/cppBison.yxx" + case 734: /* formal_const_expr: formal_const_expr RSHIFT const_expr */ +#line 4065 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9389 "built/tmp/cppBison.yxx.c" +#line 9487 "built/tmp/cppBison.yxx.c" break; - case 728: /* formal_const_expr: formal_const_expr '?' const_expr ':' const_expr */ -#line 4048 "dtool/src/cppparser/cppBison.yxx" + case 735: /* formal_const_expr: formal_const_expr '?' const_expr ':' const_expr */ +#line 4069 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9397 "built/tmp/cppBison.yxx.c" +#line 9495 "built/tmp/cppBison.yxx.c" break; - case 729: /* formal_const_expr: formal_const_expr '[' const_expr ']' */ -#line 4052 "dtool/src/cppparser/cppBison.yxx" + case 736: /* formal_const_expr: formal_const_expr '[' const_expr ']' */ +#line 4073 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 9405 "built/tmp/cppBison.yxx.c" +#line 9503 "built/tmp/cppBison.yxx.c" break; - case 730: /* formal_const_expr: formal_const_expr '(' const_expr_comma ')' */ -#line 4056 "dtool/src/cppparser/cppBison.yxx" + case 737: /* formal_const_expr: formal_const_expr '(' const_expr_comma ')' */ +#line 4077 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 9413 "built/tmp/cppBison.yxx.c" +#line 9511 "built/tmp/cppBison.yxx.c" break; - case 731: /* formal_const_expr: formal_const_expr '(' ')' */ -#line 4060 "dtool/src/cppparser/cppBison.yxx" + case 738: /* formal_const_expr: formal_const_expr '(' ')' */ +#line 4081 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 9421 "built/tmp/cppBison.yxx.c" +#line 9519 "built/tmp/cppBison.yxx.c" break; - case 732: /* formal_const_expr: formal_const_expr '.' name */ -#line 4064 "dtool/src/cppparser/cppBison.yxx" + case 739: /* formal_const_expr: formal_const_expr '.' name */ +#line 4085 "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 9429 "built/tmp/cppBison.yxx.c" +#line 9527 "built/tmp/cppBison.yxx.c" break; - case 733: /* formal_const_expr: formal_const_expr POINTSAT const_expr */ -#line 4068 "dtool/src/cppparser/cppBison.yxx" + case 740: /* formal_const_expr: formal_const_expr POINTSAT const_expr */ +#line 4089 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9437 "built/tmp/cppBison.yxx.c" +#line 9535 "built/tmp/cppBison.yxx.c" break; - case 734: /* formal_const_expr: '(' const_expr_comma ')' */ -#line 4072 "dtool/src/cppparser/cppBison.yxx" + case 741: /* formal_const_expr: '(' const_expr_comma ')' */ +#line 4093 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 9445 "built/tmp/cppBison.yxx.c" +#line 9543 "built/tmp/cppBison.yxx.c" break; - case 735: /* formal_const_operand: INTEGER */ -#line 4079 "dtool/src/cppparser/cppBison.yxx" + case 742: /* formal_const_operand: INTEGER */ +#line 4100 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 9453 "built/tmp/cppBison.yxx.c" +#line 9551 "built/tmp/cppBison.yxx.c" break; - case 736: /* formal_const_operand: KW_TRUE */ -#line 4083 "dtool/src/cppparser/cppBison.yxx" + case 743: /* formal_const_operand: KW_TRUE */ +#line 4104 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } -#line 9461 "built/tmp/cppBison.yxx.c" +#line 9559 "built/tmp/cppBison.yxx.c" break; - case 737: /* formal_const_operand: KW_FALSE */ -#line 4087 "dtool/src/cppparser/cppBison.yxx" + case 744: /* formal_const_operand: KW_FALSE */ +#line 4108 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } -#line 9469 "built/tmp/cppBison.yxx.c" +#line 9567 "built/tmp/cppBison.yxx.c" break; - case 738: /* formal_const_operand: CHAR_TOK */ -#line 4091 "dtool/src/cppparser/cppBison.yxx" + case 745: /* formal_const_operand: CHAR_TOK */ +#line 4112 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 9477 "built/tmp/cppBison.yxx.c" +#line 9575 "built/tmp/cppBison.yxx.c" break; - case 739: /* formal_const_operand: REAL */ -#line 4095 "dtool/src/cppparser/cppBison.yxx" + case 746: /* formal_const_operand: REAL */ +#line 4116 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } -#line 9485 "built/tmp/cppBison.yxx.c" +#line 9583 "built/tmp/cppBison.yxx.c" break; - case 740: /* formal_const_operand: string_literal */ -#line 4099 "dtool/src/cppparser/cppBison.yxx" + case 747: /* formal_const_operand: string_literal */ +#line 4120 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9493 "built/tmp/cppBison.yxx.c" +#line 9591 "built/tmp/cppBison.yxx.c" break; - case 741: /* formal_const_operand: CUSTOM_LITERAL */ -#line 4103 "dtool/src/cppparser/cppBison.yxx" + case 748: /* formal_const_operand: CUSTOM_LITERAL */ +#line 4124 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9501 "built/tmp/cppBison.yxx.c" +#line 9599 "built/tmp/cppBison.yxx.c" break; - case 742: /* formal_const_operand: IDENTIFIER */ -#line 4107 "dtool/src/cppparser/cppBison.yxx" + case 749: /* formal_const_operand: IDENTIFIER */ +#line 4128 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } -#line 9509 "built/tmp/cppBison.yxx.c" +#line 9607 "built/tmp/cppBison.yxx.c" break; - case 743: /* formal_const_operand: KW_FINAL */ -#line 4111 "dtool/src/cppparser/cppBison.yxx" + case 750: /* formal_const_operand: KW_FINAL */ +#line 4132 "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 9519 "built/tmp/cppBison.yxx.c" +#line 9617 "built/tmp/cppBison.yxx.c" break; - case 744: /* formal_const_operand: KW_OVERRIDE */ -#line 4117 "dtool/src/cppparser/cppBison.yxx" + case 751: /* formal_const_operand: KW_OVERRIDE */ +#line 4138 "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 9529 "built/tmp/cppBison.yxx.c" +#line 9627 "built/tmp/cppBison.yxx.c" break; - case 745: /* formal_const_operand: KW_NULLPTR */ -#line 4123 "dtool/src/cppparser/cppBison.yxx" + case 752: /* formal_const_operand: KW_NULLPTR */ +#line 4144 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 9537 "built/tmp/cppBison.yxx.c" +#line 9635 "built/tmp/cppBison.yxx.c" break; - case 746: /* capture_list: empty */ -#line 4131 "dtool/src/cppparser/cppBison.yxx" + case 753: /* capture_list: empty */ +#line 4152 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(); } -#line 9545 "built/tmp/cppBison.yxx.c" +#line 9643 "built/tmp/cppBison.yxx.c" break; - case 747: /* capture_list: '=' */ -#line 4135 "dtool/src/cppparser/cppBison.yxx" + case 754: /* capture_list: '=' */ +#line 4156 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(CPPClosureType::CT_by_value); } -#line 9553 "built/tmp/cppBison.yxx.c" +#line 9651 "built/tmp/cppBison.yxx.c" break; - case 748: /* capture_list: '&' */ -#line 4139 "dtool/src/cppparser/cppBison.yxx" + case 755: /* capture_list: '&' */ +#line 4160 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.closure_type) = new CPPClosureType(CPPClosureType::CT_by_reference); } -#line 9561 "built/tmp/cppBison.yxx.c" +#line 9659 "built/tmp/cppBison.yxx.c" break; - case 749: /* capture_list: capture maybe_initialize */ -#line 4143 "dtool/src/cppparser/cppBison.yxx" + case 756: /* capture_list: capture maybe_initialize */ +#line 4164 "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 9572 "built/tmp/cppBison.yxx.c" +#line 9670 "built/tmp/cppBison.yxx.c" break; - case 750: /* capture_list: capture_list ',' capture maybe_initialize */ -#line 4150 "dtool/src/cppparser/cppBison.yxx" + case 757: /* capture_list: capture_list ',' capture maybe_initialize */ +#line 4171 "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 9583 "built/tmp/cppBison.yxx.c" +#line 9681 "built/tmp/cppBison.yxx.c" break; - case 751: /* capture: '&' name */ -#line 4160 "dtool/src/cppparser/cppBison.yxx" + case 758: /* capture: '&' name */ +#line 4181 "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 9593 "built/tmp/cppBison.yxx.c" +#line 9691 "built/tmp/cppBison.yxx.c" break; - case 752: /* capture: '&' name ELLIPSIS */ -#line 4166 "dtool/src/cppparser/cppBison.yxx" + case 759: /* capture: '&' name ELLIPSIS */ +#line 4187 "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 9603 "built/tmp/cppBison.yxx.c" +#line 9701 "built/tmp/cppBison.yxx.c" break; - case 753: /* capture: name */ -#line 4172 "dtool/src/cppparser/cppBison.yxx" + case 760: /* capture: name */ +#line 4193 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); @@ -9613,11 +9711,11 @@ yyreduce: (yyval.u.capture)->_type = CPPClosureType::CT_by_value; } } -#line 9617 "built/tmp/cppBison.yxx.c" +#line 9715 "built/tmp/cppBison.yxx.c" break; - case 754: /* capture: '*' name */ -#line 4182 "dtool/src/cppparser/cppBison.yxx" + case 761: /* capture: '*' name */ +#line 4203 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); @@ -9626,11 +9724,11 @@ yyreduce: yywarning("only capture name 'this' may be preceded by an asterisk", (yylsp[0])); } } -#line 9630 "built/tmp/cppBison.yxx.c" +#line 9728 "built/tmp/cppBison.yxx.c" break; - case 755: /* class_derivation_name: name */ -#line 4194 "dtool/src/cppparser/cppBison.yxx" + case 762: /* class_derivation_name: name */ +#line 4215 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); if (type == nullptr) { @@ -9638,177 +9736,177 @@ yyreduce: } (yyval.u.type) = type; } -#line 9642 "built/tmp/cppBison.yxx.c" +#line 9740 "built/tmp/cppBison.yxx.c" break; - case 756: /* class_derivation_name: KW_TYPENAME name */ -#line 4202 "dtool/src/cppparser/cppBison.yxx" + case 763: /* class_derivation_name: KW_TYPENAME name */ +#line 4223 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 9650 "built/tmp/cppBison.yxx.c" +#line 9748 "built/tmp/cppBison.yxx.c" break; - case 757: /* class_derivation_name: name ELLIPSIS */ -#line 4206 "dtool/src/cppparser/cppBison.yxx" + case 764: /* class_derivation_name: name ELLIPSIS */ +#line 4227 "dtool/src/cppparser/cppBison.yxx" { CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[-1].u.identifier)); ctp->_packed = true; (yyval.u.type) = CPPType::new_type(ctp); } -#line 9660 "built/tmp/cppBison.yxx.c" - break; - - case 758: /* name: IDENTIFIER */ -#line 4236 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9668 "built/tmp/cppBison.yxx.c" - break; - - case 759: /* name: TYPENAME_IDENTIFIER */ -#line 4240 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9676 "built/tmp/cppBison.yxx.c" - break; - - case 760: /* name: TYPEPACK_IDENTIFIER */ -#line 4244 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9684 "built/tmp/cppBison.yxx.c" - break; - - case 761: /* name: KW_FINAL */ -#line 4248 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); -} -#line 9692 "built/tmp/cppBison.yxx.c" - break; - - case 762: /* name: KW_OVERRIDE */ -#line 4252 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); -} -#line 9700 "built/tmp/cppBison.yxx.c" - break; - - 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 9710 "built/tmp/cppBison.yxx.c" - break; - - case 764: /* name: KW_FLOAT */ -#line 4262 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); -} -#line 9718 "built/tmp/cppBison.yxx.c" - break; - - case 765: /* name: KW_PUBLIC */ -#line 4266 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); -} -#line 9726 "built/tmp/cppBison.yxx.c" - break; - - case 766: /* name: KW_PRIVATE */ -#line 4270 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); -} -#line 9734 "built/tmp/cppBison.yxx.c" - break; - - case 767: /* name: KW_STATIC */ -#line 4274 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); -} -#line 9742 "built/tmp/cppBison.yxx.c" - break; - - case 768: /* name: KW_DEFAULT */ -#line 4278 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = new CPPIdentifier("default", (yylsp[0])); -} -#line 9750 "built/tmp/cppBison.yxx.c" - break; - - case 769: /* name_no_final: IDENTIFIER */ -#line 4289 "dtool/src/cppparser/cppBison.yxx" -{ - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} #line 9758 "built/tmp/cppBison.yxx.c" break; - case 770: /* name_no_final: TYPENAME_IDENTIFIER */ -#line 4293 "dtool/src/cppparser/cppBison.yxx" + case 765: /* name: IDENTIFIER */ +#line 4257 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } #line 9766 "built/tmp/cppBison.yxx.c" break; - case 771: /* name_no_final: TYPEPACK_IDENTIFIER */ -#line 4297 "dtool/src/cppparser/cppBison.yxx" + case 766: /* name: TYPENAME_IDENTIFIER */ +#line 4261 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[0].u.identifier); } #line 9774 "built/tmp/cppBison.yxx.c" break; - case 772: /* name_no_final: KW_OVERRIDE */ -#line 4301 "dtool/src/cppparser/cppBison.yxx" + case 767: /* name: TYPEPACK_IDENTIFIER */ +#line 4265 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); + (yyval.u.identifier) = (yyvsp[0].u.identifier); } #line 9782 "built/tmp/cppBison.yxx.c" break; - case 773: /* string_literal: SIMPLE_STRING */ -#line 4309 "dtool/src/cppparser/cppBison.yxx" + case 768: /* name: KW_FINAL */ +#line 4269 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); + (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); } #line 9790 "built/tmp/cppBison.yxx.c" break; - case 774: /* string_literal: STRING_LITERAL */ -#line 4313 "dtool/src/cppparser/cppBison.yxx" + case 769: /* name: KW_OVERRIDE */ +#line 4273 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); } #line 9798 "built/tmp/cppBison.yxx.c" break; - case 775: /* string_literal: string_literal SIMPLE_STRING */ -#line 4317 "dtool/src/cppparser/cppBison.yxx" + case 770: /* name: KW_SIGNED */ +#line 4277 "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 9808 "built/tmp/cppBison.yxx.c" + break; + + case 771: /* name: KW_FLOAT */ +#line 4283 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); +} +#line 9816 "built/tmp/cppBison.yxx.c" + break; + + case 772: /* name: KW_PUBLIC */ +#line 4287 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); +} +#line 9824 "built/tmp/cppBison.yxx.c" + break; + + case 773: /* name: KW_PRIVATE */ +#line 4291 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); +} +#line 9832 "built/tmp/cppBison.yxx.c" + break; + + case 774: /* name: KW_STATIC */ +#line 4295 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); +} +#line 9840 "built/tmp/cppBison.yxx.c" + break; + + case 775: /* name: KW_DEFAULT */ +#line 4299 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("default", (yylsp[0])); +} +#line 9848 "built/tmp/cppBison.yxx.c" + break; + + case 776: /* name_no_final: IDENTIFIER */ +#line 4310 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9856 "built/tmp/cppBison.yxx.c" + break; + + case 777: /* name_no_final: TYPENAME_IDENTIFIER */ +#line 4314 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9864 "built/tmp/cppBison.yxx.c" + break; + + case 778: /* name_no_final: TYPEPACK_IDENTIFIER */ +#line 4318 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9872 "built/tmp/cppBison.yxx.c" + break; + + case 779: /* name_no_final: KW_OVERRIDE */ +#line 4322 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 9880 "built/tmp/cppBison.yxx.c" + break; + + case 780: /* string_literal: SIMPLE_STRING */ +#line 4330 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 9888 "built/tmp/cppBison.yxx.c" + break; + + case 781: /* string_literal: STRING_LITERAL */ +#line 4334 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 9896 "built/tmp/cppBison.yxx.c" + break; + + case 782: /* string_literal: string_literal SIMPLE_STRING */ +#line 4338 "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 9808 "built/tmp/cppBison.yxx.c" +#line 9906 "built/tmp/cppBison.yxx.c" break; - case 776: /* string_literal: string_literal STRING_LITERAL */ -#line 4323 "dtool/src/cppparser/cppBison.yxx" + case 783: /* string_literal: string_literal STRING_LITERAL */ +#line 4344 "dtool/src/cppparser/cppBison.yxx" { // We have to check that the two literal types match up. (yyval.u.expr) = (yyvsp[-1].u.expr); @@ -9817,11 +9915,11 @@ yyreduce: } (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } -#line 9821 "built/tmp/cppBison.yxx.c" +#line 9919 "built/tmp/cppBison.yxx.c" break; -#line 9825 "built/tmp/cppBison.yxx.c" +#line 9923 "built/tmp/cppBison.yxx.c" default: break; } diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index 15588c760d..5015b5d58f 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -129,79 +129,81 @@ extern int cppyydebug; 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 */ + KW_EXPLICIT_LPAREN = 333, /* KW_EXPLICIT_LPAREN */ + KW_PUBLISHED = 334, /* KW_PUBLISHED */ + KW_FALSE = 335, /* KW_FALSE */ + KW_FINAL = 336, /* KW_FINAL */ + KW_FLOAT = 337, /* KW_FLOAT */ + KW_FRIEND = 338, /* KW_FRIEND */ + KW_FOR = 339, /* KW_FOR */ + KW_GOTO = 340, /* KW_GOTO */ + KW_HAS_VIRTUAL_DESTRUCTOR = 341, /* KW_HAS_VIRTUAL_DESTRUCTOR */ + KW_IF = 342, /* KW_IF */ + KW_INLINE = 343, /* KW_INLINE */ + KW_INT = 344, /* KW_INT */ + KW_IS_ABSTRACT = 345, /* KW_IS_ABSTRACT */ + KW_IS_BASE_OF = 346, /* KW_IS_BASE_OF */ + KW_IS_CLASS = 347, /* KW_IS_CLASS */ + KW_IS_CONSTRUCTIBLE = 348, /* KW_IS_CONSTRUCTIBLE */ + KW_IS_CONVERTIBLE_TO = 349, /* KW_IS_CONVERTIBLE_TO */ + KW_IS_DESTRUCTIBLE = 350, /* KW_IS_DESTRUCTIBLE */ + KW_IS_EMPTY = 351, /* KW_IS_EMPTY */ + KW_IS_ENUM = 352, /* KW_IS_ENUM */ + KW_IS_FINAL = 353, /* KW_IS_FINAL */ + KW_IS_FUNDAMENTAL = 354, /* KW_IS_FUNDAMENTAL */ + KW_IS_POD = 355, /* KW_IS_POD */ + KW_IS_POLYMORPHIC = 356, /* KW_IS_POLYMORPHIC */ + KW_IS_STANDARD_LAYOUT = 357, /* KW_IS_STANDARD_LAYOUT */ + KW_IS_TRIVIAL = 358, /* KW_IS_TRIVIAL */ + KW_IS_UNION = 359, /* KW_IS_UNION */ + KW_LONG = 360, /* KW_LONG */ + KW_MAKE_MAP_KEYS_SEQ = 361, /* KW_MAKE_MAP_KEYS_SEQ */ + KW_MAKE_MAP_PROPERTY = 362, /* KW_MAKE_MAP_PROPERTY */ + KW_MAKE_PROPERTY = 363, /* KW_MAKE_PROPERTY */ + KW_MAKE_PROPERTY2 = 364, /* KW_MAKE_PROPERTY2 */ + KW_MAKE_SEQ = 365, /* KW_MAKE_SEQ */ + KW_MAKE_SEQ_PROPERTY = 366, /* KW_MAKE_SEQ_PROPERTY */ + KW_MUTABLE = 367, /* KW_MUTABLE */ + KW_NAMESPACE = 368, /* KW_NAMESPACE */ + KW_NEW = 369, /* KW_NEW */ + KW_NOEXCEPT = 370, /* KW_NOEXCEPT */ + KW_NOEXCEPT_LPAREN = 371, /* KW_NOEXCEPT_LPAREN */ + KW_NULLPTR = 372, /* KW_NULLPTR */ + KW_OPERATOR = 373, /* KW_OPERATOR */ + KW_OVERRIDE = 374, /* KW_OVERRIDE */ + KW_PRIVATE = 375, /* KW_PRIVATE */ + KW_PROTECTED = 376, /* KW_PROTECTED */ + KW_PUBLIC = 377, /* KW_PUBLIC */ + KW_REGISTER = 378, /* KW_REGISTER */ + KW_REINTERPRET_CAST = 379, /* KW_REINTERPRET_CAST */ + KW_RETURN = 380, /* KW_RETURN */ + KW_SHORT = 381, /* KW_SHORT */ + KW_SIGNED = 382, /* KW_SIGNED */ + KW_SIZEOF = 383, /* KW_SIZEOF */ + KW_STATIC = 384, /* KW_STATIC */ + KW_STATIC_ASSERT = 385, /* KW_STATIC_ASSERT */ + KW_STATIC_CAST = 386, /* KW_STATIC_CAST */ + KW_STRUCT = 387, /* KW_STRUCT */ + KW_TEMPLATE = 388, /* KW_TEMPLATE */ + KW_THREAD_LOCAL = 389, /* KW_THREAD_LOCAL */ + KW_THROW = 390, /* KW_THROW */ + KW_TRUE = 391, /* KW_TRUE */ + KW_TRY = 392, /* KW_TRY */ + KW_TYPEDEF = 393, /* KW_TYPEDEF */ + KW_TYPEID = 394, /* KW_TYPEID */ + KW_TYPENAME = 395, /* KW_TYPENAME */ + KW_UNDERLYING_TYPE = 396, /* KW_UNDERLYING_TYPE */ + KW_UNION = 397, /* KW_UNION */ + KW_UNSIGNED = 398, /* KW_UNSIGNED */ + KW_USING = 399, /* KW_USING */ + KW_VIRTUAL = 400, /* KW_VIRTUAL */ + KW_VOID = 401, /* KW_VOID */ + KW_VOLATILE = 402, /* KW_VOLATILE */ + KW_WCHAR_T = 403, /* KW_WCHAR_T */ + KW_WHILE = 404, /* KW_WHILE */ + START_CPP = 405, /* START_CPP */ + START_CONST_EXPR = 406, /* START_CONST_EXPR */ + START_TYPE = 407 /* START_TYPE */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -284,79 +286,81 @@ extern int cppyydebug; #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 +#define KW_EXPLICIT_LPAREN 333 +#define KW_PUBLISHED 334 +#define KW_FALSE 335 +#define KW_FINAL 336 +#define KW_FLOAT 337 +#define KW_FRIEND 338 +#define KW_FOR 339 +#define KW_GOTO 340 +#define KW_HAS_VIRTUAL_DESTRUCTOR 341 +#define KW_IF 342 +#define KW_INLINE 343 +#define KW_INT 344 +#define KW_IS_ABSTRACT 345 +#define KW_IS_BASE_OF 346 +#define KW_IS_CLASS 347 +#define KW_IS_CONSTRUCTIBLE 348 +#define KW_IS_CONVERTIBLE_TO 349 +#define KW_IS_DESTRUCTIBLE 350 +#define KW_IS_EMPTY 351 +#define KW_IS_ENUM 352 +#define KW_IS_FINAL 353 +#define KW_IS_FUNDAMENTAL 354 +#define KW_IS_POD 355 +#define KW_IS_POLYMORPHIC 356 +#define KW_IS_STANDARD_LAYOUT 357 +#define KW_IS_TRIVIAL 358 +#define KW_IS_UNION 359 +#define KW_LONG 360 +#define KW_MAKE_MAP_KEYS_SEQ 361 +#define KW_MAKE_MAP_PROPERTY 362 +#define KW_MAKE_PROPERTY 363 +#define KW_MAKE_PROPERTY2 364 +#define KW_MAKE_SEQ 365 +#define KW_MAKE_SEQ_PROPERTY 366 +#define KW_MUTABLE 367 +#define KW_NAMESPACE 368 +#define KW_NEW 369 +#define KW_NOEXCEPT 370 +#define KW_NOEXCEPT_LPAREN 371 +#define KW_NULLPTR 372 +#define KW_OPERATOR 373 +#define KW_OVERRIDE 374 +#define KW_PRIVATE 375 +#define KW_PROTECTED 376 +#define KW_PUBLIC 377 +#define KW_REGISTER 378 +#define KW_REINTERPRET_CAST 379 +#define KW_RETURN 380 +#define KW_SHORT 381 +#define KW_SIGNED 382 +#define KW_SIZEOF 383 +#define KW_STATIC 384 +#define KW_STATIC_ASSERT 385 +#define KW_STATIC_CAST 386 +#define KW_STRUCT 387 +#define KW_TEMPLATE 388 +#define KW_THREAD_LOCAL 389 +#define KW_THROW 390 +#define KW_TRUE 391 +#define KW_TRY 392 +#define KW_TYPEDEF 393 +#define KW_TYPEID 394 +#define KW_TYPENAME 395 +#define KW_UNDERLYING_TYPE 396 +#define KW_UNION 397 +#define KW_UNSIGNED 398 +#define KW_USING 399 +#define KW_VIRTUAL 400 +#define KW_VOID 401 +#define KW_VOLATILE 402 +#define KW_WCHAR_T 403 +#define KW_WHILE 404 +#define START_CPP 405 +#define START_CONST_EXPR 406 +#define START_TYPE 407 /* Value type. */ diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index 12a0db10a5..8ef39b0de6 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -283,6 +283,7 @@ pop_struct() { %token KW_EXTENSION %token KW_EXTERN %token KW_EXPLICIT +%token KW_EXPLICIT_LPAREN %token KW_PUBLISHED %token KW_FALSE %token KW_FINAL @@ -320,6 +321,7 @@ pop_struct() { %token KW_NAMESPACE %token KW_NEW %token KW_NOEXCEPT +%token KW_NOEXCEPT_LPAREN %token KW_NULLPTR %token KW_OPERATOR %token KW_OVERRIDE @@ -995,6 +997,15 @@ storage_class: | KW_EXPLICIT storage_class { $$ = $2 | (int)CPPInstance::SC_explicit; +} + | KW_EXPLICIT_LPAREN const_expr ')' storage_class +{ + CPPExpression::Result result = $2->evaluate(); + if (result._type == CPPExpression::RT_error) { + yywarning("explicit() requires a constant expression", @2); + } else if (result.as_boolean()) { + $$ = $4 | (int)CPPInstance::SC_explicit; + } } | KW_REGISTER storage_class { @@ -1452,15 +1463,15 @@ function_post: { $$ = $1 | (int)CPPFunctionType::F_noexcept; } -/* | function_post KW_NOEXCEPT '(' const_expr ')' + | function_post KW_NOEXCEPT_LPAREN const_expr ')' { - CPPExpression::Result result = $4->evaluate(); + CPPExpression::Result result = $3->evaluate(); if (result._type == CPPExpression::RT_error) { - yywarning("noexcept requires a constant expression", @4); + yywarning("noexcept() requires a constant expression", @3); } else if (result.as_boolean()) { $$ = $1 | (int)CPPFunctionType::F_noexcept; } -}*/ +} | function_post KW_FINAL { $$ = $1 | (int)CPPFunctionType::F_final; @@ -3071,6 +3082,12 @@ using_declaration: CPPUsing *using_decl = new CPPUsing($3, true, @1.file); current_scope->add_declaration(using_decl, global_scope, current_lexer, @1); current_scope->add_using(using_decl, global_scope, current_lexer); +} + | KW_USING KW_ENUM name ';' +{ + CPPUsing *using_decl = new CPPUsing($3, false, @1.file); + current_scope->add_declaration(using_decl, global_scope, current_lexer, @1); + current_scope->add_using(using_decl, global_scope, current_lexer); } ; @@ -3219,10 +3236,10 @@ element: | 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_ELSE | KW_ENUM | KW_EXTERN | KW_EXPLICIT | KW_EXPLICIT_LPAREN | 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_GOTO | KW_IF | KW_INLINE | KW_INT | KW_LONG | KW_MUTABLE + | KW_NAMESPACE | KW_NEW | KW_NOEXCEPT | KW_NOEXCEPT_LPAREN | KW_NULLPTR | KW_OPERATOR | KW_OVERRIDE | KW_PRIVATE | KW_PROTECTED | KW_PUBLIC | KW_PUBLISHED | KW_REGISTER | KW_REINTERPRET_CAST | KW_RETURN | KW_SHORT | KW_SIGNED | KW_SIZEOF | KW_STATIC @@ -3723,6 +3740,10 @@ const_expr: | const_expr '(' ')' { $$ = new CPPExpression('f', $1); +} + | KW_NOEXCEPT_LPAREN const_expr ')' +{ + $$ = new CPPExpression(KW_NOEXCEPT, $2); } | const_expr '.' name { diff --git a/dtool/src/cppparser/cppExpression.cxx b/dtool/src/cppparser/cppExpression.cxx index 1092c89d39..516f2418ac 100644 --- a/dtool/src/cppparser/cppExpression.cxx +++ b/dtool/src/cppparser/cppExpression.cxx @@ -860,6 +860,9 @@ evaluate() const { case ',': return r2; + case KW_NOEXCEPT: + return Result(); + default: cerr << "**unexpected operator**\n"; abort(); @@ -1180,6 +1183,7 @@ determine_type() const { case GECOMPARE: case '<': case '>': + case KW_NOEXCEPT: return bool_type; case SPACESHIP: @@ -1908,6 +1912,12 @@ output(std::ostream &out, int indent_level, CPPScope *scope, bool) const { out << "()"; break; + case KW_NOEXCEPT: + out << "noexcept("; + _u._op._op1->output(out, indent_level, scope, false); + out << ")"; + break; + default: out << "(" << (char)_u._op._operator << " "; _u._op._op1->output(out, indent_level, scope, false); diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index c74cbeaa5d..d8ee49e491 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -1987,6 +1987,24 @@ get_identifier(int c) { } if (kw != 0) { + if (kw == KW_EXPLICIT || kw == KW_NOEXCEPT) { + // These can be followed by a left-paren. Doing this helps to avoid + // shift/reduce conflicts in the parser. + while (c != EOF && isspace(c)) { + get(); + c = peek(); + } + if (c == '(') { + if (kw == KW_EXPLICIT) { + kw = KW_EXPLICIT_LPAREN; + } + else if (kw == KW_NOEXCEPT) { + kw = KW_NOEXCEPT_LPAREN; + } + get(); + } + } + YYSTYPE result; result.u.identifier = nullptr; return CPPToken(kw, loc, name, result);