UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
uLang::CAstNode Class Referenceabstract

#include <Expression.h>

+ Inheritance diagram for uLang::CAstNode:

Public Member Functions

 CAstNode (EVstMappingType VstMappingType=EVstMappingType::Ast)
 
virtual UE_API ~CAstNode ()
 
virtual EAstNodeType GetNodeType () const =0
 
virtual const CExpressionBaseAsExpression () const
 
virtual CExpressionBaseAsExpression ()
 
virtual bool MayHaveAttributes () const
 
virtual const CExprIdentifierBaseAsIdentifierBase () const
 
virtual void VisitImmediates (SAstVisitor &Visitor) const
 
virtual void VisitChildren (SAstVisitor &Visitor) const
 
template<typename FunctionType >
ULANG_FORCEINLINE void VisitChildrenLambda (FunctionType &&Function) const
 
virtual CUTF8String GetErrorDesc () const =0
 
const Verse::Vst::NodeGetMappedVstNode () const
 
void SetNonReciprocalMappedVstNode (const Verse::Vst::Node *VstNode)
 
void SetIrMappedVstNode (const Verse::Vst::Node *VstNode)
 
bool IsIrNode () const
 
bool IsVstMappingReciprocal () const
 
template<typename FunctionType >
void VisitChildrenLambda (FunctionType &&Function) const
 
- Public Member Functions inherited from uLang::CSharedMix
 CSharedMix ()
 
virtual UE_API ~CSharedMix ()
 
 CSharedMix (const CSharedMix &Other)=delete
 
CSharedMixoperator= (const CSharedMix &Other)=delete
 
uint32_t GetRefCount () const
 

Protected Attributes

EVstMappingType _VstMappingType
 
const Verse::Vst::Node_MappedVstNode {nullptr}
 

Friends

struct Verse::Vst::Node
 

Additional Inherited Members

- Static Protected Member Functions inherited from uLang::CSharedMix
template<class ObjectType >
static TSPtrG< ObjectType, false, CHeapRawAllocatorSharedThis (ObjectType *This)
 
template<class ObjectType >
static TSPtrG< const ObjectType, false, CHeapRawAllocatorSharedThis (const ObjectType *This)
 

Detailed Description

Abstract base class for AST nodes.

Constructor & Destructor Documentation

◆ CAstNode()

uLang::CAstNode::CAstNode ( EVstMappingType  VstMappingType = EVstMappingType::Ast)
inline

◆ ~CAstNode()

uLang::CAstNode::~CAstNode ( )
virtual

Member Function Documentation

◆ AsExpression() [1/2]

virtual CExpressionBase * uLang::CAstNode::AsExpression ( )
inlinevirtual

Reimplemented in uLang::CExpressionBase.

◆ AsExpression() [2/2]

virtual const CExpressionBase * uLang::CAstNode::AsExpression ( ) const
inlinevirtual

Reimplemented in uLang::CExpressionBase.

◆ AsIdentifierBase()

virtual const CExprIdentifierBase * uLang::CAstNode::AsIdentifierBase ( ) const
inlinevirtual

Reimplemented in uLang::CExprIdentifierBase.

◆ GetErrorDesc()

virtual CUTF8String uLang::CAstNode::GetErrorDesc ( ) const
pure virtual

Implemented in uLang::CExprExternal, uLang::CExprLogic, uLang::CExprNumber, uLang::CExprChar, uLang::CExprString, uLang::CExprPath, uLang::CExprPathPlusSymbol, uLang::CExprEnumLiteral, uLang::CExprType, uLang::CExprFunctionLiteral, uLang::CExprSelf, uLang::CExprLocal, uLang::CExprIdentifierBuiltInMacro, uLang::CExprIdentifierUnresolved, uLang::CExprIdentifierClass, uLang::CExprIdentifierModule, uLang::CExprIdentifierModuleAlias, uLang::CExprEnumerationType, uLang::CExprInterfaceType, uLang::CExprIdentifierData, uLang::CExprIdentifierTypeAlias, uLang::CExprIdentifierTypeVariable, uLang::CExprIdentifierFunction, uLang::CExprIdentifierOverloadedFunction, uLang::CExprDefinition, uLang::CExprInvocation, uLang::CExprTupleElement, uLang::CExprAssignment, uLang::CExprShortCircuitAnd, uLang::CExprShortCircuitOr, uLang::CExprLogicalNot, uLang::CExprComparison, uLang::CExprQueryValue, uLang::CExprMakeOption, uLang::CExprMakeArray, uLang::CExprMakeMap, uLang::CExprMakeTuple, uLang::CExprMakeRange, uLang::CExprInvokeType, uLang::CExprPointerToReference, uLang::CExprSet, uLang::CExprNewPointer, uLang::CExprReferenceToValue, uLang::CExprCodeBlock, uLang::CExprReturn, uLang::CExprIf, uLang::CExprIteration, uLang::CExprSyncIterated, uLang::CExprRushIterated, uLang::CExprRaceIterated, uLang::CExprArrayTypeFormer, uLang::CExprGeneratorTypeFormer, uLang::CExprMapTypeFormer, uLang::CExprOptionTypeFormer, uLang::CExprSubtype, uLang::CExprTupleType, uLang::CExprArrow, uLang::CExprArchetypeInstantiation, uLang::CExprSync, uLang::CExprRace, uLang::CExprRush, uLang::CExprBranch, uLang::CExprSpawn, uLang::CExprAwait, uLang::CExprUpon, uLang::CExprWhen, uLang::CExprLoop, uLang::CExprDefer, uLang::CExprBreak, uLang::CExprSnippet, uLang::CExprModuleDefinition, uLang::CExprEnumDefinition, uLang::CExprScopedAccessLevelDefinition, uLang::CExprInterfaceDefinition, uLang::CExprClassDefinition, uLang::CExprDataDefinition, uLang::CExprIterationPairDefinition, uLang::CIrArrayAdd, uLang::CIrMapAdd, uLang::CIrArrayUnsafeCall, uLang::CIrConvertToDynamic, uLang::CIrConvertFromDynamic, uLang::CIrFor, uLang::CIrForBody, uLang::CExprFunctionDefinition, uLang::CExprTypeAliasDefinition, uLang::CExprUsing, uLang::CExprProfileBlock, uLang::CExprImport, uLang::CExprWhere, uLang::CExprVar, uLang::CExprLive, uLang::CExprMakeNamed, uLang::CAstPackage, uLang::CAstCompilationUnit, uLang::CAstProject, uLang::CExprError, and uLang::CExprPlaceholder.

◆ GetMappedVstNode()

const Verse::Vst::Node * uLang::CAstNode::GetMappedVstNode ( ) const
inline

◆ GetNodeType()

virtual EAstNodeType uLang::CAstNode::GetNodeType ( ) const
pure virtual

Implemented in uLang::CExprExternal, uLang::CExprLogic, uLang::CExprNumber, uLang::CExprChar, uLang::CExprString, uLang::CExprPath, uLang::CExprPathPlusSymbol, uLang::CExprEnumLiteral, uLang::CExprType, uLang::CExprFunctionLiteral, uLang::CExprSelf, uLang::CExprLocal, uLang::CExprIdentifierBuiltInMacro, uLang::CExprIdentifierUnresolved, uLang::CExprIdentifierClass, uLang::CExprIdentifierModule, uLang::CExprIdentifierModuleAlias, uLang::CExprEnumerationType, uLang::CExprInterfaceType, uLang::CExprIdentifierData, uLang::CExprIdentifierTypeAlias, uLang::CExprIdentifierTypeVariable, uLang::CExprIdentifierFunction, uLang::CExprIdentifierOverloadedFunction, uLang::CExprDefinition, uLang::CExprInvocation, uLang::CExprTupleElement, uLang::CExprAssignment, uLang::CExprShortCircuitAnd, uLang::CExprShortCircuitOr, uLang::CExprLogicalNot, uLang::CExprComparison, uLang::CExprQueryValue, uLang::CExprMakeOption, uLang::CExprMakeArray, uLang::CExprMakeMap, uLang::CExprMakeTuple, uLang::CExprMakeRange, uLang::CExprInvokeType, uLang::CExprPointerToReference, uLang::CExprSet, uLang::CExprNewPointer, uLang::CExprReferenceToValue, uLang::CExprCodeBlock, uLang::CExprReturn, uLang::CExprIf, uLang::CExprIteration, uLang::CExprSyncIterated, uLang::CExprRushIterated, uLang::CExprRaceIterated, uLang::CExprArrayTypeFormer, uLang::CExprGeneratorTypeFormer, uLang::CExprMapTypeFormer, uLang::CExprOptionTypeFormer, uLang::CExprSubtype, uLang::CExprTupleType, uLang::CExprArrow, uLang::CExprArchetypeInstantiation, uLang::CExprSync, uLang::CExprRace, uLang::CExprRush, uLang::CExprBranch, uLang::CExprSpawn, uLang::CExprAwait, uLang::CExprUpon, uLang::CExprWhen, uLang::CExprLoop, uLang::CExprDefer, uLang::CExprBreak, uLang::CExprSnippet, uLang::CExprModuleDefinition, uLang::CExprEnumDefinition, uLang::CExprScopedAccessLevelDefinition, uLang::CExprInterfaceDefinition, uLang::CExprClassDefinition, uLang::CExprDataDefinition, uLang::CExprIterationPairDefinition, uLang::CIrArrayAdd, uLang::CIrMapAdd, uLang::CIrArrayUnsafeCall, uLang::CIrConvertToDynamic, uLang::CIrConvertFromDynamic, uLang::CIrFor, uLang::CIrForBody, uLang::CExprFunctionDefinition, uLang::CExprTypeAliasDefinition, uLang::CExprUsing, uLang::CExprProfileBlock, uLang::CExprImport, uLang::CExprWhere, uLang::CExprVar, uLang::CExprLive, uLang::CExprMakeNamed, uLang::CAstPackage, uLang::CAstCompilationUnit, uLang::CAstProject, uLang::CExprError, and uLang::CExprPlaceholder.

◆ IsIrNode()

bool uLang::CAstNode::IsIrNode ( ) const
inline

◆ IsVstMappingReciprocal()

bool uLang::CAstNode::IsVstMappingReciprocal ( ) const
inline

◆ MayHaveAttributes()

◆ SetIrMappedVstNode()

void uLang::CAstNode::SetIrMappedVstNode ( const Verse::Vst::Node VstNode)
inline

◆ SetNonReciprocalMappedVstNode()

void uLang::CAstNode::SetNonReciprocalMappedVstNode ( const Verse::Vst::Node VstNode)
inline

◆ VisitChildren()

◆ VisitChildrenLambda() [1/2]

template<typename FunctionType >
ULANG_FORCEINLINE void uLang::CAstNode::VisitChildrenLambda ( FunctionType &&  Function) const

Wrapper for VisitChildren that takes a lambda that is called for each child. The signature for the lambda should be (const SAstVisitor& RecurseVisitor, CAstNode&) You can use RecurseVisitor to recursively call VisitChildren with the same lambda.

◆ VisitChildrenLambda() [2/2]

template<typename FunctionType >
void uLang::CAstNode::VisitChildrenLambda ( FunctionType &&  Function) const

◆ VisitImmediates()

Friends And Related Symbol Documentation

◆ Verse::Vst::Node

Member Data Documentation

◆ _MappedVstNode

const Verse::Vst::Node* uLang::CAstNode::_MappedVstNode {nullptr}
mutableprotected

◆ _VstMappingType

EVstMappingType uLang::CAstNode::_VstMappingType
mutableprotected

The documentation for this class was generated from the following files: