|
| virtual void | decorateASTPrimary (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc)=0 |
| |
| void | submitReport (bool isError, const String &msg, const AST *ast=nullptr, const Vector< const AST * > &astAppendices={}) |
| |
| void | error (const String &msg, const AST *ast=nullptr, const Vector< const AST * > &astAppendices={}) |
| |
| void | errorUndeclaredIdent (const String &ident, const AST *ast=nullptr) |
| |
| void | errorUndeclaredIdent (const String &ident, const String &contextName, const AST *ast=nullptr) |
| |
| void | errorUndeclaredIdent (const String &ident, const String &contextName, const String &similarIdent, const AST *ast=nullptr) |
| |
| void | errorInternal (const String &msg, const AST *ast=nullptr) |
| |
| void | warning (const String &msg, const AST *ast=nullptr) |
| |
| void | warningOnNullStatement (const StatementPtr &ast, const String &statementTypeName) |
| |
| ReportHandler & | getReportHandler () |
| |
| bool | isWarningEnabled (UInt32 flags) const |
| |
| void | openScope () |
| |
| void | closeScope () |
| |
| void | register_ (const String &ident, AST *ast) |
| |
| AST * | fetch (const String &ident, const AST *ast=nullptr) |
| |
| AST * | fetchFromCurrentScopeOrNull (const String &ident) const |
| |
| Declaration * | fetchDeclaration (const String &ident, const AST *ast=nullptr) |
| |
| Declaration * | fetchType (const String &ident, const AST *ast=nullptr) |
| |
| VarDeclaration * | fetchVarDeclaration (const String &ident, const AST *ast=nullptr) |
| |
| FunctionDeclaration * | fetchFunctionDeclaration (const String &ident, const Vector< ExpressionPtr > &args, const AST *ast=nullptr) |
| |
| FunctionDeclaration * | fetchFunctionDeclaration (const String &ident, const AST *ast=nullptr) |
| |
| VarDeclaration * | fetchVarDeclarationFromStruct (const StructTypeDenoter &structTypeDenoter, const String &ident, const AST *ast=nullptr) |
| |
| FunctionDeclaration * | fetchFunctionDeclarationFromStruct (const StructTypeDenoter &structTypeDenoter, const String &ident, const Vector< ExpressionPtr > &args, const AST *ast=nullptr) |
| |
| StructDeclaration * | fetchStructDeclarationFromIdent (const String &ident, const AST *ast=nullptr) |
| |
| StructDeclaration * | fetchStructDeclarationFromTypeDenoter (const TypeDenoter &typeDenoter) |
| |
| StructDeclaration * | findCompatibleStructDeclaration (const StructDeclaration &rhs) |
| |
| bool | isInsideGlobalScope () const |
| |
| void | analyzeTypeDenoter (TypeDenoterPtr &typeDenoter, const AST *ast) |
| |
| void | analyzeBufferTypeDenoter (BufferTypeDenoter &bufferTypeDen, const AST *ast) |
| |
| void | analyzeStructTypeDenoter (StructTypeDenoter &structTypeDen, const AST *ast) |
| |
| void | analyzeAliasTypeDenoter (TypeDenoterPtr &typeDenoter, const AST *ast) |
| |
| void | analyzeTypeSpecifier (TypeSpecifier *typeSpecifier) |
| |
| void | analyzeTypeSpecifierForParameter (const TypeSpecifier *typeSpecifier) |
| |
| void | analyzeFunctionEndOfScopes (const FunctionDeclaration &funcDeclaration) |
| |
| void | analyzeFunctionControlPath (FunctionDeclaration &funcDeclaration) |
| |
| TypeDenoterPtr | getTypeDenoterFrom (TypedAST *ast, const TypeDenoter *expectedTypeDenoter=nullptr) |
| |
| void | validateTypeCast (const TypeDenoter &sourceTypeDen, const TypeDenoter &destTypeDen, const String &contextDesc, const AST *ast=nullptr) |
| |
| void | validateTypeCastFrom (TypedAST *sourceAST, TypedAST *destAST, const String &contextDesc) |
| |
| void | analyzeConditionalExpression (Expression *expression) |
| |
| Variant | evaluateConstExpression (Expression &expression) |
| |
| Variant | evaluateConstExpressionObject (const ObjectExpression &expression) |
| |
| Variant | evaluateOrDefault (Expression &expression, const Variant &defaultValue={}) |
| |
| Int32 | evaluateConstExpressionInt (Expression &expression) |
| |
| float | evaluateConstExpressionFloat (Expression &expression) |
| |
| 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 |
| |
| template<typename T > |
| void | visit (const T &ast, void *args=nullptr) |
| |
| template<typename T > |
| void | visit (const Vector< T > &astList, void *args=nullptr) |
| |
| 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) |
| |