1 #ifndef STAN_LANG_GRAMMARS_INDEXES_GRAMMAR_HPP 2 #define STAN_LANG_GRAMMARS_INDEXES_GRAMMAR_HPP 8 #include <boost/spirit/include/qi.hpp> 18 template <
typename Iterator>
19 struct expression_grammar;
21 template <
typename Iterator>
23 : boost::spirit::qi::grammar<Iterator,
24 std::vector<idx>(var_origin),
25 whitespace_grammar<Iterator> > {
31 std::stringstream& error_msgs,
34 boost::spirit::qi::rule<Iterator,
39 boost::spirit::qi::rule<Iterator,
44 boost::spirit::qi::rule<Iterator,
45 boost::spirit::qi::unused_type,
50 boost::spirit::qi::rule<Iterator,
55 boost::spirit::qi::rule<Iterator,
60 boost::spirit::qi::rule<Iterator,
65 boost::spirit::qi::rule<Iterator,
70 boost::spirit::qi::rule<Iterator,
76 boost::spirit::qi::rule<Iterator,
81 boost::spirit::qi::rule<Iterator,
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.
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.
boost::spirit::qi::rule< Iterator, omni_idx(var_origin), whitespace_grammar< Iterator > > omni_index_r
AST structure for holding an upper-bound index.
AST structure for representing all legal indexes.
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.
int var_origin
The type of a variable indicating where a variable was declared.
AST structure for holding a lower-bound index.
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