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

Use same strategy for affectations than for binary operators

parent 9d00f64e
No related branches found
No related tags found
1 merge request!37Feature/language
...@@ -147,8 +147,7 @@ class AffectationProcessor final : public INodeProcessor ...@@ -147,8 +147,7 @@ class AffectationProcessor final : public INodeProcessor
} }
}; };
void ASTNodeAffectationExpressionBuilder::ASTNodeAffectationExpressionBuilder(Node& n)
set_affectation_processor(Node& n)
{ {
auto set_affectation_processor = [](Node& n, const auto& operator_v) { auto set_affectation_processor = [](Node& n, const auto& operator_v) {
auto set_affectation_processor_for_data = [&](const auto& value, const DataType& data_type) { auto set_affectation_processor_for_data = [&](const auto& value, const DataType& data_type) {
......
...@@ -5,7 +5,10 @@ ...@@ -5,7 +5,10 @@
namespace language namespace language
{ {
void set_affectation_processor(Node& node); struct ASTNodeAffectationExpressionBuilder
{
ASTNodeAffectationExpressionBuilder(Node& node);
};
} // namespace language } // namespace language
#endif // AST_NODE_AFFECTATION_EXPRESSION_BUILDER_HPP #endif // AST_NODE_AFFECTATION_EXPRESSION_BUILDER_HPP
...@@ -520,7 +520,7 @@ build_node_type(Node& n) ...@@ -520,7 +520,7 @@ build_node_type(Node& n)
} else if ((n.is<language::eq_op>() or n.is<language::multiplyeq_op>() or n.is<language::divideeq_op>() or } else if ((n.is<language::eq_op>() or n.is<language::multiplyeq_op>() or n.is<language::divideeq_op>() or
n.is<language::pluseq_op>() or n.is<language::minuseq_op>() or n.is<language::bit_andeq_op>() or 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.is<language::bit_xoreq_op>() or n.is<language::bit_oreq_op>())) {
set_affectation_processor(n); ASTNodeAffectationExpressionBuilder{n};
} else if (n.is<language::real>()) { } else if (n.is<language::real>()) {
n.m_node_processor = std::make_unique<NoProcess>(); n.m_node_processor = std::make_unique<NoProcess>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment