Navigation
API > API/Runtime > API/Runtime/VerseCompiler
Compiler+Linker toolchain The compiler toolchain, which has five stages of compilation. It's structured as a layered, multi-stage compiler API. Each stage is interchangeable, which means the frontend and the backend are retargetable.
This class needs to be assembled by the Toolchain Loader, which uses the Modular Features to find a module or modules that implement the five stages of the compiler. This also lets the user mix in various optimizing passes (post-Vst filters), or bytecode packing (post-expression filters) from any source.
| Name | CToolchain |
| Type | class |
| Header File | /Engine/Source/Runtime/VerseCompiler/Public/uLang/Toolchain/Toolchain.h |
| Include Path | #include "uLang/Toolchain/Toolchain.h" |
Syntax
class CToolchain : public uLang::CSharedMix
Inheritance Hierarchy
- CSharedMix → CToolchain
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
CToolchain
(
const SToolchainParams& Params |
uLang/Toolchain/Toolchain.h |
Structs
| Name | Remarks |
|---|---|
| SOrderedPackage |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| _LocalizationInfo | TArray< FSolLocalizationInfo > | Localization and string information stored here. | uLang/Toolchain/Toolchain.h | |
| _Params | SToolchainParams | uLang/Toolchain/Toolchain.h | ||
| _ProjectVst | TSPtr< Verse::Vst::Project > | uLang/Toolchain/Toolchain.h | ||
| _StringInfo | TArray< FSolLocalizationInfo > | uLang/Toolchain/Toolchain.h | ||
| TSRef< CToolchain > | friend | uLang/Toolchain/Toolchain.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
ECompilerResult AssembleProgram
(
const TSRef< CSemanticProgram >& Program, |
Run semantic analysis and code generation on a given Vst snippet Steps: | uLang/Toolchain/Toolchain.h | |
SBuildResults BuildProject
(
const CSourceProject& SourceProject, |
Compile and link all text snippets in the given project | uLang/Toolchain/Toolchain.h | |
ECompilerResult CompileVst
(
const TSRef< Verse::Vst::Project >& Vst, |
Run SemanticAnalyzeVst and AssembleProgram on an Vst. | uLang/Toolchain/Toolchain.h | |
ECompilerResult ExtractLocalization
(
const TSRef< CSemanticProgram >& Program, |
Extract localization information. | uLang/Toolchain/Toolchain.h | |
const TOptional< TSRef< IAssemblerPass > > & GetAssembler() |
uLang/Toolchain/Toolchain.h | ||
const TOptional< TSRef< IParserPass > > & GetParser () |
Accessors for the various stages of the compiler. | uLang/Toolchain/Toolchain.h | |
const TSRefArray< IPostIrFilter > & GetPostIrFilters() |
uLang/Toolchain/Toolchain.h | ||
const TSRefArray< IPostSemanticAnalysisFilter > & GetPostSemanticAnalysisFilters() |
uLang/Toolchain/Toolchain.h | ||
const TSRefArray< IPostVstFilter > & GetPostVstFilters() |
uLang/Toolchain/Toolchain.h | ||
const TSPtr< Verse::Vst::Project > & GetProjectVst() |
uLang/Toolchain/Toolchain.h | ||
const TOptional< TSRef< ISemanticAnalyzerPass > > & GetSemanticAnalyzer() |
uLang/Toolchain/Toolchain.h | ||
ECompilerResult IrGenerateProgram
(
const TSRef< CSemanticProgram >& Program, |
Run IR generation on a given Ast snippet. Steps:IR generation(future lenient analysis) | uLang/Toolchain/Toolchain.h | |
ELinkerResult Link
(
const SBuildContext& BuildContext, |
Run linker (not currently used) | uLang/Toolchain/Toolchain.h | |
ECompilerResult ParseSnippet
(
const uLang::TSRef< Verse::Vst::Snippet >& OutVst, |
Parse a snippet of text and return the resulting Vst snippet Steps: | uLang/Toolchain/Toolchain.h | |
ECompilerResult SemanticAnalyzeVst
(
TOptional< TSRef< CSemanticProgram > >& OutProgram, |
Run semantic analysis on a given Vst snippet Steps: | uLang/Toolchain/Toolchain.h | |
void SetProjectVst
(
const TSRef< Verse::Vst::Project >& NewProject |
Directly sets the cached VST project to the new project specified. | uLang/Toolchain/Toolchain.h | |
TArray< FSolLocalizationInfo > TakeLocalizationInfo() |
Take localization information, i.e, it removes it from this object. | uLang/Toolchain/Toolchain.h | |
TArray< FSolLocalizationInfo > TakeStringInfo() |
Take string information, i.e, it removes it from this object. | uLang/Toolchain/Toolchain.h |