CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderCompiler::HLSLParser Class Reference

#include <CeresEngine/Material/ShaderCompiler/Frontend/HLSL/HLSLParser.hpp>

Inheritance diagram for CeresEngine::ShaderCompiler::HLSLParser:
CeresEngine::ShaderCompiler::SLParser CeresEngine::ShaderCompiler::Parser

Public Member Functions

 HLSLParser (Log *log=nullptr)
 
ProgramPtr parseSource (const SourceCodePtr &source, const NameMangling &nameMangling, const InputShaderVersion versionIn, bool rowMajorAlignment=false, bool enableWarnings=false)
 
- Public Member Functions inherited from CeresEngine::ShaderCompiler::SLParser
 SLParser (Log *log=nullptr)
 
- Public Member Functions inherited from CeresEngine::ShaderCompiler::Parser
virtual ~Parser ()=default
 

Private Types

using TypeNameSymbolTable = SymbolTable< bool >
 

Private Member Functions

ScannerPtr makeScanner () override
 
bool isDataType () const
 
bool isBaseDataType () const
 
bool isLiteral () const
 
bool isArithmeticUnaryExpression () const
 
bool isModifier () const
 
TypeSpecifierPtr makeTypeSpecifierIfLhsOfCastExpression (const ExpressionPtr &expression)
 
TokenPtr acceptIt () override
 
void processDirective (const String &ident)
 
void processDirectiveLine ()
 
void processDirectivePragma ()
 
void openScope ()
 
void closeScope ()
 
void registerTypeName (const String &ident)
 
bool isRegisteredTypeName (const String &ident) const
 
AliasDeclarationStatementPtr makeAndRegisterBuildinAlias (const DataType dataType, const String &ident)
 
void generatePreDefinedTypeAliases (Program &ast)
 
TypeSpecifierPtr makeTypeSpecifierWithPackAlignment ()
 
ProgramPtr parseProgram (const SourceCodePtr &source)
 
CodeBlockPtr parseCodeBlock () override
 
VarDeclarationStatementPtr parseParameter () override
 
StatementPtr parseLocalStatement () override
 
StatementPtr parseForLoopInitializer () override
 
SwitchCasePtr parseSwitchCase () override
 
VarDeclarationPtr parseVarDeclaration (VarDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr) override
 
SamplerValuePtr parseSamplerValue ()
 
AttributePtr parseAttribute ()
 
RegisterPtr parseRegister (bool parseColon=true)
 
PackOffsetPtr parsePackOffset (bool parseColon=true)
 
TypeSpecifierPtr parseTypeSpecifier (bool parseVoidType=false)
 
BufferDeclarationPtr parseBufferDeclaration (BufferDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
 
SamplerDeclarationPtr parseSamplerDeclaration (SamplerDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
 
StructDeclarationPtr parseStructDeclaration (bool parseStructtoken=true, const TokenPtr &identifierToken=nullptr)
 
AliasDeclarationPtr parseAliasDeclaration (TypeDenoterPtr typeDenoter)
 
FunctionDeclarationPtr parseFunctionDeclaration (BasicDeclarationStatement *declarationStatementRef, const TypeSpecifierPtr &returnType=nullptr, const TokenPtr &identifierToken=nullptr)
 
UniformBufferDeclarationPtr parseUniformBufferDeclaration ()
 
StatementPtr parseGlobalStatement ()
 
StatementPtr parseGlobalStatementPrimary ()
 
StatementPtr parseGlobalStatementWithTypeSpecifier ()
 
StatementPtr parseGlobalStatementWithSamplerTypeDenoter ()
 
StatementPtr parseGlobalStatementWithBufferTypeDenoter ()
 
BasicDeclarationStatementPtr parseFunctionDeclarationStatement (const TypeSpecifierPtr &returnType=nullptr, const TokenPtr &identifierToken=nullptr)
 
BasicDeclarationStatementPtr parseUniformBufferDeclarationStatement ()
 
BufferDeclarationStatementPtr parseBufferDeclarationStatement (const BufferTypeDenoterPtr &typeDenoter=nullptr, const TokenPtr &identifierToken=nullptr)
 
SamplerDeclarationStatementPtr parseSamplerDeclarationStatement (const SamplerTypeDenoterPtr &typeDenoter=nullptr, const TokenPtr &identifierToken=nullptr)
 
VarDeclarationStatementPtr parseVarDeclarationStatement ()
 
AliasDeclarationStatementPtr parseAliasDeclarationStatement ()
 
StatementPtr parseStatement (bool allowAttributes=true)
 
StatementPtr parseStatementPrimary ()
 
StatementPtr parseStatementWithStructDeclaration ()
 
StatementPtr parseStatementWithIdent ()
 
ExpressionPtr parsePrimaryExpression () override
 
ExpressionPtr parsePrimaryExpressionPrefix ()
 
ExpressionPtr parseExpressionWithSuffixOpt (ExpressionPtr expression)
 
LiteralExpressionPtr parseLiteralExpression ()
 
ExpressionPtr parseTypeSpecifierOrCallExpression ()
 
TypeSpecifierExpressionPtr parseTypeSpecifierExpression ()
 
UnaryExpressionPtr parseUnaryExpression ()
 
PostUnaryExpressionPtr parsePostUnaryExpression (const ExpressionPtr &expression)
 
ExpressionPtr parseExpressionWithBracketPrefix ()
 
ObjectExpressionPtr parseObjectExpression (const ExpressionPtr &expression=nullptr)
 
AssignExpressionPtr parseAssignExpression (const ExpressionPtr &expression)
 
ExpressionPtr parseObjectOrCallExpression (const ExpressionPtr &expression=nullptr)
 
CallExpressionPtr parseCallExpression (const ObjectExpressionPtr &objectExpression=nullptr, const TypeDenoterPtr &typeDenoter=nullptr)
 
CallExpressionPtr parseCallExpressionWithPrefixOpt (const ExpressionPtr &prefixExpression=nullptr, bool isStatic=false, const TokenPtr &identifierToken=nullptr)
 
CallExpressionPtr parseCallExpressionAsTypeCtor (const TypeDenoterPtr &typeDenoter)
 
Vector< StatementPtr > parseGlobalStatementList ()
 
Vector< VarDeclarationStatementPtr > parseAnnotationList ()
 
Vector< RegisterPtr > parseRegisterList (bool parseFirstColon=true)
 
Vector< AttributePtr > parseAttributeList ()
 
Vector< BufferDeclarationPtr > parseBufferDeclarationList (BufferDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
 
Vector< SamplerDeclarationPtr > parseSamplerDeclarationList (SamplerDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
 
Vector< SamplerValuePtr > parseSamplerValueList ()
 
Vector< AliasDeclarationPtr > parseAliasDeclarationList (TypeDenoterPtr typeDenoter)
 
String parseIdentWithNamespaceOpt (ObjectExpressionPtr &namespaceExpression, TokenPtr identifierToken=nullptr, SourceArea *area=nullptr)
 
TypeDenoterPtr parseTypeDenoter (bool allowVoidType=true, StructDeclarationPtr *structDeclaration=nullptr)
 
TypeDenoterPtr parseTypeDenoterPrimary (StructDeclarationPtr *structDeclaration=nullptr)
 
TypeDenoterPtr parseTypeDenoterWithStructDeclarationOpt (StructDeclarationPtr &structDeclaration, bool allowVoidType=true)
 
VoidTypeDenoterPtr ParseVoidTypeDenoter ()
 
BaseTypeDenoterPtr parseBaseTypeDenoter ()
 
BaseTypeDenoterPtr parseBaseVectorTypeDenoter ()
 
BaseTypeDenoterPtr parseBaseMatrixTypeDenoter ()
 
BufferTypeDenoterPtr parseBufferTypeDenoter ()
 
SamplerTypeDenoterPtr parseSamplerTypeDenoter ()
 
StructTypeDenoterPtr parseStructTypeDenoter ()
 
StructTypeDenoterPtr parseStructTypeDenoterWithStructDeclarationOpt (StructDeclarationPtr &structDeclaration)
 
AliasTypeDenoterPtr parseAliasTypeDenoter (String ident="")
 
void parseAndIgnoreTechniquesAndNullStatements ()
 
void parseAndIgnoreTechnique ()
 
void parseVarDeclarationSemantic (VarDeclaration &varDeclaration, bool allowPackOffset=true)
 
void parseFunctionDeclarationSemantic (FunctionDeclaration &funcDeclaration)
 
DataType parseDataType (const String &keyword)
 
PrimitiveType parsePrimitiveType ()
 
InterpModifier parseInterpModifier ()
 
TypeModifier parseTypeModifier ()
 
StorageClass parseStorageClass ()
 
UniformBufferType parseUniformBufferType ()
 
BufferType parseBufferType ()
 
SamplerType parseSamplerType ()
 
IndexedSemantic parseSemantic (bool parseColon=true)
 
String parseSamplerStateTextureIdent ()
 
bool parseModifiers (TypeSpecifier *typeSpecifier, bool allowPrimitiveType=false)
 

Private Attributes

TypeNameSymbolTable mTypeNameSymbolTable
 
bool mUseD3D10Semantics = true
 
bool mEnableCgKeywords = false
 
bool mRowMajorAlignment = false
 

Additional Inherited Members

- Protected Types inherited from CeresEngine::ShaderCompiler::Parser
using Tokens = Token::Types
 
using BinaryOpList = InitializerList< BinaryOp >
 
- Protected Member Functions inherited from CeresEngine::ShaderCompiler::SLParser
void semi ()
 
ArrayDimensionPtr parseArrayDimension (bool allowDynamicDimension=false)
 
NullStatementPtr parseNullStatement ()
 
CodeBlockStatementPtr parseCodeBlockStatement ()
 
ForLoopStatementPtr parseForLoopStatement ()
 
WhileLoopStatementPtr parseWhileLoopStatement ()
 
DoWhileLoopStatementPtr parseDoWhileLoopStatement ()
 
IfStatementPtr parseIfStatement ()
 
ElseStatementPtr parseElseStatement ()
 
SwitchStatementPtr parseSwitchStatement ()
 
CtrlTransferStatementPtr parseCtrlTransferStatement ()
 
ReturnStatementPtr parseReturnStatement ()
 
ExpressionStatementPtr parseExpressionStatement (const ExpressionPtr &expression=nullptr)
 
ExpressionPtr parseExpression ()
 
ExpressionPtr parseExpressionWithSequenceOpt ()
 
ExpressionPtr parseArrayIndex ()
 
ExpressionPtr parseInitializer ()
 
SequenceExpressionPtr parseSequenceExpression (const ExpressionPtr &firstExpression)
 
ArrayExpressionPtr parseArrayExpression (const ExpressionPtr &expression)
 
InitializerExpressionPtr parseInitializerExpression ()
 
Vector< VarDeclarationPtr > parseVarDeclarationList (VarDeclarationStatement *declarationStatementRef, TokenPtr firstidentifierToken=nullptr)
 
Vector< VarDeclarationStatementPtr > parseParameterList ()
 
Vector< StatementPtr > parseLocalStatementList ()
 
Vector< ExpressionPtr > parseExpressionList (const Tokens listTerminatorToken, bool allowLastComma=false)
 
Vector< ArrayDimensionPtr > parseArrayDimensionList (bool allowDynamicDimension=false)
 
Vector< ExpressionPtr > parseArrayIndexList ()
 
Vector< ExpressionPtr > parseArgumentList ()
 
Vector< ExpressionPtr > parseInitializerList ()
 
Vector< SwitchCasePtr > parseSwitchCaseList ()
 
String parseIdent (TokenPtr identifierToken=nullptr, SourceArea *area=nullptr)
 
TypeDenoterPtr parseTypeDenoterWithArrayOpt (const TypeDenoterPtr &baseTypeDenoter)
 
VoidTypeDenoterPtr parseVoidTypeDenoter ()
 
Variant parseAndEvaluateConstExpression ()
 
Int32 parseAndEvaluateConstExpressionInt ()
 
Int32 parseAndEvaluateVectorDimension ()
 
void parseStatementWithCommentOpt (Vector< StatementPtr > &statements, const UniqueFunction< StatementPtr() const > &parseFunction)
 
- Protected Member Functions inherited from CeresEngine::ShaderCompiler::Parser
 Parser (Log *log)
 
void error (const String &msg, const SourceArea &area, bool breakWithException=true)
 
void error (const String &msg, const Token *token, bool breakWithException=true)
 
void error (const String &msg, bool prevToken=true, bool breakWithException=true)
 
void errorUnexpected (const String &hint="", const Token *token=nullptr, bool breakWithException=false)
 
void errorUnexpected (const Tokens type, const Token *token=nullptr, bool breakWithException=false)
 
void errorInternal (const String &msg, const String &procName)
 
void warning (const String &msg, const SourceArea &area)
 
void warning (const String &msg, const Token *token)
 
void warning (const String &msg, bool prevToken=true)
 
void enableWarnings (bool enable)
 
virtual void pushScannerSource (const SourceCodePtr &source, const String &filename="")
 
virtual bool popScannerSource ()
 
ParsingState getActiveParsingState () const
 
Scanner & getScanner ()
 
String getCurrentFilename () const
 
TokenPtr accept (const Tokens type)
 
TokenPtr accept (const Tokens type, const String &spell)
 
void pushTokenString (const TokenPtrString &tokenString)
 
void popTokenString ()
 
void ignoreWhiteSpaces (bool includeNewLines=false, bool includeComments=false)
 
void ignoreNewLines ()
 
template<typename T >
const T & updateSourceArea (const T &ast, const AST *areaOriginAST=nullptr)
 
template<typename T >
const T & updateSourceArea (const T &ast, const ASTPtr &firstAreaOriginAST, const ASTPtr &lastAreaOriginAST)
 
template<typename T >
const T & updateSourceAreaOffset (const T &ast)
 
void pushParsingState (const ParsingState &state)
 
void popParsingState ()
 
void pushPreParsedAST (const ASTPtr &ast)
 Pushes the specified AST node onto the stack of pre-parsed AST nodes.
 
ASTPtr popPreParsedAST ()
 
ExpressionPtr parseGenericExpression ()
 
TernaryExpressionPtr parseTernaryExpression (const ExpressionPtr &condExpression)
 
ExpressionPtr parseLogicOrExpression ()
 
ExpressionPtr parseLogicAndExpression ()
 
ExpressionPtr parseBitwiseOrExpression ()
 
ExpressionPtr parseBitwiseXOrExpression ()
 
ExpressionPtr parseBitwiseAndExpression ()
 
ExpressionPtr parseEqualityExpression ()
 
ExpressionPtr parseRelationExpression ()
 
ExpressionPtr parseShiftExpression ()
 
ExpressionPtr parseAddExpression ()
 
ExpressionPtr parseSubExpression ()
 
ExpressionPtr parseMulExpression ()
 
ExpressionPtr parseDivExpression ()
 
ExpressionPtr parseValueExpression ()
 
Int32 parseIntLiteral (TokenPtr token=nullptr)
 
Int32 parseIntLiteral (const String &valueStr, const Token *token=nullptr)
 
Log * getLog () const
 
ReportHandler & getReportHandler ()
 
NameMangling & getNameMangling ()
 
const String * findNameManglingPrefix (const String &ident) const
 
template<typename T , typename... Args>
SPtr< T > make (Args &&... args)
 
const TokenPtr & getToken () const
 
Tokens getTokenType () const
 
bool is (const Tokens type) const
 
bool is (const Tokens type, const String &spell) const
 

Member Typedef Documentation

◆ TypeNameSymbolTable

Constructor & Destructor Documentation

◆ HLSLParser()

CeresEngine::ShaderCompiler::HLSLParser::HLSLParser ( Log *  log = nullptr)

Member Function Documentation

◆ acceptIt()

TokenPtr CeresEngine::ShaderCompiler::HLSLParser::acceptIt ( )
overrideprivatevirtual

◆ closeScope()

void CeresEngine::ShaderCompiler::HLSLParser::closeScope ( )
private

◆ generatePreDefinedTypeAliases()

void CeresEngine::ShaderCompiler::HLSLParser::generatePreDefinedTypeAliases ( Program &  ast)
private

◆ isArithmeticUnaryExpression()

bool CeresEngine::ShaderCompiler::HLSLParser::isArithmeticUnaryExpression ( ) const
private

◆ isBaseDataType()

bool CeresEngine::ShaderCompiler::HLSLParser::isBaseDataType ( ) const
private

◆ isDataType()

bool CeresEngine::ShaderCompiler::HLSLParser::isDataType ( ) const
private

◆ isLiteral()

bool CeresEngine::ShaderCompiler::HLSLParser::isLiteral ( ) const
private

◆ isModifier()

bool CeresEngine::ShaderCompiler::HLSLParser::isModifier ( ) const
private

◆ isRegisteredTypeName()

bool CeresEngine::ShaderCompiler::HLSLParser::isRegisteredTypeName ( const String &  ident) const
private

◆ makeAndRegisterBuildinAlias()

AliasDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::makeAndRegisterBuildinAlias ( const DataType  dataType,
const String &  ident 
)
private

◆ makeScanner()

ScannerPtr CeresEngine::ShaderCompiler::HLSLParser::makeScanner ( )
overrideprivatevirtual

◆ makeTypeSpecifierIfLhsOfCastExpression()

TypeSpecifierPtr CeresEngine::ShaderCompiler::HLSLParser::makeTypeSpecifierIfLhsOfCastExpression ( const ExpressionPtr &  expression)
private

◆ makeTypeSpecifierWithPackAlignment()

TypeSpecifierPtr CeresEngine::ShaderCompiler::HLSLParser::makeTypeSpecifierWithPackAlignment ( )
private

◆ openScope()

void CeresEngine::ShaderCompiler::HLSLParser::openScope ( )
private

◆ parseAliasDeclaration()

AliasDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseAliasDeclaration ( TypeDenoterPtr  typeDenoter)
private

◆ parseAliasDeclarationList()

Vector< AliasDeclarationPtr > CeresEngine::ShaderCompiler::HLSLParser::parseAliasDeclarationList ( TypeDenoterPtr  typeDenoter)
private

◆ parseAliasDeclarationStatement()

AliasDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseAliasDeclarationStatement ( )
private

◆ parseAliasTypeDenoter()

AliasTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseAliasTypeDenoter ( String  ident = "")
private

◆ parseAndIgnoreTechnique()

void CeresEngine::ShaderCompiler::HLSLParser::parseAndIgnoreTechnique ( )
private

◆ parseAndIgnoreTechniquesAndNullStatements()

void CeresEngine::ShaderCompiler::HLSLParser::parseAndIgnoreTechniquesAndNullStatements ( )
private

◆ parseAnnotationList()

Vector< VarDeclarationStatementPtr > CeresEngine::ShaderCompiler::HLSLParser::parseAnnotationList ( )
private

◆ parseAssignExpression()

AssignExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseAssignExpression ( const ExpressionPtr &  expression)
private

◆ parseAttribute()

AttributePtr CeresEngine::ShaderCompiler::HLSLParser::parseAttribute ( )
private

◆ parseAttributeList()

Vector< AttributePtr > CeresEngine::ShaderCompiler::HLSLParser::parseAttributeList ( )
private

◆ parseBaseMatrixTypeDenoter()

BaseTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseBaseMatrixTypeDenoter ( )
private

◆ parseBaseTypeDenoter()

BaseTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseBaseTypeDenoter ( )
private

◆ parseBaseVectorTypeDenoter()

BaseTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseBaseVectorTypeDenoter ( )
private

◆ parseBufferDeclaration()

BufferDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseBufferDeclaration ( BufferDeclarationStatement *  declarationStatementRef,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseBufferDeclarationList()

Vector< BufferDeclarationPtr > CeresEngine::ShaderCompiler::HLSLParser::parseBufferDeclarationList ( BufferDeclarationStatement *  declarationStatementRef,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseBufferDeclarationStatement()

BufferDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseBufferDeclarationStatement ( const BufferTypeDenoterPtr &  typeDenoter = nullptr,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseBufferType()

BufferType CeresEngine::ShaderCompiler::HLSLParser::parseBufferType ( )
private

◆ parseBufferTypeDenoter()

BufferTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseBufferTypeDenoter ( )
private

◆ parseCallExpression()

CallExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseCallExpression ( const ObjectExpressionPtr &  objectExpression = nullptr,
const TypeDenoterPtr &  typeDenoter = nullptr 
)
private

◆ parseCallExpressionAsTypeCtor()

CallExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseCallExpressionAsTypeCtor ( const TypeDenoterPtr &  typeDenoter)
private

◆ parseCallExpressionWithPrefixOpt()

CallExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseCallExpressionWithPrefixOpt ( const ExpressionPtr &  prefixExpression = nullptr,
bool  isStatic = false,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseCodeBlock()

CodeBlockPtr CeresEngine::ShaderCompiler::HLSLParser::parseCodeBlock ( )
overrideprivatevirtual

◆ parseDataType()

DataType CeresEngine::ShaderCompiler::HLSLParser::parseDataType ( const String &  keyword)
private

◆ parseExpressionWithBracketPrefix()

ExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseExpressionWithBracketPrefix ( )
private

◆ parseExpressionWithSuffixOpt()

ExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseExpressionWithSuffixOpt ( ExpressionPtr  expression)
private

◆ parseForLoopInitializer()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseForLoopInitializer ( )
overrideprivatevirtual

◆ parseFunctionDeclaration()

FunctionDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseFunctionDeclaration ( BasicDeclarationStatement *  declarationStatementRef,
const TypeSpecifierPtr &  returnType = nullptr,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseFunctionDeclarationSemantic()

void CeresEngine::ShaderCompiler::HLSLParser::parseFunctionDeclarationSemantic ( FunctionDeclaration &  funcDeclaration)
private

◆ parseFunctionDeclarationStatement()

BasicDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseFunctionDeclarationStatement ( const TypeSpecifierPtr &  returnType = nullptr,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseGlobalStatement()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseGlobalStatement ( )
private

◆ parseGlobalStatementList()

Vector< StatementPtr > CeresEngine::ShaderCompiler::HLSLParser::parseGlobalStatementList ( )
private

◆ parseGlobalStatementPrimary()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseGlobalStatementPrimary ( )
private

◆ parseGlobalStatementWithBufferTypeDenoter()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseGlobalStatementWithBufferTypeDenoter ( )
private

◆ parseGlobalStatementWithSamplerTypeDenoter()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseGlobalStatementWithSamplerTypeDenoter ( )
private

◆ parseGlobalStatementWithTypeSpecifier()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseGlobalStatementWithTypeSpecifier ( )
private

◆ parseIdentWithNamespaceOpt()

String CeresEngine::ShaderCompiler::HLSLParser::parseIdentWithNamespaceOpt ( ObjectExpressionPtr &  namespaceExpression,
TokenPtr  identifierToken = nullptr,
SourceArea *  area = nullptr 
)
private

◆ parseInterpModifier()

InterpModifier CeresEngine::ShaderCompiler::HLSLParser::parseInterpModifier ( )
private

◆ parseLiteralExpression()

LiteralExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseLiteralExpression ( )
private

◆ parseLocalStatement()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseLocalStatement ( )
overrideprivatevirtual

◆ parseModifiers()

bool CeresEngine::ShaderCompiler::HLSLParser::parseModifiers ( TypeSpecifier *  typeSpecifier,
bool  allowPrimitiveType = false 
)
private

◆ parseObjectExpression()

ObjectExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseObjectExpression ( const ExpressionPtr &  expression = nullptr)
private

◆ parseObjectOrCallExpression()

ExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseObjectOrCallExpression ( const ExpressionPtr &  expression = nullptr)
private

◆ parsePackOffset()

PackOffsetPtr CeresEngine::ShaderCompiler::HLSLParser::parsePackOffset ( bool  parseColon = true)
private

◆ parseParameter()

VarDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseParameter ( )
overrideprivatevirtual

◆ parsePostUnaryExpression()

PostUnaryExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parsePostUnaryExpression ( const ExpressionPtr &  expression)
private

◆ parsePrimaryExpression()

ExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parsePrimaryExpression ( )
overrideprivatevirtual

◆ parsePrimaryExpressionPrefix()

ExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parsePrimaryExpressionPrefix ( )
private

◆ parsePrimitiveType()

PrimitiveType CeresEngine::ShaderCompiler::HLSLParser::parsePrimitiveType ( )
private

◆ parseProgram()

ProgramPtr CeresEngine::ShaderCompiler::HLSLParser::parseProgram ( const SourceCodePtr &  source)
private

◆ parseRegister()

RegisterPtr CeresEngine::ShaderCompiler::HLSLParser::parseRegister ( bool  parseColon = true)
private

◆ parseRegisterList()

Vector< RegisterPtr > CeresEngine::ShaderCompiler::HLSLParser::parseRegisterList ( bool  parseFirstColon = true)
private

◆ parseSamplerDeclaration()

SamplerDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseSamplerDeclaration ( SamplerDeclarationStatement *  declarationStatementRef,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseSamplerDeclarationList()

Vector< SamplerDeclarationPtr > CeresEngine::ShaderCompiler::HLSLParser::parseSamplerDeclarationList ( SamplerDeclarationStatement *  declarationStatementRef,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseSamplerDeclarationStatement()

SamplerDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseSamplerDeclarationStatement ( const SamplerTypeDenoterPtr &  typeDenoter = nullptr,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseSamplerStateTextureIdent()

String CeresEngine::ShaderCompiler::HLSLParser::parseSamplerStateTextureIdent ( )
private

◆ parseSamplerType()

SamplerType CeresEngine::ShaderCompiler::HLSLParser::parseSamplerType ( )
private

◆ parseSamplerTypeDenoter()

SamplerTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseSamplerTypeDenoter ( )
private

◆ parseSamplerValue()

SamplerValuePtr CeresEngine::ShaderCompiler::HLSLParser::parseSamplerValue ( )
private

◆ parseSamplerValueList()

Vector< SamplerValuePtr > CeresEngine::ShaderCompiler::HLSLParser::parseSamplerValueList ( )
private

◆ parseSemantic()

IndexedSemantic CeresEngine::ShaderCompiler::HLSLParser::parseSemantic ( bool  parseColon = true)
private

◆ parseSource()

ProgramPtr CeresEngine::ShaderCompiler::HLSLParser::parseSource ( const SourceCodePtr &  source,
const NameMangling &  nameMangling,
const InputShaderVersion  versionIn,
bool  rowMajorAlignment = false,
bool  enableWarnings = false 
)

◆ parseStatement()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseStatement ( bool  allowAttributes = true)
private

◆ parseStatementPrimary()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseStatementPrimary ( )
private

◆ parseStatementWithIdent()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseStatementWithIdent ( )
private

◆ parseStatementWithStructDeclaration()

StatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseStatementWithStructDeclaration ( )
private

◆ parseStorageClass()

StorageClass CeresEngine::ShaderCompiler::HLSLParser::parseStorageClass ( )
private

◆ parseStructDeclaration()

StructDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseStructDeclaration ( bool  parseStructtoken = true,
const TokenPtr &  identifierToken = nullptr 
)
private

◆ parseStructTypeDenoter()

StructTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseStructTypeDenoter ( )
private

◆ parseStructTypeDenoterWithStructDeclarationOpt()

StructTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseStructTypeDenoterWithStructDeclarationOpt ( StructDeclarationPtr &  structDeclaration)
private

◆ parseSwitchCase()

SwitchCasePtr CeresEngine::ShaderCompiler::HLSLParser::parseSwitchCase ( )
overrideprivatevirtual

◆ parseTypeDenoter()

TypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseTypeDenoter ( bool  allowVoidType = true,
StructDeclarationPtr *  structDeclaration = nullptr 
)
private

◆ parseTypeDenoterPrimary()

TypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseTypeDenoterPrimary ( StructDeclarationPtr *  structDeclaration = nullptr)
private

◆ parseTypeDenoterWithStructDeclarationOpt()

TypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::parseTypeDenoterWithStructDeclarationOpt ( StructDeclarationPtr &  structDeclaration,
bool  allowVoidType = true 
)
private

◆ parseTypeModifier()

TypeModifier CeresEngine::ShaderCompiler::HLSLParser::parseTypeModifier ( )
private

◆ parseTypeSpecifier()

TypeSpecifierPtr CeresEngine::ShaderCompiler::HLSLParser::parseTypeSpecifier ( bool  parseVoidType = false)
private

◆ parseTypeSpecifierExpression()

TypeSpecifierExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseTypeSpecifierExpression ( )
private

◆ parseTypeSpecifierOrCallExpression()

ExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseTypeSpecifierOrCallExpression ( )
private

◆ parseUnaryExpression()

UnaryExpressionPtr CeresEngine::ShaderCompiler::HLSLParser::parseUnaryExpression ( )
private

◆ parseUniformBufferDeclaration()

UniformBufferDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseUniformBufferDeclaration ( )
private

◆ parseUniformBufferDeclarationStatement()

BasicDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseUniformBufferDeclarationStatement ( )
private

◆ parseUniformBufferType()

UniformBufferType CeresEngine::ShaderCompiler::HLSLParser::parseUniformBufferType ( )
private

◆ parseVarDeclaration()

VarDeclarationPtr CeresEngine::ShaderCompiler::HLSLParser::parseVarDeclaration ( VarDeclarationStatement *  declarationStatementRef,
const TokenPtr &  identifierToken = nullptr 
)
overrideprivatevirtual

◆ parseVarDeclarationSemantic()

void CeresEngine::ShaderCompiler::HLSLParser::parseVarDeclarationSemantic ( VarDeclaration &  varDeclaration,
bool  allowPackOffset = true 
)
private

◆ parseVarDeclarationStatement()

VarDeclarationStatementPtr CeresEngine::ShaderCompiler::HLSLParser::parseVarDeclarationStatement ( )
private

◆ ParseVoidTypeDenoter()

VoidTypeDenoterPtr CeresEngine::ShaderCompiler::HLSLParser::ParseVoidTypeDenoter ( )
private

◆ processDirective()

void CeresEngine::ShaderCompiler::HLSLParser::processDirective ( const String &  ident)
private

◆ processDirectiveLine()

void CeresEngine::ShaderCompiler::HLSLParser::processDirectiveLine ( )
private

◆ processDirectivePragma()

void CeresEngine::ShaderCompiler::HLSLParser::processDirectivePragma ( )
private

◆ registerTypeName()

void CeresEngine::ShaderCompiler::HLSLParser::registerTypeName ( const String &  ident)
private

Member Data Documentation

◆ mEnableCgKeywords

bool CeresEngine::ShaderCompiler::HLSLParser::mEnableCgKeywords = false
private

◆ mRowMajorAlignment

bool CeresEngine::ShaderCompiler::HLSLParser::mRowMajorAlignment = false
private

◆ mTypeNameSymbolTable

TypeNameSymbolTable CeresEngine::ShaderCompiler::HLSLParser::mTypeNameSymbolTable
private

◆ mUseD3D10Semantics

bool CeresEngine::ShaderCompiler::HLSLParser::mUseD3D10Semantics = true
private

The documentation for this class was generated from the following file: