Kryptostack
Public Member Functions | Private Attributes | List of all members
SOO Class Reference

Semantic Object Operator. More...

#include <sox.h>

Inheritance diagram for SOO:
Inheritance graph
[legend]
Collaboration diagram for SOO:
Collaboration graph
[legend]

Public Member Functions

 SOO (void(*p_f)(Context &), const string &p_s)
 Ctor.
 
public_virtual SOOdup () const override
 Creates a new instance as copy following the PostScript definition. More...
 
string opequal () const override
 For operators '=' and 'stack'. More...
 
OTCode ot () const override
 Returns an OTCode. More...
 
bool equal (const SO *p_other) const override
 Equality. More...
 
public_other void exec (Context &k)
 Call the implementation of the operator.
 
- Public Member Functions inherited from SO
 SO (bool p_exec=false)
 Ctor.
 
virtual ~SO ()
 Virtual dtor. More...
 
public_accessor bool getExec () const
 Getter for exec_.
 
void setExec (bool p_exec)
 Setter for exec_.
 
virtual size_t getSize () const
 Getter for the number of characters or number of objects. More...
 
virtual public_virtual SOdup () const =0
 Creates a new instance as copy following the PostScript definition. More...
 
virtual SOclone () const
 Creates a new instance as copy with deep cloning. More...
 
virtual string opequal () const =0
 For operators '=' and 'stack'. More...
 
virtual string opequalequal (class Context &) const
 For operators '==' and 'pstack'. More...
 
virtual OTCode ot () const =0
 Returns an OTCode. More...
 
virtual bool equal (const SO *p_other) const =0
 Equality. More...
 
- Public Member Functions inherited from Counter< SO >
 Counter ()
 Ctor.
 

Private Attributes

void(* f_ )(Context &)
 The C++ implementation of the operator.
 
string s_
 A name just for representation.
 

Additional Inherited Members

- Static Public Member Functions inherited from Counter< SO >
static int getTotalCounter ()
 Static getter for created objects.
 
static int getAliveCounter ()
 Static getter for objects alive.
 
- Protected Attributes inherited from SO
bool exec_ = false
 All SOs have executive vs. More...
 

Detailed Description

Semantic Object Operator.

The operator object links to the implementation code of an operator. These objects are generated as values in the dictionaries systemdict and kryptodict of the startup configuration of the interpreter.

Member Function Documentation

◆ dup()

public_virtual SOO * SOO::dup ( ) const
inlineoverridevirtual

Creates a new instance as copy following the PostScript definition.

Implements SO.

◆ equal()

bool SOO::equal ( const SO p_other) const
inlineoverridevirtual

Equality.

Equality means: For SOD, share_ptr<> points to the same object.
For SOA, share_ptr<> points to the same object, but empty arrays are equal nonetheless.
SO0 und SOM are always equal.
For SOO and SOo the function pointer must be the same.
Otherwise the value must be the same, even for SOS with shared_ptr<>.

Returns
bool ... true if the SO's are of the same type and equal

Implements SO.

◆ opequal()

string SOO::opequal ( ) const
inlineoverridevirtual

For operators '=' and 'stack'.

Implements SO.

◆ ot()

OTCode SOO::ot ( ) const
inlineoverridevirtual

Returns an OTCode.

A "manual" implementation of polymorphism, where C++-polymorphisms fail

Returns
char ... OTCode of the SO

Implements SO.

Reimplemented in SOo.


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