nw::script::AstResolver
-
struct AstResolver : public nw::script::BaseVisitor
Public Types
-
using ScopeMap = std::unordered_map<String, ScopeDecl>
-
using EnvStack = Vector<immer::map<String, Export>>
Public Functions
-
virtual ~AstResolver() = default
-
inline void begin_scope(bool global = false)
-
inline void declare(NssToken token, Declaration *decl, bool is_type = false)
-
inline void end_scope(bool global = false)
-
inline immer::map<String, Export> symbol_table() const
-
inline const Declaration *resolve(StringView token, SourceRange range, bool is_type)
-
inline void match_function_decls(const FunctionDecl *decl, const FunctionDecl *def)
-
inline virtual void visit(FunctionDecl *decl) override
-
inline virtual void visit(FunctionDefinition *decl) override
-
inline virtual void visit(StructDecl *decl) override
-
inline virtual void visit(AssignExpression *expr) override
-
inline virtual void visit(BinaryExpression *expr) override
-
inline virtual void visit(CallExpression *expr) override
-
inline virtual void visit(ComparisonExpression *expr) override
-
inline virtual void visit(ConditionalExpression *expr) override
-
inline virtual void visit(DotExpression *expr) override
-
inline virtual void visit(EmptyExpression *expr) override
-
inline virtual void visit(GroupingExpression *expr) override
-
inline virtual void visit(LiteralExpression *expr) override
-
inline virtual void visit(LiteralVectorExpression *expr) override
-
inline virtual void visit(LogicalExpression *expr) override
-
inline virtual void visit(PostfixExpression *expr) override
-
inline virtual void visit(UnaryExpression *expr) override
-
inline virtual void visit(VariableExpression *expr) override
-
inline virtual void visit(BlockStatement *stmt) override
-
inline virtual void visit(DeclList *stmt) override
-
inline virtual void visit(DoStatement *stmt) override
-
inline virtual void visit(EmptyStatement *stmt) override
-
inline virtual void visit(ExprStatement *stmt) override
-
inline virtual void visit(IfStatement *stmt) override
-
inline virtual void visit(ForStatement *stmt) override
-
inline virtual void visit(JumpStatement *stmt) override
-
inline virtual void visit(LabelStatement *stmt) override
-
inline virtual void visit(SwitchStatement *stmt) override
-
inline virtual void visit(WhileStatement *stmt) override
-
using ScopeMap = std::unordered_map<String, ScopeDecl>