ooRexx  4.2.0-source
About: ooRexx (Open Object Rexx) is a free implementation of Object Rexx. Object Rexx is an enhancement of the classic Rexx interpreter; a full-featured programming language with a human-oriented syntax.
  Fossies Dox: ooRexx-4.2.0-source.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

StackFrameClass Class Reference

#include <StackFrameClass.hpp>

Inheritance diagram for StackFrameClass:
[legend]
Collaboration diagram for StackFrameClass:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *ptr)
 
 StackFrameClass (const char *type, RexxString *name, BaseExecutable *p, RexxObject *target, RexxArray *arguments, RexxString *t, size_t l)
 
 StackFrameClass (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxStringgetType ()
 
RexxStringgetName ()
 
RexxObjectgetExecutable ()
 
RexxObjectgetTarget ()
 
RexxObjectgetLine ()
 
RexxStringgetTraceLine ()
 
RexxArraygetArguments ()
 
RexxSourcegetSourceObject ()
 
virtual RexxStringmakeString ()
 
virtual RexxStringstringValue ()
 
RexxObjectnewRexx (RexxObject **args, size_t argc)
 
- Public Member Functions inherited from RexxObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t)
 
void * operator new (size_t size, void *objectPtr)
 
void operator delete (void *, void *)
 
void operator delete (void *)
 
void operator delete (void *, RexxClass *)
 
void operator delete (void *, RexxClass *, RexxObject **, size_t)
 
RexxObjectnewRexx (RexxObject **arguments, size_t argCount)
 
RexxObjectnewObject ()
 
 operator RexxInternalObject * ()
 
 RexxObject ()
 
 RexxObject (RESTORETYPE restoreType)
 
void initializeNewObject (size_t size, size_t mark, void *vft, RexxBehaviour *b)
 
void initializeNewObject (size_t mark, void *vft, RexxBehaviour *b)
 
virtual ~RexxObject ()
 
virtual RexxObjectdefMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
virtual RexxStringdefaultName ()
 
virtual RexxObjectunknown (RexxString *msg, RexxArray *args)
 
virtual RexxIntegerhasMethod (RexxString *msg)
 
bool hasUninitMethod ()
 
RexxObjectinit ()
 
void uninit ()
 
RexxObjectcopy ()
 
HashCode hash ()
 
bool truthValue (int)
 
virtual bool logicalValue (logical_t &)
 
virtual bool numberValue (wholenumber_t &result, size_t precision)
 
virtual bool numberValue (wholenumber_t &result)
 
virtual bool unsignedNumberValue (stringsize_t &result, size_t precision)
 
virtual bool unsignedNumberValue (stringsize_t &result)
 
virtual bool doubleValue (double &result)
 
RexxNumberStringnumberString ()
 
RexxIntegerintegerValue (size_t)
 
RexxStringprimitiveMakeString ()
 
void copyIntoTail (RexxCompoundTail *buffer)
 
RexxArraymakeArray ()
 
RexxStringrequestString ()
 
RexxStringrequestStringNoNOSTRING ()
 
RexxIntegerrequestInteger (size_t)
 
bool requestNumber (wholenumber_t &, size_t)
 
bool requestUnsignedNumber (stringsize_t &, size_t)
 
RexxArrayrequestArray ()
 
RexxStringrequiredString (size_t)
 
RexxStringrequiredString (const char *)
 
RexxStringrequiredString ()
 
RexxIntegerrequiredInteger (size_t, size_t)
 
wholenumber_t requiredNumber (size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredPositive (size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredNonNegative (size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
bool isEqual (RexxObject *)
 
bool isInstanceOf (RexxClass *)
 
RexxObjectisInstanceOfRexx (RexxClass *)
 
RexxMethodinstanceMethod (RexxString *)
 
RexxSupplierinstanceMethods (RexxClass *)
 
RexxMethodinstanceMethodRexx (RexxString *)
 
RexxSupplierinstanceMethodsRexx (RexxClass *)
 
RexxStringobjectName ()
 
RexxObjectobjectNameEquals (RexxObject *)
 
RexxClassclassObject ()
 
RexxObjectsetMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
RexxObjectunsetMethod (RexxString *)
 
RexxObjectrequestRexx (RexxString *)
 
RexxMessagestart (RexxObject **, size_t)
 
RexxMessagestartWith (RexxObject *, RexxArray *)
 
RexxObjectsend (RexxObject **, size_t)
 
RexxObjectsendWith (RexxObject *, RexxArray *)
 
RexxMessagestartCommon (RexxObject *message, RexxObject **arguments, size_t argCount)
 
RexxStringoref ()
 
RexxObjectpmdict ()
 
RexxObjectrun (RexxObject **, size_t)
 
void messageSend (RexxString *, RexxObject **, size_t, ProtectedObject &)
 
void messageSend (RexxString *, RexxObject **, size_t, RexxObject *, ProtectedObject &)
 
RexxMethodcheckPrivate (RexxMethod *)
 
void processUnknown (RexxString *, RexxObject **, size_t, ProtectedObject &)
 
void processProtectedMethod (RexxString *, RexxMethod *, RexxObject **, size_t, ProtectedObject &)
 
void sendMessage (RexxString *, RexxArray *, ProtectedObject &)
 
void sendMessage (RexxString *message, ProtectedObject &result)
 
void sendMessage (RexxString *message, RexxObject **args, size_t argCount, ProtectedObject &result)
 
void sendMessage (RexxString *message, RexxObject *argument1, ProtectedObject &result)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
RexxObjectsendMessage (RexxString *, RexxArray *)
 
RexxObjectsendMessage (RexxString *message)
 
RexxObjectsendMessage (RexxString *message, RexxObject **args, size_t argCount)
 
RexxObjectsendMessage (RexxString *message, RexxObject *argument1)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectdefMethods (RexxDirectory *)
 
void setObjectVariable (RexxString *, RexxObject *, RexxObject *)
 
RexxObjectgetObjectVariable (RexxString *)
 
RexxObjectgetObjectVariable (RexxString *, RexxObject *)
 
void addObjectVariables (RexxVariableDictionary *)
 
void copyObjectVariables (RexxObject *newObject)
 
RexxObjectsuperScope (RexxObject *)
 
RexxMethodsuperMethod (RexxString *, RexxObject *)
 
RexxObjectmdict ()
 
RexxObjectsetMdict (RexxObject *)
 
RexxBehaviourbehaviourObject ()
 
const char * idString ()
 
RexxStringid ()
 
RexxMethodmethodLookup (RexxString *name)
 
RexxVariableDictionarygetObjectVariables (RexxObject *)
 
void guardOn (RexxActivity *activity, RexxObject *scope)
 
void guardOff (RexxActivity *activity, RexxObject *scope)
 
RexxObjectequal (RexxObject *)
 
RexxObjectnotEqual (RexxObject *other)
 
RexxObjectstrictEqual (RexxObject *)
 
RexxObjectstrictNotEqual (RexxObject *other)
 
RexxIntegeridentityHashRexx ()
 
RexxObjecthashCode ()
 
RexxStringstringRexx ()
 
RexxStringconcatRexx (RexxObject *)
 
RexxStringconcatBlank (RexxObject *)
 
RexxObjectmakeStringRexx ()
 
RexxObjectmakeArrayRexx ()
 
RexxStringdefaultNameRexx ()
 
RexxObjectcopyRexx ()
 
RexxObjectunknownRexx (RexxString *, RexxArray *)
 
RexxObjecthasMethodRexx (RexxString *)
 
void * getCSelf ()
 
void * getCSelf (RexxObject *scope)
 
bool equalValue (RexxObject *other)
 
virtual wholenumber_t compareTo (RexxObject *)
 
 koper (operator_plus) koper(operator_minus) koper(operator_multiply) koper(operator_divide) koper(operator_integerDivide) koper(operator_remainder) koper(operator_power) koper(operator_abuttal) koper(operator_concat) koper(operator_concatBlank) koper(operator_equal) koper(operator_notEqual) koper(operator_isGreaterThan) koper(operator_isBackslashGreaterThan) koper(operator_isLessThan) koper(operator_isBackslashLessThan) koper(operator_isGreaterOrEqual) koper(operator_isLessOrEqual) koper(operator_strictEqual) koper(operator_strictNotEqual) koper(operator_strictGreaterThan) koper(operator_strictBackslashGreaterThan) koper(operator_strictLessThan) koper(operator_strictBackslashLessThan) koper(operator_strictGreaterOrEqual) koper(operator_strictLessOrEqual) koper(operator_lessThanGreaterThan) koper(operator_greaterThanLessThan) koper(operator_and) koper(operator_or) koper(operator_xor) koper(operator_not) RexxVariableDictionary *objectVariables
 
- Public Member Functions inherited from RexxInternalObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *p, void *ptr)
 
 RexxInternalObject ()
 
 RexxInternalObject (RESTORETYPE restoreType)
 
virtual ~RexxInternalObject ()
 
 operator RexxObject * ()
 
size_t getObjectSize ()
 
void setObjectSize (size_t s)
 
size_t getObjectDataSize ()
 
void * getObjectDataSpace ()
 
void clearObject ()
 
void clearObject (size_t l)
 
void setVirtualFunctions (void *t)
 
void setInitHeader (size_t s, size_t markword)
 
void setInitHeader (size_t markword)
 
void setObjectLive (size_t markword)
 
void setHasReferences ()
 
void setHasNoReferences ()
 
bool hasReferences ()
 
bool hasNoReferences ()
 
void setPrimitive ()
 
void setNonPrimitive ()
 
bool isPrimitive ()
 
bool isNonPrimitive ()
 
bool isObjectMarked (size_t markword)
 
void setObjectMark (size_t markword)
 
void clearObjectMark ()
 
bool isObjectLive (size_t mark)
 
bool isObjectDead (size_t mark)
 
bool isOldSpace ()
 
bool isNewSpace ()
 
void setNewSpace ()
 
void setOldSpace ()
 
void makeProxiedObject ()
 
bool isProxyObject ()
 
bool isSubClassOrEnhanced ()
 
bool isBaseClass ()
 
size_t getObjectTypeNumber ()
 
RexxBehaviourgetObjectType ()
 
bool isObjectType (RexxBehaviour *b)
 
bool isObjectType (size_t t)
 
bool isSameType (RexxInternalObject *o)
 
void setBehaviour (RexxBehaviour *b)
 
virtual RexxObjectmakeProxy (RexxEnvelope *)
 
virtual RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

Static Public Member Functions

static void createInstance ()
 
- Static Public Member Functions inherited from RexxObject
static void decodeMessageName (RexxObject *target, RexxObject *message, RexxString *&messageName, RexxObject *&startScope)
 
static void createInstance ()
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Static Public Attributes

static RexxClassclassInstance = OREF_NULL
 
- Static Public Attributes inherited from RexxObject
static PCPPM operatorMethods []
 
static RexxClassclassInstance = OREF_NULL
 

Protected Attributes

const char * type
 
RexxStringname
 
BaseExecutableexecutable
 
RexxObjecttarget
 
RexxArrayarguments
 
size_t line
 
RexxStringtraceLine
 

Additional Inherited Members

- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 59 of file StackFrameClass.hpp.

Constructor & Destructor Documentation

◆ StackFrameClass() [1/2]

StackFrameClass::StackFrameClass ( const char *  ty,
RexxString n,
BaseExecutable e,
RexxObject tg,
RexxArray a,
RexxString t,
size_t  l 
)

Constructor for a RexxContext object.

Parameters
aThe activation we're attached to.

Definition at line 77 of file StackFrameClass.cpp.

References arguments, executable, line, name, OREF_NULL, target, traceLine, and type.

◆ StackFrameClass() [2/2]

StackFrameClass::StackFrameClass ( RESTORETYPE  restoreType)
inline

Definition at line 65 of file StackFrameClass.hpp.

Member Function Documentation

◆ createInstance()

void StackFrameClass::createInstance ( )
static

Create initial bootstrap objects

Definition at line 52 of file StackFrameClass.cpp.

References CLASS_CREATE.

Referenced by RexxMemory::createImage().

◆ flatten()

void StackFrameClass::flatten ( RexxEnvelope envelope)
virtual

Reimplemented from RexxObject.

Definition at line 139 of file StackFrameClass.cpp.

References cleanUpFlatten, OREF_NULL, and setUpFlatten.

◆ getArguments()

RexxArray * StackFrameClass::getArguments ( )

Return an array of arguments to the current activation.

Returns
An array of arguments. Returns an empty array if no arguments.

Definition at line 229 of file StackFrameClass.cpp.

References arguments, new_array(), and OREF_NULL.

Referenced by RexxMemory::createImage().

◆ getExecutable()

RexxObject * StackFrameClass::getExecutable ( )

Return the stack frame current line position.

Returns
The current line number of the context.

Definition at line 197 of file StackFrameClass.cpp.

References executable, OREF_NULL, and TheNilObject.

Referenced by RexxMemory::createImage().

◆ getLine()

RexxObject * StackFrameClass::getLine ( )

Return the execution context current line position.

Returns
The current line number of the context.

Definition at line 211 of file StackFrameClass.cpp.

References line, new_integer(), and TheNilObject.

Referenced by RexxMemory::createImage(), and RexxActivity::generateProgramInformation().

◆ getName()

RexxString * StackFrameClass::getName ( )

Return the name used to invoke the executable

Returns
The message or routine name (or program name, for a top-level invocation

Definition at line 174 of file StackFrameClass.cpp.

References name.

Referenced by RexxMemory::createImage().

◆ getSourceObject()

RexxSource * StackFrameClass::getSourceObject ( )

Get the source object associated with the stack frame.

Returns
The Source object instance for the stack frame.

Definition at line 247 of file StackFrameClass.cpp.

References executable, BaseExecutable::getSourceObject(), and OREF_NULL.

◆ getTarget()

RexxObject * StackFrameClass::getTarget ( )

Get the message target if this is a method call.

Returns
The target object, or .nil if this stack frame is not for a method call.

Definition at line 263 of file StackFrameClass.cpp.

References OREF_NULL, target, and TheNilObject.

Referenced by RexxMemory::createImage().

◆ getTraceLine()

RexxString * StackFrameClass::getTraceLine ( )

Return a trace line for this stack frame

Returns
The message or routine name (or program name, for a top-level invocation

Definition at line 186 of file StackFrameClass.cpp.

References traceLine.

Referenced by RexxMemory::createImage(), RexxActivity::generateProgramInformation(), makeString(), and stringValue().

◆ getType()

RexxString * StackFrameClass::getType ( )

Return the frame type used to invoke the executable

Returns
The string name of the frame type.

Definition at line 162 of file StackFrameClass.cpp.

References new_string(), and type.

Referenced by RexxMemory::createImage().

◆ live()

void StackFrameClass::live ( size_t  liveMark)
virtual

Reimplemented from RexxObject.

Definition at line 113 of file StackFrameClass.cpp.

References arguments, executable, memory_mark, name, target, and traceLine.

◆ liveGeneral()

void StackFrameClass::liveGeneral ( int  reason)
virtual

Reimplemented from RexxObject.

Definition at line 126 of file StackFrameClass.cpp.

References arguments, executable, memory_mark_general, name, target, and traceLine.

◆ makeString()

RexxString * StackFrameClass::makeString ( )
virtual

Default makestring method override

Returns
The trace line

Reimplemented from RexxObject.

Definition at line 287 of file StackFrameClass.cpp.

References getTraceLine().

◆ newRexx()

RexxObject * StackFrameClass::newRexx ( RexxObject **  args,
size_t  argc 
)

The Rexx accessible class NEW method. This raises an error because StackFrame objects can only be created by the internal interpreter.

Parameters
argsThe NEW args
argcThe count of arguments
Returns
Never returns.

Definition at line 105 of file StackFrameClass.cpp.

References Error_Unsupported_new_method, reportException(), and TheNilObject.

Referenced by RexxMemory::createImage().

◆ operator new() [1/2]

void* StackFrameClass::operator new ( size_t  size,
void *  ptr 
)
inline

Definition at line 63 of file StackFrameClass.hpp.

◆ operator new() [2/2]

void * StackFrameClass::operator new ( size_t  size)

Allocate a new RexxContext object

Parameters
sizeThe size of the object.
Returns
The newly allocated object.

Definition at line 65 of file StackFrameClass.cpp.

References new_object(), and T_StackFrame.

◆ stringValue()

RexxString * StackFrameClass::stringValue ( )
virtual

Default string method override

Returns
The trace line

Reimplemented from RexxObject.

Definition at line 277 of file StackFrameClass.cpp.

References getTraceLine().

Member Data Documentation

◆ arguments

RexxArray* StackFrameClass::arguments
protected

Definition at line 92 of file StackFrameClass.hpp.

Referenced by getArguments(), live(), liveGeneral(), and StackFrameClass().

◆ classInstance

RexxClass * StackFrameClass::classInstance = OREF_NULL
static

Definition at line 72 of file StackFrameClass.hpp.

◆ executable

BaseExecutable* StackFrameClass::executable
protected

◆ line

size_t StackFrameClass::line
protected

Definition at line 93 of file StackFrameClass.hpp.

Referenced by getLine(), and StackFrameClass().

◆ name

RexxString* StackFrameClass::name
protected

Definition at line 89 of file StackFrameClass.hpp.

Referenced by getName(), live(), liveGeneral(), and StackFrameClass().

◆ target

RexxObject* StackFrameClass::target
protected

Definition at line 91 of file StackFrameClass.hpp.

Referenced by getTarget(), live(), liveGeneral(), and StackFrameClass().

◆ traceLine

RexxString* StackFrameClass::traceLine
protected

Definition at line 94 of file StackFrameClass.hpp.

Referenced by getTraceLine(), live(), liveGeneral(), and StackFrameClass().

◆ type

const char* StackFrameClass::type
protected

Definition at line 88 of file StackFrameClass.hpp.

Referenced by getType(), and StackFrameClass().


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