10 #include <hilti/rt/filesystem.h> 12 #include <hilti/ast/declaration.h> 13 #include <hilti/ast/expression.h> 14 #include <hilti/ast/id.h> 15 #include <hilti/ast/module.h> 16 #include <hilti/base/result.h> 22 namespace declaration {
37 :
DeclarationBase({std::move(
id)}, std::move(m)), _parse_extension(parse_extension) {}
41 _parse_extension(parse_extension),
42 _scope(std::move(search_scope)) {}
44 ImportedModule(
ID id,
const std::string& parse_extension, std::optional<ID> search_scope,
45 std::vector<hilti::rt::filesystem::path> search_dirs,
Meta m =
Meta())
47 _parse_extension(parse_extension),
48 _scope(std::move(search_scope)),
49 _dirs(std::move(search_dirs)) {}
52 :
DeclarationBase({std::move(
id)}, std::move(m)), _parse_extension(path.extension()), _path(path) {}
54 hilti::rt::filesystem::path parseExtension()
const {
return _parse_extension; }
56 auto path()
const {
return _path; }
57 auto scope()
const {
return _scope; }
58 auto unit()
const {
return _unit.lock(); }
59 const auto& searchDirectories()
const {
return _dirs; }
62 void setUnit(std::shared_ptr<Unit> unit) { _unit = std::move(unit); }
69 const ID&
id()
const {
return child<ID>(0); }
71 Linkage
linkage()
const {
return Linkage::Private; }
73 std::string
displayName()
const {
return "imported module"; };
81 std::weak_ptr<hilti::Unit> _unit;
82 hilti::rt::filesystem::path _parse_extension;
83 hilti::rt::filesystem::path _path;
84 std::optional<ID> _scope;
85 std::vector<hilti::rt::filesystem::path> _dirs;
Linkage linkage() const
Definition: imported-module.h:71
Definition: declaration.h:53
bool isConstant() const
Definition: imported-module.h:67
std::string displayName() const
Definition: imported-module.h:73
void setUnit(std::shared_ptr< Unit > unit)
Definition: imported-module.h:62
const ID & id() const
Definition: imported-module.h:69
Definition: declaration.h:87
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:99
auto isEqual(const Declaration &other) const
Definition: imported-module.h:75
node::Properties properties() const
Definition: imported-module.cc:9
Definition: imported-module.h:34