Top Method Summary
Options Name Purpose
AddFrameFieldSymbol (integer, integer, logical, logical) Registers a field / widget symbol with a frame's field container Notes : A symbol already registered with the frame is not added twice - an enabling statement only upgrades its enabled flag, mirroring the reference engine's frame stack (SCL-3077) @param piFrameSymbolId The frame symbol id @param piSymbolId The registered field / widget symbol id @param plField Whether the symbol is a field / variable (not a widget) @param plEnabled Whether the registering statement enables the field */
AddRefs (integer, integer, integer) Increments the read / write reference counts of a symbol Notes : @param piId The symbol id @param piReads The number of reads to add @param piWrites The number of writes to add */
INTEGER AllStoreTableIds () Returns the ids of all store-local (temp / work) tables Notes : In creation order - used by the unqualified-field fallback (SCL-5619) @return The array of store table ids (indeterminate when none) */
INTEGER BlockBufferIds (integer) Returns the table-buffer symbol ids scoped to a block Notes : @param piBlockId The block id @return The array of table-buffer symbol ids (indeterminate when none) */
INTEGER BlockFrameIds (integer) Returns the frame symbol ids scoped to a block Notes : Like the reference engine's Block.getFrames (): only the frames scoped to the block itself - initialized by a frame initializing statement in the block or in a nested DO block, or set as the block's explicit default frame. A frame defined but never used, or scoped to a nested REPEAT / FOR block, is not listed (SCL-5739). The frame symbol may belong to an outer scope: a frame defined at the root and first used inside an internal procedure is scoped to the procedure's block (SCL-5740). @param piBlockId The block id @return The array of frame symbol ids (indeterminate when none) */
INTEGER BlockIdForNode (integer) Returns the id of the block whose head is a given AST node Notes : The inverse of BlockNodeId; used by the IBlockNode:Block accessor (SCL-5462). Returns 0 when the node does not head a block @param piNodeId The AST node id @return The block id, or 0 */
LOGICAL BlockIsMethodBlock (integer) Returns whether a block is a method-level (routine) block Notes : A scope root block whose scope has a parent scope - which includes the compile unit's root block once a super-class scope is chained, like the Java Block:isMethodBlock (SCL-5482). @param piId The block id @return Logical value indicating a method block */
LOGICAL BlockIsProgramBlock (integer) Returns whether a block is the program block Notes : A scope root block whose scope has no parent scope, like the Java Block:isProgramBlock (SCL-5482). @param piId The block id @return Logical value indicating the program block */
LOGICAL BlockIsRootBlock (integer) Returns whether a block is the root block of its scope Notes : @param piId The block id @return Logical value indicating a root block */
INTEGER BlockNodeId (integer) Returns the AST node id of a block Notes : @param piId The block id @return The block node id, or 0 */
INTEGER BlockParentId (integer) Returns the parent block id of a block Notes : @param piId The block id @return The parent block id, or 0 */
INTEGER BlockScopeId (integer) Returns the owning scope id of a block Notes : @param piId The block id @return The scope id, or 0 */
INTEGER BufferFieldBufferIds (integer) Returns the field-buffer symbol ids created for a table buffer Notes : @param piBufferId The table-buffer symbol id @return The array of field-buffer symbol ids (indeterminate when none) */
LOGICAL BufferIsDefault (integer) Returns whether a table buffer is the default buffer of its table Notes : @param piId The buffer symbol id @return Logical value indicating the default buffer */
LOGICAL BufferIsDefaultSchema (integer) Returns whether a table buffer is an unnamed default schema buffer Notes : @param piId The buffer symbol id @return Logical value indicating a default schema buffer */
CHARACTER BufferName (integer) Returns the buffer name of a table-buffer symbol Notes : @param piId The buffer symbol id @return The buffer name */
INTEGER BufferSchemaTableId (integer) Returns the schema table id of a database table buffer Notes : @param piId The buffer symbol id @return The schema table id, or 0 */
INTEGER BufferScopeBlockId (integer) Returns the block id of a buffer scope Notes : @param piId The buffer-scope id @return The block id, or 0 */
LOGICAL BufferScopeStrong (integer) Returns whether a buffer scope is a strong scope Notes : @param piId The buffer-scope id @return Logical value indicating a strong scope */
INTEGER BufferScopeSymbolId (integer) Returns the table-buffer symbol id of a buffer scope Notes : @param piId The buffer-scope id @return The buffer symbol id, or 0 */
LOGICAL BufferScopeWeak (integer) Returns whether a buffer scope is a weak scope Notes : @param piId The buffer-scope id @return Logical value indicating a weak scope */
INTEGER BufferStoreTableId (integer) Returns the store table id of a table buffer Notes : @param piId The buffer symbol id @return The store table id, or 0 */
Consultingwerk.Studio.ProparseApi.ITable BufferTable (integer) Returns the ITable a table buffer resolves to, or the unknown value Notes : A schema table buffer materializes a SchemaTable from the shared Schema; a store table buffer materializes an AblTable. @param piId The table-buffer symbol id @return The ITable, or the unknown value when unresolved */
INTEGER BufferTableKind (integer) Returns the table kind constant of a table buffer (DB / temp-table / work-table) Notes : @param piId The buffer symbol id @return The table kind constant, or 0 */
CHARACTER CallExternalName (integer) Returns the external program name of a call Notes : @param piId The call id @return The external program name */
CHARACTER CallFullName (integer) Returns the full (external + internal) name of a call Notes : @param piId The call id @return The full call name */
LOGICAL CallInHandle (integer) Returns whether a call runs IN a procedure handle Notes : @param piId The call id @return Logical value indicating an IN-handle call */
CHARACTER CallInternalName (integer) Returns the internal procedure / method name of a call Notes : @param piId The call id @return The internal name */
LOGICAL CallLocal (integer) Returns whether a call targets a local (internal) routine Notes : @param piId The call id @return Logical value indicating a local call */
CHARACTER CallLocalTarget (integer) Returns the local target name of a call Notes : @param piId The call id @return The local target name */
INTEGER CallParameterIds (integer) Returns the parameter ids of a call (in argument order) Notes : @param piCallId The call id @return The array of parameter ids (indeterminate when none) */
LOGICAL CallPersistent (integer) Returns whether a call runs PERSISTENT Notes : @param piId The call id @return Logical value indicating a persistent call */
INTEGER CallPersistentHandleNodeId (integer) Returns the PERSISTENT SET handle AST node id of a call Notes : @param piId The call id @return The handle node id, or 0 */
INTEGER CallPersistentHandleSymbolId (integer) Returns the symbol id of the persistent handle variable of a call Notes : @param piId The call id @return The symbol id, or 0 */
CHARACTER CallRunArgument (integer) Returns the RUN argument text of a call Notes : @param piId The call id @return The RUN argument text */
Clear () Empties the store Notes : */
CollectScopes (integer) Recursively collects a scope and its descendants (pre-order) Notes : @param piScopeId The scope id to visit */
INTEGER CreateBlock (integer, integer, integer, logical) Creates a block Notes : The method / program flags are not passed in - they derive from whether the block's scope has a parent scope, like the Java Block:isMethodBlock / :isProgramBlock (SCL-5482). @param piScopeId The owning scope id @param piParentBlockId The parent block id (0 for a root block) @param piNodeId The block node id @param plRootBlock Whether this is a scope root block @return The new block id */
INTEGER CreateBufferScope (integer, integer, logical) Creates a buffer scope (a table buffer scoped to a block) Notes : @param piBlockId The block id @param piBufferId The table-buffer symbol id @param plStrong Whether this is a strong buffer reference @return The new buffer-scope id */
INTEGER CreateCall (integer, integer, character, character, character, logical, logical, logical) Creates a call Notes : @param piScopeId The owning scope id @param piNodeId The RUN / call node id @param pcExternalName The external procedure name @param pcInternalName The internal procedure name @param pcRunArgument The RUN argument text @param plPersistent Whether the call is RUN PERSISTENT @param plLocal Whether the call is a local (internal) call @param plInHandle Whether the call is RUN IN handle @return The new call id */
INTEGER CreateCallParameter (integer, integer, integer, integer) Creates a parameter of a call Notes : From the Parameter_list of the call's RUN statement (SCL-5459). @param piCallId The owning call id @param piDirectionNodeId The INPUT / OUTPUT / INPUT-OUTPUT node id @param piSymbolId The resolved argument symbol id (0 for an expression) @param piProgressTypeNum The node type representing the Progress type (0 when unknown) @return The new parameter id */
INTEGER CreateFieldBuffer (integer, integer, character, integer, character, integer, integer, character) Creates a FIELD-BUFFER symbol Notes : @param piScopeId The owning scope id @param piOwningBufferId The table-buffer symbol this field belongs to @param pcName The field name @param piProgressTypeNum The Proparse node type (FIELD) @param pcDataType The ABL data type @param piExtent The field extent @param piSchemaFieldId The schema field id (0 when unresolved / store table) @param pcDatabaseName The database name qualifying a database field in the full name (empty for a temp-table field) @return The new symbol id */
INTEGER CreateFrame (integer, character, integer, integer, integer) Creates a FRAME symbol Notes : @param piScopeId The owning scope id @param pcName The frame name @param piProgressTypeNum The Proparse node type (FRAME) @param piDefineNodeId The DEFINE statement head node id (0 when implicit) @param piFrameScopeBlockId The frame scope block id @return The new symbol id */
INTEGER CreateScope (integer, integer, character) Creates a symbol scope Notes : @param piParentScopeId The parent scope id (0 for the root scope) @param piNodeId The node that opens the scope @param pcTypeName The class / routine name (informational) @return The new scope id */
INTEGER CreateStoreField (integer, character, character) Creates a field of a store-local table Notes : From the FIELD clauses of the table's DEFINE TEMP-TABLE / WORK-TABLE statement (SCL-5459). @param piStoreTableId The owning store table id @param pcName The field name @param pcDataType The field data type (from the AS clause) @return The new store field id */
INTEGER CreateStoreTable (integer, character, integer) Creates a store-local table (temp-table / work-table) Notes : @param piScopeId The owning scope id @param pcName The table name @param piStoreTypeNum The StoreTypeEnum value (TTABLE / WTABLE) @return The new store table id */
INTEGER CreateTableBuffer (integer, character, integer, integer, logical, integer, integer, integer) Creates a TABLE-BUFFER symbol Notes : @param piScopeId The owning scope id @param pcName The buffer name @param piProgressTypeNum The Proparse node type (BUFFER) @param piDefineNodeId The DEFINE statement head node id (0 when implicit) @param plDefault Whether this is the default (unnamed) buffer of the table @param piTableKind The table-reference kind (TableKindSchema / TableKindStore / TableKindNone) @param piSchemaTableId The schema table id (when TableKindSchema) @param piStoreTableId The store table id (when TableKindStore) @return The new symbol id */
INTEGER CreateVariable (integer, character, integer, integer, character, character, integer) Creates a VARIABLE symbol Notes : @param piScopeId The owning scope id @param pcName The variable name @param piProgressTypeNum The Proparse node type (VARIABLE) @param piDefineNodeId The DEFINE statement head node id @param pcDataType The ABL data type @param pcClassName The qualified class name, or the unknown value for a primitive typed variable @param piExtent The extent (0 = scalar) @return The new symbol id */
INTEGER CreateWidget (integer, character, integer, integer) Creates a widget symbol (a field-level widget defined by a DEFINE BUTTON / IMAGE / RECTANGLE statement) Notes : A widget participates in a frame's AllFieldsAndWidgets collection but is not a field (SCL-3077) @param piScopeId The owning scope id @param pcName The widget name @param piProgressTypeNum The token type of the widget kind (BUTTON, ...) @param piDefineNodeId The DEFINE statement head node id @return The new symbol id */
Consultingwerk.Studio.ProparseApi.IField FieldBufferField (integer) Returns the IField a field buffer resolves to, or the unknown value Notes : A schema field materializes a SchemaField from the shared Schema. @param piId The field-buffer symbol id @return The IField, or the unknown value when unresolved */
INTEGER FieldBufferOwningBufferId (integer) Returns the owning table-buffer symbol id of a field buffer Notes : @param piId The field-buffer symbol id @return The owning buffer symbol id, or 0 */
INTEGER FieldBufferSchemaFieldId (integer) Returns the schema field id of a field buffer Notes : @param piId The field-buffer symbol id @return The schema field id, or 0 */
INTEGER FindBufferScope (integer, integer) Returns the buffer scope of a table buffer in a block, or 0 Notes : A buffer has one scope per block; a repeated record reference in the same block reuses it (SCL-5480). @param piBlockId The block id @param piBufferId The table-buffer symbol id @return The buffer-scope id, or 0 when the buffer is not scoped to the block */
INTEGER FindDefaultSchemaBuffer (integer, integer) Finds the default table buffer for a schema table id in a scope tree Notes : Used so a schema-table reference reuses the same default buffer. @param piScopeId The scope to search from @param piSchemaTableId The schema table id @return The table-buffer symbol id, or 0 */
INTEGER FindFieldBuffer (integer, character) Finds a field buffer already created for a table buffer, by name Notes : @param piOwningBufferId The owning table-buffer symbol id @param pcName The field name @return The field-buffer symbol id, or 0 */
INTEGER FindStoreFieldByName (integer, character) Returns the id of the first field of a store table whose name begins with the given (possibly abbreviated) name Notes : Mirrors the reference engine's Table.lookupField prefix semantics - the fields are visited in name order and the first prefix match wins, so an exact name beats any longer name it abbreviates (SCL-5619) @param piStoreTableId The store table id @param pcFieldName The field name (may be abbreviated) @return The store field id, or 0 when the table holds no such field */
INTEGER FindSymbol (integer, integer, character) Finds a symbol by name and kind, searching a scope and its ancestors Notes : Returns the nearest matching symbol id, or 0 when none is found. @param piScopeId The scope to search from @param piKind The symbol kind @param pcName The symbol name @return The symbol id, or 0 */
INTEGER FindSymbolInScope (integer, integer, character) Finds a symbol by name and kind in one scope only Notes : Unlike FindSymbol the ancestors of the scope are not searched - used where a statement defines a symbol in its own scope unless that scope already has one (SCL-5756) @param piScopeId The scope to search @param piKind The symbol kind @param pcName The symbol name @return The symbol id, or 0 */
INTEGER FrameFieldSymbolIds (integer, logical, logical) Returns the symbol ids registered with a frame's field container Notes : Backs the IFieldContainer collections of the frame wrapper (SCL-3077) @param piFrameSymbolId The frame symbol id @param plFieldsOnly Whether to return only fields / variables (no widgets) @param plEnabledOnly Whether to return only enabled fields @return The array of symbol ids (indeterminate when none) */
LOGICAL FrameInitialized (integer) Returns whether a frame symbol has been initialized by a frame initializing statement Notes : SCL-5739 @param piId The symbol id @return Logical value indicating whether the frame is initialized */
INTEGER FrameScopeBlockId (integer) Returns the scoping block id of a frame symbol Notes : @param piId The frame symbol id @return The scoping block id, or 0 */
INTEGER FrameScopeNodeId (integer) Returns the frame scoping node of a frame symbol Notes : 0 while the frame is neither initialized nor explicitly scoped (SCL-5739) @param piId The symbol id @return The frame scoping node id, or 0 */
Consultingwerk.Studio.ProparseApi.IBlock GetBlock (integer) Returns the lazy IBlock wrapper for a block id Notes : @param piId The block id @return The IBlock wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.IBufferScope GetBufferScope (integer) Returns the lazy IBufferScope wrapper for a buffer-scope id Notes : @param piId The buffer-scope id @return The IBufferScope wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.ICall GetCall (integer) Returns the lazy ICall wrapper for a call id Notes : @param piId The call id @return The ICall wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.IFieldBuffer GetFieldBuffer (integer) Returns the lazy IFieldBuffer wrapper for a field-buffer symbol id Notes : @param piId The symbol id @return The IFieldBuffer wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.IFrame GetFrame (integer) Returns the lazy IFrame wrapper for a frame symbol id Notes : @param piId The symbol id @return The IFrame wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.IParameter GetParameter (integer) Returns the lazy IParameter wrapper for a parameter id Notes : @param piId The parameter id @return The IParameter wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.ISymbolScope GetScope (integer) Returns the lazy ISymbolScope wrapper for a scope id Notes : @param piId The scope id @return The ISymbolScope wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.IField GetStoreField (integer) Returns the lazy IField wrapper for a store field id Notes : @param piId The store field id @return The IField wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.ISymbol GetSymbol (integer) Returns the lazy ISymbol wrapper for a symbol id Notes : @param piId The symbol id @return The ISymbol wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.ITableBuffer GetTableBuffer (integer) Returns the lazy ITableBuffer wrapper for a buffer symbol id Notes : @param piId The symbol id @return The ITableBuffer wrapper, or the unknown value */
Consultingwerk.Studio.ProparseApi.IVariable GetVariable (integer) Returns the lazy IVariable wrapper for a variable symbol id Notes : @param piId The symbol id @return The IVariable wrapper, or the unknown value */
LOGICAL HiddenFromKindFilter (integer) Returns whether the bSymbolScan record is hidden from a kind-filtered symbol enumeration Notes : Reads the positioned bSymbolScan buffer of ScopeSymbolIds. @param piKind The symbol kind filter (0 = all) @return Logical value indicating a hidden symbol */
InitializeFrame (integer, integer, integer) Initializes a frame on its first use by a frame initializing statement Notes : Mirrors the reference engine's Frame.initialize (): the first initialization scopes the frame to the given block / frame scoping node unless an explicit DO / FOR / REPEAT WITH FRAME scoped it before; later initializations are no-ops (SCL-5739) @param piSymbolId The frame symbol id @param piBlockId The (scope root) block the initializing statement belongs to @param piScopeNodeId The frame scoping node of the initializing statement */
Consultingwerk.Studio.ProparseApi.INode NodeWrapper (integer) Materializes the INode wrapper for a node id (or the unknown value) Notes : Convenience for the symbol wrappers; returns the unknown value when the node store is unset or the id is 0. @param piNodeId The node id @return The INode wrapper, or the unknown value */
INTEGER ParameterDirectionNodeId (integer) Returns the direction (INPUT / OUTPUT / INPUT-OUTPUT) AST node id of a parameter Notes : @param piId The parameter id @return The direction node id, or 0 */
INTEGER ParameterProgressTypeNum (integer) Returns the Proparse type number of a parameter Notes : @param piId The parameter id @return The Proparse type number, or 0 */
INTEGER ParameterSymbolId (integer) Returns the symbol id bound to a parameter Notes : @param piId The parameter id @return The parameter symbol id, or 0 */
LOGICAL PositionBlock (integer) Positions the block buffer on a block id (cached) Notes : @param piId The block id @return Logical value indicating whether the block record is available */
LOGICAL PositionBufferScope (integer) Positions the buffer-scope buffer on a buffer-scope id (cached) Notes : @param piId The buffer-scope id @return Logical value indicating whether the buffer-scope record is available */
LOGICAL PositionCall (integer) Positions the call buffer on a call id (cached) Notes : @param piId The call id @return Logical value indicating whether the call record is available */
LOGICAL PositionParameter (integer) Positions the parameter buffer on a parameter id (cached) Notes : @param piId The parameter id @return Logical value indicating whether the parameter record is available */
LOGICAL PositionScope (integer) Positions the scope buffer on a scope id (cached) Notes : @param piId The scope id @return Logical value indicating whether the scope record is available */
LOGICAL PositionStoreField (integer) Positions the store-field buffer on a field id (cached) Notes : @param piId The store field id @return Logical value indicating whether the field record is available */
LOGICAL PositionSymbol (integer) Positions the symbol buffer on a symbol id (cached) Notes : @param piId The symbol id @return Logical value indicating whether the symbol record is available */
LOGICAL PositionTable (integer) Positions the store-table buffer on a table id (cached) Notes : @param piId The store table id @return Logical value indicating whether the table record is available */
RecomputeScopeDepth (integer, integer) Sets the depth of a scope and recomputes its descendants Notes : @param piScopeId The scope id @param piDepth The new depth */
INTEGER ScopeCallIds (integer) Returns the call ids of a scope Notes : @param piScopeId The scope id @return The array of call ids (indeterminate when none) */
INTEGER ScopeChildIds (integer) Returns the child scope ids of a scope Notes : @param piScopeId The scope id @return The array of child scope ids (indeterminate when none) */
INTEGER ScopeDepth (integer) Returns the nesting depth of a scope Notes : @param piId The scope id @return The scope depth, or 0 */
INTEGER ScopeDescendantIds (integer, logical) Returns a scope and all its descendant scope ids (pre-order) Notes : Self is the first element; pass false for plIncludeSelf to drop it. @param piScopeId The scope id @param plIncludeSelf Whether to include the scope itself @return The array of scope ids (indeterminate when none) */
INTEGER ScopeNodeId (integer) Returns the defining AST node id of a scope Notes : @param piId The scope id @return The scope node id, or 0 */
INTEGER ScopeParentId (integer) Returns the parent scope id of a scope Notes : @param piId The scope id @return The parent scope id, or 0 */
INTEGER ScopeRootBlockId (integer) Returns the root block id of a scope Notes : @param piId The scope id @return The root block id, or 0 */
INTEGER ScopeRootScopeId (integer) Returns the root (program) scope id of a scope Notes : The nearest root-like ancestor-or-self. The compile unit's root scope is its own root even when a super-class skeleton scope is chained as its parent, like the Java SymbolScope:getRootScope (SCL-5482). @param piId The scope id @return The root scope id, or 0 */
INTEGER ScopeSymbolIds (integer, integer) Returns the symbol ids of a scope, optionally filtered by kind Notes : Pass 0 for piKind to return all symbols. The kind-filtered form mirrors the Java map-backed collections (SCL-5482): the variables exclude shadowed (redefined) entries like getVariables, and the buffers exclude the unnamed default schema buffers like getBufferSet (those live in the separate unnamedBuffers map of the reference). The unfiltered form mirrors getAllSymbols, which includes both. @param piScopeId The scope id @param piKind The symbol kind filter (0 = all) @return The array of symbol ids (indeterminate when none) */
INTEGER ScopeSymbolIdsDeep (integer) Returns the symbol ids of a scope and all its descendant scopes Notes : @param piScopeId The scope id @return The array of symbol ids (indeterminate when none) */
CHARACTER ScopeTypeName (integer) Returns the class / routine name of a scope (informational) Notes : @param piId The scope id @return The scope type name */
SetCallPersistentHandle (integer, integer, integer) Links a RUN ... PERSISTENT SET call to its handle reference node and the handle variable symbol Notes : @param piId The call id @param piNodeId The Field_ref node id of the SET handle reference @param piSymbolId The symbol id of the handle variable */
SetFrameScopeNode (integer, integer, integer) Scopes a frame explicitly to a block header (DO / FOR / REPEAT WITH FRAME name) Notes : Mirrors the reference engine's Frame.setFrameScopeBlockExplicitDefault (): the frame becomes the default frame of that block without being initialized (SCL-5739). A frame that is already scoped - initialized by an earlier FORM / DISPLAY or scoped by an outer block header - keeps its scope; the block header only makes it the block's default frame (frames.p t4a, SCL-5748) @param piSymbolId The frame symbol id @param piScopeNodeId The block header node @param piBlockId The (scope root) block the block header belongs to */
SetScopeParent (integer, integer) Links a scope to a (new) parent scope Notes : Chains the super-class skeleton scope as the parent of the compile unit's root scope, like the Java SymbolScopeRoot:assignSuper (SCL-5482). The scope keeps its root-like nature; its depth (and the depth of any descendant scopes) is recomputed from the new parent. @param piScopeId The scope id @param piParentScopeId The new parent scope id */
SetScopeTypeName (integer, character) Sets the class / routine name of a scope (informational) Notes : The root scope is created before the CLASS statement is seen, so the tree parser supplies the class name afterwards (SCL-5482). @param piId The scope id @param pcTypeName The scope type name */
SetSymbolNodes (integer, integer, integer) Sets the AS / LIKE / indirect-define nodes of a symbol Notes : Set by the tree parser after the symbol's clauses are structured. @param piId The symbol id @param piAsNodeId The AS node id (0 when none) @param piLikeNodeId The LIKE node id (0 when none) */
SetSymbolRunHandle (integer, character) Records the procedure a handle variable was set to Notes : The FIRST RUN ... PERSISTENT SET wins - a variable set twice keeps the procedure of the first statement, matching the reference engine. @param piId The symbol id @param pcValue The procedure name */
CHARACTER StoreFieldDataType (integer) Returns the data type name of a store field Notes : @param piId The store field id @return The data type name */
INTEGER StoreFieldIds (integer) Returns the field ids of a store-local table (in definition order) Notes : @param piStoreTableId The store table id @return The array of store field ids (indeterminate when none) */
CHARACTER StoreFieldName (integer) Returns the name of a store field Notes : @param piId The store field id @return The field name */
INTEGER StoreFieldTableId (integer) Returns the owning store table id of a store field Notes : @param piId The store field id @return The store table id, or 0 */
CHARACTER StoreTableName (integer) Returns the name of a store table Notes : @param piId The store table id @return The table name */
INTEGER StoreTableStoreType (integer) Returns the store type constant of a store table Notes : @param piId The store table id @return The store type constant, or 0 */
INTEGER SymbolAsNodeId (integer) Returns the AS clause AST node id of a symbol Notes : @param piId The symbol id @return The AS node id, or 0 */
CHARACTER SymbolClassName (integer) Returns the class type name of an object-typed symbol Notes : @param piId The symbol id @return The class type name */
CHARACTER SymbolDataType (integer) Returns the data type name of a symbol Notes : @param piId The symbol id @return The data type name */
INTEGER SymbolDefineNodeId (integer) Returns the defining AST node id of a symbol Notes : @param piId The symbol id @return The define node id, or 0 */
LOGICAL SymbolExists (integer) Returns whether a symbol id exists in the store Notes : @param piId The symbol id @return Logical value indicating symbol existence */
LOGICAL SymbolExported (integer) Returns whether a symbol is exported (DEFINE NEW SHARED) Notes : @param piId The symbol id @return Logical value indicating an exported symbol */
INTEGER SymbolExtent (integer) Returns the extent dimension of a symbol Notes : @param piId The symbol id @return The extent dimension, or 0 */
CHARACTER SymbolFullName (integer) Returns the fully qualified name of a symbol Notes : @param piId The symbol id @return The fully qualified symbol name */
LOGICAL SymbolImported (integer) Returns whether a symbol is imported (DEFINE SHARED) Notes : @param piId The symbol id @return Logical value indicating an imported symbol */
INTEGER SymbolIndirectDefineNodeId (integer) Returns the indirect-define AST node id of a symbol Notes : @param piId The symbol id @return The indirect define node id, or 0 */
INTEGER SymbolKind (integer) Returns the kind constant of a symbol (variable / buffer / frame / ...) Notes : @param piId The symbol id @return The symbol kind constant, or 0 */
INTEGER SymbolLikeNodeId (integer) Returns the LIKE clause AST node id of a symbol Notes : @param piId The symbol id @return The LIKE node id, or 0 */
CHARACTER SymbolName (integer) Returns the name of a symbol Notes : @param piId The symbol id @return The symbol name */
INTEGER SymbolNumReads (integer) Returns the number of read references of a symbol Notes : @param piId The symbol id @return The read reference count, or 0 */
INTEGER SymbolNumWrites (integer) Returns the number of write references of a symbol Notes : @param piId The symbol id @return The write reference count, or 0 */
INTEGER SymbolProgressTypeNum (integer) Returns the Proparse type number of a symbol Notes : @param piId The symbol id @return The Proparse type number, or 0 */
CHARACTER SymbolRunHandle (integer) Returns the name of the procedure a handle variable was set to Notes : Set by a RUN ... PERSISTENT SET <variable> statement. The empty string when the variable is not a persistent-procedure handle. @param piId The symbol id @return The procedure name, or the empty string */
INTEGER SymbolScopeId (integer) Returns the owning scope id of a symbol Notes : @param piId The symbol id @return The scope id, or 0 */

Top Constructor Summary
Options Name Purpose
SymbolStore () Constructor for the SymbolStore class Notes : */

Top Property Summary
Options Name Purpose
INTEGER KindFieldBuffer
INTEGER KindFrame
INTEGER KindTableBuffer
INTEGER KindVariable
INTEGER KindWidget
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Nodes.NodeStore Nodes
INTEGER RootScopeId
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Schema.Schema Schema
INTEGER TableKindNone
INTEGER TableKindSchema
INTEGER TableKindStore


Method Detail
Top

AddFrameFieldSymbol (integer, integer, logical, logical)

Purpose: Registers a field / widget symbol with a frame's field container
Notes : A symbol already registered with the frame is not added twice -
an enabling statement only upgrades its enabled flag, mirroring
the reference engine's frame stack (SCL-3077)

Parameters:
piFrameSymbolId INTEGER
The frame symbol id
piSymbolId INTEGER
The registered field / widget symbol id
plField LOGICAL
Whether the symbol is a field / variable (not a widget)
plEnabled LOGICAL
Whether the registering statement enables the field
Top

AddRefs (integer, integer, integer)

Purpose: Increments the read / write reference counts of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
piReads INTEGER
The number of reads to add
piWrites INTEGER
The number of writes to add
Top

INTEGER AllStoreTableIds ()

Purpose: Returns the ids of all store-local (temp / work) tables
Notes : In creation order - used by the unqualified-field fallback
(SCL-5619)

Returns INTEGER
The array of store table ids (indeterminate when none)
Top

INTEGER BlockBufferIds (integer)

Purpose: Returns the table-buffer symbol ids scoped to a block
Notes :

Parameters:
piBlockId INTEGER
The block id
Returns INTEGER
The array of table-buffer symbol ids (indeterminate when none)
Top

INTEGER BlockFrameIds (integer)

Purpose: Returns the frame symbol ids scoped to a block
Notes : Like the reference engine's Block.getFrames (): only the frames
scoped to the block itself - initialized by a frame initializing
statement in the block or in a nested DO block, or set as the
block's explicit default frame. A frame defined but never used,
or scoped to a nested REPEAT / FOR block, is not listed
(SCL-5739). The frame symbol may belong to an outer scope: a
frame defined at the root and first used inside an internal
procedure is scoped to the procedure's block (SCL-5740).

Parameters:
piBlockId INTEGER
The block id
Returns INTEGER
The array of frame symbol ids (indeterminate when none)
Top

INTEGER BlockIdForNode (integer)

Purpose: Returns the id of the block whose head is a given AST node
Notes : The inverse of BlockNodeId; used by the IBlockNode:Block
accessor (SCL-5462). Returns 0 when the node does not head a
block

Parameters:
piNodeId INTEGER
The AST node id
Returns INTEGER
The block id, or 0
Top

LOGICAL BlockIsMethodBlock (integer)

Purpose: Returns whether a block is a method-level (routine) block
Notes : A scope root block whose scope has a parent scope - which
includes the compile unit's root block once a super-class scope
is chained, like the Java Block:isMethodBlock (SCL-5482).

Parameters:
piId INTEGER
The block id
Returns LOGICAL
Logical value indicating a method block
Top

LOGICAL BlockIsProgramBlock (integer)

Purpose: Returns whether a block is the program block
Notes : A scope root block whose scope has no parent scope, like the
Java Block:isProgramBlock (SCL-5482).

Parameters:
piId INTEGER
The block id
Returns LOGICAL
Logical value indicating the program block
Top

LOGICAL BlockIsRootBlock (integer)

Purpose: Returns whether a block is the root block of its scope
Notes :

Parameters:
piId INTEGER
The block id
Returns LOGICAL
Logical value indicating a root block
Top

INTEGER BlockNodeId (integer)

Purpose: Returns the AST node id of a block
Notes :

Parameters:
piId INTEGER
The block id
Returns INTEGER
The block node id, or 0
Top

INTEGER BlockParentId (integer)

Purpose: Returns the parent block id of a block
Notes :

Parameters:
piId INTEGER
The block id
Returns INTEGER
The parent block id, or 0
Top

INTEGER BlockScopeId (integer)

Purpose: Returns the owning scope id of a block
Notes :

Parameters:
piId INTEGER
The block id
Returns INTEGER
The scope id, or 0
Top

INTEGER BufferFieldBufferIds (integer)

Purpose: Returns the field-buffer symbol ids created for a table buffer
Notes :

Parameters:
piBufferId INTEGER
The table-buffer symbol id
Returns INTEGER
The array of field-buffer symbol ids (indeterminate when none)
Top

LOGICAL BufferIsDefault (integer)

Purpose: Returns whether a table buffer is the default buffer of its table
Notes :

Parameters:
piId INTEGER
The buffer symbol id
Returns LOGICAL
Logical value indicating the default buffer
Top

LOGICAL BufferIsDefaultSchema (integer)

Purpose: Returns whether a table buffer is an unnamed default schema buffer
Notes :

Parameters:
piId INTEGER
The buffer symbol id
Returns LOGICAL
Logical value indicating a default schema buffer
Top

CHARACTER BufferName (integer)

Purpose: Returns the buffer name of a table-buffer symbol
Notes :

Parameters:
piId INTEGER
The buffer symbol id
Returns CHARACTER
The buffer name
Top

INTEGER BufferSchemaTableId (integer)

Purpose: Returns the schema table id of a database table buffer
Notes :

Parameters:
piId INTEGER
The buffer symbol id
Returns INTEGER
The schema table id, or 0
Top

INTEGER BufferScopeBlockId (integer)

Purpose: Returns the block id of a buffer scope
Notes :

Parameters:
piId INTEGER
The buffer-scope id
Returns INTEGER
The block id, or 0
Top

LOGICAL BufferScopeStrong (integer)

Purpose: Returns whether a buffer scope is a strong scope
Notes :

Parameters:
piId INTEGER
The buffer-scope id
Returns LOGICAL
Logical value indicating a strong scope
Top

INTEGER BufferScopeSymbolId (integer)

Purpose: Returns the table-buffer symbol id of a buffer scope
Notes :

Parameters:
piId INTEGER
The buffer-scope id
Returns INTEGER
The buffer symbol id, or 0
Top

LOGICAL BufferScopeWeak (integer)

Purpose: Returns whether a buffer scope is a weak scope
Notes :

Parameters:
piId INTEGER
The buffer-scope id
Returns LOGICAL
Logical value indicating a weak scope
Top

INTEGER BufferStoreTableId (integer)

Purpose: Returns the store table id of a table buffer
Notes :

Parameters:
piId INTEGER
The buffer symbol id
Returns INTEGER
The store table id, or 0
Top

Consultingwerk.Studio.ProparseApi.ITable BufferTable (integer)

Purpose: Returns the ITable a table buffer resolves to, or the unknown value
Notes : A schema table buffer materializes a SchemaTable from the shared
Schema; a store table buffer materializes an AblTable.

Parameters:
piId INTEGER
The table-buffer symbol id
Returns Consultingwerk.Studio.ProparseApi.ITable
The ITable, or the unknown value when unresolved
Top

INTEGER BufferTableKind (integer)

Purpose: Returns the table kind constant of a table buffer (DB / temp-table / work-table)
Notes :

Parameters:
piId INTEGER
The buffer symbol id
Returns INTEGER
The table kind constant, or 0
Top

CHARACTER CallExternalName (integer)

Purpose: Returns the external program name of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns CHARACTER
The external program name
Top

CHARACTER CallFullName (integer)

Purpose: Returns the full (external + internal) name of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns CHARACTER
The full call name
Top

LOGICAL CallInHandle (integer)

Purpose: Returns whether a call runs IN a procedure handle
Notes :

Parameters:
piId INTEGER
The call id
Returns LOGICAL
Logical value indicating an IN-handle call
Top

CHARACTER CallInternalName (integer)

Purpose: Returns the internal procedure / method name of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns CHARACTER
The internal name
Top

LOGICAL CallLocal (integer)

Purpose: Returns whether a call targets a local (internal) routine
Notes :

Parameters:
piId INTEGER
The call id
Returns LOGICAL
Logical value indicating a local call
Top

CHARACTER CallLocalTarget (integer)

Purpose: Returns the local target name of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns CHARACTER
The local target name
Top

INTEGER CallParameterIds (integer)

Purpose: Returns the parameter ids of a call (in argument order)
Notes :

Parameters:
piCallId INTEGER
The call id
Returns INTEGER
The array of parameter ids (indeterminate when none)
Top

LOGICAL CallPersistent (integer)

Purpose: Returns whether a call runs PERSISTENT
Notes :

Parameters:
piId INTEGER
The call id
Returns LOGICAL
Logical value indicating a persistent call
Top

INTEGER CallPersistentHandleNodeId (integer)

Purpose: Returns the PERSISTENT SET handle AST node id of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns INTEGER
The handle node id, or 0
Top

INTEGER CallPersistentHandleSymbolId (integer)

Purpose: Returns the symbol id of the persistent handle variable of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns INTEGER
The symbol id, or 0
Top

CHARACTER CallRunArgument (integer)

Purpose: Returns the RUN argument text of a call
Notes :

Parameters:
piId INTEGER
The call id
Returns CHARACTER
The RUN argument text
Top

Clear ()

Purpose: Empties the store
Notes :

Top

CollectScopes (integer)

Purpose: Recursively collects a scope and its descendants (pre-order)
Notes :

Parameters:
piScopeId INTEGER
The scope id to visit
Top

INTEGER CreateBlock (integer, integer, integer, logical)

Purpose: Creates a block
Notes : The method / program flags are not passed in - they derive from
whether the block's scope has a parent scope, like the Java
Block:isMethodBlock isMethodBlock / :isProgramBlock (SCL-5482).

Parameters:
piScopeId INTEGER
The owning scope id
piParentBlockId INTEGER
The parent block id (0 for a root block)
piNodeId INTEGER
The block node id
plRootBlock LOGICAL
Whether this is a scope root block
Returns INTEGER
The new block id
Top

INTEGER CreateBufferScope (integer, integer, logical)

Purpose: Creates a buffer scope (a table buffer scoped to a block)
Notes :

Parameters:
piBlockId INTEGER
The block id
piBufferId INTEGER
The table-buffer symbol id
plStrong LOGICAL
Whether this is a strong buffer reference
Returns INTEGER
The new buffer-scope id
Top

INTEGER CreateCall (integer, integer, character, character, character, logical, logical, logical)

Purpose: Creates a call
Notes :

Parameters:
piScopeId INTEGER
The owning scope id
piNodeId INTEGER
The RUN / call node id
pcExternalName CHARACTER
The external procedure name
pcInternalName CHARACTER
The internal procedure name
pcRunArgument CHARACTER
The RUN argument text
plPersistent LOGICAL
Whether the call is RUN PERSISTENT
plLocal LOGICAL
Whether the call is a local (internal) call
plInHandle LOGICAL
Whether the call is RUN IN handle
Returns INTEGER
The new call id
Top

INTEGER CreateCallParameter (integer, integer, integer, integer)

Purpose: Creates a parameter of a call
Notes : From the Parameter_list of the call's RUN statement (SCL-5459).

Parameters:
piCallId INTEGER
The owning call id
piDirectionNodeId INTEGER
The INPUT / OUTPUT / INPUT-OUTPUT node id
piSymbolId INTEGER
The resolved argument symbol id (0 for an expression)
piProgressTypeNum INTEGER
The node type representing the Progress type (0 when unknown)
Returns INTEGER
The new parameter id
Top

INTEGER CreateFieldBuffer (integer, integer, character, integer, character, integer, integer, character)

Purpose: Creates a FIELD-BUFFER symbol
Notes :

Parameters:
piScopeId INTEGER
The owning scope id
piOwningBufferId INTEGER
The table-buffer symbol this field belongs to
pcName CHARACTER
The field name
piProgressTypeNum INTEGER
The Proparse node type (FIELD)
pcDataType CHARACTER
The ABL data type
piExtent INTEGER
The field extent
piSchemaFieldId INTEGER
The schema field id (0 when unresolved / store table)
pcDatabaseName CHARACTER
The database name qualifying a database field in the full name (empty for a temp-table field)
Returns INTEGER
The new symbol id
Top

INTEGER CreateFrame (integer, character, integer, integer, integer)

Purpose: Creates a FRAME symbol
Notes :

Parameters:
piScopeId INTEGER
The owning scope id
pcName CHARACTER
The frame name
piProgressTypeNum INTEGER
The Proparse node type (FRAME)
piDefineNodeId INTEGER
The DEFINE statement head node id (0 when implicit)
piFrameScopeBlockId INTEGER
The frame scope block id
Returns INTEGER
The new symbol id
Top

INTEGER CreateScope (integer, integer, character)

Purpose: Creates a symbol scope
Notes :

Parameters:
piParentScopeId INTEGER
The parent scope id (0 for the root scope)
piNodeId INTEGER
The node that opens the scope
pcTypeName CHARACTER
The class / routine name (informational)
Returns INTEGER
The new scope id
Top

INTEGER CreateStoreField (integer, character, character)

Purpose: Creates a field of a store-local table
Notes : From the FIELD clauses of the table's DEFINE TEMP-TABLE /
WORK-TABLE statement (SCL-5459).

Parameters:
piStoreTableId INTEGER
The owning store table id
pcName CHARACTER
The field name
pcDataType CHARACTER
The field data type (from the AS clause)
Returns INTEGER
The new store field id
Top

INTEGER CreateStoreTable (integer, character, integer)

Purpose: Creates a store-local table (temp-table / work-table)
Notes :

Parameters:
piScopeId INTEGER
The owning scope id
pcName CHARACTER
The table name
piStoreTypeNum INTEGER
The StoreTypeEnum value (TTABLE / WTABLE)
Returns INTEGER
The new store table id
Top

INTEGER CreateTableBuffer (integer, character, integer, integer, logical, integer, integer, integer)

Purpose: Creates a TABLE-BUFFER symbol
Notes :

Parameters:
piScopeId INTEGER
The owning scope id
pcName CHARACTER
The buffer name
piProgressTypeNum INTEGER
The Proparse node type (BUFFER)
piDefineNodeId INTEGER
The DEFINE statement head node id (0 when implicit)
plDefault LOGICAL
Whether this is the default (unnamed) buffer of the table
piTableKind INTEGER
The table-reference kind (TableKindSchema / TableKindStore / TableKindNone)
piSchemaTableId INTEGER
The schema table id (when TableKindSchema)
piStoreTableId INTEGER
The store table id (when TableKindStore)
Returns INTEGER
The new symbol id
Top

INTEGER CreateVariable (integer, character, integer, integer, character, character, integer)

Purpose: Creates a VARIABLE symbol
Notes :
primitive typed variable

Parameters:
piScopeId INTEGER
The owning scope id
pcName CHARACTER
The variable name
piProgressTypeNum INTEGER
The Proparse node type (VARIABLE)
piDefineNodeId INTEGER
The DEFINE statement head node id
pcDataType CHARACTER
The ABL data type
pcClassName CHARACTER
The qualified class name, or the unknown value for a
piExtent INTEGER
The extent (0 = scalar)
Returns INTEGER
The new symbol id
Top

INTEGER CreateWidget (integer, character, integer, integer)

Purpose: Creates a widget symbol (a field-level widget defined by a
DEFINE BUTTON / IMAGE / RECTANGLE statement)
Notes : A widget participates in a frame's AllFieldsAndWidgets
collection but is not a field (SCL-3077)

Parameters:
piScopeId INTEGER
The owning scope id
pcName CHARACTER
The widget name
piProgressTypeNum INTEGER
The token type of the widget kind (BUTTON, ...)
piDefineNodeId INTEGER
The DEFINE statement head node id
Returns INTEGER
The new symbol id
Top

Consultingwerk.Studio.ProparseApi.IField FieldBufferField (integer)

Purpose: Returns the IField a field buffer resolves to, or the unknown value
Notes : A schema field materializes a SchemaField from the shared Schema.

Parameters:
piId INTEGER
The field-buffer symbol id
Returns Consultingwerk.Studio.ProparseApi.IField
The IField, or the unknown value when unresolved
Top

INTEGER FieldBufferOwningBufferId (integer)

Purpose: Returns the owning table-buffer symbol id of a field buffer
Notes :

Parameters:
piId INTEGER
The field-buffer symbol id
Returns INTEGER
The owning buffer symbol id, or 0
Top

INTEGER FieldBufferSchemaFieldId (integer)

Purpose: Returns the schema field id of a field buffer
Notes :

Parameters:
piId INTEGER
The field-buffer symbol id
Returns INTEGER
The schema field id, or 0
Top

INTEGER FindBufferScope (integer, integer)

Purpose: Returns the buffer scope of a table buffer in a block, or 0
Notes : A buffer has one scope per block; a repeated record reference in
the same block reuses it (SCL-5480).

Parameters:
piBlockId INTEGER
The block id
piBufferId INTEGER
The table-buffer symbol id
Returns INTEGER
The buffer-scope id, or 0 when the buffer is not scoped to the block
Top

INTEGER FindDefaultSchemaBuffer (integer, integer)

Purpose: Finds the default table buffer for a schema table id in a scope tree
Notes : Used so a schema-table reference reuses the same default buffer.

Parameters:
piScopeId INTEGER
The scope to search from
piSchemaTableId INTEGER
The schema table id
Returns INTEGER
The table-buffer symbol id, or 0
Top

INTEGER FindFieldBuffer (integer, character)

Purpose: Finds a field buffer already created for a table buffer, by name
Notes :

Parameters:
piOwningBufferId INTEGER
The owning table-buffer symbol id
pcName CHARACTER
The field name
Returns INTEGER
The field-buffer symbol id, or 0
Top

INTEGER FindStoreFieldByName (integer, character)

Purpose: Returns the id of the first field of a store table whose name
begins with the given (possibly abbreviated) name
Notes : Mirrors the reference engine's Table.lookupField prefix
semantics - the fields are visited in name order and the first
prefix match wins, so an exact name beats any longer name it
abbreviates (SCL-5619)

Parameters:
piStoreTableId INTEGER
The store table id
pcFieldName CHARACTER
The field name (may be abbreviated)
Returns INTEGER
The store field id, or 0 when the table holds no such field
Top

INTEGER FindSymbol (integer, integer, character)

Purpose: Finds a symbol by name and kind, searching a scope and its ancestors
Notes : Returns the nearest matching symbol id, or 0 when none is found.

Parameters:
piScopeId INTEGER
The scope to search from
piKind INTEGER
The symbol kind
pcName CHARACTER
The symbol name
Returns INTEGER
The symbol id, or 0
Top

INTEGER FindSymbolInScope (integer, integer, character)

Purpose: Finds a symbol by name and kind in one scope only
Notes : Unlike FindSymbol the ancestors of the scope are not searched -
used where a statement defines a symbol in its own scope
unless that scope already has one (SCL-5756)

Parameters:
piScopeId INTEGER
The scope to search
piKind INTEGER
The symbol kind
pcName CHARACTER
The symbol name
Returns INTEGER
The symbol id, or 0
Top

INTEGER FrameFieldSymbolIds (integer, logical, logical)

Purpose: Returns the symbol ids registered with a frame's field container
Notes : Backs the IFieldContainer collections of the frame wrapper
(SCL-3077)

Parameters:
piFrameSymbolId INTEGER
The frame symbol id
plFieldsOnly LOGICAL
Whether to return only fields / variables (no widgets)
plEnabledOnly LOGICAL
Whether to return only enabled fields
Returns INTEGER
The array of symbol ids (indeterminate when none)
Top

LOGICAL FrameInitialized (integer)

Purpose: Returns whether a frame symbol has been initialized by a frame
initializing statement
Notes : SCL-5739

Parameters:
piId INTEGER
The symbol id
Returns LOGICAL
Logical value indicating whether the frame is initialized
Top

INTEGER FrameScopeBlockId (integer)

Purpose: Returns the scoping block id of a frame symbol
Notes :

Parameters:
piId INTEGER
The frame symbol id
Returns INTEGER
The scoping block id, or 0
Top

INTEGER FrameScopeNodeId (integer)

Purpose: Returns the frame scoping node of a frame symbol
Notes : 0 while the frame is neither initialized nor explicitly scoped
(SCL-5739)

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The frame scoping node id, or 0
Top

Consultingwerk.Studio.ProparseApi.IBlock GetBlock (integer)

Purpose: Returns the lazy IBlock wrapper for a block id
Notes :

Parameters:
piId INTEGER
The block id
Returns Consultingwerk.Studio.ProparseApi.IBlock
The IBlock wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.IBufferScope GetBufferScope (integer)

Purpose: Returns the lazy IBufferScope wrapper for a buffer-scope id
Notes :

Parameters:
piId INTEGER
The buffer-scope id
Returns Consultingwerk.Studio.ProparseApi.IBufferScope
The IBufferScope wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.ICall GetCall (integer)

Purpose: Returns the lazy ICall wrapper for a call id
Notes :

Parameters:
piId INTEGER
The call id
Returns Consultingwerk.Studio.ProparseApi.ICall
The ICall wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.IFieldBuffer GetFieldBuffer (integer)

Purpose: Returns the lazy IFieldBuffer wrapper for a field-buffer symbol id
Notes :

Parameters:
piId INTEGER
The symbol id
Returns Consultingwerk.Studio.ProparseApi.IFieldBuffer
The IFieldBuffer wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.IFrame GetFrame (integer)

Purpose: Returns the lazy IFrame wrapper for a frame symbol id
Notes :

Parameters:
piId INTEGER
The symbol id
Returns Consultingwerk.Studio.ProparseApi.IFrame
The IFrame wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.IParameter GetParameter (integer)

Purpose: Returns the lazy IParameter wrapper for a parameter id
Notes :

Parameters:
piId INTEGER
The parameter id
Returns Consultingwerk.Studio.ProparseApi.IParameter
The IParameter wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.ISymbolScope GetScope (integer)

Purpose: Returns the lazy ISymbolScope wrapper for a scope id
Notes :

Parameters:
piId INTEGER
The scope id
Returns Consultingwerk.Studio.ProparseApi.ISymbolScope
The ISymbolScope wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.IField GetStoreField (integer)

Purpose: Returns the lazy IField wrapper for a store field id
Notes :

Parameters:
piId INTEGER
The store field id
Returns Consultingwerk.Studio.ProparseApi.IField
The IField wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.ISymbol GetSymbol (integer)

Purpose: Returns the lazy ISymbol wrapper for a symbol id
Notes :

Parameters:
piId INTEGER
The symbol id
Returns Consultingwerk.Studio.ProparseApi.ISymbol
The ISymbol wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.ITableBuffer GetTableBuffer (integer)

Purpose: Returns the lazy ITableBuffer wrapper for a buffer symbol id
Notes :

Parameters:
piId INTEGER
The symbol id
Returns Consultingwerk.Studio.ProparseApi.ITableBuffer
The ITableBuffer wrapper, or the unknown value
Top

Consultingwerk.Studio.ProparseApi.IVariable GetVariable (integer)

Purpose: Returns the lazy IVariable wrapper for a variable symbol id
Notes :

Parameters:
piId INTEGER
The symbol id
Returns Consultingwerk.Studio.ProparseApi.IVariable
The IVariable wrapper, or the unknown value
Top

LOGICAL HiddenFromKindFilter (integer)

Purpose: Returns whether the bSymbolScan record is hidden from a
kind-filtered symbol enumeration
Notes : Reads the positioned bSymbolScan buffer of ScopeSymbolIds.

Parameters:
piKind INTEGER
The symbol kind filter (0 = all)
Returns LOGICAL
Logical value indicating a hidden symbol
Top

InitializeFrame (integer, integer, integer)

Purpose: Initializes a frame on its first use by a frame initializing
statement
Notes : Mirrors the reference engine's Frame.initialize (): the first
initialization scopes the frame to the given block / frame
scoping node unless an explicit DO / FOR / REPEAT WITH FRAME
scoped it before; later initializations are no-ops (SCL-5739)

Parameters:
piSymbolId INTEGER
The frame symbol id
piBlockId INTEGER
The (scope root) block the initializing statement belongs to
piScopeNodeId INTEGER
The frame scoping node of the initializing statement
Top

Consultingwerk.Studio.ProparseApi.INode NodeWrapper (integer)

Purpose: Materializes the INode wrapper for a node id (or the unknown value)
Notes : Convenience for the symbol wrappers; returns the unknown value when
the node store is unset or the id is 0.

Parameters:
piNodeId INTEGER
The node id
Returns Consultingwerk.Studio.ProparseApi.INode
The INode wrapper, or the unknown value
Top

INTEGER ParameterDirectionNodeId (integer)

Purpose: Returns the direction (INPUT / OUTPUT / INPUT-OUTPUT) AST node id of a parameter
Notes :

Parameters:
piId INTEGER
The parameter id
Returns INTEGER
The direction node id, or 0
Top

INTEGER ParameterProgressTypeNum (integer)

Purpose: Returns the Proparse type number of a parameter
Notes :

Parameters:
piId INTEGER
The parameter id
Returns INTEGER
The Proparse type number, or 0
Top

INTEGER ParameterSymbolId (integer)

Purpose: Returns the symbol id bound to a parameter
Notes :

Parameters:
piId INTEGER
The parameter id
Returns INTEGER
The parameter symbol id, or 0
Top

LOGICAL PositionBlock (integer)

Purpose: Positions the block buffer on a block id (cached)
Notes :

Parameters:
piId INTEGER
The block id
Returns LOGICAL
Logical value indicating whether the block record is available
Top

LOGICAL PositionBufferScope (integer)

Purpose: Positions the buffer-scope buffer on a buffer-scope id (cached)
Notes :

Parameters:
piId INTEGER
The buffer-scope id
Returns LOGICAL
Logical value indicating whether the buffer-scope record is available
Top

LOGICAL PositionCall (integer)

Purpose: Positions the call buffer on a call id (cached)
Notes :

Parameters:
piId INTEGER
The call id
Returns LOGICAL
Logical value indicating whether the call record is available
Top

LOGICAL PositionParameter (integer)

Purpose: Positions the parameter buffer on a parameter id (cached)
Notes :

Parameters:
piId INTEGER
The parameter id
Returns LOGICAL
Logical value indicating whether the parameter record is available
Top

LOGICAL PositionScope (integer)

Purpose: Positions the scope buffer on a scope id (cached)
Notes :

Parameters:
piId INTEGER
The scope id
Returns LOGICAL
Logical value indicating whether the scope record is available
Top

LOGICAL PositionStoreField (integer)

Purpose: Positions the store-field buffer on a field id (cached)
Notes :

Parameters:
piId INTEGER
The store field id
Returns LOGICAL
Logical value indicating whether the field record is available
Top

LOGICAL PositionSymbol (integer)

Purpose: Positions the symbol buffer on a symbol id (cached)
Notes :

Parameters:
piId INTEGER
The symbol id
Returns LOGICAL
Logical value indicating whether the symbol record is available
Top

LOGICAL PositionTable (integer)

Purpose: Positions the store-table buffer on a table id (cached)
Notes :

Parameters:
piId INTEGER
The store table id
Returns LOGICAL
Logical value indicating whether the table record is available
Top

RecomputeScopeDepth (integer, integer)

Purpose: Sets the depth of a scope and recomputes its descendants
Notes :

Parameters:
piScopeId INTEGER
The scope id
piDepth INTEGER
The new depth
Top

INTEGER ScopeCallIds (integer)

Purpose: Returns the call ids of a scope
Notes :

Parameters:
piScopeId INTEGER
The scope id
Returns INTEGER
The array of call ids (indeterminate when none)
Top

INTEGER ScopeChildIds (integer)

Purpose: Returns the child scope ids of a scope
Notes :

Parameters:
piScopeId INTEGER
The scope id
Returns INTEGER
The array of child scope ids (indeterminate when none)
Top

INTEGER ScopeDepth (integer)

Purpose: Returns the nesting depth of a scope
Notes :

Parameters:
piId INTEGER
The scope id
Returns INTEGER
The scope depth, or 0
Top

INTEGER ScopeDescendantIds (integer, logical)

Purpose: Returns a scope and all its descendant scope ids (pre-order)
Notes : Self is the first element; pass false for plIncludeSelf to drop it.

Parameters:
piScopeId INTEGER
The scope id
plIncludeSelf LOGICAL
Whether to include the scope itself
Returns INTEGER
The array of scope ids (indeterminate when none)
Top

INTEGER ScopeNodeId (integer)

Purpose: Returns the defining AST node id of a scope
Notes :

Parameters:
piId INTEGER
The scope id
Returns INTEGER
The scope node id, or 0
Top

INTEGER ScopeParentId (integer)

Purpose: Returns the parent scope id of a scope
Notes :

Parameters:
piId INTEGER
The scope id
Returns INTEGER
The parent scope id, or 0
Top

INTEGER ScopeRootBlockId (integer)

Purpose: Returns the root block id of a scope
Notes :

Parameters:
piId INTEGER
The scope id
Returns INTEGER
The root block id, or 0
Top

INTEGER ScopeRootScopeId (integer)

Purpose: Returns the root (program) scope id of a scope
Notes : The nearest root-like ancestor-or-self. The compile unit's root
scope is its own root even when a super-class skeleton scope is
chained as its parent, like the Java SymbolScope:getRootScope
(SCL-5482).

Parameters:
piId INTEGER
The scope id
Returns INTEGER
The root scope id, or 0
Top

INTEGER ScopeSymbolIds (integer, integer)

Purpose: Returns the symbol ids of a scope, optionally filtered by kind
Notes : Pass 0 for piKind to return all symbols. The kind-filtered form
mirrors the Java map-backed collections (SCL-5482): the variables
exclude shadowed (redefined) entries like getVariables, and the
buffers exclude the unnamed default schema buffers like
getBufferSet (those live in the separate unnamedBuffers map of
the reference). The unfiltered form mirrors getAllSymbols, which
includes both.

Parameters:
piScopeId INTEGER
The scope id
piKind INTEGER
The symbol kind filter (0 = all)
Returns INTEGER
The array of symbol ids (indeterminate when none)
Top

INTEGER ScopeSymbolIdsDeep (integer)

Purpose: Returns the symbol ids of a scope and all its descendant scopes
Notes :

Parameters:
piScopeId INTEGER
The scope id
Returns INTEGER
The array of symbol ids (indeterminate when none)
Top

CHARACTER ScopeTypeName (integer)

Purpose: Returns the class / routine name of a scope (informational)
Notes :

Parameters:
piId INTEGER
The scope id
Returns CHARACTER
The scope type name
Top

SetCallPersistentHandle (integer, integer, integer)

Purpose: Links a RUN ... PERSISTENT SET call to its handle reference node
and the handle variable symbol
Notes :

Parameters:
piId INTEGER
The call id
piNodeId INTEGER
The Field_ref node id of the SET handle reference
piSymbolId INTEGER
The symbol id of the handle variable
Top

SetFrameScopeNode (integer, integer, integer)

Purpose: Scopes a frame explicitly to a block header (DO / FOR / REPEAT
WITH FRAME name)
Notes : Mirrors the reference engine's
Frame.setFrameScopeBlockExplicitDefault (): the frame becomes
the default frame of that block without being initialized
(SCL-5739). A frame that is already scoped - initialized by an
earlier FORM / DISPLAY or scoped by an outer block header -
keeps its scope; the block header only makes it the block's
default frame (frames.p t4a, SCL-5748)

Parameters:
piSymbolId INTEGER
The frame symbol id
piScopeNodeId INTEGER
The block header node
piBlockId INTEGER
The (scope root) block the block header belongs to
Top

SetScopeParent (integer, integer)

Purpose: Links a scope to a (new) parent scope
Notes : Chains the super-class skeleton scope as the parent of the compile
unit's root scope, like the Java SymbolScopeRoot:assignSuper
(SCL-5482). The scope keeps its root-like nature; its depth (and
the depth of any descendant scopes) is recomputed from the new
parent.

Parameters:
piScopeId INTEGER
The scope id
piParentScopeId INTEGER
The new parent scope id
Top

SetScopeTypeName (integer, character)

Purpose: Sets the class / routine name of a scope (informational)
Notes : The root scope is created before the CLASS statement is seen, so
the tree parser supplies the class name afterwards (SCL-5482).

Parameters:
piId INTEGER
The scope id
pcTypeName CHARACTER
The scope type name
Top

SetSymbolNodes (integer, integer, integer)

Purpose: Sets the AS / LIKE / indirect-define nodes of a symbol
Notes : Set by the tree parser after the symbol's clauses are structured.

Parameters:
piId INTEGER
The symbol id
piAsNodeId INTEGER
The AS node id (0 when none)
piLikeNodeId INTEGER
The LIKE node id (0 when none)
Top

SetSymbolRunHandle (integer, character)

Purpose: Records the procedure a handle variable was set to
Notes : The FIRST RUN ... PERSISTENT SET wins - a variable set twice
keeps the procedure of the first statement, matching the
reference engine.

Parameters:
piId INTEGER
The symbol id
pcValue CHARACTER
The procedure name
Top

CHARACTER StoreFieldDataType (integer)

Purpose: Returns the data type name of a store field
Notes :

Parameters:
piId INTEGER
The store field id
Returns CHARACTER
The data type name
Top

INTEGER StoreFieldIds (integer)

Purpose: Returns the field ids of a store-local table (in definition order)
Notes :

Parameters:
piStoreTableId INTEGER
The store table id
Returns INTEGER
The array of store field ids (indeterminate when none)
Top

CHARACTER StoreFieldName (integer)

Purpose: Returns the name of a store field
Notes :

Parameters:
piId INTEGER
The store field id
Returns CHARACTER
The field name
Top

INTEGER StoreFieldTableId (integer)

Purpose: Returns the owning store table id of a store field
Notes :

Parameters:
piId INTEGER
The store field id
Returns INTEGER
The store table id, or 0
Top

CHARACTER StoreTableName (integer)

Purpose: Returns the name of a store table
Notes :

Parameters:
piId INTEGER
The store table id
Returns CHARACTER
The table name
Top

INTEGER StoreTableStoreType (integer)

Purpose: Returns the store type constant of a store table
Notes :

Parameters:
piId INTEGER
The store table id
Returns INTEGER
The store type constant, or 0
Top

INTEGER SymbolAsNodeId (integer)

Purpose: Returns the AS clause AST node id of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The AS node id, or 0
Top

CHARACTER SymbolClassName (integer)

Purpose: Returns the class type name of an object-typed symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns CHARACTER
The class type name
Top

CHARACTER SymbolDataType (integer)

Purpose: Returns the data type name of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns CHARACTER
The data type name
Top

INTEGER SymbolDefineNodeId (integer)

Purpose: Returns the defining AST node id of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The define node id, or 0
Top

LOGICAL SymbolExists (integer)

Purpose: Returns whether a symbol id exists in the store
Notes :

Parameters:
piId INTEGER
The symbol id
Returns LOGICAL
Logical value indicating symbol existence
Top

LOGICAL SymbolExported (integer)

Purpose: Returns whether a symbol is exported (DEFINE NEW SHARED)
Notes :

Parameters:
piId INTEGER
The symbol id
Returns LOGICAL
Logical value indicating an exported symbol
Top

INTEGER SymbolExtent (integer)

Purpose: Returns the extent dimension of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The extent dimension, or 0
Top

CHARACTER SymbolFullName (integer)

Purpose: Returns the fully qualified name of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns CHARACTER
The fully qualified symbol name
Top

LOGICAL SymbolImported (integer)

Purpose: Returns whether a symbol is imported (DEFINE SHARED)
Notes :

Parameters:
piId INTEGER
The symbol id
Returns LOGICAL
Logical value indicating an imported symbol
Top

INTEGER SymbolIndirectDefineNodeId (integer)

Purpose: Returns the indirect-define AST node id of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The indirect define node id, or 0
Top

INTEGER SymbolKind (integer)

Purpose: Returns the kind constant of a symbol (variable / buffer / frame / ...)
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The symbol kind constant, or 0
Top

INTEGER SymbolLikeNodeId (integer)

Purpose: Returns the LIKE clause AST node id of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The LIKE node id, or 0
Top

CHARACTER SymbolName (integer)

Purpose: Returns the name of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns CHARACTER
The symbol name
Top

INTEGER SymbolNumReads (integer)

Purpose: Returns the number of read references of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The read reference count, or 0
Top

INTEGER SymbolNumWrites (integer)

Purpose: Returns the number of write references of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The write reference count, or 0
Top

INTEGER SymbolProgressTypeNum (integer)

Purpose: Returns the Proparse type number of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The Proparse type number, or 0
Top

CHARACTER SymbolRunHandle (integer)

Purpose: Returns the name of the procedure a handle variable was set to
Notes : Set by a RUN ... PERSISTENT SET <variable> statement. The empty
string when the variable is not a persistent-procedure handle.

Parameters:
piId INTEGER
The symbol id
Returns CHARACTER
The procedure name, or the empty string
Top

INTEGER SymbolScopeId (integer)

Purpose: Returns the owning scope id of a symbol
Notes :

Parameters:
piId INTEGER
The symbol id
Returns INTEGER
The scope id, or 0


Constructor Detail
Top

SymbolStore ()

Purpose: Constructor for the SymbolStore class
Notes :



Property Detail
Top

INTEGER KindFieldBuffer


Returns INTEGER
Top

INTEGER KindFrame


Returns INTEGER
Top

INTEGER KindTableBuffer


Returns INTEGER
Top

INTEGER KindVariable


Returns INTEGER
Top

INTEGER KindWidget


Returns INTEGER
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Nodes.NodeStore Nodes


Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Nodes.NodeStore
Top

INTEGER RootScopeId


Returns INTEGER
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Schema.Schema Schema


Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Schema.Schema
Top

INTEGER TableKindNone


Returns INTEGER
Top

INTEGER TableKindSchema


Returns INTEGER
Top

INTEGER TableKindStore


Returns INTEGER


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:18:29