zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TIntermTraverser Class Reference

#include <intermediate.h>

Inherited by CollectAttribsUniforms, DetectCallDepth, MapLongVariableNames, RemoveTree, RenameFunction, RestrictVertexShaderTiming, sh::DetectGradientOperation, sh::DetectLoopDiscontinuity, sh::OutputHLSL, sh::SearchSymbol, sh::UnfoldShortCircuit, TAliveTraverser, TConstTraverser, TDependencyGraphBuilder, TOutputGLSLBase, TOutputTraverser, TVersionGLSL, and ValidateLimitations.

Public Member Functions

 TIntermTraverser (bool preVisit=true, bool inVisit=false, bool postVisit=false, bool rightToLeft=false)
 
virtual ~TIntermTraverser ()
 
void decrementDepth ()
 
int getMaxDepth () const
 
void incrementDepth ()
 
 POOL_ALLOCATOR_NEW_DELETE ()
 
virtual bool visitAggregate (Visit visit, TIntermAggregate *)
 
virtual bool visitBinary (Visit visit, TIntermBinary *)
 
virtual bool visitBranch (Visit visit, TIntermBranch *)
 
virtual void visitConstantUnion (TIntermConstantUnion *)
 
virtual bool visitLoop (Visit visit, TIntermLoop *)
 
virtual bool visitSelection (Visit visit, TIntermSelection *)
 
virtual void visitSymbol (TIntermSymbol *)
 
virtual bool visitUnary (Visit visit, TIntermUnary *)
 

Static Public Member Functions

static TString hash (const TString &name, ShHashFunction64 hashFunction)
 

Public Attributes

const bool inVisit
 
const bool postVisit
 
const bool preVisit
 
const bool rightToLeft
 

Protected Attributes

int depth
 
int maxDepth
 

Detailed Description

Definition at line 539 of file intermediate.h.

Constructor & Destructor Documentation

TIntermTraverser::TIntermTraverser ( bool  preVisit = true,
bool  inVisit = false,
bool  postVisit = false,
bool  rightToLeft = false 
)
inline

Definition at line 543 of file intermediate.h.

virtual TIntermTraverser::~TIntermTraverser ( )
inlinevirtual

Definition at line 550 of file intermediate.h.

Member Function Documentation

int TIntermTraverser::getMaxDepth ( ) const
inline

Definition at line 561 of file intermediate.h.

References maxDepth.

Referenced by TCompiler::limitExpressionComplexity().

TString TIntermTraverser::hash ( const TString name,
ShHashFunction64  hashFunction 
)
static
TIntermTraverser::POOL_ALLOCATOR_NEW_DELETE ( )
virtual bool TIntermTraverser::visitAggregate ( Visit  visit,
TIntermAggregate  
)
inlinevirtual
virtual bool TIntermTraverser::visitBinary ( Visit  visit,
TIntermBinary  
)
inlinevirtual
virtual bool TIntermTraverser::visitBranch ( Visit  visit,
TIntermBranch  
)
inlinevirtual
virtual void TIntermTraverser::visitConstantUnion ( TIntermConstantUnion )
inlinevirtual

Reimplemented in sh::OutputHLSL, TVersionGLSL, TOutputGLSLBase, and CollectAttribsUniforms.

Definition at line 553 of file intermediate.h.

Referenced by TIntermConstantUnion::traverse().

virtual bool TIntermTraverser::visitLoop ( Visit  visit,
TIntermLoop  
)
inlinevirtual
virtual bool TIntermTraverser::visitSelection ( Visit  visit,
TIntermSelection  
)
inlinevirtual
virtual void TIntermTraverser::visitSymbol ( TIntermSymbol )
inlinevirtual
virtual bool TIntermTraverser::visitUnary ( Visit  visit,
TIntermUnary  
)
inlinevirtual

Member Data Documentation

int TIntermTraverser::depth
protected

Definition at line 575 of file intermediate.h.

const bool TIntermTraverser::inVisit

Definition at line 570 of file intermediate.h.

Referenced by TIntermBinary::traverse(), and TIntermAggregate::traverse().

int TIntermTraverser::maxDepth
protected

Definition at line 576 of file intermediate.h.

Referenced by getMaxDepth(), and incrementDepth().

const bool TIntermTraverser::rightToLeft

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