16 std::unique_ptr < Expression > m_condition;
17 std::unique_ptr < Command > m_thenBranch;
18 std::unique_ptr < Command > m_elseBranch;
21 IfCommand ( std::unique_ptr < Expression > condition, std::unique_ptr < Command > thenBranch, std::unique_ptr < Command > elseBranch ) : m_condition (
std::move ( condition ) ), m_thenBranch (
std::move ( thenBranch ) ), m_elseBranch (
std::move ( elseBranch ) ) {
25 std::shared_ptr < abstraction::Value > conditionResult = m_condition->translateAndEval ( environment );
30 return m_thenBranch->run ( environment );
31 else if ( m_elseBranch !=
nullptr )
32 return m_elseBranch->run ( 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: ValueHolderInterface.hpp:15
Definition: Environment.h:29
Definition: IfCommand.h:15
IfCommand(std::unique_ptr< Expression > condition, std::unique_ptr< Command > thenBranch, std::unique_ptr< Command > elseBranch)
Definition: IfCommand.h:21
CommandResult run(Environment &environment) const override
Definition: IfCommand.h:24
CommandResult
Definition: CommandResult.h:10
Definition: FordFulkerson.hpp:16