8 #include <hilti/ast/attribute.h> 9 #include <hilti/ast/declaration.h> 10 #include <hilti/ast/expression.h> 11 #include <hilti/ast/id.h> 14 namespace declaration {
21 Expression(
ID id, hilti::Expression e, std::optional<AttributeSet> attrs, Linkage
linkage = Linkage::Private,
23 :
NodeBase(nodes(std::move(
id), std::move(e), std::move(attrs)), std::move(m)), _linkage(
linkage) {}
25 const auto& expression()
const {
return child<hilti::Expression>(1); }
28 bool operator==(
const Expression& other)
const {
return id() == other.
id() && expression() == other.expression(); }
33 const ID&
id()
const {
return child<ID>(0); }
35 Linkage
linkage()
const {
return _linkage; }
39 auto isEqual(
const Declaration& other)
const {
return node::isEqual(
this, other); }
auto & childs() const
Definition: node.h:445
const Node none
Definition: node.cc:12
Linkage linkage() const
Definition: expression.h:35
bool isConstant() const
Definition: expression.h:31
std::string displayName() const
Definition: expression.h:37
Definition: attribute.h:159
Definition: expression.h:17
auto properties() const
Definition: expression.h:42
auto isEqual(const Declaration &other) const
Definition: expression.h:39
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:83
const ID & id() const
Definition: expression.h:33
Definition: declaration.h:15