Base class exported by the main module #"F;ALib.Expressions.H" for technical reasons.
ExpressionVal & expression
The expression that this program evaluates.
const Box & ResultType() const
void AssembleUnaryOp(String &op, integer idxInOriginal, integer idxInNormalized)
int qtyOptimizations
Counter of the number of optimization made during program assembly.
VirtualMachine VM
Shortcut.
void AssembleFunction(AString &functionName, bool isIdentifier, int qtyArgs, integer idxInOriginal, integer idxInNormalized)
void AssembleBinaryOp(String &op, integer idxInOriginal, integer idxInNormalized)
void AssembleCondFinalize_Q(integer idxInOriginal, integer idxInNormalized)
Program(Compiler &pCompiler, ExpressionVal &pExpression, MonoAllocator *ctAlloc)
VM::Command & At(VM::PC pc)
void AssembleConstant(Box &value, integer idxInOriginal, integer idxInNormalized)
Compiler & compiler
The compiler that created this object.
StdVectorMA< Expression > ctNestedExpressions
void AssembleCondFinalize_F(integer idxInOriginal, integer idxInNormalized)
CompileStorage * compileStorage
bool collectArgs(integer qty)
integer commandsCount
The number of commands.
VM::Command * commands
The array of commands.
void AssembleCondFinalize_T(integer idxInOriginal, integer idxInNormalized)
int CtdOptimizations() const
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
containers::List< T, MonoAllocator, TRecycling > ListMA
Type alias in namespace alib.
lang::integer integer
Type alias in namespace alib.
boxing::Box Box
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace alib.
std::vector< T, StdMA< T > > StdVectorMA
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.
ListMA< String > FunctionsWithNonMatchingArguments
StdVectorMA< ConditionalInfo > ConditionalStack
CompileStorage(MonoAllocator &compileTimeAllocator)
StdVectorMA< VM::PC > ResultStack
StdVectorMA< VirtualMachine::Command * > Assembly
static alib::Box Run(Program &program, Scope &scope)
integer PC
Type definition for a program counter.