10 #include <boost/config/warning_disable.hpp>
11 #include <boost/variant/recursive_variant.hpp>
12 #include <boost/fusion/include/adapt_struct.hpp>
13 #include <boost/fusion/include/io.hpp>
14 #include <boost/optional.hpp>
17 namespace client {
namespace ast
43 typedef boost::variant<
49 , boost::recursive_wrapper<unary>
50 , boost::recursive_wrapper<function_call>
51 , boost::recursive_wrapper<expression>
55 typedef boost::variant<
95 std::list<function_call_argument>
args;
107 out <<
"nil";
return out;
112 out <<
id.name;
return out;
123 client::ast::operation,
124 (client::ast::
optoken, operator_)
125 (client::ast::
operand, operand_)
129 client::ast::function_call,
130 (client::ast::identifier, function_name)
135 client::ast::expression,
136 (client::ast::operand, first)
137 (std::list<client::ast::operation>, rest)
quoted_string(std::string const &value="")
BOOST_FUSION_ADAPT_STRUCT(SDDS::column,(boost::optional< std::string >, name_m)(boost::optional< SDDS::ast::datatype >, type_m)(boost::optional< std::string >, units_m)(boost::optional< std::string >, description_m)(SDDS::ast::variant_t, value_m)) namespace SDDS
boost::variant< expression, quoted_string > function_call_argument
std::ostream & operator<<(std::ostream &out, identifier const &id)
std::list< function_call_argument > args
boost::variant< nil, bool, unsigned int, double, identifier, boost::recursive_wrapper< unary >, boost::recursive_wrapper< function_call >, boost::recursive_wrapper< expression > > operand
std::list< operation > rest
identifier(std::string const &name="")