Skip to content
Snippets Groups Projects

Issue/21

Merged Stéphane Del Pino requested to merge issue/21 into develop
2 files
+ 13
12
Compare changes
  • Side-by-side
  • Inline

Files

@@ -166,7 +166,8 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) const
n.children[0]->m_data_type = ASTNodeDataType::build<ASTNodeDataType::function_t>();
const std::string& symbol = n.children[0]->string();
auto [i_symbol, success] = n.m_symbol_table->find(symbol, n.children[0]->begin());
auto [i_symbol, success] = n.m_symbol_table->find(symbol, n.children[0]->begin());
auto& function_table = n.m_symbol_table->functionTable();
@@ -283,6 +284,7 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) const
// LCOV_EXCL_STOP
};
#warning probably useless now
if (image_domain_node.is_type<language::type_expression>()) {
std::vector<std::shared_ptr<const ASTNodeDataType>> sub_data_type_list;
sub_data_type_list.reserve(image_domain_node.children.size());
@@ -298,6 +300,10 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) const
check_image_type(image_domain_node);
}
this->_buildNodeDataTypes(image_expression_node);
ASTNodeNaturalConversionChecker(image_expression_node, image_domain_node.m_data_type);
n.m_data_type = ASTNodeDataType::build<ASTNodeDataType::void_t>();
return;
} else if (n.is_type<language::name>()) {
@@ -434,7 +440,8 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) const
}
} else if (n.is_type<language::function_evaluation>()) {
if (n.children[0]->m_data_type == ASTNodeDataType::function_t) {
const std::string& function_name = n.children[0]->string();
const std::string& function_name = n.children[0]->string();
auto [i_function_symbol, success] = n.m_symbol_table->find(function_name, n.children[0]->begin());
auto& function_table = n.m_symbol_table->functionTable();
@@ -518,13 +525,5 @@ ASTNodeDataTypeBuilder::ASTNodeDataTypeBuilder(ASTNode& node)
this->_buildNodeDataTypes(node);
FunctionTable& function_table = node.m_symbol_table->functionTable();
for (size_t function_id = 0; function_id < function_table.size(); ++function_id) {
FunctionDescriptor& function_descriptor = function_table[function_id];
ASTNode& function_expression = function_descriptor.definitionNode();
this->_buildNodeDataTypes(function_expression);
}
std::cout << " - build node data types\n";
}
Loading