Stan  2.14.0
probability, sampling & optimization
program_grammar.hpp
Go to the documentation of this file.
1 #ifndef STAN_LANG_GRAMMARS_PROGRAM_GRAMMAR_HPP
2 #define STAN_LANG_GRAMMARS_PROGRAM_GRAMMAR_HPP
3 
4 #include <stan/lang/ast.hpp>
11 #include <boost/spirit/include/qi.hpp>
12 #include <string>
13 #include <sstream>
14 #include <vector>
15 #include <utility>
16 
17 namespace stan {
18 
19  namespace lang {
20 
21  template <typename Iterator>
23  : boost::spirit::qi::grammar<Iterator,
24  program(),
25  whitespace_grammar<Iterator> > {
26  std::string model_name_;
28  std::stringstream error_msgs_;
33 
34  program_grammar(const std::string& model_name,
35  bool allow_undefined = false);
36 
37  boost::spirit::qi::rule<Iterator,
38  std::vector<var_decl>(),
41 
42  boost::spirit::qi::rule<Iterator,
43  std::pair<std::vector<var_decl>,
44  std::vector<statement> >(),
47 
48  boost::spirit::qi::rule<Iterator,
49  std::pair<std::vector<var_decl>,
50  std::vector<statement> >(),
53 
54  boost::spirit::qi::rule<Iterator,
55  std::pair<std::vector<var_decl>,
56  std::vector<statement> >(),
59 
60  boost::spirit::qi::rule<Iterator,
61  statement(),
64 
65  boost::spirit::qi::rule<Iterator,
66  std::vector<var_decl>(),
69 
70 
71  boost::spirit::qi::rule<Iterator,
72  program(),
75 
76  boost::spirit::qi::rule<Iterator,
77  boost::spirit::qi::unused_type,
80 
81  boost::spirit::qi::rule<Iterator,
82  boost::spirit::qi::unused_type,
85 
86  boost::spirit::qi::rule<Iterator,
87  boost::spirit::qi::unused_type,
90  };
91 
92  }
93 }
94 #endif
Structure to wrap the variant type of statements.
Definition: statement.hpp:29
Probability, optimization and sampling library.
boost::spirit::qi::rule< Iterator, std::vector< var_decl >), whitespace_grammar< Iterator > > param_var_decls_r
A map from function names to their base declarations and their origin.
boost::spirit::qi::rule< Iterator, std::pair< std::vector< var_decl >, std::vector< statement > >), whitespace_grammar< Iterator > > derived_data_var_decls_r
expression_grammar< Iterator > expression_g
var_decls_grammar< Iterator > var_decls_g
boost::spirit::qi::rule< Iterator, statement(), whitespace_grammar< Iterator > > model_r
statement_grammar< Iterator > statement_g
boost::spirit::qi::rule< Iterator, program(), whitespace_grammar< Iterator > > program_r
boost::spirit::qi::rule< Iterator, std::pair< std::vector< var_decl >, std::vector< statement > >), whitespace_grammar< Iterator > > generated_var_decls_r
program_grammar(const std::string &model_name, bool allow_undefined=false)
boost::spirit::qi::rule< Iterator, std::pair< std::vector< var_decl >, std::vector< statement > >), whitespace_grammar< Iterator > > derived_var_decls_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::unused_type, whitespace_grammar< Iterator > > end_var_decls_r
AST node for a complete Stan program.
Definition: program.hpp:17
boost::spirit::qi::rule< Iterator, std::vector< var_decl >), whitespace_grammar< Iterator > > data_var_decls_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::unused_type, whitespace_grammar< Iterator > > end_var_definitions_r
boost::spirit::qi::rule< Iterator, boost::spirit::qi::unused_type, whitespace_grammar< Iterator > > end_var_decls_statements_r
functions_grammar< Iterator > functions_g

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