|
Options |
Name |
Purpose |
|
|
|
LOGICAL BeginParse (character)
|
Marks a class as currently being parsed for its super scope
Notes : The cycle guard - a class whose parse is already on the call
stack is not entered again, so a circular INHERITS chain
terminates.
@param pcClassKey The qualified class name
@return FALSE when the class is already being parsed
*/
|
|
|
|
Clear ()
|
Empties the cache
Notes : The in-progress tracking is deliberately kept - clearing while a
nested parse is on the stack must not break the cycle guard.
*/
|
|
|
|
EndParse (character)
|
Removes a class from the in-progress tracking
Notes :
@param pcClassKey The qualified class name
*/
|
|
|
|
LOGICAL Has (character)
|
Returns whether a class is in the cache
Notes : A hit renews the class in the LRU order.
@param pcClassKey The qualified class name
@return Logical value indicating a cached class
*/
|
|
|
|
LOGICAL IsInheritable (SymbolStore, integer)
|
Returns whether a symbol carries an inheritable access modifier
Notes : PUBLIC / PROTECTED / PACKAGE-PROTECTED / PACKAGE-PRIVATE as a
direct child of the DEFINE node, like the Java Symbol:isExported
for class members. A symbol without a DEFINE node (an implicit
buffer) is never inheritable.
@param poStore The source symbol store
@param piSymbolId The symbol id
@return Logical value indicating an inheritable symbol
*/
|
|
|
|
RemoveClass (character)
|
Removes a class (with its scopes, symbols and tables) from the cache
Notes :
@param pcClassKey The qualified class name
*/
|
|
|
|
INTEGER Replay (character, SymbolStore)
|
Materializes a fresh copy of a cached skeleton chain in a store
Notes : Creates the scope records deepest ancestor first and links them,
so the returned scope carries the whole chain - the counterpart
of the reference generateSymbolScopeSuper copy-per-use. The
caller chains the returned scope as the parent of its root
scope.
@param pcClassKey The qualified class name
@param poStore The target symbol store
@return The scope id of the immediate super scope, or 0 when the class
is not cached
*/
|
|
|
|
ReplayScopeSymbols (character, integer, SymbolStore, integer)
|
Materializes the cached symbols of one skeleton scope
Notes :
@param pcClassKey The qualified class name
@param piScopeSeq The scope sequence in the cached chain
@param poStore The target symbol store
@param piScopeId The target scope id
*/
|
|
|
|
INTEGER ReplayTable (character, integer, SymbolStore, integer)
|
Materializes a cached temp / work table in the target store
Notes : A table referenced by more than one buffer of the replayed chain
is created once per Replay call.
@param pcClassKey The qualified class name
@param piTableKey The cached table key (0 for none)
@param poStore The target symbol store
@param piScopeId The target scope id owning the table
@return The store table id in the target store, or 0
*/
|
|
|
|
ResetInstance ()
|
Drops the cached session-singleton instance
Notes : The next Instance access builds a fresh, empty cache.
*/
|
|
|
|
StoreClass (character, SymbolStore, integer)
|
Extracts and stores the skeleton of a parsed super class
Notes : Scope 1 holds the inheritable (PUBLIC / PROTECTED /
PACKAGE-PROTECTED / PACKAGE-PRIVATE) variables and table buffers
of the class's root scope; the further scopes copy the class's
own super-scope chain, whose symbols are already-filtered
skeletons. Storing beyond MaxClasses evicts the least recently
used class.
@param pcClassKey The qualified class name
@param poStore The symbol store of the completed super-class parse
@param piRootScopeId The root scope id of that parse
*/
|
|
|
|
StoreScopeSymbols (character, integer, SymbolStore, integer, logical)
|
Copies the inheritable symbols of one scope into the cache
Notes :
@param pcClassKey The qualified class name
@param piScopeSeq The scope sequence in the cached chain
@param poStore The source symbol store
@param piScopeId The source scope id
@param plFilterModifiers Whether only symbols with an inheritable access
modifier on their DEFINE node are copied
*/
|
|
|
|
INTEGER StoreTable (character, SymbolStore, integer)
|
Copies a temp / work table (with its fields) into the cache
Notes :
@param pcClassKey The qualified class name
@param poStore The source symbol store
@param piStoreTableId The source store table id
@return The cached table key
*/
|