CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderCompiler::VisitorTracker Class Reference

#include <CeresEngine/Material/ShaderCompiler/AST/Visitor/VisitorTracker.hpp>

Inheritance diagram for CeresEngine::ShaderCompiler::VisitorTracker:
CeresEngine::ShaderCompiler::Visitor CeresEngine::ShaderCompiler::Analyzer CeresEngine::ShaderCompiler::Converter CeresEngine::ShaderCompiler::ExpressionConverter CeresEngine::ShaderCompiler::FuncNameConverter CeresEngine::ShaderCompiler::Generator CeresEngine::ShaderCompiler::ReferenceAnalyzer CeresEngine::ShaderCompiler::StructParameterAnalyzer CeresEngine::ShaderCompiler::HLSLAnalyzer CeresEngine::ShaderCompiler::GLSLConverter CeresEngine::ShaderCompiler::GLSLGenerator

Protected Member Functions

bool isInsideGlobalScope () const
 
void pushFunctionDeclaration (FunctionDeclaration *funcDeclaration)
 
void popFunctionDeclaration ()
 
bool isInsideFunctionDeclaration () const
 
bool isInsideEntryPoint () const
 
bool isInsideSecondaryEntryPoint () const
 
FunctionDeclarationgetActiveFunctionDeclaration () const
 
StructDeclarationgetActiveFunctionStructDeclaration () const
 
void pushCallExpression (CallExpression *callExpression)
 
void popCallExpression ()
 
CallExpressiongetActiveCallExpression () const
 
void pushLValueExpression (Expression *expression)
 
void popLValueExpression ()
 
ExpressiongetActiveLValueExpression () const
 
void pushStructDeclaration (StructDeclaration *structDeclaration)
 
void popStructDeclaration ()
 
bool isInsideStructDeclaration () const
 
StructDeclarationgetActiveStructDeclaration () const
 
const Vector< StructDeclaration * > & getStructDeclarationStack () const
 
void pushUniformBufferDeclaration (UniformBufferDeclaration *uniformBufferDeclaration)
 
void popUniformBufferDeclaration ()
 
bool isInsideUniformBufferDeclaration () const
 
const Vector< UniformBufferDeclaration * > & getUniformBufferDeclarationStack () const
 
void pushVarDeclarationStatement (VarDeclarationStatement *varDeclarationStatement)
 
void popVarDeclarationStatement ()
 
bool isInsideVarDeclarationStatement () const
 
VarDeclarationStatementgetActiveVarDeclarationStatement () const
 
- Protected Member Functions inherited from CeresEngine::ShaderCompiler::Visitor
template<typename T >
void visit (const T &ast, void *args=nullptr)
 
template<typename T >
void visit (const Vector< T > &astList, void *args=nullptr)
 

Private Attributes

Stack< FunctionDeclaration * > mFuncDeclarationStack
 
Stack< CallExpression * > mCallExpressionStack
 
Stack< Expression * > mLvalueExpressionStack
 
Vector< StructDeclaration * > mStructDeclarationStack
 
Vector< UniformBufferDeclaration * > mUniformBufferDeclarationStack
 
Stack< VarDeclarationStatement * > mVarDeclarationStatementStack
 
std::size_t mStackLevelOfEntryPoint = std::size_t(~0)
 
std::size_t mStackLevelOf2ndEntryPoint = std::size_t(~0)
 

Additional Inherited Members

- Public Member Functions inherited from CeresEngine::ShaderCompiler::Visitor
virtual ~Visitor ()=default
 
virtual void visitProgram (Program *ast, void *args)
 
virtual void visitCodeBlock (CodeBlock *ast, void *args)
 
virtual void visitAttribute (Attribute *ast, void *args)
 
virtual void visitSwitchCase (SwitchCase *ast, void *args)
 
virtual void visitSamplerValue (SamplerValue *ast, void *args)
 
virtual void visitRegister (Register *ast, void *args)
 
virtual void visitPackOffset (PackOffset *ast, void *args)
 
virtual void visitArrayDimension (ArrayDimension *ast, void *args)
 
virtual void visitTypeSpecifier (TypeSpecifier *ast, void *args)
 
virtual void visitVarDeclaration (VarDeclaration *ast, void *args)
 
virtual void visitBufferDeclaration (BufferDeclaration *ast, void *args)
 
virtual void visitSamplerDeclaration (SamplerDeclaration *ast, void *args)
 
virtual void visitStructDeclaration (StructDeclaration *ast, void *args)
 
virtual void visitAliasDeclaration (AliasDeclaration *ast, void *args)
 
virtual void visitFunctionDeclaration (FunctionDeclaration *ast, void *args)
 
virtual void visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args)
 
virtual void visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args)
 
virtual void visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args)
 
virtual void visitVarDeclarationStatement (VarDeclarationStatement *ast, void *args)
 
virtual void visitAliasDeclarationStatement (AliasDeclarationStatement *ast, void *args)
 
virtual void visitBasicDeclarationStatement (BasicDeclarationStatement *ast, void *args)
 
virtual void visitNullStatement (NullStatement *ast, void *args)
 
virtual void visitCodeBlockStatement (CodeBlockStatement *ast, void *args)
 
virtual void visitForLoopStatement (ForLoopStatement *ast, void *args)
 
virtual void visitWhileLoopStatement (WhileLoopStatement *ast, void *args)
 
virtual void visitDoWhileLoopStatement (DoWhileLoopStatement *ast, void *args)
 
virtual void visitIfStatement (IfStatement *ast, void *args)
 
virtual void visitElseStatement (ElseStatement *ast, void *args)
 
virtual void visitSwitchStatement (SwitchStatement *ast, void *args)
 
virtual void visitExpressionStatement (ExpressionStatement *ast, void *args)
 
virtual void visitReturnStatement (ReturnStatement *ast, void *args)
 
virtual void visitCtrlTransferStatement (CtrlTransferStatement *ast, void *args)
 
virtual void visitLayoutStatement (LayoutStatement *ast, void *args)
 
virtual void visitNullExpression (NullExpression *ast, void *args)
 
virtual void visitSequenceExpression (SequenceExpression *ast, void *args)
 
virtual void visitLiteralExpression (LiteralExpression *ast, void *args)
 
virtual void visitTypeSpecifierExpression (TypeSpecifierExpression *ast, void *args)
 
virtual void visitTernaryExpression (TernaryExpression *ast, void *args)
 
virtual void visitBinaryExpression (BinaryExpression *ast, void *args)
 
virtual void visitUnaryExpression (UnaryExpression *ast, void *args)
 
virtual void visitPostUnaryExpression (PostUnaryExpression *ast, void *args)
 
virtual void visitCallExpression (CallExpression *ast, void *args)
 
virtual void visitBracketExpression (BracketExpression *ast, void *args)
 
virtual void visitAssignExpression (AssignExpression *ast, void *args)
 
virtual void visitObjectExpression (ObjectExpression *ast, void *args)
 
virtual void visitArrayExpression (ArrayExpression *ast, void *args)
 
virtual void visitCastExpression (CastExpression *ast, void *args)
 
virtual void visitInitializerExpression (InitializerExpression *ast, void *args)
 

Member Function Documentation

◆ getActiveCallExpression()

CallExpression * CeresEngine::ShaderCompiler::VisitorTracker::getActiveCallExpression ( ) const
protected

◆ getActiveFunctionDeclaration()

FunctionDeclaration * CeresEngine::ShaderCompiler::VisitorTracker::getActiveFunctionDeclaration ( ) const
protected

◆ getActiveFunctionStructDeclaration()

StructDeclaration * CeresEngine::ShaderCompiler::VisitorTracker::getActiveFunctionStructDeclaration ( ) const
protected

◆ getActiveLValueExpression()

Expression * CeresEngine::ShaderCompiler::VisitorTracker::getActiveLValueExpression ( ) const
protected

◆ getActiveStructDeclaration()

StructDeclaration * CeresEngine::ShaderCompiler::VisitorTracker::getActiveStructDeclaration ( ) const
protected

◆ getActiveVarDeclarationStatement()

VarDeclarationStatement * CeresEngine::ShaderCompiler::VisitorTracker::getActiveVarDeclarationStatement ( ) const
protected

◆ getStructDeclarationStack()

const Vector< StructDeclaration * > & CeresEngine::ShaderCompiler::VisitorTracker::getStructDeclarationStack ( ) const
inlineprotected

◆ getUniformBufferDeclarationStack()

const Vector< UniformBufferDeclaration * > & CeresEngine::ShaderCompiler::VisitorTracker::getUniformBufferDeclarationStack ( ) const
inlineprotected

◆ isInsideEntryPoint()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideEntryPoint ( ) const
protected

◆ isInsideFunctionDeclaration()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideFunctionDeclaration ( ) const
protected

◆ isInsideGlobalScope()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideGlobalScope ( ) const
protected

◆ isInsideSecondaryEntryPoint()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideSecondaryEntryPoint ( ) const
protected

◆ isInsideStructDeclaration()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideStructDeclaration ( ) const
protected

◆ isInsideUniformBufferDeclaration()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideUniformBufferDeclaration ( ) const
protected

◆ isInsideVarDeclarationStatement()

bool CeresEngine::ShaderCompiler::VisitorTracker::isInsideVarDeclarationStatement ( ) const
protected

◆ popCallExpression()

void CeresEngine::ShaderCompiler::VisitorTracker::popCallExpression ( )
protected

◆ popFunctionDeclaration()

void CeresEngine::ShaderCompiler::VisitorTracker::popFunctionDeclaration ( )
protected

◆ popLValueExpression()

void CeresEngine::ShaderCompiler::VisitorTracker::popLValueExpression ( )
protected

◆ popStructDeclaration()

void CeresEngine::ShaderCompiler::VisitorTracker::popStructDeclaration ( )
protected

◆ popUniformBufferDeclaration()

void CeresEngine::ShaderCompiler::VisitorTracker::popUniformBufferDeclaration ( )
protected

◆ popVarDeclarationStatement()

void CeresEngine::ShaderCompiler::VisitorTracker::popVarDeclarationStatement ( )
protected

◆ pushCallExpression()

void CeresEngine::ShaderCompiler::VisitorTracker::pushCallExpression ( CallExpression callExpression)
protected

◆ pushFunctionDeclaration()

void CeresEngine::ShaderCompiler::VisitorTracker::pushFunctionDeclaration ( FunctionDeclaration funcDeclaration)
protected

◆ pushLValueExpression()

void CeresEngine::ShaderCompiler::VisitorTracker::pushLValueExpression ( Expression expression)
protected

◆ pushStructDeclaration()

void CeresEngine::ShaderCompiler::VisitorTracker::pushStructDeclaration ( StructDeclaration structDeclaration)
protected

◆ pushUniformBufferDeclaration()

void CeresEngine::ShaderCompiler::VisitorTracker::pushUniformBufferDeclaration ( UniformBufferDeclaration uniformBufferDeclaration)
protected

◆ pushVarDeclarationStatement()

void CeresEngine::ShaderCompiler::VisitorTracker::pushVarDeclarationStatement ( VarDeclarationStatement varDeclarationStatement)
protected

Member Data Documentation

◆ mCallExpressionStack

Stack<CallExpression*> CeresEngine::ShaderCompiler::VisitorTracker::mCallExpressionStack
private

◆ mFuncDeclarationStack

Stack<FunctionDeclaration*> CeresEngine::ShaderCompiler::VisitorTracker::mFuncDeclarationStack
private

◆ mLvalueExpressionStack

Stack<Expression*> CeresEngine::ShaderCompiler::VisitorTracker::mLvalueExpressionStack
private

◆ mStackLevelOf2ndEntryPoint

std::size_t CeresEngine::ShaderCompiler::VisitorTracker::mStackLevelOf2ndEntryPoint = std::size_t(~0)
private

◆ mStackLevelOfEntryPoint

std::size_t CeresEngine::ShaderCompiler::VisitorTracker::mStackLevelOfEntryPoint = std::size_t(~0)
private

◆ mStructDeclarationStack

Vector<StructDeclaration*> CeresEngine::ShaderCompiler::VisitorTracker::mStructDeclarationStack
private

◆ mUniformBufferDeclarationStack

Vector<UniformBufferDeclaration*> CeresEngine::ShaderCompiler::VisitorTracker::mUniformBufferDeclarationStack
private

◆ mVarDeclarationStatementStack

Stack<VarDeclarationStatement*> CeresEngine::ShaderCompiler::VisitorTracker::mVarDeclarationStatementStack
private

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