10 #include <unordered_map> 14 #include <hilti/rt/any.h> 15 #include <hilti/rt/filesystem.h> 17 #include <hilti/ast/id.h> 18 #include <hilti/autogen/config.h> 19 #include <hilti/base/result.h> 20 #include <hilti/base/util.h> 46 std::vector<hilti::rt::filesystem::path>
61 auto i = _aux_options.find(key);
62 if ( i != _aux_options.end() )
63 return hilti::rt::any_cast<T>(i->second);
78 _aux_options[key] = value;
91 void print(std::ostream& out)
const;
94 std::map<std::string, hilti::rt::any> _aux_options;
107 hilti::rt::filesystem::path
path;
110 ModuleIndex(
ID id,
const hilti::rt::filesystem::path& path) : id(
std::move(id)), path(util::normalizePath(path)) {}
111 bool operator<(
const ModuleIndex& other)
const {
return id < other.
id; }
123 bool requires_compilation =
162 bool requires_compilation);
178 std::optional<context::CachedModule> lookupModule(
const ID&
id);
187 std::optional<context::CachedModule> lookupModule(
const hilti::rt::filesystem::path& path);
196 std::vector<context::CachedModule> lookupDependenciesForModule(
const ID&
id);
201 std::vector<std::pair<std::unique_ptr<Node>, std::shared_ptr<context::CachedModule>>> _modules;
202 std::unordered_map<ID, std::shared_ptr<context::CachedModule>> _module_cache_by_id;
203 std::unordered_map<std::string, std::shared_ptr<context::CachedModule>> _module_cache_by_path;
bool track_location
Definition: context.h:38
Definition: context.h:120
ModuleIndex index
Definition: context.h:121
bool optimize
Definition: context.h:41
std::string cxx_namespace_intern
Definition: context.h:45
Definition: optional.h:79
bool debug_flow
Definition: context.h:36
void setAuxOption(const std::string &key, T value)
Definition: context.h:77
ID id
Definition: context.h:106
hilti::rt::filesystem::path path
Definition: context.h:107
Result< Nothing > parseDebugAddl(const std::string &flags)
Definition: context.cc:14
std::vector< hilti::rt::filesystem::path > cxx_include_paths
Definition: context.h:47
NodeRef node
Definition: context.h:122
std::string cxx_namespace_extern
Definition: context.h:43
std::optional< std::set< ModuleIndex > > dependencies
Definition: context.h:126
std::vector< hilti::rt::filesystem::path > library_paths
Definition: context.h:42
void print(std::ostream &out) const
Definition: context.cc:32
bool debug_trace
Definition: context.h:34
Definition: context.h:105
bool debug
Definition: context.h:33
T getAuxOption(const std::string &key, T default_) const
Definition: context.h:60
Definition: node_ref.h:44
const Options & options() const
Definition: context.h:148
Definition: elements.cc:17
bool skip_validation
Definition: context.h:39
Definition: context.h:137