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;
35 using boost::spirit::qi::labels::_r4;
45 = (lit(
"if") >> no_skip[!char_(
"a-zA-Z0-9_")])
53 > * (((lit(
"else") >> no_skip[!char_(
"a-zA-Z0-9_")])
54 >> (lit(
"if") >> no_skip[!char_(
"a-zA-Z0-9_")]))
62 > -((lit(
"else") >> no_skip[!char_(
"a-zA-Z0-9_")])
Probability, optimization and sampling library.
A map from function names to their base declarations and their origin.
boost::phoenix::function< add_conditional_condition > add_conditional_condition_f
boost::spirit::qi::rule< Iterator, statement(bool, var_origin, bool, bool), whitespace_grammar< Iterator > > statement_2_r
boost::phoenix::function< add_conditional_body > add_conditional_body_f
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_
boost::spirit::qi::rule< Iterator, conditional_statement(bool, var_origin, bool, bool), whitespace_grammar< Iterator > > conditional_statement_r