20#define RDESC_VERSION_MAJOR 0
22#define RDESC_VERSION_MINOR 2
24#define RDESC_VERSION_PATCH 0
26#define RDESC_VERSION_PRE_RELEASE "rc.2"
66 void (*token_destroyer)(uint16_t,
void *);
102 void (*token_destroyer)(uint16_t
id,
void *seminfo)) _rdesc_wur;
140 void *seminfo) _rdesc_wur;
int rdesc_start(struct rdesc *parser, uint16_t start_symbol) _rdesc_wur
Sets start symbol for the next match.
int rdesc_init(struct rdesc *parser, const struct rdesc_grammar *grammar, size_t seminfo_size, void(*token_destroyer)(uint16_t id, void *seminfo)) _rdesc_wur
Initializes a new parser.
void rdesc_reset(struct rdesc *parser)
Resets the parser to its initial state.
enum rdesc_result rdesc_pump(struct rdesc *parser, uint16_t id, void *seminfo) _rdesc_wur
Drives the parsing process, the pump.
void rdesc_destroy(struct rdesc *parser)
Frees memory allocated by the parser and destroys the parser instance.
const char * rdesc_version(void)
rdesc version
enum rdesc_result rdesc_resume(struct rdesc *parser) _rdesc_wur
Resume parsing without providing a new token.
struct rdesc_node * rdesc_root(struct rdesc *parser)
Returns the root of the CST.
rdesc_result
Parse operation result codes.
Definition rdesc.h:30
@ RDESC_ENOMEM
Definition rdesc.h:32
@ RDESC_READY
Definition rdesc.h:34
@ RDESC_NOMATCH
Definition rdesc.h:38
@ RDESC_CONTINUE
Definition rdesc.h:36
Grammar definition.
Definition grammar.h:50
Default implementation of the stack.
Definition stack.c:36
Recursive descent parser state.
Definition rdesc.h:42