#include <UseStrictInstruction.hpp>
Protected Member Functions | |
RexxObject * | getArgument (RexxObject **arglist, size_t count, size_t target) |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Protected Attributes | |
size_t | variableCount |
size_t | minimumRequired |
bool | variableSize |
bool | strictChecking |
bool | autoCreation |
bool | namedArg |
UseVariable | variables [1] |
Additional Inherited Members | |
Static Public Member Functions inherited from RexxInternalObject | |
static size_t | getObjectHeaderSize () |
Public Attributes inherited from RexxInstruction | |
uint16_t | instructionType |
uint16_t | instructionFlags |
SourceLocation | instructionLocation |
RexxInstruction * | nextInstruction |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Definition at line 57 of file UseStrictInstruction.hpp.
RexxInstructionUseStrict::RexxInstructionUseStrict | ( | size_t | count, |
bool | strict, | ||
bool | extraAllowed, | ||
bool | autoCreate, | ||
bool | named, | ||
RexxQueue * | variable_list, | ||
RexxQueue * | defaults | ||
) |
Definition at line 53 of file UseStrictInstruction.cpp.
References autoCreation, checkNamedArguments(), Error_Translation_user_defined, minimumRequired, namedArg, OREF_NULL, OrefSet, RexxQueue::pop(), reportException(), strictChecking, variableCount, variables, and variableSize.
|
inline |
Definition at line 64 of file UseStrictInstruction.hpp.
void RexxInstructionUseStrict::checkNamedArguments | ( | ) |
Definition at line 423 of file UseStrictInstruction.cpp.
References RexxString::getLength(), RexxVariableBase::getName(), RexxString::getStringData(), NamedArguments::match(), OREF_NULL, UseVariable::variable, variableCount, and variables.
Referenced by RexxInstructionUseStrict().
|
virtual |
Reimplemented from RexxInstruction.
Definition at line 161 of file UseStrictInstruction.cpp.
References executeNamedArguments(), executePositionalArguments(), and namedArg.
void RexxInstructionUseStrict::executeNamedArguments | ( | RexxActivation * | context, |
RexxExpressionStack * | stack | ||
) |
Definition at line 285 of file UseStrictInstruction.cpp.
References RexxVariableBase::assign(), NamedArgument::assigned, autoCreation, RexxString::concatToCstring(), RexxString::concatWithCstring(), UseVariable::defaultValue, RexxVariableBase::drop(), Error_Incorrect_call_maxarg, Error_Incorrect_call_minarg, Error_Incorrect_call_noarg, Error_Incorrect_method_maxarg, Error_Incorrect_method_minarg, Error_Incorrect_method_noarg, Error_Symbol_expected_user_defined, RexxInternalObject::evaluate(), RexxVariableBase::exists(), RexxActivation::getCallname(), RexxString::getChar(), RexxString::getLength(), RexxActivation::getMethodArgumentCount(), RexxActivation::getMethodArgumentList(), RexxActivation::getMethodNamedArgumentCount(), RexxVariableBase::getName(), RexxString::getStringData(), RexxVariableDictionary::getVariableRetriever(), RexxActivation::inMethod(), NamedArguments::match(), minimumRequired, OREF_NULL, RexxActivation::pauseInstruction(), RexxExpressionStack::pop(), reportException(), strictChecking, RexxActivation::traceInstruction(), RexxActivation::traceResult(), NamedArgument::value, UseVariable::variable, variableCount, variables, and variableSize.
Referenced by execute().
void RexxInstructionUseStrict::executePositionalArguments | ( | RexxActivation * | context, |
RexxExpressionStack * | stack | ||
) |
Definition at line 168 of file UseStrictInstruction.cpp.
References RexxVariableBase::assign(), UseVariable::defaultValue, RexxVariableBase::drop(), Error_Incorrect_call_maxarg, Error_Incorrect_call_minarg, Error_Incorrect_call_noarg, Error_Incorrect_method_maxarg, Error_Incorrect_method_minarg, Error_Incorrect_method_noarg, RexxInternalObject::evaluate(), getArgument(), RexxActivation::getCallname(), RexxActivation::getMethodArgumentCount(), RexxActivation::getMethodArgumentList(), RexxActivation::inMethod(), minimumRequired, OREF_NULL, RexxActivation::pauseInstruction(), RexxExpressionStack::pop(), reportException(), strictChecking, RexxActivation::traceInstruction(), RexxActivation::traceResult(), UseVariable::variable, variableCount, variables, and variableSize.
Referenced by execute().
|
virtual |
The flattening routine, used for serializing object trees.
envelope | The envelope were's flattening into. |
Reimplemented from RexxVirtualBase.
Definition at line 144 of file UseStrictInstruction.cpp.
References cleanUpFlatten, flatten_reference, setUpFlatten, and variableCount.
|
protected |
Get the argument corresponding to a given argument position.
arglist | The argument list for the method. |
count | The argument count. |
target | The target argument offset. |
Definition at line 273 of file UseStrictInstruction.cpp.
References OREF_NULL.
Referenced by executePositionalArguments().
|
virtual |
The runtime, non-debug live marking routine.
Reimplemented from RexxVirtualBase.
Definition at line 106 of file UseStrictInstruction.cpp.
References memory_mark, RexxInstruction::nextInstruction, variableCount, and variables.
|
virtual |
The generalized live marking routine used for non-performance critical marking operations.
Reimplemented from RexxVirtualBase.
Definition at line 124 of file UseStrictInstruction.cpp.
References memory_mark_general, RexxInstruction::nextInstruction, variableCount, and variables.
|
inline |
Definition at line 60 of file UseStrictInstruction.hpp.
|
inline |
Definition at line 61 of file UseStrictInstruction.hpp.
|
inline |
Definition at line 59 of file UseStrictInstruction.hpp.
|
protected |
Definition at line 80 of file UseStrictInstruction.hpp.
Referenced by executeNamedArguments(), and RexxInstructionUseStrict().
|
protected |
Definition at line 77 of file UseStrictInstruction.hpp.
Referenced by executeNamedArguments(), executePositionalArguments(), and RexxInstructionUseStrict().
|
protected |
Definition at line 81 of file UseStrictInstruction.hpp.
Referenced by execute(), and RexxInstructionUseStrict().
|
protected |
Definition at line 79 of file UseStrictInstruction.hpp.
Referenced by executeNamedArguments(), executePositionalArguments(), and RexxInstructionUseStrict().
|
protected |
Definition at line 76 of file UseStrictInstruction.hpp.
Referenced by checkNamedArguments(), executeNamedArguments(), executePositionalArguments(), flatten(), live(), liveGeneral(), and RexxInstructionUseStrict().
|
protected |
Definition at line 82 of file UseStrictInstruction.hpp.
Referenced by checkNamedArguments(), executeNamedArguments(), executePositionalArguments(), live(), liveGeneral(), and RexxInstructionUseStrict().
|
protected |
Definition at line 78 of file UseStrictInstruction.hpp.
Referenced by executeNamedArguments(), executePositionalArguments(), and RexxInstructionUseStrict().