From f6b4d29bd074767cdd4b724bdaa965f3f4a42382 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 4 Sep 2019 23:07:26 -0400 Subject: [PATCH] C API thoughts --- src/jairee.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/jairee.h diff --git a/src/jairee.h b/src/jairee.h new file mode 100644 index 0000000..c2d185a --- /dev/null +++ b/src/jairee.h @@ -0,0 +1,45 @@ +#ifndef JAIREE_H +#define JAIREE_H + +#include +#include + +#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