1 #ifndef STAN__GM__PARSER__STATEMENT_GRAMMAR__HPP
2 #define STAN__GM__PARSER__STATEMENT_GRAMMAR__HPP
8 #include <boost/spirit/include/qi.hpp>
20 template <
typename Iterator>
21 struct statement_grammar
22 : boost::spirit::qi::grammar<Iterator,
23 statement(bool,var_origin,bool),
24 whitespace_grammar<Iterator> > {
29 std::stringstream& error_msgs);
42 boost::spirit::qi::rule<Iterator,
47 boost::spirit::qi::rule<Iterator,
53 boost::spirit::qi::rule<Iterator,
59 boost::spirit::qi::rule<Iterator,
65 boost::spirit::qi::rule<Iterator,
70 boost::spirit::qi::rule<Iterator,
71 boost::spirit::qi::locals<std::string>,
77 boost::spirit::qi::rule<Iterator,
83 boost::spirit::qi::rule<Iterator,
88 boost::spirit::qi::rule<Iterator,
94 boost::spirit::qi::rule<Iterator,
99 boost::spirit::qi::rule<Iterator,
107 boost::spirit::qi::rule<Iterator,
112 boost::spirit::qi::rule<Iterator,
118 boost::spirit::qi::rule<Iterator,
123 boost::spirit::qi::rule<Iterator,
124 std::vector<var_decl>(),
128 boost::spirit::qi::rule<Iterator,
133 boost::spirit::qi::rule<Iterator,
138 boost::spirit::qi::rule<Iterator,
143 boost::spirit::qi::rule<Iterator,
148 boost::spirit::qi::rule<Iterator,
153 boost::spirit::qi::rule<Iterator,
154 boost::spirit::qi::locals<std::vector<var_decl> >,
159 boost::spirit::qi::rule<Iterator,
164 boost::spirit::qi::rule<Iterator,
boost::spirit::qi::rule< Iterator, printable(var_origin), whitespace_grammar< Iterator > > printable_r
boost::spirit::qi::rule< Iterator, range(var_origin), whitespace_grammar< Iterator > > range_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::locals< std::string >, for_statement(bool, var_origin, bool), whitespace_grammar< Iterator > > for_statement_r
boost::spirit::qi::rule< Iterator, std::vector< var_decl >), whitespace_grammar< Iterator > > local_var_decls_r
boost::spirit::qi::rule< Iterator, std::string(), whitespace_grammar< Iterator > > identifier_r
boost::spirit::qi::rule< Iterator, reject_statement(var_origin), whitespace_grammar< Iterator > > reject_statement_r
boost::spirit::qi::rule< Iterator, range(var_origin), whitespace_grammar< Iterator > > truncation_range_r
boost::spirit::qi::rule< Iterator, std::string(), whitespace_grammar< Iterator > > printable_string_r
statement_2_grammar< Iterator > statement_2_g
boost::spirit::qi::rule< Iterator, statement(bool, var_origin, bool), whitespace_grammar< Iterator > > statement_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::locals< std::vector< var_decl > >, statements(bool, var_origin, bool), whitespace_grammar< Iterator > > statement_seq_r
std::stringstream & error_msgs_
boost::spirit::qi::rule< Iterator, print_statement(var_origin), whitespace_grammar< Iterator > > print_statement_r
boost::spirit::qi::rule< Iterator, while_statement(bool, var_origin, bool), whitespace_grammar< Iterator > > while_statement_r
var_decls_grammar< Iterator > var_decls_g
expression_grammar< Iterator > expression_g
boost::spirit::qi::rule< Iterator, variable_dims(var_origin), whitespace_grammar< Iterator > > var_lhs_r
boost::spirit::qi::rule< Iterator, return_statement(var_origin), whitespace_grammar< Iterator > > void_return_statement_r
boost::spirit::qi::rule< Iterator, std::vector< expression >var_origin), whitespace_grammar< Iterator > > dims_r
boost::spirit::qi::rule< Iterator, no_op_statement(), whitespace_grammar< Iterator > > no_op_statement_r
boost::spirit::qi::rule< Iterator, increment_log_prob_statement(bool, var_origin), whitespace_grammar< Iterator > > increment_log_prob_statement_r
boost::spirit::qi::rule< Iterator, assignment(var_origin), whitespace_grammar< Iterator > > assignment_r
boost::spirit::qi::rule< Iterator, sample(bool, var_origin), whitespace_grammar< Iterator > > sample_r
boost::spirit::qi::rule< Iterator, expression(var_origin), whitespace_grammar< Iterator > > non_lvalue_assign_r
boost::spirit::qi::rule< Iterator, std::vector< expression >var_origin), whitespace_grammar< Iterator > > opt_dims_r
boost::spirit::qi::rule< Iterator, distribution(var_origin), whitespace_grammar< Iterator > > distribution_r
void sample(stan::mcmc::base_mcmc *sampler, int num_warmup, int num_samples, int num_thin, int refresh, bool save, stan::io::mcmc_writer< Model, SampleRecorder, DiagnosticRecorder, MessageRecorder > &writer, stan::mcmc::sample &init_s, Model &model, RNG &base_rng, const std::string &prefix, const std::string &suffix, std::ostream &o, StartTransitionCallback &callback)
boost::spirit::qi::rule< Iterator, return_statement(var_origin), whitespace_grammar< Iterator > > return_statement_r
statement_grammar(variable_map &var_map, std::stringstream &error_msgs)