* ADDITION EXPRESSION */
| 719 | * ADDITION EXPRESSION |
| 720 | */ |
| 721 | struct addition_evaluatable : evaluatable |
| 722 | { |
| 723 | addition_evaluatable(std::vector<std::unique_ptr<evaluatable>>&& e) |
| 724 | : evaluatables_(std::move(e)) |
| 725 | {} |
| 726 | double evaluate() override |
| 727 | { |
| 728 | double result = 0; |
| 729 | for (const auto& e : evaluatables_) { |
| 730 | result += e->evaluate(); |
| 731 | } |
| 732 | return result; |
| 733 | } |
| 734 | std::vector<std::unique_ptr<evaluatable>> evaluatables_; |
| 735 | }; |
| 736 | constexpr bp::rule<struct add_tag, std::unique_ptr<evaluatable>> add_parser = "add_parser"; |
| 737 | constexpr auto add_parser_action = [](auto& ctx) { |
| 738 | std::unique_ptr<evaluatable>& val = _val(ctx); |
nothing calls this directly
no outgoing calls
no test coverage detected