64 explicit SO(
bool p_exec =
false ) :
exec_(p_exec) {}
69 virtual ~SO() =
default;
93 [[nodiscard]]
virtual SO *
dup()
const = 0;
97 [[nodiscard]]
virtual SO *
clone()
const {
123 virtual std::string
type()
const = 0;
143 virtual bool gt(
const SO * )
const {
152 virtual bool ge(
const SO * )
const {
174 return "--nostringval--";
Counter base class.
Definition counter.h:27
Design by contract interface class.
Definition dbc.h:26
Semantic Object.
Definition so.h:58
virtual bool equal(const SO *) const =0
Equality.
void setExec(bool p_exec)
Setter for exec_.
Definition so.h:80
virtual std::string type() const =0
Returns a type name.
virtual SO * dup() const =0
Creates a new instance as copy following the red book definition.
SO(bool p_exec=false)
Ctor.
Definition so.h:64
virtual ~SO()=default
Virtual dtor.
virtual std::string opequalequal() const
For operators '==' and 'pstack'.
Definition so.h:108
virtual std::string opequal() const =0
For operators '=', 'cvs' and 'stack'.
virtual bool ge(const SO *) const
Greater or equal.
Definition so.h:152
virtual OTCode ot() const =0
Returns an OTCode.
virtual bool gt(const SO *) const
Greater than.
Definition so.h:143
bool getExec() const
Getter for exec_.
Definition so.h:74
virtual SO * clone() const
Creates a new instance as copy with deep cloning.
Definition so.h:97
bool exec_
All SOs have executive vs literal attribut.
Definition so.h:59
virtual size_t getSize() const
Getter for the number of characters or number of objects.
Definition so.h:86
Composite Semantic Object.
Definition so.h:165
std::string opequal() const override
For operators '=', 'cvs' and 'stack'.
Definition so.h:173
virtual size_t treeheight(size_t p_myheigth) const
Tree Height.
Definition so.h:189
Helpers for design by contract idioms.
void opErrExit(OpError p_err, const std::string &p_details, const std::source_location p_location)
Operator error message to interpreter cout_ and exit( EC_OPERATOR ).
Definition error.cpp:31
@ typecheck
PS operator error typecheck.
Definition error.h:34
Miscellaneous definitions and functions.
OTCode
OTCode - the Object Type Code.
Definition so.h:33