summaryrefslogtreecommitdiffstats
path: root/regex.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2009-11-02 19:09:45 -0800
committerKaz Kylheku <kaz@kylheku.com>2009-11-02 19:09:45 -0800
commit0f9f85d9edaa26285d596f5fe7ee04ff95a2aa84 (patch)
tree451a2b8684468d3ebe62b37f9b6cad4385a729f0 /regex.h
parentf6c4f253681b576f39d939e602e9de7bc1b8892b (diff)
downloadtxr-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.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/regex.h b/regex.h
index 973ab501..c69180d7 100644
--- a/regex.h
+++ b/regex.h
@@ -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 *);