1 #ifndef STAN_LANG_AST_NODE_ARRAY_EXPR_HPP
2 #define STAN_LANG_AST_NODE_ARRAY_EXPR_HPP
3 
4 #include <stan/lang/ast/type/bare_expr_type.hpp>
5 #include <stan/lang/ast/scope.hpp>
6 #include <stan/lang/ast/node/expression.hpp>
7 #include <vector>
8 #include <cstddef>
9 
10 namespace stan {
11 namespace lang {
12 
13 struct expresssion;
14 
15 /**
16  * Structure to hold an array expression.
17  */
18 struct array_expr {
19   /**
20    * Sequence of expressions for array values.
21    */
22   std::vector<expression> args_;
23 
24   /**
25    * Type of array.
26    */
27   bare_expr_type type_;
28 
29   /**
30    * True if there is a variable within any of the expressions
31    * that is a parameter, transformed parameter, or non-integer
32    * local variable.
33    */
34   bool has_var_;
35 
36   /**
37    * Scope of this array expression.
38    *
39    */
40   scope array_expr_scope_;
41 
42   /**
43    * Construct a default array expression.
44    */
45   array_expr();
46 };
47 
48 }  // namespace lang
49 }  // namespace stan
50 #endif
51