102 const TokenPtr& identifierToken =
nullptr);
Definition HLSLParser.hpp:23
BufferTypeDenoterPtr parseBufferTypeDenoter()
AliasDeclarationStatementPtr parseAliasDeclarationStatement()
Vector< StatementPtr > parseGlobalStatementList()
AssignExpressionPtr parseAssignExpression(const ExpressionPtr &expression)
ProgramPtr parseProgram(const SourceCodePtr &source)
TypeDenoterPtr parseTypeDenoterPrimary(StructDeclarationPtr *structDeclaration=nullptr)
Vector< RegisterPtr > parseRegisterList(bool parseFirstColon=true)
Vector< VarDeclarationStatementPtr > parseAnnotationList()
StorageClass parseStorageClass()
BaseTypeDenoterPtr parseBaseTypeDenoter()
StructDeclarationPtr parseStructDeclaration(bool parseStructtoken=true, const TokenPtr &identifierToken=nullptr)
void generatePreDefinedTypeAliases(Program &ast)
HLSLParser(Log *log=nullptr)
void parseVarDeclarationSemantic(VarDeclaration &varDeclaration, bool allowPackOffset=true)
CallExpressionPtr parseCallExpression(const ObjectExpressionPtr &objectExpression=nullptr, const TypeDenoterPtr &typeDenoter=nullptr)
StatementPtr parseGlobalStatementPrimary()
CallExpressionPtr parseCallExpressionWithPrefixOpt(const ExpressionPtr &prefixExpression=nullptr, bool isStatic=false, const TokenPtr &identifierToken=nullptr)
ProgramPtr parseSource(const SourceCodePtr &source, const NameMangling &nameMangling, const InputShaderVersion versionIn, bool rowMajorAlignment=false, bool enableWarnings=false)
bool mRowMajorAlignment
Definition HLSLParser.hpp:195
ExpressionPtr parseTypeSpecifierOrCallExpression()
void parseAndIgnoreTechnique()
BaseTypeDenoterPtr parseBaseMatrixTypeDenoter()
BasicDeclarationStatementPtr parseUniformBufferDeclarationStatement()
CallExpressionPtr parseCallExpressionAsTypeCtor(const TypeDenoterPtr &typeDenoter)
SamplerDeclarationStatementPtr parseSamplerDeclarationStatement(const SamplerTypeDenoterPtr &typeDenoter=nullptr, const TokenPtr &identifierToken=nullptr)
TypeSpecifierPtr parseTypeSpecifier(bool parseVoidType=false)
VoidTypeDenoterPtr ParseVoidTypeDenoter()
SamplerValuePtr parseSamplerValue()
ExpressionPtr parseExpressionWithSuffixOpt(ExpressionPtr expression)
StatementPtr parseStatement(bool allowAttributes=true)
ObjectExpressionPtr parseObjectExpression(const ExpressionPtr &expression=nullptr)
ExpressionPtr parseExpressionWithBracketPrefix()
AliasDeclarationStatementPtr makeAndRegisterBuildinAlias(const DataType dataType, const String &ident)
VarDeclarationPtr parseVarDeclaration(VarDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr) override
RegisterPtr parseRegister(bool parseColon=true)
TypeDenoterPtr parseTypeDenoter(bool allowVoidType=true, StructDeclarationPtr *structDeclaration=nullptr)
AttributePtr parseAttribute()
void registerTypeName(const String &ident)
Vector< SamplerValuePtr > parseSamplerValueList()
Vector< AliasDeclarationPtr > parseAliasDeclarationList(TypeDenoterPtr typeDenoter)
VarDeclarationStatementPtr parseParameter() override
StatementPtr parseStatementWithStructDeclaration()
void processDirectiveLine()
BaseTypeDenoterPtr parseBaseVectorTypeDenoter()
BasicDeclarationStatementPtr parseFunctionDeclarationStatement(const TypeSpecifierPtr &returnType=nullptr, const TokenPtr &identifierToken=nullptr)
StatementPtr parseGlobalStatement()
ScannerPtr makeScanner() override
String parseSamplerStateTextureIdent()
Vector< BufferDeclarationPtr > parseBufferDeclarationList(BufferDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
TypeDenoterPtr parseTypeDenoterWithStructDeclarationOpt(StructDeclarationPtr &structDeclaration, bool allowVoidType=true)
DataType parseDataType(const String &keyword)
StatementPtr parseGlobalStatementWithSamplerTypeDenoter()
StatementPtr parseGlobalStatementWithBufferTypeDenoter()
UniformBufferType parseUniformBufferType()
void parseAndIgnoreTechniquesAndNullStatements()
StructTypeDenoterPtr parseStructTypeDenoterWithStructDeclarationOpt(StructDeclarationPtr &structDeclaration)
StatementPtr parseGlobalStatementWithTypeSpecifier()
FunctionDeclarationPtr parseFunctionDeclaration(BasicDeclarationStatement *declarationStatementRef, const TypeSpecifierPtr &returnType=nullptr, const TokenPtr &identifierToken=nullptr)
CodeBlockPtr parseCodeBlock() override
StatementPtr parseLocalStatement() override
IndexedSemantic parseSemantic(bool parseColon=true)
BufferDeclarationPtr parseBufferDeclaration(BufferDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
StatementPtr parseStatementPrimary()
SamplerTypeDenoterPtr parseSamplerTypeDenoter()
TokenPtr acceptIt() override
InterpModifier parseInterpModifier()
bool mUseD3D10Semantics
Definition HLSLParser.hpp:189
TypeSpecifierPtr makeTypeSpecifierWithPackAlignment()
bool mEnableCgKeywords
Definition HLSLParser.hpp:192
Vector< AttributePtr > parseAttributeList()
SwitchCasePtr parseSwitchCase() override
TypeModifier parseTypeModifier()
String parseIdentWithNamespaceOpt(ObjectExpressionPtr &namespaceExpression, TokenPtr identifierToken=nullptr, SourceArea *area=nullptr)
SamplerDeclarationPtr parseSamplerDeclaration(SamplerDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
bool isBaseDataType() const
UniformBufferDeclarationPtr parseUniformBufferDeclaration()
Vector< SamplerDeclarationPtr > parseSamplerDeclarationList(SamplerDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
ExpressionPtr parsePrimaryExpression() override
TypeSpecifierPtr makeTypeSpecifierIfLhsOfCastExpression(const ExpressionPtr &expression)
bool isArithmeticUnaryExpression() const
TypeNameSymbolTable mTypeNameSymbolTable
Definition HLSLParser.hpp:186
bool isRegisteredTypeName(const String &ident) const
void processDirectivePragma()
TypeSpecifierExpressionPtr parseTypeSpecifierExpression()
void parseFunctionDeclarationSemantic(FunctionDeclaration &funcDeclaration)
LiteralExpressionPtr parseLiteralExpression()
PackOffsetPtr parsePackOffset(bool parseColon=true)
StatementPtr parseStatementWithIdent()
BufferType parseBufferType()
ExpressionPtr parsePrimaryExpressionPrefix()
PostUnaryExpressionPtr parsePostUnaryExpression(const ExpressionPtr &expression)
VarDeclarationStatementPtr parseVarDeclarationStatement()
AliasDeclarationPtr parseAliasDeclaration(TypeDenoterPtr typeDenoter)
AliasTypeDenoterPtr parseAliasTypeDenoter(String ident="")
SamplerType parseSamplerType()
UnaryExpressionPtr parseUnaryExpression()
void processDirective(const String &ident)
BufferDeclarationStatementPtr parseBufferDeclarationStatement(const BufferTypeDenoterPtr &typeDenoter=nullptr, const TokenPtr &identifierToken=nullptr)
StatementPtr parseForLoopInitializer() override
StructTypeDenoterPtr parseStructTypeDenoter()
bool parseModifiers(TypeSpecifier *typeSpecifier, bool allowPrimitiveType=false)
ExpressionPtr parseObjectOrCallExpression(const ExpressionPtr &expression=nullptr)
PrimitiveType parsePrimitiveType()
Definition ASTEnums.hpp:1557
Log base class.
Definition Log.hpp:19
void enableWarnings(bool enable)
Definition SLParser.hpp:28
Definition SourceArea.hpp:20
SPtr< TypeSpecifier > TypeSpecifierPtr
Definition Visitor.hpp:37
SPtr< LiteralExpression > LiteralExpressionPtr
Definition Visitor.hpp:68
SPtr< SamplerDeclarationStatement > SamplerDeclarationStatementPtr
Definition Visitor.hpp:48
SPtr< AliasDeclarationStatement > AliasDeclarationStatementPtr
Definition Visitor.hpp:50
TypeModifier
Definition ASTEnums.hpp:471
SPtr< Expression > ExpressionPtr
Definition Visitor.hpp:26
SPtr< ObjectExpression > ObjectExpressionPtr
Definition Visitor.hpp:76
SPtr< PackOffset > PackOffsetPtr
Definition Visitor.hpp:35
SPtr< AliasTypeDenoter > AliasTypeDenoterPtr
Definition TypeDenoter.hpp:36
InputShaderVersion
Input shader version enumeration.
Definition Targets.hpp:40
SPtr< AliasDeclaration > AliasDeclarationPtr
Definition Visitor.hpp:43
SPtr< SourceCode > SourceCodePtr
Definition SourceCode.hpp:66
SPtr< TypeSpecifierExpression > TypeSpecifierExpressionPtr
Definition Visitor.hpp:69
SPtr< BufferDeclarationStatement > BufferDeclarationStatementPtr
Definition Visitor.hpp:47
SPtr< BaseTypeDenoter > BaseTypeDenoterPtr
Definition TypeDenoter.hpp:32
SPtr< StructDeclaration > StructDeclarationPtr
Definition Visitor.hpp:42
SPtr< VarDeclaration > VarDeclarationPtr
Definition Visitor.hpp:39
InterpModifier
Definition ASTEnums.hpp:453
SPtr< PostUnaryExpression > PostUnaryExpressionPtr
Definition Visitor.hpp:73
SPtr< SamplerDeclaration > SamplerDeclarationPtr
Definition Visitor.hpp:41
SPtr< BufferTypeDenoter > BufferTypeDenoterPtr
Definition TypeDenoter.hpp:33
SPtr< CodeBlock > CodeBlockPtr
Definition Visitor.hpp:30
SPtr< FunctionDeclaration > FunctionDeclarationPtr
Definition Visitor.hpp:44
SPtr< Statement > StatementPtr
Definition Visitor.hpp:25
SPtr< CallExpression > CallExpressionPtr
Definition Visitor.hpp:74
StorageClass
Definition ASTEnums.hpp:441
SPtr< TypeDenoter > TypeDenoterPtr
Definition TypeDenoter.hpp:29
UniformBufferType
Definition ASTEnums.hpp:482
SPtr< BufferDeclaration > BufferDeclarationPtr
Definition Visitor.hpp:40
SPtr< SwitchCase > SwitchCasePtr
Definition Visitor.hpp:32
DataType
Definition ASTEnums.hpp:159
SPtr< SamplerTypeDenoter > SamplerTypeDenoterPtr
Definition TypeDenoter.hpp:34
SPtr< VoidTypeDenoter > VoidTypeDenoterPtr
Definition TypeDenoter.hpp:30
SPtr< AssignExpression > AssignExpressionPtr
Definition Visitor.hpp:77
BufferType
Definition ASTEnums.hpp:492
SPtr< StructTypeDenoter > StructTypeDenoterPtr
Definition TypeDenoter.hpp:35
SPtr< VarDeclarationStatement > VarDeclarationStatementPtr
Definition Visitor.hpp:49
SPtr< UnaryExpression > UnaryExpressionPtr
Definition Visitor.hpp:72
SPtr< UniformBufferDeclaration > UniformBufferDeclarationPtr
Definition Visitor.hpp:45
SPtr< Token > TokenPtr
Definition Token.hpp:174
SPtr< Attribute > AttributePtr
Definition Visitor.hpp:31
PrimitiveType
Definition ASTEnums.hpp:425
SPtr< SamplerValue > SamplerValuePtr
Definition Visitor.hpp:33
SPtr< BasicDeclarationStatement > BasicDeclarationStatementPtr
Definition Visitor.hpp:51
SPtr< Register > RegisterPtr
Definition Visitor.hpp:34
SPtr< Program > ProgramPtr
Definition Visitor.hpp:29
SamplerType
Definition ASTEnums.hpp:571
SPtr< Scanner > ScannerPtr
Definition Scanner.hpp:147
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Name mangling descriptor structure for shader input/output variables (also referred to as "varyings")...
Definition ShaderCompiler.hpp:185