likn_symbols _visitor done, but it is not tested yet

This commit is contained in:
ProgramSnail 2023-04-17 18:56:58 +03:00
parent 3c643d2759
commit 3d74b1383e
10 changed files with 236 additions and 427 deletions

View file

@ -3,15 +3,17 @@
#include <ostream>
// for clangd
#include "abstract_types_context.hpp"
#include "visitor.hpp"
#include "global_info.hpp"
namespace interpreter {
// TODO, (maybe add VisitSourceFile?)
class LinkSymbolsVisitor : public Visitor {
public:
explicit LinkSymbolsVisitor() {}
explicit LinkSymbolsVisitor(info::GlobalInfo& global_info)
: namespace_visitor_(global_info.CreateVisitor()) {}
private:
// Sources -----------------
@ -102,16 +104,18 @@ private:
// Identifiers, constants, etc. -----------------
void Visit(ExtendedName* node) override;
void Visit(std::string* node) override; // std::string
void Visit(FloatNumberLiteral* node) override;
void Visit(NumberLiteral* node) override;
void Visit(StringLiteral* node) override;
void Visit(CharLiteral* node) override;
// // void Visit(ExtendedName* node) override;
// //
// // void Visit(std::string* node) override; // std::string
// //
// // void Visit(FloatNumberLiteral* node) override;
// // void Visit(NumberLiteral* node) override;
// // void Visit(StringLiteral* node) override;
// // void Visit(CharLiteral* node) override;
private:
info::GlobalInfo::NamespaceVisitor namespace_visitor_;
info::AbstractTypesContextManager abstract_types_;
};
} // namespace interpreter