UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Expression.h File Reference

Go to the source code of this file.

Classes

struct  uLang::SAstNodeTypeInfo
 
struct  uLang::SAstVisitor
 
class  uLang::CAstNode
 
class  uLang::CExpressionBase
 
struct  uLang::CExpressionBase::SAnalysisResult
 
class  uLang::CExprCompoundBase
 
class  uLang::CExprBinaryOp
 
class  uLang::CExprExternal
 
class  uLang::CExprLogic
 
class  uLang::CExprNumber
 
class  uLang::CExprChar
 
class  uLang::CExprString
 
class  uLang::CExprPath
 
class  uLang::CExprPathPlusSymbol
 
class  uLang::CExprIdentifierBase
 
class  uLang::CExprEnumLiteral
 
class  uLang::CExprType
 
class  uLang::CExprFunctionLiteral
 
class  uLang::CExprSelf
 
class  uLang::CExprLocal
 Represents the (local:) qualifier. More...
 
class  uLang::CExprIdentifierBuiltInMacro
 
class  uLang::CExprIdentifierUnresolved
 
class  uLang::CExprIdentifierClass
 
class  uLang::CExprIdentifierModule
 
class  uLang::CExprIdentifierModuleAlias
 
class  uLang::CExprEnumerationType
 
class  uLang::CExprInterfaceType
 
class  uLang::CExprIdentifierData
 
class  uLang::CExprIdentifierTypeAlias
 
class  uLang::CExprIdentifierTypeVariable
 
class  uLang::CExprIdentifierFunction
 
class  uLang::CExprIdentifierOverloadedFunction
 
class  uLang::CExprDefinition
 
class  uLang::CExprMacroCall
 
class  uLang::CExprMacroCall::CClause
 
class  uLang::CExprInvocation
 
class  uLang::CExprTupleElement
 
class  uLang::CExprAssignment
 
struct  uLang::SAssignmentLhsIdentifier
 
class  uLang::CExprUnaryOp
 
class  uLang::CExprUnaryArithmetic
 
class  uLang::CExprBinaryArithmetic
 
class  uLang::CExprShortCircuitAnd
 
class  uLang::CExprShortCircuitOr
 
class  uLang::CExprLogicalNot
 
class  uLang::CExprComparison
 
class  uLang::CExprQueryValue
 
class  uLang::CExprMakeOption
 
class  uLang::CExprMakeArray
 
class  uLang::CExprMakeMap
 
class  uLang::CExprMakeTuple
 
class  uLang::CExprMakeRange
 
class  uLang::CExprInvokeType
 
class  uLang::CExprPointerToReference
 
class  uLang::CExprSet
 
class  uLang::CExprNewPointer
 
class  uLang::CExprReferenceToValue
 
class  uLang::CExprCodeBlock
 
class  uLang::CExprLet
 
class  uLang::CExprReturn
 
class  uLang::CExprIf
 
class  uLang::CExprIteration
 
class  uLang::CExprConcurrentIteratedBase
 
class  uLang::CExprSyncIterated
 
class  uLang::CExprRushIterated
 
class  uLang::CExprRaceIterated
 
class  uLang::CExprTypeFormer
 Base class for all expressions that form a type out of input type(s) More...
 
class  uLang::CExprUnaryTypeFormer
 
class  uLang::CExprArrayTypeFormer
 
class  uLang::CExprGeneratorTypeFormer
 
class  uLang::CExprMapTypeFormer
 
class  uLang::CExprOptionTypeFormer
 
class  uLang::CExprSubtype
 
class  uLang::CExprTupleType
 
class  uLang::CExprArrow
 
class  uLang::CExprArchetypeInstantiation
 
class  uLang::CExprConcurrentBlockBase
 
class  uLang::CExprSync
 
class  uLang::CExprRace
 
class  uLang::CExprRush
 
class  uLang::CExprSubBlockBase
 
class  uLang::CExprBranch
 
class  uLang::CExprSpawn
 
class  uLang::CExprAwait
 
class  uLang::CExprBinaryAwaitOp
 
class  uLang::CExprUpon
 
class  uLang::CExprWhen
 
class  uLang::CExprLoop
 
class  uLang::CExprDefer
 
class  uLang::CExprBreak
 
class  uLang::CMemberDefinitions
 
class  uLang::CExprSnippet
 
class  uLang::CExprModuleDefinition
 
class  uLang::CExprEnumDefinition
 
class  uLang::CExprScopedAccessLevelDefinition
 
class  uLang::CExprInterfaceDefinition
 
class  uLang::CExprClassDefinition
 
class  uLang::CExprDataDefinition
 
class  uLang::CExprIterationPairDefinition
 
class  uLang::CIrArrayAdd
 
class  uLang::CIrMapAdd
 
class  uLang::CIrArrayUnsafeCall
 
class  uLang::CIrConvertToDynamic
 
class  uLang::CIrConvertFromDynamic
 
class  uLang::CIrFor
 
class  uLang::CIrForBody
 
class  uLang::CExprFunctionDefinition
 
class  uLang::CExprTypeAliasDefinition
 
class  uLang::CExprUsing
 
class  uLang::CExprProfileBlock
 
class  uLang::CExprImport
 
class  uLang::CExprWhere
 
class  uLang::CExprVar
 
class  uLang::CExprLive
 
class  uLang::CExprMakeNamed
 
class  uLang::CAstPackage
 
class  uLang::CAstCompilationUnit
 
class  uLang::CAstProject
 
struct  uLang::TAstFunctionVisitor< FunctionType >
 
struct  uLang::TAsNullableTraitsOf< TSPtr< CExpressionBase >, TOut >
 
struct  uLang::TAsNullableTraitsOf< TSRef< CExpressionBase >, TOut >
 
struct  uLang::TAsNullableTraitsOf< CExpressionBase *, TOut >
 
struct  uLang::TAsNullableTraitsOf< const CExpressionBase *, TOut >
 

Namespaces

namespace  uLang
 

Macros

#define UE_API   VERSECOMPILER_API
 
#define VERSE_VISIT_AST_NODE_TYPES(v)
 
#define FORWARD_DECLARE(_, Class)   class Class;
 
#define VISIT_AST_NODE_TYPE(Name, Class)   Name,
 
#define VISIT_AST_NODE_TYPE(Name, Class)
 
#define VISIT_AST_NODE_TYPE(Name, Class)   if (Node == EAstNodeType::Name) { return #Name; }
 

Enumerations

enum class  uLang::EAstNodeType : uint8_t { uLang::VISIT_AST_NODE_TYPE }
 
enum class  uLang::EInvokeTime : uint8_t { uLang::Immediate = 1 << 0 , uLang::Async = 1 << 1 , uLang::Any_ = Immediate | Async }
 
enum class  uLang::EVstMappingType { uLang::Ast , uLang::AstNonReciprocal , uLang::Ir }
 
enum class  uLang::EMacroClauseTag : uint32_t { uLang::None = 0x1 << 0 , uLang::Of = 0x1 << 1 , uLang::Do = 0x1 << 2 }
 

Functions

SAstNodeTypeInfo uLang::GetAstNodeTypeInfo (EAstNodeType NodeType)
 
const charuLang::InvokeTimeAsCString (EInvokeTime InvokeTime)
 
constexpr EMacroClauseTag uLang::operator| (EMacroClauseTag A, EMacroClauseTag B)
 
constexpr bool uLang::HasAnyTags (EMacroClauseTag A, EMacroClauseTag B)
 
constexpr bool uLang::HasAllTags (EMacroClauseTag A, EMacroClauseTag RequiredTags)
 
const charuLang::MacroClauseTagAsCString (EMacroClauseTag Tag)
 
const charuLang::MacroClauseFormAsCString (Verse::Vst::Clause::EForm Form)
 
const CExprIdentifierFunctionuLang::GetConstructorInvocationCallee (const CExprInvocation &Invocation)
 
const CExprIdentifierFunctionuLang::GetConstructorInvocationCallee (const CExpressionBase &Expression)
 
bool uLang::IsConstructorInvocation (const CExprInvocation &Invocation)
 
bool uLang::IsConstructorInvocation (const CExpressionBase &Expression)
 
TOptional< SAssignmentLhsIdentifieruLang::IdentifierOfAssignmentLhs (const CExprAssignment *Assignment)
 
bool uLang::HasImplicitClassSelf (const CExprIdentifierData *Expr)
 
bool uLang::IsClassMemberAccess (const CExprIdentifierData *Expr)
 
template<typename TOut , typename TIn , typename Traits = TAsNullableTraitsOf<TIn, TOut>>
Traits::TResult uLang::AsNullable (TIn Expr)
 
const charuLang::AsStringLiteral (EAstNodeType Node)
 
const CExprInvocationuLang::AsSubscriptCall (const CExpressionBase *Expr, const CSemanticProgram &Program)
 
const CExpressionBaseuLang::RemoveSubscripts (const CExpressionBase *Expr, const CSemanticProgram &Program)
 

Macro Definition Documentation

◆ FORWARD_DECLARE

#define FORWARD_DECLARE (   _,
  Class 
)    class Class;

◆ UE_API

#define UE_API   VERSECOMPILER_API

◆ VERSE_VISIT_AST_NODE_TYPES

#define VERSE_VISIT_AST_NODE_TYPES (   v)

◆ VISIT_AST_NODE_TYPE [1/3]

#define VISIT_AST_NODE_TYPE (   Name,
  Class 
)    Name,

◆ VISIT_AST_NODE_TYPE [2/3]

#define VISIT_AST_NODE_TYPE (   Name,
  Class 
)
Value:
if constexpr (std::is_same_v<TOut, Class>) \
{ \
if (Expr && Expr->GetNodeType() == EAstNodeType::Name) \
{ \
return Traits::Cast(Expr); \
} \
}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

◆ VISIT_AST_NODE_TYPE [3/3]

#define VISIT_AST_NODE_TYPE (   Name,
  Class 
)    if (Node == EAstNodeType::Name) { return #Name; }