Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
ResultVariableStatement.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <ast/Statement.h>
9
10namespace cli {
11
12class ResultVariableStatement final : public Statement {
13 std::unique_ptr < cli::Arg > m_name;
14
15public:
16 ResultVariableStatement ( std::unique_ptr < cli::Arg > name ) : m_name ( std::move ( name ) ) {
17 }
18
19 std::shared_ptr < abstraction::Value > translateAndEval ( const std::shared_ptr < abstraction::Value > & prev, Environment & environment ) const override {
20 std::shared_ptr < abstraction::Value > res = prev->clone ( abstraction::TypeQualifiers::TypeQualifierSet::NONE, false );
21 environment.setVariable ( m_name->eval ( environment ), res );
22 return res;
23 }
24
25};
26
27} /* namespace cli */
28
Definition: Environment.h:29
void setVariable(std::string name, std::shared_ptr< abstraction::Value > value)
Definition: Environment.h:87
Definition: ResultVariableStatement.h:12
std::shared_ptr< abstraction::Value > translateAndEval(const std::shared_ptr< abstraction::Value > &prev, Environment &environment) const override
Definition: ResultVariableStatement.h:19
ResultVariableStatement(std::unique_ptr< cli::Arg > name)
Definition: ResultVariableStatement.h:16
Definition: Statement.h:14
return res
Definition: MinimizeByPartitioning.h:145
Definition: Arg.h:11
Definition: FordFulkerson.hpp:16