8 #include <hilti/ast/expression.h> 9 #include <hilti/ast/types/computed.h> 10 #include <hilti/ast/types/list.h> 11 #include <hilti/ast/types/vector.h> 14 namespace expression {
20 :
NodeBase(nodes(std::move(input), std::move(output), std::move(
id), std::move(cond), type::unknown),
25 const auto& input()
const {
return child<Expression>(0); }
26 const auto& output()
const {
return child<Expression>(1); }
27 const auto& id()
const {
return child<ID>(2); }
28 auto condition()
const {
return childs()[3].tryReferenceAs<Expression>(); }
37 return input() == other.input() && output() == other.output() && id() == other.id() &&
38 condition() == other.condition();
42 bool isLhs()
const {
return false; }
52 auto isEqual(
const Expression& other)
const {
return node::isEqual(
this, other); }
58 void _computeTypes() {}
auto & childs() const
Definition: node.h:445
IntrusivePtr< Scope > scope() const
Definition: list-comprehension.h:34
Definition: list-comprehension.h:17
auto properties() const
Definition: list-comprehension.h:55
auto isEqual(const Expression &other) const
Definition: list-comprehension.h:52
bool isTemporary() const
Definition: list-comprehension.h:44
Definition: expression.h:16
auto isConstant() const
Definition: list-comprehension.h:50
Type type() const
Definition: list-comprehension.h:46
Definition: intrusive-ptr.h:69
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:83
bool isLhs() const
Definition: list-comprehension.h:42