XII Release 0.1.0
Loading...
Searching...
No Matches
xiiExpressionAST Class Reference

Classes

struct  NodeType
struct  DataType
struct  VectorComponent
struct  Node
struct  UnaryOperator
struct  BinaryOperator
struct  TernaryOperator
struct  Constant
struct  Swizzle
struct  Input
struct  Output
struct  FunctionCall
struct  ConstructorCall

Public Member Functions

UnaryOperator * CreateUnaryOperator (NodeType::Enum type, Node *pOperand, DataType::Enum returnType=DataType::Unknown)
BinaryOperator * CreateBinaryOperator (NodeType::Enum type, Node *pLeftOperand, Node *pRightOperand)
TernaryOperator * CreateTernaryOperator (NodeType::Enum type, Node *pFirstOperand, Node *pSecondOperand, Node *pThirdOperand)
Constant * CreateConstant (const xiiVariant &value, DataType::Enum dataType=DataType::Float)
Swizzle * CreateSwizzle (xiiStringView sSwizzle, Node *pExpression)
Swizzle * CreateSwizzle (xiiEnum< VectorComponent > component, Node *pExpression)
Swizzle * CreateSwizzle (xiiArrayPtr< xiiEnum< VectorComponent > > swizzle, Node *pExpression)
Input * CreateInput (const xiiExpression::StreamDesc &desc)
Output * CreateOutput (const xiiExpression::StreamDesc &desc, Node *pExpression)
FunctionCall * CreateFunctionCall (const xiiExpression::FunctionDesc &desc, xiiArrayPtr< Node * > arguments)
FunctionCall * CreateFunctionCall (xiiArrayPtr< const xiiExpression::FunctionDesc > descs, xiiArrayPtr< Node * > arguments)
ConstructorCall * CreateConstructorCall (DataType::Enum dataType, xiiArrayPtr< Node * > arguments)
ConstructorCall * CreateConstructorCall (Node *pOldValue, Node *pNewValue, xiiStringView sPartialAssignmentMask)
void PrintGraph (xiiDGMLGraph &ref_graph) const
Node * TypeDeductionAndConversion (Node *pNode)
Node * ReplaceVectorInstructions (Node *pNode)
Node * ScalarizeVectorInstructions (Node *pNode)
Node * ReplaceUnsupportedInstructions (Node *pNode)
Node * FoldConstants (Node *pNode)
Node * CommonSubexpressionElimination (Node *pNode)
Node * Validate (Node *pNode)
xiiResult ScalarizeInputs ()
xiiResult ScalarizeOutputs ()

Static Public Member Functions

static xiiArrayPtr< Node * > GetChildren (Node *pNode)
static xiiArrayPtr< const Node * > GetChildren (const Node *pNode)

Public Attributes

xiiSmallArray< Input *, 8 > m_InputNodes
xiiSmallArray< Output *, 8 > m_OutputNodes

The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/Foundation/CodeUtils/Expression/ExpressionAST.h
  • /home/runner/work/XII/XII/Source/Engine/Foundation/CodeUtils/Expression/Implementation/ExpressionAST.cpp
  • /home/runner/work/XII/XII/Source/Engine/Foundation/CodeUtils/Expression/Implementation/ExpressionASTTransforms.cpp