Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
EvalHelper.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <ext/string>
9#include <ext/memory>
10#include <ext/vector>
12#include <common/Operators.hpp>
13#include <abstraction/Value.hpp>
15
16namespace abstraction {
17
19 static std::shared_ptr < abstraction::Value > evalAbstraction ( abstraction::TemporariesHolder & environment, std::shared_ptr < abstraction::OperationAbstraction > abstraction, const ext::vector < std::shared_ptr < abstraction::Value > > & params );
20
21public:
22 static std::shared_ptr < abstraction::Value > evalAlgorithm ( abstraction::TemporariesHolder & environment, const std::string & name, const ext::vector < std::string > & templateParams, const ext::vector < std::shared_ptr < abstraction::Value > > & params, abstraction::AlgorithmCategories::AlgorithmCategory category );
23
24 static std::shared_ptr < abstraction::Value > evalOperator ( abstraction::TemporariesHolder & environment, abstraction::Operators::BinaryOperators type, const ext::vector < std::shared_ptr < abstraction::Value > > & params, abstraction::AlgorithmCategories::AlgorithmCategory category );
25
26 static std::shared_ptr < abstraction::Value > evalOperator ( abstraction::TemporariesHolder & environment, abstraction::Operators::PrefixOperators type, const ext::vector < std::shared_ptr < abstraction::Value > > & params, abstraction::AlgorithmCategories::AlgorithmCategory category );
27
28 static std::shared_ptr < abstraction::Value > evalOperator ( abstraction::TemporariesHolder & environment, abstraction::Operators::PostfixOperators type, const ext::vector < std::shared_ptr < abstraction::Value > > & params, abstraction::AlgorithmCategories::AlgorithmCategory category );
29};
30
31} /* namespace abstraction */
32
AlgorithmCategory
Definition: AlgorithmCategories.hpp:14
Definition: EvalHelper.h:18
static std::shared_ptr< abstraction::Value > evalAlgorithm(abstraction::TemporariesHolder &environment, const std::string &name, const ext::vector< std::string > &templateParams, const ext::vector< std::shared_ptr< abstraction::Value > > &params, abstraction::AlgorithmCategories::AlgorithmCategory category)
Definition: EvalHelper.cpp:14
static std::shared_ptr< abstraction::Value > evalOperator(abstraction::TemporariesHolder &environment, abstraction::Operators::BinaryOperators type, const ext::vector< std::shared_ptr< abstraction::Value > > &params, abstraction::AlgorithmCategories::AlgorithmCategory category)
Definition: EvalHelper.cpp:29
PostfixOperators
Definition: Operators.hpp:43
PrefixOperators
Definition: Operators.hpp:34
BinaryOperators
Definition: Operators.hpp:14
Definition: TemporariesHolder.h:13
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
Definition: AlgorithmAbstraction.hpp:11