Replace NodeType enum with SymbolMetadata bitfield

This will allow storing other metadata about symbols, like if they
only appear as ubiquitous tokens
This commit is contained in:
Max Brunsfeld 2015-11-22 13:32:20 -08:00
parent 53424699e4
commit f08554e958
17 changed files with 541 additions and 512 deletions

View file

@ -21,14 +21,14 @@ static const char *ts_symbol_names[] = {
[anon_sym_DQUOTEhello_DQUOTE] = "\"hello\"",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym_program] = TSNodeTypeNamed,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_LF] = TSNodeTypeAnonymous,
[anon_sym_CR] = TSNodeTypeAnonymous,
[aux_sym_SLASH_BSLASHd_SLASH] = TSNodeTypeHidden,
[anon_sym_DQUOTEhello_DQUOTE] = TSNodeTypeAnonymous,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym_program] = {.visible = true, .named = true},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_LF] = {.visible = true, .named = false},
[anon_sym_CR] = {.visible = true, .named = false},
[aux_sym_SLASH_BSLASHd_SLASH] = {.visible = false, .named = false},
[anon_sym_DQUOTEhello_DQUOTE] = {.visible = true, .named = false},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -47,27 +47,27 @@ static const char *ts_symbol_names[] = {
[sym_comment] = "comment",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym_program] = TSNodeTypeNamed,
[sym__expression] = TSNodeTypeHidden,
[sym_sum] = TSNodeTypeNamed,
[sym_difference] = TSNodeTypeNamed,
[sym_product] = TSNodeTypeNamed,
[sym_quotient] = TSNodeTypeNamed,
[sym_exponent] = TSNodeTypeNamed,
[sym_group] = TSNodeTypeNamed,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_PLUS] = TSNodeTypeAnonymous,
[anon_sym_DASH] = TSNodeTypeAnonymous,
[anon_sym_STAR] = TSNodeTypeAnonymous,
[anon_sym_SLASH] = TSNodeTypeAnonymous,
[anon_sym_CARET] = TSNodeTypeAnonymous,
[anon_sym_LPAREN] = TSNodeTypeAnonymous,
[anon_sym_RPAREN] = TSNodeTypeAnonymous,
[sym_number] = TSNodeTypeNamed,
[sym_variable] = TSNodeTypeNamed,
[sym_comment] = TSNodeTypeNamed,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym_program] = {.visible = true, .named = true},
[sym__expression] = {.visible = false, .named = false},
[sym_sum] = {.visible = true, .named = true},
[sym_difference] = {.visible = true, .named = true},
[sym_product] = {.visible = true, .named = true},
[sym_quotient] = {.visible = true, .named = true},
[sym_exponent] = {.visible = true, .named = true},
[sym_group] = {.visible = true, .named = true},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_PLUS] = {.visible = true, .named = false},
[anon_sym_DASH] = {.visible = true, .named = false},
[anon_sym_STAR] = {.visible = true, .named = false},
[anon_sym_SLASH] = {.visible = true, .named = false},
[anon_sym_CARET] = {.visible = true, .named = false},
[anon_sym_LPAREN] = {.visible = true, .named = false},
[anon_sym_RPAREN] = {.visible = true, .named = false},
[sym_number] = {.visible = true, .named = true},
[sym_variable] = {.visible = true, .named = true},
[sym_comment] = {.visible = true, .named = true},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -165,86 +165,86 @@ static const char *ts_symbol_names[] = {
[sym_comment] = "comment",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym_translation_unit] = TSNodeTypeNamed,
[sym_preproc_define] = TSNodeTypeNamed,
[sym_function_definition] = TSNodeTypeNamed,
[sym_declaration_specifiers] = TSNodeTypeNamed,
[sym_storage_class_specifier] = TSNodeTypeNamed,
[sym__type_specifier] = TSNodeTypeHidden,
[sym_numeric_type_specifier] = TSNodeTypeNamed,
[sym_struct_specifier] = TSNodeTypeNamed,
[sym_type_name] = TSNodeTypeNamed,
[sym_struct_declaration] = TSNodeTypeNamed,
[sym_parameter_declaration] = TSNodeTypeNamed,
[sym_declaration] = TSNodeTypeNamed,
[sym__init_declarator] = TSNodeTypeHidden,
[sym_initializer] = TSNodeTypeNamed,
[sym_initializer_list] = TSNodeTypeNamed,
[sym_designation] = TSNodeTypeNamed,
[sym__declarator] = TSNodeTypeHidden,
[sym__abstract_declarator] = TSNodeTypeHidden,
[sym_pointer_declarator] = TSNodeTypeNamed,
[sym_abstract_pointer_declarator] = TSNodeTypeNamed,
[sym_function_declarator] = TSNodeTypeNamed,
[sym_abstract_function_declarator] = TSNodeTypeNamed,
[sym_array_declarator] = TSNodeTypeNamed,
[sym_abstract_array_declarator] = TSNodeTypeNamed,
[sym_type_qualifier] = TSNodeTypeNamed,
[sym_compound_statement] = TSNodeTypeNamed,
[sym__expression] = TSNodeTypeHidden,
[sym_cast_expression] = TSNodeTypeNamed,
[sym_math_expression] = TSNodeTypeNamed,
[sym_call_expression] = TSNodeTypeNamed,
[sym_pointer_expression] = TSNodeTypeNamed,
[sym__statement] = TSNodeTypeHidden,
[sym_expression_statement] = TSNodeTypeNamed,
[sym_macro_type] = TSNodeTypeNamed,
[aux_sym_translation_unit_repeat1] = TSNodeTypeHidden,
[aux_sym_declaration_specifiers_repeat1] = TSNodeTypeHidden,
[aux_sym_numeric_type_specifier_repeat1] = TSNodeTypeHidden,
[aux_sym_struct_specifier_repeat1] = TSNodeTypeHidden,
[aux_sym_type_name_repeat1] = TSNodeTypeHidden,
[aux_sym_declaration_repeat1] = TSNodeTypeHidden,
[aux_sym_designation_repeat1] = TSNodeTypeHidden,
[aux_sym_function_declarator_repeat1] = TSNodeTypeHidden,
[aux_sym_compound_statement_repeat1] = TSNodeTypeHidden,
[aux_sym_call_expression_repeat1] = TSNodeTypeHidden,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_POUNDdefine] = TSNodeTypeAnonymous,
[anon_sym_LF] = TSNodeTypeAnonymous,
[sym_preproc_arg] = TSNodeTypeNamed,
[anon_sym_typedef] = TSNodeTypeAnonymous,
[anon_sym_extern] = TSNodeTypeAnonymous,
[anon_sym_static] = TSNodeTypeAnonymous,
[anon_sym_auto] = TSNodeTypeAnonymous,
[anon_sym_register] = TSNodeTypeAnonymous,
[anon_sym_signed] = TSNodeTypeAnonymous,
[anon_sym_unsigned] = TSNodeTypeAnonymous,
[anon_sym_long] = TSNodeTypeAnonymous,
[anon_sym_short] = TSNodeTypeAnonymous,
[anon_sym_struct] = TSNodeTypeAnonymous,
[anon_sym_LBRACE] = TSNodeTypeAnonymous,
[anon_sym_RBRACE] = TSNodeTypeAnonymous,
[anon_sym_COMMA] = TSNodeTypeAnonymous,
[anon_sym_SEMI] = TSNodeTypeAnonymous,
[anon_sym_EQ] = TSNodeTypeAnonymous,
[anon_sym_LBRACK] = TSNodeTypeAnonymous,
[anon_sym_RBRACK] = TSNodeTypeAnonymous,
[anon_sym_DOT] = TSNodeTypeAnonymous,
[anon_sym_LPAREN] = TSNodeTypeAnonymous,
[anon_sym_RPAREN] = TSNodeTypeAnonymous,
[anon_sym_STAR] = TSNodeTypeAnonymous,
[anon_sym_const] = TSNodeTypeAnonymous,
[anon_sym_restrict] = TSNodeTypeAnonymous,
[anon_sym_volatile] = TSNodeTypeAnonymous,
[anon_sym_PLUS] = TSNodeTypeAnonymous,
[anon_sym_AMP] = TSNodeTypeAnonymous,
[sym_string] = TSNodeTypeNamed,
[sym_identifier] = TSNodeTypeNamed,
[sym_number] = TSNodeTypeNamed,
[sym_comment] = TSNodeTypeNamed,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym_translation_unit] = {.visible = true, .named = true},
[sym_preproc_define] = {.visible = true, .named = true},
[sym_function_definition] = {.visible = true, .named = true},
[sym_declaration_specifiers] = {.visible = true, .named = true},
[sym_storage_class_specifier] = {.visible = true, .named = true},
[sym__type_specifier] = {.visible = false, .named = false},
[sym_numeric_type_specifier] = {.visible = true, .named = true},
[sym_struct_specifier] = {.visible = true, .named = true},
[sym_type_name] = {.visible = true, .named = true},
[sym_struct_declaration] = {.visible = true, .named = true},
[sym_parameter_declaration] = {.visible = true, .named = true},
[sym_declaration] = {.visible = true, .named = true},
[sym__init_declarator] = {.visible = false, .named = false},
[sym_initializer] = {.visible = true, .named = true},
[sym_initializer_list] = {.visible = true, .named = true},
[sym_designation] = {.visible = true, .named = true},
[sym__declarator] = {.visible = false, .named = false},
[sym__abstract_declarator] = {.visible = false, .named = false},
[sym_pointer_declarator] = {.visible = true, .named = true},
[sym_abstract_pointer_declarator] = {.visible = true, .named = true},
[sym_function_declarator] = {.visible = true, .named = true},
[sym_abstract_function_declarator] = {.visible = true, .named = true},
[sym_array_declarator] = {.visible = true, .named = true},
[sym_abstract_array_declarator] = {.visible = true, .named = true},
[sym_type_qualifier] = {.visible = true, .named = true},
[sym_compound_statement] = {.visible = true, .named = true},
[sym__expression] = {.visible = false, .named = false},
[sym_cast_expression] = {.visible = true, .named = true},
[sym_math_expression] = {.visible = true, .named = true},
[sym_call_expression] = {.visible = true, .named = true},
[sym_pointer_expression] = {.visible = true, .named = true},
[sym__statement] = {.visible = false, .named = false},
[sym_expression_statement] = {.visible = true, .named = true},
[sym_macro_type] = {.visible = true, .named = true},
[aux_sym_translation_unit_repeat1] = {.visible = false, .named = false},
[aux_sym_declaration_specifiers_repeat1] = {.visible = false, .named = false},
[aux_sym_numeric_type_specifier_repeat1] = {.visible = false, .named = false},
[aux_sym_struct_specifier_repeat1] = {.visible = false, .named = false},
[aux_sym_type_name_repeat1] = {.visible = false, .named = false},
[aux_sym_declaration_repeat1] = {.visible = false, .named = false},
[aux_sym_designation_repeat1] = {.visible = false, .named = false},
[aux_sym_function_declarator_repeat1] = {.visible = false, .named = false},
[aux_sym_compound_statement_repeat1] = {.visible = false, .named = false},
[aux_sym_call_expression_repeat1] = {.visible = false, .named = false},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_POUNDdefine] = {.visible = true, .named = false},
[anon_sym_LF] = {.visible = true, .named = false},
[sym_preproc_arg] = {.visible = true, .named = true},
[anon_sym_typedef] = {.visible = true, .named = false},
[anon_sym_extern] = {.visible = true, .named = false},
[anon_sym_static] = {.visible = true, .named = false},
[anon_sym_auto] = {.visible = true, .named = false},
[anon_sym_register] = {.visible = true, .named = false},
[anon_sym_signed] = {.visible = true, .named = false},
[anon_sym_unsigned] = {.visible = true, .named = false},
[anon_sym_long] = {.visible = true, .named = false},
[anon_sym_short] = {.visible = true, .named = false},
[anon_sym_struct] = {.visible = true, .named = false},
[anon_sym_LBRACE] = {.visible = true, .named = false},
[anon_sym_RBRACE] = {.visible = true, .named = false},
[anon_sym_COMMA] = {.visible = true, .named = false},
[anon_sym_SEMI] = {.visible = true, .named = false},
[anon_sym_EQ] = {.visible = true, .named = false},
[anon_sym_LBRACK] = {.visible = true, .named = false},
[anon_sym_RBRACK] = {.visible = true, .named = false},
[anon_sym_DOT] = {.visible = true, .named = false},
[anon_sym_LPAREN] = {.visible = true, .named = false},
[anon_sym_RPAREN] = {.visible = true, .named = false},
[anon_sym_STAR] = {.visible = true, .named = false},
[anon_sym_const] = {.visible = true, .named = false},
[anon_sym_restrict] = {.visible = true, .named = false},
[anon_sym_volatile] = {.visible = true, .named = false},
[anon_sym_PLUS] = {.visible = true, .named = false},
[anon_sym_AMP] = {.visible = true, .named = false},
[sym_string] = {.visible = true, .named = true},
[sym_identifier] = {.visible = true, .named = true},
[sym_number] = {.visible = true, .named = true},
[sym_comment] = {.visible = true, .named = true},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -173,90 +173,90 @@ static const char *ts_symbol_names[] = {
[sym_comment] = "comment",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym_translation_unit] = TSNodeTypeNamed,
[sym__declaration] = TSNodeTypeHidden,
[sym__block_declaration] = TSNodeTypeHidden,
[sym_function_definition] = TSNodeTypeNamed,
[sym_simple_declaration] = TSNodeTypeNamed,
[sym_namespace_alias_definition] = TSNodeTypeNamed,
[sym_scoped_identifier] = TSNodeTypeNamed,
[sym_declarator] = TSNodeTypeNamed,
[sym_abstract_declarator] = TSNodeTypeNamed,
[sym_direct_declarator] = TSNodeTypeNamed,
[sym_parameter_declaration] = TSNodeTypeNamed,
[sym_direct_abstract_declarator] = TSNodeTypeNamed,
[sym_cv_qualifier] = TSNodeTypeNamed,
[sym_type_id] = TSNodeTypeNamed,
[sym_pointer_operator] = TSNodeTypeNamed,
[sym_function_body] = TSNodeTypeNamed,
[sym_constructor_initializer] = TSNodeTypeNamed,
[sym_member_initializer] = TSNodeTypeNamed,
[sym_init_declarator] = TSNodeTypeNamed,
[sym_decl_specifier] = TSNodeTypeNamed,
[sym_storage_class_specifier] = TSNodeTypeNamed,
[sym_type_specifier] = TSNodeTypeNamed,
[sym_compound_statement] = TSNodeTypeNamed,
[sym__statement] = TSNodeTypeHidden,
[sym_expression_statement] = TSNodeTypeNamed,
[sym_initializer] = TSNodeTypeNamed,
[sym_initializer_clause] = TSNodeTypeNamed,
[sym_function_specifier] = TSNodeTypeNamed,
[sym__expression] = TSNodeTypeHidden,
[sym_call_expression] = TSNodeTypeNamed,
[sym_relational_expression] = TSNodeTypeNamed,
[sym_template_call] = TSNodeTypeNamed,
[aux_sym_translation_unit_repeat1] = TSNodeTypeHidden,
[aux_sym_function_definition_repeat1] = TSNodeTypeHidden,
[aux_sym_simple_declaration_repeat1] = TSNodeTypeHidden,
[aux_sym_declarator_repeat1] = TSNodeTypeHidden,
[aux_sym_direct_declarator_repeat1] = TSNodeTypeHidden,
[aux_sym_pointer_operator_repeat1] = TSNodeTypeHidden,
[aux_sym_constructor_initializer_repeat1] = TSNodeTypeHidden,
[aux_sym_compound_statement_repeat1] = TSNodeTypeHidden,
[aux_sym_call_expression_repeat1] = TSNodeTypeHidden,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_EQ] = TSNodeTypeAnonymous,
[anon_sym_default] = TSNodeTypeAnonymous,
[anon_sym_delete] = TSNodeTypeAnonymous,
[anon_sym_SEMI] = TSNodeTypeAnonymous,
[anon_sym_COMMA] = TSNodeTypeAnonymous,
[anon_sym_namespace] = TSNodeTypeAnonymous,
[anon_sym_COLON_COLON] = TSNodeTypeAnonymous,
[anon_sym_LPAREN] = TSNodeTypeAnonymous,
[anon_sym_RPAREN] = TSNodeTypeAnonymous,
[anon_sym_const] = TSNodeTypeAnonymous,
[anon_sym_volatile] = TSNodeTypeAnonymous,
[anon_sym_STAR] = TSNodeTypeAnonymous,
[anon_sym_AMP] = TSNodeTypeAnonymous,
[anon_sym_AMP_AMP] = TSNodeTypeAnonymous,
[anon_sym_COLON] = TSNodeTypeAnonymous,
[anon_sym_DOT_DOT_DOT] = TSNodeTypeAnonymous,
[anon_sym_initializer_list] = TSNodeTypeAnonymous,
[anon_sym_friend] = TSNodeTypeAnonymous,
[anon_sym_typedef] = TSNodeTypeAnonymous,
[anon_sym_constexpr] = TSNodeTypeAnonymous,
[anon_sym_register] = TSNodeTypeAnonymous,
[anon_sym_static] = TSNodeTypeAnonymous,
[anon_sym_thread_local] = TSNodeTypeAnonymous,
[anon_sym_extern] = TSNodeTypeAnonymous,
[anon_sym_mutable] = TSNodeTypeAnonymous,
[anon_sym_LBRACE] = TSNodeTypeAnonymous,
[anon_sym_RBRACE] = TSNodeTypeAnonymous,
[anon_sym_inline] = TSNodeTypeAnonymous,
[anon_sym_virtual] = TSNodeTypeAnonymous,
[anon_sym_explicit] = TSNodeTypeAnonymous,
[anon_sym_GT] = TSNodeTypeAnonymous,
[anon_sym_GT_EQ] = TSNodeTypeAnonymous,
[anon_sym_EQ_EQ] = TSNodeTypeAnonymous,
[anon_sym_BANG_EQ] = TSNodeTypeAnonymous,
[anon_sym_LT_EQ] = TSNodeTypeAnonymous,
[anon_sym_LT] = TSNodeTypeAnonymous,
[sym_string] = TSNodeTypeNamed,
[sym_identifier] = TSNodeTypeNamed,
[sym_number] = TSNodeTypeNamed,
[sym_comment] = TSNodeTypeNamed,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym_translation_unit] = {.visible = true, .named = true},
[sym__declaration] = {.visible = false, .named = false},
[sym__block_declaration] = {.visible = false, .named = false},
[sym_function_definition] = {.visible = true, .named = true},
[sym_simple_declaration] = {.visible = true, .named = true},
[sym_namespace_alias_definition] = {.visible = true, .named = true},
[sym_scoped_identifier] = {.visible = true, .named = true},
[sym_declarator] = {.visible = true, .named = true},
[sym_abstract_declarator] = {.visible = true, .named = true},
[sym_direct_declarator] = {.visible = true, .named = true},
[sym_parameter_declaration] = {.visible = true, .named = true},
[sym_direct_abstract_declarator] = {.visible = true, .named = true},
[sym_cv_qualifier] = {.visible = true, .named = true},
[sym_type_id] = {.visible = true, .named = true},
[sym_pointer_operator] = {.visible = true, .named = true},
[sym_function_body] = {.visible = true, .named = true},
[sym_constructor_initializer] = {.visible = true, .named = true},
[sym_member_initializer] = {.visible = true, .named = true},
[sym_init_declarator] = {.visible = true, .named = true},
[sym_decl_specifier] = {.visible = true, .named = true},
[sym_storage_class_specifier] = {.visible = true, .named = true},
[sym_type_specifier] = {.visible = true, .named = true},
[sym_compound_statement] = {.visible = true, .named = true},
[sym__statement] = {.visible = false, .named = false},
[sym_expression_statement] = {.visible = true, .named = true},
[sym_initializer] = {.visible = true, .named = true},
[sym_initializer_clause] = {.visible = true, .named = true},
[sym_function_specifier] = {.visible = true, .named = true},
[sym__expression] = {.visible = false, .named = false},
[sym_call_expression] = {.visible = true, .named = true},
[sym_relational_expression] = {.visible = true, .named = true},
[sym_template_call] = {.visible = true, .named = true},
[aux_sym_translation_unit_repeat1] = {.visible = false, .named = false},
[aux_sym_function_definition_repeat1] = {.visible = false, .named = false},
[aux_sym_simple_declaration_repeat1] = {.visible = false, .named = false},
[aux_sym_declarator_repeat1] = {.visible = false, .named = false},
[aux_sym_direct_declarator_repeat1] = {.visible = false, .named = false},
[aux_sym_pointer_operator_repeat1] = {.visible = false, .named = false},
[aux_sym_constructor_initializer_repeat1] = {.visible = false, .named = false},
[aux_sym_compound_statement_repeat1] = {.visible = false, .named = false},
[aux_sym_call_expression_repeat1] = {.visible = false, .named = false},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_EQ] = {.visible = true, .named = false},
[anon_sym_default] = {.visible = true, .named = false},
[anon_sym_delete] = {.visible = true, .named = false},
[anon_sym_SEMI] = {.visible = true, .named = false},
[anon_sym_COMMA] = {.visible = true, .named = false},
[anon_sym_namespace] = {.visible = true, .named = false},
[anon_sym_COLON_COLON] = {.visible = true, .named = false},
[anon_sym_LPAREN] = {.visible = true, .named = false},
[anon_sym_RPAREN] = {.visible = true, .named = false},
[anon_sym_const] = {.visible = true, .named = false},
[anon_sym_volatile] = {.visible = true, .named = false},
[anon_sym_STAR] = {.visible = true, .named = false},
[anon_sym_AMP] = {.visible = true, .named = false},
[anon_sym_AMP_AMP] = {.visible = true, .named = false},
[anon_sym_COLON] = {.visible = true, .named = false},
[anon_sym_DOT_DOT_DOT] = {.visible = true, .named = false},
[anon_sym_initializer_list] = {.visible = true, .named = false},
[anon_sym_friend] = {.visible = true, .named = false},
[anon_sym_typedef] = {.visible = true, .named = false},
[anon_sym_constexpr] = {.visible = true, .named = false},
[anon_sym_register] = {.visible = true, .named = false},
[anon_sym_static] = {.visible = true, .named = false},
[anon_sym_thread_local] = {.visible = true, .named = false},
[anon_sym_extern] = {.visible = true, .named = false},
[anon_sym_mutable] = {.visible = true, .named = false},
[anon_sym_LBRACE] = {.visible = true, .named = false},
[anon_sym_RBRACE] = {.visible = true, .named = false},
[anon_sym_inline] = {.visible = true, .named = false},
[anon_sym_virtual] = {.visible = true, .named = false},
[anon_sym_explicit] = {.visible = true, .named = false},
[anon_sym_GT] = {.visible = true, .named = false},
[anon_sym_GT_EQ] = {.visible = true, .named = false},
[anon_sym_EQ_EQ] = {.visible = true, .named = false},
[anon_sym_BANG_EQ] = {.visible = true, .named = false},
[anon_sym_LT_EQ] = {.visible = true, .named = false},
[anon_sym_LT] = {.visible = true, .named = false},
[sym_string] = {.visible = true, .named = true},
[sym_identifier] = {.visible = true, .named = true},
[sym_number] = {.visible = true, .named = true},
[sym_comment] = {.visible = true, .named = true},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -175,91 +175,91 @@ static const char *ts_symbol_names[] = {
[sym_comment] = "comment",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym_program] = TSNodeTypeNamed,
[sym_package_directive] = TSNodeTypeNamed,
[sym_imports_block] = TSNodeTypeNamed,
[sym_package_import] = TSNodeTypeNamed,
[sym__declaration] = TSNodeTypeHidden,
[sym_type_declaration] = TSNodeTypeNamed,
[sym_var_declaration] = TSNodeTypeNamed,
[sym_func_declaration] = TSNodeTypeNamed,
[sym_block_statement] = TSNodeTypeNamed,
[sym__type_expression] = TSNodeTypeHidden,
[sym_pointer_type] = TSNodeTypeNamed,
[sym_map_type] = TSNodeTypeNamed,
[sym_slice_type] = TSNodeTypeNamed,
[sym_struct_type] = TSNodeTypeNamed,
[sym_interface_type] = TSNodeTypeNamed,
[sym__statement] = TSNodeTypeHidden,
[sym_return_statement] = TSNodeTypeNamed,
[sym_short_var_declaration] = TSNodeTypeNamed,
[sym_range_statement] = TSNodeTypeNamed,
[sym_if_statement] = TSNodeTypeNamed,
[sym_expression_statement] = TSNodeTypeNamed,
[sym__expression] = TSNodeTypeHidden,
[sym_call_expression] = TSNodeTypeNamed,
[sym_selector_expression] = TSNodeTypeNamed,
[sym_math_op] = TSNodeTypeNamed,
[sym_bool_op] = TSNodeTypeNamed,
[sym__func_signature] = TSNodeTypeHidden,
[sym_package_name] = TSNodeTypeNamed,
[sym_var_name] = TSNodeTypeNamed,
[sym_type_name] = TSNodeTypeNamed,
[aux_sym_program_repeat1] = TSNodeTypeHidden,
[aux_sym_program_repeat2] = TSNodeTypeHidden,
[aux_sym_imports_block_repeat1] = TSNodeTypeHidden,
[aux_sym_block_statement_repeat1] = TSNodeTypeHidden,
[aux_sym_struct_type_repeat1] = TSNodeTypeHidden,
[aux_sym_interface_type_repeat1] = TSNodeTypeHidden,
[aux_sym_return_statement_repeat1] = TSNodeTypeHidden,
[aux_sym_short_var_declaration_repeat1] = TSNodeTypeHidden,
[aux_sym__func_signature_repeat1] = TSNodeTypeHidden,
[aux_sym__func_signature_repeat2] = TSNodeTypeHidden,
[aux_sym__func_signature_repeat3] = TSNodeTypeHidden,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_package] = TSNodeTypeAnonymous,
[anon_sym_import] = TSNodeTypeAnonymous,
[anon_sym_LPAREN] = TSNodeTypeAnonymous,
[anon_sym_RPAREN] = TSNodeTypeAnonymous,
[anon_sym_type] = TSNodeTypeAnonymous,
[anon_sym_SEMI] = TSNodeTypeAnonymous,
[anon_sym_var] = TSNodeTypeAnonymous,
[anon_sym_EQ] = TSNodeTypeAnonymous,
[anon_sym_func] = TSNodeTypeAnonymous,
[anon_sym_LBRACE] = TSNodeTypeAnonymous,
[anon_sym_RBRACE] = TSNodeTypeAnonymous,
[anon_sym_STAR] = TSNodeTypeAnonymous,
[anon_sym_map] = TSNodeTypeAnonymous,
[anon_sym_LBRACK] = TSNodeTypeAnonymous,
[anon_sym_RBRACK] = TSNodeTypeAnonymous,
[anon_sym_struct] = TSNodeTypeAnonymous,
[anon_sym_interface] = TSNodeTypeAnonymous,
[anon_sym_return] = TSNodeTypeAnonymous,
[anon_sym_COMMA] = TSNodeTypeAnonymous,
[anon_sym_COLON_EQ] = TSNodeTypeAnonymous,
[anon_sym_for] = TSNodeTypeAnonymous,
[anon_sym_range] = TSNodeTypeAnonymous,
[anon_sym_if] = TSNodeTypeAnonymous,
[anon_sym_else] = TSNodeTypeAnonymous,
[anon_sym_DOT] = TSNodeTypeAnonymous,
[anon_sym_SLASH] = TSNodeTypeAnonymous,
[anon_sym_PLUS] = TSNodeTypeAnonymous,
[anon_sym_DASH] = TSNodeTypeAnonymous,
[anon_sym_PIPE_PIPE] = TSNodeTypeAnonymous,
[anon_sym_AMP_AMP] = TSNodeTypeAnonymous,
[anon_sym_EQ_EQ] = TSNodeTypeAnonymous,
[anon_sym_LT_EQ] = TSNodeTypeAnonymous,
[anon_sym_LT] = TSNodeTypeAnonymous,
[anon_sym_GT_EQ] = TSNodeTypeAnonymous,
[anon_sym_GT] = TSNodeTypeAnonymous,
[anon_sym_BANG] = TSNodeTypeAnonymous,
[sym__line_break] = TSNodeTypeHidden,
[sym_string] = TSNodeTypeNamed,
[sym__identifier] = TSNodeTypeHidden,
[sym_number] = TSNodeTypeNamed,
[sym_comment] = TSNodeTypeNamed,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym_program] = {.visible = true, .named = true},
[sym_package_directive] = {.visible = true, .named = true},
[sym_imports_block] = {.visible = true, .named = true},
[sym_package_import] = {.visible = true, .named = true},
[sym__declaration] = {.visible = false, .named = false},
[sym_type_declaration] = {.visible = true, .named = true},
[sym_var_declaration] = {.visible = true, .named = true},
[sym_func_declaration] = {.visible = true, .named = true},
[sym_block_statement] = {.visible = true, .named = true},
[sym__type_expression] = {.visible = false, .named = false},
[sym_pointer_type] = {.visible = true, .named = true},
[sym_map_type] = {.visible = true, .named = true},
[sym_slice_type] = {.visible = true, .named = true},
[sym_struct_type] = {.visible = true, .named = true},
[sym_interface_type] = {.visible = true, .named = true},
[sym__statement] = {.visible = false, .named = false},
[sym_return_statement] = {.visible = true, .named = true},
[sym_short_var_declaration] = {.visible = true, .named = true},
[sym_range_statement] = {.visible = true, .named = true},
[sym_if_statement] = {.visible = true, .named = true},
[sym_expression_statement] = {.visible = true, .named = true},
[sym__expression] = {.visible = false, .named = false},
[sym_call_expression] = {.visible = true, .named = true},
[sym_selector_expression] = {.visible = true, .named = true},
[sym_math_op] = {.visible = true, .named = true},
[sym_bool_op] = {.visible = true, .named = true},
[sym__func_signature] = {.visible = false, .named = false},
[sym_package_name] = {.visible = true, .named = true},
[sym_var_name] = {.visible = true, .named = true},
[sym_type_name] = {.visible = true, .named = true},
[aux_sym_program_repeat1] = {.visible = false, .named = false},
[aux_sym_program_repeat2] = {.visible = false, .named = false},
[aux_sym_imports_block_repeat1] = {.visible = false, .named = false},
[aux_sym_block_statement_repeat1] = {.visible = false, .named = false},
[aux_sym_struct_type_repeat1] = {.visible = false, .named = false},
[aux_sym_interface_type_repeat1] = {.visible = false, .named = false},
[aux_sym_return_statement_repeat1] = {.visible = false, .named = false},
[aux_sym_short_var_declaration_repeat1] = {.visible = false, .named = false},
[aux_sym__func_signature_repeat1] = {.visible = false, .named = false},
[aux_sym__func_signature_repeat2] = {.visible = false, .named = false},
[aux_sym__func_signature_repeat3] = {.visible = false, .named = false},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_package] = {.visible = true, .named = false},
[anon_sym_import] = {.visible = true, .named = false},
[anon_sym_LPAREN] = {.visible = true, .named = false},
[anon_sym_RPAREN] = {.visible = true, .named = false},
[anon_sym_type] = {.visible = true, .named = false},
[anon_sym_SEMI] = {.visible = true, .named = false},
[anon_sym_var] = {.visible = true, .named = false},
[anon_sym_EQ] = {.visible = true, .named = false},
[anon_sym_func] = {.visible = true, .named = false},
[anon_sym_LBRACE] = {.visible = true, .named = false},
[anon_sym_RBRACE] = {.visible = true, .named = false},
[anon_sym_STAR] = {.visible = true, .named = false},
[anon_sym_map] = {.visible = true, .named = false},
[anon_sym_LBRACK] = {.visible = true, .named = false},
[anon_sym_RBRACK] = {.visible = true, .named = false},
[anon_sym_struct] = {.visible = true, .named = false},
[anon_sym_interface] = {.visible = true, .named = false},
[anon_sym_return] = {.visible = true, .named = false},
[anon_sym_COMMA] = {.visible = true, .named = false},
[anon_sym_COLON_EQ] = {.visible = true, .named = false},
[anon_sym_for] = {.visible = true, .named = false},
[anon_sym_range] = {.visible = true, .named = false},
[anon_sym_if] = {.visible = true, .named = false},
[anon_sym_else] = {.visible = true, .named = false},
[anon_sym_DOT] = {.visible = true, .named = false},
[anon_sym_SLASH] = {.visible = true, .named = false},
[anon_sym_PLUS] = {.visible = true, .named = false},
[anon_sym_DASH] = {.visible = true, .named = false},
[anon_sym_PIPE_PIPE] = {.visible = true, .named = false},
[anon_sym_AMP_AMP] = {.visible = true, .named = false},
[anon_sym_EQ_EQ] = {.visible = true, .named = false},
[anon_sym_LT_EQ] = {.visible = true, .named = false},
[anon_sym_LT] = {.visible = true, .named = false},
[anon_sym_GT_EQ] = {.visible = true, .named = false},
[anon_sym_GT] = {.visible = true, .named = false},
[anon_sym_BANG] = {.visible = true, .named = false},
[sym__line_break] = {.visible = false, .named = false},
[sym_string] = {.visible = true, .named = true},
[sym__identifier] = {.visible = false, .named = false},
[sym_number] = {.visible = true, .named = true},
[sym_comment] = {.visible = true, .named = true},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -219,113 +219,113 @@ static const char *ts_symbol_names[] = {
[sym__line_break] = "_line_break",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym_program] = TSNodeTypeNamed,
[sym__statement] = TSNodeTypeHidden,
[sym_expression_statement] = TSNodeTypeNamed,
[sym_var_declaration] = TSNodeTypeNamed,
[sym_statement_block] = TSNodeTypeNamed,
[sym_if_statement] = TSNodeTypeNamed,
[sym_switch_statement] = TSNodeTypeNamed,
[sym_for_statement] = TSNodeTypeNamed,
[sym_for_in_statement] = TSNodeTypeNamed,
[sym_while_statement] = TSNodeTypeNamed,
[sym_try_statement] = TSNodeTypeNamed,
[sym_return_statement] = TSNodeTypeNamed,
[sym_throw_statement] = TSNodeTypeNamed,
[sym_break_statement] = TSNodeTypeNamed,
[sym_delete_statement] = TSNodeTypeNamed,
[sym_case] = TSNodeTypeNamed,
[sym_default] = TSNodeTypeNamed,
[sym_catch] = TSNodeTypeNamed,
[sym_finally] = TSNodeTypeNamed,
[sym_var_assignment] = TSNodeTypeNamed,
[sym__paren_expression] = TSNodeTypeHidden,
[sym__expression] = TSNodeTypeHidden,
[sym_object] = TSNodeTypeNamed,
[sym_array] = TSNodeTypeNamed,
[sym_function_expression] = TSNodeTypeNamed,
[sym_function_call] = TSNodeTypeNamed,
[sym_constructor_call] = TSNodeTypeNamed,
[sym_member_access] = TSNodeTypeNamed,
[sym_subscript_access] = TSNodeTypeNamed,
[sym_assignment] = TSNodeTypeNamed,
[sym_math_assignment] = TSNodeTypeNamed,
[sym_ternary] = TSNodeTypeNamed,
[sym_bool_op] = TSNodeTypeNamed,
[sym_math_op] = TSNodeTypeNamed,
[sym_rel_op] = TSNodeTypeNamed,
[sym_type_op] = TSNodeTypeNamed,
[sym_formal_parameters] = TSNodeTypeNamed,
[sym_arguments] = TSNodeTypeNamed,
[sym_pair] = TSNodeTypeNamed,
[aux_sym_program_repeat1] = TSNodeTypeHidden,
[aux_sym_var_declaration_repeat1] = TSNodeTypeHidden,
[aux_sym_switch_statement_repeat1] = TSNodeTypeHidden,
[aux_sym_object_repeat1] = TSNodeTypeHidden,
[aux_sym_array_repeat1] = TSNodeTypeHidden,
[aux_sym_formal_parameters_repeat1] = TSNodeTypeHidden,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_SEMI] = TSNodeTypeAnonymous,
[anon_sym_var] = TSNodeTypeAnonymous,
[anon_sym_COMMA] = TSNodeTypeAnonymous,
[anon_sym_LBRACE] = TSNodeTypeAnonymous,
[anon_sym_RBRACE] = TSNodeTypeAnonymous,
[anon_sym_if] = TSNodeTypeAnonymous,
[anon_sym_else] = TSNodeTypeAnonymous,
[anon_sym_switch] = TSNodeTypeAnonymous,
[anon_sym_for] = TSNodeTypeAnonymous,
[anon_sym_LPAREN] = TSNodeTypeAnonymous,
[anon_sym_RPAREN] = TSNodeTypeAnonymous,
[anon_sym_in] = TSNodeTypeAnonymous,
[anon_sym_while] = TSNodeTypeAnonymous,
[anon_sym_try] = TSNodeTypeAnonymous,
[anon_sym_return] = TSNodeTypeAnonymous,
[anon_sym_throw] = TSNodeTypeAnonymous,
[anon_sym_break] = TSNodeTypeAnonymous,
[anon_sym_delete] = TSNodeTypeAnonymous,
[anon_sym_case] = TSNodeTypeAnonymous,
[anon_sym_COLON] = TSNodeTypeAnonymous,
[anon_sym_default] = TSNodeTypeAnonymous,
[anon_sym_catch] = TSNodeTypeAnonymous,
[anon_sym_finally] = TSNodeTypeAnonymous,
[anon_sym_EQ] = TSNodeTypeAnonymous,
[anon_sym_LBRACK] = TSNodeTypeAnonymous,
[anon_sym_RBRACK] = TSNodeTypeAnonymous,
[anon_sym_function] = TSNodeTypeAnonymous,
[anon_sym_new] = TSNodeTypeAnonymous,
[anon_sym_DOT] = TSNodeTypeAnonymous,
[anon_sym_PLUS_EQ] = TSNodeTypeAnonymous,
[anon_sym_DASH_EQ] = TSNodeTypeAnonymous,
[anon_sym_STAR_EQ] = TSNodeTypeAnonymous,
[anon_sym_SLASH_EQ] = TSNodeTypeAnonymous,
[anon_sym_QMARK] = TSNodeTypeAnonymous,
[anon_sym_PIPE_PIPE] = TSNodeTypeAnonymous,
[anon_sym_AMP_AMP] = TSNodeTypeAnonymous,
[anon_sym_BANG] = TSNodeTypeAnonymous,
[anon_sym_PLUS_PLUS] = TSNodeTypeAnonymous,
[anon_sym_DASH_DASH] = TSNodeTypeAnonymous,
[anon_sym_STAR] = TSNodeTypeAnonymous,
[anon_sym_SLASH] = TSNodeTypeAnonymous,
[anon_sym_PLUS] = TSNodeTypeAnonymous,
[anon_sym_DASH] = TSNodeTypeAnonymous,
[anon_sym_EQ_EQ_EQ] = TSNodeTypeAnonymous,
[anon_sym_BANG_EQ_EQ] = TSNodeTypeAnonymous,
[anon_sym_LT] = TSNodeTypeAnonymous,
[anon_sym_GT] = TSNodeTypeAnonymous,
[anon_sym_instanceof] = TSNodeTypeAnonymous,
[anon_sym_typeof] = TSNodeTypeAnonymous,
[sym_comment] = TSNodeTypeNamed,
[sym_string] = TSNodeTypeNamed,
[sym_regex] = TSNodeTypeNamed,
[sym_number] = TSNodeTypeNamed,
[sym_identifier] = TSNodeTypeNamed,
[sym_null] = TSNodeTypeNamed,
[sym_undefined] = TSNodeTypeNamed,
[sym_true] = TSNodeTypeNamed,
[sym_false] = TSNodeTypeNamed,
[sym__line_break] = TSNodeTypeHidden,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym_program] = {.visible = true, .named = true},
[sym__statement] = {.visible = false, .named = false},
[sym_expression_statement] = {.visible = true, .named = true},
[sym_var_declaration] = {.visible = true, .named = true},
[sym_statement_block] = {.visible = true, .named = true},
[sym_if_statement] = {.visible = true, .named = true},
[sym_switch_statement] = {.visible = true, .named = true},
[sym_for_statement] = {.visible = true, .named = true},
[sym_for_in_statement] = {.visible = true, .named = true},
[sym_while_statement] = {.visible = true, .named = true},
[sym_try_statement] = {.visible = true, .named = true},
[sym_return_statement] = {.visible = true, .named = true},
[sym_throw_statement] = {.visible = true, .named = true},
[sym_break_statement] = {.visible = true, .named = true},
[sym_delete_statement] = {.visible = true, .named = true},
[sym_case] = {.visible = true, .named = true},
[sym_default] = {.visible = true, .named = true},
[sym_catch] = {.visible = true, .named = true},
[sym_finally] = {.visible = true, .named = true},
[sym_var_assignment] = {.visible = true, .named = true},
[sym__paren_expression] = {.visible = false, .named = false},
[sym__expression] = {.visible = false, .named = false},
[sym_object] = {.visible = true, .named = true},
[sym_array] = {.visible = true, .named = true},
[sym_function_expression] = {.visible = true, .named = true},
[sym_function_call] = {.visible = true, .named = true},
[sym_constructor_call] = {.visible = true, .named = true},
[sym_member_access] = {.visible = true, .named = true},
[sym_subscript_access] = {.visible = true, .named = true},
[sym_assignment] = {.visible = true, .named = true},
[sym_math_assignment] = {.visible = true, .named = true},
[sym_ternary] = {.visible = true, .named = true},
[sym_bool_op] = {.visible = true, .named = true},
[sym_math_op] = {.visible = true, .named = true},
[sym_rel_op] = {.visible = true, .named = true},
[sym_type_op] = {.visible = true, .named = true},
[sym_formal_parameters] = {.visible = true, .named = true},
[sym_arguments] = {.visible = true, .named = true},
[sym_pair] = {.visible = true, .named = true},
[aux_sym_program_repeat1] = {.visible = false, .named = false},
[aux_sym_var_declaration_repeat1] = {.visible = false, .named = false},
[aux_sym_switch_statement_repeat1] = {.visible = false, .named = false},
[aux_sym_object_repeat1] = {.visible = false, .named = false},
[aux_sym_array_repeat1] = {.visible = false, .named = false},
[aux_sym_formal_parameters_repeat1] = {.visible = false, .named = false},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_SEMI] = {.visible = true, .named = false},
[anon_sym_var] = {.visible = true, .named = false},
[anon_sym_COMMA] = {.visible = true, .named = false},
[anon_sym_LBRACE] = {.visible = true, .named = false},
[anon_sym_RBRACE] = {.visible = true, .named = false},
[anon_sym_if] = {.visible = true, .named = false},
[anon_sym_else] = {.visible = true, .named = false},
[anon_sym_switch] = {.visible = true, .named = false},
[anon_sym_for] = {.visible = true, .named = false},
[anon_sym_LPAREN] = {.visible = true, .named = false},
[anon_sym_RPAREN] = {.visible = true, .named = false},
[anon_sym_in] = {.visible = true, .named = false},
[anon_sym_while] = {.visible = true, .named = false},
[anon_sym_try] = {.visible = true, .named = false},
[anon_sym_return] = {.visible = true, .named = false},
[anon_sym_throw] = {.visible = true, .named = false},
[anon_sym_break] = {.visible = true, .named = false},
[anon_sym_delete] = {.visible = true, .named = false},
[anon_sym_case] = {.visible = true, .named = false},
[anon_sym_COLON] = {.visible = true, .named = false},
[anon_sym_default] = {.visible = true, .named = false},
[anon_sym_catch] = {.visible = true, .named = false},
[anon_sym_finally] = {.visible = true, .named = false},
[anon_sym_EQ] = {.visible = true, .named = false},
[anon_sym_LBRACK] = {.visible = true, .named = false},
[anon_sym_RBRACK] = {.visible = true, .named = false},
[anon_sym_function] = {.visible = true, .named = false},
[anon_sym_new] = {.visible = true, .named = false},
[anon_sym_DOT] = {.visible = true, .named = false},
[anon_sym_PLUS_EQ] = {.visible = true, .named = false},
[anon_sym_DASH_EQ] = {.visible = true, .named = false},
[anon_sym_STAR_EQ] = {.visible = true, .named = false},
[anon_sym_SLASH_EQ] = {.visible = true, .named = false},
[anon_sym_QMARK] = {.visible = true, .named = false},
[anon_sym_PIPE_PIPE] = {.visible = true, .named = false},
[anon_sym_AMP_AMP] = {.visible = true, .named = false},
[anon_sym_BANG] = {.visible = true, .named = false},
[anon_sym_PLUS_PLUS] = {.visible = true, .named = false},
[anon_sym_DASH_DASH] = {.visible = true, .named = false},
[anon_sym_STAR] = {.visible = true, .named = false},
[anon_sym_SLASH] = {.visible = true, .named = false},
[anon_sym_PLUS] = {.visible = true, .named = false},
[anon_sym_DASH] = {.visible = true, .named = false},
[anon_sym_EQ_EQ_EQ] = {.visible = true, .named = false},
[anon_sym_BANG_EQ_EQ] = {.visible = true, .named = false},
[anon_sym_LT] = {.visible = true, .named = false},
[anon_sym_GT] = {.visible = true, .named = false},
[anon_sym_instanceof] = {.visible = true, .named = false},
[anon_sym_typeof] = {.visible = true, .named = false},
[sym_comment] = {.visible = true, .named = true},
[sym_string] = {.visible = true, .named = true},
[sym_regex] = {.visible = true, .named = true},
[sym_number] = {.visible = true, .named = true},
[sym_identifier] = {.visible = true, .named = true},
[sym_null] = {.visible = true, .named = true},
[sym_undefined] = {.visible = true, .named = true},
[sym_true] = {.visible = true, .named = true},
[sym_false] = {.visible = true, .named = true},
[sym__line_break] = {.visible = false, .named = false},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -43,25 +43,25 @@ static const char *ts_symbol_names[] = {
[sym_false] = "false",
};
static const TSNodeType ts_node_types[SYMBOL_COUNT] = {
[sym__value] = TSNodeTypeHidden,
[sym_object] = TSNodeTypeNamed,
[sym_array] = TSNodeTypeNamed,
[aux_sym_object_repeat1] = TSNodeTypeHidden,
[aux_sym_array_repeat1] = TSNodeTypeHidden,
[ts_builtin_sym_error] = TSNodeTypeNamed,
[ts_builtin_sym_end] = TSNodeTypeHidden,
[anon_sym_LBRACE] = TSNodeTypeAnonymous,
[anon_sym_COLON] = TSNodeTypeAnonymous,
[anon_sym_COMMA] = TSNodeTypeAnonymous,
[anon_sym_RBRACE] = TSNodeTypeAnonymous,
[anon_sym_LBRACK] = TSNodeTypeAnonymous,
[anon_sym_RBRACK] = TSNodeTypeAnonymous,
[sym_string] = TSNodeTypeNamed,
[sym_number] = TSNodeTypeNamed,
[sym_null] = TSNodeTypeNamed,
[sym_true] = TSNodeTypeNamed,
[sym_false] = TSNodeTypeNamed,
static const TSSymbolMetadata ts_symbol_metadata[SYMBOL_COUNT] = {
[sym__value] = {.visible = false, .named = false},
[sym_object] = {.visible = true, .named = true},
[sym_array] = {.visible = true, .named = true},
[aux_sym_object_repeat1] = {.visible = false, .named = false},
[aux_sym_array_repeat1] = {.visible = false, .named = false},
[ts_builtin_sym_error] = {.visible = true, .named = true},
[ts_builtin_sym_end] = {.visible = false, .named = false},
[anon_sym_LBRACE] = {.visible = true, .named = false},
[anon_sym_COLON] = {.visible = true, .named = false},
[anon_sym_COMMA] = {.visible = true, .named = false},
[anon_sym_RBRACE] = {.visible = true, .named = false},
[anon_sym_LBRACK] = {.visible = true, .named = false},
[anon_sym_RBRACK] = {.visible = true, .named = false},
[sym_string] = {.visible = true, .named = true},
[sym_number] = {.visible = true, .named = true},
[sym_null] = {.visible = true, .named = true},
[sym_true] = {.visible = true, .named = true},
[sym_false] = {.visible = true, .named = true},
};
static TSTree *ts_lex(TSLexer *lexer, TSStateId lex_state) {

View file

@ -225,7 +225,7 @@ describe("Node", []() {
});
});
describe("next_named_sibling(), prev_concrete_sibling()", [&]() {
describe("next_named_sibling(), prev_named_sibling()", [&]() {
it("returns the node's next and previous siblings", [&]() {
TSNode number_node = ts_node_named_child(array_node, 0);
TSNode false_node = ts_node_named_child(array_node, 1);
@ -249,7 +249,7 @@ describe("Node", []() {
});
});
describe("find_for_range(start, end)", [&]() {
describe("named_descendant_for_range(start, end)", [&]() {
describe("when there is a leaf node that spans the given range exactly", [&]() {
it("returns that leaf node", [&]() {
TSNode leaf = ts_node_named_descendent_for_range(array_node, 28, 30);

View file

@ -43,8 +43,9 @@ describe("Stack", [&]() {
});
TSLength len = ts_length_make(2, 2);
TSPoint point = ts_point_make(1, 1);
for (size_t i = 0; i < tree_count; i++)
trees[i] = ts_tree_make_leaf(i, len, len, {1, 1}, {1, 2}, TSNodeTypeNamed);
trees[i] = ts_tree_make_leaf(i, len, len, point, point, {});
});
after_each([&]() {

View file

@ -27,14 +27,16 @@ static const char *names[] = {
describe("Tree", []() {
TSTree *tree1, *tree2, *parent1;
TSSymbolMetadata visible = {true, true};
TSSymbolMetadata invisible = {false, false};
before_each([&]() {
tree1 = ts_tree_make_leaf(cat, {2, 1}, {5, 4}, ts_point_zero(), ts_point_zero(), TSNodeTypeNamed);
tree2 = ts_tree_make_leaf(cat, {1, 1}, {3, 3}, ts_point_zero(), ts_point_zero(), TSNodeTypeNamed);
tree1 = ts_tree_make_leaf(cat, {2, 1}, {5, 4}, ts_point_zero(), ts_point_zero(), visible);
tree2 = ts_tree_make_leaf(cat, {1, 1}, {3, 3}, ts_point_zero(), ts_point_zero(), visible);
parent1 = ts_tree_make_node(dog, 2, tree_array({
tree1,
tree2,
}), TSNodeTypeNamed);
}), visible);
});
after_each([&]() {
@ -86,7 +88,7 @@ describe("Tree", []() {
parent = ts_tree_make_node(eel, 2, tree_array({
tree1,
tree2,
}), TSNodeTypeNamed);
}), visible);
});
after_each([&]() {
@ -107,7 +109,7 @@ describe("Tree", []() {
parent = ts_tree_make_node(eel, 2, tree_array({
tree1,
tree2,
}), TSNodeTypeNamed);
}), visible);
});
after_each([&]() {
@ -128,7 +130,7 @@ describe("Tree", []() {
parent = ts_tree_make_node(eel, 2, tree_array({
tree1,
tree2,
}), TSNodeTypeNamed);
}), visible);
});
after_each([&]() {
@ -147,10 +149,10 @@ describe("Tree", []() {
before_each([&]() {
tree = ts_tree_make_node(cat, 3, tree_array({
ts_tree_make_leaf(dog, {2, 2}, {3, 3}, {1, 2}, {1, 3}, TSNodeTypeNamed),
ts_tree_make_leaf(eel, {2, 2}, {3, 3}, {1, 2}, {1, 3}, TSNodeTypeNamed),
ts_tree_make_leaf(fox, {2, 2}, {3, 3}, {1, 2}, {1, 3}, TSNodeTypeNamed),
}), TSNodeTypeNamed);
ts_tree_make_leaf(dog, {2, 2}, {3, 3}, {1, 2}, {1, 3}, visible),
ts_tree_make_leaf(eel, {2, 2}, {3, 3}, {1, 2}, {1, 3}, visible),
ts_tree_make_leaf(fox, {2, 2}, {3, 3}, {1, 2}, {1, 3}, visible),
}), visible);
AssertThat(tree->padding, Equals<TSLength>({2, 2}));
AssertThat(tree->size, Equals<TSLength>({13, 13}));
@ -268,16 +270,16 @@ describe("Tree", []() {
describe("equality", [&]() {
it("returns true for identical trees", [&]() {
TSTree *tree1_copy = ts_tree_make_leaf(cat, {2, 1}, {5, 4}, {1, 1}, {1, 4}, TSNodeTypeNamed);
TSTree *tree1_copy = ts_tree_make_leaf(cat, {2, 1}, {5, 4}, {1, 1}, {1, 4}, visible);
AssertThat(ts_tree_eq(tree1, tree1_copy), IsTrue());
TSTree *tree2_copy = ts_tree_make_leaf(cat, {1, 1}, {3, 3}, {1, 1}, {1, 3}, TSNodeTypeNamed);
TSTree *tree2_copy = ts_tree_make_leaf(cat, {1, 1}, {3, 3}, {1, 1}, {1, 3}, visible);
AssertThat(ts_tree_eq(tree2, tree2_copy), IsTrue());
TSTree *parent2 = ts_tree_make_node(dog, 2, tree_array({
tree1_copy,
tree2_copy,
}), TSNodeTypeNamed);
}), visible);
AssertThat(ts_tree_eq(parent1, parent2), IsTrue());
@ -293,12 +295,28 @@ describe("Tree", []() {
tree1->size,
tree1->padding_point,
tree1->size_point,
TSNodeTypeNamed);
visible);
AssertThat(ts_tree_eq(tree1, different_tree), IsFalse());
ts_tree_release(different_tree);
});
it("returns false for trees with different options", [&]() {
TSTree *tree1_copy = ts_tree_make_leaf(cat, tree1->padding, tree1->size, tree1->padding_point, tree1->size_point, invisible);
AssertThat(ts_tree_eq(tree1, tree1_copy), IsFalse());
ts_tree_release(tree1_copy);
});
it("returns false for trees with different 2D dimensions", [&]() {
TSTree *tree1_copy = ts_tree_make_leaf(cat, tree1->padding, tree1->size, {5, 10}, tree1->size_point, invisible);
AssertThat(ts_tree_eq(tree1, tree1_copy), IsFalse());
ts_tree_release(tree1_copy);
tree1_copy = ts_tree_make_leaf(cat, tree1->padding, tree1->size, tree1->padding_point, {5, 10}, invisible);
AssertThat(ts_tree_eq(tree1, tree1_copy), IsFalse());
ts_tree_release(tree1_copy);
});
it("returns false for trees with different children", [&]() {
TSTree *different_tree = ts_tree_make_leaf(
tree1->symbol + 1,
@ -306,11 +324,11 @@ describe("Tree", []() {
tree1->size,
tree1->padding_point,
tree1->size_point,
TSNodeTypeNamed);
visible);
TSTree *different_parent = ts_tree_make_node(dog, 2, tree_array({
different_tree, different_tree,
}), TSNodeTypeNamed);
}), visible);
AssertThat(ts_tree_eq(different_parent, parent1), IsFalse());
AssertThat(ts_tree_eq(parent1, different_parent), IsFalse());
@ -332,7 +350,7 @@ describe("Tree", []() {
});
it("hides invisible nodes", [&]() {
tree2->options.type = TSNodeTypeHidden;
tree2->options.visible = false;
char *string1 = ts_tree_string(parent1, names, true);
AssertThat(string(string1), Equals("(dog (cat))"));
@ -341,13 +359,13 @@ describe("Tree", []() {
describe("when the root node is not visible", [&]() {
it("still serializes it", [&]() {
parent1->options.type = TSNodeTypeHidden;
parent1->options.visible = false;
char *string1 = ts_tree_string(parent1, names, true);
AssertThat(string(string1), Equals("(dog (cat) (cat))"));
free(string1);
tree1->options.type = TSNodeTypeHidden;
tree1->options.visible = false;
char *string2 = ts_tree_string(tree1, names, true);
AssertThat(string(string2), Equals("(cat)"));