Skip to content
Snippets Groups Projects
Commit da5e6ba1 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Add tests for binary operator node types

parent 5056c339
No related branches found
No related tags found
1 merge request!37Feature/language
...@@ -940,4 +940,83 @@ not 1; ...@@ -940,4 +940,83 @@ not 1;
CHECK_AST(data, result); CHECK_AST(data, result);
} }
} }
SECTION("binary operators")
{
SECTION("plus")
{
std::string_view data = R"(
1+2;
)";
std::string_view result = R"(
(root:void)
`-(language::plus_op:Z)
+-(language::integer:1:Z)
`-(language::integer:2:Z)
)";
CHECK_AST(data, result);
}
SECTION("minus")
{
std::string_view data = R"(
1-2;
)";
std::string_view result = R"(
(root:void)
`-(language::minus_op:Z)
+-(language::integer:1:Z)
`-(language::integer:2:Z)
)";
CHECK_AST(data, result);
}
SECTION("multiply")
{
std::string_view data = R"(
1*2;
)";
std::string_view result = R"(
(root:void)
`-(language::multiply_op:Z)
+-(language::integer:1:Z)
`-(language::integer:2:Z)
)";
CHECK_AST(data, result);
}
SECTION("divide")
{
std::string_view data = R"(
1/2;
)";
std::string_view result = R"(
(root:void)
`-(language::divide_op:Z)
+-(language::integer:1:Z)
`-(language::integer:2:Z)
)";
CHECK_AST(data, result);
}
SECTION("invalid operands")
{
std::string_view data = R"(
1+"string";
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
ASTSymbolTableBuilder{*ast};
REQUIRE_THROWS_AS(ASTNodeDataTypeBuilder{*ast}, parse_error);
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment