|
Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
|
Create and destroy forked parser instances. More...
Functions | |
| ParseFork * | fork_parser (const void *parser, size_t parser_size, size_t stack_entry_size, size_t inline_stack_offset, uint32_t inline_stack_count, size_t stack_field_offset, size_t tos_field_offset, size_t stack_end_offset, struct ParserSnapshot *snapshot, int priority) |
| Create a new fork from a base parser state. | |
| void | free_parse_fork (ParseFork *fork) |
| Destroy a fork and release all resources. | |
Create and destroy forked parser instances.
| ParseFork * fork_parser | ( | const void * | parser, |
| size_t | parser_size, | ||
| size_t | stack_entry_size, | ||
| size_t | inline_stack_offset, | ||
| uint32_t | inline_stack_count, | ||
| size_t | stack_field_offset, | ||
| size_t | tos_field_offset, | ||
| size_t | stack_end_offset, | ||
| struct ParserSnapshot * | snapshot, | ||
| int | priority | ||
| ) |
#include <include/parser_fork.h>
Create a new fork from a base parser state.
Clones the parser state, acquires a reference to the snapshot, and returns a heap-allocated ParseFork ready for token feeding.
| parser | Pointer to the base yyParser (void*). |
| parser_size | sizeof(yyParser). |
| stack_entry_size | sizeof(yyStackEntry). |
| inline_stack_offset | offsetof(yyParser, yystk0). |
| inline_stack_count | YYSTACKDEPTH. |
| stack_field_offset | offsetof(yyParser, yystack). |
| tos_field_offset | offsetof(yyParser, yytos). |
| stack_end_offset | offsetof(yyParser, yystackEnd). |
| snapshot | Grammar snapshot for this fork. A reference is acquired (refcount incremented). |
| priority | Priority for disambiguation (lower = preferred). |
| void free_parse_fork | ( | ParseFork * | fork | ) |
#include <include/parser_fork.h>
Destroy a fork and release all resources.
| fork | Fork to destroy. Passing NULL is safe. |