Base class exported by the main module ALib.Expressions.H for technical reasons.
ExpressionVal & expression
The expression that this program evaluates.
ALIB_DLL void AssembleUnaryOp(String &op, integer idxInOriginal, integer idxInNormalized)
int qtyOptimizations
Counter of the number of optimization made during program assembly.
ALIB_DLL void AssembleFinalize()
StdVectorMono< Expression > ctNestedExpressions
VirtualMachine VM
Shortcut.
ALIB_DLL const Box & ResultType() const
ALIB_DLL void AssembleFunction(AString &functionName, bool isIdentifier, int qtyArgs, integer idxInOriginal, integer idxInNormalized)
ALIB_DLL void AssembleBinaryOp(String &op, integer idxInOriginal, integer idxInNormalized)
ALIB_DLL void AssembleCondFinalize_Q(integer idxInOriginal, integer idxInNormalized)
ALIB_DLL Program(Compiler &pCompiler, ExpressionVal &pExpression, MonoAllocator *ctAlloc)
VM::Command & At(VM::PC pc)
ALIB_DLL void AssembleConstant(Box &value, integer idxInOriginal, integer idxInNormalized)
Compiler & compiler
The compiler that created this object.
ALIB_DLL void AssembleCondFinalize_F(integer idxInOriginal, integer idxInNormalized)
CompileStorage * compileStorage
ALIB_DLL ~Program()
Destructor.
ALIB_DLL bool collectArgs(integer qty)
integer commandsCount
The number of commands.
VM::Command * commands
The array of commands.
ALIB_DLL void AssembleCondFinalize_T(integer idxInOriginal, integer idxInNormalized)
int CtdOptimizations() const
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace alib.
std::vector< T, SCAMono< T > > StdVectorMono
Type alias in namespace alib.
lang::integer integer
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
boxing::Box Box
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
containers::List< TAllocator, T, TRecycling > List
Type alias in namespace alib.
Compile-time information on conditional operator jump positions.
VM::PC QJumpPos
The position of the lhs result.
VM::PC TJumpPos
The position of the jump command between T and F.
StdVectorMono< VM::PC > ResultStack
StdVectorMono< VirtualMachine::Command * > Assembly
CompileStorage(MonoAllocator &compileTimeAllocator)
List< MonoAllocator, String > FunctionsWithNonMatchingArguments
StdVectorMono< ConditionalInfo > ConditionalStack
static ALIB_DLL alib::Box Run(Program &program, Scope &scope)
integer PC
Type definition for a program counter.