Stan  2.5.0
probability, sampling & optimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
statement_grammar.hpp
Go to the documentation of this file.
1 #ifndef STAN__GM__PARSER__STATEMENT_GRAMMAR__HPP
2 #define STAN__GM__PARSER__STATEMENT_GRAMMAR__HPP
3 
4 #include <string>
5 #include <sstream>
6 #include <vector>
7 
8 #include <boost/spirit/include/qi.hpp>
9 
10 #include <stan/gm/ast.hpp>
15 
16 namespace stan {
17 
18  namespace gm {
19 
20  template <typename Iterator>
21  struct statement_grammar
22  : boost::spirit::qi::grammar<Iterator,
23  statement(bool,var_origin,bool),
24  whitespace_grammar<Iterator> > {
25 
26 
27 
28  statement_grammar(variable_map& var_map,
29  std::stringstream& error_msgs);
30 
31 
32  // global info for parses
34  std::stringstream& error_msgs_;
35 
36  // grammars
40 
41  // rules
42  boost::spirit::qi::rule<Iterator,
46 
47  boost::spirit::qi::rule<Iterator,
51 
52 
53  boost::spirit::qi::rule<Iterator,
54  std::vector<expression>(var_origin),
57 
58 
59  boost::spirit::qi::rule<Iterator,
63 
64 
65  boost::spirit::qi::rule<Iterator,
69 
70  boost::spirit::qi::rule<Iterator,
71  boost::spirit::qi::locals<std::string>,
72  for_statement(bool,var_origin,bool),
75 
76 
77  boost::spirit::qi::rule<Iterator,
78  while_statement(bool,var_origin,bool),
81 
82 
83  boost::spirit::qi::rule<Iterator,
87 
88  boost::spirit::qi::rule<Iterator,
92 
93 
94  boost::spirit::qi::rule<Iterator,
98 
99  boost::spirit::qi::rule<Iterator,
103 
104 
105 
106 
107  boost::spirit::qi::rule<Iterator,
111 
112  boost::spirit::qi::rule<Iterator,
113  std::string(),
116 
117 
118  boost::spirit::qi::rule<Iterator,
119  std::string(),
122 
123  boost::spirit::qi::rule<Iterator,
124  std::vector<var_decl>(),
127 
128  boost::spirit::qi::rule<Iterator,
129  no_op_statement(),
132 
133  boost::spirit::qi::rule<Iterator,
134  std::vector<expression>(var_origin),
137 
138  boost::spirit::qi::rule<Iterator,
139  range(var_origin),
142 
143  boost::spirit::qi::rule<Iterator,
144  sample(bool,var_origin),
147 
148  boost::spirit::qi::rule<Iterator,
149  statement(bool,var_origin,bool),
152 
153  boost::spirit::qi::rule<Iterator,
154  boost::spirit::qi::locals<std::vector<var_decl> >,
155  statements(bool,var_origin,bool),
158 
159  boost::spirit::qi::rule<Iterator,
160  range(var_origin),
163 
164  boost::spirit::qi::rule<Iterator,
168 
169  };
170 
171 
172  }
173 }
174 
175 #endif
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)
Definition: sample.hpp:13
int var_origin
Definition: ast.hpp:411
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)

     [ Stan Home Page ] © 2011–2014, Stan Development Team.