diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2009-11-02 19:09:45 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2009-11-02 19:09:45 -0800 |
commit | 0f9f85d9edaa26285d596f5fe7ee04ff95a2aa84 (patch) | |
tree | 451a2b8684468d3ebe62b37f9b6cad4385a729f0 /regex.h | |
parent | f6c4f253681b576f39d939e602e9de7bc1b8892b (diff) | |
download | txr-0f9f85d9edaa26285d596f5fe7ee04ff95a2aa84.tar.gz txr-0f9f85d9edaa26285d596f5fe7ee04ff95a2aa84.tar.bz2 txr-0f9f85d9edaa26285d596f5fe7ee04ff95a2aa84.zip |
Got regex working over lazy strings from freeform.
Bugfixes.
Diffstat (limited to 'regex.h')
-rw-r--r-- | regex.h | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -95,7 +95,9 @@ typedef struct nfa { nfa_state_t *accept; } nfa_t; -enum nfam_result { NFAM_INCOMPLETE, NFAM_FAIL, NFAM_MATCH }; +typedef enum nfam_result { + NFAM_INCOMPLETE, NFAM_FAIL, NFAM_MATCH +} nfam_result_t; typedef struct nfa_machine { long last_accept_pos; @@ -109,9 +111,10 @@ typedef struct nfa_machine { nfa_t nfa_compile_regex(obj_t *regex); void nfa_free(nfa_t); long nfa_run(nfa_t nfa, const char *str); +void nfa_machine_reset(nfa_machine_t *); void nfa_machine_init(nfa_machine_t *, nfa_t); void nfa_machine_cleanup(nfa_machine_t *); -int nfa_machine_feed(nfa_machine_t *, int ch); +nfam_result_t nfa_machine_feed(nfa_machine_t *, int ch); long nfa_machine_match_span(nfa_machine_t *); obj_t *regex_compile(obj_t *regex_sexp); obj_t *regexp(obj_t *); |