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

Continue ASTNodeDataTypeBuilder tests

parent fba39f1d
Branches
Tags
1 merge request!37Feature/language
......@@ -69,8 +69,6 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n)
n.is<language::pluseq_op>() or n.is<language::minuseq_op>() or n.is<language::bit_andeq_op>() or
n.is<language::bit_xoreq_op>() or n.is<language::bit_oreq_op>()) {
n.m_data_type = n.children[0]->m_data_type;
} else if (n.is<language::for_statement>()) {
n.m_data_type = ASTNodeDataType::void_t;
} else if (n.is<language::for_post>() or n.is<language::for_init>() or n.is<language::for_statement_bloc>()) {
n.m_data_type = ASTNodeDataType::void_t;
} else if (n.is<language::for_test>()) {
......
......@@ -80,4 +80,180 @@ false;
CHECK_AST(data, result);
}
SECTION("bloc")
{
std::string_view data = R"(
{
1;
2.3;
}
)";
std::string_view result = R"(
(root:void)
`-(language::bloc:void)
+-(language::integer:1:Z)
`-(language::real:2.3:R)
)";
CHECK_AST(data, result);
}
SECTION("ostream")
{
std::string_view data = R"(
cout << "cout\n";
cerr << "cerr\n";
clog << "clog\n";
)";
std::string_view result = R"(
(root:void)
+-(language::cout_kw:void)
| `-(language::literal:"cout\n":string)
+-(language::cerr_kw:void)
| `-(language::literal:"cerr\n":string)
`-(language::clog_kw:void)
`-(language::literal:"clog\n":string)
)";
CHECK_AST(data, result);
}
SECTION("for-statement")
{
std::string_view data = R"(
for (N i=0; i<3; ++i){
cout << i << "\n";
}
)";
std::string_view result = R"(
(root:void)
`-(language::for_statement:void)
+-(language::declaration:N)
| +-(language::N_set:void)
| +-(language::name:i:N)
| `-(language::integer:0:Z)
+-(language::lesser_op:B)
| +-(language::name:i:N)
| `-(language::integer:3:Z)
+-(language::unary_plusplus:N)
| `-(language::name:i:N)
`-(language::cout_kw:void)
+-(language::name:i:N)
`-(language::literal:"\n":string)
)";
CHECK_AST(data, result);
}
SECTION("B set")
{
std::string_view data = R"(
B b;
)";
std::string_view result = R"(
(root:void)
`-(language::declaration:B)
+-(language::B_set:void)
`-(language::name:b:B)
)";
CHECK_AST(data, result);
}
SECTION("N set")
{
std::string_view data = R"(
N n;
)";
std::string_view result = R"(
(root:void)
`-(language::declaration:N)
+-(language::N_set:void)
`-(language::name:n:N)
)";
CHECK_AST(data, result);
}
SECTION("Z set")
{
std::string_view data = R"(
Z z;
)";
std::string_view result = R"(
(root:void)
`-(language::declaration:Z)
+-(language::Z_set:void)
`-(language::name:z:Z)
)";
CHECK_AST(data, result);
}
SECTION("R set")
{
std::string_view data = R"(
R r;
)";
std::string_view result = R"(
(root:void)
`-(language::declaration:R)
+-(language::R_set:void)
`-(language::name:r:R)
)";
CHECK_AST(data, result);
}
SECTION("string")
{
std::string_view data = R"(
string s;
)";
std::string_view result = R"(
(root:void)
`-(language::declaration:string)
+-(language::string_type:void)
`-(language::name:s:string)
)";
CHECK_AST(data, result);
}
SECTION("continue")
{
std::string_view data = R"(
continue;
)";
std::string_view result = R"(
(root:void)
`-(language::continue_kw:void)
)";
CHECK_AST(data, result);
}
SECTION("break")
{
std::string_view data = R"(
break;
)";
std::string_view result = R"(
(root:void)
`-(language::break_kw:void)
)";
CHECK_AST(data, result);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment