tipc
A TIP to LLVM compiler
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
LocalNameCollector Class Reference

Records local names declared in each function and checks for errors. More...

#include <LocalNameCollector.h>

Inheritance diagram for LocalNameCollector:
Inheritance graph
[legend]
Collaboration diagram for LocalNameCollector:
Collaboration graph
[legend]

Public Member Functions

 LocalNameCollector (std::map< std::string, std::pair< ASTDeclNode *, bool >> fMap)
 
virtual bool visit (ASTFunction *element) override
 
virtual void endVisit (ASTFunction *element) override
 
virtual void endVisit (ASTDeclNode *element) override
 
virtual void endVisit (ASTVariableExpr *element) override
 
- Public Member Functions inherited from ASTVisitor
virtual bool visit (ASTProgram *element)
 
virtual void endVisit (ASTProgram *element)
 
virtual bool visit (ASTNumberExpr *element)
 
virtual void endVisit (ASTNumberExpr *element)
 
virtual bool visit (ASTVariableExpr *element)
 
virtual bool visit (ASTBinaryExpr *element)
 
virtual void endVisit (ASTBinaryExpr *element)
 
virtual bool visit (ASTInputExpr *element)
 
virtual void endVisit (ASTInputExpr *element)
 
virtual bool visit (ASTFunAppExpr *element)
 
virtual void endVisit (ASTFunAppExpr *element)
 
virtual bool visit (ASTAllocExpr *element)
 
virtual void endVisit (ASTAllocExpr *element)
 
virtual bool visit (ASTRefExpr *element)
 
virtual void endVisit (ASTRefExpr *element)
 
virtual bool visit (ASTDeRefExpr *element)
 
virtual void endVisit (ASTDeRefExpr *element)
 
virtual bool visit (ASTNullExpr *element)
 
virtual void endVisit (ASTNullExpr *element)
 
virtual bool visit (ASTFieldExpr *element)
 
virtual void endVisit (ASTFieldExpr *element)
 
virtual bool visit (ASTRecordExpr *element)
 
virtual void endVisit (ASTRecordExpr *element)
 
virtual bool visit (ASTAccessExpr *element)
 
virtual void endVisit (ASTAccessExpr *element)
 
virtual bool visit (ASTDeclNode *element)
 
virtual bool visit (ASTDeclStmt *element)
 
virtual void endVisit (ASTDeclStmt *element)
 
virtual bool visit (ASTAssignStmt *element)
 
virtual void endVisit (ASTAssignStmt *element)
 
virtual bool visit (ASTWhileStmt *element)
 
virtual void endVisit (ASTWhileStmt *element)
 
virtual bool visit (ASTIfStmt *element)
 
virtual void endVisit (ASTIfStmt *element)
 
virtual bool visit (ASTOutputStmt *element)
 
virtual void endVisit (ASTOutputStmt *element)
 
virtual bool visit (ASTReturnStmt *element)
 
virtual void endVisit (ASTReturnStmt *element)
 
virtual bool visit (ASTErrorStmt *element)
 
virtual void endVisit (ASTErrorStmt *element)
 
virtual bool visit (ASTBlockStmt *element)
 
virtual void endVisit (ASTBlockStmt *element)
 

Static Public Member Functions

static std::map< ASTDeclNode *, std::map< std::string, ASTDeclNode * > > build (ASTProgram *p, std::map< std::string, std::pair< ASTDeclNode *, bool >> fMap)
 

Public Attributes

std::map< ASTDeclNode *, std::map< std::string, ASTDeclNode * > > lMap
 

Detailed Description

Records local names declared in each function and checks for errors.

The local name pass visits a restricted set of nodes:

See also
Function to create the instance of the local map and make it current.
DeclNode to install declared names in the current local map and to check that a name is declared at most once.
VariableExpr to ensure that the referenced name is in the map. Errors are reported by throwing SemanticError exceptions.
SemanticError

Constructor & Destructor Documentation

◆ LocalNameCollector()

LocalNameCollector::LocalNameCollector ( std::map< std::string, std::pair< ASTDeclNode *, bool >>  fMap)
inline

Member Function Documentation

◆ build()

std::map< ASTDeclNode *, std::map< std::string, ASTDeclNode * > > LocalNameCollector::build ( ASTProgram p,
std::map< std::string, std::pair< ASTDeclNode *, bool >>  fMap 
)
static

◆ endVisit() [1/3]

virtual void LocalNameCollector::endVisit ( ASTDeclNode element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [2/3]

void LocalNameCollector::endVisit ( ASTFunction element)
overridevirtual

Reimplemented from ASTVisitor.

◆ endVisit() [3/3]

virtual void LocalNameCollector::endVisit ( ASTVariableExpr element)
overridevirtual

Reimplemented from ASTVisitor.

◆ visit()

bool LocalNameCollector::visit ( ASTFunction element)
overridevirtual

Reimplemented from ASTVisitor.

Member Data Documentation

◆ lMap

std::map<ASTDeclNode *, std::map<std::string, ASTDeclNode *> > LocalNameCollector::lMap

The documentation for this class was generated from the following files: