98 const TokenPtr& identifierToken =
nullptr);
Definition GLSLParser.hpp:23
TypeNameSymbolTable mTypeNameSymbolTable
Definition GLSLParser.hpp:28
bool mIsCoreProfile
Definition GLSLParser.hpp:32
BufferTypeDenoterPtr parseBufferTypeDenoter()
TokenPtr acceptIt() override
StatementPtr parseLocalStatement() override
TypeDenoterPtr parseTypeDenoter(bool allowVoidType=true, StructDeclarationPtr *structDeclaration=nullptr)
void processDirective(const String &ident)
StatementPtr parseGlobalStatementPrimary(bool hasAttribs=false)
StorageClass parseStorageClass()
StatementPtr parseForLoopInitializer() override
ExpressionPtr parseObjectOrCallExpression(const ExpressionPtr &expression=nullptr)
ScannerPtr makeScanner() override
StatementPtr parseStatementWithStructDeclaration()
StructTypeDenoterPtr parseStructTypeDenoterWithStructDeclarationOpt(StructDeclarationPtr &structDeclaration)
GLSLParser(Log *log=nullptr)
void registerTypeName(const String &ident)
void processDirectiveVersion()
void processDirectiveLine()
TypeDenoterPtr parseTypeDenoterPrimary(StructDeclarationPtr *structDeclaration=nullptr)
bool isBaseDataType() const
VoidTypeDenoterPtr parseVoidTypeDenoter()
DataType parseDataType(const String &keyword)
CodeBlockPtr parseCodeBlock() override
CallExpressionPtr parseCallExpressionWithPrefixOpt(const ExpressionPtr &prefixExpression=nullptr, bool isStatic=false, const TokenPtr &identifierToken=nullptr)
VarDeclarationPtr parseVarDeclaration(VarDeclarationStatement *declarationStatementRef, const TokenPtr &identifierToken=nullptr) override
bool isArithmeticUnaryExpression() const
StatementPtr parseGlobalStatementWithTypeSpecifier(const TokenPtr &inputtoken=nullptr)
StatementPtr parseStatement()
Vector< StatementPtr > parseGlobalStatementList()
BaseTypeDenoterPtr parseBaseTypeDenoter()
TypeSpecifierPtr parseTypeSpecifier(bool parseVoidType=false, const TokenPtr &inputtoken=nullptr)
TypeDenoterPtr parseTypeDenoterWithStructDeclarationOpt(StructDeclarationPtr &structDeclaration, bool allowVoidType=true)
UnaryExpressionPtr parseUnaryExpression()
ProgramPtr parseProgram(const SourceCodePtr &source)
Int32 mVersion
Definition GLSLParser.hpp:30
TypeModifier parseTypeModifier()
TypeSpecifierExpressionPtr parseTypeSpecifierExpression()
StatementPtr parseUniformDeclarationStatement()
VarDeclarationStatementPtr parseVarDeclarationStatement(bool isUniform=false, const TokenPtr &identifierToken=nullptr)
AssignExpressionPtr parseAssignExpression(const ExpressionPtr &expression)
StructDeclarationPtr parseStructDeclaration(bool parseStructtoken=true, const TokenPtr &identifierToken=nullptr)
bool parseModifiers(TypeSpecifier *typeSpecifier, bool allowPrimitiveType=false, const TokenPtr &inputtoken=nullptr)
CallExpressionPtr parseCallExpression(const ObjectExpressionPtr &objectExpression=nullptr, const TypeDenoterPtr &typeDenoter=nullptr)
StructTypeDenoterPtr parseStructTypeDenoter()
ObjectExpressionPtr parseObjectExpression(const ExpressionPtr &expression=nullptr)
BasicDeclarationStatementPtr parseUniformBufferDeclarationStatement(const TokenPtr &identifierToken=nullptr)
bool isRegisteredTypeName(const String &ident) const
SwitchCasePtr parseSwitchCase() override
LiteralExpressionPtr parseLiteralExpression()
UniformBufferDeclarationPtr parseUniformBufferDeclaration(const TokenPtr &identifierToken=nullptr)
BracketExpressionPtr parseBracketExpression()
PrimitiveType parsePrimitiveType()
ExpressionPtr parsePrimaryExpressionPrefix()
BasicDeclarationStatementPtr parseFunctionDeclarationStatement(const TypeSpecifierPtr &returnType=nullptr, const TokenPtr &identifierToken=nullptr)
FunctionDeclarationPtr parseFunctionDeclaration(BasicDeclarationStatement *declarationStatementRef, const TypeSpecifierPtr &returnType=nullptr, const TokenPtr &identifierToken=nullptr)
StatementPtr parseGlobalStatementWithLayoutQualifier()
void processDirectiveExtension()
StatementPtr parseGlobalStatement()
Vector< AttributePtr > parseAttributeList()
SamplerTypeDenoterPtr parseSamplerTypeDenoter()
ExpressionPtr parseTypeSpecifierOrCallExpression()
SamplerType parseSamplerType()
ExpressionPtr parseExpressionWithSuffixOpt(ExpressionPtr expression)
AttributePtr parseAttribute()
InterpModifier parseInterpModifier()
bool mIsESSL
Definition GLSLParser.hpp:31
VarDeclarationStatementPtr parseParameter() override
ExpressionPtr parsePrimaryExpression() override
ProgramPtr parseSource(const SourceCodePtr &source, const NameMangling &nameMangling, const InputShaderVersion versionIn, bool enableWarnings=false)
CallExpressionPtr parseCallExpressionAsTypeCtor(const TypeDenoterPtr &typeDenoter)
PostUnaryExpressionPtr parsePostUnaryExpression(const ExpressionPtr &expression)
Log base class.
Definition Log.hpp:19
void enableWarnings(bool enable)
Definition SLParser.hpp:28
SPtr< TypeSpecifier > TypeSpecifierPtr
Definition Visitor.hpp:37
SPtr< LiteralExpression > LiteralExpressionPtr
Definition Visitor.hpp:68
SPtr< SamplerDeclarationStatement > SamplerDeclarationStatementPtr
Definition Visitor.hpp:48
TypeModifier
Definition ASTEnums.hpp:471
SPtr< Expression > ExpressionPtr
Definition Visitor.hpp:26
SPtr< ObjectExpression > ObjectExpressionPtr
Definition Visitor.hpp:76
InputShaderVersion
Input shader version enumeration.
Definition Targets.hpp:40
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
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< BracketExpression > BracketExpressionPtr
Definition Visitor.hpp:75
SPtr< AssignExpression > AssignExpressionPtr
Definition Visitor.hpp:77
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< BasicDeclarationStatement > BasicDeclarationStatementPtr
Definition Visitor.hpp:51
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
std::int32_t Int32
Definition DataTypes.hpp:21
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