1 #ifndef STAN_LANG_AST_NODE_EXPRESSION_HPP 2 #define STAN_LANG_AST_NODE_EXPRESSION_HPP 20 #include <boost/variant/recursive_variant.hpp> 29 struct double_literal;
34 struct integrate_ode_control;
36 struct index_op_sliced;
37 struct conditional_op;
42 typedef boost::variant<boost::recursive_wrapper<nil>,
43 boost::recursive_wrapper<int_literal>,
44 boost::recursive_wrapper<double_literal>,
45 boost::recursive_wrapper<array_expr>,
46 boost::recursive_wrapper<variable>,
47 boost::recursive_wrapper<integrate_ode>,
48 boost::recursive_wrapper<integrate_ode_control>,
49 boost::recursive_wrapper<fun>,
50 boost::recursive_wrapper<index_op>,
51 boost::recursive_wrapper<index_op_sliced>,
52 boost::recursive_wrapper<conditional_op>,
53 boost::recursive_wrapper<binary_op>,
54 boost::recursive_wrapper<unary_op> >
expression & operator-=(const expression &rhs)
Node for holding a double literal.
Probability, optimization and sampling library.
Structure to hold an array expression.
Structure for an indexed expression.
Structure for function application.
Structure of the type of an expression, which consists of a base type and a number of dimensions...
Structure for integrate diff eq statement.
expr_type expression_type() const
expression & operator*=(const expression &rhs)
expression & operator+=(const expression &rhs)
boost::variant< boost::recursive_wrapper< nil >, boost::recursive_wrapper< int_literal >, boost::recursive_wrapper< double_literal >, boost::recursive_wrapper< array_expr >, boost::recursive_wrapper< variable >, boost::recursive_wrapper< integrate_ode >, boost::recursive_wrapper< integrate_ode_control >, boost::recursive_wrapper< fun >, boost::recursive_wrapper< index_op >, boost::recursive_wrapper< index_op_sliced >, boost::recursive_wrapper< conditional_op >, boost::recursive_wrapper< binary_op >, boost::recursive_wrapper< unary_op > > expression_t
AST structure for holding an expression with a sequence of indexes.
Structure for the conditional operator.
Structure to hold a variable.
AST structure for unary operations consisting of an operation and argument.
Node for storing binary operations consisting of an operation and left and right arguments.
The nil structure used as a placeholder for undefined or empty values in several structures.
expression & operator/=(const expression &rhs)
Structure for a diff eq integration statement with control parameters for the integrator.