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

Add ASTSymbolTableBuilder tests

parent 32abd3af
No related branches found
No related tags found
1 merge request!37Feature/language
......@@ -3,6 +3,7 @@ set(EXECUTABLE_OUTPUT_PATH ${PUGS_BINARY_DIR})
add_executable (unit_tests
test_main.cpp
test_ASTSymbolTableBuilder.cpp
test_ASTBuilder.cpp
test_Array.cpp
test_ArrayUtils.cpp
......
#include <catch2/catch.hpp>
#include <ASTBuilder.hpp>
#include <ASTSymbolTableBuilder.hpp>
TEST_CASE("ASTSymbolTableBuilder", "[language]")
{
SECTION("Build symbols")
{
std::string_view data = R"(
N n = 2;
{
N m = n;
R n = m/3.;
}
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
ASTSymbolTableBuilder{*ast};
}
SECTION("Undeclared symbol")
{
std::string_view data = R"(
N n = a;
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
REQUIRE_THROWS_AS(ASTSymbolTableBuilder{*ast}, parse_error);
}
SECTION("Re-declared symbol")
{
std::string_view data = R"(
N n = 0;
N n = 1;
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
REQUIRE_THROWS_AS(ASTSymbolTableBuilder{*ast}, parse_error);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment