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
No related branches found
No related tags found
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 to comment