| Line | Branch | Decision | Call | Exec | Source |
|---|---|---|---|---|---|
| 1 | #ifndef CHRYSALIS_EXPRESSIONARGUMENT_H | ||||
| 2 | #define CHRYSALIS_EXPRESSIONARGUMENT_H | ||||
| 3 | |||||
| 4 | #include "Expression.h" | ||||
| 5 | #include "arguments/Argument.h" | ||||
| 6 | #include "arguments/BaseCalculatedArgument.h" | ||||
| 7 | |||||
| 8 | /** @defgroup Arguments Arguments | ||||
| 9 | * @{ | ||||
| 10 | */ | ||||
| 11 | namespace Chrysalis { | ||||
| 12 | class ExpressionArgument: public BaseCalculatedArgument<double> { | ||||
| 13 | PROVIDE_SERIALIZATION_ACCESS(ExpressionArgument) | ||||
| 14 | public: | ||||
| 15 | explicit ExpressionArgument(const ExpressionsContainer* expressions, args::name&& name); | ||||
| 16 | protected: | ||||
| 17 | std::expected<double, Error> calculate() const override; | ||||
| 18 | private: | ||||
| 19 | const ExpressionsContainer* expressions_; | ||||
| 20 | /// @uml{composition} | ||||
| 21 | args::name name_; | ||||
| 22 | }; | ||||
| 23 | namespace args { | ||||
| 24 | using expr = Expression; | ||||
| 25 | } | ||||
| 26 | 380 | SERIALIZE_DERIVED_CONSTRUCTION(ExpressionArgument, BaseCalculatedArgument<double>, expressions_, name_) | |||
| 27 | } | ||||
| 28 | /**@}*/ | ||||
| 29 | |||||
| 30 | #endif //CHRYSALIS_EXPRESSIONARGUMENT_H | ||||
| 31 |