1 #ifndef STAN__GM__PARSER__BARE_TYPE_GRAMMAR_DEF_HPP__
2 #define STAN__GM__PARSER__BARE_TYPE_GRAMMAR_DEF_HPP__
4 #include <boost/spirit/include/qi.hpp>
5 #include <boost/lexical_cast.hpp>
6 #include <boost/fusion/include/adapt_struct.hpp>
7 #include <boost/fusion/include/std_pair.hpp>
8 #include <boost/config/warning_disable.hpp>
9 #include <boost/spirit/include/qi_numeric.hpp>
10 #include <boost/spirit/include/phoenix_core.hpp>
11 #include <boost/spirit/include/phoenix_function.hpp>
12 #include <boost/spirit/include/phoenix_fusion.hpp>
13 #include <boost/spirit/include/phoenix_object.hpp>
14 #include <boost/spirit/include/phoenix_operator.hpp>
15 #include <boost/spirit/include/phoenix_stl.hpp>
16 #include <boost/spirit/include/support_multi_pass.hpp>
17 #include <boost/tuple/tuple.hpp>
18 #include <boost/variant/apply_visitor.hpp>
19 #include <boost/variant/recursive_variant.hpp>
21 #include <boost/spirit/include/version.hpp>
22 #include <boost/spirit/include/support_line_pos_iterator.hpp>
30 (
size_t, num_dims_) );
36 template <
typename Iterator>
38 std::stringstream& error_msgs)
41 error_msgs_(error_msgs)
43 using boost::spirit::qi::_1;
44 using boost::spirit::qi::char_;
45 using boost::spirit::qi::eps;
46 using boost::spirit::qi::lexeme;
47 using boost::spirit::qi::lit;
48 using boost::spirit::qi::no_skip;
49 using boost::spirit::qi::_pass;
50 using boost::spirit::qi::_val;
52 using boost::spirit::qi::labels::_a;
53 using boost::spirit::qi::labels::_r1;
54 using boost::spirit::qi::labels::_r2;
56 using boost::spirit::qi::on_error;
57 using boost::spirit::qi::fail;
58 using boost::spirit::qi::rethrow;
59 using namespace boost::spirit::qi::labels;
71 | lit(
"int")[_val =
INT_T]
81 >> - ( lit(
'[')[_val = 1]
82 >> *(lit(
',')[_val += 1])
bare_type_grammar(variable_map &var_map, std::stringstream &error_msgs)
boost::spirit::qi::rule< Iterator, size_t(), whitespace_grammar< Iterator > > array_dims_r
boost::spirit::qi::rule< Iterator, expr_type(), whitespace_grammar< Iterator > > bare_type_r
boost::spirit::qi::rule< Iterator, base_expr_type(), whitespace_grammar< Iterator > > type_identifier_r
BOOST_FUSION_ADAPT_STRUCT(stan::gm::expr_type,(stan::gm::base_expr_type, base_type_)(size_t, num_dims_))