Stan  2.14.0
probability, sampling & optimization
indexes_grammar.hpp
Go to the documentation of this file.
1 #ifndef STAN_LANG_GRAMMARS_INDEXES_GRAMMAR_HPP
2 #define STAN_LANG_GRAMMARS_INDEXES_GRAMMAR_HPP
3 
4 #include <stan/lang/ast.hpp>
8 #include <boost/spirit/include/qi.hpp>
9 #include <string>
10 #include <sstream>
11 #include <vector>
12 
13 namespace stan {
14 
15  namespace lang {
16 
17  // needed to break circularity of expression grammar including indexes
18  template <typename Iterator>
19  struct expression_grammar;
20 
21  template <typename Iterator>
23  : boost::spirit::qi::grammar<Iterator,
24  std::vector<idx>(var_origin),
25  whitespace_grammar<Iterator> > {
27  std::stringstream& error_msgs_;
29 
31  std::stringstream& error_msgs,
33 
34  boost::spirit::qi::rule<Iterator,
35  std::vector<idx>(var_origin),
38 
39  boost::spirit::qi::rule<Iterator,
40  idx(var_origin),
43 
44  boost::spirit::qi::rule<Iterator,
45  boost::spirit::qi::unused_type,
48 
49 
50  boost::spirit::qi::rule<Iterator,
54 
55  boost::spirit::qi::rule<Iterator,
59 
60  boost::spirit::qi::rule<Iterator,
64 
65  boost::spirit::qi::rule<Iterator,
69 
70  boost::spirit::qi::rule<Iterator,
74 
75 
76  boost::spirit::qi::rule<Iterator,
80 
81  boost::spirit::qi::rule<Iterator,
85  };
86 
87  }
88 }
89 #endif
boost::spirit::qi::rule< Iterator, multi_idx(var_origin), whitespace_grammar< Iterator > > multi_index_r
AST structure to hold a single array or matrix/vector index.
Definition: uni_idx.hpp:12
std::stringstream & error_msgs_
Probability, optimization and sampling library.
boost::spirit::qi::rule< Iterator, ub_idx(var_origin), whitespace_grammar< Iterator > > ub_index_r
boost::spirit::qi::rule< Iterator, lub_idx(var_origin), whitespace_grammar< Iterator > > lub_index_r
indexes_grammar(variable_map &var_map, std::stringstream &error_msgs, expression_grammar< Iterator > &eg)
boost::spirit::qi::rule< Iterator, uni_idx(var_origin), whitespace_grammar< Iterator > > uni_index_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::unused_type, whitespace_grammar< Iterator > > close_indexes_r
A map from function names to their base declarations and their origin.
AST structure for lower and upper bounds.
Definition: lub_idx.hpp:12
boost::spirit::qi::rule< Iterator, omni_idx(var_origin), whitespace_grammar< Iterator > > omni_index_r
AST structure for holding an upper-bound index.
Definition: ub_idx.hpp:12
AST structure for representing all legal indexes.
Definition: omni_idx.hpp:10
expression_grammar< Iterator > & expression_g
boost::spirit::qi::rule< Iterator, idx(var_origin), whitespace_grammar< Iterator > > index_r
AST variant structure for indexes, holding any of a unary, multi, omni, lower-bound, upper-bound, or lower- and upper-bound index.
Definition: idx.hpp:20
int var_origin
The type of a variable indicating where a variable was declared.
Definition: var_origin.hpp:12
AST structure for holding a lower-bound index.
Definition: lb_idx.hpp:12
boost::spirit::qi::rule< Iterator, lb_idx(var_origin), whitespace_grammar< Iterator > > lb_index_r
boost::spirit::qi::rule< Iterator, expression(var_origin), whitespace_grammar< Iterator > > int_expression_r
boost::spirit::qi::rule< Iterator, std::vector< idx >var_origin), whitespace_grammar< Iterator > > indexes_r

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