contexts merged with type_info_contexts

This commit is contained in:
ProgramSnail 2023-05-09 15:37:30 +03:00
parent e1b9d42da1
commit 6850863f58
7 changed files with 143 additions and 315 deletions

View file

@ -7,6 +7,7 @@
#include "global_info.hpp"
#include "interpreter_tree.hpp"
#include "type_info_contexts.hpp"
#include "types.hpp"
#include "utils.hpp"
#include "values.hpp"
#include "visitor.hpp"
@ -17,11 +18,11 @@ namespace interpreter {
class ExecuteVisitor : public Visitor {
public:
explicit ExecuteVisitor(info::GlobalInfo& global_info,
info::TypeInfoContextManager& type_info_context_manager,
info::ContextManager& context_manager,
info::ContextManager<info::type::Type, info::type::TypeManager>& type_context_manager,
info::ContextManager<info::value::Value, info::value::ValueManager>& context_manager,
interpreter::tokens::PartitionStatement* execution_root)
: namespace_visitor_(global_info.CreateVisitor()),
type_info_context_manager_(type_info_context_manager),
type_context_manager_(type_context_manager),
context_manager_(context_manager) {}
void VisitSourceFile(SourceFile* source_file) override {
@ -161,8 +162,8 @@ private:
}
private:
info::GlobalInfo::NamespaceVisitor namespace_visitor_;
info::TypeInfoContextManager& type_info_context_manager_;
info::ContextManager& context_manager_;
info::ContextManager<info::type::Type, info::type::TypeManager>& type_context_manager_;
info::ContextManager<info::value::Value, info::value::ValueManager>& context_manager_;
utils::IdType current_value_;
std::optional<LoopControlExpression> active_loop_control_expression_;