Open Object Rexx - Files

Interpreter Execution Source Files

This directory contains files used to implement the underlying ooRexx execution model. This includes elements of the call stack, ooRexx variable management, and various code objects that implement method/routine calls.

The following is a partial list of the files to be found in this subdirectory.

RexxActivation.*
RexxActivation represents a single stack frame context for running ooRexx code. The activation is the context in which ooRexx code executes, holding the ooRexx variables, current settings (digits, trace, etc.), as well as managing all of the source code functions.
RexxNativeActivation.*
RexxNativeActivation represents a native code stack frame. There will be a RexxNativeActivation at the base of every RexxActivity call stack, and additional native activations will be created for every call out to library method or routine code. The native activation acts as the context used by the different context APIs to retrieve current execution information. The native activation is also responsible for releasing exclusive interpreter access before callouts are made and then reacquiring access upon return.
RexxCode.*
RexxCode manages a single routine or method written in ooRexx code.
CppCode.*
CppCode manages a methods written as native C++ methods. This handles the transition from ooRexx method invocations into the backing C++ method.
NativeCode.*
NativeCode manages methods and routines written as external library code. The native code classes work with RexxNativeActivation to orchestrate library callouts.
RexxActivationStack.*
RexxActivationStack manages the execution stack for running ooRexx code. All operators, functions, etc. push intermediate results on to the activation stack for the current running ooRexx context.
RexxLocalVariables.*
RexxLocalVariables manages the the local variable pool for an active RexxActivation instance.
RexxVariableDictionary.*
RexxVariableDictionary implments a searchable dictionary of variables. This class is also used by RexxObject to hold the object variables of an object instance.
RexxVariable.*
RexxVariable represents a single instance of an ooRexx variable.