1 #ifndef STAN_LANG_GRAMMARS_STATEMENT_2_GRAMMAR_DEF_HPP
2 #define STAN_LANG_GRAMMARS_STATEMENT_2_GRAMMAR_DEF_HPP
9 #include <boost/spirit/include/qi.hpp>
10 #include <boost/spirit/include/phoenix_core.hpp>
17 template <
typename Iterator>
19 std::stringstream& error_msgs,
23 error_msgs_(error_msgs),
24 expression_g(var_map, error_msgs),
26 using boost::spirit::qi::_1;
27 using boost::spirit::qi::char_;
28 using boost::spirit::qi::lit;
29 using boost::spirit::qi::no_skip;
30 using boost::spirit::qi::_pass;
31 using boost::spirit::qi::_val;
32 using boost::spirit::qi::labels::_r1;
33 using boost::spirit::qi::labels::_r2;
34 using boost::spirit::qi::labels::_r3;
44 = (lit(
"if") >> no_skip[!char_(
"a-zA-Z0-9_")])
52 > * (((lit(
"else") >> no_skip[!char_(
"a-zA-Z0-9_")])
53 >> (lit(
"if") >> no_skip[!char_(
"a-zA-Z0-9_")]))
61 > -((lit(
"else") >> no_skip[!char_(
"a-zA-Z0-9_")])
Probability, optimization and sampling library.
boost::phoenix::function< add_conditional_condition > add_conditional_condition_f
boost::phoenix::function< add_conditional_body > add_conditional_body_f
boost::spirit::qi::rule< Iterator, conditional_statement(bool, var_origin, bool), whitespace_grammar< Iterator > > conditional_statement_r
boost::spirit::qi::rule< Iterator, statement(bool, var_origin, bool), whitespace_grammar< Iterator > > statement_2_r
statement_2_grammar(variable_map &var_map, std::stringstream &error_msgs, statement_grammar< Iterator > &sg)
statement_grammar< Iterator > & statement_g
expression_grammar< Iterator > expression_g
std::stringstream & error_msgs_