Require that grammars' start rules be visible

This commit is contained in:
Max Brunsfeld 2017-08-04 15:21:53 -07:00
parent 1dca3a0b58
commit 94dc703bfc
12 changed files with 64 additions and 56 deletions

View file

@ -52,7 +52,7 @@ describe("Document", [&]() {
root = ts_document_root_node(document);
assert_node_string_equals(
root,
"(object (pair (string) (array (number) (number))))");
"(value (object (pair (string) (array (number) (number)))))");
});
after_each([&]() {
@ -71,7 +71,7 @@ describe("Document", [&]() {
root = ts_document_root_node(document);
assert_node_string_equals(
root,
"(array (true) (false))");
"(value (array (true) (false)))");
});
it("handles truncated UTF16 data", [&]() {
@ -96,14 +96,14 @@ describe("Document", [&]() {
ts_document_parse(document);
TSNode root = ts_document_root_node(document);
AssertThat(ts_node_end_point(root), Equals<TSPoint>({0, 13}));
AssertThat(ts_node_end_point(root), Equals<TSPoint>({0, 14}));
input.measure_columns_in_bytes = true;
ts_document_set_input(document, input);
ts_document_invalidate(document);
ts_document_parse(document);
root = ts_document_root_node(document);
AssertThat(ts_node_end_point(root), Equals<TSPoint>({0, 26}));
AssertThat(ts_node_end_point(root), Equals<TSPoint>({0, 28}));
});
it("allows the input to be retrieved later", [&]() {
@ -135,7 +135,7 @@ describe("Document", [&]() {
TSNode new_root = ts_document_root_node(document);
assert_node_string_equals(
new_root,
"(object (pair (string) (array (null) (number))))");
"(value (object (pair (string) (array (null) (number)))))");
AssertThat(spy_input->strings_read(), Equals(vector<string>({" [null, 2" })));
});
@ -147,7 +147,7 @@ describe("Document", [&]() {
AssertThat(ts_node_end_char(new_root), Equals<size_t>(1));
assert_node_string_equals(
new_root,
"(number)");
"(value (number))");
});
it("reads from the new input correctly when the old input was blank", [&]() {
@ -165,7 +165,7 @@ describe("Document", [&]() {
AssertThat(ts_node_end_char(new_root), Equals<size_t>(1));
assert_node_string_equals(
new_root,
"(number)");
"(value (number))");
});
});
@ -181,7 +181,7 @@ describe("Document", [&]() {
root = ts_document_root_node(document);
assert_node_string_equals(
root,
"(object (pair (string) (array (number) (number))))");
"(value (object (pair (string) (array (number) (number)))))");
});
it("clears out any previous tree", [&]() {
@ -405,7 +405,7 @@ describe("Document", [&]() {
root = ts_document_root_node(document);
assert_node_string_equals(
root,
"(array (number) (null) (ERROR (UNEXPECTED 'e')) (number))");
"(value (array (number) (null) (ERROR (UNEXPECTED 'e')) (number)))");
ts_document_invalidate(document);
@ -432,7 +432,7 @@ describe("Document", [&]() {
root = ts_document_root_node(document);
assert_node_string_equals(
root,
"(array (number) (null) (number))");
"(value (array (number) (null) (number)))");
});
});
});

View file

@ -72,7 +72,7 @@ describe("Node", [&]() {
ts_document_set_language(document, load_real_language("json"));
ts_document_set_input_string(document, json_string.c_str());
ts_document_parse(document);
root_node = ts_document_root_node(document);
root_node = ts_node_child(ts_document_root_node(document), 0);
});
after_each([&]() {
@ -161,7 +161,7 @@ describe("Node", [&]() {
AssertThat(ts_node_parent(number_node), Equals(root_node));
AssertThat(ts_node_parent(false_node), Equals(root_node));
AssertThat(ts_node_parent(object_node), Equals(root_node));
AssertThat(ts_node_parent(root_node).data, Equals<void *>(nullptr));
AssertThat(ts_node_parent(ts_document_root_node(document)).data, Equals<void *>(nullptr));
});
it("works correctly when the node contains aliased children and extras", [&]() {
@ -293,7 +293,7 @@ describe("Node", [&]() {
AssertThat(ts_node_parent(child5), Equals(root_node));
AssertThat(ts_node_parent(child6), Equals(root_node));
AssertThat(ts_node_parent(child7), Equals(root_node));
AssertThat(ts_node_parent(root_node).data, Equals<void *>(nullptr));
AssertThat(ts_node_parent(ts_document_root_node(document)).data, Equals<void *>(nullptr));
});
});

View file

@ -87,9 +87,9 @@ describe("Parser", [&]() {
set_text(" [123, @@@@@, true]");
assert_root_node(
"(array (number) (ERROR (UNEXPECTED '@')) (true))");
"(value (array (number) (ERROR (UNEXPECTED '@')) (true)))");
TSNode error = ts_node_named_child(root, 1);
TSNode error = ts_node_named_child(ts_node_child(root, 0), 1);
AssertThat(ts_node_type(error, document), Equals("ERROR"));
AssertThat(get_node_text(error), Equals(", @@@@@"));
AssertThat(ts_node_child_count(error), Equals<size_t>(2));
@ -100,7 +100,7 @@ describe("Parser", [&]() {
TSNode garbage = ts_node_child(error, 1);
AssertThat(get_node_text(garbage), Equals("@@@@@"));
TSNode node_after_error = ts_node_named_child(root, 2);
TSNode node_after_error = ts_node_next_named_sibling(error);
AssertThat(ts_node_type(node_after_error, document), Equals("true"));
AssertThat(get_node_text(node_after_error), Equals("true"));
});
@ -112,9 +112,9 @@ describe("Parser", [&]() {
set_text(" [123, faaaaalse, true]");
assert_root_node(
"(array (number) (ERROR (UNEXPECTED 'a')) (true))");
"(value (array (number) (ERROR (UNEXPECTED 'a')) (true)))");
TSNode error = ts_node_named_child(root, 1);
TSNode error = ts_node_named_child(ts_node_child(root, 0), 1);
AssertThat(ts_node_type(error, document), Equals("ERROR"));
AssertThat(ts_node_child_count(error), Equals<size_t>(2));
@ -126,7 +126,7 @@ describe("Parser", [&]() {
AssertThat(ts_node_type(garbage, document), Equals("ERROR"));
AssertThat(get_node_text(garbage), Equals("faaaaalse"));
TSNode last = ts_node_named_child(root, 2);
TSNode last = ts_node_next_named_sibling(error);
AssertThat(ts_node_type(last, document), Equals("true"));
AssertThat(ts_node_start_byte(last), Equals(strlen(" [123, faaaaalse, ")));
});
@ -138,14 +138,14 @@ describe("Parser", [&]() {
set_text(" [123, true false, true]");
assert_root_node(
"(array (number) (true) (ERROR (false)) (true))");
"(value (array (number) (true) (ERROR (false)) (true)))");
TSNode error = ts_node_named_child(root, 2);
TSNode error = ts_node_named_child(ts_node_child(root, 0), 2);
AssertThat(ts_node_type(error, document), Equals("ERROR"));
AssertThat(get_node_text(error), Equals("false"));
AssertThat(ts_node_child_count(error), Equals<size_t>(1));
TSNode last = ts_node_named_child(root, 1);
TSNode last = ts_node_next_named_sibling(error);
AssertThat(ts_node_type(last, document), Equals("true"));
AssertThat(get_node_text(last), Equals("true"));
});
@ -157,7 +157,7 @@ describe("Parser", [&]() {
set_text(" [123, \"hi\n, true]");
assert_root_node(
"(array (number) (ERROR (UNEXPECTED '\\n')) (true))");
"(value (array (number) (ERROR (UNEXPECTED '\\n')) (true)))");
});
});