7#if !defined(REQUIREMENTS_HPP)
8#define REQUIREMENTS_HPP
13#include <boost/function.hpp>
14#include <boost/shared_ptr.hpp>
15#include <boost/spirit/include/phoenix_core.hpp>
16#include <boost/spirit/include/phoenix_function.hpp>
17#include <boost/spirit/include/phoenix_operator.hpp>
19namespace client {
namespace code_gen
25 template <
typename ErrorHandler>
28 namespace phx = boost::phoenix;
32 (std::string(
"Error! "),
34 phx::cref(error_handler_.iters)[phx::arg_names::_1]);
44 if (!boost::apply_visitor(*
this, x.
operand_))
50 if (!boost::apply_visitor(*
this, x.
operand_))
65 if (!boost::apply_visitor(*
this,
arg))
75 if (!boost::apply_visitor(*
this, x.
first))
92 void(
int tag, std::string
const& what)>
py::list function(PolynomialPatch *patch, py::list point)
boost::variant< expression, quoted_string > function_call_argument
std::list< function_call_argument > args
std::list< operation > rest
requirements(ErrorHandler &error_handler_)
std::set< std::string > variables()
bool operator()(ast::expression const &x)
bool operator()(ast::identifier const &x)
bool operator()(ast::operation const &x)
bool operator()(ast::quoted_string const &)
std::set< std::string > functions_
bool operator()(unsigned int)
bool operator()(ast::function_call const &x)
bool operator()(ast::unary const &x)
bool operator()(ast::nil)
std::set< std::string > functions()
std::set< std::string > variables_
boost::function< void(int tag, std::string const &what)> error_handler