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

Go to the source code of this file.

Classes

struct  uLang::LocusDistanceResult
 This is used as a helper struct for storing the result of a signed distance check. More...
 
struct  Verse::Vst::NodeInfo
 
struct  Verse::Vst::Node
 
struct  Verse::Vst::Clause
 
class  Verse::Vst::CAtom
 
struct  Verse::Vst::Comment
 
struct  Verse::Vst::Snippet
 
struct  Verse::Vst::Module
 
struct  Verse::Vst::Package
 
struct  Verse::Vst::Project
 
struct  Verse::Vst::Definition
 
struct  Verse::Vst::Assignment
 
struct  Verse::Vst::FlowIf
 
struct  Verse::Vst::BinaryOpLogicalOr
 
struct  Verse::Vst::BinaryOpLogicalAnd
 
struct  Verse::Vst::PrefixOpLogicalNot
 
struct  Verse::Vst::BinaryOpCompare
 
struct  Verse::Vst::Where
 
struct  Verse::Vst::Mutation
 
struct  Verse::Vst::TypeSpec
 
struct  Verse::Vst::Identifier
 
struct  Verse::Vst::Operator
 
struct  Verse::Vst::BinaryOp
 
struct  Verse::Vst::BinaryOpAddSub
 
struct  Verse::Vst::BinaryOpMulDivInfix
 
struct  Verse::Vst::BinaryOpRange
 
struct  Verse::Vst::BinaryOpArrow
 
struct  Verse::Vst::PrePostCall
 
struct  Verse::Vst::IntLiteral
 
struct  Verse::Vst::FloatLiteral
 
struct  Verse::Vst::CharLiteral
 
struct  Verse::Vst::StringLiteral
 
struct  Verse::Vst::PathLiteral
 
struct  Verse::Vst::Interpolant
 
struct  Verse::Vst::InterpolatedString
 
struct  Verse::Vst::Lambda
 
struct  Verse::Vst::Control
 
struct  Verse::Vst::Macro
 
struct  Verse::Vst::Parens
 
struct  Verse::Vst::Commas
 
struct  Verse::Vst::Placeholder
 
struct  Verse::Vst::ParseError
 
struct  Verse::Vst::Escape
 
struct  Verse::SPathToNode
 

Namespaces

namespace  Verse
 
namespace  Verse::Vst
 
namespace  uLang
 

Macros

#define UE_API   VERSECOMPILER_API
 
#define VISIT_VSTNODE(NodeName, RequiredChildren, SupportsManyChildren, Precedence, ChildDeletionBehavior, IsCAtom)   NodeName,
 
#define VISIT_VSTNODE(NodeName, RequiredChildren, Precedence, SupportsManyChildren, ChildDeletionBehavior, IsCAtom)   {#NodeName, RequiredChildren, Precedence, ESupportsManyChildren::SupportsManyChildren, EChildDeletionBehavior::ChildDeletionBehavior, IsCAtom},
 
#define VISIT_VSTNODE(NodeName, RequiredChildren, SupportsManyChildren, Precedence, ChildDeletionBehavior, IsCAtom)
 
#define VISIT_VSTNODE(NodeName, RequiredChildren, SupportsManyChildren, Precedence, ChildDeletionBehavior, IsCAtom)   static_assert(NodeName::StaticType == NodeType::NodeName, #NodeName "::StaticType must be Vst::NodeType::" #NodeName);
 

Typedefs

using Verse::string = uLang::CUTF8String
 
using Verse::CUTF8String = uLang::CUTF8String
 
using Verse::CUTF8StringView = uLang::CUTF8StringView
 
using Verse::CUTF8StringBuilder = uLang::CUTF8StringBuilder
 
using Verse::SIndexedSourceText = uLang::SIndexedSourceText
 
using Verse::ChType = uLang::UTF8Char
 
template<typename T >
using Verse::TSPtr = uLang::TSPtr< T >
 
template<typename T >
using Verse::TSRef = uLang::TSRef< T >
 
template<typename T >
using Verse::LArray = uLang::TArray< T >
 
using Verse::EResult = uLang::EResult
 
using Verse::CSharedMix = uLang::CSharedMix
 
using Verse::SLocus = uLang::STextRange
 
using Verse::SPosition = uLang::STextPosition
 
using Verse::EVerseScope = uLang::EVerseScope
 
using Verse::Vst::NodeArray = Node::NodeArray
 
using Verse::Vst::ClauseArray = LArray< TSRef< Clause > >
 

Enumerations

enum class  Verse::Vst::EChildDeletionBehavior : uint8_t { Verse::Vst::CreatePlaceholder , Verse::Vst::Delete , Verse::Vst::Default }
 
enum class  Verse::Vst::ESupportsManyChildren : uint8_t { Verse::Vst::Anywhere , Verse::Vst::TrailingOnly , Verse::Vst::Nowhere }
 
enum class  Verse::Vst::NodeType : uint8_t
 
enum class  Verse::EPrettyPrintBehaviour : uint32_t {
  Verse::Default = 0 , Verse::NewlinesAfterDefinitions = 1 << 0 , Verse::NewlinesAfterAttributes = 1 << 1 , Verse::NewlinesBetweenModuleMembers = 1 << 2 ,
  Verse::UseVerticalFormForEnumerations = 1 << 3
}
 

Functions

ULANG_FORCEINLINE SLocus Verse::NullWhence ()
 
ULANG_FORCEINLINE const charVerse::Vst::GetNodeTypeName (const NodeType TypeOfNode)
 
ULANG_FORCEINLINE int32_t Verse::Vst::GetNumRequiredChildren (const NodeType TypeOfNode)
 
ULANG_FORCEINLINE int32_t Verse::Vst::GetOperatorPrecedence (const NodeType TypeOfNode)
 
ULANG_FORCEINLINE ESupportsManyChildren Verse::Vst::GetSupportsManyChildren (const NodeType TypeOfNode)
 
ULANG_FORCEINLINE EChildDeletionBehavior Verse::Vst::GetChildDeletionBehavior (const NodeType TypeOfNode)
 
const charVerse::Vst::AssignmentOpAsCString (Assignment::EOp Op)
 
const charVerse::Vst::BinaryCompareOpAsCString (BinaryOpCompare::op Op)
 
BinaryOpCompare::op Verse::Vst::BinaryCompareOpFlip (BinaryOpCompare::op Op)
 
 Verse::ULANG_ENUM_BIT_FLAGS (EPrettyPrintBehaviour, inline)
 
void Verse::VstAsCodeSourceAppend (const TSRef< Vst::Node > &VstNode, uLang::CUTF8StringBuilder &Source)
 
void Verse::VstAsCodeSourceAppend (const TSRef< Vst::Node > &VstNode, const EPrettyPrintBehaviour Flags, uLang::CUTF8StringBuilder &Source)
 
void Verse::VstAsCodeSourceAppend (const TSRef< Vst::PrePostCall > &VstNode, uLang::CUTF8StringBuilder &Source, int32_t First, int32_t Last)
 
void Verse::VstAsCodeSourceAppend (const TSRef< Vst::Clause > &VstClause, CUTF8StringBuilder &Source, int32_t InitialIndent, CUTF8String const &Separator)
 
ULANG_FORCEINLINE CUTF8String Verse::PrettyPrintVst (const TSRef< Vst::Node > &VstNode)
 
ULANG_FORCEINLINE CUTF8String Verse::PrettyPrintVst (const TSRef< Vst::Node > &VstNode, const EPrettyPrintBehaviour Flags)
 
ULANG_FORCEINLINE CUTF8String Verse::PrettyPrintVst (const TSRef< Vst::PrePostCall > &VstNode, int32_t FirstChildIndex, int32_t LastChildIndex)
 
ULANG_FORCEINLINE CUTF8String Verse::PrettyPrintClause (const TSRef< Vst::Clause > &VstClause, int32_t InitialIndent, CUTF8String const &Separator)
 
bool Verse::GeneratePathToNode (const TSRef< Vst::Node > &Node, const TSRef< Vst::Snippet > &VstSnippet, SPathToNode &PathToNode)
 
TSPtr< Vst::NodeVerse::GetNodeFromPath (const TSRef< Vst::Snippet > &VstSnippet, const SPathToNode &PathData, bool bReturnParent)
 
int32_t Verse::GetSignedDistanceBetweenPositionAndLocus (const SLocus &A, const SPosition &B, const uLang::SIndexedSourceText &SourceText)
 

Variables

constexpr struct Verse::Vst::NodeInfo Verse::Vst::NodeInfos []
 

Macro Definition Documentation

◆ UE_API

#define UE_API   VERSECOMPILER_API

◆ VISIT_VSTNODE [1/4]

#define VISIT_VSTNODE (   NodeName,
  RequiredChildren,
  Precedence,
  SupportsManyChildren,
  ChildDeletionBehavior,
  IsCAtom 
)    {#NodeName, RequiredChildren, Precedence, ESupportsManyChildren::SupportsManyChildren, EChildDeletionBehavior::ChildDeletionBehavior, IsCAtom},

◆ VISIT_VSTNODE [2/4]

#define VISIT_VSTNODE (   NodeName,
  RequiredChildren,
  SupportsManyChildren,
  Precedence,
  ChildDeletionBehavior,
  IsCAtom 
)    NodeName,

◆ VISIT_VSTNODE [3/4]

#define VISIT_VSTNODE (   NodeName,
  RequiredChildren,
  SupportsManyChildren,
  Precedence,
  ChildDeletionBehavior,
  IsCAtom 
)
Value:
case Vst::NodeType::NodeName: \
return visit_policy.visit(node->As<Vst::NodeName>()); \
break;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

◆ VISIT_VSTNODE [4/4]

#define VISIT_VSTNODE (   NodeName,
  RequiredChildren,
  SupportsManyChildren,
  Precedence,
  ChildDeletionBehavior,
  IsCAtom 
)    static_assert(NodeName::StaticType == NodeType::NodeName, #NodeName "::StaticType must be Vst::NodeType::" #NodeName);