Navigation
API > API/Runtime > API/Runtime/VerseCompiler > API/Runtime/VerseCompiler/uLang > API/Runtime/VerseCompiler/uLang/Toolchain
Inheritance Hierarchy
- CSharedMix
- CToolchain
References
| Module | VerseCompiler |
| Header | /Engine/Source/Runtime/VerseCompiler/Public/uLang/Toolchain/Toolchain.h |
| Include | #include "uLang/Toolchain/Toolchain.h" |
Syntax
class CToolchain : public uLang::CSharedMix
Remarks
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.
Constructors
No constructors are accessible with public or protected access.
Functions
| Type | Name | Description | |
|---|---|---|---|
| ECompilerResult | AssembleProgram
(
const TSRef< CSemanticProgram >& Program, |
Run semantic analysis and code generation on a given Vst snippet Steps: | |
| SBuildResults | BuildProject
(
const CSourceProject& SourceProject, |
Compile and link all text snippets in the given project | |
| ECompilerResult | CompileVst
(
const TSRef< Verse::Vst::Project >& Vst, |
Run SemanticAnalyzeVst and AssembleProgram on an Vst. | |
| ECompilerResult | ExtractLocalization
(
const TSRef< CSemanticProgram >& Program, |
Extract localization information. | |
| const TOptional< TSRef< IAssemblerPass > > & | GetAssembler () |
||
| const TOptional< TSRef< IParserPass > > & | GetParser () |
Accessors for the various stages of the compiler. | |
| const TSRefArray< IPostIrFilter > & | |||
| const TSRefArray< IPostSemanticAnalysisFilter > & | |||
| const TSRefArray< IPostVstFilter > & | |||
| const TSPtr< Verse::Vst::Project > & | |||
| const TOptional< TSRef< ISemanticAnalyzerPass > > & | |||
| ECompilerResult | IrGenerateProgram
(
const TSRef< CSemanticProgram >& Program, |
Run IR generation on a given Ast snippet. Steps:IR generation(future lenient analysis) | |
| ELinkerResult | Link
(
const SBuildContext& BuildContext, |
Run linker (not currently used) | |
| ECompilerResult | ParseSnippet
(
const uLang::TSRef< Verse::Vst::Snippet >& OutVst, |
Parse a snippet of text and return the resulting Vst snippet Steps: | |
| ECompilerResult | SemanticAnalyzeVst
(
TOptional< TSRef< CSemanticProgram > >& OutProgram, |
Run semantic analysis on a given Vst snippet Steps: | |
| void | SetProjectVst
(
const TSRef< Verse::Vst::Project >& NewProject |
Directly sets the cached VST project to the new project specified. | |
| TArray< FSolLocalizationInfo > | Take localization information, i.e, it removes it from this object. | ||
| TArray< FSolLocalizationInfo > | Take string information, i.e, it removes it from this object. |