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:
parent
53424699e4
commit
f08554e958
17 changed files with 541 additions and 512 deletions
16
spec/fixtures/parsers/anonymous_tokens.c
vendored
16
spec/fixtures/parsers/anonymous_tokens.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
42
spec/fixtures/parsers/arithmetic.c
vendored
42
spec/fixtures/parsers/arithmetic.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
160
spec/fixtures/parsers/c.c
vendored
160
spec/fixtures/parsers/c.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
168
spec/fixtures/parsers/cpp.c
vendored
168
spec/fixtures/parsers/cpp.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
170
spec/fixtures/parsers/golang.c
vendored
170
spec/fixtures/parsers/golang.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
214
spec/fixtures/parsers/javascript.c
vendored
214
spec/fixtures/parsers/javascript.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
38
spec/fixtures/parsers/json.c
vendored
38
spec/fixtures/parsers/json.c
vendored
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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([&]() {
|
||||
|
|
|
|||
|
|
@ -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)"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue