|
Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
|
Create, query, and manage the extension registry. More...
Typedefs | |
| typedef bool(* | ExtensionVisitorFn) (const GrammarExtensionMetadata *meta, void *user_data) |
| Visitor callback for extension iteration. | |
Functions | |
| bool | extension_registry_check_dependencies (ExtensionRegistry *reg, char **error_out) |
| Validate all dependency and conflict declarations. | |
| uint32_t | extension_registry_count (const ExtensionRegistry *reg) |
| Return the number of registered extensions. | |
| ExtensionRegistry * | extension_registry_create (void) |
| Create an empty extension registry. | |
| void | extension_registry_destroy (ExtensionRegistry *reg) |
| Destroy the registry and free all owned memory. | |
| const GrammarExtensionMetadata * | extension_registry_find (ExtensionRegistry *reg, const char *name) |
| Look up an extension by name. | |
| void | extension_registry_foreach (const ExtensionRegistry *reg, ExtensionVisitorFn visitor, void *user_data) |
| Iterate over all registered extensions. | |
| bool | extension_registry_get_order (ExtensionRegistry *reg, ExtensionOrder *order_out, char **error_out) |
| Produce a topological ordering of all registered extensions. | |
| bool | extension_registry_register (ExtensionRegistry *reg, const GrammarExtensionMetadata *metadata) |
| Register an extension with its metadata. | |
| bool | extension_registry_unregister (ExtensionRegistry *reg, const char *name) |
| Unregister an extension by name. | |
Create, query, and manage the extension registry.
| typedef bool(* ExtensionVisitorFn) (const GrammarExtensionMetadata *meta, void *user_data) |
#include <include/extension_registry.h>
Visitor callback for extension iteration.
| meta | Metadata for the current extension. |
| user_data | User-provided context pointer. |
| true | Continue iteration. |
| false | Stop iteration early. |
Definition at line 342 of file extension_registry.h.
| bool extension_registry_check_dependencies | ( | ExtensionRegistry * | reg, |
| char ** | error_out | ||
| ) |
#include <include/extension_registry.h>
Validate all dependency and conflict declarations.
Checks:
| reg | The extension registry. | |
| [out] | error_out | On failure, receives a malloc'd error message (caller must free). May be NULL. Set to NULL on success. |
| true | All dependencies and conflicts are valid. |
| false | A problem was found; see error_out. |
| uint32_t extension_registry_count | ( | const ExtensionRegistry * | reg | ) |
#include <include/extension_registry.h>
Return the number of registered extensions.
| reg | The extension registry. |
| ExtensionRegistry * extension_registry_create | ( | void | ) |
#include <include/extension_registry.h>
Create an empty extension registry.
| void extension_registry_destroy | ( | ExtensionRegistry * | reg | ) |
#include <include/extension_registry.h>
Destroy the registry and free all owned memory.
| reg | Registry to destroy. Passing NULL is safe. |
| const GrammarExtensionMetadata * extension_registry_find | ( | ExtensionRegistry * | reg, |
| const char * | name | ||
| ) |
#include <include/extension_registry.h>
Look up an extension by name.
| reg | The extension registry. |
| name | Extension name to search for. |
| void extension_registry_foreach | ( | const ExtensionRegistry * | reg, |
| ExtensionVisitorFn | visitor, | ||
| void * | user_data | ||
| ) |
#include <include/extension_registry.h>
Iterate over all registered extensions.
The callback receives each extension's metadata and the user-provided context pointer.
| reg | The extension registry. |
| visitor | Callback function. |
| user_data | Opaque pointer forwarded to visitor. |
| bool extension_registry_get_order | ( | ExtensionRegistry * | reg, |
| ExtensionOrder * | order_out, | ||
| char ** | error_out | ||
| ) |
#include <include/extension_registry.h>
Produce a topological ordering of all registered extensions.
Extensions are sorted so that dependencies come before dependents.
| reg | The extension registry. | |
| [out] | order_out | Filled with the sorted extension names on success. |
| [out] | error_out | On failure, receives a malloc'd error message. |
| true | Ordering succeeded. |
| false | Cycle detected or missing dependency; see error_out. |
| bool extension_registry_register | ( | ExtensionRegistry * | reg, |
| const GrammarExtensionMetadata * | metadata | ||
| ) |
#include <include/extension_registry.h>
Register an extension with its metadata.
The registry copies all strings and arrays from metadata.
| reg | The extension registry. |
| metadata | Extension metadata to register. |
| true | Registration succeeded. |
| false | Name is NULL, empty, or already registered. |
| bool extension_registry_unregister | ( | ExtensionRegistry * | reg, |
| const char * | name | ||
| ) |
#include <include/extension_registry.h>
Unregister an extension by name.
| reg | The extension registry. |
| name | Extension name to remove. |
| true | Extension was found and removed. |
| false | Extension was not found. |