#include <RexxVariableDictionary.hpp>
Static Public Member Functions | |
static RexxVariableBase * | getVariableRetriever (RexxString *variable) |
static RexxVariableBase * | getDirectVariableRetriever (RexxString *variable) |
static RexxObject * | buildCompoundVariable (RexxString *variable_name, bool direct) |
static RexxVariableDictionary * | newInstance (size_t) |
static RexxVariableDictionary * | newInstance (RexxObject *) |
Static Public Member Functions inherited from RexxInternalObject | |
static size_t | getObjectHeaderSize () |
Protected Attributes | |
RexxActivity * | reservingActivity |
RexxHashTable * | contents |
RexxList * | waitingActivities |
unsigned short | flags |
unsigned short | reserveCount |
RexxVariableDictionary * | next |
RexxObject * | scope |
Additional Inherited Members | |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Definition at line 55 of file RexxVariableDictionary.hpp.
|
inline |
Definition at line 61 of file RexxVariableDictionary.hpp.
void RexxVariableDictionary::add | ( | RexxVariable * | variable, |
RexxString * | name | ||
) |
Definition at line 222 of file RexxVariableDictionary.cpp.
References contents, OREF_NULL, OrefSet, and RexxHashTable::stringAdd().
|
static |
Definition at line 741 of file RexxVariableDictionary.cpp.
References RexxString::extract(), RexxString::getChar(), RexxString::getLength(), RexxList::getSize(), new_queue(), and RexxQueue::push().
Referenced by getDirectVariableRetriever(), RexxSource::getRetriever(), and getVariableRetriever().
|
virtual |
Reimplemented from RexxInternalObject.
Definition at line 64 of file RexxVariableDictionary.cpp.
References RexxInternalObject::behaviour, contents, RexxInternalObject::copy(), copyValues(), RexxHashTable::mainSlotsSize(), new_variableDictionary(), OrefSet, and scope.
Referenced by RexxObject::copyObjectVariables().
void RexxVariableDictionary::copyValues | ( | ) |
Definition at line 82 of file RexxVariableDictionary.cpp.
References contents, RexxObject::copy(), RexxHashTable::first(), RexxHashTable::replace(), RexxHashTable::totalSlotsSize(), and RexxHashTable::value().
Referenced by copy(), and RexxObject::copyObjectVariables().
RexxVariable * RexxVariableDictionary::createStemVariable | ( | RexxString * | stemName | ) |
Definition at line 257 of file RexxVariableDictionary.cpp.
References contents, new_variable(), OREF_NULL, OrefSet, RexxVariable::set(), and RexxHashTable::stringAdd().
Referenced by getStemVariable().
RexxVariable * RexxVariableDictionary::createVariable | ( | RexxString * | stemName | ) |
Definition at line 280 of file RexxVariableDictionary.cpp.
References contents, new_variable(), OREF_NULL, OrefSet, and RexxHashTable::stringAdd().
Referenced by getVariable().
void RexxVariableDictionary::drop | ( | RexxString * | name | ) |
Drop the value of a named variable in the method dictionary.
name | The string name of the variable. |
Definition at line 119 of file RexxVariableDictionary.cpp.
References RexxVariable::drop(), OREF_NULL, and resolveVariable().
void RexxVariableDictionary::dropCompoundVariable | ( | RexxString * | stemName, |
RexxObject ** | tail, | ||
size_t | tailCount | ||
) |
Drop a compound variable in the dictionary.
stemName | The name of the stem. |
tail | The tail elements. |
tailCount | The count of tail elements. |
value | The value to set. |
Definition at line 576 of file RexxVariableDictionary.cpp.
References RexxStem::dropCompoundVariable(), and getStem().
Referenced by RexxCompoundVariable::drop().
void RexxVariableDictionary::dropStemVariable | ( | RexxString * | name | ) |
Drop the value of a named variable in the method dictionary.
name | The string name of the variable. |
Definition at line 135 of file RexxVariableDictionary.cpp.
References RexxVariable::drop(), OREF_NULL, resolveVariable(), and RexxVariable::set().
Referenced by RexxStemVariable::drop().
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 491 of file RexxVariableDictionary.cpp.
References cleanUpFlatten, flatten_reference, and setUpFlatten.
RexxDirectory * RexxVariableDictionary::getAllVariables | ( | ) |
Get all of the variables in the local context. This returns just the top-level variables (i.e., simple variables and stems).
Definition at line 468 of file RexxVariableDictionary.cpp.
References contents, RexxHashTable::first(), RexxVariable::getName(), RexxVariable::getVariableValue(), new_directory(), OREF_NULL, RexxDirectory::put(), RexxHashTable::totalSlotsSize(), and RexxHashTable::value().
Referenced by RexxActivation::getAllLocalVariables().
RexxCompoundElement * RexxVariableDictionary::getCompoundVariable | ( | RexxString * | stemName, |
RexxObject ** | tail, | ||
size_t | tailCount | ||
) |
Definition at line 148 of file RexxVariableDictionary.cpp.
References RexxStem::getCompoundVariable(), and getStem().
RexxObject * RexxVariableDictionary::getCompoundVariableRealValue | ( | RexxString * | stem, |
RexxObject ** | tail, | ||
size_t | tailCount | ||
) |
Retrieve the "real" value of a compound variable. This return OREF_NULL for any situation where the compound variable name would be returned.
stem | The name of the stem. |
tail | The set of tails used for the lookup. |
tailCount | The number of tail elements. |
Definition at line 197 of file RexxVariableDictionary.cpp.
References RexxStem::getCompoundVariableRealValue(), and getStem().
Referenced by RexxCompoundVariable::getRealValue().
RexxObject * RexxVariableDictionary::getCompoundVariableValue | ( | RexxString * | stemName, |
RexxObject ** | tail, | ||
size_t | tailCount | ||
) |
Definition at line 166 of file RexxVariableDictionary.cpp.
References RexxStem::evaluateCompoundVariableValue(), getStem(), and OREF_NULL.
Referenced by RexxCompoundVariable::getValue().
|
static |
Definition at line 638 of file RexxVariableDictionary.cpp.
References buildCompoundVariable(), RexxString::getChar(), RexxString::getLength(), RexxSource::isSymbolCharacter(), MAX_SYMBOL_LENGTH, OREF_NULL, and RexxSource::translateChar().
Referenced by RexxNativeActivation::variablePoolGetVariable().
|
inline |
Definition at line 128 of file RexxVariableDictionary.hpp.
References next.
Referenced by RexxObject::copyObjectVariables(), RexxObject::getObjectVariable(), and RexxObject::getObjectVariables().
|
inline |
Definition at line 117 of file RexxVariableDictionary.hpp.
References reserveCount.
Referenced by RexxActivation::getReserveCount().
|
inline |
Definition at line 129 of file RexxVariableDictionary.hpp.
References reservingActivity.
|
inline |
Definition at line 72 of file RexxVariableDictionary.hpp.
References getStemVariable(), and RexxVariable::getVariableValue().
Referenced by dropCompoundVariable(), RexxCompoundVariable::expose(), getCompoundVariable(), getCompoundVariableRealValue(), getCompoundVariableValue(), RexxStemVariable::getRealValue(), RexxStemVariable::getValue(), realStemValue(), and setCompoundVariable().
|
inline |
Definition at line 94 of file RexxVariableDictionary.hpp.
References createStemVariable(), OREF_NULL, and resolveVariable().
Referenced by RexxStemVariable::expose(), getStem(), RexxLocalVariables::lookupStemVariable(), and RexxStemVariable::set().
|
inline |
Definition at line 81 of file RexxVariableDictionary.hpp.
References createVariable(), OREF_NULL, and resolveVariable().
Referenced by RexxParseVariable::drop(), RexxParseVariable::expose(), RexxParseVariable::getRealValue(), RexxParseVariable::getValue(), RexxLocalVariables::lookupVariable(), set(), and RexxParseVariable::set().
|
static |
Definition at line 587 of file RexxVariableDictionary.cpp.
References buildCompoundVariable(), RexxString::extract(), RexxString::getChar(), RexxString::getLength(), RexxString::isSymbol(), OREF_NULL, STRING_BAD_VARIABLE, STRING_COMPOUND_NAME, STRING_LITERAL, STRING_LITERAL_DOT, STRING_NAME, STRING_NUMERIC, STRING_STEM, type, and RexxString::upper().
Referenced by BUILTIN(), RexxNativeActivation::dropContextVariable(), RexxNativeActivation::dropObjectVariable(), RexxInstructionUseStrict::executeNamedArguments(), RexxNativeActivation::getContextStem(), RexxNativeActivation::getContextVariable(), RexxNativeActivation::getObjectVariable(), RexxVariableReference::list(), RexxNativeActivation::setContextVariable(), RexxNativeActivation::setObjectVariable(), RexxNativeActivation::stemSort(), and RexxNativeActivation::variablePoolGetVariable().
|
inline |
Definition at line 127 of file RexxVariableDictionary.hpp.
References scope.
Referenced by RexxObject::getObjectVariables().
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 437 of file RexxVariableDictionary.cpp.
References contents, memory_mark, next, reservingActivity, scope, and waitingActivities.
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 449 of file RexxVariableDictionary.cpp.
References contents, memory_mark_general, next, reservingActivity, scope, and waitingActivities.
|
static |
Definition at line 526 of file RexxVariableDictionary.cpp.
References DEFAULT_OBJECT_DICTIONARY_SIZE, new_hashCollection(), scope, and T_VariableDictionary.
|
static |
Definition at line 507 of file RexxVariableDictionary.cpp.
References new_hashCollection(), and T_VariableDictionary.
Referenced by new_objectVariableDictionary(), and new_variableDictionary().
RexxVariable * RexxVariableDictionary::nextVariable | ( | RexxNativeActivation * | activation | ) |
Definition at line 297 of file RexxVariableDictionary.cpp.
References contents, RexxHashTable::first(), RexxVariable::getVariableValue(), RexxHashTable::index(), RexxHashTable::next(), RexxNativeActivation::nextVariable(), OREF_NULL, RexxNativeActivation::setNextVariable(), SIZE_MAX, and RexxHashTable::value().
Referenced by RexxNativeActivation::fetchNext().
|
inline |
Definition at line 58 of file RexxVariableDictionary.hpp.
|
inline |
Definition at line 59 of file RexxVariableDictionary.hpp.
|
inline |
Definition at line 57 of file RexxVariableDictionary.hpp.
void RexxVariableDictionary::put | ( | RexxVariable * | variable, |
RexxString * | name | ||
) |
Definition at line 239 of file RexxVariableDictionary.cpp.
References contents, OREF_NULL, OrefSet, and RexxHashTable::stringPut().
Referenced by RexxLocalVariables::createDictionary(), RexxLocalVariables::putVariable(), and RexxLocalVariables::updateVariable().
RexxObject * RexxVariableDictionary::realStemValue | ( | RexxString * | stemName | ) |
Definition at line 210 of file RexxVariableDictionary.cpp.
References getStem().
RexxObject * RexxVariableDictionary::realValue | ( | RexxString * | name | ) |
Definition at line 98 of file RexxVariableDictionary.cpp.
References RexxVariable::getVariableValue(), OREF_NULL, and resolveVariable().
Referenced by RexxObject::getObjectVariable().
void RexxVariableDictionary::release | ( | RexxActivity * | activity | ) |
Definition at line 379 of file RexxVariableDictionary.cpp.
References OREF_NULL, OrefSet, RexxActivity::postDispatch(), RexxList::removeFirst(), reserveCount, reservingActivity, TheNilObject, and waitingActivities.
Referenced by RexxActivation::guardOff(), RexxNativeActivation::guardOff(), RexxObject::guardOff(), RexxActivation::guardWait(), AttributeGetterCode::run(), AttributeSetterCode::run(), and transfer().
|
inline |
Definition at line 110 of file RexxVariableDictionary.hpp.
References contents, and RexxHashTable::remove().
void RexxVariableDictionary::reserve | ( | RexxActivity * | activity | ) |
Definition at line 343 of file RexxVariableDictionary.cpp.
References RexxList::addLast(), RexxActivity::checkDeadLock(), new_list(), OREF_NULL, OrefSet, reserveCount, reservingActivity, and waitingActivities.
Referenced by RexxActivation::getObjectVariables(), RexxActivation::guardOn(), RexxNativeActivation::guardOn(), RexxObject::guardOn(), RexxActivation::guardWait(), RexxNativeActivation::methodVariables(), AttributeGetterCode::run(), AttributeSetterCode::run(), and RexxActivation::run().
|
inline |
Definition at line 76 of file RexxVariableDictionary.hpp.
References contents, and RexxHashTable::stringGet().
Referenced by drop(), dropStemVariable(), RexxLocalVariables::findVariable(), getStemVariable(), getVariable(), and realValue().
void RexxVariableDictionary::set | ( | RexxString * | name, |
RexxObject * | value | ||
) |
Definition at line 330 of file RexxVariableDictionary.cpp.
References getVariable(), and RexxVariable::set().
Referenced by RexxObject::setObjectVariable().
void RexxVariableDictionary::setCompoundVariable | ( | RexxString * | stemName, |
RexxObject ** | tail, | ||
size_t | tailCount, | ||
RexxObject * | value | ||
) |
Set a compound variable in the dictionary.
stemName | The name of the stem. |
tail | The tail elements. |
tailCount | The count of tail elements. |
value | The value to set. |
Definition at line 557 of file RexxVariableDictionary.cpp.
References getStem(), and RexxStem::setCompoundVariable().
Referenced by RexxCompoundVariable::set().
void RexxVariableDictionary::setNextDictionary | ( | RexxVariableDictionary * | next | ) |
Definition at line 429 of file RexxVariableDictionary.cpp.
Referenced by RexxObject::addObjectVariables(), and RexxObject::getObjectVariables().
bool RexxVariableDictionary::transfer | ( | RexxActivity * | activity | ) |
Definition at line 409 of file RexxVariableDictionary.cpp.
References OrefSet, release(), reserveCount, and reservingActivity.
Referenced by RexxActivation::run().
|
protected |
Definition at line 143 of file RexxVariableDictionary.hpp.
Referenced by add(), copy(), copyValues(), createStemVariable(), createVariable(), getAllVariables(), live(), liveGeneral(), nextVariable(), put(), remove(), and resolveVariable().
|
protected |
Definition at line 145 of file RexxVariableDictionary.hpp.
|
protected |
Definition at line 147 of file RexxVariableDictionary.hpp.
Referenced by getNextDictionary(), live(), liveGeneral(), and setNextDictionary().
|
protected |
Definition at line 146 of file RexxVariableDictionary.hpp.
Referenced by getReserveCount(), release(), reserve(), and transfer().
|
protected |
Definition at line 142 of file RexxVariableDictionary.hpp.
Referenced by getReservingActivity(), live(), liveGeneral(), release(), reserve(), and transfer().
|
protected |
Definition at line 148 of file RexxVariableDictionary.hpp.
Referenced by copy(), isScope(), live(), liveGeneral(), and newInstance().
|
protected |
Definition at line 144 of file RexxVariableDictionary.hpp.
Referenced by live(), liveGeneral(), release(), and reserve().