Manage lookahead symbol correctly after a reduction

This commit is contained in:
Max Brunsfeld 2014-01-22 23:04:29 -08:00
parent e174b89133
commit 8a317f6918
3 changed files with 22 additions and 5 deletions

View file

@ -15,12 +15,24 @@ describe("arithmetic", []() {
it("parses variables", [&]() {
TSDocumentSetText(document, "x");
AssertThat(string(TSDocumentToString(document)), Equals("(expression (term (factor (variable))))"));
AssertThat(string(TSDocumentToString(document)), Equals(
"(expression (term (factor (variable))))"));
});
it("parses products of variables", [&]() {
TSDocumentSetText(document, "x*y");
AssertThat(string(TSDocumentToString(document)), Equals("(expression (term (factor (variable)) (3) (factor (variable))))"));
AssertThat(string(TSDocumentToString(document)), Equals(
"(expression (term (factor (variable)) (3) (factor (variable))))"));
});
it("parses complex trees", [&]() {
TSDocumentSetText(document, "x*y+z*a");
AssertThat(string(TSDocumentToString(document)), Equals(
"(expression (term (factor (variable)) (3) (factor (variable))) (4) (term (factor (variable)) (3) (factor (variable))))"));
TSDocumentSetText(document, "x*(y+z)");
AssertThat(string(TSDocumentToString(document)), Equals(
"(expression (term (factor (variable)) (3) (factor (1) (expression (term (factor (variable))) (4) (term (factor (variable)))) (2))))"));
});
});