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

End-of-scope analyzer. More...

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

Inheritance diagram for CeresEngine::ShaderCompiler::EndOfScopeAnalyzer:
CeresEngine::ShaderCompiler::Visitor

Public Member Functions

void markEndOfScopesFromFunction (const FunctionDeclaration &funcDeclaration)
 

Private Member Functions

void visitCodeBlock (CodeBlock *ast, void *args) override
 
void visitForLoopStatement (ForLoopStatement *ast, void *args) override
 
void visitWhileLoopStatement (WhileLoopStatement *ast, void *args) override
 
void visitDoWhileLoopStatement (DoWhileLoopStatement *ast, void *args) override
 
void visitIfStatement (IfStatement *ast, void *args) override
 
void visitSwitchStatement (SwitchStatement *ast, void *args) override
 
void visitExpressionStatement (ExpressionStatement *ast, void *args) override
 
void visitReturnStatement (ReturnStatement *ast, void *args) override
 
void visitCtrlTransferStatement (CtrlTransferStatement *ast, void *args) override
 
- Private Member Functions inherited from CeresEngine::ShaderCompiler::Visitor
virtual ~Visitor ()=default
 
virtual void visitProgram (Program *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 visitElseStatement (ElseStatement *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)
 
template<typename T >
void visit (const T &ast, void *args=nullptr)
 
template<typename T >
void visit (const Vector< T > &astList, void *args=nullptr)
 

Detailed Description

End-of-scope analyzer.

This helper class for the context analyzer marks all return statements which are at the end of a scope (e.g. the 'isEndOfFunction' flag for the return statement).

Member Function Documentation

◆ markEndOfScopesFromFunction()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::markEndOfScopesFromFunction ( const FunctionDeclaration funcDeclaration)

◆ visitCodeBlock()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitCodeBlock ( CodeBlock ast,
void args 
)
overrideprivatevirtual

◆ visitCtrlTransferStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitCtrlTransferStatement ( CtrlTransferStatement ast,
void args 
)
overrideprivatevirtual

◆ visitDoWhileLoopStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitDoWhileLoopStatement ( DoWhileLoopStatement ast,
void args 
)
overrideprivatevirtual

◆ visitExpressionStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitExpressionStatement ( ExpressionStatement ast,
void args 
)
overrideprivatevirtual

◆ visitForLoopStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitForLoopStatement ( ForLoopStatement ast,
void args 
)
overrideprivatevirtual

◆ visitIfStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitIfStatement ( IfStatement ast,
void args 
)
overrideprivatevirtual

◆ visitReturnStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitReturnStatement ( ReturnStatement ast,
void args 
)
overrideprivatevirtual

◆ visitSwitchStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitSwitchStatement ( SwitchStatement ast,
void args 
)
overrideprivatevirtual

◆ visitWhileLoopStatement()

void CeresEngine::ShaderCompiler::EndOfScopeAnalyzer::visitWhileLoopStatement ( WhileLoopStatement ast,
void args 
)
overrideprivatevirtual

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