14 std::unique_ptr < cli::Arg > m_type;
15 std::unique_ptr < Expression > m_expression;
18 CastExpression ( std::unique_ptr < cli::Arg > type, std::unique_ptr < Expression > expression ) : m_type (
std::move ( type ) ), m_expression (
std::move ( expression ) ) {
22 std::string type = m_type->eval ( environment );
24 std::shared_ptr < abstraction::Value > translatedExpression = m_expression->translateAndEval ( environment );
static std::shared_ptr< abstraction::Value > eval(abstraction::TemporariesHolder &environment, const std::shared_ptr< abstraction::Value > ¶m, const std::string &type)
Definition: CastHelper.cpp:13
Definition: CastExpression.h:13
CastExpression(std::unique_ptr< cli::Arg > type, std::unique_ptr< Expression > expression)
Definition: CastExpression.h:18
std::shared_ptr< abstraction::Value > translateAndEval(Environment &environment) const override
Definition: CastExpression.h:21
Definition: Environment.h:29
Definition: Expression.h:14
Definition: FordFulkerson.hpp:16