|
| void | decorateASTPrimary (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc) override |
| |
| void | errorIfAttributeNotFound (bool found, const String &attribDesc) |
| |
| bool | isD3D9ShaderModel () const |
| |
| void | visitProgram (Program *ast, void *args) override |
| |
| void | visitCodeBlock (CodeBlock *ast, void *args) override |
| |
| void | visitAttribute (Attribute *ast, void *args) override |
| |
| void | visitArrayDimension (ArrayDimension *ast, void *args) override |
| |
| void | visitTypeSpecifier (TypeSpecifier *ast, void *args) override |
| |
| void | visitVarDeclaration (VarDeclaration *ast, void *args) override |
| |
| void | visitBufferDeclaration (BufferDeclaration *ast, void *args) override |
| |
| void | visitSamplerDeclaration (SamplerDeclaration *ast, void *args) override |
| |
| void | visitStructDeclaration (StructDeclaration *ast, void *args) override |
| |
| void | visitAliasDeclaration (AliasDeclaration *ast, void *args) override |
| |
| void | visitFunctionDeclaration (FunctionDeclaration *ast, void *args) override |
| |
| void | visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args) override |
| |
| void | visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args) override |
| |
| void | visitVarDeclarationStatement (VarDeclarationStatement *ast, void *args) override |
| |
| void | visitBasicDeclarationStatement (BasicDeclarationStatement *ast, void *args) override |
| |
| void | visitCodeBlockStatement (CodeBlockStatement *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 | visitElseStatement (ElseStatement *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 | visitUnaryExpression (UnaryExpression *ast, void *args) override |
| |
| void | visitPostUnaryExpression (PostUnaryExpression *ast, void *args) override |
| |
| void | visitCallExpression (CallExpression *ast, void *args) override |
| |
| void | visitAssignExpression (AssignExpression *ast, void *args) override |
| |
| void | visitObjectExpression (ObjectExpression *ast, void *args) override |
| |
| void | visitArrayExpression (ArrayExpression *ast, void *args) override |
| |
| void | analyzeVarDeclaration (VarDeclaration *varDeclaration) |
| |
| void | analyzeVarDeclarationLocal (VarDeclaration *varDeclaration, bool registerVarIdent=true) |
| |
| void | analyzeVarDeclarationStaticMember (VarDeclaration *varDeclaration) |
| |
| void | analyzeCallExpression (CallExpression *callExpression) |
| |
| void | analyzeCallExpressionPrimary (CallExpression *callExpression, const TypeDenoter *prefixTypeDenoter=nullptr) |
| |
| void | analyzeCallExpressionFunction (CallExpression *callExpression, bool isStatic=false, const Expression *prefixExpression=nullptr, const TypeDenoter *prefixTypeDenoter=nullptr) |
| |
| void | analyzeCallExpressionIntrinsic (CallExpression *callExpression, const HLSLIntrinsicEntry &intr, bool isStatic=false, const TypeDenoter *prefixTypeDenoter=nullptr) |
| |
| void | analyzeCallExpressionIntrinsicPrimary (CallExpression *callExpression, const HLSLIntrinsicEntry &intr) |
| |
| void | analyzeCallExpressionIntrinsicFromBufferType (const CallExpression *callExpression, const BufferType bufferType) |
| |
| void | analyzeIntrinsicWrapperInlining (CallExpression *callExpression) |
| |
| void | analyzeObjectExpression (ObjectExpression *expression, PrefixArgs *args) |
| |
| void | analyzeObjectExpressionVarDeclarationFromStruct (ObjectExpression *expression, StructDeclaration *baseStructDeclaration, const StructTypeDenoter &structTypeDen) |
| |
| void | analyzeObjectExpressionBaseStructDeclarationFromStruct (ObjectExpression *expression, PrefixArgs &outputArgs, const StructTypeDenoter &structTypeDen) |
| |
| bool | analyzeStaticAccessExpression (const Expression *prefixExpression, bool isStatic, const AST *ast=nullptr) |
| |
| bool | analyzeStaticTypeSpecifier (const TypeSpecifier *typeSpecifier, const String &ident, const Expression *expression, bool isStatic) |
| |
| void | analyzeLValueExpression (Expression *expression, const AST *ast=nullptr, VarDeclaration *param=nullptr) |
| |
| void | analyzeLValueExpressionObject (ObjectExpression *objectExpression, const AST *ast=nullptr, VarDeclaration *param=nullptr) |
| |
| void | analyzeArrayExpression (ArrayExpression *expression) |
| |
| void | analyzeEntryPoint (FunctionDeclaration *funcDeclaration) |
| |
| void | analyzeEntryPointInputOutput (FunctionDeclaration *funcDeclaration) |
| |
| void | analyzeEntryPointParameter (FunctionDeclaration *funcDeclaration, const VarDeclarationStatement *param) |
| |
| void | analyzeEntryPointParameterInOut (FunctionDeclaration *funcDeclaration, VarDeclaration *varDeclaration, bool input, TypeDenoterPtr varTypeDen=nullptr) |
| |
| void | analyzeEntryPointParameterInOutVariable (FunctionDeclaration *funcDeclaration, VarDeclaration *varDeclaration, bool input) |
| |
| void | analyzeEntryPointParameterInOutStruct (FunctionDeclaration *funcDeclaration, StructDeclaration *structDeclaration, bool input) |
| |
| void | analyzeEntryPointParameterInOutBuffer (FunctionDeclaration *funcDeclaration, VarDeclaration *varDeclaration, const BufferTypeDenoter *bufferTypeDen, bool input) |
| |
| void | analyzeEntryPointAttributes (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeEntryPointAttributesTessControlShader (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeEntryPointAttributesTessEvaluationShader (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeEntryPointAttributesGeometryShader (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeEntryPointAttributesFragmentShader (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeEntryPointAttributesComputeShader (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeEntryPointSemantics (FunctionDeclaration *funcDeclaration, const Vector< Semantic > &inSemantics, const Vector< Semantic > &outSemantics) |
| |
| void | analyzeEntryPointOutput (Expression *expression) |
| |
| void | analyzeSecondaryEntryPoint (FunctionDeclaration *funcDeclaration, bool isPatchConstantFunc=false) |
| |
| void | analyzeSecondaryEntryPointAttributes (const Vector< AttributePtr > &attribs) |
| |
| void | analyzeSecondaryEntryPointAttributesTessEvaluationShader (const Vector< AttributePtr > &attribs) |
| |
| bool | analyzeNumArgsAttribute (const Attribute *attrib, std::size_t minNumArgs, std::size_t maxNumArgs, bool required) |
| |
| bool | analyzeNumArgsAttribute (const Attribute *attrib, std::size_t expectedNumArgs, bool required=true) |
| |
| void | analyzeAttributeDomain (const Attribute *attrib, bool required=true) |
| |
| void | analyzeAttributeOutputTopology (const Attribute *attrib, bool required=true) |
| |
| void | analyzeAttributePartitioning (const Attribute *attrib, bool required=true) |
| |
| void | analyzeAttributeOutputControlPoints (const Attribute *attrib) |
| |
| void | analyzeAttributePatchConstantFunc (const Attribute *attrib) |
| |
| void | analyzeAttributeMaxVertexCount (const Attribute *attrib) |
| |
| void | analyzeAttributeNumThreads (const Attribute *attrib) |
| |
| void | analyzeAttributeNumThreadsArgument (Expression *expression, UInt32 &value) |
| |
| void | analyzeAttributeValue (Expression *argExpression, AttributeValue &value, const OnValidAttributeValueProc &expectedValueFunc, const String &expectationDesc, bool required=true) |
| |
| bool | analyzeAttributeValuePrimary (Expression *argExpression, AttributeValue &value, const OnValidAttributeValueProc &expectedValueFunc, String &literalValue) |
| |
| void | analyzeSemantic (IndexedSemantic &semantic) |
| |
| void | analyzeSemanticSM3 (IndexedSemantic &semantic, bool input) |
| |
| void | analyzeSemanticSM3Remaining () |
| |
| void | analyzeSemanticVarDeclaration (IndexedSemantic &semantic, VarDeclaration *varDeclaration) |
| |
| void | analyzeSemanticFunctionReturn (IndexedSemantic &semantic) |
| |
| void | analyzeExtAttributes (const Vector< AttributePtr > &attribs, const TypeDenoterPtr &typeDen) |
| |
| void | analyzeAttributeLayout (const Attribute *attrib, const TypeDenoterPtr &typeDen) |
| |
| void | analyzeAttributeSpace (const Attribute *attrib, const TypeDenoterPtr &typeDen) |
| |
| bool | analyzeAttributeSpaceIdent (const Attribute *attrib, std::size_t argIndex, String &ident) |
| |
| void | analyzeVectorSpaceAssign (TypedAST *lhs, const TypeDenoter &rhsTypeDen, const OnAssignTypeDenoterProc &assignTypeDenProc=nullptr, bool swapAssignOrder=false) |
| |
| void | analyzeArrayDimensionList (const Vector< ArrayDimensionPtr > &arrayDimensions) |
| |
| void | analyzeParameter (VarDeclarationStatement *param) |
| |
|
| using | OnOverrideProc = ASTSymbolTable::OnOverrideProc |
| |
| 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 | 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 | visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args) |
| |
| virtual void | visitAliasDeclarationStatement (AliasDeclarationStatement *ast, void *args) |
| |
| virtual void | visitNullStatement (NullStatement *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 | visitCastExpression (CastExpression *ast, void *args) |
| |
| virtual void | visitInitializerExpression (InitializerExpression *ast, void *args) |
| |