CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
ASTFactory.hpp File Reference
#include "AST.hpp"
#include "TypeDenoter.hpp"
#include "CeresEngine/DataTypes.hpp"

Go to the source code of this file.

Namespaces

namespace  CeresEngine
 
namespace  CeresEngine::ShaderCompiler
 
namespace  CeresEngine::ShaderCompiler::ASTFactory
 

Functions

CallExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeIntrinsicCallExpression (const Intrinsic intrinsic, const String &ident, const TypeDenoterPtr &typeDenoter, const Vector< ExpressionPtr > &arguments)
 
CallExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeTextureSamplerBindingCallExpression (const ExpressionPtr &textureObjectExpression, const ExpressionPtr &samplerObjectExpression)
 
CallExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeWrapperCallExpression (const String &funcIdent, const TypeDenoterPtr &typeDenoter, const Vector< ExpressionPtr > &arguments)
 
InitializerExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeInitializerExpression (const Vector< ExpressionPtr > &expressions)
 
CallExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeTypeCtorCallExpression (const TypeDenoterPtr &typeDenoter, const Vector< ExpressionPtr > &arguments)
 
CastExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeCastExpression (const TypeDenoterPtr &typeDenoter, const ExpressionPtr &valueExpression)
 
CastExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeLiteralCastExpression (const TypeDenoterPtr &typeDenoter, const DataType literalType, const String &literalValue)
 
BinaryExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeBinaryExpression (const ExpressionPtr &lhsExpression, const BinaryOp op, const ExpressionPtr &rhsExpression)
 
LiteralExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeLiteralExpression (const DataType literalType, const String &literalValue)
 
LiteralExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeLiteralExpressionOrNull (const Variant &literalValue)
 
AliasDeclarationStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeBaseTypeAlias (const DataType dataType, const String &ident)
 
TypeSpecifierPtr CeresEngine::ShaderCompiler::ASTFactory::makeTypeSpecifier (const StructDeclarationPtr &structDeclaration)
 
TypeSpecifierPtr CeresEngine::ShaderCompiler::ASTFactory::makeTypeSpecifier (const TypeDenoterPtr &typeDenoter)
 
TypeSpecifierPtr CeresEngine::ShaderCompiler::ASTFactory::makeTypeSpecifier (const DataType dataType)
 
VarDeclarationStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeVarDeclarationStatement (const TypeSpecifierPtr &typeSpecifier, const String &ident, const ExpressionPtr &initializer=nullptr)
 
VarDeclarationStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeVarDeclarationStatement (const DataType dataType, const String &ident, const ExpressionPtr &initializer=nullptr)
 
VarDeclarationStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeVarDeclarationStatementSplit (const VarDeclarationStatementPtr &varDeclarationStatement, std::size_t idx)
 
ObjectExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeObjectExpression (const ExpressionPtr &prefixExpression, const String &ident, Declaration *symbolRef=nullptr)
 
ObjectExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeObjectExpression (const String &ident, Declaration *symbolRef=nullptr)
 
ObjectExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeObjectExpression (Declaration *symbolRef)
 
ArrayExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeArrayExpression (const ExpressionPtr &prefixExpression, Vector< ExpressionPtr > &&arrayIndices)
 
ArrayExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeArrayExpression (const ExpressionPtr &prefixExpression, const Vector< int > &arrayIndices)
 
ArrayExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeArrayExpression (const ExpressionPtr &prefixExpression, const Vector< ExpressionPtr >::const_iterator &arrayIndicesBegin, const Vector< ExpressionPtr >::const_iterator &arrayIndicesEnd)
 
ArrayExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeArrayExpressionSplit (const ArrayExpressionPtr &arrayExpression, std::size_t splitArrayIndex)
 Splits the specified array expression at the specified array index location.
 
RegisterPtr CeresEngine::ShaderCompiler::ASTFactory::makeRegister (Int32 set, Int32 slot, const RegisterType registerType=RegisterType::Undefined)
 
BracketExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeBracketExpression (const ExpressionPtr &expression)
 
ExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::makeConstructorListExpression (const ExpressionPtr &expression, const Vector< TypeDenoterPtr > &listTypeDens)
 
ExpressionStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeAssignStatement (const ExpressionPtr &lvalueExpression, const ExpressionPtr &rvalueExpression, const AssignOp op=AssignOp::Set)
 
ExpressionStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeArrayAssignStatement (VarDeclaration *varDeclaration, const Vector< int > &arrayIndices, const ExpressionPtr &assignExpression)
 
ArrayDimensionPtr CeresEngine::ShaderCompiler::ASTFactory::makeArrayDimension (int arraySize)
 
CodeBlockStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeCodeBlockStatement (const StatementPtr &statement)
 
BasicDeclarationStatementPtr CeresEngine::ShaderCompiler::ASTFactory::makeStructDeclarationStatement (const StructDeclarationPtr &structDeclaration)
 
UniformBufferDeclarationPtr CeresEngine::ShaderCompiler::ASTFactory::makeUniformBufferDeclaration (const String &ident, Int32 bindingSlot=0, const UniformBufferType bufferType=UniformBufferType::ConstantBuffer)
 
Vector< ExpressionPtrCeresEngine::ShaderCompiler::ASTFactory::makeArrayIndices (const Vector< int > &arrayIndices)
 
Vector< ArrayDimensionPtrCeresEngine::ShaderCompiler::ASTFactory::makeArrayDimensionList (const Vector< int > &arraySizes)
 
ExpressionPtr CeresEngine::ShaderCompiler::ASTFactory::convertExpressionBaseType (const DataType dataType, const ExpressionPtr &subExpression)
 
ArrayDimensionPtr CeresEngine::ShaderCompiler::ASTFactory::convertExpressionToArrayDimension (const ExpressionPtr &expression)
 
Vector< ArrayDimensionPtrCeresEngine::ShaderCompiler::ASTFactory::convertExpressionListToArrayDimensionList (const Vector< ExpressionPtr > &expressions)