Stan  2.14.0
probability, sampling & optimization
term_grammar.hpp
Go to the documentation of this file.
1 #ifndef STAN_LANG_GRAMMARS_TERM_GRAMMAR_HPP
2 #define STAN_LANG_GRAMMARS_TERM_GRAMMAR_HPP
3 
4 #include <stan/lang/ast.hpp>
9 #include <boost/spirit/include/qi.hpp>
10 #include <string>
11 #include <sstream>
12 #include <vector>
13 
14 namespace stan {
15 
16  namespace lang {
17 
18  template <typename Iterator>
19  struct expression_grammar;
20 
21  template <typename Iterator>
22  struct indexes_grammar;
23 
24  template <typename Iterator>
25  struct term_grammar
26  : public boost::spirit::qi::grammar<Iterator,
27  expression(var_origin),
28  whitespace_grammar<Iterator> > {
29  term_grammar(variable_map& var_map, std::stringstream& error_msgs,
30  expression_grammar<Iterator>& eg);
31 
33  std::stringstream& error_msgs_;
36 
37  boost::spirit::qi::rule<Iterator,
38  std::vector<expression>(var_origin),
41 
42  boost::spirit::qi::rule<Iterator,
46 
47  boost::spirit::qi::rule<Iterator,
51 
52  boost::spirit::qi::rule<Iterator,
53  std::vector<expression>(var_origin),
56 
57 
58  boost::spirit::qi::rule<Iterator,
62 
63  boost::spirit::qi::rule<Iterator,
67 
68 
69  boost::spirit::qi::rule<Iterator,
70  boost::spirit::qi::locals<variable, fun,
71  array_expr>,
75 
76 
77  boost::spirit::qi::rule<Iterator,
78  fun(var_origin),
81 
82  boost::spirit::qi::rule<Iterator,
86 
87  boost::spirit::qi::rule<Iterator,
91 
92 
93  boost::spirit::qi::rule<Iterator,
94  std::string(),
97 
98  boost::spirit::qi::rule<Iterator,
100  boost::spirit::qi::locals<std::vector<std::vector<expression> >,
101  std::vector<idx> >,
104 
105  boost::spirit::qi::rule<Iterator,
106  int_literal(),
109 
110 
111  boost::spirit::qi::rule<Iterator,
115 
116  boost::spirit::qi::rule<Iterator,
117  std::vector<expression>(var_origin),
120 
121 
122 
123  boost::spirit::qi::rule<Iterator,
127 
128 
129  boost::spirit::qi::rule<Iterator,
130  variable(),
133  };
134 
135  }
136 }
137 
138 #endif
Node for holding a double literal.
boost::spirit::qi::rule< Iterator, expression(var_origin), whitespace_grammar< Iterator > > term_r
Probability, optimization and sampling library.
boost::spirit::qi::rule< Iterator, fun(var_origin), whitespace_grammar< Iterator > > fun_r
Structure to hold an array expression.
Definition: array_expr.hpp:17
boost::spirit::qi::rule< Iterator, int_literal(), whitespace_grammar< Iterator > > int_literal_r
Structure for function application.
Definition: fun.hpp:17
std::stringstream & error_msgs_
boost::spirit::qi::rule< Iterator, integrate_ode_control(var_origin), whitespace_grammar< Iterator > > integrate_ode_control_r
A map from function names to their base declarations and their origin.
boost::spirit::qi::rule< Iterator, std::vector< expression >var_origin), whitespace_grammar< Iterator > > prob_args_r
Structure for integrate diff eq statement.
boost::spirit::qi::rule< Iterator, std::string(), whitespace_grammar< Iterator > > identifier_r
boost::spirit::qi::rule< Iterator, expression(var_origin), whitespace_grammar< Iterator > > exponentiated_factor_r
boost::spirit::qi::rule< Iterator, expression(var_origin), boost::spirit::qi::locals< std::vector< std::vector< expression > >, std::vector< idx > >, whitespace_grammar< Iterator > > idx_factor_r
boost::spirit::qi::rule< Iterator, double_literal(), whitespace_grammar< Iterator > > double_literal_r
boost::spirit::qi::rule< Iterator, std::vector< expression >var_origin), whitespace_grammar< Iterator > > dims_r
boost::spirit::qi::rule< Iterator, array_expr(var_origin), whitespace_grammar< Iterator > > array_expr_r
int var_origin
The type of a variable indicating where a variable was declared.
Definition: var_origin.hpp:12
boost::spirit::qi::rule< Iterator, std::vector< expression >var_origin), whitespace_grammar< Iterator > > args_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::locals< variable, fun, array_expr >, expression(var_origin), whitespace_grammar< Iterator > > factor_r
boost::spirit::qi::rule< Iterator, variable(), whitespace_grammar< Iterator > > variable_r
indexes_grammar< Iterator > indexes_g
boost::spirit::qi::rule< Iterator, expression(var_origin), whitespace_grammar< Iterator > > dim_r
expression_grammar< Iterator > & expression_g
Structure to hold a variable.
Definition: variable.hpp:14
term_grammar(variable_map &var_map, std::stringstream &error_msgs, expression_grammar< Iterator > &eg)
boost::spirit::qi::rule< Iterator, integrate_ode(var_origin), whitespace_grammar< Iterator > > integrate_ode_r
Structure for a diff eq integration statement with control parameters for the integrator.
boost::spirit::qi::rule< Iterator, expression(var_origin), whitespace_grammar< Iterator > > negated_factor_r

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