API Reference

The API Reference is spit into Three parts and Compiler and RunTime.

Every thing in UCodeLang in UCodeLang NameSpace

namespace UC = UCodeLang;

Compilation

Types related to compiling and its Output.

NameTypeDescription
CompilerClassThe UCodeLang Compiler.
ModuleFileClassThe UCodeLang Compiler Module System.
UClibClassThe UCodeLang Compiler Output.
UCodeBackEndClassThe BackEnd for the UCodeInterpreter.
C11BackEndClassThe BackEnd to output C Code.
WasmBackEndClassThe BackEnd targeting Wasm.

RunTime

Types related to The UCodeVM/RunTime.

NameTypeDescription
RunTimeLibClassThe BackEnd to output C Code.
UCodeRunTimeClassThe Core UCodeLang Runtime.
AnyInterpreterClassA wapper over Interpreter,JitInterpreter and NativeInterpreter.
InterpreterClassThe Default Interpreter.
JitInterpreterClassThe Jit Interpreter.
NativeInterpreterClassRuns Precompiled Native Code.
IOLinkClassAdds CppCalls for direct access to the file system,network and other IO.
SandBoxedIOLinkClassAdds CppCalls for SandBoxed direct access to the file system,network and other IO.
UtilityLinkClassAdds CppCalls for everything else that doesn't fit in IO.

Analysis

Types related to The Analyzing UCodeLang ,UCodeLang Output or its Runtime.

NameTypeDescription
ReflectionVectorClassLets you use UCodeLang Vectors in a Easy Way.
ReflectionStringClassLets you use UCodeLang Strings in a Easy Way.

Core

Basic types that UCodeLang Uses stop isn't part of C++17 standard Library. | Name | Type | Description | |--- | --- | --- | Result | Generic class | A type holding a returned value or an error code. NeverNullPtr | Generic class | A pointer that should never be null. NullablePtr | Generic class | A pointer that could be null. Variant | Generic class | A wapper over std::variant give it more functions. Span | Generic class | A contiguous sequence of objects

C API

UCodeLang Has a C API for using UCodeLang in Programming Languages other than C++.

Notes

Many more classes and funcions can be found in UCodeLang but may change may change on a whim its recommended not to used those them if its not documented here.