Collaboration diagram for CScope:
Public Member Functions | |
void | Construct (CScope *c, CProcessData *owner) |
The Construct function sets up the internal data associated with the CScope. | |
void | Destruct () |
The Destruct function cleans up the internal structure of the CScope. | |
Public Attributes | |
long | references |
The number of pointers to this CScope object. | |
LongArray | mynames |
names of variables declared with my, as indices into the string table | |
CThingArray | myrefs |
pointers to rebi that are "my" type variables | |
CThingStack * | params |
the parameters specified when the rebi was called | |
CThingStack * | usings |
the usings specified when the rebi was called | |
CThingStack | localstack |
the local stack being built | |
CThingStack | usingsstack |
the local usings being built | |
CThing * | currentthing |
the rebi called | |
unsigned long | codeposition |
the current byte code | |
CScope * | caller |
the calling scope | |
CProcessData * | processdata |
The process which the scope belongs to. | |
unsigned long | scopedata [3] |
Extra data used to expand the functiononality of the scope object. | |
HANDLE | mutex |
A unique mutex for the scope. |
Each scope has two interal stacks that are used to keep track of functions to be called, parameters to be passed to them and their returns.
|
The Construct function sets up the internal data associated with the CScope. Initially parameters, usings, and the rebi that this scope is associated with are NULL. scopedata[0] is set to 0, scopedata[1] to 0xFFFFFFFF, and scopedata[2] to 0.
|
|
The Destruct function cleans up the internal structure of the CScope. Any my type variables still associated with the scope are relases through calls to ReleaseCThing().
|
|
Extra data used to expand the functiononality of the scope object. scopedata[0] holds flags, only the lower 2 bits are in use for if-else flags. scopedata[1] holds the label of the scope. scopedata[2] is unused. |