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