diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ASTNodeDataTypeBuilder.cpp index cfdc0187c0564c9f73b022cac5bb84977d555ccc..b30adf6649dffbb0ba1a719e73d9eb01f020e56c 100644 --- a/src/language/ASTNodeDataTypeBuilder.cpp +++ b/src/language/ASTNodeDataTypeBuilder.cpp @@ -170,6 +170,9 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) << ") and " << n.children[1]->string() << " (" << dataTypeName(type_1) << ')' << std::ends; throw parse_error(message.str(), n.begin()); } + } else if (n.is<language::function_evaluation>()) { + std::cout << rang::fgB::red << "returned type of function evaluation is incorrect" << rang::style::reset << "\n"; + n.m_data_type = ASTNodeDataType::double_t; } } } diff --git a/src/language/ASTNodeExpressionBuilder.cpp b/src/language/ASTNodeExpressionBuilder.cpp index f7157005e6d209fcc0ca23481285b3b83b5ac3aa..9f0a6f7eb8ef2d5fcdee10da3d122b381fb5598a 100644 --- a/src/language/ASTNodeExpressionBuilder.cpp +++ b/src/language/ASTNodeExpressionBuilder.cpp @@ -28,7 +28,13 @@ ASTNodeExpressionBuilder::_buildExpression(ASTNode& n) ASTNodeAffectationExpressionBuilder{n}; } else if (n.is<language::let_declaration>()) { - std::cerr << rang::fgB::red << "\"Let expression\" is not defined correctly" << rang::style::reset << '\n'; + std::cerr << rang::fgB::red << "\"let expression\" is not defined correctly (declaration should be removed)" + << rang::style::reset << '\n'; + n.m_node_processor = std::make_unique<FakeProcessor>(); + return; + + } else if (n.is<language::function_evaluation>()) { + std::cerr << rang::fgB::red << "\"function evaluation\" is not defined yet" << rang::style::reset << '\n'; n.m_node_processor = std::make_unique<FakeProcessor>(); return;