|
| bool | reachable (AST *ast) |
| |
| void | visitStatementList (const Vector< StatementPtr > &statements) |
| |
| void | markLValueExpression (const Expression *expression) |
| |
| void | markLValueExpressionObject (const ObjectExpression *objectExpression) |
| |
| void | visitCodeBlock (CodeBlock *ast, void *args) override |
| |
| void | visitSwitchCase (SwitchCase *ast, void *args) override |
| |
| void | visitTypeSpecifier (TypeSpecifier *ast, void *args) override |
| |
| void | visitVarDeclaration (VarDeclaration *ast, void *args) override |
| |
| void | visitStructDeclaration (StructDeclaration *ast, void *args) override |
| |
| void | visitBufferDeclaration (BufferDeclaration *ast, void *args) override |
| |
| void | visitSamplerDeclaration (SamplerDeclaration *ast, void *args) override |
| |
| void | visitFunctionDeclaration (FunctionDeclaration *ast, void *args) override |
| |
| void | visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args) override |
| |
| void | visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args) override |
| |
| void | visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args) override |
| |
| void | visitVarDeclarationStatement (VarDeclarationStatement *ast, void *args) override |
| |
| void | visitUnaryExpression (UnaryExpression *ast, void *args) override |
| |
| void | visitPostUnaryExpression (PostUnaryExpression *ast, void *args) override |
| |
| void | visitCallExpression (CallExpression *ast, void *args) override |
| |
| void | visitObjectExpression (ObjectExpression *ast, void *args) override |
| |
| void | visitAssignExpression (AssignExpression *ast, void *args) override |
| |
| bool | isInsideGlobalScope () const |
| |
| void | pushFunctionDeclaration (FunctionDeclaration *funcDeclaration) |
| |
| void | popFunctionDeclaration () |
| |
| bool | isInsideFunctionDeclaration () const |
| |
| bool | isInsideEntryPoint () const |
| |
| bool | isInsideSecondaryEntryPoint () const |
| |
| FunctionDeclaration * | getActiveFunctionDeclaration () const |
| |
| StructDeclaration * | getActiveFunctionStructDeclaration () const |
| |
| void | pushCallExpression (CallExpression *callExpression) |
| |
| void | popCallExpression () |
| |
| CallExpression * | getActiveCallExpression () const |
| |
| void | pushLValueExpression (Expression *expression) |
| |
| void | popLValueExpression () |
| |
| Expression * | getActiveLValueExpression () const |
| |
| void | pushStructDeclaration (StructDeclaration *structDeclaration) |
| |
| void | popStructDeclaration () |
| |
| bool | isInsideStructDeclaration () const |
| |
| StructDeclaration * | getActiveStructDeclaration () 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 |
| |
| VarDeclarationStatement * | getActiveVarDeclarationStatement () const |
| |
| virtual | ~Visitor ()=default |
| |
| virtual void | visitProgram (Program *ast, void *args) |
| |
| virtual void | visitAttribute (Attribute *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 | visitAliasDeclaration (AliasDeclaration *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 | visitBracketExpression (BracketExpression *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) |
| |
Object reference analyzer.
This helper class for the context analyzer marks all functions which are used (or rather referenced) from the beginning of the shader entry point. All other functions will be ignored by the code generator.