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)  

RexxSource Class Reference

#include <SourceFile.hpp>

Inheritance diagram for RexxSource:
[legend]
Collaboration diagram for RexxSource:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 RexxSource (RexxString *, RexxArray *)
 
 RexxSource (RexxString *programname, RexxBuffer *source_buffer)
 
 RexxSource (RexxString *programname, const char *data, size_t length)
 
 RexxSource (RexxString *programname)
 
 RexxSource (RESTORETYPE restoreType)
 
void initBuffered (RexxBuffer *)
 
void initFile ()
 
void extractNameInformation ()
 
bool reconnect ()
 
void setReconnect ()
 
void setBufferedSource (RexxBuffer *newSource)
 
void interpretLine (size_t)
 
void comment ()
 
void needVariable (RexxToken *)
 
void needVariableOrDotSymbol (RexxToken *)
 
bool terminator (int, RexxObject *)
 
void nextLine ()
 
void position (size_t, size_t)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
size_t sourceSize ()
 
RexxStringget (size_t)
 
void nextClause ()
 
RexxTokensourceNextToken (RexxToken *)
 
RexxStringtraceBack (RexxActivation *, SourceLocation &, size_t, bool)
 
RexxStringextract (SourceLocation &)
 
RexxArrayextractSource (SourceLocation &)
 
RexxArrayextractSource ()
 
void startLocation (SourceLocation &)
 
void endLocation (SourceLocation &)
 
bool nextSpecial (unsigned int, SourceLocation &)
 
unsigned int locateToken (RexxToken *)
 
void globalSetup ()
 
RexxStringpackLiteral (size_t, size_t, int)
 
RexxCodegenerateCode (bool isMethod)
 
RexxCodeinterpretMethod (RexxDirectory *)
 
RexxCodeinterpret (RexxString *, RexxDirectory *, size_t)
 
void checkDirective (int errorCode)
 
bool hasBody ()
 
RexxObjecttoss (RexxObject *)
 
void cleanup ()
 
void mergeRequired (RexxSource *)
 
PackageClassloadRequires (RexxActivity *activity, RexxString *target)
 
PackageClassloadRequires (RexxActivity *activity, RexxString *target, RexxArray *s)
 
void addPackage (PackageClass *package)
 
PackageClassgetPackage ()
 
void inheritSourceContext (RexxSource *source)
 
RoutineClassfindRoutine (RexxString *)
 
RoutineClassfindLocalRoutine (RexxString *)
 
RoutineClassfindPublicRoutine (RexxString *)
 
RexxClassfindClass (RexxString *)
 
RexxClassfindInstalledClass (RexxString *name)
 
RexxClassfindPublicClass (RexxString *name)
 
RexxStringresolveProgramName (RexxActivity *activity, RexxString *name)
 
void processInstall (RexxActivation *)
 
void install ()
 
RexxCodetranslate (RexxDirectory *)
 
void resolveDependencies ()
 
void directive ()
 
void routineDirective ()
 
void requiresDirective ()
 
void libraryDirective (RexxString *name, RexxToken *token)
 
void methodDirective ()
 
void classDirective ()
 
void attributeDirective ()
 
void constantDirective ()
 
void optionsDirective ()
 
void decodeExternalMethod (RexxString *methodName, RexxString *externalSpec, RexxString *&library, RexxString *&procedure)
 
RexxMethodcreateNativeMethod (RexxString *name, RexxString *library, RexxString *procedure)
 
void createMethod (RexxString *name, bool classMethod, bool privateMethod, bool protectedMethod, bool guardedMethod)
 
void createAttributeGetterMethod (RexxString *name, RexxVariableBase *retriever, bool classMethod, bool privateMethod, bool protectedMethod, bool guardedMethod)
 
void createAttributeSetterMethod (RexxString *name, RexxVariableBase *retriever, bool classMethod, bool privateMethod, bool protectedMethod, bool guardedMethod)
 
void createConstantGetterMethod (RexxString *name, RexxObject *value)
 
void createAbstractMethod (RexxString *name, bool classMethod, bool privateMethod, bool protectedMethod, bool guardedMethod)
 
void checkDuplicateMethod (RexxString *name, bool classMethod, int errorMsg)
 
void addMethod (RexxString *name, RexxMethod *method, bool classMethod)
 
void flushControl (RexxInstruction *)
 
RexxCodetranslateBlock (RexxDirectory *)
 
RexxInstructioninstruction ()
 
RexxVariableBaseaddVariable (RexxString *)
 
RexxStemVariableaddStem (RexxString *)
 
RexxCompoundVariableaddCompound (RexxString *)
 
void expose (RexxString *)
 
RexxStringcommonString (RexxString *)
 
RexxObjectaddText (RexxToken *)
 
RexxObjectaddVariable (RexxToken *)
 
void addClause (RexxInstruction *)
 
void addLabel (RexxInstruction *, RexxString *)
 
RexxInstructionfindLabel (RexxString *)
 
void setGuard ()
 
RexxArraygetGuard ()
 
void addBlock (void)
 
RexxVariableBasegetRetriever (RexxString *)
 
RexxObjectconstantExpression ()
 
RexxObjectconstantLogicalExpression ()
 
RexxObjectparenExpression (RexxToken *)
 
RexxObjectexpression (int)
 
RexxObjectsubExpression (int)
 
size_t argList (RexxToken *, int)
 
RexxArrayargArray (RexxToken *, int)
 
RexxObjectfunction (RexxToken *, RexxToken *, int)
 
RexxObjectcollectionMessage (RexxToken *, RexxObject *, int)
 
RexxTokengetToken (int, int)
 
RexxObjectmessage (RexxObject *, bool, int)
 
RexxObjectmessageTerm ()
 
RexxObjectvariableOrMessageTerm ()
 
RexxObjectmessageSubterm (int)
 
RexxObjectsubTerm (int)
 
void pushTerm (RexxObject *)
 
RexxObjectpopTerm ()
 
RexxObjectpopNTerms (size_t)
 
void isExposeValid ()
 
RexxArraywords (RexxString *)
 
void errorCleanup ()
 
void error (int)
 
void error (int, RexxObject *)
 
void error (int, RexxObject *, RexxObject *)
 
void error (int, RexxObject *, RexxObject *, RexxObject *)
 
void error (int errorcode, SourceLocation &location, RexxArray *subs)
 
void errorLine (int, RexxInstruction *)
 
void errorPosition (int, RexxToken *)
 
void errorToken (int, RexxToken *)
 
void blockError (RexxInstruction *)
 
RexxInstructionsourceNewObject (size_t, RexxBehaviour *, int)
 
size_t processVariableList (int)
 
RexxObjectparseConditional (int *, int)
 
RexxObjectparseLogical (RexxToken *first, int terminators)
 
bool terminator (int, RexxToken *)
 
bool isTraceable ()
 
bool isInterpret ()
 
bool needsInstallation ()
 
void install (RexxActivation *activation)
 
void addReference (RexxObject *reference)
 
void pushDo (RexxInstruction *i)
 
RexxInstructionpopDo ()
 
RexxInstructiontopDo ()
 
void setProgramName (RexxString *name)
 
RexxStringgetProgramName ()
 
RexxStringgetProgramDirectory ()
 
RexxStringgetProgramExtension ()
 
RexxStringgetProgramFile ()
 
RexxDirectorygetMethods ()
 
RexxDirectorygetRoutines ()
 
void pushOperator (RexxToken *operatorToken)
 
RexxTokenpopOperator ()
 
RexxTokentopOperator ()
 
void reclaimClause ()
 
bool atEnd (void)
 
RexxTokennextToken ()
 
RexxTokennextReal ()
 
void previousToken ()
 
void firstToken ()
 
void trimClause ()
 
size_t markPosition ()
 
void resetPosition (size_t p)
 
void syntaxError (int errorcode, RexxInstruction *i)
 
void blockSyntaxError (RexxInstruction *i)
 
void syntaxErrorAt (int errorcode, RexxToken *token)
 
void syntaxError (int errorcode, RexxObject *a1)
 
void syntaxError (int errorcode, RexxObject *a1, RexxObject *a2)
 
void syntaxError (int errorcode, RexxObject *a1, RexxObject *a2, RexxObject *a3)
 
void syntaxError (int errorcode, RexxToken *token)
 
void syntaxError (int errorcode)
 
bool isInternalCode ()
 
StackFrameClasscreateStackFrame ()
 
RexxInstructionaddressNew ()
 
RexxInstructionassignmentNew (RexxToken *)
 
RexxInstructionassignmentOpNew (RexxToken *, RexxToken *)
 
RexxInstructioncallNew ()
 
RexxInstructioncommandNew ()
 
RexxInstructiondoNew ()
 
RexxInstructionloopNew ()
 
RexxInstructioncreateLoop ()
 
RexxInstructioncreateDoLoop ()
 
RexxInstructioncreateDoLoop (RexxInstructionDo *, bool)
 
RexxInstructiondropNew ()
 
RexxInstructionelseNew (RexxToken *)
 
RexxInstructionendNew ()
 
RexxInstructionendIfNew (RexxInstructionIf *)
 
RexxInstructionexitNew ()
 
RexxInstructionexposeNew ()
 
RexxInstructionforwardNew ()
 
void RexxInstructionForwardCreate (RexxInstructionForward *)
 
RexxInstructionguardNew ()
 
RexxInstructionifNew (int)
 
RexxInstructioninstructionNew (int)
 
RexxInstructioninterpretNew ()
 
RexxInstructionlabelNew ()
 
RexxInstructionleaveNew (int)
 
RexxInstructionmessageNew (RexxExpressionMessage *)
 
RexxInstructionmessageAssignmentNew (RexxExpressionMessage *, RexxObject *)
 
RexxInstructionmessageAssignmentOpNew (RexxExpressionMessage *, RexxToken *, RexxObject *)
 
RexxInstructionnopNew ()
 
RexxInstructionnumericNew ()
 
RexxInstructionoptionsNew ()
 
RexxInstructionotherwiseNew (RexxToken *)
 
RexxInstructionparseNew (int)
 
RexxInstructionprocedureNew ()
 
RexxInstructionqueueNew (int)
 
RexxInstructionraiseNew ()
 
RexxInstructionreplyNew ()
 
RexxInstructionreturnNew ()
 
RexxInstructionsayNew ()
 
RexxInstructionselectNew ()
 
RexxInstructionsignalNew ()
 
RexxInstructionthenNew (RexxToken *, RexxInstructionIf *)
 
RexxInstructiontraceNew ()
 
RexxInstructionuseNew ()
 
void holdObject (RexxObject *object)
 
void saveObject (RexxObject *object)
 
void removeObj (RexxObject *object)
 
void setSecurityManager (RexxObject *manager)
 
SecurityManagergetSecurityManager ()
 
RexxDirectorygetLocalRoutines ()
 
RexxDirectorygetPublicRoutines ()
 
void setLocalRoutines (RexxDirectory *r)
 
void setPublicRoutines (RexxDirectory *r)
 
void addInstalledClass (RexxString *name, RexxClass *classObject, bool publicClass)
 
void addInstalledRoutine (RexxString *name, RoutineClass *routineObject, bool publicRoutine)
 
RexxDirectorygetInstalledClasses ()
 
RexxDirectorygetInstalledPublicClasses ()
 
RexxDirectorygetImportedClasses ()
 
RexxDirectorygetInstalledRoutines ()
 
RexxDirectorygetInstalledPublicRoutines ()
 
RexxDirectorygetImportedRoutines ()
 
RexxDirectorygetDefinedMethods ()
 
RexxListgetPackages ()
 
size_t getDigits ()
 
bool getForm ()
 
size_t getFuzz ()
 
size_t getTraceSetting ()
 
size_t getTraceFlags ()
 
RexxStringgetTrace ()
 
- Public Member Functions inherited from RexxInternalObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, 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 ()
 
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 void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxArraymakeArray ()
 
virtual RexxStringstringValue ()
 
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 *)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

Static Public Member Functions

static int resolveKeyword (RexxString *token, KeywordEntry *Table, int Table_Size)
 
static int subKeyword (RexxToken *)
 
static int keyword (RexxToken *)
 
static int builtin (RexxToken *)
 
static size_t resolveBuiltin (RexxString *)
 
static int condition (RexxToken *)
 
static int parseOption (RexxToken *)
 
static int keyDirective (RexxToken *)
 
static int subDirective (RexxToken *)
 
static int precedence (RexxToken *)
 
static bool parseTraceSetting (RexxString *, size_t &, size_t &, char &)
 
static RexxStringformatTraceSetting (size_t source)
 
static bool isSymbolCharacter (char ch)
 
static int translateChar (char ch)
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Static Public Attributes

static pbuiltin builtinTable []
 
static const size_t TRACE_ALL = 'A'
 
static const size_t TRACE_COMMANDS = 'C'
 
static const size_t TRACE_LABELS = 'L'
 
static const size_t TRACE_NORMAL = 'N'
 
static const size_t TRACE_FAILURES = 'F'
 
static const size_t TRACE_ERRORS = 'E'
 
static const size_t TRACE_RESULTS = 'R'
 
static const size_t TRACE_INTERMEDIATES = 'I'
 
static const size_t TRACE_OFF = 'O'
 
static const size_t TRACE_IGNORE = '0'
 
static const size_t DEFAULT_TRACE_SETTING = TRACE_NORMAL
 
static const size_t TRACE_SETTING_MASK = 0xff
 
static const size_t DEBUG_IGNORE = 0x0000
 
static const size_t DEBUG_ON = 0x0100
 
static const size_t DEBUG_OFF = 0x0200
 
static const size_t DEBUG_TOGGLE = 0x0400
 
static const size_t DEBUG_NOTRACE = 0x0800
 
static const size_t TRACE_DEBUG_MASK = 0xff00
 

Protected Attributes

size_t flags
 
RexxArraysourceArray
 
RexxStringprogramName
 
RexxStringprogramDirectory
 
RexxStringprogramFile
 
RexxStringprogramExtension
 
SecurityManagersecurityManager
 
const char * current
 
RexxClauseclause
 
SourceLocation clauseLocation
 
RexxBuffersourceBuffer
 
RexxBuffersourceIndices
 
size_t current_length
 
size_t line_count
 
size_t line_number
 
size_t line_offset
 
size_t interpret_adjust
 
RexxCodeinitCode
 
RexxListloadedPackages
 
PackageClasspackage
 
RexxSourceparentSource
 
RexxDirectoryroutines
 
RexxDirectorypublic_routines
 
RexxListlibraries
 
RexxListrequires
 
RexxListclasses
 
RexxDirectoryinstalled_public_classes
 
RexxDirectoryinstalled_classes
 
RexxDirectorymerged_public_classes
 
RexxDirectorymerged_public_routines
 
RexxDirectorymethods
 
size_t digits
 
size_t fuzz
 
bool form
 
size_t traceSetting
 
size_t traceFlags
 
intptr_t reserved1
 
intptr_t reserved2
 
intptr_t reserved3
 
intptr_t reserved4
 
RexxIdentityTablesavelist
 
RexxStackholdstack
 
RexxDirectoryliterals
 
RexxDirectorystrings
 
RexxQueuecontrol
 
RexxQueueterms
 
RexxQueuesubTerms
 
RexxQueueoperators
 
RexxDirectoryclass_dependencies
 
ClassDirectiveactive_class
 
RexxInstructionfirst
 
RexxInstructionlast
 
RexxInstructioncurrentInstruction
 
RexxDirectoryvariables
 
RexxDirectorylabels
 
RexxIdentityTableguard_variables
 
RexxDirectoryexposed_variables
 
RexxListcalls
 
size_t currentstack
 
size_t maxstack
 
size_t variableindex
 

Static Protected Attributes

static KeywordEntry directives []
 
static KeywordEntry keywordInstructions []
 
static KeywordEntry subKeywords []
 
static KeywordEntry builtinFunctions []
 
static KeywordEntry conditionKeywords []
 
static KeywordEntry parseOptions []
 
static KeywordEntry subDirectives []
 
static int characterTable []
 

Friends

class RexxActivation
 

Additional Inherited Members

- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 131 of file SourceFile.hpp.

Constructor & Destructor Documentation

◆ RexxSource() [1/5]

RexxSource::RexxSource ( RexxString programname,
RexxArray source_array 
)

Create a source object with source provided from an array.

Parameters
programnameThe name of the program.
source_arrayThe array of the source lines.

Definition at line 110 of file SourceFile.cpp.

References line_count, OrefSet, position(), setProgramName(), RexxArray::size(), and sourceArray.

Referenced by interpret().

◆ RexxSource() [2/5]

RexxSource::RexxSource ( RexxString programname,
RexxBuffer source_buffer 
)

Create a source object with source provided from a buffer.

Parameters
programnameThe name of the program.
source_bufferThe source buffer holding the source data.

Definition at line 130 of file SourceFile.cpp.

References initBuffered(), and setProgramName().

◆ RexxSource() [3/5]

RexxSource::RexxSource ( RexxString programname,
const char *  data,
size_t  length 
)

Create a source object with source provided from a a data buffer (not a buffer object).

Parameters
programnameThe name of the program.
dataThe data buffer pointer.
lengththe size of the source buffer.

Definition at line 150 of file SourceFile.cpp.

References initBuffered(), new_buffer(), and setProgramName().

◆ RexxSource() [4/5]

RexxSource::RexxSource ( RexxString programname)

Create a source object with source provided from a filo.

Parameters
programnameThe name of the program (also the file name)

Definition at line 167 of file SourceFile.cpp.

References initFile(), and setProgramName().

◆ RexxSource() [5/5]

RexxSource::RexxSource ( RESTORETYPE  restoreType)
inline

Definition at line 142 of file SourceFile.hpp.

Member Function Documentation

◆ addBlock()

void RexxSource::addBlock ( void  )

◆ addClause()

void RexxSource::addClause ( RexxInstruction _instruction)

Definition at line 4507 of file SourceFile.cpp.

References first, last, OREF_NULL, OrefSet, RexxInstruction::setNext(), and toss().

Referenced by flushControl(), and translateBlock().

◆ addCompound()

◆ addInstalledClass()

void RexxSource::addInstalledClass ( RexxString name,
RexxClass classObject,
bool  publicClass 
)

Add an installed class to this source package

Parameters
nameThe class name
classObjectThe class object
publicClassIndicates whether this needs to be added to the public list as well.

Definition at line 6175 of file SourceFile.cpp.

References install(), installed_classes, installed_public_classes, new_directory(), OREF_NULL, OrefSet, and RexxDirectory::setEntry().

Referenced by PackageClass::addClass(), PackageClass::addPublicClass(), and ClassDirective::install().

◆ addInstalledRoutine()

void RexxSource::addInstalledRoutine ( RexxString name,
RoutineClass routineObject,
bool  publicRoutine 
)

Add an installed routine to this source package

Parameters
nameThe routine name
classObjectThe routine object
publicClassIndicates whether this needs to be added to the public list as well.

Definition at line 6206 of file SourceFile.cpp.

References install(), new_directory(), OREF_NULL, OrefSet, public_routines, routines, and RexxDirectory::setEntry().

Referenced by PackageClass::addPublicRoutine(), and PackageClass::addRoutine().

◆ addLabel()

void RexxSource::addLabel ( RexxInstruction label,
RexxString labelname 
)

Definition at line 4533 of file SourceFile.cpp.

References RexxDirectory::fastAt(), labels, OREF_NULL, and RexxDirectory::put().

Referenced by labelNew().

◆ addMethod()

void RexxSource::addMethod ( RexxString name,
RexxMethod method,
bool  classMethod 
)

Add a new method to this compilation.

Parameters
nameThe directory name of the method.
methodThe method object.
classMethodThe class/instance method indicator.

Definition at line 2133 of file SourceFile.cpp.

References active_class, ClassDirective::addMethod(), methods, OREF_NULL, and RexxDirectory::setEntry().

Referenced by attributeDirective(), createAbstractMethod(), createAttributeGetterMethod(), createAttributeSetterMethod(), createConstantGetterMethod(), createMethod(), and methodDirective().

◆ addPackage()

void RexxSource::addPackage ( PackageClass p)

Add a package to a source file context. This allows new packages to be imported into a source.

Parameters
p

Definition at line 6126 of file SourceFile.cpp.

References RexxList::append(), PackageClass::getSourceObject(), RexxList::hasItem(), install(), loadedPackages, mergeRequired(), new_list(), OREF_NULL, and TheTrueObject.

Referenced by PackageClass::addPackage(), and loadRequires().

◆ addReference()

void RexxSource::addReference ( RexxObject reference)
inline

Definition at line 285 of file SourceFile.hpp.

References RexxList::addLast(), and calls.

Referenced by callNew(), function(), and signalNew().

◆ addressNew()

◆ addStem()

◆ addText()

◆ addVariable() [1/2]

◆ addVariable() [2/2]

RexxObject * RexxSource::addVariable ( RexxToken token)

Definition at line 4349 of file SourceFile.cpp.

References addText(), and needVariable().

◆ argArray()

RexxArray * RexxSource::argArray ( RexxToken _first,
int  terminators 
)

Definition at line 4900 of file SourceFile.cpp.

References argList(), new_array(), RexxQueue::pop(), RexxArray::put(), and subTerms.

◆ argList()

◆ assignmentNew()

RexxInstruction * RexxSource::assignmentNew ( RexxToken target)

◆ assignmentOpNew()

RexxInstruction * RexxSource::assignmentOpNew ( RexxToken target,
RexxToken operation 
)

Create a special assignment op of the form "variable (op)= expr".

Parameters
targetThe assignment target variable.
operationThe operator token. classId is TOKEN_ASSIGNMENT, the subclass is the type of the operation to perform.
Returns
The constructed instruction object.

Definition at line 194 of file InstructionParser.cpp.

References addText(), Error_Invalid_expression_assign, expression(), needVariable(), new_instruction, OREF_NULL, RexxToken::subclass, syntaxError(), and TERM_EOC.

Referenced by instruction().

◆ atEnd()

bool RexxSource::atEnd ( void  )
inline

Definition at line 300 of file SourceFile.hpp.

References flags, line_count, line_number, and reclaimed.

Referenced by translate().

◆ attributeDirective()

◆ blockError()

◆ blockSyntaxError()

void RexxSource::blockSyntaxError ( RexxInstruction i)
inline

Definition at line 310 of file SourceFile.hpp.

References blockError().

Referenced by translateBlock().

◆ builtin()

int RexxSource::builtin ( RexxToken token)
static

◆ callNew()

◆ checkDirective()

void RexxSource::checkDirective ( int  errorCode)

◆ checkDuplicateMethod()

void RexxSource::checkDuplicateMethod ( RexxString name,
bool  classMethod,
int  errorMsg 
)

check for a duplicate method.

Parameters
nameThe name to check.
classMethodIndicates whether this is a check for a CLASS or INSTANCE method.
errorMsgThe error code to use if there is a duplicate.

Definition at line 2097 of file SourceFile.cpp.

References active_class, ClassDirective::checkDuplicateMethod(), RexxDirectory::entry(), Error_Translation_missing_class, methods, OREF_NULL, and syntaxError().

Referenced by attributeDirective(), constantDirective(), and methodDirective().

◆ classDirective()

◆ cleanup()

◆ collectionMessage()

RexxObject * RexxSource::collectionMessage ( RexxToken token,
RexxObject target,
int  terminators 
)

◆ commandNew()

RexxInstruction * RexxSource::commandNew ( )

Definition at line 430 of file InstructionParser.cpp.

References expression(), new_instruction, and TERM_EOC.

Referenced by instruction().

◆ comment()

◆ commonString()

◆ condition()

int RexxSource::condition ( RexxToken token)
static

◆ constantDirective()

◆ constantExpression()

◆ constantLogicalExpression()

◆ createAbstractMethod()

void RexxSource::createAbstractMethod ( RexxString name,
bool  classMethod,
bool  privateMethod,
bool  protectedMethod,
bool  guardedMethod 
)

Create an abstract method.

Parameters
nameThe name of the method.
classMethodIndicates we're adding a class or instance method.
privateMethodThe method's private attribute.
protectedMethodThe method's protected attribute.
guardedMethodThe method's guarded attribute.

Definition at line 3090 of file SourceFile.cpp.

References addMethod(), and RexxMethod::setAttributes().

Referenced by attributeDirective().

◆ createAttributeGetterMethod()

void RexxSource::createAttributeGetterMethod ( RexxString name,
RexxVariableBase retriever,
bool  classMethod,
bool  privateMethod,
bool  protectedMethod,
bool  guardedMethod 
)

Create an ATTRIBUTE "get" method.

Parameters
nameThe name of the attribute.
retriever
classMethodIndicates we're adding a class or instance method.
privateMethodThe method's private attribute.
protectedMethodThe method's protected attribute.
guardedMethodThe method's guarded attribute.

Definition at line 3040 of file SourceFile.cpp.

References addMethod(), and RexxMethod::setAttributes().

Referenced by attributeDirective(), and methodDirective().

◆ createAttributeSetterMethod()

void RexxSource::createAttributeSetterMethod ( RexxString name,
RexxVariableBase retriever,
bool  classMethod,
bool  privateMethod,
bool  protectedMethod,
bool  guardedMethod 
)

Create an ATTRIBUTE "set" method.

Parameters
nameThe name of the attribute.
classMethodIndicates we're adding a class or instance method.
privateMethodThe method's private attribute.
protectedMethodThe method's protected attribute.
guardedMethodThe method's guarded attribute.

Definition at line 3065 of file SourceFile.cpp.

References addMethod(), and RexxMethod::setAttributes().

Referenced by attributeDirective(), and methodDirective().

◆ createConstantGetterMethod()

void RexxSource::createConstantGetterMethod ( RexxString name,
RexxObject value 
)

Create a CONSTANT "get" method.

Parameters
targetThe target method directory.
nameThe name of the attribute.

Definition at line 3109 of file SourceFile.cpp.

References active_class, ClassDirective::addConstantMethod(), addMethod(), OREF_NULL, and RexxMethod::setUnguarded().

Referenced by constantDirective().

◆ createDoLoop() [1/2]

RexxInstruction * RexxSource::createDoLoop ( )

Create a DO instruction instance.

Returns

Definition at line 470 of file InstructionParser.cpp.

References new_instruction.

Referenced by doNew(), and loopNew().

◆ createDoLoop() [2/2]

◆ createLoop()

RexxInstruction * RexxSource::createLoop ( )

Create a LOOP instruction instance.

Returns

Definition at line 484 of file InstructionParser.cpp.

References new_instruction.

Referenced by loopNew().

◆ createMethod()

void RexxSource::createMethod ( RexxString name,
bool  classMethod,
bool  privateMethod,
bool  protectedMethod,
bool  guardedMethod 
)

Create a Rexx method body.

Parameters
nameThe name of the attribute.
classMethodIndicates whether we are creating a class or instance method.
privateMethodThe method's private attribute.
protectedMethodThe method's protected attribute.
guardedMethodThe method's guarded attribute.

Definition at line 3006 of file SourceFile.cpp.

References addMethod(), OREF_NULL, saveObject(), RexxMethod::setAttributes(), and translateBlock().

Referenced by attributeDirective().

◆ createNativeMethod()

RexxMethod * RexxSource::createNativeMethod ( RexxString name,
RexxString library,
RexxString procedure 
)

Create a native method from a specification.

Parameters
nameThe method name.
libraryThe library containing the method.
procedureThe name of the procedure within the package.
Returns
A method object representing this method.

Definition at line 2542 of file SourceFile.cpp.

References Error_External_name_not_found_method, OREF_NULL, PackageManager::resolveMethod(), RexxNativeCode::setSourceObject(), and syntaxError().

Referenced by attributeDirective(), and methodDirective().

◆ createStackFrame()

StackFrameClass * RexxSource::createStackFrame ( )

Create a stack frame for this parsing context.

Returns
a stack frame instance for error reporting

Definition at line 924 of file SourceFile.cpp.

References clauseLocation, FRAME_PARSE, SourceLocation::getLineNumber(), OREF_NULL, programName, and traceBack().

Referenced by ParseActivationFrame::createStackFrame().

◆ decodeExternalMethod()

void RexxSource::decodeExternalMethod ( RexxString methodName,
RexxString externalSpec,
RexxString *&  library,
RexxString *&  procedure 
)

Decode an external library method specification.

Parameters
methodNameThe internal name of the method (uppercased).
externalSpecThe external specification string.
libraryThe returned library name.
procedureThe returned package name.

Definition at line 2566 of file SourceFile.cpp.

References CHAR_LIBRARY, Error_Translation_bad_external, RexxArray::get(), OREF_NULL, RexxArray::size(), syntaxError(), and words().

Referenced by attributeDirective(), and methodDirective().

◆ directive()

◆ doNew()

RexxInstruction * RexxSource::doNew ( )

Definition at line 444 of file InstructionParser.cpp.

References createDoLoop().

Referenced by instruction().

◆ dropNew()

RexxInstruction * RexxSource::dropNew ( )

Definition at line 783 of file InstructionParser.cpp.

References KEYWORD_DROP, new_variable_instruction, processVariableList(), and subTerms.

Referenced by instruction().

◆ elseNew()

RexxInstruction * RexxSource::elseNew ( RexxToken token)

Definition at line 797 of file InstructionParser.cpp.

References new_instruction.

Referenced by instruction().

◆ endIfNew()

RexxInstruction * RexxSource::endIfNew ( RexxInstructionIf parent)

Definition at line 839 of file InstructionParser.cpp.

References new_instruction.

Referenced by flushControl().

◆ endLocation()

void RexxSource::endLocation ( SourceLocation location)

Definition at line 196 of file Scanner.cpp.

References line_number, line_offset, and SourceLocation::setEnd().

Referenced by nextSpecial(), and sourceNextToken().

◆ endNew()

◆ error() [1/5]

void RexxSource::error ( int  errorcode,
SourceLocation location,
RexxArray subs 
)

◆ error() [2/5]

void RexxSource::error ( int  errorcode)

◆ error() [3/5]

void RexxSource::error ( int  errorcode,
RexxObject value 
)

◆ error() [4/5]

void RexxSource::error ( int  errorcode,
RexxObject value1,
RexxObject value2 
)

◆ error() [5/5]

void RexxSource::error ( int  errorcode,
RexxObject value1,
RexxObject value2,
RexxObject value3 
)

◆ errorCleanup()

void RexxSource::errorCleanup ( )

Definition at line 5475 of file SourceFile.cpp.

References cleanup().

Referenced by error(), errorLine(), errorPosition(), and errorToken().

◆ errorLine()

void RexxSource::errorLine ( int  errorcode,
RexxInstruction _instruction 
)

◆ errorPosition()

◆ errorToken()

◆ exitNew()

RexxInstruction * RexxSource::exitNew ( )

Definition at line 852 of file InstructionParser.cpp.

References expression(), new_instruction, and TERM_EOC.

Referenced by instruction().

◆ expose()

void RexxSource::expose ( RexxString name)

Definition at line 4318 of file SourceFile.cpp.

References exposed_variables, and RexxDirectory::put().

Referenced by processVariableList().

◆ exposeNew()

RexxInstruction * RexxSource::exposeNew ( )

◆ expression()

◆ extract()

◆ extractNameInformation()

void RexxSource::extractNameInformation ( )

Extract various bits of the source name to give us directory, extension and file portions to be used for searches for additional files.

Definition at line 315 of file SourceFile.cpp.

References SysFileSystem::extractDirectory(), SysFileSystem::extractExtension(), SysFileSystem::extractFile(), OREF_NULL, OrefSet, programDirectory, programExtension, programFile, and programName.

Referenced by initBuffered(), and setProgramName().

◆ extractSource() [1/2]

RexxArray * RexxSource::extractSource ( )

Extract all of the source from the package.

Returns
An array of the source lines.

Definition at line 1066 of file SourceFile.cpp.

References SourceLocation::setEndLine(), SourceLocation::setLineNumber(), and SourceLocation::setOffset().

◆ extractSource() [2/2]

◆ findClass()

RexxClass * RexxSource::findClass ( RexxString className)

Resolve a class from this source file context (including any chained parent contexts).

Parameters
classNameThe target name of the class.
Returns
The resolved class object, if any.

Definition at line 1609 of file SourceFile.cpp.

References SecurityManager::checkEnvironmentAccess(), SecurityManager::checkLocalAccess(), findInstalledClass(), findPublicClass(), ActivityManager::getLocalEnvironment(), OREF_NULL, securityManager, TheEnvironment, and RexxString::upper().

Referenced by RexxNativeCode::findClass(), PackageClass::findClass(), RexxActivation::findClass(), PackageClass::findClassRexx(), ClassDirective::install(), and RexxActivation::resolveDotVariable().

◆ findInstalledClass()

RexxClass * RexxSource::findInstalledClass ( RexxString name)

Resolve a directly defined class object in this or a parent context.

Parameters
nameThe name we're searching for (all uppercase).
Returns
A resolved class object, if found.

Definition at line 1555 of file SourceFile.cpp.

References RexxDirectory::fastAt(), findInstalledClass(), installed_classes, OREF_NULL, and parentSource.

Referenced by findClass(), and findInstalledClass().

◆ findLabel()

RexxInstruction * RexxSource::findLabel ( RexxString labelname)

Definition at line 4549 of file SourceFile.cpp.

References RexxDirectory::fastAt(), labels, and OREF_NULL.

◆ findLocalRoutine()

RoutineClass * RexxSource::findLocalRoutine ( RexxString name)

Resolve a directly defined class object in this or a parent context.

Parameters
nameThe name we're searching for (all uppercase).
Returns
A resolved class object, if found.

Definition at line 1451 of file SourceFile.cpp.

References RexxDirectory::fastAt(), findLocalRoutine(), OREF_NULL, parentSource, and routines.

Referenced by findLocalRoutine(), and findRoutine().

◆ findPublicClass()

RexxClass * RexxSource::findPublicClass ( RexxString name)

◆ findPublicRoutine()

RoutineClass * RexxSource::findPublicRoutine ( RexxString name)

Resolve a public routine in this source context

Parameters
nameThe target name.
Returns
A resolved Routine object, if found.

Definition at line 1481 of file SourceFile.cpp.

References RexxDirectory::fastAt(), findPublicRoutine(), merged_public_routines, OREF_NULL, and parentSource.

Referenced by findPublicRoutine(), and findRoutine().

◆ findRoutine()

RoutineClass * RexxSource::findRoutine ( RexxString routineName)

Resolve a routine from this source files base context.

Parameters
routineNameThe routine name of interest.
Returns
A RoutineClass instance if located. Returns OREF_NULL if this is not known at this level.

Definition at line 1513 of file SourceFile.cpp.

References findLocalRoutine(), findPublicRoutine(), OREF_NULL, and RexxString::upper().

Referenced by PackageClass::findRoutine(), and RexxCode::findRoutine().

◆ firstToken()

void RexxSource::firstToken ( )
inline

Definition at line 305 of file SourceFile.hpp.

References clause, and RexxClause::firstToken().

Referenced by checkDirective(), hasBody(), and instruction().

◆ flatten()

void RexxSource::flatten ( RexxEnvelope envelope)
virtual

◆ flushControl()

void RexxSource::flushControl ( RexxInstruction _instruction)

◆ formatTraceSetting()

RexxString * RexxSource::formatTraceSetting ( size_t  source)
static

Format an encoded trace setting back into human readable form.

Parameters
settingThe source setting.
Returns
The string representation of the trace setting.

Definition at line 5821 of file SourceFile.cpp.

References DEBUG_ON, new_string(), and TRACE_SETTING_MASK.

Referenced by getTrace(), and RexxActivation::traceSetting().

◆ forwardNew()

RexxInstruction * RexxSource::forwardNew ( )

Definition at line 1006 of file InstructionParser.cpp.

References new_instruction, and RexxInstructionForwardCreate().

Referenced by instruction().

◆ function()

RexxObject * RexxSource::function ( RexxToken token,
RexxToken name,
int  terminators 
)

Definition at line 4981 of file SourceFile.cpp.

References addReference(), argList(), removeObj(), saveObject(), TERM_RIGHT, and TERM_SQRIGHT.

◆ generateCode()

RexxCode * RexxSource::generateCode ( bool  isMethod)

◆ get()

◆ getDefinedMethods()

RexxDirectory* RexxSource::getDefinedMethods ( )
inline

Definition at line 397 of file SourceFile.hpp.

References install(), and methods.

◆ getDigits()

size_t RexxSource::getDigits ( )
inline

◆ getForm()

bool RexxSource::getForm ( )
inline

Definition at line 400 of file SourceFile.hpp.

References form.

Referenced by PackageClass::form(), RexxActivation::RexxActivation(), and RexxActivation::setForm().

◆ getFuzz()

size_t RexxSource::getFuzz ( )
inline

Definition at line 401 of file SourceFile.hpp.

References fuzz.

Referenced by PackageClass::fuzz(), RexxActivation::RexxActivation(), and RexxActivation::setFuzz().

◆ getGuard()

RexxArray * RexxSource::getGuard ( )

Definition at line 4579 of file SourceFile.cpp.

References guard_variables, RexxHashTableCollection::makeArray(), OREF_NULL, and OrefSet.

Referenced by guardNew().

◆ getImportedClasses()

RexxDirectory* RexxSource::getImportedClasses ( )
inline

Definition at line 393 of file SourceFile.hpp.

References install(), and merged_public_classes.

Referenced by PackageClass::getImportedClasses().

◆ getImportedRoutines()

RexxDirectory* RexxSource::getImportedRoutines ( )
inline

Definition at line 396 of file SourceFile.hpp.

References install(), and merged_public_routines.

Referenced by PackageClass::getImportedRoutines().

◆ getInstalledClasses()

RexxDirectory* RexxSource::getInstalledClasses ( )
inline

Definition at line 391 of file SourceFile.hpp.

References install(), and installed_classes.

Referenced by PackageClass::getClasses().

◆ getInstalledPublicClasses()

RexxDirectory* RexxSource::getInstalledPublicClasses ( )
inline

Definition at line 392 of file SourceFile.hpp.

References install(), and installed_public_classes.

Referenced by PackageClass::getPublicClasses().

◆ getInstalledPublicRoutines()

RexxDirectory* RexxSource::getInstalledPublicRoutines ( )
inline

Definition at line 395 of file SourceFile.hpp.

References install(), and public_routines.

Referenced by PackageClass::getPublicRoutines().

◆ getInstalledRoutines()

RexxDirectory* RexxSource::getInstalledRoutines ( )
inline

Definition at line 394 of file SourceFile.hpp.

References install(), and routines.

Referenced by PackageClass::getRoutines().

◆ getLocalRoutines()

RexxDirectory* RexxSource::getLocalRoutines ( )
inline

Definition at line 369 of file SourceFile.hpp.

References routines.

Referenced by RexxCode::getLocalRoutines().

◆ getMethods()

RexxDirectory* RexxSource::getMethods ( )
inline

Definition at line 294 of file SourceFile.hpp.

References methods.

Referenced by PackageClass::getMethods(), and RexxCode::getMethods().

◆ getPackage()

PackageClass * RexxSource::getPackage ( )

Retrieve the package wrapper associated with this source.

Returns
The package instance that fronts for this source in Rexx code.

Definition at line 6156 of file SourceFile.cpp.

References OREF_NULL, OrefSet, and package.

Referenced by RexxActivity::generateProgramInformation(), and RexxActivity::reraiseException().

◆ getPackages()

RexxList* RexxSource::getPackages ( )
inline

Definition at line 398 of file SourceFile.hpp.

References install(), and loadedPackages.

Referenced by PackageClass::getImportedPackages().

◆ getProgramDirectory()

RexxString* RexxSource::getProgramDirectory ( )
inline

Definition at line 291 of file SourceFile.hpp.

References programDirectory.

◆ getProgramExtension()

RexxString* RexxSource::getProgramExtension ( )
inline

Definition at line 292 of file SourceFile.hpp.

References programExtension.

◆ getProgramFile()

RexxString* RexxSource::getProgramFile ( )
inline

Definition at line 293 of file SourceFile.hpp.

References programFile.

◆ getProgramName()

RexxString* RexxSource::getProgramName ( )
inline

◆ getPublicRoutines()

RexxDirectory* RexxSource::getPublicRoutines ( )
inline

Definition at line 370 of file SourceFile.hpp.

References public_routines.

Referenced by RexxCode::getPublicRoutines().

◆ getRetriever()

◆ getRoutines()

RexxDirectory* RexxSource::getRoutines ( )
inline

Definition at line 295 of file SourceFile.hpp.

References routines.

Referenced by RexxCode::getRoutines().

◆ getSecurityManager()

SecurityManager* RexxSource::getSecurityManager ( )
inline

◆ getToken()

RexxToken * RexxSource::getToken ( int  terminators,
int  errorcode 
)

Definition at line 5026 of file SourceFile.cpp.

References nextToken(), OREF_NULL, syntaxError(), and terminator().

Referenced by message().

◆ getTrace()

RexxString* RexxSource::getTrace ( )
inline

Definition at line 404 of file SourceFile.hpp.

References formatTraceSetting(), and traceSetting.

Referenced by PackageClass::trace().

◆ getTraceFlags()

size_t RexxSource::getTraceFlags ( )
inline

Definition at line 403 of file SourceFile.hpp.

References traceFlags.

Referenced by RexxActivation::RexxActivation().

◆ getTraceSetting()

size_t RexxSource::getTraceSetting ( )
inline

Definition at line 402 of file SourceFile.hpp.

References traceSetting.

Referenced by RexxActivation::RexxActivation().

◆ globalSetup()

◆ guardNew()

◆ hasBody()

bool RexxSource::hasBody ( )

Test if a directive is followed by a body of Rexx code instead of another directive or the end of the source.

Returns
True if there is a non-directive clause following the current clause.

Definition at line 1284 of file SourceFile.cpp.

References RexxToken::classId, firstToken(), flags, nextClause(), nextReal(), no_clause, reclaimClause(), and TOKEN_DCOLON.

Referenced by attributeDirective().

◆ holdObject()

void RexxSource::holdObject ( RexxObject object)
inline

◆ ifNew()

◆ inheritSourceContext()

void RexxSource::inheritSourceContext ( RexxSource source)

Merge a parent source context into our context so all of the bits that are visible in the parent are also resolvable in our context. This is mostly used for dynamically created methods.

Parameters
parentThe parent source context.

Definition at line 1358 of file SourceFile.cpp.

References OrefSet, and parentSource.

Referenced by RexxMethod::newMethodObject(), and RoutineClass::newRoutineObject().

◆ initBuffered()

◆ initFile()

◆ install() [1/2]

◆ install() [2/2]

void RexxSource::install ( RexxActivation activation)
inline

Definition at line 284 of file SourceFile.hpp.

References needsInstallation(), and processInstall().

◆ instruction()

RexxInstruction * RexxSource::instruction ( )

Definition at line 3837 of file SourceFile.cpp.

References _interpret, addressNew(), assignmentNew(), assignmentOpNew(), callNew(), RexxToken::classId, commandNew(), doNew(), dropNew(), elseNew(), endNew(), Error_Invalid_expression_general, Error_Translation_expose_interpret, Error_Translation_forward_interpret, Error_Translation_guard_interpret, Error_Translation_reply_interpret, Error_Translation_use_interpret, Error_Unexpected_label_interpret, Error_Unexpected_then_then, exitNew(), exposeNew(), firstToken(), flags, forwardNew(), guardNew(), ifNew(), interpretNew(), RexxToken::isEndOfClause(), RexxToken::isSymbol(), keyword(), KEYWORD_ADDRESS, KEYWORD_ARG, KEYWORD_CALL, KEYWORD_DO, KEYWORD_DROP, KEYWORD_ELSE, KEYWORD_END, KEYWORD_EXIT, KEYWORD_EXPOSE, KEYWORD_FORWARD, KEYWORD_GUARD, KEYWORD_IF, KEYWORD_INTERPRET, KEYWORD_ITERATE, KEYWORD_LEAVE, KEYWORD_LOOP, KEYWORD_NOP, KEYWORD_NUMERIC, KEYWORD_OPTIONS, KEYWORD_OTHERWISE, KEYWORD_PARSE, KEYWORD_PROCEDURE, KEYWORD_PULL, KEYWORD_PUSH, KEYWORD_QUEUE, KEYWORD_RAISE, KEYWORD_REPLY, KEYWORD_RETURN, KEYWORD_SAY, KEYWORD_SELECT, KEYWORD_SIGNAL, KEYWORD_THEN, KEYWORD_TRACE, KEYWORD_USE, KEYWORD_WHEN, labelNew(), leaveNew(), loopNew(), messageAssignmentNew(), messageAssignmentOpNew(), messageNew(), messageTerm(), nextReal(), nextToken(), nopNew(), numericNew(), OPERATOR_EQUAL, OPERATOR_STRICT_EQUAL, optionsNew(), OREF_NULL, otherwiseNew(), parseNew(), previousToken(), procedureNew(), QUEUE_FIFO, QUEUE_LIFO, queueNew(), raiseNew(), reclaimClause(), replyNew(), returnNew(), saveObject(), sayNew(), selectNew(), signalNew(), RexxToken::subclass, subExpression(), SUBKEY_ARG, SUBKEY_PULL, syntaxError(), TERM_EOC, TOKEN_ASSIGNMENT, TOKEN_COLON, TOKEN_DCOLON, TOKEN_LITERAL, TOKEN_SYMBOL, toss(), traceNew(), trimClause(), and useNew().

Referenced by translateBlock().

◆ instructionNew()

RexxInstruction * RexxSource::instructionNew ( int  type)

◆ interpret()

RexxCode * RexxSource::interpret ( RexxString string,
RexxDirectory _labels,
size_t  _line_number 
)

Definition at line 1231 of file SourceFile.cpp.

References interpretLine(), interpretMethod(), new_array(), programName, and RexxSource().

Referenced by RexxCode::interpret().

◆ interpretLine()

void RexxSource::interpretLine ( size_t  _line_number)

Definition at line 362 of file SourceFile.cpp.

References interpret_adjust, line_count, and line_number.

Referenced by interpret().

◆ interpretMethod()

RexxCode * RexxSource::interpretMethod ( RexxDirectory _labels)

Definition at line 1217 of file SourceFile.cpp.

References _interpret, cleanup(), flags, globalSetup(), and translate().

Referenced by interpret().

◆ interpretNew()

RexxInstruction * RexxSource::interpretNew ( )

◆ isExposeValid()

void RexxSource::isExposeValid ( )

◆ isInternalCode()

bool RexxSource::isInternalCode ( )
inline

Definition at line 317 of file SourceFile.hpp.

References RexxInternalObject::isOldSpace().

Referenced by traceBack().

◆ isInterpret()

bool RexxSource::isInterpret ( )
inline

Definition at line 281 of file SourceFile.hpp.

References _interpret, and flags.

Referenced by RexxCode::isInterpret().

◆ isSymbolCharacter()

static bool RexxSource::isSymbolCharacter ( char  ch)
inlinestatic

◆ isTraceable()

bool RexxSource::isTraceable ( )

Definition at line 780 of file SourceFile.cpp.

References OREF_NULL, reconnect(), sourceArray, and sourceBuffer.

Referenced by RexxCode::isTraceable().

◆ keyDirective()

int RexxSource::keyDirective ( RexxToken token)
static

Definition at line 549 of file KeywordConstants.cpp.

References directives, RexxToken::isSymbol(), resolveKeyword(), tabSize, and RexxToken::value.

Referenced by directive().

◆ keyword()

int RexxSource::keyword ( RexxToken token)
static

◆ labelNew()

◆ leaveNew()

◆ libraryDirective()

void RexxSource::libraryDirective ( RexxString name,
RexxToken token 
)

◆ live()

◆ liveGeneral()

◆ loadRequires() [1/2]

PackageClass * RexxSource::loadRequires ( RexxActivity activity,
RexxString target 
)

Load a ::REQUIRES directive when the source file is first invoked.

Parameters
targetThe name of the ::REQUIRES
instructionThe directive instruction being processed.

Definition at line 6072 of file SourceFile.cpp.

References addPackage(), Error_Routine_not_found_requires, RexxActivity::getInstance(), InterpreterInstance::loadRequires(), OREF_NULL, reportException(), and resolveProgramName().

Referenced by PackageClass::loadPackage(), and RexxActivation::loadRequires().

◆ loadRequires() [2/2]

PackageClass * RexxSource::loadRequires ( RexxActivity activity,
RexxString target,
RexxArray s 
)

Load a ::REQUIRES directive from an provided source target

Parameters
targetThe name of the ::REQUIRES

Definition at line 6101 of file SourceFile.cpp.

References addPackage(), Error_Routine_not_found_requires, RexxActivity::getInstance(), InterpreterInstance::loadRequires(), OREF_NULL, and reportException().

◆ locateToken()

◆ loopNew()

RexxInstruction * RexxSource::loopNew ( )

Definition at line 454 of file InstructionParser.cpp.

References createDoLoop(), and createLoop().

Referenced by instruction().

◆ markPosition()

size_t RexxSource::markPosition ( )
inline

Definition at line 307 of file SourceFile.hpp.

References clause, and RexxClause::mark().

Referenced by createDoLoop(), and messageTerm().

◆ mergeRequired()

◆ message()

◆ messageAssignmentNew()

RexxInstruction * RexxSource::messageAssignmentNew ( RexxExpressionMessage _message,
RexxObject _expression 
)

◆ messageAssignmentOpNew()

RexxInstruction * RexxSource::messageAssignmentOpNew ( RexxExpressionMessage _message,
RexxToken operation,
RexxObject _expression 
)

Create a message term pseudo assignment instruction for a shortcut operator. The instruction is of the form "messageTerm (op)= expr".

Parameters
messageThe target message term.
operationThe operation to perform in the expansion.
expressionThe expression (which is the right-hand term of the eventual expression).
Returns
The constructed message operator.

Definition at line 1267 of file InstructionParser.cpp.

References RexxExpressionMessage::argumentCount, RexxInternalObject::copy(), RexxExpressionMessage::makeAssignment(), new_variable_instruction, and RexxToken::subclass.

Referenced by instruction().

◆ messageNew()

RexxInstruction * RexxSource::messageNew ( RexxExpressionMessage _message)

Definition at line 1224 of file InstructionParser.cpp.

References RexxExpressionMessage::argumentCount, and new_variable_instruction.

Referenced by instruction().

◆ messageSubterm()

◆ messageTerm()

◆ methodDirective()

◆ needsInstallation()

bool RexxSource::needsInstallation ( )
inline

Definition at line 283 of file SourceFile.hpp.

References _install, and flags.

Referenced by install().

◆ needVariable()

◆ needVariableOrDotSymbol()

void RexxSource::needVariableOrDotSymbol ( RexxToken token)

◆ nextClause()

◆ nextLine()

void RexxSource::nextLine ( )

Definition at line 500 of file SourceFile.cpp.

References clause, line_number, line_offset, position(), and RexxClause::setEnd().

Referenced by comment(), locateToken(), and sourceNextToken().

◆ nextReal()

◆ nextSpecial()

bool RexxSource::nextSpecial ( unsigned int  target,
SourceLocation location 
)

◆ nextToken()

◆ nopNew()

RexxInstruction * RexxSource::nopNew ( )

◆ numericNew()

◆ operator delete() [1/2]

void RexxSource::operator delete ( void *  )
inline

Definition at line 136 of file SourceFile.hpp.

◆ operator delete() [2/2]

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

Definition at line 137 of file SourceFile.hpp.

◆ operator new() [1/2]

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

Definition at line 135 of file SourceFile.hpp.

◆ operator new() [2/2]

void * RexxSource::operator new ( size_t  size)

Definition at line 5679 of file SourceFile.cpp.

References new_object(), and T_RexxSource.

◆ optionsDirective()

◆ optionsNew()

RexxInstruction * RexxSource::optionsNew ( )

◆ otherwiseNew()

RexxInstruction * RexxSource::otherwiseNew ( RexxToken token)

Definition at line 1425 of file InstructionParser.cpp.

References new_instruction.

Referenced by instruction().

◆ packLiteral()

◆ parenExpression()

RexxObject * RexxSource::parenExpression ( RexxToken start)

◆ parseConditional()

◆ parseLogical()

RexxObject * RexxSource::parseLogical ( RexxToken _first,
int  terminators 
)

Parse off a "logical list expression", consisting of a list of conditionals separated by commas.

Parameters
terminatorsThe set of terminators for this logical context.
Returns
OREF_NULL if no expressions is found, a single expression element if a single expression is located, and a complex logical expression operator for a list of expressions.

Definition at line 6042 of file SourceFile.cpp.

References argList(), OREF_NULL, RexxQueue::pop(), previousToken(), and subTerms.

Referenced by constantLogicalExpression(), ifNew(), and parseConditional().

◆ parseNew()

◆ parseOption()

int RexxSource::parseOption ( RexxToken token)
static

Definition at line 535 of file KeywordConstants.cpp.

References RexxToken::isSymbol(), parseOptions, resolveKeyword(), tabSize, and RexxToken::value.

Referenced by parseNew().

◆ parseTraceSetting()

bool RexxSource::parseTraceSetting ( RexxString value,
size_t &  newSetting,
size_t &  debugFlags,
char &  badOption 
)
static

Parse a trace setting value into a decoded setting and the RexxActivation debug flag set to allow new trace settings to be processed more quickly.

Parameters
valueThe string source of the trace setting.
newSettingThe returned setting in binary form.
debugFlagsThe debug flag representation of the trace setting.

Definition at line 5715 of file SourceFile.cpp.

References DEBUG_IGNORE, DEBUG_OFF, DEBUG_TOGGLE, RexxString::getChar(), RexxString::getLength(), RexxActivation::processTraceSetting(), TRACE_ALL, TRACE_COMMANDS, TRACE_ERRORS, TRACE_FAILURES, TRACE_IGNORE, TRACE_INTERMEDIATES, TRACE_LABELS, TRACE_NORMAL, TRACE_OFF, and TRACE_RESULTS.

Referenced by optionsDirective(), RexxActivation::setTrace(), and traceNew().

◆ popDo()

RexxInstruction* RexxSource::popDo ( )
inline

Definition at line 287 of file SourceFile.hpp.

References control, and RexxQueue::pullRexx().

Referenced by flushControl(), and translateBlock().

◆ popNTerms()

RexxObject * RexxSource::popNTerms ( size_t  count)

Definition at line 5399 of file SourceFile.cpp.

References currentstack, holdObject(), OREF_NULL, RexxQueue::pop(), and terms.

Referenced by argList().

◆ popOperator()

RexxToken* RexxSource::popOperator ( )
inline

Definition at line 297 of file SourceFile.hpp.

References operators, and RexxQueue::pullRexx().

Referenced by subExpression().

◆ popTerm()

RexxObject * RexxSource::popTerm ( )

Definition at line 5386 of file SourceFile.cpp.

References currentstack, holdObject(), RexxQueue::pop(), and terms.

Referenced by message(), and subExpression().

◆ position()

◆ precedence()

◆ previousToken()

◆ procedureNew()

◆ processInstall()

◆ processVariableList()

◆ pushDo()

void RexxSource::pushDo ( RexxInstruction i)
inline

Definition at line 286 of file SourceFile.hpp.

References control, and RexxQueue::pushRexx().

Referenced by flushControl(), and translateBlock().

◆ pushOperator()

void RexxSource::pushOperator ( RexxToken operatorToken)
inline

Definition at line 296 of file SourceFile.hpp.

References operators, and RexxQueue::pushRexx().

Referenced by subExpression().

◆ pushTerm()

void RexxSource::pushTerm ( RexxObject term)

Definition at line 5370 of file SourceFile.cpp.

References currentstack, maxstack, RexxQueue::push(), and terms.

Referenced by argList(), message(), and subExpression().

◆ queueNew()

RexxInstruction * RexxSource::queueNew ( int  type)

Definition at line 1766 of file InstructionParser.cpp.

References expression(), new_instruction, TERM_EOC, and type.

Referenced by instruction().

◆ raiseNew()

◆ reclaimClause()

void RexxSource::reclaimClause ( )
inline

Definition at line 299 of file SourceFile.hpp.

References flags, and reclaimed.

Referenced by checkDirective(), hasBody(), and instruction().

◆ reconnect()

bool RexxSource::reconnect ( )

Definition at line 341 of file SourceFile.cpp.

References flags, initFile(), and reclaim_possible.

Referenced by extract(), extractSource(), isTraceable(), and sourceSize().

◆ removeObj()

void RexxSource::removeObj ( RexxObject object)
inline

Definition at line 365 of file SourceFile.hpp.

References OREF_NULL, RexxIdentityTable::remove(), and savelist.

Referenced by collectionMessage(), function(), message(), and useNew().

◆ replyNew()

RexxInstruction * RexxSource::replyNew ( )

Definition at line 1970 of file InstructionParser.cpp.

References expression(), new_instruction, and TERM_EOC.

Referenced by instruction().

◆ requiresDirective()

void RexxSource::requiresDirective ( )

◆ resetPosition()

void RexxSource::resetPosition ( size_t  p)
inline

Definition at line 308 of file SourceFile.hpp.

References clause, and RexxClause::reset().

Referenced by createDoLoop(), and messageTerm().

◆ resolveBuiltin()

size_t RexxSource::resolveBuiltin ( RexxString value)
static

Definition at line 511 of file KeywordConstants.cpp.

References builtinFunctions, resolveKeyword(), and tabSize.

Referenced by RexxInstructionCall::execute().

◆ resolveDependencies()

◆ resolveKeyword()

int RexxSource::resolveKeyword ( RexxString token,
KeywordEntry Table,
int  Table_Size 
)
static

Resolve a token to a potential subkeyword.

Parameters
tokenThe token to resolve.
TableThe table to search.
Table_SizeThe size of the table.
Returns
The numeric identifier for the constant. Returns 0 if not found in the target table.

Definition at line 408 of file KeywordConstants.cpp.

References RexxString::getLength(), RexxString::getStringData(), KeywordEntry::keyword_code, and Numerics::minVal().

Referenced by builtin(), condition(), keyDirective(), keyword(), parseOption(), resolveBuiltin(), subDirective(), and subKeyword().

◆ resolveProgramName()

RexxString * RexxSource::resolveProgramName ( RexxActivity activity,
RexxString name 
)

Resolve an external call in the context of the program making the call. This will use the directory and extension of the context program to modify the search order.

Parameters
activityThe current activity
nameThe target name
Returns
The fully resolved string name of the target program, if one is located.

Definition at line 1541 of file SourceFile.cpp.

References RexxActivity::getInstance(), programDirectory, programExtension, and InterpreterInstance::resolveProgramName().

Referenced by loadRequires(), and RexxCode::resolveProgramName().

◆ returnNew()

RexxInstruction * RexxSource::returnNew ( )

Definition at line 1983 of file InstructionParser.cpp.

References expression(), new_instruction, and TERM_EOC.

Referenced by instruction().

◆ RexxInstructionForwardCreate()

◆ routineDirective()

◆ saveObject()

void RexxSource::saveObject ( RexxObject object)
inline

◆ sayNew()

RexxInstruction * RexxSource::sayNew ( )

Definition at line 1997 of file InstructionParser.cpp.

References expression(), new_instruction, and TERM_EOC.

Referenced by instruction().

◆ selectNew()

◆ setBufferedSource()

void RexxSource::setBufferedSource ( RexxBuffer newSource)
inline

Definition at line 148 of file SourceFile.hpp.

References initBuffered().

Referenced by RoutineClass::processInstore().

◆ setGuard()

void RexxSource::setGuard ( )

Definition at line 4566 of file SourceFile.cpp.

References guard_variables, new_identity_table(), OREF_NULL, and OrefSet.

Referenced by guardNew().

◆ setLocalRoutines()

void RexxSource::setLocalRoutines ( RexxDirectory r)
inline

Definition at line 371 of file SourceFile.hpp.

References routines.

Referenced by RexxActivation::addLocalRoutine(), and RexxCode::setLocalRoutines().

◆ setProgramName()

void RexxSource::setProgramName ( RexxString name)

Set a program name for this source object. Usually used after a program restore to update the restored routine object. This will also update the extension and directory information.

Parameters
nameThe new program name.

Definition at line 335 of file SourceFile.cpp.

References extractNameInformation(), OrefSet, and programName.

Referenced by RoutineClass::restore(), and RexxSource().

◆ setPublicRoutines()

void RexxSource::setPublicRoutines ( RexxDirectory r)
inline

Definition at line 372 of file SourceFile.hpp.

References public_routines.

Referenced by RexxCode::setPublicRoutines().

◆ setReconnect()

void RexxSource::setReconnect ( )

Definition at line 354 of file SourceFile.cpp.

References flags, and reclaim_possible.

◆ setSecurityManager()

void RexxSource::setSecurityManager ( RexxObject manager)
inline

Definition at line 366 of file SourceFile.hpp.

References OrefSet, and securityManager.

Referenced by PackageClass::setSecurityManager(), and RexxCode::setSecurityManager().

◆ signalNew()

◆ sourceNewObject()

RexxInstruction * RexxSource::sourceNewObject ( size_t  size,
RexxBehaviour _behaviour,
int  type 
)

◆ sourceNextToken()

◆ sourceSize()

size_t RexxSource::sourceSize ( )

◆ startLocation()

void RexxSource::startLocation ( SourceLocation )

◆ subDirective()

◆ subExpression()

◆ subKeyword()

◆ subTerm()

◆ syntaxError() [1/6]

void RexxSource::syntaxError ( int  errorcode)
inline

Definition at line 316 of file SourceFile.hpp.

References error().

◆ syntaxError() [2/6]

◆ syntaxError() [3/6]

void RexxSource::syntaxError ( int  errorcode,
RexxObject a1 
)
inline

Definition at line 312 of file SourceFile.hpp.

References error().

◆ syntaxError() [4/6]

void RexxSource::syntaxError ( int  errorcode,
RexxObject a1,
RexxObject a2 
)
inline

Definition at line 313 of file SourceFile.hpp.

References error().

◆ syntaxError() [5/6]

void RexxSource::syntaxError ( int  errorcode,
RexxObject a1,
RexxObject a2,
RexxObject a3 
)
inline

Definition at line 314 of file SourceFile.hpp.

References error().

◆ syntaxError() [6/6]

void RexxSource::syntaxError ( int  errorcode,
RexxToken token 
)
inline

Definition at line 315 of file SourceFile.hpp.

References errorToken().

◆ syntaxErrorAt()

void RexxSource::syntaxErrorAt ( int  errorcode,
RexxToken token 
)
inline

◆ terminator() [1/2]

bool RexxSource::terminator ( int  ,
RexxObject  
)

◆ terminator() [2/2]

◆ thenNew()

RexxInstruction * RexxSource::thenNew ( RexxToken token,
RexxInstructionIf parent 
)

Definition at line 2259 of file InstructionParser.cpp.

References new_instruction.

Referenced by translateBlock().

◆ topDo()

RexxInstruction* RexxSource::topDo ( )
inline

Definition at line 288 of file SourceFile.hpp.

References control, and RexxQueue::peek().

Referenced by flushControl(), and translateBlock().

◆ topOperator()

RexxToken* RexxSource::topOperator ( )
inline

Definition at line 298 of file SourceFile.hpp.

References operators, and RexxQueue::peek().

Referenced by subExpression().

◆ toss()

RexxObject * RexxSource::toss ( RexxObject object)

◆ traceBack()

RexxString * RexxSource::traceBack ( RexxActivation activation,
SourceLocation location,
size_t  indent,
bool  trace 
)

Format a source line for tracing

Parameters
activationThe activation of the current running code. This can be null if this is a translation time error.
locationThe source line location.
indentThe indentation amount to apply to the trace line
traceThis is a traced line vs. an error line
Returns
A formatted trace line, including headers and indentations.

Definition at line 946 of file SourceFile.cpp.

References RexxActivity::buildMessage(), ActivityManager::currentActivity, extract(), RexxActivation::formatSourcelessTraceLine(), SourceLocation::getLineNumber(), INDENT_SPACING, INSTRUCTION_OVERHEAD, isInternalCode(), RexxInternalObject::isOldSpace(), line, LINENUMBER, Message_Translations_internal_code, Message_Translations_no_source_available, new_array(), OREF_NULL, PREFIX_LENGTH, PREFIX_OFFSET, programName, RexxString::put(), raw_string(), and RexxString::set().

Referenced by createStackFrame(), and RexxActivation::formatTrace().

◆ traceNew()

◆ translate()

◆ translateBlock()

◆ translateChar()

static int RexxSource::translateChar ( char  ch)
inlinestatic

◆ trimClause()

void RexxSource::trimClause ( )
inline

Definition at line 306 of file SourceFile.hpp.

References clause, and RexxClause::trim().

Referenced by instruction(), and translateBlock().

◆ useNew()

◆ variableOrMessageTerm()

RexxObject * RexxSource::variableOrMessageTerm ( )

Parse off a single variable symbol or a message term that can be used for an assignment.

NOTE: If this is a message term, then the message term will be configured as an assignment term.

Returns
The object for an assignment target, or OREF_NULL if something other than a variable or a message term was found. On return, the clause position pointer will either be unchanged or positioned at the next token of the clause.

Definition at line 5134 of file SourceFile.cpp.

References addText(), RexxToken::isSymbol(), messageTerm(), needVariable(), nextReal(), OREF_NULL, and previousToken().

Referenced by parseNew(), and useNew().

◆ words()

Friends And Related Function Documentation

◆ RexxActivation

friend class RexxActivation
friend

Definition at line 132 of file SourceFile.hpp.

Member Data Documentation

◆ active_class

◆ builtinFunctions

KeywordEntry RexxSource::builtinFunctions
staticprotected

Definition at line 518 of file SourceFile.hpp.

Referenced by builtin(), and resolveBuiltin().

◆ builtinTable

pbuiltin RexxSource::builtinTable
static

◆ calls

RexxList* RexxSource::calls
protected

Definition at line 507 of file SourceFile.hpp.

Referenced by addReference(), cleanup(), live(), liveGeneral(), and translateBlock().

◆ characterTable

int RexxSource::characterTable
staticprotected

Definition at line 524 of file SourceFile.hpp.

Referenced by isSymbolCharacter(), and translateChar().

◆ class_dependencies

RexxDirectory* RexxSource::class_dependencies
protected

◆ classes

RexxList* RexxSource::classes
protected

◆ clause

◆ clauseLocation

SourceLocation RexxSource::clauseLocation
protected

◆ conditionKeywords

KeywordEntry RexxSource::conditionKeywords
staticprotected

◆ control

RexxQueue* RexxSource::control
protected

Definition at line 491 of file SourceFile.hpp.

Referenced by cleanup(), globalSetup(), live(), liveGeneral(), popDo(), pushDo(), and topDo().

◆ current

const char* RexxSource::current
protected

Definition at line 446 of file SourceFile.hpp.

Referenced by locateToken(), packLiteral(), position(), and sourceNextToken().

◆ current_length

size_t RexxSource::current_length
protected

Definition at line 451 of file SourceFile.hpp.

Referenced by comment(), locateToken(), position(), and sourceNextToken().

◆ currentInstruction

RexxInstruction* RexxSource::currentInstruction
protected

Definition at line 502 of file SourceFile.hpp.

Referenced by cleanup(), live(), liveGeneral(), and sourceNewObject().

◆ currentstack

size_t RexxSource::currentstack
protected

Definition at line 508 of file SourceFile.hpp.

Referenced by popNTerms(), popTerm(), processVariableList(), pushTerm(), and translateBlock().

◆ DEBUG_IGNORE

const size_t RexxSource::DEBUG_IGNORE = 0x0000
static

Definition at line 428 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ DEBUG_NOTRACE

const size_t RexxSource::DEBUG_NOTRACE = 0x0800
static

Definition at line 432 of file SourceFile.hpp.

Referenced by traceNew().

◆ DEBUG_OFF

const size_t RexxSource::DEBUG_OFF = 0x0200
static

Definition at line 430 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ DEBUG_ON

const size_t RexxSource::DEBUG_ON = 0x0100
static

◆ DEBUG_TOGGLE

const size_t RexxSource::DEBUG_TOGGLE = 0x0400
static

◆ DEFAULT_TRACE_SETTING

const size_t RexxSource::DEFAULT_TRACE_SETTING = TRACE_NORMAL
static

Definition at line 419 of file SourceFile.hpp.

Referenced by translate().

◆ digits

size_t RexxSource::digits
protected

Definition at line 475 of file SourceFile.hpp.

Referenced by getDigits(), optionsDirective(), and translate().

◆ directives

KeywordEntry RexxSource::directives
staticprotected
Initial value:

Definition at line 515 of file SourceFile.hpp.

Referenced by keyDirective().

◆ exposed_variables

RexxDirectory* RexxSource::exposed_variables
protected

Definition at line 506 of file SourceFile.hpp.

Referenced by addStem(), addVariable(), cleanup(), expose(), live(), liveGeneral(), and translateBlock().

◆ first

RexxInstruction* RexxSource::first
protected

Definition at line 500 of file SourceFile.hpp.

Referenced by addClause(), cleanup(), live(), liveGeneral(), and translateBlock().

◆ flags

◆ form

bool RexxSource::form
protected

Definition at line 477 of file SourceFile.hpp.

Referenced by getForm(), optionsDirective(), and translate().

◆ fuzz

size_t RexxSource::fuzz
protected

Definition at line 476 of file SourceFile.hpp.

Referenced by getFuzz(), optionsDirective(), and translate().

◆ guard_variables

RexxIdentityTable* RexxSource::guard_variables
protected

◆ holdstack

RexxStack* RexxSource::holdstack
protected

Definition at line 488 of file SourceFile.hpp.

Referenced by cleanup(), globalSetup(), holdObject(), live(), and liveGeneral().

◆ initCode

RexxCode* RexxSource::initCode
protected

Definition at line 457 of file SourceFile.hpp.

Referenced by live(), liveGeneral(), and translate().

◆ installed_classes

RexxDirectory* RexxSource::installed_classes
protected

◆ installed_public_classes

RexxDirectory* RexxSource::installed_public_classes
protected

◆ interpret_adjust

size_t RexxSource::interpret_adjust
protected

Definition at line 455 of file SourceFile.hpp.

Referenced by extract(), extractSource(), interpretLine(), and position().

◆ keywordInstructions

KeywordEntry RexxSource::keywordInstructions
staticprotected

Definition at line 516 of file SourceFile.hpp.

Referenced by keyword().

◆ labels

RexxDirectory* RexxSource::labels
protected

Definition at line 504 of file SourceFile.hpp.

Referenced by addLabel(), cleanup(), findLabel(), live(), liveGeneral(), and translateBlock().

◆ last

RexxInstruction* RexxSource::last
protected

◆ libraries

RexxList* RexxSource::libraries
protected

◆ line_count

size_t RexxSource::line_count
protected

◆ line_number

size_t RexxSource::line_number
protected

◆ line_offset

size_t RexxSource::line_offset
protected

◆ literals

RexxDirectory* RexxSource::literals
protected

Definition at line 489 of file SourceFile.hpp.

Referenced by addText(), cleanup(), globalSetup(), live(), and liveGeneral().

◆ loadedPackages

RexxList* RexxSource::loadedPackages
protected

Definition at line 459 of file SourceFile.hpp.

Referenced by addPackage(), getPackages(), live(), and liveGeneral().

◆ maxstack

size_t RexxSource::maxstack
protected

Definition at line 509 of file SourceFile.hpp.

Referenced by pushTerm(), and translateBlock().

◆ merged_public_classes

RexxDirectory* RexxSource::merged_public_classes
protected

Definition at line 470 of file SourceFile.hpp.

Referenced by findPublicClass(), getImportedClasses(), live(), liveGeneral(), and mergeRequired().

◆ merged_public_routines

RexxDirectory* RexxSource::merged_public_routines
protected

◆ methods

RexxDirectory* RexxSource::methods
protected

◆ operators

RexxQueue* RexxSource::operators
protected

◆ package

PackageClass* RexxSource::package
protected

Definition at line 460 of file SourceFile.hpp.

Referenced by getPackage(), live(), and liveGeneral().

◆ parentSource

RexxSource* RexxSource::parentSource
protected

◆ parseOptions

KeywordEntry RexxSource::parseOptions
staticprotected
Initial value:
= {
KeywordEntry(CHAR_CASELESS, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_LINEIN, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_LOWER, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_PULL, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_SOURCE, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_UPPER, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_VALUE, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_VAR, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
KeywordEntry(CHAR_VERSION, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 ),
}

Definition at line 520 of file SourceFile.hpp.

Referenced by parseOption().

◆ programDirectory

RexxString* RexxSource::programDirectory
protected

◆ programExtension

RexxString* RexxSource::programExtension
protected

◆ programFile

RexxString* RexxSource::programFile
protected

Definition at line 443 of file SourceFile.hpp.

Referenced by extractNameInformation(), getProgramFile(), live(), and liveGeneral().

◆ programName

◆ public_routines

◆ requires

RexxList* RexxSource::requires
protected

◆ reserved1

intptr_t RexxSource::reserved1
protected

Definition at line 480 of file SourceFile.hpp.

◆ reserved2

intptr_t RexxSource::reserved2
protected

Definition at line 481 of file SourceFile.hpp.

◆ reserved3

intptr_t RexxSource::reserved3
protected

Definition at line 482 of file SourceFile.hpp.

◆ reserved4

intptr_t RexxSource::reserved4
protected

Definition at line 483 of file SourceFile.hpp.

◆ routines

◆ savelist

RexxIdentityTable* RexxSource::savelist
protected

Definition at line 487 of file SourceFile.hpp.

Referenced by cleanup(), globalSetup(), live(), liveGeneral(), removeObj(), saveObject(), and toss().

◆ securityManager

SecurityManager* RexxSource::securityManager
protected

◆ sourceArray

RexxArray* RexxSource::sourceArray
protected

◆ sourceBuffer

RexxBuffer* RexxSource::sourceBuffer
protected

◆ sourceIndices

RexxBuffer* RexxSource::sourceIndices
protected

Definition at line 450 of file SourceFile.hpp.

Referenced by flatten(), get(), initBuffered(), live(), liveGeneral(), and position().

◆ strings

RexxDirectory* RexxSource::strings
protected

Definition at line 490 of file SourceFile.hpp.

Referenced by cleanup(), commonString(), globalSetup(), live(), and liveGeneral().

◆ subDirectives

◆ subKeywords

KeywordEntry RexxSource::subKeywords
staticprotected

Definition at line 517 of file SourceFile.hpp.

Referenced by subKeyword().

◆ subTerms

◆ terms

RexxQueue* RexxSource::terms
protected

◆ TRACE_ALL

const size_t RexxSource::TRACE_ALL = 'A'
static

Definition at line 408 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_COMMANDS

const size_t RexxSource::TRACE_COMMANDS = 'C'
static

Definition at line 409 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_DEBUG_MASK

const size_t RexxSource::TRACE_DEBUG_MASK = 0xff00
static

Definition at line 435 of file SourceFile.hpp.

◆ TRACE_ERRORS

const size_t RexxSource::TRACE_ERRORS = 'E'
static

Definition at line 413 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_FAILURES

const size_t RexxSource::TRACE_FAILURES = 'F'
static

Definition at line 412 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_IGNORE

const size_t RexxSource::TRACE_IGNORE = '0'
static

Definition at line 417 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_INTERMEDIATES

const size_t RexxSource::TRACE_INTERMEDIATES = 'I'
static

Definition at line 415 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_LABELS

const size_t RexxSource::TRACE_LABELS = 'L'
static

Definition at line 410 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_NORMAL

const size_t RexxSource::TRACE_NORMAL = 'N'
static

◆ TRACE_OFF

const size_t RexxSource::TRACE_OFF = 'O'
static

Definition at line 416 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_RESULTS

const size_t RexxSource::TRACE_RESULTS = 'R'
static

Definition at line 414 of file SourceFile.hpp.

Referenced by parseTraceSetting(), and RexxActivation::processTraceSetting().

◆ TRACE_SETTING_MASK

const size_t RexxSource::TRACE_SETTING_MASK = 0xff
static

Definition at line 422 of file SourceFile.hpp.

Referenced by formatTraceSetting(), and RexxActivation::processTraceSetting().

◆ traceFlags

size_t RexxSource::traceFlags
protected

Definition at line 479 of file SourceFile.hpp.

Referenced by getTraceFlags(), optionsDirective(), and translate().

◆ traceSetting

size_t RexxSource::traceSetting
protected

Definition at line 478 of file SourceFile.hpp.

Referenced by getTrace(), getTraceSetting(), optionsDirective(), and translate().

◆ variableindex

size_t RexxSource::variableindex
protected

Definition at line 510 of file SourceFile.hpp.

Referenced by addStem(), addVariable(), and translateBlock().

◆ variables

RexxDirectory* RexxSource::variables
protected

Definition at line 503 of file SourceFile.hpp.

Referenced by addStem(), addText(), addVariable(), cleanup(), live(), liveGeneral(), and translateBlock().


The documentation for this class was generated from the following files:
CHAR_PULL
char CHAR_PULL[]
CHAR_PUBLIC
char CHAR_PUBLIC[]
CHAR_HALT
char CHAR_HALT[]
CHAR_LOWER
char CHAR_LOWER[]
CHAR_NOTREADY
char CHAR_NOTREADY[]
CHAR_ATTRIBUTE
char CHAR_ATTRIBUTE[]
CHAR_CLASS
char CHAR_CLASS[]
CHAR_SUBCLASS
char CHAR_SUBCLASS[]
CHAR_EXTERNAL
char CHAR_EXTERNAL[]
CHAR_CONSTANT
char CHAR_CONSTANT[]
CHAR_LOSTDIGITS
char CHAR_LOSTDIGITS[]
CHAR_USER
char CHAR_USER[]
CHAR_PROPAGATE
char CHAR_PROPAGATE[]
CHAR_NOSTRING
char CHAR_NOSTRING[]
CHAR_LINEIN
char CHAR_LINEIN[]
CHAR_VALUE
char CHAR_VALUE[]
CHAR_CASELESS
char CHAR_CASELESS[]
CHAR_GUARDED
char CHAR_GUARDED[]
CHAR_PRIVATE
char CHAR_PRIVATE[]
CHAR_FORM
char CHAR_FORM[]
CHAR_NOMETHOD
char CHAR_NOMETHOD[]
CHAR_ROUTINE
char CHAR_ROUTINE[]
CHAR_SET
char CHAR_SET[]
CHAR_DIGITS
char CHAR_DIGITS[]
CHAR_ABSTRACT
char CHAR_ABSTRACT[]
CHAR_TRACE
char CHAR_TRACE[]
CHAR_VERSION
char CHAR_VERSION[]
CHAR_ARG
char CHAR_ARG[]
CHAR_FAILURE
char CHAR_FAILURE[]
CHAR_PROTECTED
char CHAR_PROTECTED[]
CHAR_FUZZ
char CHAR_FUZZ[]
CHAR_UNGUARDED
char CHAR_UNGUARDED[]
CHAR_UPPER
char CHAR_UPPER[]
CHAR_UNPROTECTED
char CHAR_UNPROTECTED[]
CHAR_ERROR
char CHAR_ERROR[]
CHAR_GET
char CHAR_GET[]
CHAR_OPTIONS
char CHAR_OPTIONS[]
CHAR_MIXINCLASS
char CHAR_MIXINCLASS[]
CHAR_ANY
char CHAR_ANY[]
CHAR_METACLASS
char CHAR_METACLASS[]
CHAR_SOURCE
char CHAR_SOURCE[]
CHAR_VAR
char CHAR_VAR[]
CHAR_REQUIRES
char CHAR_REQUIRES[]
CHAR_SYNTAX
char CHAR_SYNTAX[]
CHAR_LIBRARY
char CHAR_LIBRARY[]
KeywordEntry
Definition: SourceFile.hpp:117
CHAR_INHERIT
char CHAR_INHERIT[]
CHAR_NOVALUE
char CHAR_NOVALUE[]
CHAR_METHOD
char CHAR_METHOD[]