RexxInstructionUseStrict Class Reference

#include <UseStrictInstruction.hpp>

Inheritance diagram for RexxInstructionUseStrict:
[legend]

Public Member Functions

void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 RexxInstructionUseStrict (size_t, bool, bool, bool, bool, RexxQueue *, RexxQueue *)
 
 RexxInstructionUseStrict (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
void execute (RexxActivation *, RexxExpressionStack *)
 
void executePositionalArguments (RexxActivation *, RexxExpressionStack *)
 
void executeNamedArguments (RexxActivation *, RexxExpressionStack *)
 
void checkNamedArguments ()
 
- 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 *)
 

Protected Member Functions

RexxObjectgetArgument (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
 
RexxInstructionnextInstruction
 
- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 

Detailed Description

Definition at line 57 of file UseStrictInstruction.hpp.

Constructor & Destructor Documentation

◆ RexxInstructionUseStrict() [1/2]

RexxInstructionUseStrict::RexxInstructionUseStrict ( size_t  count,
bool  strict,
bool  extraAllowed,
bool  autoCreate,
bool  named,
RexxQueue variable_list,
RexxQueue defaults 
)

◆ RexxInstructionUseStrict() [2/2]

RexxInstructionUseStrict::RexxInstructionUseStrict ( RESTORETYPE  restoreType)
inline

Definition at line 64 of file UseStrictInstruction.hpp.

Member Function Documentation

◆ checkNamedArguments()

◆ execute()

void RexxInstructionUseStrict::execute ( RexxActivation context,
RexxExpressionStack stack 
)
virtual

Reimplemented from RexxInstruction.

Definition at line 161 of file UseStrictInstruction.cpp.

References executeNamedArguments(), executePositionalArguments(), and namedArg.

◆ executeNamedArguments()

◆ executePositionalArguments()

◆ flatten()

void RexxInstructionUseStrict::flatten ( RexxEnvelope envelope)
virtual

The flattening routine, used for serializing object trees.

Parameters
envelopeThe envelope were's flattening into.

Reimplemented from RexxVirtualBase.

Definition at line 144 of file UseStrictInstruction.cpp.

References cleanUpFlatten, flatten_reference, setUpFlatten, and variableCount.

◆ getArgument()

RexxObject * RexxInstructionUseStrict::getArgument ( RexxObject **  arglist,
size_t  count,
size_t  target 
)
protected

Get the argument corresponding to a given argument position.

Parameters
arglistThe argument list for the method.
countThe argument count.
targetThe target argument offset.
Returns
The argument corresponding to the position. Returns OREF_NULL if the argument doesn't exist.

Definition at line 273 of file UseStrictInstruction.cpp.

References OREF_NULL.

Referenced by executePositionalArguments().

◆ live()

void RexxInstructionUseStrict::live ( size_t  liveMark)
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.

◆ liveGeneral()

void RexxInstructionUseStrict::liveGeneral ( int  reason)
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.

◆ operator delete() [1/2]

void RexxInstructionUseStrict::operator delete ( void *  )
inline

Definition at line 60 of file UseStrictInstruction.hpp.

◆ operator delete() [2/2]

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

Definition at line 61 of file UseStrictInstruction.hpp.

◆ operator new()

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

Definition at line 59 of file UseStrictInstruction.hpp.

Member Data Documentation

◆ autoCreation

bool RexxInstructionUseStrict::autoCreation
protected

Definition at line 80 of file UseStrictInstruction.hpp.

Referenced by executeNamedArguments(), and RexxInstructionUseStrict().

◆ minimumRequired

size_t RexxInstructionUseStrict::minimumRequired
protected

◆ namedArg

bool RexxInstructionUseStrict::namedArg
protected

Definition at line 81 of file UseStrictInstruction.hpp.

Referenced by execute(), and RexxInstructionUseStrict().

◆ strictChecking

bool RexxInstructionUseStrict::strictChecking
protected

◆ variableCount

size_t RexxInstructionUseStrict::variableCount
protected

◆ variables

UseVariable RexxInstructionUseStrict::variables[1]
protected

◆ variableSize

bool RexxInstructionUseStrict::variableSize
protected

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