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< StatementPtrparseGlobalStatementList ()
 
Vector< VarDeclarationStatementPtrparseAnnotationList ()
 
Vector< RegisterPtrparseRegisterList (bool parseFirstColon=true)
 
Vector< AttributePtrparseAttributeList ()
 
Vector< BufferDeclarationPtrparseBufferDeclarationList (BufferDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
 
Vector< SamplerDeclarationPtrparseSamplerDeclarationList (SamplerDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr)
 
Vector< SamplerValuePtrparseSamplerValueList ()
 
Vector< AliasDeclarationPtrparseAliasDeclarationList (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< VarDeclarationPtrparseVarDeclarationList (VarDeclarationStatement *declarationStatementRef, TokenPtr firstidentifierToken=nullptr)
 
Vector< VarDeclarationStatementPtrparseParameterList ()
 
Vector< StatementPtrparseLocalStatementList ()
 
Vector< ExpressionPtrparseExpressionList (const Tokens listTerminatorToken, bool allowLastComma=false)
 
Vector< ArrayDimensionPtrparseArrayDimensionList (bool allowDynamicDimension=false)
 
Vector< ExpressionPtrparseArrayIndexList ()
 
Vector< ExpressionPtrparseArgumentList ()
 
Vector< ExpressionPtrparseInitializerList ()
 
Vector< SwitchCasePtrparseSwitchCaseList ()
 
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
 
ScannergetScanner ()
 
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 TupdateSourceArea (const T &ast, const AST *areaOriginAST=nullptr)
 
template<typename T >
const TupdateSourceArea (const T &ast, const ASTPtr &firstAreaOriginAST, const ASTPtr &lastAreaOriginAST)
 
template<typename T >
const TupdateSourceAreaOffset (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)
 
LoggetLog () const
 
ReportHandlergetReportHandler ()
 
NameManglinggetNameMangling ()
 
const StringfindNameManglingPrefix (const String &ident) const
 
template<typename T , typename... Args>
SPtr< Tmake (Args &&... args)
 
const TokenPtrgetToken () 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: