void lime_extension_registry_destroy(void)
Destroy the global extension registry.
bool lime_extension_registry_init(void)
Initialize the global extension registry.
bool lime_jit_available(void)
Check whether JIT compilation support is available at runtime.
int lime_jit_compile(ParserSnapshot *snap)
Compile and attach JIT code to a snapshot's action tables.
int parse_token(ParseContext *ctx, int token_code, void *token_value, int location)
Feed a token to the parser.
ParseContext * parse_begin(ParserSnapshot *snap)
Begin a parse session pinned to a snapshot.
void parse_end(ParseContext *ctx)
End the parse session.
ParserSnapshot * parse_get_snapshot(ParseContext *ctx)
Return the snapshot pinned by this context.
ParserSnapshot * lime_compile_grammar_text(const char *grammar_text, size_t len, char **error)
Build a base snapshot from in-memory grammar text.
int lime_snapshot_token_code(const ParserSnapshot *snap, const char *name)
Map a token name to its external code in a snapshot.
uint16_t lime_snapshot_first_token(const ParserSnapshot *snap)
The first_token offset baked into a snapshot.
ParserSnapshot * lime_snapshot_create(const char *grammar_file, char **error)
Create a base snapshot by parsing a grammar file.
ParserSnapshot * lime_snapshot_acquire(ParserSnapshot *snap)
Acquire a reference to a snapshot.
void lime_snapshot_release(ParserSnapshot *snap)
Release a snapshot reference.
const char * lime_parser_version(void)
Return the Lime parser library version string.