8 #include <hilti/ast/declarations/local-variable.h> 9 #include <hilti/ast/expression.h> 10 #include <hilti/ast/types/list.h> 11 #include <hilti/ast/types/vector.h> 18 ListComprehension(Expression input, Expression output,
const ID&
id, std::optional<Expression> cond,
20 :
NodeBase(nodes(std::move(input), std::move(output),
25 const auto& input()
const {
return child<Expression>(0); }
26 const auto& output()
const {
return child<Expression>(1); }
27 const auto& local()
const {
return child<declaration::LocalVariable>(2); }
29 auto condition()
const {
return children()[3].tryAs<Expression>(); }
41 return input() == other.input() && output() == other.output() && local() == other.local() &&
42 condition() == other.condition();
46 bool isLhs()
const {
return false; }
55 auto isEqual(
const Expression& other)
const {
return node::isEqual(
this, other); }
Definition: local-variable.h:18
IntrusivePtr< Scope > scope() const
Definition: list-comprehension.h:35
Definition: list-comprehension.h:16
auto properties() const
Definition: list-comprehension.h:58
auto isEqual(const Expression &other) const
Definition: list-comprehension.h:55
bool isTemporary() const
Definition: list-comprehension.h:48
const auto & children() const
Definition: node.h:472
Definition: expression.h:18
auto isConstant() const
Definition: list-comprehension.h:53
Definition: intrusive-ptr.h:69
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:98
Definition: node-ref.h:45
bool isLhs() const
Definition: list-comprehension.h:46
auto & meta() const
Definition: node.h:476
const Type & type() const
Definition: list-comprehension.h:50
Definition: expression.h:21