84 if(
outf_ ==
nullptr )
109 explicit Context(
const std::string & p_inf_name );
229 void print(
const std::string & p_line )
const {
236 void print( std::string_view p_line )
const {
243 void print(
const char * p_line )
const {
The context of execution.
Definition context.h:45
size_t getLoadlevel() const
Getter for load level.
Definition context.h:145
SOK os_
The operand stack.
Definition context.h:48
uint32_t getSeed() const
Getter for seed_.
Definition context.h:177
void stopInterpreterLoop()
Sets run_ to false.
Definition context.h:161
SOK ds_
The dictionary stack.
Definition context.h:50
void decArraynesting()
Decrements array nesting.
Definition context.h:221
uint32_t seed_
Context Property.
Definition context.h:64
void property_statistics() const
Dumps a snapshot of the Context properties to the output file.
Definition context.cpp:257
void print(const char *p_line) const
Wrapper around SOF writestring().
Definition context.h:243
virtual ~Context()
Dtor.
Definition context.cpp:73
bool invariant() const noexcept override
Checks class invariants.
Definition context.h:77
SOK & opst()
Access to the operand stack.
Definition context.h:127
SOF * inf_
Context Property.
Definition context.h:60
void stack_statistics() const
Dumps a snapshot of stacks to the output file.
Definition context.cpp:274
size_t getMaxloadlevel() const
Getter for maximum load level.
Definition context.h:153
auto getAngularUnit() const
Getter for angularunit_.
Definition context.h:169
void status_statistics() const
Dumps a snapshot of the Context state to the output file.
Definition context.cpp:266
void incProclevel()
Increments the procedure level.
Definition context.h:186
bool run_
Control variable for the interpreter loop.
Definition context.h:47
int loadlevel_
The load level is incemented for ever load_exec() call.
Definition context.h:55
void print(const std::string &p_line) const
Wrapper around SOF writestring().
Definition context.h:229
void pstackdump(const SOK &p_stack) const
A dump of a single stack.
Definition context.cpp:243
void incArraynesting()
Increments array nesting.
Definition context.h:214
void setAngularUnit(AngularUnit p_unit)
Setter for angularunit_.
Definition context.h:173
size_t getArraynesting() const
Getter for nesting level.
Definition context.h:149
AngularUnit angularunit_
Context Property.
Definition context.h:62
void decLoadlevel()
Decrements load level.
Definition context.h:207
void print(std::string_view p_line) const
Wrapper around SOF writestring().
Definition context.h:236
static constexpr size_t mindictstack_
Corresponds with the setup in the ctor.
Definition context.h:68
bool getInterpreterLoop() const
Getter for interpreter loop control variable run_.
Definition context.h:157
void setSnapLeonline(const std::string &p_line)
Setter for snapLeonline_.
Definition context.h:165
std::string snapLeonline_
For debugging purposes a copy of the current leon-format line.
Definition context.h:52
int arraynesting_
The nesting level is incemented for every array within an array for the bind operator.
Definition context.h:57
void decProclevel()
Decrements the procedure level.
Definition context.h:193
SOK & exst()
Access to the execution stack.
Definition context.h:132
void setSeed(uint32_t p_seed)
Setter for seed_.
Definition context.h:181
SOK & dist()
Access to the dictionary stack.
Definition context.h:137
void flushoutfile() const
Wrapper around SOF flush().
Definition context.h:249
size_t maxloadlevel_
Context Property.
Definition context.h:63
int proclevel_
The process level is incremented for every '{' on input.
Definition context.h:53
bool readLeonLine(std::string &p_line) const
Wrapper around SOF readLeonLine().
Definition context.h:258
SOF * outf_
Context Property.
Definition context.h:61
size_t getProclevel() const
Getter for procedure level.
Definition context.h:141
static const std::map< const char *, core_t * > systemdictmap_
Maps SON data to SOO data for the systemdict.
Definition context.h:82
void incLoadlevel()
Increments load level.
Definition context.h:200
static const std::map< const char *, core_t * > leodictmap_
Maps SON data to SOO data for the leodict.
Definition context.h:215
SOK es_
The execution stack.
Definition context.h:49
Counter base class.
Definition counter.h:30
Design by contract interface class.
Definition dbc.h:30
Semantic Object File.
Definition sof.h:35
OpError writestring(const std::string &p_data)
Writes to file.
Definition sof.cpp:130
bool isOpen() const
Checks if the file is open.
Definition sof.h:140
OpError flush()
Flushes the file.
Definition sof.cpp:79
bool readLeonLine(std::string &p_str)
Our std::getline( istream, string ) version.
Definition sof.cpp:153
Semantic Object stacK.
Definition sok.h:45
Helpers for design by contract idioms.
#define DBC_INV_RAII(TT)
Defines an instance of the class DbCRAIIassert<>, which calls the invariant()-function at the return ...
Definition dbc.h:93
Miscellaneous definitions and functions.
AngularUnit
Angular Unit for trigonometric functions.
Definition helper.h:101
The class SOF - file object.
The class SOK - semantik object stack.