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. 233 code->
call(activity,
this, msgname, argPtr, argcount, result);
252 code->
call(activity,
this, msgname, argPtr, argcount, calltype, environment, context, result);
343 return envelope->
pack(
this);
359 outBuffer->
strptr = (
char *)data;
371 FILE *handle = fopen(filename,
"wb");
389 metaData.write(handle, buffer);
395 void *RoutineClass::operator
new (
size_t size)
434 newSourceArray =
new_array(sourceString);
448 for (
size_t counter = 1; counter <= newSourceArray->
size(); counter++)
461 newSourceArray ->
put(sourceString, counter);
528 for (
size_t counter = 1; counter <= newSourceArray->
size(); counter++)
541 newSourceArray ->
put(sourceString, counter);
561 size_t initCount = 0;
577 sourceContext = ((
RexxMethod *)option)->getSourceObject();
581 sourceContext = ((
RoutineClass *)option)->getSourceObject();
585 sourceContext = ((
PackageClass *)option)->getSourceObject();
597 if (((
RexxClass *)
this)->hasUninitDefined())
602 newRoutine->
sendMessage(OREF_INIT, init_args, initCount);
621 if (((
RexxClass *)
this)->hasUninitDefined())
659 if (instore[0].strptr == NULL && instore[1].strptr == NULL)
670 if (instore[1].strptr != NULL)
676 if (instore[0].strptr != NULL)
686 if (instore[0].strptr != NULL)
690 if (source_buffer->
getData()[0] ==
'#' && source_buffer->
getData()[1] ==
'!')
692 memcpy(source_buffer->
getData(),
"--", 2);
699 routine->
save(&instore[1]);
735 envelope->
puff(buffer, startPointer, length);
752 const char *data = buffer->
getData();
756 if (data[0] ==
'#' && data[1] ==
'!')
768 bool badVersion =
false;
770 if (!metaData->
validate(badVersion))
795 const char *data = inData->
strptr;
799 if (data[0] ==
'#' && data[1] ==
'!')
814 if (!metaData->
validate(badVersion))
890 if (_words->
size() == 3)
895 else if (_words->
size() == 2)
RexxString * makeString()
#define Error_Incorrect_method_noarray
static void releaseResultMemory(void *)
void sendMessage(RexxString *, RexxArray *, ProtectedObject &)
RexxArray * new_array(size_t s)
RexxSource * getSourceObject()
void runProgram(RexxActivity *activity, RexxString *calltype, RexxString *environment, RexxObject **arguments, size_t argCount, ProtectedObject &result)
void setBufferedSource(RexxBuffer *newSource)
#define memory_mark_general(oref)
RexxSource * getSourceObject()
RexxObject * setSecurityManager(RexxObject *)
static RexxBuffer * readProgram(const char *file_name)
void requiredArgument(RexxObject *object, size_t position)
#define Error_Program_unreadable_name
static RexxClass * classInstance
RexxCode * generateCode(bool isMethod)
void reportException(wholenumber_t error)
RexxString * executableName
const char * getStringData()
void setProgramName(RexxString *name)
static RoutineClass * restore(RexxBuffer *, char *, size_t length)
RexxObject * get(size_t pos)
static const char * strnchr(const char *, size_t n, char ch)
void inheritSourceContext(RexxSource *source)
virtual void call(RexxActivity *, RoutineClass *, RexxString *, RexxObject **, size_t, RexxString *, RexxString *, int, ProtectedObject &)
RexxActivation * getCurrentRexxFrame()
RexxObject * getReceiver()
void call(RexxActivity *, RexxString *, RexxObject **, size_t, RexxString *, RexxString *, int, ProtectedObject &)
RexxString * makeString(RexxString *, RexxString *)
#define MAKERXSTRING(r, p, l)
RexxReturnCode REXXENTRY RexxResolveMacroFunction(const char *, PRXSTRING)
#define Error_Incorrect_method_no_method
void put(RexxObject *eref, size_t pos)
RoutineClass(RexxString *n, BaseCode *_code)
#define Error_Incorrect_method_argType
RexxArray * arrayArgument(RexxObject *object, size_t position)
void setBehaviour(RexxBehaviour *b)
#define flatten_reference(oref, envel)
static RoutineClass * restoreFromMacroSpace(RexxString *name)
#define Error_Incorrect_method_nostring_inarray
#define CLASS_CREATE(name, id, className)
RexxObject * callRexx(RexxObject **, size_t)
#define memory_mark(oref)
static RexxArray * words(const char *data, size_t length)
static RoutineClass * processInstore(PRXSTRING instore, RexxString *name)
#define Error_Program_unreadable_version
RoutineClass * loadExternalRoutine(RexxString *name, RexxString *descriptor)
static RoutineClass * newRoutineObject(RexxString *, RexxObject *, RexxObject *, RexxSource *s)
RexxBuffer * new_buffer(size_t s)
void flatten(RexxEnvelope *)
virtual RexxObject * setSecurityManager(RexxObject *manager)
RexxBuffer * pack(RexxObject *)
#define setUpFlatten(type)
static RexxActivity *volatile currentActivity
static void createInstance()
void puff(RexxBuffer *, char *, size_t length)
static RoutineClass * loadRoutine(RexxString *packageName, RexxString *function)
RexxString * stringArgument(RexxObject *object, size_t position)
void liveGeneral(int reason)
RexxArray * requestArray()
static RoutineClass * fromFile(RexxString *filename)
static void processNewArgs(RexxObject **, size_t, RexxObject ***, size_t *, size_t, RexxObject **, RexxObject **)
RoutineClass * newRexx(RexxObject **, size_t)
RexxString * getDefaultEnvironment()
RexxObject * new_object(size_t s)
#define Error_Program_unreadable_output_error
#define Error_Translation_bad_external
RoutineClass * newFileRexx(RexxString *)
RexxObject * callWithRexx(RexxArray *)
InterpreterInstance * getInstance()
RexxReturnCode REXXENTRY RexxQueryMacro(CSTRING, unsigned short *)