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.
![]() ![]() |
#include <ExpressionStack.hpp>
Public Member Functions | |
void * | operator new (size_t size, void *ptr) |
RexxExpressionStack (RexxObject **frames, size_t items) | |
RexxExpressionStack () | |
void | live (size_t) |
void | liveGeneral (int reason) |
void | flatten (RexxEnvelope *) |
void | expandArgs (size_t, size_t, size_t, const char *) |
RexxString * | requiredStringArg (size_t) |
RexxString * | optionalStringArg (size_t) |
RexxInteger * | requiredIntegerArg (size_t, size_t, const char *) |
RexxInteger * | optionalIntegerArg (size_t, size_t, const char *) |
RexxObject * | requiredBigIntegerArg (size_t, size_t, const char *) |
RexxObject * | optionalBigIntegerArg (size_t, size_t, const char *) |
void | migrate (RexxActivity *) |
void | setFrame (RexxObject **frames, size_t items) |
void | send (RexxString *message, RexxObject *scope, size_t count, ProtectedObject &result) |
void | send (RexxString *message, size_t count, ProtectedObject &result) |
void | push (RexxObject *value) |
RexxObject * | pop () |
RexxObject * | fastPop () |
RexxArray * | argumentArray (size_t count) |
RexxObject ** | arguments (size_t count) |
void | replace (size_t offset, RexxObject *value) |
size_t | getSize () |
RexxObject * | getTop () |
void | operatorResult (RexxObject *value) |
void | prefixResult (RexxObject *value) |
void | popn (size_t c) |
void | clear () |
RexxObject * | peek (size_t v) |
RexxObject ** | pointer (size_t v) |
size_t | location () |
void | setTop (size_t v) |
void | toss () |
RexxObject ** | getFrame () |
Protected Attributes | |
size_t | size |
RexxObject ** | top |
RexxObject ** | stack |
Definition at line 53 of file ExpressionStack.hpp.
|
inline |
Definition at line 57 of file ExpressionStack.hpp.
|
inline |
|
inline |
Definition at line 80 of file ExpressionStack.hpp.
References top.
|
inline |
Definition at line 81 of file ExpressionStack.hpp.
References top.
Referenced by RexxInstructionForward::execute(), RexxActivation::externalCall(), and RexxActivation::internalCall().
|
inline |
Definition at line 88 of file ExpressionStack.hpp.
Referenced by RexxInstructionGuard::execute(), and RexxActivation::run().
void RexxExpressionStack::expandArgs | ( | size_t | argcount, |
size_t | min, | ||
size_t | max, | ||
const char * | function | ||
) |
Definition at line 109 of file ExpressionStack.cpp.
References Error_Incorrect_call_maxarg, Error_Incorrect_call_minarg, Error_Incorrect_call_noarg, OREF_NULL, pointer(), and reportException().
|
inline |
Definition at line 79 of file ExpressionStack.hpp.
References top.
void RexxExpressionStack::flatten | ( | RexxEnvelope * | envelope | ) |
Definition at line 77 of file ExpressionStack.cpp.
References cleanUpFlatten, flatten_reference, setUpFlatten, stack, and top.
|
inline |
Definition at line 94 of file ExpressionStack.hpp.
References stack.
Referenced by RexxActivation::run(), and RexxActivation::termination().
|
inline |
Definition at line 83 of file ExpressionStack.hpp.
References size.
|
inline |
Definition at line 84 of file ExpressionStack.hpp.
References top.
void RexxExpressionStack::live | ( | size_t | liveMark | ) |
Definition at line 50 of file ExpressionStack.cpp.
References memory_mark, stack, and top.
Referenced by RexxActivation::live().
void RexxExpressionStack::liveGeneral | ( | int | reason | ) |
Definition at line 64 of file ExpressionStack.cpp.
References memory_mark_general, stack, and top.
Referenced by RexxActivation::liveGeneral().
|
inline |
Definition at line 91 of file ExpressionStack.hpp.
Referenced by RexxExpressionFunction::evaluate(), and RexxTarget::init().
void RexxExpressionStack::migrate | ( | RexxActivity * | activity | ) |
Definition at line 97 of file ExpressionStack.cpp.
References RexxActivity::allocateStackFrame(), size, and stack.
Referenced by RexxActivation::run().
|
inline |
Definition at line 56 of file ExpressionStack.hpp.
|
inline |
Definition at line 85 of file ExpressionStack.hpp.
References top.
Referenced by RexxBinaryOperator::evaluate().
RexxObject * RexxExpressionStack::optionalBigIntegerArg | ( | size_t | position, |
size_t | argcount, | ||
const char * | function | ||
) |
Process an argument and ensure it is a valid integer that can be expressed as a 64-bit value.
position | The argument position for any error messages. |
argcount | The number of arguments passed to the function. |
function | The function name |
Definition at line 290 of file ExpressionStack.cpp.
References Error_Incorrect_call_whole, Numerics::int64Object(), OREF_NULL, peek(), replace(), and reportException().
RexxInteger * RexxExpressionStack::optionalIntegerArg | ( | size_t | position, |
size_t | argcount, | ||
const char * | function | ||
) |
Definition at line 219 of file ExpressionStack.cpp.
References Numerics::ARGUMENT_DIGITS, Error_Incorrect_call_whole, isOfClass, new_integer(), OREF_NULL, peek(), replace(), reportException(), and RexxObject::requestNumber().
RexxString * RexxExpressionStack::optionalStringArg | ( | size_t | position | ) |
Definition at line 168 of file ExpressionStack.cpp.
References isOfClass, OREF_NULL, peek(), replace(), and RexxObject::requestString().
|
inline |
Definition at line 89 of file ExpressionStack.hpp.
References top.
Referenced by optionalBigIntegerArg(), optionalIntegerArg(), optionalStringArg(), requiredBigIntegerArg(), requiredIntegerArg(), and requiredStringArg().
|
inline |
|
inline |
Definition at line 78 of file ExpressionStack.hpp.
References top.
Referenced by RexxActivation::callExternalRexx(), RexxInstructionUseStrict::execute(), and RexxTrigger::parse().
|
inline |
Definition at line 87 of file ExpressionStack.hpp.
References top.
Referenced by RexxExpressionMessage::assign(), RexxExpressionMessage::evaluate(), and RexxInstructionMessage::execute().
|
inline |
Definition at line 86 of file ExpressionStack.hpp.
References top.
Referenced by RexxExpressionMessage::evaluate(), and RexxUnaryOperator::evaluate().
|
inline |
Definition at line 77 of file ExpressionStack.hpp.
References top.
Referenced by RexxExpressionMessage::assign(), RexxActivation::callExternalRexx(), RexxExpressionMessage::evaluate(), RexxStemVariable::evaluate(), RexxDotVariable::evaluate(), RexxParseVariable::evaluate(), RexxCompoundVariable::evaluate(), RexxExpressionFunction::evaluate(), RexxInteger::evaluate(), RexxNumberString::evaluate(), RexxString::evaluate(), RexxInstructionRaise::execute(), RexxInstructionForward::execute(), RexxInstructionMessage::execute(), RexxInstructionParse::execute(), RexxInstructionCall::execute(), RexxActivation::internalCallTrap(), RexxVariableReference::list(), and RexxTarget::next().
|
inline |
Definition at line 82 of file ExpressionStack.hpp.
References top.
Referenced by optionalBigIntegerArg(), optionalIntegerArg(), optionalStringArg(), requiredBigIntegerArg(), requiredIntegerArg(), and requiredStringArg().
RexxObject * RexxExpressionStack::requiredBigIntegerArg | ( | size_t | position, |
size_t | argcount, | ||
const char * | function | ||
) |
Process an argument and ensure it is a valid integer that can be expressed as a 64-bit value.
position | The argument position for any error messages. |
argcount | The number of arguments passed to the function. |
function | The function name |
Definition at line 261 of file ExpressionStack.cpp.
References Error_Incorrect_call_whole, Numerics::int64Object(), OREF_NULL, peek(), replace(), and reportException().
RexxInteger * RexxExpressionStack::requiredIntegerArg | ( | size_t | position, |
size_t | argcount, | ||
const char * | function | ||
) |
Definition at line 191 of file ExpressionStack.cpp.
References Numerics::ARGUMENT_DIGITS, Error_Incorrect_call_whole, isOfClass, new_integer(), peek(), replace(), reportException(), and RexxObject::requestNumber().
RexxString * RexxExpressionStack::requiredStringArg | ( | size_t | position | ) |
Definition at line 149 of file ExpressionStack.cpp.
References isOfClass, peek(), replace(), and RexxObject::requestString().
|
inline |
Definition at line 73 of file ExpressionStack.hpp.
References top.
Referenced by RexxExpressionMessage::assign(), RexxExpressionMessage::evaluate(), and RexxInstructionMessage::execute().
|
inline |
Definition at line 75 of file ExpressionStack.hpp.
References top.
|
inline |
Definition at line 71 of file ExpressionStack.hpp.
References OREF_NULL, size, stack, and top.
Referenced by RexxActivity::allocateStackFrame().
|
inline |
Definition at line 92 of file ExpressionStack.hpp.
Referenced by RexxExpressionFunction::evaluate(), and RexxTarget::next().
|
inline |
Definition at line 93 of file ExpressionStack.hpp.
References top.
Referenced by RexxExpressionMessage::assign(), RexxExpressionMessage::evaluate(), RexxInstructionMessage::execute(), RexxInstructionCall::execute(), and RexxVariableReference::list().
|
protected |
Definition at line 98 of file ExpressionStack.hpp.
Referenced by getSize(), migrate(), RexxExpressionStack(), and setFrame().
|
protected |
Definition at line 100 of file ExpressionStack.hpp.
Referenced by clear(), flatten(), getFrame(), live(), liveGeneral(), location(), migrate(), RexxExpressionStack(), setFrame(), and setTop().
|
protected |
Definition at line 99 of file ExpressionStack.hpp.
Referenced by argumentArray(), arguments(), clear(), fastPop(), flatten(), getTop(), live(), liveGeneral(), location(), operatorResult(), peek(), pointer(), pop(), popn(), prefixResult(), push(), replace(), RexxExpressionStack(), send(), setFrame(), setTop(), and toss().