/*
 * AbstractionHelper.hpp
 *
 *  Created on: 25. 8. 2017
 *	  Author: Jan Travnicek
 */

#ifndef _ALGORITHM_HELPER_HPP_
#define _ALGORITHM_HELPER_HPP_

#include <alib/string>
#include <alib/memory>
#include <alib/vector>
#include <common/AlgorithmCategories.hpp>
#include <abstraction/Value.hpp>

namespace abstraction {

class AlgorithmHelper {
public:
	static std::shared_ptr < abstraction::Value > eval ( const std::string & name, const ext::vector < std::string > & templateParams, const ext::vector < std::shared_ptr < abstraction::Value > > & params, const std::vector < bool > & moves, AlgorithmCategories::AlgorithmCategory category );

};

} /* namespace abstraction */

#endif /* _ALGORITHM_HELPER_HPP_ */
