18 std::map<std::string, ASTDeclNode *> curMap;
19 std::map<std::string, std::pair<ASTDeclNode *, bool>> fMap;
28 std::map<ASTDeclNode *, std::map<std::string, ASTDeclNode *>>
lMap;
30 static std::map<ASTDeclNode *, std::map<std::string, ASTDeclNode *>>
32 std::map<std::string, std::pair<ASTDeclNode *, bool>> fMap);
Class for declaring a name, e.g., function, parameter, variable.
Definition: ASTDeclNode.h:7
Class for defining the signature, local declarations, and a body of a function.
Definition: ASTFunction.h:11
Class for a program which is a name and a list of functions.
Definition: ASTProgram.h:11
Class for referencing a variable.
Definition: ASTVariableExpr.h:7
Base class for AST visitors.
Definition: ASTVisitor.h:23
Records local names declared in each function and checks for errors.
Definition: LocalNameCollector.h:17
virtual void endVisit(ASTDeclNode *element) override
virtual bool visit(ASTFunction *element) override
Definition: LocalNameCollector.cpp:13
virtual void endVisit(ASTFunction *element) override
Definition: LocalNameCollector.cpp:20
virtual void endVisit(ASTVariableExpr *element) override
LocalNameCollector(std::map< std::string, std::pair< ASTDeclNode *, bool >> fMap)
Definition: LocalNameCollector.h:24
static std::map< ASTDeclNode *, std::map< std::string, ASTDeclNode * > > build(ASTProgram *p, std::map< std::string, std::pair< ASTDeclNode *, bool >> fMap)
Definition: LocalNameCollector.cpp:6
std::map< ASTDeclNode *, std::map< std::string, ASTDeclNode * > > lMap
Definition: LocalNameCollector.h:28