FRigVMExprAST

Base class for an expression within an abstract syntax tree.

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

RigVMDeveloper

Header

/Engine/Source/Developer/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.

Constructors

Name Description

Public function

FRigVMExprAST

(
    const FRigVMExprAST&
)

Disable copy constructor

Protected function

FRigVMExprAST

(
    EType InType,
    UObject* InSubject
)

Default constructor (protected so that only parser can access it)

Destructors

Name Description

Public function Virtual

~FRigVMExprAST()

Virtual destructor

Functions

Name Description

Protected function

void

 

AddParent

(
    FRigVMExprAST* InParent
)

Adds a parent to this expression this in consequence also adds this as a child to the parent

Public function Const

TArray< FRig...

 

begin()

Begin iterator accessor for the children

Public function Const

const Object...

 

ChildAt

(
    int32 InIndex
)

Templated getter to retrieve a child with a given index type checking will occur within the ::To method and raise

Public function Const

const FRigVM...

 

ChildAt

(
    int32 InIndex
)

Getter to retrieve a child with a given index

Public function Const

TArray< FRig...

 

end()

End iterator accessor for the children

Public function Const

const FRigVM...

 

GetBlock()

Returns the block of this expression

Public function Virtual Const

const FRigVM...

 

GetFirstChildOfType

(
    EType InExprType
)

Returns the first parent in the tree of a given type

Public function Virtual Const

const FRigVM...

 

GetFirstParentOfType

(
    EType InExprType
)

Returns the first parent in the tree of a given type

Public function Const

int32

 

GetIndex()

Returns the index of this expression within the parser's storage

Public function Const

int32

 

GetMinChildIndexWithinParent

(
    const FRigVMExprAST* InParentE...
)

Returns the lowest child index found for this expression within a parent (or INDEX_NONE)

Public function Const

FName

 

GetName()

Returns the name of the expression (can be NAME_None)

Public function Const

const FRigVM...

 

GetParent()

Returns the parent of this expression

Public function Const

const FRigVM...

 

GetParser()

Returns the parser this expression is owned by

Public function Const

const FRigVM...

 

GetRootBlock()

Returns the root / top level block of this expression

Public function Const

EType

 

GetType()

Returns the exact type of the expression

Public function Const

FName

 

GetTypeName()

Returns the name of the expression's type

Public function Const

bool

 

IsA

(
    EType InType
)

Provides type checking for inherited types

Public function Virtual Const

bool

 

IsConstant()

Returns true if this expressions is constant (non varying)

Public function Const

bool

 

IsVarying()

Returns true if this expressions is varying (non constant)

Public function Const

int32

 

NumChildren()

Returns the number of children of this expression

Public function Const

int32

 

NumParents()

Returns the number of parents of this expression

Public function Const

const FRigVM...

 

ParentAt

(
    int32 InIndex
)

Getter to retrieve a parent with a given index

Public function Const

const Object...

 

ParentAt

(
    int32 InIndex
)

Templated getter to retrieve a parent with a given index type checking will occur within the ::To method and raise

Protected function

void

 

RemoveChild

(
    FRigVMExprAST* InChild
)

Removes a child from this expression this in consequence also removes this as a parent from the child

Protected function

void

 

RemoveParent

(
    FRigVMExprAST* InParent
)

Removes a parent from this expression this in consequence also removes this as a child from the parent

Protected function

void

 

ReplaceBy

(
    FRigVMExprAST* InReplacement
)

Replaces this expression with another one

Protected function

void

 

ReplaceChild

(
    FRigVMExprAST* InCurrentChild,
    FRigVMExprAST* InNewChild
)

Replaces a child of this expression with a new one

Protected function

void

 

ReplaceParent

(
    FRigVMExprAST* InCurrentParent,
    FRigVMExprAST* InNewParent
)

Replaces a parent of this expression with a new one

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Branch / FRigVMBranchExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Exit / FRigVMExitExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a CachedValue / FRigVMCachedValueExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Copy / FRigVMCopyExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Assign / FRigVMAssignExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Literal / FRigVMLiteralExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Var / FRigVMVarExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a CallExtern / FRigVMCallExternExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Entry / FRigVMEntryExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checkiFRigVMAssignExprASTng for a Block / FRigVMBlockExprAST expression will raise if types are not compatible

Public function

ObjectType &...

 

To()

Templated cast for casting between different expression types.

Public function Const

const Object...

 

To()

Const templated cast for casting between different expression types.

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a If / FRigVMIfExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a NoOp / FRigVMNoOpExprAST expression will raise if types are not compatible

Public function Const

const FRigVM...

 

To()

Specialized cast for type checking for a Select / FRigVMSelectExprAST expression will raise if types are not compatible

Operators

Name Description

Public function Const

const FRigVM...

 

operator[]

(
    int32 InIndex
)

Accessor operator for a given child

Enums

Name

Description

Public enum

EType

Simple enum for differentiating expression types.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss