Stan  1.0
probability, sampling & optimization
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>
22  : boost::spirit::qi::grammar<Iterator,
23  statement(bool,var_origin),
24  whitespace_grammar<Iterator> > {
25 
26 
27 
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,
43  assignment(),
46 
47 
48  boost::spirit::qi::rule<Iterator,
49  std::vector<expression>(),
52 
53 
54  boost::spirit::qi::rule<Iterator,
55  distribution(),
58 
59 
60  boost::spirit::qi::rule<Iterator,
61  boost::spirit::qi::locals<std::string>,
65 
66 
67  boost::spirit::qi::rule<Iterator,
71 
72 
73  boost::spirit::qi::rule<Iterator,
77 
78 
79  boost::spirit::qi::rule<Iterator,
80  printable(),
83 
84  boost::spirit::qi::rule<Iterator,
85  std::string(),
88 
89 
90  boost::spirit::qi::rule<Iterator,
91  std::string(),
94 
95  boost::spirit::qi::rule<Iterator,
96  std::vector<var_decl>(),
99 
100  boost::spirit::qi::rule<Iterator,
101  no_op_statement(),
104 
105  boost::spirit::qi::rule<Iterator,
106  std::vector<expression>(),
109 
110  boost::spirit::qi::rule<Iterator,
111  range(),
114 
115  boost::spirit::qi::rule<Iterator,
116  sample(bool),
119 
120  boost::spirit::qi::rule<Iterator,
121  statement(bool,var_origin),
124 
125  boost::spirit::qi::rule<Iterator,
126  boost::spirit::qi::locals<std::vector<var_decl> >,
127  statements(bool,var_origin),
130 
131  boost::spirit::qi::rule<Iterator,
132  range(),
135 
136  boost::spirit::qi::rule<Iterator,
137  variable_dims(),
140 
141  };
142 
143 
144  }
145 }
146 
147 #endif
int var_origin
Definition: ast.hpp:358
Probability, optimization and sampling library.
Definition: agrad.cpp:6
boost::spirit::qi::rule< Iterator, range(), whitespace_grammar< Iterator > > truncation_range_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::locals< std::vector< var_decl > >, statements(bool, var_origin), whitespace_grammar< Iterator > > statement_seq_r
boost::spirit::qi::rule< Iterator, no_op_statement(), whitespace_grammar< Iterator > > no_op_statement_r
boost::spirit::qi::rule< Iterator, distribution(), whitespace_grammar< Iterator > > distribution_r
boost::spirit::qi::rule< Iterator, range(), whitespace_grammar< Iterator > > range_r
boost::spirit::qi::rule< Iterator, std::string(), whitespace_grammar< Iterator > > identifier_r
boost::spirit::qi::rule< Iterator, std::vector< expression >), whitespace_grammar< Iterator > > dims_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::locals< std::string >, for_statement(bool, var_origin), whitespace_grammar< Iterator > > for_statement_r
boost::spirit::qi::rule< Iterator, std::string(), whitespace_grammar< Iterator > > printable_string_r
statement_2_grammar< Iterator > statement_2_g
std::stringstream & error_msgs_
statement_grammar(variable_map &var_map, std::stringstream &error_msgs)
var_decls_grammar< Iterator > var_decls_g
boost::spirit::qi::rule< Iterator, print_statement(), whitespace_grammar< Iterator > > print_statement_r
expression_grammar< Iterator > expression_g
boost::spirit::qi::rule< Iterator, while_statement(bool, var_origin), whitespace_grammar< Iterator > > while_statement_r
boost::spirit::qi::rule< Iterator, variable_dims(), whitespace_grammar< Iterator > > var_lhs_r
boost::spirit::qi::rule< Iterator, std::vector< var_decl >), whitespace_grammar< Iterator > > local_var_decls_r
boost::spirit::qi::rule< Iterator, printable(), whitespace_grammar< Iterator > > printable_r
boost::spirit::qi::rule< Iterator, assignment(), whitespace_grammar< Iterator > > assignment_r
boost::spirit::qi::rule< Iterator, sample(bool), whitespace_grammar< Iterator > > sample_r
boost::spirit::qi::rule< Iterator, statement(bool, var_origin), whitespace_grammar< Iterator > > statement_r
boost::spirit::qi::rule< Iterator, std::vector< expression >), whitespace_grammar< Iterator > > opt_dims_r

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