This is an implementation of Compressed Hash-Array Mapped Prefix-tree, which is a bit-partitioned,...
srn_namespace_t * srn_namespace_load(srn_namespace_t *ns)
Load the namespace's source from the filesystem into src_buffer, parse it, and populate the symbol ta...
srn_namespace_t * srn_namespace_get_or_create(srn_engine_t *engine, srn_string_t *name, srn_error_t **err)
Create a new and empty namespace if it is not already created in the engine, if it exists,...
Source manager is what that read the source files and own the buffer that contains the data.
size_t srn_sm_buffer_id_t
Engine is a structure to own the long living and main pieces of the compiler.
A runtime error, a tag classifying the failure and a human-readable message.
srn_context_t * root_context
srn_sm_buffer_id_t buffer_id
Designated buffer id of this namespace on the source manager.
srn_term_t * node
The top level node of the namespace.
srn_fiber_mutex_t * sym_table_lock
Only when setting the sym_table hmap it self.
_Atomic(hmap_t *) sym_table
A mapping symbol names to srn_nodet_t values.