Remove 'document' wrapper node
This commit is contained in:
parent
6933d7b425
commit
21258e6a9e
23 changed files with 165 additions and 136 deletions
|
|
@ -76,11 +76,10 @@ describe("Parser", [&]() {
|
|||
set_text(" [123, @@@@@, true]");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (array (number) (ERROR (UNEXPECTED '@')) (true)))"));
|
||||
"(array (number) (ERROR (UNEXPECTED '@')) (true))"));
|
||||
|
||||
TSNode array = ts_node_child(root, 0);
|
||||
TSNode error = ts_node_child(array, 1);
|
||||
TSNode last = ts_node_child(array, 2);
|
||||
TSNode error = ts_node_child(root, 1);
|
||||
TSNode last = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_name(error, doc), Equals("ERROR"));
|
||||
AssertThat(ts_node_pos(error).bytes, Equals(strlen(" [123, ")))
|
||||
|
|
@ -96,11 +95,10 @@ describe("Parser", [&]() {
|
|||
set_text(" [123, faaaaalse, true]");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (array (number) (ERROR (UNEXPECTED 'a')) (true)))"));
|
||||
"(array (number) (ERROR (UNEXPECTED 'a')) (true))"));
|
||||
|
||||
TSNode array = ts_node_child(root, 0);
|
||||
TSNode error = ts_node_child(array, 1);
|
||||
TSNode last = ts_node_child(array, 2);
|
||||
TSNode error = ts_node_child(root, 1);
|
||||
TSNode last = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_name(error, doc), Equals("ERROR"));
|
||||
AssertThat(ts_node_pos(error).bytes, Equals(strlen(" [123, ")))
|
||||
|
|
@ -116,11 +114,10 @@ describe("Parser", [&]() {
|
|||
set_text(" [123, true false, true]");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (array (number) (ERROR (true) (UNEXPECTED 'f') (false)) (true)))"));
|
||||
"(array (number) (ERROR (true) (UNEXPECTED 'f') (false)) (true))"));
|
||||
|
||||
TSNode array = ts_node_child(root, 0);
|
||||
TSNode error = ts_node_child(array, 1);
|
||||
TSNode last = ts_node_child(array, 2);
|
||||
TSNode error = ts_node_child(root, 1);
|
||||
TSNode last = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_name(error, doc), Equals("ERROR"));
|
||||
AssertThat(ts_node_pos(error).bytes, Equals(strlen(" [123, ")));
|
||||
|
|
@ -136,11 +133,10 @@ describe("Parser", [&]() {
|
|||
set_text(" [123, , true]");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (array (number) (ERROR (UNEXPECTED ',')) (true)))"));
|
||||
"(array (number) (ERROR (UNEXPECTED ',')) (true))"));
|
||||
|
||||
TSNode array = ts_node_child(root, 0);
|
||||
TSNode error = ts_node_child(array, 1);
|
||||
TSNode last = ts_node_child(array, 2);
|
||||
TSNode error = ts_node_child(root, 1);
|
||||
TSNode last = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_name(error, doc), Equals("ERROR"));
|
||||
AssertThat(ts_node_pos(error).bytes, Equals(strlen(" [123, ")));
|
||||
|
|
@ -164,7 +160,7 @@ describe("Parser", [&]() {
|
|||
set_text("fn()\n");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (expression_statement (function_call (identifier))))"));
|
||||
"(expression_statement (function_call (identifier)))"));
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -175,9 +171,8 @@ describe("Parser", [&]() {
|
|||
" .otherFn();");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT "
|
||||
"(expression_statement (function_call "
|
||||
"(member_access (function_call (identifier)) (identifier)))))"));
|
||||
"(expression_statement (function_call "
|
||||
"(member_access (function_call (identifier)) (identifier))))"));
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -190,11 +185,10 @@ describe("Parser", [&]() {
|
|||
".otherFn();");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT "
|
||||
"(expression_statement (function_call "
|
||||
"(member_access (function_call (identifier)) "
|
||||
"(comment) "
|
||||
"(identifier)))))"));
|
||||
"(expression_statement (function_call "
|
||||
"(member_access (function_call (identifier)) "
|
||||
"(comment) "
|
||||
"(identifier))))"));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -210,18 +204,18 @@ describe("Parser", [&]() {
|
|||
set_text("x ^ (100 + abc)");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (exponent "
|
||||
"(exponent "
|
||||
"(variable) "
|
||||
"(group (sum (number) (variable)))))"));
|
||||
"(group (sum (number) (variable))))"));
|
||||
|
||||
insert_text(strlen("x ^ (100 + abc"), " * 5");
|
||||
});
|
||||
|
||||
it("updates the parse tree", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (exponent "
|
||||
"(exponent "
|
||||
"(variable) "
|
||||
"(group (sum (number) (product (variable) (number))))))"));
|
||||
"(group (sum (number) (product (variable) (number)))))"));
|
||||
});
|
||||
|
||||
it("re-reads only the changed portion of the input", [&]() {
|
||||
|
|
@ -236,20 +230,20 @@ describe("Parser", [&]() {
|
|||
set_text("123 * 456 ^ (10 + x)");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product "
|
||||
"(product "
|
||||
"(number) "
|
||||
"(exponent (number) (group (sum (number) (variable))))))"));
|
||||
"(exponent (number) (group (sum (number) (variable)))))"));
|
||||
|
||||
insert_text(strlen("123"), " + 5");
|
||||
});
|
||||
|
||||
it("updates the parse tree", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (sum "
|
||||
"(sum "
|
||||
"(number) "
|
||||
"(product "
|
||||
"(number) "
|
||||
"(exponent (number) (group (sum (number) (variable)))))))"));
|
||||
"(exponent (number) (group (sum (number) (variable))))))"));
|
||||
});
|
||||
|
||||
it("re-reads only the changed portion of the input", [&]() {
|
||||
|
|
@ -264,19 +258,19 @@ describe("Parser", [&]() {
|
|||
set_text("var x = y;");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (var_declaration (var_assignment "
|
||||
"(identifier) (identifier))))"));
|
||||
"(var_declaration (var_assignment "
|
||||
"(identifier) (identifier)))"));
|
||||
|
||||
insert_text(strlen("var x = y"), " *");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (var_declaration (ERROR (identifier) (identifier) (UNEXPECTED ';'))))"));
|
||||
"(var_declaration (ERROR (identifier) (identifier) (UNEXPECTED ';')))"));
|
||||
|
||||
insert_text(strlen("var x = y *"), " z");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (var_declaration (var_assignment "
|
||||
"(identifier) (math_op (identifier) (identifier)))))"));
|
||||
"(var_declaration (var_assignment "
|
||||
"(identifier) (math_op (identifier) (identifier))))"));
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -285,14 +279,14 @@ describe("Parser", [&]() {
|
|||
set_text("abc * 123");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (variable) (number)))"));
|
||||
"(product (variable) (number))"));
|
||||
|
||||
insert_text(strlen("ab"), "XYZ");
|
||||
});
|
||||
|
||||
it("updates the parse tree", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (variable) (number)))"));
|
||||
"(product (variable) (number))"));
|
||||
|
||||
TSNode node = ts_node_find_for_pos(root, 1);
|
||||
AssertThat(ts_node_name(node, doc), Equals("variable"));
|
||||
|
|
@ -305,14 +299,14 @@ describe("Parser", [&]() {
|
|||
set_text("abc * 123");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (variable) (number)))"));
|
||||
"(product (variable) (number))"));
|
||||
|
||||
insert_text(strlen("abc"), "XYZ");
|
||||
});
|
||||
|
||||
it("updates the parse tree", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (variable) (number)))"));
|
||||
"(product (variable) (number))"));
|
||||
|
||||
TSNode node = ts_node_find_for_pos(root, 1);
|
||||
AssertThat(ts_node_name(node, doc), Equals("variable"));
|
||||
|
|
@ -326,7 +320,7 @@ describe("Parser", [&]() {
|
|||
set_text("\u03b1\u03b2\u03b4 + 1");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (sum (variable) (number)))"));
|
||||
"(sum (variable) (number))"));
|
||||
|
||||
// αβδ + ψ1
|
||||
insert_text(strlen("abd + "), "\u03c8");
|
||||
|
|
@ -334,7 +328,7 @@ describe("Parser", [&]() {
|
|||
|
||||
it("inserts the text according to the UTF8 character index", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (sum (variable) (variable)))"));
|
||||
"(sum (variable) (variable))"));
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -345,7 +339,7 @@ describe("Parser", [&]() {
|
|||
"abc");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (number) (comment) (variable)))"));
|
||||
"(product (number) (comment) (variable))"));
|
||||
|
||||
insert_text(
|
||||
strlen("123 *\n"
|
||||
|
|
@ -356,7 +350,7 @@ describe("Parser", [&]() {
|
|||
|
||||
it("updates the parse tree", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (number) (comment) (variable)))"));
|
||||
"(product (number) (comment) (variable))"));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -367,14 +361,14 @@ describe("Parser", [&]() {
|
|||
set_text("123 * 456");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (product (number) (number)))"));
|
||||
"(product (number) (number))"));
|
||||
|
||||
delete_text(strlen("123 "), 2);
|
||||
});
|
||||
|
||||
it("updates the parse tree, creating an error", [&]() {
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (number) (ERROR (UNEXPECTED '4') (number)))"));
|
||||
"(ERROR (number) (UNEXPECTED '4') (number))"));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -386,14 +380,14 @@ describe("Parser", [&]() {
|
|||
set_text("{ x: (b.c) };");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (expression_statement (object (pair "
|
||||
"(identifier) (expression (member_access (identifier) (identifier)))))))"));
|
||||
"(expression_statement (object (pair "
|
||||
"(identifier) (expression (member_access (identifier) (identifier))))))"));
|
||||
|
||||
replace_text(strlen("{ x: "), strlen("(b.c)"), "b.c");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(DOCUMENT (expression_statement (object (pair "
|
||||
"(identifier) (member_access (identifier) (identifier))))))"));
|
||||
"(expression_statement (object (pair "
|
||||
"(identifier) (member_access (identifier) (identifier)))))"));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -407,11 +401,10 @@ describe("Parser", [&]() {
|
|||
it("terminates them at the end of the document", [&]() {
|
||||
set_text("x # this is a comment");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals("(DOCUMENT "
|
||||
"(expression (variable) (comment)))"));
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(expression (variable) (comment))"));
|
||||
|
||||
TSNode expression = ts_node_child(root, 0);
|
||||
TSNode comment = ts_node_child(expression, 1);
|
||||
TSNode comment = ts_node_child(root, 1);
|
||||
|
||||
AssertThat(ts_node_size(comment).bytes, Equals(strlen("# this is a comment")));
|
||||
});
|
||||
|
|
@ -421,8 +414,8 @@ describe("Parser", [&]() {
|
|||
// x # ΩΩΩ — ΔΔ
|
||||
set_text("x # \u03A9\u03A9\u03A9 \u2014 \u0394\u0394");
|
||||
|
||||
AssertThat(ts_node_string(root, doc), Equals("(DOCUMENT "
|
||||
"(expression (variable) (comment)))"));
|
||||
AssertThat(ts_node_string(root, doc), Equals(
|
||||
"(expression (variable) (comment))"));
|
||||
|
||||
AssertThat(ts_node_size(root).chars, Equals(strlen("x # OOO - DD")));
|
||||
AssertThat(ts_node_size(root).bytes, Equals(strlen("x # \u03A9\u03A9\u03A9 \u2014 \u0394\u0394")));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue