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

#include <CeresEngine/Material/ShaderCompiler/SymbolTable.hpp>

Public Member Functions

 ASTSymbolOverload (const String &ident, AST *ast)
 
bool addSymbolRef (AST *ast)
 
ASTfetch (bool throwOnFailure=true) const
 
VarDeclarationfetchVarDeclaration (bool throwOnFailure=true) const
 
DeclarationfetchType (bool throwOnFailure=true) const
 Fetches a type declaration (StructDecl, AliasDecl).
 
FunctionDeclarationfetchFunctionDeclaration (bool throwOnFailure=true) const
 
FunctionDeclarationfetchFunctionDeclaration (const Vector< TypeDenoterPtr > &argTypeDenoters) const
 

Private Attributes

String mIdent
 
Vector< AST * > mRefs
 

Constructor & Destructor Documentation

◆ ASTSymbolOverload()

CeresEngine::ShaderCompiler::ASTSymbolOverload::ASTSymbolOverload ( const String ident,
AST ast 
)

Member Function Documentation

◆ addSymbolRef()

bool CeresEngine::ShaderCompiler::ASTSymbolOverload::addSymbolRef ( AST ast)

◆ fetch()

AST * CeresEngine::ShaderCompiler::ASTSymbolOverload::fetch ( bool  throwOnFailure = true) const

◆ fetchFunctionDeclaration() [1/2]

FunctionDeclaration * CeresEngine::ShaderCompiler::ASTSymbolOverload::fetchFunctionDeclaration ( bool  throwOnFailure = true) const

◆ fetchFunctionDeclaration() [2/2]

FunctionDeclaration * CeresEngine::ShaderCompiler::ASTSymbolOverload::fetchFunctionDeclaration ( const Vector< TypeDenoterPtr > &  argTypeDenoters) const

◆ fetchType()

Declaration * CeresEngine::ShaderCompiler::ASTSymbolOverload::fetchType ( bool  throwOnFailure = true) const

Fetches a type declaration (StructDecl, AliasDecl).

If there is more than one reference or the type does not fit, an std::runtime_error is thrown.

◆ fetchVarDeclaration()

VarDeclaration * CeresEngine::ShaderCompiler::ASTSymbolOverload::fetchVarDeclaration ( bool  throwOnFailure = true) const

Member Data Documentation

◆ mIdent

String CeresEngine::ShaderCompiler::ASTSymbolOverload::mIdent
private

◆ mRefs

Vector<AST*> CeresEngine::ShaderCompiler::ASTSymbolOverload::mRefs
private

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