From 34ae1c011773f83ed01ac435146f21dc36f89166 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Mon, 24 Jun 2019 15:48:39 +0200 Subject: [PATCH] Use same strategy for affectations than for binary operators --- src/language/ASTNodeAffectationExpressionBuilder.cpp | 3 +-- src/language/ASTNodeAffectationExpressionBuilder.hpp | 5 ++++- src/language/ASTNodeExpressionBuilder.cpp | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/language/ASTNodeAffectationExpressionBuilder.cpp b/src/language/ASTNodeAffectationExpressionBuilder.cpp index afc79af35..da39901cb 100644 --- a/src/language/ASTNodeAffectationExpressionBuilder.cpp +++ b/src/language/ASTNodeAffectationExpressionBuilder.cpp @@ -147,8 +147,7 @@ class AffectationProcessor final : public INodeProcessor } }; -void -set_affectation_processor(Node& n) +ASTNodeAffectationExpressionBuilder::ASTNodeAffectationExpressionBuilder(Node& n) { auto set_affectation_processor = [](Node& n, const auto& operator_v) { auto set_affectation_processor_for_data = [&](const auto& value, const DataType& data_type) { diff --git a/src/language/ASTNodeAffectationExpressionBuilder.hpp b/src/language/ASTNodeAffectationExpressionBuilder.hpp index eb80e6c8a..2495702ed 100644 --- a/src/language/ASTNodeAffectationExpressionBuilder.hpp +++ b/src/language/ASTNodeAffectationExpressionBuilder.hpp @@ -5,7 +5,10 @@ namespace language { -void set_affectation_processor(Node& node); +struct ASTNodeAffectationExpressionBuilder +{ + ASTNodeAffectationExpressionBuilder(Node& node); +}; } // namespace language #endif // AST_NODE_AFFECTATION_EXPRESSION_BUILDER_HPP diff --git a/src/language/ASTNodeExpressionBuilder.cpp b/src/language/ASTNodeExpressionBuilder.cpp index 1d9dbdf27..1be256c49 100644 --- a/src/language/ASTNodeExpressionBuilder.cpp +++ b/src/language/ASTNodeExpressionBuilder.cpp @@ -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 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>())) { - set_affectation_processor(n); + ASTNodeAffectationExpressionBuilder{n}; } else if (n.is<language::real>()) { n.m_node_processor = std::make_unique<NoProcess>(); -- GitLab