package GNATCOLL.Boyer_Moore is
type Pattern is private;
Max_Pattern_Length : constant := Integer'Last;
-- Maximal length for patterns that can be searched.
-- Changing this means that patterns will simply use more space.
procedure Compile
(Motif : in out Pattern;
From_String : String;
Case_Sensitive : Boolean := True);
-- Compile the required tables to match From_String anywhere.
-- Motif needs to be freed when you are done using it.
--
-- Note: A case_sensitive search is always more efficient, and should
-- be used if you don't specifically need a case insensitive search.
procedure Free (Motif : in out Pattern);
-- Free the memory occupied by the motif
function Search (Motif : Pattern; In_String : String) return Integer;
-- Return the location of the match for Motif in In_String, or -1 if there
-- is no match;
end GNATCOLL.Boyer_Moore;