Navigation
API > API/Plugins > API/Plugins/RigVMDeveloper
Base class for an expression within an abstract syntax tree. The base implements parent / child relationships as well as a simple typing system. An expression is a multi child / multi parent element of a directed tree (there can be no cycles). Expressions can only be constructed by an AST parser, and are also memory-owned by the parser.
| Name | FRigVMExprAST |
| Type | class |
| Header File | /Engine/Plugins/Runtime/RigVM/Source/RigVMDeveloper/Public/RigVMCompiler/RigVMAST.h |
| Include Path | #include "RigVMCompiler/RigVMAST.h" |
Syntax
class FRigVMExprAST
Derived Classes
FRigVMExprAST derived class hierarchy
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FRigVMExprAST
(
const FRigVMExprAST& |
Disable copy constructor | RigVMCompiler/RigVMAST.h | |
FRigVMExprAST
(
EType InType, |
Default constructor (protected so that only parser can access it) | RigVMCompiler/RigVMAST.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FRigVMExprAST() |
Virtual destructor | RigVMCompiler/RigVMAST.h |
Enums
Public
| Name | Remarks |
|---|---|
| EType | Simple enum for differentiating expression types. |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FRigVMBlockArray | TArray< const FRigVMBlockExprAST *, TInlineAllocator< 5 > > | Returns all of the block this expression is in | RigVMCompiler/RigVMAST.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TArray< FRigVMExprAST * >::RangedForConstIteratorType begin() |
Begin iterator accessor for the children | RigVMCompiler/RigVMAST.h | |
const FRigVMExprAST * ChildAt
(
int32 InIndex |
Getter to retrieve a child with a given index | RigVMCompiler/RigVMAST.h | |
const ObjectType * ChildAt
(
int32 InIndex |
Templated getter to retrieve a child with a given index type checking will occur within the To method and raise | RigVMCompiler/RigVMAST.h | |
TArray< FRigVMExprAST * >::RangedForConstIteratorType end() |
End iterator accessor for the children | RigVMCompiler/RigVMAST.h | |
const FRigVMBlockExprAST * GetBlock() |
Returns the block of this expression | RigVMCompiler/RigVMAST.h | |
TOptional< uint32 > GetBlockCombinationHash() |
Returns the unique block combination hash for this expression (or INDEX_NONE) | RigVMCompiler/RigVMAST.h | |
const FString & GetBlockCombinationName() |
Returns the unique block combination name for this expression (or an empty string) | RigVMCompiler/RigVMAST.h | |
FRigVMBlockArray GetBlocks
(
bool bSortByDepth |
RigVMCompiler/RigVMAST.h | ||
virtual const FRigVMExprAST * GetFirstChildOfType
(
EType InExprType |
Returns the first parent in the tree of a given type | RigVMCompiler/RigVMAST.h | |
virtual const FRigVMExprAST * GetFirstParentOfType
(
EType InExprType |
Returns the first parent in the tree of a given type | RigVMCompiler/RigVMAST.h | |
int32 GetIndex() |
Returns the index of this expression within the parser's storage | RigVMCompiler/RigVMAST.h | |
int32 GetMaximumDepth() |
Returns the maximum depth of the expression in tree (number of recursive parents) | RigVMCompiler/RigVMAST.h | |
int32 GetMinChildIndexWithinParent
(
const FRigVMExprAST* InParentExpr |
Returns the lowest child index found for this expression within a parent (or INDEX_NONE) | RigVMCompiler/RigVMAST.h | |
FName GetName() |
Returns the name of the expression (can be NAME_None) | RigVMCompiler/RigVMAST.h | |
const FRigVMExprAST * GetParent() |
Returns the parent of this expression | RigVMCompiler/RigVMAST.h | |
const FRigVMParserAST * GetParser() |
Returns the parser this expression is owned by | RigVMCompiler/RigVMAST.h | |
virtual const FRigVMASTProxy & GetProxy() |
Returns the model proxy this expression relates to | RigVMCompiler/RigVMAST.h | |
const FRigVMBlockExprAST * GetRootBlock() |
Returns the root / top level block of this expression | RigVMCompiler/RigVMAST.h | |
EType GetType() |
Returns the exact type of the expression | RigVMCompiler/RigVMAST.h | |
FName GetTypeName() |
Returns the name of the expression's type | RigVMCompiler/RigVMAST.h | |
bool IsA
(
EType InType |
Provides type checking for inherited types | RigVMCompiler/RigVMAST.h | |
virtual bool IsConstant() |
Returns true if this expressions is constant (non varying) | RigVMCompiler/RigVMAST.h | |
virtual bool IsNode() |
Returns true if the expression is a node expression | RigVMCompiler/RigVMAST.h | |
bool IsParentedTo
(
const FRigVMExprAST* InParentExpr |
Returns true if a given expression is parented to another expression | RigVMCompiler/RigVMAST.h | |
bool IsParentOf
(
const FRigVMExprAST* InChildExpr |
Returns true if a given expression is a parent of another expression | RigVMCompiler/RigVMAST.h | |
bool IsValid() |
Returns true if the expressoin is valid | RigVMCompiler/RigVMAST.h | |
virtual bool IsVar() |
Returns true if the expression is a var expression | RigVMCompiler/RigVMAST.h | |
bool IsVarying() |
Returns true if this expressions is varying (non constant) | RigVMCompiler/RigVMAST.h | |
int32 NumChildren() |
Returns the number of children of this expression | RigVMCompiler/RigVMAST.h | |
int32 NumParents() |
Returns the number of parents of this expression | RigVMCompiler/RigVMAST.h | |
const ObjectType * ParentAt
(
int32 InIndex |
Templated getter to retrieve a parent with a given index type checking will occur within the To method and raise | RigVMCompiler/RigVMAST.h | |
const FRigVMExprAST * ParentAt
(
int32 InIndex |
Getter to retrieve a parent with a given index | RigVMCompiler/RigVMAST.h | |
const FRigVMVarExprAST * To () |
Specialized cast for type checking for a Var / FRigVMVarExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMLiteralExprAST * To () |
Specialized cast for type checking for a Literal / FRigVMLiteralExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMCopyExprAST * To () |
Specialized cast for type checking for a Copy / FRigVMCopyExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMAssignExprAST * To () |
Specialized cast for type checking for a Assign / FRigVMAssignExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMNoOpExprAST * To () |
Specialized cast for type checking for a NoOp / FRigVMNoOpExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMExternalVarExprAST * To () |
Specialized cast for type checking for a External Variable / FRigVMExternalVarExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMInlineFunctionExprAST * To () |
Specialized cast for type checking for a InlineFunction / FRigVMInlineFunctionExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMBlockExprAST * To () |
Specialized cast for type checking for a Block / FRigVMBlockExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMInvokeEntryExprAST * To () |
Specialized cast for type checking for a InvokeEntry / FRigVMInvokeEntryExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMEntryExprAST * To () |
Specialized cast for type checking for a Entry / FRigVMEntryExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMNodeExprAST * To () |
Specialized cast for type checking for a Node / FRigVMNodeExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
ObjectType * To () |
Templated cast for casting between different expression types. | RigVMCompiler/RigVMAST.h | |
const ObjectType * To () |
Const templated cast for casting between different expression types. | RigVMCompiler/RigVMAST.h | |
const FRigVMCachedValueExprAST * To () |
Specialized cast for type checking for a CachedValue / FRigVMCachedValueExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMCallExternExprAST * To () |
Specialized cast for type checking for a CallExtern / FRigVMCallExternExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h | |
const FRigVMExitExprAST * To () |
Specialized cast for type checking for a Exit / FRigVMExitExprAST expression will raise if types are not compatible | RigVMCompiler/RigVMAST.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddParent
(
FRigVMExprAST* InParent |
Adds a parent to this expression this in consequence also adds this as a child to the parent | RigVMCompiler/RigVMAST.h | |
| Returns a string containing an indented tree structure for debugging purposes. | RigVMCompiler/RigVMAST.h | ||
void GetBlocksImpl
(
FRigVMBlockArray& InOutBlocks |
Computes all of the block this expression is in | RigVMCompiler/RigVMAST.h | |
void InvalidateCaches() |
Resets the internal caches of the expression. | RigVMCompiler/RigVMAST.h | |
void InvalidateCachesImpl
(
TArray< bool >& OutProcessed |
RigVMCompiler/RigVMAST.h | ||
void RemoveChild
(
FRigVMExprAST* InChild |
Removes a child from this expression this in consequence also removes this as a parent from the child | RigVMCompiler/RigVMAST.h | |
void RemoveParent
(
FRigVMExprAST* InParent |
Removes a parent from this expression this in consequence also removes this as a child from the parent | RigVMCompiler/RigVMAST.h | |
void ReplaceBy
(
FRigVMExprAST* InReplacement |
Replaces this expression with another one | RigVMCompiler/RigVMAST.h | |
void ReplaceChild
(
FRigVMExprAST* InCurrentChild, |
Replaces a child of this expression with a new one | RigVMCompiler/RigVMAST.h | |
void ReplaceParent
(
FRigVMExprAST* InCurrentParent, |
Replaces a parent of this expression with a new one | RigVMCompiler/RigVMAST.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const FRigVMExprAST * operator[]
(
int32 InIndex |
Accessor operator for a given child | RigVMCompiler/RigVMAST.h |