RexxCompoundVariable Class Reference

#include <ExpressionCompoundVariable.hpp>

Inheritance diagram for RexxCompoundVariable:
[legend]

Public Member Functions

void * operator new (size_t, size_t)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *, size_t)
 
void operator delete (void *, void *)
 
 RexxCompoundVariable (RexxString *, RexxString *, size_t, RexxQueue *, size_t)
 
 RexxCompoundVariable (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObject * evaluate (RexxActivation *, RexxExpressionStack *)
 
RexxObject * getValue (RexxActivation *context)
 
RexxObject * getValue (RexxVariableDictionary *context)
 
RexxObject * getRealValue (RexxVariableDictionary *)
 
RexxObject * getRealValue (RexxActivation *)
 
bool exists (RexxActivation *)
 
void set (RexxActivation *, RexxObject *)
 
void set (RexxVariableDictionary *, RexxObject *)
 
void assign (RexxActivation *, RexxExpressionStack *, RexxObject *)
 
void drop (RexxActivation *)
 
void drop (RexxVariableDictionary *)
 
void setGuard (RexxActivation *)
 
void clearGuard (RexxActivation *)
 
void expose (RexxActivation *, RexxExpressionStack *, RexxVariableDictionary *)
 
void procedureExpose (RexxActivation *, RexxActivation *, RexxExpressionStack *)
 
RexxString * variableStem ()
 
void upper (RexxActivation *)
 
RexxString * getName ()
 
- Public Member Functions inherited from RexxVariableBase
 RexxVariableBase ()
 
virtual bool isAllowedForUseNamed ()
 
- Public Member Functions inherited from RexxInternalObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t, 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 ()
 
void setInRexxPackage ()
 
bool isInRexxPackage ()
 
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 ()
 
RexxBehaviour * getObjectType ()
 
bool isObjectType (RexxBehaviour *b)
 
bool isObjectType (size_t t)
 
bool isSameType (RexxInternalObject *o)
 
void setBehaviour (RexxBehaviour *b)
 
virtual RexxObject * makeProxy (RexxEnvelope *)
 
virtual RexxObject * copy ()
 
virtual void uninit ()
 
virtual HashCode hash ()
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual bool truthValue (int)
 
virtual bool logicalValue (logical_t &)
 
virtual RexxString * makeString ()
 
virtual RexxText * makeText ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxString * primitiveMakeString ()
 
virtual RexxText * primitiveMakeText ()
 
virtual RexxArray * makeArray ()
 
virtual RexxString * stringValue ()
 
virtual RexxText * textValue ()
 
virtual RexxInteger * integerValue (size_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)
 
virtual RexxNumberString * numberString ()
 
virtual bool isEqual (RexxObject *)
 
virtual bool isInstanceOf (RexxClass *)
 
virtual RexxMethod * instanceMethod (RexxString *)
 
virtual RexxSupplier * instanceMethods (RexxClass *)
 
virtual RexxObject * dynamicTarget (RexxObject **arguments, size_t count, size_t named_count)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObject * clone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObject * unflatten (RexxEnvelope *)
 

Public Attributes

RexxString * compoundName
 
RexxString * stemName
 
size_t index
 
size_t tailCount
 
RexxObject * tails [1]
 
- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviour * behaviour
 

Additional Inherited Members

- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 53 of file ExpressionCompoundVariable.hpp.

Constructor & Destructor Documentation

◆ RexxCompoundVariable() [1/2]

RexxCompoundVariable::RexxCompoundVariable ( RexxString *  _compoundName,
RexxString *  _stemName,
size_t  stemIndex,
RexxQueue *  tailList,
size_t  TailCount 
)

◆ RexxCompoundVariable() [2/2]

RexxCompoundVariable::RexxCompoundVariable ( RESTORETYPE  restoreType)
inline

Definition at line 62 of file ExpressionCompoundVariable.hpp.

Member Function Documentation

◆ assign()

void RexxCompoundVariable::assign ( RexxActivation *  context,
RexxExpressionStack *  stack,
RexxObject *  value 
)
virtual

◆ clearGuard()

void RexxCompoundVariable::clearGuard ( RexxActivation *  context)
virtual

◆ drop() [1/2]

void RexxCompoundVariable::drop ( RexxActivation *  context)
virtual

◆ drop() [2/2]

void RexxCompoundVariable::drop ( RexxVariableDictionary *  dictionary)
virtual

Drop a variable that's directly in a variable dictionary.

Parameters
dictionaryThe target dictionary

Reimplemented from RexxVariableBase.

Definition at line 340 of file ExpressionCompoundVariable.cpp.

References RexxVariableDictionary::dropCompoundVariable(), stemName, tailCount, and tails.

◆ evaluate()

RexxObject * RexxCompoundVariable::evaluate ( RexxActivation *  context,
RexxExpressionStack *  stack 
)
virtual

◆ exists()

bool RexxCompoundVariable::exists ( RexxActivation *  context)
virtual

◆ expose()

◆ flatten()

void RexxCompoundVariable::flatten ( RexxEnvelope *  envelope)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 191 of file ExpressionCompoundVariable.cpp.

References cleanUpFlatten, flatten_reference, setUpFlatten, and tailCount.

◆ getName()

RexxString* RexxCompoundVariable::getName ( )
inlinevirtual

Reimplemented from RexxVariableBase.

Definition at line 83 of file ExpressionCompoundVariable.hpp.

References compoundName.

◆ getRealValue() [1/2]

RexxObject * RexxCompoundVariable::getRealValue ( RexxActivation *  context)
virtual

Get the value of a variable without applying a default value to it. Used in the apis so the caller can more easily detect an uninitialized variable.

Parameters
contextThe current context.
Returns
The value of the variable. Returns OREF_NULL if the variable has not been assigned a value.

Reimplemented from RexxInternalObject.

Definition at line 271 of file ExpressionCompoundVariable.cpp.

References RexxActivation::getLocalCompoundVariableRealValue(), index, stemName, tailCount, and tails.

◆ getRealValue() [2/2]

RexxObject * RexxCompoundVariable::getRealValue ( RexxVariableDictionary *  dictionary)
virtual

Retrieve an object variable value, returning OREF_NULL if the variable does not have a value.

Parameters
dictionaryThe source variable dictionary.
Returns
The variable value, or OREF_NULL if the variable is not assigned.

Reimplemented from RexxInternalObject.

Definition at line 254 of file ExpressionCompoundVariable.cpp.

References RexxVariableDictionary::getCompoundVariableRealValue(), stemName, tailCount, and tails.

◆ getValue() [1/2]

RexxObject * RexxCompoundVariable::getValue ( RexxActivation *  context)
virtual

Reimplemented from RexxInternalObject.

Definition at line 235 of file ExpressionCompoundVariable.cpp.

References RexxActivation::getLocalCompoundVariableValue(), index, stemName, tailCount, and tails.

Referenced by upper().

◆ getValue() [2/2]

RexxObject * RexxCompoundVariable::getValue ( RexxVariableDictionary *  context)
virtual

◆ live()

void RexxCompoundVariable::live ( size_t  liveMark)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 159 of file ExpressionCompoundVariable.cpp.

References compoundName, memory_mark, stemName, tailCount, and tails.

◆ liveGeneral()

void RexxCompoundVariable::liveGeneral ( int  reason)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 175 of file ExpressionCompoundVariable.cpp.

References compoundName, memory_mark_general, stemName, tailCount, and tails.

◆ operator delete() [1/3]

void RexxCompoundVariable::operator delete ( void *  )
inline

Definition at line 57 of file ExpressionCompoundVariable.hpp.

◆ operator delete() [2/3]

void RexxCompoundVariable::operator delete ( void *  ,
size_t   
)
inline

Definition at line 58 of file ExpressionCompoundVariable.hpp.

◆ operator delete() [3/3]

void RexxCompoundVariable::operator delete ( void *  ,
void *   
)
inline

Definition at line 59 of file ExpressionCompoundVariable.hpp.

◆ operator new() [1/2]

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

Definition at line 56 of file ExpressionCompoundVariable.hpp.

◆ operator new() [2/2]

void * RexxCompoundVariable::operator new ( size_t  size,
size_t  tailCount 
)

Definition at line 419 of file ExpressionCompoundVariable.cpp.

References new_object(), and T_CompoundVariableTerm.

◆ procedureExpose()

◆ set() [1/2]

void RexxCompoundVariable::set ( RexxActivation *  context,
RexxObject *  value 
)
virtual

Reimplemented from RexxVariableBase.

Definition at line 278 of file ExpressionCompoundVariable.cpp.

References index, RexxActivation::setLocalCompoundVariable(), stemName, tailCount, and tails.

Referenced by upper().

◆ set() [2/2]

void RexxCompoundVariable::set ( RexxVariableDictionary *  dictionary,
RexxObject *  value 
)
virtual

◆ setGuard()

void RexxCompoundVariable::setGuard ( RexxActivation *  context)
virtual

◆ upper()

void RexxCompoundVariable::upper ( RexxActivation *  context)
virtual

Reimplemented from RexxVariableBase.

Definition at line 437 of file ExpressionCompoundVariable.cpp.

References getValue(), REQUEST_STRING(), set(), and RexxString::upper().

◆ variableStem()

RexxString* RexxCompoundVariable::variableStem ( )
inline

Definition at line 81 of file ExpressionCompoundVariable.hpp.

References stemName.

Member Data Documentation

◆ compoundName

RexxString* RexxCompoundVariable::compoundName

Definition at line 85 of file ExpressionCompoundVariable.hpp.

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

◆ index

size_t RexxCompoundVariable::index

◆ stemName

◆ tailCount

◆ tails


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