74 explicit SO(
bool p_exec ) :
exec_(p_exec) {}
87 SO & operator=(
const SO & ) =
delete;
88 SO & operator=(
SO && ) =
delete;
116 [[nodiscard]]
virtual SO *
dup()
const = 0;
153 virtual std::string
type()
const = 0;
207 return "--nostringval--";
Counter base class.
Definition counter.h:30
Design by contract interface class.
Definition dbc.h:30
Semantic Object.
Definition so.h:60
virtual bool equal(const SO *) const =0
Checks if this SO is equal to another SO.
void setExec(bool p_exec)
Setter for exec_.
Definition so.h:99
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.
virtual std::string opequalequal() const
String representation for operators '==' and 'pstack'.
Definition so.h:139
virtual ~SO()
Virtual dtor.
Definition so.h:83
virtual std::string opequal() const =0
String representation of object for operators '=', 'cvs' and 'stack'.
virtual bool ge(OpError &p_ec, const SO *) const
Greater or equal.
Definition so.h:185
virtual OTCode ot() const =0
Returns an OTCode.
bool getExec() const
Getter for exec_.
Definition so.h:93
SO(bool p_exec)
Ctor.
Definition so.h:74
SO(const SO &p_other)
Copy ctor.
Definition so.h:78
SO()
Ctor.
Definition so.h:69
virtual SO * clone() const
Creates a new instance as copy with deep cloning.
Definition so.h:124
virtual bool gt(OpError &p_ec, const SO *) const
Greater than.
Definition so.h:174
bool exec_
Flag indicating whether the SO is executable (true) or literal (false).
Definition so.h:64
virtual size_t getSize() const
Returns the size of the SO.
Definition so.h:108
Composite Semantic Object.
Definition so.h:198
std::string opequal() const override
String representation of object for operators '=', 'cvs' and 'stack'.
Definition so.h:206
virtual size_t treeheight(size_t p_myheigth) const
Tree Height.
Definition so.h:223
Helpers for design by contract idioms.
OpError
Operator error code enum.
Definition error.h:30
@ typecheck
operator error typecheck
Definition error.h:36
Miscellaneous definitions and functions.
OTCode
OTCode - the Object Type Code.
Definition so.h:35
@ X
any SO. Is used by checks to represent any object.