UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SemanticAnalyzerPass.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
// uLang Semantic Analysis Public API
3
4
#pragma once
5
6
#include "
uLang/CompilerPasses/ISemanticAnalyzerPass.h
"
7
#include "
uLang/SemanticAnalyzer/SemanticAnalyzer.h
"
8
9
namespace
uLang
10
{
11
13
class
CSemanticAnalyzerPass
:
public
ISemanticAnalyzerPass
14
{
15
public
:
16
17
~CSemanticAnalyzerPass
()
18
{
19
ULANG_ASSERTF
(!_Context.IsValid(),
"Destructor called without clean up."
);
20
}
21
22
virtual
void
Initialize
(
const
SBuildContext
&
BuildContext
,
const
SProgramContext
&
ProgramContext
)
override
23
{
24
ULANG_ASSERTF
(!_Context.IsValid(),
"Initialize called without a paired clean up."
);
25
_Context =
TUPtr<CSemanticAnalyzer>::New
(
ProgramContext
._Program,
BuildContext
);
26
}
27
28
virtual
void
CleanUp
(
void
)
override
29
{
30
_Context.Reset();
31
}
32
33
//~ Begin ISemanticAnalyzerPass interface
34
virtual
TSRef<CSemanticProgram>
ProcessVst
(
const
Verse::Vst::Project
&
Vst
,
const
ESemanticPass
Pass
)
const override
35
{
36
ULANG_ASSERTF
(_Context.IsValid(),
"ProcessVst called without initializing."
);
37
_Context->ProcessVst(
Vst
,
Pass
);
38
return
_Context->GetSemanticProgram();
39
}
40
//~ End ISemanticAnalyzerPass interface
41
private
:
42
43
TUPtr<CSemanticAnalyzer>
_Context;
44
};
// CSemanticAnalyzerPass
45
46
}
// namespace uLang
EAutomationTestFlags::ProgramContext
@ ProgramContext
ISemanticAnalyzerPass.h
EPathPermissionPrefixResult::Pass
@ Pass
SemanticAnalyzer.h
ULANG_ASSERTF
#define ULANG_ASSERTF(expr, format,...)
Definition
Common.h:290
uLang::CSemanticAnalyzerPass
Converts a CSyntaxProgram to a CSemanticProgram and identifies any semantic issues.
Definition
SemanticAnalyzerPass.h:14
uLang::CSemanticAnalyzerPass::Initialize
virtual void Initialize(const SBuildContext &BuildContext, const SProgramContext &ProgramContext) override
Definition
SemanticAnalyzerPass.h:22
uLang::CSemanticAnalyzerPass::~CSemanticAnalyzerPass
~CSemanticAnalyzerPass()
Definition
SemanticAnalyzerPass.h:17
uLang::CSemanticAnalyzerPass::CleanUp
virtual void CleanUp(void) override
Definition
SemanticAnalyzerPass.h:28
uLang::CSemanticAnalyzerPass::ProcessVst
virtual TSRef< CSemanticProgram > ProcessVst(const Verse::Vst::Project &Vst, const ESemanticPass Pass) const override
Definition
SemanticAnalyzerPass.h:34
uLang::ISemanticAnalyzerPass
Definition
ISemanticAnalyzerPass.h:13
uLang::TSPtrG
Definition
SharedPointer.h:77
uLang::TUPtrG
Definition
UniquePointer.h:15
uLang::TUPtrG::New
static ULANG_FORCEINLINE TUPtrG New(AllocatorArgsType &&... AllocatorArgs, CtorArgsType &&... CtorArgs)
Definition
UniquePointer.h:29
Verse::Vst
Definition
tLang.cpp:1785
uLang
Definition
VVMEngineEnvironment.h:23
uLang::ESemanticPass
ESemanticPass
Definition
SemanticAnalyzerPassUtils.h:7
BuildContext
Definition
DetourTileCache.cpp:72
Verse::Vst::Project
Definition
VstNode.h:1000
uLang::SBuildContext
Definition
CompilerTypes.h:170
uLang::SProgramContext
Definition
CompilerTypes.h:194
Engine
Source
Runtime
VerseCompiler
Public
uLang
SemanticAnalyzer
SemanticAnalyzerPass.h
Generated by
1.9.8