From 63f1a618b4faac46e71a1d3095f8278f238a4a07 Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Wed, 28 Oct 2015 17:12:43 -0400 Subject: [PATCH 01/10] Add a prototype for getting the name for a symbol from a document. --- include/tree_sitter/runtime.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/tree_sitter/runtime.h b/include/tree_sitter/runtime.h index e68f9430..f3516d15 100644 --- a/include/tree_sitter/runtime.h +++ b/include/tree_sitter/runtime.h @@ -71,6 +71,7 @@ void ts_document_set_language(TSDocument *, const TSLanguage *); TSInput ts_document_input(TSDocument *); void ts_document_set_input(TSDocument *, TSInput); void ts_document_set_input_string(TSDocument *, const char *); +const char *ts_document_symbol_name(TSDocument *, TSSymbol); TSDebugger ts_document_debugger(const TSDocument *); void ts_document_set_debugger(TSDocument *, TSDebugger); void ts_document_edit(TSDocument *, TSInputEdit); From 8143224098b80fb225637e6bf72892ee41bfcdfd Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Wed, 28 Oct 2015 17:13:31 -0400 Subject: [PATCH 02/10] Implement `ts_document_symbol_name`. --- src/runtime/document.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/document.c b/src/runtime/document.c index 091bda23..b37f1197 100644 --- a/src/runtime/document.c +++ b/src/runtime/document.c @@ -50,6 +50,10 @@ void ts_document_set_input_string(TSDocument *self, const char *text) { ts_document_set_input(self, ts_string_input_make(text)); } +const char *ts_document_symbol_name(TSDocument *document, TSSymbol symbol) { + return document->parser.language->symbol_names[symbol]; +} + void ts_document_edit(TSDocument *self, TSInputEdit edit) { if (!self->tree) return; From 09162d1981daf6212d5024598a15c35d8fd76614 Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:40:01 -0400 Subject: [PATCH 03/10] =?UTF-8?q?Export=20the=20symbol=20over=20`ts=5Flang?= =?UTF-8?q?uage=5F=E2=80=A6`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/tree_sitter/runtime.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/tree_sitter/runtime.h b/include/tree_sitter/runtime.h index f3516d15..00b02473 100644 --- a/include/tree_sitter/runtime.h +++ b/include/tree_sitter/runtime.h @@ -71,7 +71,6 @@ void ts_document_set_language(TSDocument *, const TSLanguage *); TSInput ts_document_input(TSDocument *); void ts_document_set_input(TSDocument *, TSInput); void ts_document_set_input_string(TSDocument *, const char *); -const char *ts_document_symbol_name(TSDocument *, TSSymbol); TSDebugger ts_document_debugger(const TSDocument *); void ts_document_set_debugger(TSDocument *, TSDebugger); void ts_document_edit(TSDocument *, TSInputEdit); @@ -80,6 +79,8 @@ void ts_document_invalidate(TSDocument *); TSNode ts_document_root_node(const TSDocument *); size_t ts_document_parse_count(const TSDocument *); +const char *ts_language_symbol_name(TSDocument *, TSSymbol); + #define ts_builtin_sym_error 0 #define ts_builtin_sym_end 1 #define ts_builtin_sym_start 2 From a176baa26fd99ed9177dd5100d754120652e9f8d Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:41:21 -0400 Subject: [PATCH 04/10] Pass a language, rather than a document. --- include/tree_sitter/runtime.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/tree_sitter/runtime.h b/include/tree_sitter/runtime.h index 00b02473..67141fb3 100644 --- a/include/tree_sitter/runtime.h +++ b/include/tree_sitter/runtime.h @@ -79,7 +79,7 @@ void ts_document_invalidate(TSDocument *); TSNode ts_document_root_node(const TSDocument *); size_t ts_document_parse_count(const TSDocument *); -const char *ts_language_symbol_name(TSDocument *, TSSymbol); +const char *ts_language_symbol_name(TSLanguage *, TSSymbol); #define ts_builtin_sym_error 0 #define ts_builtin_sym_end 1 From ecf79564f0e23c2e30f1c2ab91be009b1d171a1b Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:42:52 -0400 Subject: [PATCH 05/10] Implement symbol name retrieval on TSLanguage. --- src/runtime/document.c | 4 ---- src/runtime/language.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 src/runtime/language.c diff --git a/src/runtime/document.c b/src/runtime/document.c index b37f1197..091bda23 100644 --- a/src/runtime/document.c +++ b/src/runtime/document.c @@ -50,10 +50,6 @@ void ts_document_set_input_string(TSDocument *self, const char *text) { ts_document_set_input(self, ts_string_input_make(text)); } -const char *ts_document_symbol_name(TSDocument *document, TSSymbol symbol) { - return document->parser.language->symbol_names[symbol]; -} - void ts_document_edit(TSDocument *self, TSInputEdit edit) { if (!self->tree) return; diff --git a/src/runtime/language.c b/src/runtime/language.c new file mode 100644 index 00000000..71749867 --- /dev/null +++ b/src/runtime/language.c @@ -0,0 +1,5 @@ +#include "runtime/parser.h" + +const char *ts_language_symbol_name(TSLanguage *language, TSSymbol symbol) { + return language->symbol_names[symbol]; +} From 3da510d53b684782d9ee04bde0c87c0a53d33243 Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:44:28 -0400 Subject: [PATCH 06/10] Add a prototype for the symbol count. --- include/tree_sitter/runtime.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/tree_sitter/runtime.h b/include/tree_sitter/runtime.h index 67141fb3..1143ad0e 100644 --- a/include/tree_sitter/runtime.h +++ b/include/tree_sitter/runtime.h @@ -79,6 +79,7 @@ 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 From 04f3bf0b322cbc754337a1fc9be8a9b5783875e4 Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:45:28 -0400 Subject: [PATCH 07/10] Implement ts_language_symbol_count. --- src/runtime/language.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/language.c b/src/runtime/language.c index 71749867..1b2907e1 100644 --- a/src/runtime/language.c +++ b/src/runtime/language.c @@ -1,5 +1,9 @@ #include "runtime/parser.h" +size_t ts_language_symbol_count(const TSLanguage *) { + return language->symbol_count; +} + const char *ts_language_symbol_name(TSLanguage *language, TSSymbol symbol) { return language->symbol_names[symbol]; } From d5f6581531af41f3638ad32ecd7e89fb47a0d114 Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:46:51 -0400 Subject: [PATCH 08/10] Add the runtime file to the project. --- project.gyp | 1 + 1 file changed, 1 insertion(+) diff --git a/project.gyp b/project.gyp index 5e79eba6..a64c7061 100644 --- a/project.gyp +++ b/project.gyp @@ -106,6 +106,7 @@ ], 'sources': [ 'src/runtime/document.c', + 'src/runtime/language.c', 'src/runtime/lexer.c', 'src/runtime/node.c', 'src/runtime/stack.c', From 007f5190287eb7dd275efc9317676de6eb4e4044 Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 12:47:04 -0400 Subject: [PATCH 09/10] Name the parameter. --- src/runtime/language.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/language.c b/src/runtime/language.c index 1b2907e1..04b3de6f 100644 --- a/src/runtime/language.c +++ b/src/runtime/language.c @@ -1,6 +1,6 @@ #include "runtime/parser.h" -size_t ts_language_symbol_count(const TSLanguage *) { +size_t ts_language_symbol_count(const TSLanguage *language) { return language->symbol_count; } From f86789126db39c1ebfa268d4f0908e46c8e98bea Mon Sep 17 00:00:00 2001 From: Rob Rix Date: Thu, 29 Oct 2015 13:26:12 -0400 Subject: [PATCH 10/10] Include the correct file. --- src/runtime/language.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/language.c b/src/runtime/language.c index 04b3de6f..ece2dec4 100644 --- a/src/runtime/language.c +++ b/src/runtime/language.c @@ -1,4 +1,4 @@ -#include "runtime/parser.h" +#include "tree_sitter/parser.h" size_t ts_language_symbol_count(const TSLanguage *language) { return language->symbol_count;