C API thoughts
This commit is contained in:
parent
aeb6296678
commit
f6b4d29bd0
45
src/jairee.h
Normal file
45
src/jairee.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#ifndef JAIREE_H
|
||||||
|
#define JAIREE_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define JAIREE_DECODE_ERROR 0xFEFEFEFFu
|
||||||
|
|
||||||
|
typedef uint32_t jairee_cp_t;
|
||||||
|
|
||||||
|
typedef jairee_cp_t (*jairee_decode_t)(void * str, size_t offset);
|
||||||
|
|
||||||
|
typedef struct jairee_match_s {
|
||||||
|
size_t start;
|
||||||
|
size_t end;
|
||||||
|
struct jairee_match_s * next;
|
||||||
|
} jairee_match_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
void * str;
|
||||||
|
size_t len;
|
||||||
|
jairee_decode_t decode;
|
||||||
|
} jairee_string_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
size_t todo;
|
||||||
|
} jairee_re_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
jairee_re_t * re;
|
||||||
|
} jairee_state_t;
|
||||||
|
|
||||||
|
jairee_re_t * jairee_compile(jairee_string_t * exp);
|
||||||
|
|
||||||
|
jairee_match_t * jairee_match(jairee_string_t * str, size_t start_offset, jairee_string_t * exp);
|
||||||
|
|
||||||
|
jairee_match_t * jairee_matchc(jairee_string_t * str, size_t start_offset, jairee_re_t * re);
|
||||||
|
|
||||||
|
jairee_state_t * jairee_start(jairee_string_t * str, size_t start_offset, jairee_string_t * exp, jairee_match_t ** match);
|
||||||
|
|
||||||
|
jairee_state_t * jairee_startc(jairee_string_t * str, size_t start_offset, jairee_re_t * re, jairee_match_t ** match);
|
||||||
|
|
||||||
|
jairee_status_t jairee_step(jairee_state_t * state, size_t timeout);
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user