diff --git a/include/tree_sitter/runtime.h b/include/tree_sitter/runtime.h index e68f9430..1143ad0e 100644 --- a/include/tree_sitter/runtime.h +++ b/include/tree_sitter/runtime.h @@ -79,6 +79,9 @@ void ts_document_invalidate(TSDocument *); TSNode ts_document_root_node(const TSDocument *); size_t ts_document_parse_count(const TSDocument *); +size_t ts_language_symbol_count(const TSLanguage *); +const char *ts_language_symbol_name(TSLanguage *, TSSymbol); + #define ts_builtin_sym_error 0 #define ts_builtin_sym_end 1 #define ts_builtin_sym_start 2 diff --git a/project.gyp b/project.gyp index c7d24219..1ebebb70 100644 --- a/project.gyp +++ b/project.gyp @@ -107,6 +107,7 @@ ], 'sources': [ 'src/runtime/document.c', + 'src/runtime/language.c', 'src/runtime/lexer.c', 'src/runtime/node.c', 'src/runtime/stack.c', diff --git a/src/runtime/language.c b/src/runtime/language.c new file mode 100644 index 00000000..ece2dec4 --- /dev/null +++ b/src/runtime/language.c @@ -0,0 +1,9 @@ +#include "tree_sitter/parser.h" + +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]; +}