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. Fossies Dox: ooRexx-4.2.0-source.tar.gz ("inofficial" and yet experimental doxygen-generated source code documentation) 
|
Go to the documentation of this file. 160 return id->getHashValue();
170 return this->
equal(other);
655 method_object = method_object->
newScope(
this);
747 for (
size_t i = 1; i < subclass_list->
size(); i++)
797 return method_object;
864 for (
size_t index = 1; index <= subClassList->
size(); index++)
886 for (
size_t index = 1; index <= subClassList->
size(); index++)
923 if (!target_class_behaviour->
checkScope(
this))
943 for (
size_t i = addedScopes->
size(); i > 0; i--)
963 target_class_behaviour->
addScope(
this);
995 if (!target_instance_behaviour->
checkScope(
this))
1002 target_instance_behaviour->
addScope(
this);
1028 if (!target_instance_behaviour->
checkScope(
this))
1035 target_instance_behaviour->
addScope(
this);
1061 target_mdict->
stringAdd(method_instance, method_name);
1086 sourceCollection->
sendMessage(OREF_SUPPLIERSYM, p2);
1108 newMethod = newMethod->
newScope(scope);
1112 newDictionary->
stringAdd(newMethod, method_name);
1114 return newDictionary;
1144 if (
this == mixin_class )
1195 if (class_index == 0 || instance_index == 0)
1320 dummy_subclass->
sendMessage(OREF_NEW, args + 1, argCount - 1, r);
1329 return enhanced_object;
1343 RexxClass *mixin_subclass = this->
subclass(mixin_id, meta_class, enhancing_class_methods);
1353 return mixin_subclass;
1540 void *RexxClass::operator
new(
size_t size,
1542 const char *className,
1575 return(
void *)new_class;
1600 OrefSet(new_class, new_class->
id, class_id);
1674 new_class->
sendMessage(OREF_INIT, args + 1, argCount - 1);
1705 size_t *remainderSize,
1716 *argument1 = arg_array[0];
1722 *argument2 = arg_array[1];
1730 *init_args = arg_array + required;
1733 if (argCount >= required)
1735 *remainderSize = argCount - required;
#define Error_Execution_mixinclass
RexxIdentityTable * getScopes()
RexxClass * mixinclass(RexxString *, RexxClass *, RexxTable *)
void sendMessage(RexxString *, RexxArray *, ProtectedObject &)
RexxObject * enhanced(RexxObject **, size_t)
RexxArray * new_array(size_t s)
#define Error_No_method_name
RexxObject * stringGet(RexxString *key)
RexxObject * index(HashLink pos)
#define Error_Translation_bad_metaclass
HashLink next(HashLink pos)
void defmeths(RexxTable *)
bool isInstanceOf(RexxClass *)
void mergeSuperClassScopes(RexxBehaviour *target_instance_behaviour)
RexxTable * classMethodDictionary
RexxString * new_proxy(const char *name)
void reportNomethod(RexxString *message, RexxObject *receiver)
#define memory_mark_general(oref)
RexxBehaviour * behaviour
RexxMethod * method(RexxString *)
RexxArray * classSuperClasses
RexxArray * allAt(RexxObject *key)
#define TheClassClassBehaviour
RexxMethod * newScope(RexxClass *)
RexxTable * getBehaviourDictionary()
RexxObject * removeIndex(size_t i)
void methodDictionaryMerge(RexxTable *, RexxTable *)
RexxObject * defineMethod(RexxString *, RexxMethod *)
#define Error_Incorrect_method_minarg
void requiredArgument(RexxObject *object, size_t position)
RexxObject * defineClassMethod(RexxString *method_name, RexxMethod *newMethod)
size_t indexOf(RexxObject *)
RexxString * defaultNameRexx()
void reportException(wholenumber_t error)
#define TheObjectBehaviour
virtual RexxObject * remove(RexxObject *key)
bool isEqual(RexxObject *)
RexxInteger * queryMixinClass()
RexxObject * unflatten(RexxEnvelope *)
RexxClass * subclass(RexxString *, RexxClass *, RexxTable *)
#define Error_Execution_uninherit
const char * getStringData()
bool parentHasUninitDefined()
virtual RexxObject * get(RexxObject *key)
void addFirst(RexxObject *value)
void addSubClass(RexxClass *)
RexxArray * getSubClasses()
RexxObject * get(size_t pos)
RexxIdentityTable * new_identity_table()
RexxSupplier * methods(RexxClass *)
size_t nextIndex(size_t i)
void setScope(RexxClass *)
RexxObject * strictEqual(RexxObject *)
RexxClass * getSuperClass()
static RexxMethod * newMethodObject(RexxString *, RexxObject *, RexxObject *, RexxSource *a)
RexxString * new_string(const char *s, stringsize_t l)
void flatten(RexxEnvelope *)
RexxObject * value(HashLink pos)
#define Error_Execution_recursive_inherit
RexxObject * stringAdd(RexxObject *, RexxString *)
void setParentHasUninitDefined()
void methodDictionaryMerge(RexxTable *)
void setBehaviour(RexxBehaviour *b)
RexxIdentityTable * metaClassScopes
static RexxClass * classInstance
RexxString * concatToCstring(const char *)
void setHasUninitDefined()
RexxObject * getValue(size_t i)
RexxTable * instanceMethodDictionary
RexxClass * newRexx(RexxObject **args, size_t argCount)
#define Error_Execution_baseclass
RexxArray * metaClassMethodDictionary
static void createInstance()
void createInstanceBehaviour(RexxBehaviour *)
void liveGeneral(int reason)
RexxString * defaultName()
void merge(RexxBehaviour *)
RexxObject * inherit(RexxClass *, RexxClass *)
RexxClass * getMetaClass()
#define TheClassBehaviour
size_t addLast(RexxObject *item)
#define memory_mark(oref)
RexxString * lastMessageName()
void setInitialFlagState()
#define TheNumberStringClass
RexxArray * getSuperClasses()
bool checkScope(RexxObject *)
RexxBehaviour * instanceBehaviour
void setMetaClass(RexxClass *)
void createClassBehaviour(RexxBehaviour *)
RexxString * REQUEST_STRING(RexxObject *object)
RexxObject * makeProxy(RexxEnvelope *)
bool strCompare(const char *s)
RexxObject * equal(RexxObject *)
RexxString * concatWithCstring(const char *)
RexxArray * instanceSuperClasses
void setInstanceBehaviour(RexxBehaviour *)
virtual RexxObject * add(RexxObject *, RexxObject *)
RexxClass * getBaseClass()
RexxArray * weakReferenceArray()
RexxObject * deleteMethod(RexxString *)
RexxObject * addScope(RexxObject *)
bool isCompatibleWith(RexxClass *other)
RexxObject * deleteItem(size_t index)
RexxInteger * available()
RexxObject * defineMethods(RexxTable *)
void removeClassMethod(RexxString *method_name)
void setMethodDictionary(RexxTable *m)
RexxObject * setRexxDefined()
RexxObject * define(RexxString *, RexxMethod *)
RexxObject * deleteMethod(RexxString *)
#define Error_Logical_value_method
void updateInstanceSubClasses()
bool available(HashLink pos)
void setOwningClass(RexxClass *c)
RexxTable * getInstanceBehaviourDictionary()
RexxString * stringArgument(RexxObject *object, size_t position)
RexxObject * isSubclassOf(RexxClass *other)
RexxObject * notEqual(RexxObject *)
RexxObject * setScopes(RexxIdentityTable *)
size_t addFirst(RexxObject *item)
static void processNewArgs(RexxObject **, size_t, RexxObject ***, size_t *, size_t, RexxObject **, RexxObject **)
size_t insertAfter(RexxObject *item, size_t index)
RexxObject * new_object(size_t s)
RexxTable * methodDictionaryCreate(RexxTable *, RexxClass *)
RexxObject * stringPut(RexxObject *, RexxString *)
void subclass(RexxBehaviour *)
void removeSubclass(RexxClass *c)
RexxSupplier * supplier()
RexxTable * getMethodDictionary()
RexxObject * mergeScope(RexxObject *)
RexxObject * uninherit(RexxClass *)
void setInstanceMethodDictionary(RexxTable *m)