regex-base-0.94.0.0: src/Text/Regex/Base.hs
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
-----------------------------------------------------------------------------
-- |
--
-- Module : Text.Regex.Base
-- Copyright : (c) Chris Kuklewicz 2006
-- SPDX-License-Identifier: BSD-3-Clause
--
-- Maintainer : hvr@gnu.org
-- Stability : experimental
-- Portability : non-portable (MPTC+FD)
--
-- Classes and instances for Regex matching.
--
--
-- This module merely imports and re-exports the common part of the new
-- api: "Text.Regex.Base.RegexLike" and "Text.Regex.Base.Context".
--
-- To see what result types the instances of RegexContext can produce,
-- please read the "Text.Regex.Base.Context" haddock documentation.
--
-- This does not provide any of the backends, just the common interface
-- they all use. The modules which provide the backends and their cabal
-- packages are:
--
-- * @Text.Regex.Posix@ from regex-posix
--
-- * @Text.Regex@ from regex-compat (uses regex-posix)
--
-- * @Text.Regex.Parsec@ from regex-parsec
--
-- * @Text.Regex.DFA@ from regex-dfa
--
-- * @Text.Regex.PCRE@ from regex-pcre
--
-- * @Test.Regex.TRE@ from regex-tre
--
-- In fact, just importing one of the backends is adequate, you do not
-- also need to import this module.
--
-- == Example
--
-- The code below
--
-- @
-- import Text.Regex.Base
-- import Text.Regex.Posix((=~),(=~~)) -- or DFA or PCRE or PosixRE
--
-- main = let b :: Bool
-- b = ("abaca" =~ "(.)a")
-- c :: [MatchArray]
-- c = ("abaca" =~ "(.)a")
-- d :: Maybe (String,String,String,[String])
-- d = ("abaca" =~~ "(.)a")
-- in do print b
-- print c
-- print d
-- @
--
-- will output
--
-- > True
-- > [array (0,1) [(0,(1,2)),(1,(1,1))],array (0,1) [(0,(3,2)),(1,(3,1))]]
-- > Just ("a","ba","ca",["b"])
--
-----------------------------------------------------------------------------
module Text.Regex.Base (getVersion_Text_Regex_Base
-- | RegexLike defines classes and type, and 'Extract' instances
,module Text.Regex.Base.RegexLike) where
import Data.Version(Version(..))
import Text.Regex.Base.RegexLike
import Text.Regex.Base.Context()
import qualified Paths_regex_base
getVersion_Text_Regex_Base :: Version
getVersion_Text_Regex_Base = Paths_regex_base.version