runtime: make ts_language_symbol_for_name work for alias symbols
This commit is contained in:
parent
5e456ccbb0
commit
ca24942929
2 changed files with 11 additions and 1 deletions
|
|
@ -50,7 +50,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++) {
|
||||
uint32_t count = ts_language_symbol_count(self);
|
||||
for (TSSymbol i = 0; i < count; i++) {
|
||||
if (!strcmp(self->symbol_names[i], name)) {
|
||||
return i;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,15 @@ describe("Language", []() {
|
|||
Equals("ERROR")
|
||||
);
|
||||
AssertThat(ts_language_symbol_for_name(language, "non_existent_symbol"), Equals(0u));
|
||||
|
||||
TSSymbol last = ts_language_symbol_count(language)-1;
|
||||
AssertThat(
|
||||
ts_language_symbol_for_name(
|
||||
language,
|
||||
ts_language_symbol_name(language, last)
|
||||
),
|
||||
Equals(last)
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue