expr_type_def.hpp
Go to the documentation of this file.
1 #ifndef STAN_LANG_AST_EXPR_TYPE_DEF_HPP
2 #define STAN_LANG_AST_EXPR_TYPE_DEF_HPP
3 
12 
15 #include <ostream>
16 
17 namespace stan {
18  namespace lang {
19 
20  expr_type::expr_type() : base_type_(ill_formed_type()), num_dims_(0) { }
21 
23  : base_type_(base_type), num_dims_(0) { }
24 
26  std::size_t num_dims)
27  : base_type_(base_type), num_dims_(num_dims) { }
28 
29  bool expr_type::operator==(const expr_type& et) const {
30  return base_type_ == et.base_type_ && num_dims_ == et.num_dims_;
31  }
32 
33  bool expr_type::operator!=(const expr_type& et) const {
34  return !(*this == et);
35  }
36 
37  bool expr_type::operator<(const expr_type& et) const {
38  return base_type_ < et.base_type_
39  || (base_type_ == et.base_type_ && num_dims_ < et.num_dims_);
40  }
41 
42  bool expr_type::operator<=(const expr_type& et) const {
43  return base_type_ < et.base_type_
44  || (base_type_ == et.base_type_ && num_dims_ <= et.num_dims_);
45  }
46 
47  bool expr_type::operator>(const expr_type& et) const {
48  return base_type_ > et.base_type_
49  || (base_type_ == et.base_type_ && num_dims_ > et.num_dims_);
50  }
51 
52  bool expr_type::operator>=(const expr_type& et) const {
53  return base_type_ > et.base_type_
54  || (base_type_ == et.base_type_ && num_dims_ >= et.num_dims_);
55  }
56 
57  bool expr_type::is_primitive() const {
58  return is_primitive_int()
60  }
61 
63  return base_type_.is_int_type() && num_dims_ == 0U;
64  }
65 
67  return base_type_.is_double_type() && num_dims_ == 0U;
68  }
69 
70  bool expr_type::is_ill_formed() const {
72  }
73 
74  bool expr_type::is_void() const {
75  return base_type_.is_void_type();
76  }
77 
79  return base_type_;
80  }
81 
82  size_t expr_type::num_dims() const {
83  return num_dims_;
84  }
85 
86  std::ostream& operator<<(std::ostream& o, const expr_type& et) {
87  write_base_expr_type(o, et.type());
88  if (et.num_dims() > 0) {
89  o << '[';
90  for (size_t i = 1; i < et.num_dims(); ++i) o << ",";
91  o << ']';
92  }
93  return o;
94  }
95 
96  }
97 }
98 #endif
std::size_t num_dims_
Definition: expr_type.hpp:31
std::size_t num_dims() const
bool operator<=(const expr_type &et) const
bool operator!=(const expr_type &et) const
bool is_primitive_int() const
double lang
Definition: runWimpSim.h:113
bool is_primitive() const
bool operator<(const expr_type &et) const
bool is_ill_formed() const
base_expr_type type() const
std::ostream & operator<<(std::ostream &o, const expr_type &et)
base_expr_type base_type_
Definition: expr_type.hpp:26
bool operator==(const expr_type &et) const
bool operator>=(const expr_type &et) const
bool operator>(const expr_type &et) const
std::ostream & write_base_expr_type(std::ostream &o, base_expr_type type)
bool is_primitive_double() const