Data needed during compilation. An instance of this object is allocated in the temporary compile-time monotonic allocator.
Definition at line 67 of file program.hpp.
#include <program.hpp>
Inner Type Index: | |
struct | ConditionalInfo |
Compile-time information on conditional operator jump positions. More... | |
Public Field Index: | |
StdVectorMono< VirtualMachine::Command * > | Assembly |
StdVectorMono< ConditionalInfo > | ConditionalStack |
List< MonoAllocator, String > | FunctionsWithNonMatchingArguments |
StdVectorMono< VM::PC > | ResultStack |
Public Method Index: | |
CompileStorage (MonoAllocator &compileTimeAllocator) | |
StdVectorMono<VirtualMachine::Command*> Assembly |
The intermediate program listing. Commands are collected here during compilation. Only when finalized, the result is copied into the vector that the outer class program inherits from, which uses the non-temporary monotonic allocator.
Definition at line 73 of file program.hpp.
StdVectorMono<ConditionalInfo> ConditionalStack |
Stores the positions of current results while adding new commands. The third value is used for optimizing constant conditionals out.
Definition at line 98 of file program.hpp.
List<MonoAllocator, String> FunctionsWithNonMatchingArguments |
Needed during compilation. Collects information from plug-ins to create meaningful messages.
Definition at line 102 of file program.hpp.
StdVectorMono<VM::PC> ResultStack |
Used with compilation. Stores the positions of current result types while adding new commands.
Definition at line 77 of file program.hpp.
|
inline |
Constructor.
The given allocator is used exclusively during compilation. Its memory is cleared (respectively reset to a previous state) after the compilation completed. The program is created in this allocator. Only when compilation is finished (and after all optimizations have been performed) it is copied to the compile-time scope's allocator.
(Refers to object Compiler::allocator.)
compileTimeAllocator | The allocator to use temporarily during compilation. |
Definition at line 113 of file program.hpp.