CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
AST.hpp File Reference

Go to the source code of this file.

Classes

struct  CeresEngine::ShaderCompiler::AST
 
struct  CeresEngine::ShaderCompiler::Statement
 
struct  CeresEngine::ShaderCompiler::TypedAST
 
struct  CeresEngine::ShaderCompiler::Expression
 
struct  CeresEngine::ShaderCompiler::Declaration
 
struct  CeresEngine::ShaderCompiler::Program
 
struct  CeresEngine::ShaderCompiler::Program::LayoutTessControlShader
 
struct  CeresEngine::ShaderCompiler::Program::LayoutTessEvaluationShader
 
struct  CeresEngine::ShaderCompiler::Program::LayoutGeometryShader
 
struct  CeresEngine::ShaderCompiler::Program::LayoutFragmentShader
 
struct  CeresEngine::ShaderCompiler::Program::LayoutComputeShader
 
struct  CeresEngine::ShaderCompiler::CodeBlock
 
struct  CeresEngine::ShaderCompiler::SamplerValue
 
struct  CeresEngine::ShaderCompiler::Attribute
 
struct  CeresEngine::ShaderCompiler::SwitchCase
 
struct  CeresEngine::ShaderCompiler::Register
 
struct  CeresEngine::ShaderCompiler::PackOffset
 
struct  CeresEngine::ShaderCompiler::ArrayDimension
 
struct  CeresEngine::ShaderCompiler::TypeSpecifier
 
struct  CeresEngine::ShaderCompiler::VarDeclaration
 
struct  CeresEngine::ShaderCompiler::BufferDeclaration
 
struct  CeresEngine::ShaderCompiler::SamplerDeclaration
 
struct  CeresEngine::ShaderCompiler::StructDeclaration
 
struct  CeresEngine::ShaderCompiler::AliasDeclaration
 
struct  CeresEngine::ShaderCompiler::FunctionDeclaration
 
struct  CeresEngine::ShaderCompiler::FunctionDeclaration::ParameterSemantics
 
struct  CeresEngine::ShaderCompiler::FunctionDeclaration::ParameterStructure
 
struct  CeresEngine::ShaderCompiler::UniformBufferDeclaration
 
struct  CeresEngine::ShaderCompiler::BufferDeclarationStatement
 
struct  CeresEngine::ShaderCompiler::SamplerDeclarationStatement
 
struct  CeresEngine::ShaderCompiler::BasicDeclarationStatement
 
struct  CeresEngine::ShaderCompiler::VarDeclarationStatement
 
struct  CeresEngine::ShaderCompiler::AliasDeclarationStatement
 
struct  CeresEngine::ShaderCompiler::NullStatement
 
struct  CeresEngine::ShaderCompiler::CodeBlockStatement
 
struct  CeresEngine::ShaderCompiler::ForLoopStatement
 
struct  CeresEngine::ShaderCompiler::WhileLoopStatement
 
struct  CeresEngine::ShaderCompiler::DoWhileLoopStatement
 
struct  CeresEngine::ShaderCompiler::IfStatement
 
struct  CeresEngine::ShaderCompiler::ElseStatement
 
struct  CeresEngine::ShaderCompiler::SwitchStatement
 
struct  CeresEngine::ShaderCompiler::ExpressionStatement
 
struct  CeresEngine::ShaderCompiler::ReturnStatement
 
struct  CeresEngine::ShaderCompiler::CtrlTransferStatement
 
struct  CeresEngine::ShaderCompiler::LayoutStatement
 
struct  CeresEngine::ShaderCompiler::NullExpression
 
struct  CeresEngine::ShaderCompiler::SequenceExpression
 
struct  CeresEngine::ShaderCompiler::LiteralExpression
 
struct  CeresEngine::ShaderCompiler::TypeSpecifierExpression
 
struct  CeresEngine::ShaderCompiler::TernaryExpression
 
struct  CeresEngine::ShaderCompiler::BinaryExpression
 
struct  CeresEngine::ShaderCompiler::UnaryExpression
 
struct  CeresEngine::ShaderCompiler::PostUnaryExpression
 
struct  CeresEngine::ShaderCompiler::CallExpression
 
struct  CeresEngine::ShaderCompiler::BracketExpression
 
struct  CeresEngine::ShaderCompiler::AssignExpression
 
struct  CeresEngine::ShaderCompiler::ObjectExpression
 
struct  CeresEngine::ShaderCompiler::ArrayExpression
 
struct  CeresEngine::ShaderCompiler::CastExpression
 
struct  CeresEngine::ShaderCompiler::InitializerExpression
 

Namespaces

namespace  CeresEngine
 
namespace  CeresEngine::ShaderCompiler
 

Macros

#define AST_INTERFACE(CLASS_NAME)
 
#define DECLARATION_AST_ALIAS(ALIAS, BASE)
 
#define FLAG_ENUM   enum : UInt32
 
#define FLAG(IDENT, INDEX)   IDENT = (1u << (INDEX))
 

Typedefs

using CeresEngine::ShaderCompiler::VarDeclarationIteratorFunctor = UniqueFunction< void(VarDeclarationPtr &varDeclaration) const >
 
using CeresEngine::ShaderCompiler::ExpressionIteratorFunctor = UniqueFunction< void(ExpressionPtr &expression, VarDeclaration *param) const >
 
using CeresEngine::ShaderCompiler::ArgumentParameterTypeFunctor = UniqueFunction< void(ExpressionPtr &argument, const TypeDenoter &paramTypeDen) const >
 
using CeresEngine::ShaderCompiler::FindPredicateConstFunctor = UniqueFunction< bool(const Expression &expression) const >
 
using CeresEngine::ShaderCompiler::MergeExpressionFunctor = UniqueFunction< ExpressionPtr(const ExpressionPtr &expression0, const ExpressionPtr &expression1) const >
 

Enumerations

enum  CeresEngine::ShaderCompiler::SearchFlags : UInt32 { CeresEngine::ShaderCompiler::SearchLValue = (1 << 0) , CeresEngine::ShaderCompiler::SearchRValue = (1 << 1) , CeresEngine::ShaderCompiler::SearchAll = (~0u) }
 

Functions

bool CeresEngine::ShaderCompiler::isDeclarationAST (const AST::Types t)
 
bool CeresEngine::ShaderCompiler::isExpressionAST (const AST::Types t)
 
bool CeresEngine::ShaderCompiler::isStatementAST (const AST::Types t)
 
bool CeresEngine::ShaderCompiler::isDeclarationStatementAST (const AST::Types t)
 

Macro Definition Documentation

◆ AST_INTERFACE

#define AST_INTERFACE (   CLASS_NAME)
Value:
static const Types classType = Types::CLASS_NAME; \
explicit CLASS_NAME(const SourcePosition& astPos) { area = SourceArea(astPos, 1); } \
explicit CLASS_NAME(const SourceArea& astArea) { area = astArea; } \
Types getType() const override { return Types::CLASS_NAME; } \
void visit(Visitor* visitor, void* args = nullptr) override { visitor->visit##CLASS_NAME(this, args); }
CE_FLATTEN_INLINE Type getType()
Definition Type.hpp:248

◆ DECLARATION_AST_ALIAS

#define DECLARATION_AST_ALIAS (   ALIAS,
  BASE 
)
Value:
using ALIAS = BASE; \
using ALIAS##Ptr = BASE##Ptr

◆ FLAG

#define FLAG (   IDENT,
  INDEX 
)    IDENT = (1u << (INDEX))

◆ FLAG_ENUM

#define FLAG_ENUM   enum : UInt32