diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp index a39f3f8348c0234997569bfa7596b17cee0ae8ab..5faacdbf3593cdc38cb8cb1922e92593fbd06860 100644 --- a/tests/test_ASTNodeDataTypeBuilder.cpp +++ b/tests/test_ASTNodeDataTypeBuilder.cpp @@ -25,6 +25,21 @@ TEST_CASE("ASTNodeDataTypeBuilder", "[language]") { + SECTION("module") + { + std::string_view data = R"( +import a_module_name; +)"; + + std::string_view result = R"( +(root:void) + `-(language::import_instruction:void) + `-(language::module_name:string) +)"; + + CHECK_AST(data, result); + } + SECTION("integer") { std::string_view data = R"( @@ -100,6 +115,42 @@ false; CHECK_AST(data, result); } + SECTION("let declaration") + { + SECTION("scalar functions") + { + std::string_view data = R"( +let f : R -> R, x -> x; +let g : R*R -> R, (x,y) -> x+y; +)"; + + std::string_view result = R"( +(root:void) + +-(language::let_declaration:void) + | `-(language::name:f:function) + `-(language::let_declaration:void) + `-(language::name:g:function) +)"; + + CHECK_AST(data, result); + } + + SECTION("scalar functions") + { + std::string_view data = R"( +let f : R -> R, (x) -> x; +)"; + + std::string_view result = R"( +(root:void) + `-(language::let_declaration:void) + `-(language::name:f:function) +)"; +#warning finish this test + // CHECK_AST(data, result); + } + } + SECTION("ostream") { std::string_view data = R"(