Website Summary Files Commits Branches @commit @diff @stats
path: root / JSImpl / test / ParserTests.cpp
diff options
context:
space:
mode:
Commitb4a6c3d467682d9e0bb73637b9b80a2641a62970 (patch)
Author
 martin dobrev <martindobrev0@gmail.com>
2020-10-29 23:12:30 +0200
Committer
 martin dobrev <martindobrev0@gmail.com>
2020-10-29 23:12:30 +0200
Files1dbb31dace88a39ea215b611e4a9ffa3cbe57388 /JSImpl/test/ParserTests.cpp
IPL-b4a6c3d467682d9e0bb73637b9b80a2641a62970.tar
IPL-b4a6c3d467682d9e0bb73637b9b80a2641a62970.tar.gz
IPL-b4a6c3d467682d9e0bb73637b9b80a2641a62970.zip
Parentb4bb5eb1affcf1bebc779fbfba92cbdf7fe38c8d (diff)
Add support for Object literals in the Parser.
1 files changed, 25 insertions, 14 deletions
-rw-r--r--JSImpl/test/ParserTests.cpp39
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);
+ }
+}
+