|
Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
|
Load, register, and unload parser plugins. More...
Functions | |
| ParserManagerStatus | parser_manager_load (ParserManager *mgr, const char *path, void *user_data, LimePluginHandle *handle_out) |
| Load a parser plugin from a shared library. | |
| ParserManagerStatus | parser_manager_register (ParserManager *mgr, const LimeParserPlugin *plugin, void *user_data, LimePluginHandle *handle_out) |
| Register a statically linked parser plugin. | |
| ParserManagerStatus | parser_manager_unload (ParserManager *mgr, LimePluginHandle handle) |
| Unload a previously loaded or registered plugin. | |
Load, register, and unload parser plugins.
| ParserManagerStatus parser_manager_load | ( | ParserManager * | mgr, |
| const char * | path, | ||
| void * | user_data, | ||
| LimePluginHandle * | handle_out | ||
| ) |
#include <include/parser_manager.h>
Load a parser plugin from a shared library.
The manager:
| mgr | The parser manager. | |
| path | Filesystem path to the shared library (.so / .dylib / .dll). If relative, the manager searches plugin_search_paths. | |
| user_data | Opaque pointer passed to the plugin's init() callback. May be NULL. | |
| [out] | handle_out | On success, receives the handle for the loaded plugin. |
| ParserManagerStatus parser_manager_register | ( | ParserManager * | mgr, |
| const LimeParserPlugin * | plugin, | ||
| void * | user_data, | ||
| LimePluginHandle * | handle_out | ||
| ) |
#include <include/parser_manager.h>
Register a statically linked parser plugin.
| mgr | The parser manager. | |
| plugin | Pointer to a LimeParserPlugin struct. Must remain valid until the plugin is unloaded. | |
| user_data | Opaque pointer passed to the plugin's init() callback. | |
| [out] | handle_out | On success, receives the handle for the registered plugin. |
| ParserManagerStatus parser_manager_unload | ( | ParserManager * | mgr, |
| LimePluginHandle | handle | ||
| ) |
#include <include/parser_manager.h>
Unload a previously loaded or registered plugin.
Calls the plugin's destroy() callback and removes it from the registry. If the plugin was loaded from a shared library, the library is dlclose()'d after destroy() returns.
If the plugin is currently active, it is deactivated first. In-flight parse sessions that pinned a snapshot from this plugin are not affected (snapshots are refcounted).
| mgr | The parser manager. |
| handle | Handle of the plugin to unload. |