tree-sitter/src/runtime/language.c
2015-12-29 21:17:31 -08:00

27 lines
1,002 B
C

#include "tree_sitter/parser.h"
const TSParseAction *ts_language_actions(const TSLanguage *language,
TSStateId state, TSSymbol sym,
size_t *count) {
unsigned short action_index =
(language->parse_table + (state * language->symbol_count))[sym];
*count = language->parse_actions[action_index].count;
const TSParseActionEntry *entry = language->parse_actions + action_index + 1;
return (const TSParseAction *)entry;
}
TSParseAction ts_language_last_action(const TSLanguage *language,
TSStateId state, TSSymbol sym) {
size_t count;
const TSParseAction *actions =
ts_language_actions(language, state, sym, &count);
return actions[count - 1];
}
size_t ts_language_symbol_count(const TSLanguage *language) {
return language->symbol_count;
}
const char *ts_language_symbol_name(TSLanguage *language, TSSymbol symbol) {
return language->symbol_names[symbol];
}