diff options
| Commit | b4a6c3d467682d9e0bb73637b9b80a2641a62970 (patch) | |
|---|---|---|
| Author | 2020-10-29 23:12:30 +0200 | |
| Committer | 2020-10-29 23:12:30 +0200 | |
| Files | 1dbb31dace88a39ea215b611e4a9ffa3cbe57388 /JSImpl/test/ParserTests.cpp | |
| IPL-b4a6c3d467682d9e0bb73637b9b80a2641a62970.tar IPL-b4a6c3d467682d9e0bb73637b9b80a2641a62970.tar.gz IPL-b4a6c3d467682d9e0bb73637b9b80a2641a62970.zip | ||
| Parent | b4bb5eb1affcf1bebc779fbfba92cbdf7fe38c8d (diff) | |
Add support for Object literals in the Parser.
1 files changed, 25 insertions, 14 deletions
| -rw-r--r-- | JSImpl/test/ParserTests.cpp | 39 |
diff --git a/JSImpl/test/ParserTests.cpp b/JSImpl/test/ParserTests.cpp index c996689..d63ae60 100644 --- a/JSImpl/test/ParserTests.cpp +++ b/JSImpl/test/ParserTests.cpp @@ -24,7 +24,6 @@ TEST(Parser, VariableDeclaration) IPLVector<Token> tokens = Tokenize("var s = 0;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); @@ -36,7 +35,6 @@ TEST(Parser, Assignment) IPLVector<Token> tokens = Tokenize("var s = 0; s = 100;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); @@ -48,7 +46,6 @@ TEST(Parser, VariableDeclarationAdditionOfLiterals) IPLVector<Token> tokens = Tokenize("var s = 5 + 6;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); @@ -60,7 +57,6 @@ TEST(Parser, VariableDeclarationAdditionOfVariables) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 4; var c = a + b;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -76,7 +72,6 @@ TEST(Parser, VariableDeclarationMultiplicationOfLiterals) IPLVector<Token> tokens = Tokenize("var s = 5 * 6;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("s")); @@ -88,7 +83,6 @@ TEST(Parser, VariableDeclarationMultiplicationOfVariables) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 4; var c = a * b;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -105,7 +99,6 @@ TEST(Parser, Unary) IPLVector<Token> tokens = Tokenize("var a = 5; a++; var b = 6; --b; var minusB = -b; var plusB = +b;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -123,7 +116,6 @@ TEST(Parser, If) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 3; if(a == 5){a++; b++;} b++;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -135,7 +127,6 @@ TEST(Parser, If) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 3; if(a == 5)a++; b++; b++;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -148,7 +139,6 @@ TEST(Parser, If) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 3; if(a != 5)a++; b++; b++;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -161,7 +151,6 @@ TEST(Parser, If) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 3; if(a != 5){a++;} else { b++;}b++;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -174,7 +163,6 @@ TEST(Parser, If) IPLVector<Token> tokens = Tokenize("var a = 5; var b = 3; if(a == 5){a++;} else { b++;}b++;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("a")); @@ -190,7 +178,6 @@ TEST(Parser, For) IPLVector<Token> tokens = Tokenize("var i = 0; for (var j = 0; j < 10; j++) { i = i + j; }").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("i")); @@ -199,10 +186,34 @@ TEST(Parser, For) { IPLVector<Token> tokens = Tokenize("var i = 0; for (var j = 0; j < 10; j++) i = i + j;").tokens; auto expr = Parse(tokens); - std::ostringstream output; ASTInterpreter i; i.Run(expr.get()); ASSERT_TRUE(i.HasVariable("i")); ASSERT_DOUBLE_EQ(i.ModifyVariable("i"), 45.0); } } + +TEST(Parser, ObjectLiter) +{ + // for now just test for crashes :D + { + IPLVector<Token> tokens = Tokenize("var i = {}").tokens; + auto expr = Parse(tokens); + } + + { + IPLVector<Token> tokens = Tokenize("var i = {a: 4}").tokens; + auto expr = Parse(tokens); + } + + { + IPLVector<Token> tokens = Tokenize("var i = {a: 4, b: 5}").tokens; + auto expr = Parse(tokens); + } + + { + IPLVector<Token> tokens = Tokenize("var i = {a: 4, b: {a : 5}}").tokens; + auto expr = Parse(tokens); + } +} + |
