diff options
| author | Mattias Andrée <m@maandree.se> | 2025-12-17 16:20:43 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2025-12-17 16:20:43 +0100 |
| commit | ae89f342b51cb4ef71f18e89b74585cd61b05a60 (patch) | |
| tree | dac1ec69cb74001aacce013bb5879566bb04d845 /libautomata.h | |
| download | libautomata-ae89f342b51cb4ef71f18e89b74585cd61b05a60.tar.gz libautomata-ae89f342b51cb4ef71f18e89b74585cd61b05a60.tar.bz2 libautomata-ae89f342b51cb4ef71f18e89b74585cd61b05a60.tar.xz | |
First commit
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
| -rw-r--r-- | libautomata.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libautomata.h b/libautomata.h new file mode 100644 index 0000000..4f6caeb --- /dev/null +++ b/libautomata.h @@ -0,0 +1,24 @@ +/* See LICENSE file for copyright and license details. */ +#ifndef LIBAUTOMATA_H +#define LIBAUTOMATA_H + +#include <stddef.h> + + +/* Knuth–Morris–Pratt substring search (finds end of substring) */ +typedef struct libautomata_kmp_automaton LIBAUTOMATA_KMP_AUTOMATON; +void libautomata_reset_kmp_automaton(LIBAUTOMATA_KMP_AUTOMATON *automaton); +LIBAUTOMATA_KMP_AUTOMATON *libautomata_clone_kmp_automaton(const LIBAUTOMATA_KMP_AUTOMATON *automaton); +LIBAUTOMATA_KMP_AUTOMATON *libautomata_compile_kmp_automaton(const void *pattern, size_t length, size_t elemsize); +void *libautomata_execute_kmp_automaton(const void *haystack, size_t length, LIBAUTOMATA_KMP_AUTOMATON *automaton); + + +/* Morris–Pratt substring search (finds end of substring) */ +typedef struct libautomata_mp_automaton LIBAUTOMATA_MP_AUTOMATON; +void libautomata_reset_mp_automaton(LIBAUTOMATA_MP_AUTOMATON *automaton); +LIBAUTOMATA_MP_AUTOMATON *libautomata_clone_mp_automaton(const LIBAUTOMATA_MP_AUTOMATON *automaton); +LIBAUTOMATA_MP_AUTOMATON *libautomata_compile_mp_automaton(const void *pattern, size_t length, size_t elemsize); +void *libautomata_execute_mp_automaton(const void *haystack, size_t length, LIBAUTOMATA_MP_AUTOMATON *automaton); + + +#endif |
