RexxExpressionLogical Class Reference

#include <ExpressionLogical.hpp>

Inheritance diagram for RexxExpressionLogical:
[legend]

Public Member Functions

void * operator new (size_t, void *ptr)
 
void * operator new (size_t, size_t)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
void operator delete (void *, size_t)
 
 RexxExpressionLogical (RexxSource *, size_t, RexxQueue *)
 
 RexxExpressionLogical (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
- 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 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

size_t expressionCount
 
RexxObjectexpressions [1]
 
- 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 50 of file ExpressionLogical.hpp.

Constructor & Destructor Documentation

◆ RexxExpressionLogical() [1/2]

RexxExpressionLogical::RexxExpressionLogical ( RexxSource source,
size_t  count,
RexxQueue list 
)

Constructor for a RexxExpressionLogical object.

Parameters
sourceThe source parsing context (used for raising errors)
countThe number of expressions in the list.
listThe accumulated list of expressions.

Definition at line 63 of file ExpressionLogical.cpp.

References Error_Invalid_expression_logical_list, expressionCount, expressions, OREF_NULL, OrefSet, RexxQueue::pop(), and RexxSource::syntaxError().

◆ RexxExpressionLogical() [2/2]

RexxExpressionLogical::RexxExpressionLogical ( RESTORETYPE  restoreType)
inline

Definition at line 59 of file ExpressionLogical.hpp.

Member Function Documentation

◆ evaluate()

RexxObject * RexxExpressionLogical::evaluate ( RexxActivation context,
RexxExpressionStack stack 
)
virtual

Evaluate a logical expresion list.

Parameters
contextThe execution context.
stackThe evaluation stack.
Returns
The result of the operation, either .true or .false.

Reimplemented from RexxInternalObject.

Definition at line 137 of file ExpressionLogical.cpp.

References Error_Logical_value_logical_list, RexxInternalObject::evaluate(), expressionCount, expressions, TheFalseObject, TheTrueObject, RexxActivation::traceResult(), and RexxObject::truthValue().

◆ flatten()

void RexxExpressionLogical::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 114 of file ExpressionLogical.cpp.

References cleanUpFlatten, expressionCount, flatten_reference, and setUpFlatten.

◆ live()

void RexxExpressionLogical::live ( size_t  liveMark)
virtual

The runtime, non-debug live marking routine.

Reimplemented from RexxVirtualBase.

Definition at line 83 of file ExpressionLogical.cpp.

References expressionCount, expressions, and memory_mark.

◆ liveGeneral()

void RexxExpressionLogical::liveGeneral ( int  reason)
virtual

The generalized live marking routine used for non-performance critical marking operations.

Reimplemented from RexxVirtualBase.

Definition at line 98 of file ExpressionLogical.cpp.

References expressionCount, expressions, and memory_mark_general.

◆ operator delete() [1/3]

void RexxExpressionLogical::operator delete ( void *  )
inline

Definition at line 54 of file ExpressionLogical.hpp.

◆ operator delete() [2/3]

void RexxExpressionLogical::operator delete ( void *  ,
size_t   
)
inline

Definition at line 56 of file ExpressionLogical.hpp.

◆ operator delete() [3/3]

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

Definition at line 55 of file ExpressionLogical.hpp.

◆ operator new() [1/2]

void * RexxExpressionLogical::operator new ( size_t  size,
size_t  count 
)

Create a new logical list object.

Parameters
sizeThe size of the class object.
countThe count of logical expressions. Used to adjust the allocated size to the requirements.
Returns
A new RexxExpressionLogical object.

Definition at line 177 of file ExpressionLogical.cpp.

References new_object(), and T_LogicalTerm.

◆ operator new() [2/2]

void* RexxExpressionLogical::operator new ( size_t  ,
void *  ptr 
)
inline

Definition at line 52 of file ExpressionLogical.hpp.

Member Data Documentation

◆ expressionCount

size_t RexxExpressionLogical::expressionCount

Definition at line 65 of file ExpressionLogical.hpp.

Referenced by evaluate(), flatten(), live(), liveGeneral(), and RexxExpressionLogical().

◆ expressions

RexxObject* RexxExpressionLogical::expressions[1]

Definition at line 66 of file ExpressionLogical.hpp.

Referenced by evaluate(), live(), liveGeneral(), and RexxExpressionLogical().


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