PUMA Library Reference Manual
Puma::CSemVisitor Class Reference

#include <CSemVisitor.h>

+ Inheritance diagram for Puma::CSemVisitor:

Public Member Functions

 CSemVisitor (ErrorSink &, CStructure *=(CStructure *) 0)
 
void run (CTree *, CStructure *=(CStructure *) 0)
 
void configure (Config &)
 
CTypeInforesolveExpr (CTree *, CTree *) const
 
void resolveInit (CObjectInfo *info, CTree *, CTree *) const
 

Protected Member Functions

void pre_visit (CTree *)
 Apply actions before the given node is visited. More...
 
void post_visit (CTree *)
 Apply actions after the given node is visited. More...
 
void pre_action (CT_Program *)
 
void pre_action (CT_ArgDeclList *)
 
void pre_action (CT_ArgNameList *)
 
void pre_action (CT_ArgDeclSeq *)
 
void pre_action (CT_MembList *)
 
void pre_action (CT_CmpdStmt *)
 
void pre_action (CT_IfStmt *)
 
void pre_action (CT_IfElseStmt *)
 
void pre_action (CT_SwitchStmt *)
 
void pre_action (CT_ForStmt *)
 
void pre_action (CT_WhileStmt *)
 
void pre_action (CT_DoStmt *)
 
void pre_action (CT_ExprStmt *)
 
void pre_action (CT_CaseStmt *)
 
void pre_action (CT_GotoStmt *)
 
void pre_action (CT_ReturnStmt *)
 
void pre_action (CT_InitDeclarator *)
 
void pre_action (CT_ArrayDeclarator *)
 
void pre_action (CT_BitFieldDeclarator *)
 
void pre_action (CT_ExprList *)
 
void pre_action (CT_CmpdLiteral *)
 
void post_action (CT_Program *)
 
void post_action (CT_ArgDeclList *)
 
void post_action (CT_ArgNameList *)
 
void post_action (CT_ArgDeclSeq *)
 
void post_action (CT_MembList *)
 
void post_action (CT_CmpdStmt *)
 
void post_action (CT_IfStmt *)
 
void post_action (CT_IfElseStmt *)
 
void post_action (CT_SwitchStmt *)
 
void post_action (CT_ForStmt *)
 
void post_action (CT_WhileStmt *)
 
CT_SimpleNamefindName (CTree *) const
 

Protected Attributes

CStructurecurrent_scope
 
ErrorSinkerr
 

Constructor & Destructor Documentation

◆ CSemVisitor()

Puma::CSemVisitor::CSemVisitor ( ErrorSink ,
CStructure = (CStructure *) 0 
)

Member Function Documentation

◆ configure()

void Puma::CSemVisitor::configure ( Config )
inline

◆ findName()

CT_SimpleName* Puma::CSemVisitor::findName ( CTree ) const
protected

◆ post_action() [1/11]

void Puma::CSemVisitor::post_action ( CT_ArgDeclList )
protected

◆ post_action() [2/11]

void Puma::CSemVisitor::post_action ( CT_ArgDeclSeq )
protected

◆ post_action() [3/11]

void Puma::CSemVisitor::post_action ( CT_ArgNameList )
protected

◆ post_action() [4/11]

void Puma::CSemVisitor::post_action ( CT_CmpdStmt )
protected

◆ post_action() [5/11]

void Puma::CSemVisitor::post_action ( CT_ForStmt )
protected

◆ post_action() [6/11]

void Puma::CSemVisitor::post_action ( CT_IfElseStmt )
protected

◆ post_action() [7/11]

void Puma::CSemVisitor::post_action ( CT_IfStmt )
protected

◆ post_action() [8/11]

void Puma::CSemVisitor::post_action ( CT_MembList )
protected

◆ post_action() [9/11]

void Puma::CSemVisitor::post_action ( CT_Program )
protected

◆ post_action() [10/11]

void Puma::CSemVisitor::post_action ( CT_SwitchStmt )
protected

◆ post_action() [11/11]

void Puma::CSemVisitor::post_action ( CT_WhileStmt )
protected

◆ post_visit()

void Puma::CSemVisitor::post_visit ( CTree node)
protectedvirtual

Apply actions after the given node is visited.

To be implemented by derived visitors.

Parameters
nodeThe node to visit.

Reimplemented from Puma::CVisitor.

◆ pre_action() [1/21]

void Puma::CSemVisitor::pre_action ( CT_ArgDeclList )
protected

◆ pre_action() [2/21]

void Puma::CSemVisitor::pre_action ( CT_ArgDeclSeq )
protected

◆ pre_action() [3/21]

void Puma::CSemVisitor::pre_action ( CT_ArgNameList )
protected

◆ pre_action() [4/21]

void Puma::CSemVisitor::pre_action ( CT_ArrayDeclarator )
protected

◆ pre_action() [5/21]

void Puma::CSemVisitor::pre_action ( CT_BitFieldDeclarator )
protected

◆ pre_action() [6/21]

void Puma::CSemVisitor::pre_action ( CT_CaseStmt )
protected

◆ pre_action() [7/21]

void Puma::CSemVisitor::pre_action ( CT_CmpdLiteral )
protected

◆ pre_action() [8/21]

void Puma::CSemVisitor::pre_action ( CT_CmpdStmt )
protected

◆ pre_action() [9/21]

void Puma::CSemVisitor::pre_action ( CT_DoStmt )
protected

◆ pre_action() [10/21]

void Puma::CSemVisitor::pre_action ( CT_ExprList )
protected

◆ pre_action() [11/21]

void Puma::CSemVisitor::pre_action ( CT_ExprStmt )
protected

◆ pre_action() [12/21]

void Puma::CSemVisitor::pre_action ( CT_ForStmt )
protected

◆ pre_action() [13/21]

void Puma::CSemVisitor::pre_action ( CT_GotoStmt )
protected

◆ pre_action() [14/21]

void Puma::CSemVisitor::pre_action ( CT_IfElseStmt )
protected

◆ pre_action() [15/21]

void Puma::CSemVisitor::pre_action ( CT_IfStmt )
protected

◆ pre_action() [16/21]

void Puma::CSemVisitor::pre_action ( CT_InitDeclarator )
protected

◆ pre_action() [17/21]

void Puma::CSemVisitor::pre_action ( CT_MembList )
protected

◆ pre_action() [18/21]

void Puma::CSemVisitor::pre_action ( CT_Program )
protected

◆ pre_action() [19/21]

void Puma::CSemVisitor::pre_action ( CT_ReturnStmt )
protected

◆ pre_action() [20/21]

void Puma::CSemVisitor::pre_action ( CT_SwitchStmt )
protected

◆ pre_action() [21/21]

void Puma::CSemVisitor::pre_action ( CT_WhileStmt )
protected

◆ pre_visit()

void Puma::CSemVisitor::pre_visit ( CTree node)
protectedvirtual

Apply actions before the given node is visited.

To be implemented by derived visitors.

Parameters
nodeThe node to visit.

Reimplemented from Puma::CVisitor.

◆ resolveExpr()

CTypeInfo* Puma::CSemVisitor::resolveExpr ( CTree ,
CTree  
) const

◆ resolveInit()

void Puma::CSemVisitor::resolveInit ( CObjectInfo info,
CTree ,
CTree  
) const

◆ run()

void Puma::CSemVisitor::run ( CTree ,
CStructure = (CStructure *) 0 
)

Member Data Documentation

◆ current_scope

CStructure* Puma::CSemVisitor::current_scope
protected

◆ err

ErrorSink& Puma::CSemVisitor::err
protected