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, size_t off)
 
void setEnd (size_t line, size_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 ()
 
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 ()
 
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 RexxTextmakeText ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxTextprimitiveMakeText ()
 
virtual RexxArraymakeArray ()
 
virtual RexxStringstringValue ()
 
virtual RexxTexttextValue ()
 
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 *)
 
virtual RexxObjectdynamicTarget (RexxObject **arguments, size_t count, size_t named_count)
 
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: