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

Collects the names of functions declared in the program. More...

#include <FunctionNameCollector.h>

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

Public Member Functions

 FunctionNameCollector ()=default
 
virtual bool visit (ASTFunction *element) override
 
- Public Member Functions inherited from ASTVisitor
virtual bool visit (ASTProgram *element)
 
virtual void endVisit (ASTProgram *element)
 
virtual void endVisit (ASTFunction *element)
 
virtual bool visit (ASTNumberExpr *element)
 
virtual void endVisit (ASTNumberExpr *element)
 
virtual bool visit (ASTVariableExpr *element)
 
virtual void endVisit (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 void endVisit (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< std::string, std::pair< ASTDeclNode *, bool > > build (ASTProgram *p)
 

Public Attributes

std::map< std::string, std::pair< ASTDeclNode *, bool > > fMap
 

Detailed Description

Collects the names of functions declared in the program.

The function name builder visits a restricted set of nodes, just functions, It records the name in the function map as well as whether it is a polymorphic function. It checks that a name is declared at most once. Errors are reported by throwing SemanticError exceptions.

See also
SemanticError

Constructor & Destructor Documentation

◆ FunctionNameCollector()

FunctionNameCollector::FunctionNameCollector ( )
default

Member Function Documentation

◆ build()

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

◆ visit()

bool FunctionNameCollector::visit ( ASTFunction element)
overridevirtual

Reimplemented from ASTVisitor.

Member Data Documentation

◆ fMap

std::map<std::string, std::pair<ASTDeclNode *, bool> > FunctionNameCollector::fMap

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