From ae89f342b51cb4ef71f18e89b74585cd61b05a60 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 17 Dec 2025 16:20:43 +0100 Subject: First commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libautomata.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 libautomata.h (limited to 'libautomata.h') 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 + + +/* 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 -- cgit v1.2.3-70-g09d2