Package com.darkcollective.relix.symbol.table.internal
package com.darkcollective.relix.symbol.table.internal
The engine-side machinery behind
com.darkcollective.relix.symbol.table: not exported by the published
artifact. What follows describes the package as a whole, as it stood before the split.
Symbol table interface, in-memory implementation, and persistence repository contract.
SymbolTable— the primary API for registering and looking up symbols. All lookups are case-insensitive.InMemorySymbolTable— the default implementation backed byLinkedHashMaps. Suitable for single-session, in-process use. Not thread-safe.SymbolRepository— a persistence contract that future implementations may fulfil to store symbols in a database or other durable store. The in-memory table does not use this interface; it is provided as an extension point.
Lookup order
The single-argument overloads of
SymbolTable.lookupRelation(String) and
SymbolTable.lookupFunction(String) search
the "default" namespace first, then the "builtin" namespace.
The two-argument overloads allow the caller to specify an explicit namespace.
Registration
All registration calls return a
RegistrationResult that describes whether the
symbol was accepted, replaced, or rejected, along with any diagnostics.
Errors are collected rather than thrown, so multiple conflicts in a batch
can be reported at once.
-
ClassDescriptionAn in-memory implementation of
SymbolTablesuitable for single-session, in-process use.Persistence contract for symbol storage — the extension point for a durable back-end (relational database, document store, etc.).