|
| void | convert (Program &program, const RawFlags &conversionFlags, const NameMangling &nameMangling) |
| |
| 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 | 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 | 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 | 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 | visitTypeSpecifierExpression (TypeSpecifierExpression *ast, void *args) |
| |
| virtual void | visitPostUnaryExpression (PostUnaryExpression *ast, void *args) |
| |
| virtual void | visitInitializerExpression (InitializerExpression *ast, void *args) |
| |
|
| void | visitVarDeclaration (VarDeclaration *ast, void *args) override |
| |
| void | visitFunctionDeclaration (FunctionDeclaration *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 | visitLiteralExpression (LiteralExpression *ast, void *args) override |
| |
| void | visitTernaryExpression (TernaryExpression *ast, void *args) override |
| |
| void | visitBinaryExpression (BinaryExpression *ast, void *args) override |
| |
| void | visitUnaryExpression (UnaryExpression *ast, void *args) override |
| |
| void | visitCallExpression (CallExpression *ast, void *args) override |
| |
| void | visitBracketExpression (BracketExpression *ast, void *args) override |
| |
| void | visitCastExpression (CastExpression *ast, void *args) override |
| |
| void | visitObjectExpression (ObjectExpression *ast, void *args) override |
| |
| void | visitAssignExpression (AssignExpression *ast, void *args) override |
| |
| void | visitArrayExpression (ArrayExpression *ast, void *args) override |
| |
| void | convertExpression (ExpressionPtr &expression, const RawFlags &flags) |
| |
| void | convertExpressionList (Vector< ExpressionPtr > &expressionList, const RawFlags &flags) |
| |
| void | convertExpressionVectorSubscript (ExpressionPtr &expression) |
| |
| void | convertExpressionVectorSubscriptObject (ExpressionPtr &expression, const ObjectExpression *objectExpression) |
| |
| void | convertExpressionMatrixSubscript (ExpressionPtr &expression) |
| |
| void | convertExpressionMatrixSubscriptObject (ExpressionPtr &expression, ObjectExpression *objectExpression) |
| |
| void | convertExpressionVectorCompare (ExpressionPtr &expression) |
| |
| void | convertExpressionVectorCompareUnary (ExpressionPtr &expression, UnaryExpression *unaryExpression) |
| |
| void | convertExpressionVectorCompareBinary (ExpressionPtr &expression, BinaryExpression *binaryExpression) |
| |
| void | convertExpressionVectorCompareTernary (ExpressionPtr &expression, TernaryExpression *ternaryExpression) |
| |
| void | convertExpressionImageAccess (ExpressionPtr &expression) |
| |
| void | convertExpressionImageAccessAssign (ExpressionPtr &expression, const AssignExpression *assignExpression) |
| |
| void | convertExpressionImageAccessArray (ExpressionPtr &expression, ArrayExpression *arrayExpression, const AssignExpression *assignExpression=nullptr) |
| |
| void | convertExpressionSamplerBufferAccess (ExpressionPtr &expression) |
| |
| void | convertExpressionSamplerBufferAccessArray (ExpressionPtr &expression, ArrayExpression *arrayExpression) |
| |
| void | convertExpressionIntoBracket (ExpressionPtr &expression) |
| |
| void | convertExpressionIntrinsicCallLog10 (ExpressionPtr &expression) |
| |
| void | convertExpressionTargetType (ExpressionPtr &expression, const TypeDenoter &targetTypeDen, bool matchTypeSize=true) |
| |
| void | convertExpressionTargetTypeInitializer (ExpressionPtr &expression, const InitializerExpression *initExpression, const TypeDenoter &targetTypeDen) |
| |
| void | convertExpressionFormatInitializer (ExpressionPtr &expression, InitializerExpression *initExpression, const TypeDenoter &targetTypeDen) |
| |
| void | convertExpressionTextureBracketOp (ExpressionPtr &expression) |
| |
| void | convertExpressionTextureIntrinsicVec4 (ExpressionPtr &expression) |
| |
| void | convertExpressionCompatibleStruct (const ExpressionPtr &expression) |
| |
Common AST expression converter.
This helper class modifies the AST after context analysis and supports the following conversions:
- Eliminate vector subscripts from scalar types
- Convert implicit casts to explicit casts
- Wrap nested unary expression into brackets (e.g. "- - a" -> "-(-a)")
- Convert access to 'image' types through array indexers to imageStore/imageLoad calls (e.g. myImage[index] = 5 -> imageStore(myImage, index, 5))