Add function for retrieving a leaf node by position

This commit is contained in:
Max Brunsfeld 2014-07-18 18:52:08 -07:00
parent 1ecafb874e
commit 466daeaf99
5 changed files with 58 additions and 17 deletions

View file

@ -68,6 +68,30 @@ describe("Node", []() {
ts_node_release(number2);
ts_node_release(number3);
});
describe("retrieving leaf nodes", [&]() {
it("can retrieve the leaf node at a given position", [&]() {
TSNode *number1 = ts_node_leaf_at_pos(root, 3);
TSNode *number2 = ts_node_leaf_at_pos(root, 7);
AssertThat(ts_node_name(number1), Equals("number"));
AssertThat(ts_node_size(number1), Equals<size_t>(2));
AssertThat(ts_node_name(number2), Equals("number"));
AssertThat(ts_node_size(number2), Equals<size_t>(1));
ts_node_release(number1);
ts_node_release(number2);
});
it("returns higher-level nodes when no leaf is at the given position", [&]() {
TSNode *node = ts_node_leaf_at_pos(root, 6);
AssertThat(ts_node_name(node), Equals("array"));
ts_node_release(node);
});
});
});
END_TEST