MultiTypeSymbolTable¶
Usage
use MultiTypeSymbolTable;
or
import MultiTypeSymbolTable;
- const mtLogger = new Logger(logLevel, logChannel)¶
- class SymTab¶
symbol table
- var registry = new owned RegTab()¶
Similar to the Symbol Table but for register object tracking
- var tab : map(string, shared AbstractSymEntry)¶
Map indexed by strings
- var serverid = "id_" + generateToken(8) + "_"¶
- var nid = 0¶
- proc nextName() : string¶
Gives out symbol names.
- proc insert(in symbol: shared AbstractSymEntry) : MsgTuple throws¶
Insert a symbol into the table.
Returns a symbol-creation message with the symbol’s attributes
- proc addEntry(name: string, shape: int ...?N, type t) : borrowed SymEntry(t, N) throws¶
Takes args and creates a new SymEntry.
- Arguments:
name :
string
– name of the arrayshape :
int
– length of array in each dimensiont – type of array
- Returns:
borrow of newly created SymEntry(t)
- proc addEntry(name: string, shape: ?ND*int, type t) : borrowed SymEntry(t, ND) throws
- proc addEntry(name: string, in entry: shared AbstractSymEntry) : borrowed AbstractSymEntry throws
Takes an already created AbstractSymEntry and creates a new AbstractSymEntry.
- Arguments:
name :
string
– name of the arrayentry :
AbstractSymEntry
– AbstractSymEntry to convert
- Returns:
borrow of newly created AbstractSymEntry
- proc addEntry(name: string, shape: int ...?ND, dtype: DType) : borrowed AbstractSymEntry throws
Creates a symEntry from array name, length, and DType
- Arguments:
name :
string
– name of the arrayshape :
int
– length of array in each dimensiondtype – type of array
- Returns:
borrow of newly created GenSymEntry
- proc addEntry(name: string, shape: ?ND*int, dtype: DType) : borrowed AbstractSymEntry throws
- proc deleteEntry(name: string) : bool throws¶
Removes an unregistered entry from the symTable
- Arguments:
name :
string
– name of the array- Returns:
bool indicating whether the deletion occurred
- proc clear() throws¶
Clears all unregistered entries from the symTable
- proc lookup(name: string) : borrowed AbstractSymEntry throws¶
- proc this(name: string) : borrowed AbstractSymEntry throws¶
Get a symbol from the table. Throw an error if the symbol is not found.
- proc this(name: ParameterObj) : borrowed AbstractSymEntry throws
- proc checkTable(name: string, calling_func = "check") throws¶
checks to see if a symbol is defined if it is not it throws an exception
- proc pretty() throws¶
Prints the SymTable in a pretty format (name,SymTable[name])
- proc memUsed() : int¶
- returns:
total bytes in arrays in the symbol table
- proc dump(name: string) : string throws¶
Attempts to format and return sym entries mapped to the provided string into JSON format. Pass __AllSymbols__ to process the entire sym table.
- Arguments:
name :
string
– name of entry to be processed
- proc info(names: string) : string throws¶
Returns verbose attributes of the sym entries at the given string, if the string is a JSON formmated list of entry names. Pass __AllSymbols__ to process all sym entries in the sym table. Pass __RegisteredSymbols__ to process all registered sym entries.
Returns: name, dtype, size, ndim, shape, item size, and registration status for each entry in names
- Arguments:
names :
string
– list containing names of entries to be processed- Returns:
JSON formatted list containing info for each entry in names
- proc parseJson(names: string) : [] string throws¶
Convert JSON formmated list of entry names into a [] string object
- Arguments:
names :
string
– JSON formatted list containing entry names- Returns:
[] string of entry names
- proc getEntries(infoList) : [] string throws¶
Returns an array of JSON formatted strings for each entry in infoList (tab, registry, or [names])
- Arguments:
infoList :
domain(string) or [] string for registry and [names]
– Iterable containing sym entries to be returned by info- Returns:
array of JSON formatted strings
- proc getEntries(infoList: map(string, shared AbstractSymEntry)) : [] string throws
Returns an array of JSON formatted strings for each entry in infoList (tab, registry, or [names])
- Arguments:
infoList :
map(string, shared GenSymEntry) for tab
– Iterable containing sym entries to be returned by info- Returns:
array of JSON formatted strings
- proc formatEntry(name: string, abstractEntry: borrowed AbstractSymEntry) : string throws¶
Returns formatted string for an info entry.
- Arguments:
name :
string
– name of entry to be formatteditem :
AbstractSymEntry
– AbstractSymEntry to be formatted (tab[name])
- Returns:
JSON formatted dictionary
- proc attrib(name: string) : string throws¶
- proc datastr(name: string, thresh: int) : string throws¶
Attempts to find a sym entry mapped to the provided string, then returns the data in the entry up to the specified threshold. Arrays of size less than threshold will be printed in their entirety. Arrays of size greater than or equal to threshold will print the first 3 and last 3 elements
- Arguments:
name :
string
– name of entry to be processedthresh :
int
– threshold for data to return
- Returns:
s (string) containing the array data
- proc datarepr(name: string, thresh: int) : string throws¶
Attempts to find a sym entry mapped to the provided string, then returns the data in the entry up to the specified threshold. This method returns the data in form “array([<DATA>])”. Arrays of size less than threshold will be printed in their entirety. Arrays of size greater than or equal to threshold will print the first 3 and last 3 elements
- Arguments:
name :
string
– name of entry to be processedthresh :
int
– threshold for data to return
- Returns:
s (string) containing the array data
- proc contains(name: string) : bool¶
Attempts to find a sym entry mapped to the provided string, then returns a boolean value signfying the provided string’s sym entry existance
- Arguments:
name :
string
– name of entry to be checked- Returns:
bool signifying existance of the sym entry
- proc findAll(pattern: string) : [] string throws¶
Attempts to find all sym entries that match the provided regex string, then returns a string array of matching names
- Arguments:
pattern :
string
– regex string to search for- Returns:
string array containing matching entry names
- proc getGenericTypedArrayEntry(name: string, st: borrowed SymTab) : borrowed GenSymEntry throws¶
Convenience proc to retrieve GenSymEntry from SymTab
Performs conversion from AbstractSymEntry to GenSymEntry
You can pass a logger from the calling function for better error reporting.
- proc getGenericTypedArrayEntry(name: ParameterObj, st: borrowed SymTab) : borrowed GenSymEntry throws
- proc getSegStringEntry(name: string, st: borrowed SymTab) : borrowed SegStringSymEntry throws¶
Convenience proc to retrieve SegStringSymEntry from SymTab
Performs conversion from AbstractySymEntry to SegStringSymEntry
You can pass a logger from the calling function for better error reporting.
- proc getGenericSparseArrayEntry(name: string, st: borrowed SymTab) : borrowed GenSparseSymEntry throws¶
Convenience proc to retrieve GenSparseSymEntry from SymTab
Performs conversion from AbstractSymEntry to GenSparseSymEntry
You can pass a logger from the calling function for better error reporting.