RexxInstructionDo Class Reference

#include <DoInstruction.hpp>

Inheritance diagram for RexxInstructionDo:
[legend]

Public Member Functions

void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 RexxInstructionDo (void)
 
 RexxInstructionDo (RESTORETYPE restoreType)
 
void matchEnd (RexxInstructionEnd *, RexxSource *)
 
bool isLabel (RexxString *name)
 
RexxStringgetLabel ()
 
bool isLoop ()
 
void terminate (RexxActivation *, RexxDoBlock *)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
void execute (RexxActivation *, RexxExpressionStack *)
 
void controlSetup (RexxActivation *, RexxExpressionStack *, RexxDoBlock *)
 
bool checkOver (RexxActivation *, RexxExpressionStack *, RexxDoBlock *)
 
bool checkControl (RexxActivation *, RexxExpressionStack *, RexxDoBlock *, bool)
 
void reExecute (RexxActivation *, RexxExpressionStack *, RexxDoBlock *)
 
bool whileCondition (RexxActivation *, RexxExpressionStack *)
 
bool untilCondition (RexxActivation *, RexxExpressionStack *)
 
RexxInstructiongetEnd ()
 
void matchLabel (RexxInstructionEnd *end, RexxSource *source)
 
- Public Member Functions inherited from RexxBlockInstruction
 RexxBlockInstruction ()
 
 RexxBlockInstruction (RESTORETYPE restoreType)
 
- Public Member Functions inherited from RexxInstruction
void * operator new (size_t)
 
void * operator new (size_t size, void *objectPtr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 RexxInstruction (RexxClause *clause, int type)
 
 RexxInstruction (RESTORETYPE restoreType)
 
 RexxInstruction ()
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
const SourceLocationgetLocation ()
 
void setLocation (SourceLocation &l)
 
void setNext (RexxInstruction *next)
 
void setStart (size_t line, sizeB_t off)
 
void setEnd (size_t line, sizeB_t off)
 
void setType (size_t type)
 
size_t getType ()
 
bool isType (size_t type)
 
size_t getLineNumber ()
 
- 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 ()
 
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 RexxObjectcopy ()
 
virtual RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual void uninit ()
 
virtual HashCode hash ()
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual bool truthValue (int)
 
virtual bool logicalValue (logical_t &)
 
virtual RexxStringmakeString ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxArraymakeArray ()
 
virtual RexxStringstringValue ()
 
virtual RexxIntegerintegerValue (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 RexxNumberStringnumberString ()
 
virtual bool isEqual (RexxObject *)
 
virtual bool isInstanceOf (RexxClass *)
 
virtual RexxMethodinstanceMethod (RexxString *)
 
virtual RexxSupplierinstanceMethods (RexxClass *)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

Public Attributes

RexxObjectinitial
 
RexxObjectto
 
RexxObjectby
 
RexxVariableBasecontrol
 
RexxStringlabel
 
RexxObjectconditional
 
RexxInstructionend
 
RexxObjectforcount
 
uint8_t type
 
uint8_t expressions [3]
 
- Public Attributes inherited from RexxInstruction
uint16_t instructionType
 
uint16_t instructionFlags
 
SourceLocation instructionLocation
 
RexxInstructionnextInstruction
 
- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 

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 67 of file DoInstruction.hpp.

Constructor & Destructor Documentation

◆ RexxInstructionDo() [1/2]

RexxInstructionDo::RexxInstructionDo ( void  )
inline

Definition at line 76 of file DoInstruction.hpp.

◆ RexxInstructionDo() [2/2]

RexxInstructionDo::RexxInstructionDo ( RESTORETYPE  restoreType)
inline

Definition at line 77 of file DoInstruction.hpp.

Member Function Documentation

◆ checkControl()

◆ checkOver()

◆ controlSetup()

◆ execute()

◆ flatten()

void RexxInstructionDo::flatten ( RexxEnvelope envelope)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 177 of file DoInstruction.cpp.

References cleanUpFlatten, flatten_reference, and setUpFlatten.

◆ getEnd()

RexxInstruction* RexxInstructionDo::getEnd ( )

◆ getLabel()

RexxString * RexxInstructionDo::getLabel ( )
virtual

Get the label for this block instruction.

Returns
The label for the loop. Returns OREF_NULL if there is no label.

Reimplemented from RexxBlockInstruction.

Definition at line 128 of file DoInstruction.cpp.

References label.

Referenced by execute(), matchEnd(), and matchLabel().

◆ isLabel()

bool RexxInstructionDo::isLabel ( RexxString name)
virtual

Check for a label match on a block instruction.

Parameters
nameThe target block name.
Returns
True if this is a name match, false otherwise.

Reimplemented from RexxBlockInstruction.

Definition at line 118 of file DoInstruction.cpp.

References label.

◆ isLoop()

bool RexxInstructionDo::isLoop ( )
virtual

Tests to see if this is a loop instruction.

Returns
True if this is a repetitive loop, false otherwise.

Reimplemented from RexxBlockInstruction.

Definition at line 138 of file DoInstruction.cpp.

References SIMPLE_DO, and type.

◆ live()

void RexxInstructionDo::live ( size_t  liveMark)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 144 of file DoInstruction.cpp.

References by, conditional, control, end, forcount, initial, label, memory_mark, RexxInstruction::nextInstruction, and to.

◆ liveGeneral()

void RexxInstructionDo::liveGeneral ( int  reason)
virtual

◆ matchEnd()

void RexxInstructionDo::matchEnd ( RexxInstructionEnd partner,
RexxSource source 
)
virtual

◆ matchLabel()

◆ operator delete() [1/2]

void RexxInstructionDo::operator delete ( void *  )
inline

Definition at line 72 of file DoInstruction.hpp.

◆ operator delete() [2/2]

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

Definition at line 73 of file DoInstruction.hpp.

◆ operator new()

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

Definition at line 71 of file DoInstruction.hpp.

◆ reExecute()

◆ terminate()

void RexxInstructionDo::terminate ( RexxActivation context,
RexxDoBlock doblock 
)
virtual

◆ untilCondition()

bool RexxInstructionDo::untilCondition ( RexxActivation context,
RexxExpressionStack stack 
)

◆ whileCondition()

bool RexxInstructionDo::whileCondition ( RexxActivation context,
RexxExpressionStack stack 
)

Member Data Documentation

◆ by

RexxObject* RexxInstructionDo::by

Definition at line 100 of file DoInstruction.hpp.

Referenced by controlSetup(), RexxSource::createDoLoop(), live(), and liveGeneral().

◆ conditional

RexxObject* RexxInstructionDo::conditional

◆ control

RexxVariableBase* RexxInstructionDo::control

◆ end

RexxInstruction* RexxInstructionDo::end

Definition at line 104 of file DoInstruction.hpp.

Referenced by live(), liveGeneral(), matchEnd(), reExecute(), and terminate().

◆ expressions

uint8_t RexxInstructionDo::expressions[3]

Definition at line 107 of file DoInstruction.hpp.

Referenced by controlSetup(), and RexxSource::createDoLoop().

◆ forcount

RexxObject* RexxInstructionDo::forcount

◆ initial

RexxObject* RexxInstructionDo::initial

Definition at line 98 of file DoInstruction.hpp.

Referenced by controlSetup(), RexxSource::createDoLoop(), execute(), live(), and liveGeneral().

◆ label

RexxString* RexxInstructionDo::label

Definition at line 102 of file DoInstruction.hpp.

Referenced by RexxSource::createDoLoop(), getLabel(), isLabel(), live(), and liveGeneral().

◆ to

RexxObject* RexxInstructionDo::to

◆ type

uint8_t RexxInstructionDo::type

Definition at line 106 of file DoInstruction.hpp.

Referenced by RexxSource::createDoLoop(), execute(), isLoop(), matchEnd(), and reExecute().


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