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. |
1.4.2