From 0810971f3e6b5ac0d9882b4cd2a7f43cece78c2e Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 8 Mar 2018 12:53:28 -0800 Subject: [PATCH] :fire: symbol iterator API This idea was never fully baked. --- include/tree_sitter/runtime.h | 8 -------- src/runtime/node.c | 20 -------------------- test/runtime/node_test.cc | 26 -------------------------- 3 files changed, 54 deletions(-) diff --git a/include/tree_sitter/runtime.h b/include/tree_sitter/runtime.h index 3bd24bac..3ed22c3e 100644 --- a/include/tree_sitter/runtime.h +++ b/include/tree_sitter/runtime.h @@ -67,19 +67,11 @@ typedef struct { uint32_t offset[2]; } TSNode; -typedef struct { - TSSymbol value; - bool done; - void *data; -} TSSymbolIterator; - uint32_t ts_node_start_byte(TSNode); TSPoint ts_node_start_point(TSNode); uint32_t ts_node_end_byte(TSNode); TSPoint ts_node_end_point(TSNode); TSSymbol ts_node_symbol(TSNode); -TSSymbolIterator ts_node_symbols(TSNode); -void ts_symbol_iterator_next(TSSymbolIterator *); const char *ts_node_type(TSNode, const TSDocument *); char *ts_node_string(TSNode, const TSDocument *); bool ts_node_eq(TSNode, TSNode); diff --git a/src/runtime/node.c b/src/runtime/node.c index e4353e5b..1f7487cb 100644 --- a/src/runtime/node.c +++ b/src/runtime/node.c @@ -263,26 +263,6 @@ TSSymbol ts_node_symbol(TSNode self) { return tree->context.alias_symbol ? tree->context.alias_symbol : tree->symbol; } -TSSymbolIterator ts_node_symbols(TSNode self) { - const Tree *tree = ts_node__tree(self); - return (TSSymbolIterator){ - .value = tree->symbol, .done = false, .data = (void *)tree, - }; -} - -void ts_symbol_iterator_next(TSSymbolIterator *self) { - const Tree *tree = (const Tree *)self->data; - const Tree *parent = tree->context.parent; - if (!self->done && parent) { - if (parent->child_count == 1 && !parent->visible) { - self->value = parent->symbol; - self->data = (void *)parent; - return; - } - } - self->done = true; -} - const char *ts_node_type(TSNode self, const TSDocument *document) { return ts_language_symbol_name(document->parser.language, ts_node_symbol(self)); } diff --git a/test/runtime/node_test.cc b/test/runtime/node_test.cc index bb620244..ff12169f 100644 --- a/test/runtime/node_test.cc +++ b/test/runtime/node_test.cc @@ -255,32 +255,6 @@ describe("Node", [&]() { }); }); - describe("symbols()", [&]() { - it("returns an iterator that yields each of the node's symbols", [&]() { - const TSLanguage *language = ts_document_language(document); - - TSNode false_node = ts_node_descendant_for_byte_range(root_node, false_index, false_index + 1); - TSSymbolIterator iterator = ts_node_symbols(false_node); - AssertThat(iterator.done, Equals(false)); - AssertThat(ts_language_symbol_name(language, iterator.value), Equals("false")); - - ts_symbol_iterator_next(&iterator); - AssertThat(iterator.done, Equals(false)); - AssertThat(ts_language_symbol_name(language, iterator.value), Equals("_value")); - - ts_symbol_iterator_next(&iterator); - AssertThat(iterator.done, Equals(true)); - - TSNode comma_node = ts_node_descendant_for_byte_range(root_node, number_end_index, number_end_index); - iterator = ts_node_symbols(comma_node); - AssertThat(iterator.done, Equals(false)); - AssertThat(ts_language_symbol_name(language, iterator.value), Equals(",")); - - ts_symbol_iterator_next(&iterator); - AssertThat(iterator.done, Equals(true)); - }); - }); - describe("child_count(), child(i)", [&]() { it("returns the child node at the given index, including anonymous nodes", [&]() { AssertThat(ts_node_child_count(root_node), Equals(7));