Make ts_language_symbol_for_name work for ERROR
This commit is contained in:
parent
068c9841a1
commit
69c815107f
2 changed files with 23 additions and 0 deletions
|
|
@ -48,6 +48,8 @@ const char *ts_language_symbol_name(const TSLanguage *language, TSSymbol symbol)
|
|||
}
|
||||
|
||||
TSSymbol ts_language_symbol_for_name(const TSLanguage *self, const char *name) {
|
||||
if (!strcmp(name, "ERROR")) return ts_builtin_sym_error;
|
||||
|
||||
for (TSSymbol i = 0; i < self->symbol_count; i++) {
|
||||
if (!strcmp(self->symbol_names[i], name)) {
|
||||
return i;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,27 @@ describe("Language", []() {
|
|||
ts_tree_delete(tree);
|
||||
});
|
||||
});
|
||||
|
||||
describe("symbol_for_name(name)", [&]() {
|
||||
it("returns the symbol for the given name", [&]() {
|
||||
const TSLanguage *language = load_real_language("javascript");
|
||||
AssertThat(
|
||||
ts_language_symbol_name(
|
||||
language,
|
||||
ts_language_symbol_for_name(language, "if_statement")
|
||||
),
|
||||
Equals("if_statement")
|
||||
);
|
||||
AssertThat(
|
||||
ts_language_symbol_name(
|
||||
language,
|
||||
ts_language_symbol_for_name(language, "ERROR")
|
||||
),
|
||||
Equals("ERROR")
|
||||
);
|
||||
AssertThat(ts_language_symbol_for_name(language, "non_existent_symbol"), Equals(0u));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
END_TEST
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue