contexts fixes

This commit is contained in:
ProgramSnail 2023-05-09 15:51:13 +03:00
parent 6850863f58
commit ab29a785bf
7 changed files with 106 additions and 94 deletions

View file

@ -5,7 +5,6 @@
// for clangd
#include "../include/parse_tree.hpp"
#include "../include/global_info.hpp"
#include "../include/type_info_contexts.hpp"
#include "../include/interpreter_tree.hpp"
#include "../include/build_visitor.hpp"
#include "../include/print_visitor.hpp"
@ -13,6 +12,7 @@
#include "../include/link_symbols_visitor.hpp"
#include "../include/type_check_visitor.hpp"
#include "../include/typed_print_visitor.hpp"
#include "../include/execute_visitor.hpp"
#include "../include/error_handling.hpp"
int main(int argc, char** argv) { // TODO, only test version
@ -44,14 +44,19 @@ int main(int argc, char** argv) { // TODO, only test version
std::make_unique<interpreter::tokens::SourceFile>();
info::GlobalInfo global_info;
info::TypeInfoContextManager context_manager;
info::ContextManager<info::type::Type, info::type::TypeManager> type_context_manager;
info::ContextManager<info::value::Value, info::value::ValueManager> context_manager;
interpreter::BuildVisitor build_visitor(parse_tree);
interpreter::PrintVisitor print_visitor(std::cout);
interpreter::FindSymbolsVisitor find_symbols_visitor(global_info);
interpreter::LinkSymbolsVisitor link_symbols_visitor(global_info);
interpreter::TypeCheckVisitor type_check_visitor(global_info, context_manager);
interpreter::TypedPrintVisitor typed_print_visitor(std::cout, context_manager);
interpreter::TypeCheckVisitor type_check_visitor(global_info, type_context_manager);
interpreter::TypedPrintVisitor typed_print_visitor(std::cout, type_context_manager);
interpreter::ExecuteVisitor execute_visitor(global_info,
type_context_manager,
context_manager,
nullptr); // TODO
build_visitor.VisitSourceFile(source_file.get());