9 #include <hilti/rt/filesystem.h> 11 #include <hilti/ast/declaration.h> 12 #include <hilti/ast/expression.h> 13 #include <hilti/ast/id.h> 14 #include <hilti/ast/module.h> 15 #include <hilti/base/result.h> 18 namespace declaration {
24 :
NodeBase({std::move(
id)}, std::move(m)), _extension(search_extension) {}
27 :
NodeBase({std::move(
id)}, std::move(m)), _extension(search_extension), _scope(std::move(search_scope)) {}
29 ImportedModule(
ID id,
const std::string& search_extension, std::optional<ID> search_scope,
30 std::vector<hilti::rt::filesystem::path> search_dirs,
Meta m =
Meta())
31 :
NodeBase({std::move(
id)}, std::move(m)),
32 _extension(search_extension),
33 _scope(std::move(search_scope)),
34 _dirs(std::move(search_dirs)) {}
37 :
NodeBase({std::move(
id)}, std::move(m)), _path(std::move(path)) {}
41 return _module->template as<hilti::Module>();
46 auto extension()
const {
return _extension; }
47 auto path()
const {
return _path; }
48 auto scope()
const {
return _scope; }
49 const auto& searchDirectories()
const {
return _dirs; }
56 const ID&
id()
const {
return child<ID>(0); }
58 Linkage
linkage()
const {
return Linkage::Private; }
60 std::string
displayName()
const {
return "imported module"; };
62 auto isEqual(
const Declaration& other)
const {
return node::isEqual(
this, other); }
67 {
"path", _path.native()},
68 {
"scope", (_scope ? _scope->str() : std::string(
"-"))}};
80 x._module = std::move(n);
86 hilti::rt::filesystem::path _extension;
87 hilti::rt::filesystem::path _path;
88 std::optional<ID> _scope;
89 std::vector<hilti::rt::filesystem::path> _dirs;
Linkage linkage() const
Definition: imported-module.h:58
bool isConstant() const
Definition: imported-module.h:54
auto properties() const
Definition: imported-module.h:65
std::string displayName() const
Definition: imported-module.h:60
static Declaration setModule(const ImportedModule &d, NodeRef n)
Definition: imported-module.h:78
const ID & id() const
Definition: imported-module.h:56
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:83
auto isEqual(const Declaration &other) const
Definition: imported-module.h:62
Definition: node_ref.h:44
Definition: declaration.h:15
Definition: imported-module.h:21