ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
Inner Classes | Public Fields | Public Methods | List of all members
Program::CompileStorage Struct Reference

#include <program.hpp>

Collaboration diagram for Program::CompileStorage:
[legend]

Class Description

Data needed during compilation. An instance of this object is allocated in the temporary compile-time monotonic allocator.

Definition at line 88 of file program.hpp.

Inner Classes

struct  ConditionalInfo
 

Public Fields

std::vector< VirtualMachine::Command *, StdContMA< VirtualMachine::Command * > > Assembly
 
std::vector< ConditionalInfo, StdContMA< ConditionalInfo > > ConditionalStack
 
List< StringFunctionsWithNonMatchingArguments
 
std::vector< VM::PC, StdContMA< VM::PC > > ResultStack
 

Public Methods

 CompileStorage (MonoAllocator &compileTimeAllocator)
 

Constructor & Destructor Documentation

◆ CompileStorage()

CompileStorage ( MonoAllocator compileTimeAllocator)
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.)

Parameters
compileTimeAllocatorThe allocator to use temporarily during compilation.

Definition at line 145 of file program.hpp.

Member Data Documentation

◆ 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 95 of file program.hpp.

◆ ConditionalStack

std::vector<ConditionalInfo, StdContMA<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 126 of file program.hpp.

◆ FunctionsWithNonMatchingArguments

List<String> FunctionsWithNonMatchingArguments

Needed during compilation. Collects information from plug-ins to create meaningful messages.

Definition at line 132 of file program.hpp.

◆ ResultStack

std::vector<VM::PC,StdContMA<VM::PC> > ResultStack

Used with compilation. Stores the positions of current result types while adding new commands.

Definition at line 100 of file program.hpp.


The documentation for this struct was generated from the following file: