19 namespace ASTFactory {
Definition Variant.hpp:20
ExpressionStatementPtr makeAssignStatement(const ExpressionPtr &lvalueExpression, const ExpressionPtr &rvalueExpression, const AssignOp op=AssignOp::Set)
ArrayExpressionPtr makeArrayExpression(const ExpressionPtr &prefixExpression, Vector< ExpressionPtr > &&arrayIndices)
ExpressionPtr convertExpressionBaseType(const DataType dataType, const ExpressionPtr &subExpression)
CastExpressionPtr makeLiteralCastExpression(const TypeDenoterPtr &typeDenoter, const DataType literalType, const String &literalValue)
ArrayDimensionPtr makeArrayDimension(int arraySize)
UniformBufferDeclarationPtr makeUniformBufferDeclaration(const String &ident, Int32 bindingSlot=0, const UniformBufferType bufferType=UniformBufferType::ConstantBuffer)
BinaryExpressionPtr makeBinaryExpression(const ExpressionPtr &lhsExpression, const BinaryOp op, const ExpressionPtr &rhsExpression)
TypeSpecifierPtr makeTypeSpecifier(const StructDeclarationPtr &structDeclaration)
ArrayDimensionPtr convertExpressionToArrayDimension(const ExpressionPtr &expression)
BasicDeclarationStatementPtr makeStructDeclarationStatement(const StructDeclarationPtr &structDeclaration)
ExpressionStatementPtr makeArrayAssignStatement(VarDeclaration *varDeclaration, const Vector< int > &arrayIndices, const ExpressionPtr &assignExpression)
CallExpressionPtr makeTextureSamplerBindingCallExpression(const ExpressionPtr &textureObjectExpression, const ExpressionPtr &samplerObjectExpression)
CallExpressionPtr makeTypeCtorCallExpression(const TypeDenoterPtr &typeDenoter, const Vector< ExpressionPtr > &arguments)
ExpressionPtr makeConstructorListExpression(const ExpressionPtr &expression, const Vector< TypeDenoterPtr > &listTypeDens)
BracketExpressionPtr makeBracketExpression(const ExpressionPtr &expression)
Vector< ArrayDimensionPtr > convertExpressionListToArrayDimensionList(const Vector< ExpressionPtr > &expressions)
CallExpressionPtr makeIntrinsicCallExpression(const Intrinsic intrinsic, const String &ident, const TypeDenoterPtr &typeDenoter, const Vector< ExpressionPtr > &arguments)
ArrayExpressionPtr makeArrayExpressionSplit(const ArrayExpressionPtr &arrayExpression, std::size_t splitArrayIndex)
Splits the specified array expression at the specified array index location.
RegisterPtr makeRegister(Int32 set, Int32 slot, const RegisterType registerType=RegisterType::Undefined)
Vector< ArrayDimensionPtr > makeArrayDimensionList(const Vector< int > &arraySizes)
CallExpressionPtr makeWrapperCallExpression(const String &funcIdent, const TypeDenoterPtr &typeDenoter, const Vector< ExpressionPtr > &arguments)
CodeBlockStatementPtr makeCodeBlockStatement(const StatementPtr &statement)
LiteralExpressionPtr makeLiteralExpressionOrNull(const Variant &literalValue)
LiteralExpressionPtr makeLiteralExpression(const DataType literalType, const String &literalValue)
VarDeclarationStatementPtr makeVarDeclarationStatementSplit(const VarDeclarationStatementPtr &varDeclarationStatement, std::size_t idx)
VarDeclarationStatementPtr makeVarDeclarationStatement(const TypeSpecifierPtr &typeSpecifier, const String &ident, const ExpressionPtr &initializer=nullptr)
CastExpressionPtr makeCastExpression(const TypeDenoterPtr &typeDenoter, const ExpressionPtr &valueExpression)
InitializerExpressionPtr makeInitializerExpression(const Vector< ExpressionPtr > &expressions)
Vector< ExpressionPtr > makeArrayIndices(const Vector< int > &arrayIndices)
AliasDeclarationStatementPtr makeBaseTypeAlias(const DataType dataType, const String &ident)
ObjectExpressionPtr makeObjectExpression(const ExpressionPtr &prefixExpression, const String &ident, Declaration *symbolRef=nullptr)
SPtr< BinaryExpression > BinaryExpressionPtr
Definition Visitor.hpp:71
SPtr< TypeSpecifier > TypeSpecifierPtr
Definition Visitor.hpp:37
SPtr< LiteralExpression > LiteralExpressionPtr
Definition Visitor.hpp:68
SPtr< AliasDeclarationStatement > AliasDeclarationStatementPtr
Definition Visitor.hpp:50
SPtr< Expression > ExpressionPtr
Definition Visitor.hpp:26
SPtr< ObjectExpression > ObjectExpressionPtr
Definition Visitor.hpp:76
SPtr< ArrayDimension > ArrayDimensionPtr
Definition Visitor.hpp:36
SPtr< InitializerExpression > InitializerExpressionPtr
Definition Visitor.hpp:80
SPtr< ArrayExpression > ArrayExpressionPtr
Definition Visitor.hpp:78
SPtr< StructDeclaration > StructDeclarationPtr
Definition Visitor.hpp:42
BinaryOp
Definition ASTEnums.hpp:58
RegisterType
Definition ASTEnums.hpp:741
SPtr< CodeBlockStatement > CodeBlockStatementPtr
Definition Visitor.hpp:54
SPtr< Statement > StatementPtr
Definition Visitor.hpp:25
Intrinsic
Intrinsics function enumeration (currently only HLSL intrinsics).
Definition ASTEnums.hpp:980
SPtr< CallExpression > CallExpressionPtr
Definition Visitor.hpp:74
SPtr< TypeDenoter > TypeDenoterPtr
Definition TypeDenoter.hpp:29
UniformBufferType
Definition ASTEnums.hpp:482
DataType
Definition ASTEnums.hpp:159
SPtr< BracketExpression > BracketExpressionPtr
Definition Visitor.hpp:75
SPtr< ExpressionStatement > ExpressionStatementPtr
Definition Visitor.hpp:61
SPtr< VarDeclarationStatement > VarDeclarationStatementPtr
Definition Visitor.hpp:49
SPtr< UniformBufferDeclaration > UniformBufferDeclarationPtr
Definition Visitor.hpp:45
AssignOp
Definition ASTEnums.hpp:24
SPtr< BasicDeclarationStatement > BasicDeclarationStatementPtr
Definition Visitor.hpp:51
SPtr< Register > RegisterPtr
Definition Visitor.hpp:34
SPtr< CastExpression > CastExpressionPtr
Definition Visitor.hpp:79
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