Spicy
spicy
toolchain
include
ast
declarations
unit-hook.h
1
// Copyright (c) 2020-now by the Zeek Project. See LICENSE for details.
2
3
#pragma once
4
5
#include <utility>
6
7
#include <hilti/ast/declaration.h>
8
9
#include <spicy/ast/declarations/hook.h>
10
11
namespace
spicy::declaration {
12
14
class
UnitHook
:
public
Declaration
{
15
public
:
16
auto
hook()
const
{
return
child<declaration::Hook>(0); }
17
18
std::string_view
displayName
() const final {
return
"unit hook"
; }
19
20
static
auto
create(
ASTContext
* ctx,
const
ID
&
id
,
declaration::Hook
* hook,
Meta
meta
= {}) {
21
auto
* h = ctx->
make
<UnitHook>(ctx, {hook},
id
, std::move(
meta
));
22
h->hook()->setID(
id
);
23
return
h;
24
}
25
26
protected
:
27
UnitHook(ASTContext* ctx, Nodes
children
, ID
id
, Meta
meta
)
28
: Declaration(ctx, NodeTags, std::move(
children
), std::move(
id
), hilti::declaration::Linkage::Private,
29
std::move(
meta
)) {}
30
31
SPICY_NODE_1(declaration::UnitHook, Declaration,
final
);
32
};
33
34
}
// namespace spicy::declaration
hilti::ASTContext
Definition:
ast-context.h:121
hilti::ASTContext::make
T * make(Args &&... args)
Definition:
ast-context.h:366
hilti::Declaration
Definition:
declaration.h:48
hilti::Declaration::id
const auto & id() const
Definition:
declaration.h:53
hilti::ID
Definition:
id.h:15
hilti::Meta
Definition:
meta.h:30
hilti::Node::children
const auto & children() const
Definition:
node.h:364
hilti::Node::meta
const auto & meta() const
Definition:
node.h:306
spicy::declaration::Hook
Definition:
hook.h:61
spicy::declaration::UnitHook
Definition:
unit-hook.h:14
spicy::declaration::UnitHook::displayName
std::string_view displayName() const final
Definition:
unit-hook.h:18
Generated by
1.9.1