packages feed

regex 0.14.0.0 → 1.0.0.0

raw patch · 41 files changed

+1178/−552 lines, 41 filesdep −regex-pcre-builtinPVP ok

version bump matches the API change (PVP)

Dependencies removed: regex-pcre-builtin

API changes (from Hackage documentation)

- Text.RE: allMatches :: Matches a -> [Match a]
- Text.RE: anyMatches :: Matches a -> Bool
- Text.RE: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE: countMatches :: Matches a -> Int
- Text.RE: data Match a
- Text.RE: data Matches a
- Text.RE: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE: matchSource :: Match a -> a
- Text.RE: matched :: Match a -> Bool
- Text.RE: matchedText :: Match a -> Maybe a
- Text.RE: matches :: Matches a -> [a]
- Text.RE: matchesSource :: Matches a -> a
- Text.RE: regexSource :: IsRegex re s => re -> s
- Text.RE: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
- Text.RE: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
- Text.RE.TDFA: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA: regexSource :: IsRegex re s => re -> s
- Text.RE.TDFA.ByteString: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA.ByteString: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA.ByteString: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA.ByteString: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA.ByteString: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA.ByteString: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.ByteString: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.ByteString: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA.ByteString: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA.ByteString: regexSource :: IsRegex re s => re -> s
- Text.RE.TDFA.ByteString.Lazy: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA.ByteString.Lazy: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA.ByteString.Lazy: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA.ByteString.Lazy: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA.ByteString.Lazy: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA.ByteString.Lazy: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.ByteString.Lazy: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.ByteString.Lazy: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA.ByteString.Lazy: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA.ByteString.Lazy: regexSource :: IsRegex re s => re -> s
- Text.RE.TDFA.Sequence: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA.Sequence: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA.Sequence: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA.Sequence: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA.Sequence: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA.Sequence: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.Sequence: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.Sequence: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA.Sequence: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA.Sequence: regexSource :: IsRegex re s => re -> s
- Text.RE.TDFA.String: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA.String: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA.String: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA.String: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA.String: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA.String: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.String: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.String: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA.String: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA.String: regexSource :: IsRegex re s => re -> s
- Text.RE.TDFA.Text: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA.Text: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA.Text: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA.Text: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA.Text: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA.Text: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.Text: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.Text: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA.Text: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA.Text: regexSource :: IsRegex re s => re -> s
- Text.RE.TDFA.Text.Lazy: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.TDFA.Text.Lazy: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.TDFA.Text.Lazy: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.TDFA.Text.Lazy: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.TDFA.Text.Lazy: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.TDFA.Text.Lazy: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.Text.Lazy: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.TDFA.Text.Lazy: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.TDFA.Text.Lazy: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.TDFA.Text.Lazy: regexSource :: IsRegex re s => re -> s
- Text.RE.TestBench: Alert :: Severity
- Text.RE.TestBench: Crit :: Severity
- Text.RE.TestBench: Debug :: Severity
- Text.RE.TestBench: Emerg :: Severity
- Text.RE.TestBench: Err :: Severity
- Text.RE.TestBench: Info :: Severity
- Text.RE.TestBench: Notice :: Severity
- Text.RE.TestBench: Warning :: Severity
- Text.RE.TestBench: data Severity
- Text.RE.TestBench: parseDate :: Replace a => a -> Maybe Day
- Text.RE.TestBench: parseDateTime :: Replace a => a -> Maybe UTCTime
- Text.RE.TestBench: parseDateTime8601 :: Replace a => a -> Maybe UTCTime
- Text.RE.TestBench: parseDateTimeCLF :: Replace a => a -> Maybe UTCTime
- Text.RE.TestBench: parseDouble :: Replace a => a -> Maybe Double
- Text.RE.TestBench: parseHex :: Replace a => a -> Maybe Int
- Text.RE.TestBench: parseIPv4Address :: Replace a => a -> Maybe IPV4Address
- Text.RE.TestBench: parseInteger :: Replace a => a -> Maybe Int
- Text.RE.TestBench: parseSeverity :: Replace a => a -> Maybe Severity
- Text.RE.TestBench: parseShortMonth :: Replace a => a -> Maybe Int
- Text.RE.TestBench: parseSimpleString :: Replace a => a -> Maybe Text
- Text.RE.TestBench: parseSlashesDate :: Replace a => a -> Maybe Day
- Text.RE.TestBench: parseString :: Replace a => a -> Maybe Text
- Text.RE.TestBench: parseTimeOfDay :: Replace a => a -> Maybe TimeOfDay
- Text.RE.TestBench: parseTimeZone :: Replace a => a -> Maybe TimeZone
- Text.RE.TestBench: severityKeywords :: Severity -> (Text, [Text])
- Text.RE.TestBench: shortMonthArray :: Array Int Text
- Text.RE.TestBench: type IPV4Address = (Word8, Word8, Word8, Word8)
- Text.RE.ZeInternals.AddCaptureNames: addCaptureNames :: Typeable a => CaptureNames -> a -> a
- Text.RE.ZeInternals.AddCaptureNames: addCaptureNamesToMatch :: CaptureNames -> Match a -> Match a
- Text.RE.ZeInternals.AddCaptureNames: addCaptureNamesToMatches :: CaptureNames -> Matches a -> Matches a
- Text.RE.ZeInternals.EscapeREString: escapeREString :: String -> String
- Text.RE.ZeInternals.EscapeREString: isMetaChar :: Char -> Bool
- Text.RE.ZeInternals.NamedCaptures: BS :: Char -> Token
- Text.RE.ZeInternals.NamedCaptures: Bra :: Token
- Text.RE.ZeInternals.NamedCaptures: ECap :: (Maybe String) -> Token
- Text.RE.ZeInternals.NamedCaptures: Other :: Char -> Token
- Text.RE.ZeInternals.NamedCaptures: PCap :: Token
- Text.RE.ZeInternals.NamedCaptures: PGrp :: Token
- Text.RE.ZeInternals.NamedCaptures: cp :: QuasiQuoter
- Text.RE.ZeInternals.NamedCaptures: data Token
- Text.RE.ZeInternals.NamedCaptures: extractNamedCaptures :: String -> Either String ((Int, CaptureNames), String)
- Text.RE.ZeInternals.NamedCaptures: formatTokens :: [Token] -> String
- Text.RE.ZeInternals.NamedCaptures: formatTokens' :: FormatTokenREOptions -> [Token] -> String
- Text.RE.ZeInternals.NamedCaptures: formatTokens0 :: [Token] -> String
- Text.RE.ZeInternals.NamedCaptures: idFormatTokenREOptions :: FormatTokenREOptions
- Text.RE.ZeInternals.NamedCaptures: instance GHC.Classes.Eq Text.RE.ZeInternals.NamedCaptures.Token
- Text.RE.ZeInternals.NamedCaptures: instance GHC.Generics.Generic Text.RE.ZeInternals.NamedCaptures.Token
- Text.RE.ZeInternals.NamedCaptures: instance GHC.Show.Show Text.RE.ZeInternals.NamedCaptures.FormatTokenREOptions
- Text.RE.ZeInternals.NamedCaptures: instance GHC.Show.Show Text.RE.ZeInternals.NamedCaptures.Token
- Text.RE.ZeInternals.NamedCaptures: scan :: String -> [Token]
- Text.RE.ZeInternals.NamedCaptures: validToken :: Token -> Bool
- Text.RE.ZeInternals.PreludeMacros: ExclCaptures :: WithCaptures
- Text.RE.ZeInternals.PreludeMacros: InclCaptures :: WithCaptures
- Text.RE.ZeInternals.PreludeMacros: MacroDescriptor :: !RegexSource -> ![String] -> ![String] -> ![TestResult] -> !(Maybe FunctionID) -> !String -> MacroDescriptor
- Text.RE.ZeInternals.PreludeMacros: PM_address_ipv4 :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_date :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_date_slashes :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_datetime :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_datetime_8601 :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_datetime_clf :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_email_simple :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_frac :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_hex :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_id :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_id' :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_id_ :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_int :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_nat :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_shortmonth :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_string :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_string_simple :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_syslog_severity :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_time :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_timezone :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: PM_url :: PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: RegexSource :: String -> RegexSource
- Text.RE.ZeInternals.PreludeMacros: [_RegexSource] :: RegexSource -> String
- Text.RE.ZeInternals.PreludeMacros: [macroCounterSamples] :: MacroDescriptor -> ![String]
- Text.RE.ZeInternals.PreludeMacros: [macroDescription] :: MacroDescriptor -> !String
- Text.RE.ZeInternals.PreludeMacros: [macroParser] :: MacroDescriptor -> !(Maybe FunctionID)
- Text.RE.ZeInternals.PreludeMacros: [macroSamples] :: MacroDescriptor -> ![String]
- Text.RE.ZeInternals.PreludeMacros: [macroSource] :: MacroDescriptor -> !RegexSource
- Text.RE.ZeInternals.PreludeMacros: [macroTestResults] :: MacroDescriptor -> ![TestResult]
- Text.RE.ZeInternals.PreludeMacros: data MacroDescriptor
- Text.RE.ZeInternals.PreludeMacros: data PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: data RegexType
- Text.RE.ZeInternals.PreludeMacros: data WithCaptures
- Text.RE.ZeInternals.PreludeMacros: instance GHC.Classes.Eq Text.RE.ZeInternals.PreludeMacros.PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: instance GHC.Classes.Ord Text.RE.ZeInternals.PreludeMacros.PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: instance GHC.Enum.Bounded Text.RE.ZeInternals.PreludeMacros.PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: instance GHC.Enum.Enum Text.RE.ZeInternals.PreludeMacros.PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: instance GHC.Show.Show Text.RE.ZeInternals.PreludeMacros.PreludeMacro
- Text.RE.ZeInternals.PreludeMacros: newtype RegexSource
- Text.RE.ZeInternals.PreludeMacros: preludeMacroDescriptor :: RegexType -> MacroEnv -> PreludeMacro -> Maybe MacroDescriptor
- Text.RE.ZeInternals.PreludeMacros: preludeMacroEnv :: RegexType -> MacroEnv
- Text.RE.ZeInternals.PreludeMacros: preludeMacroSource :: RegexType -> PreludeMacro -> String
- Text.RE.ZeInternals.PreludeMacros: preludeMacroSources :: RegexType -> String
- Text.RE.ZeInternals.PreludeMacros: preludeMacroSummary :: RegexType -> PreludeMacro -> String
- Text.RE.ZeInternals.PreludeMacros: preludeMacroTable :: RegexType -> String
- Text.RE.ZeInternals.PreludeMacros: preludeMacros :: (Monad m, Functor m) => (String -> m r) -> RegexType -> WithCaptures -> m (Macros r)
- Text.RE.ZeInternals.PreludeMacros: presentPreludeMacro :: PreludeMacro -> String
- Text.RE.ZeInternals.QQ: QQFailure :: String -> String -> QQFailure
- Text.RE.ZeInternals.QQ: [_qqf_component] :: QQFailure -> String
- Text.RE.ZeInternals.QQ: [_qqf_context] :: QQFailure -> String
- Text.RE.ZeInternals.QQ: data QQFailure
- Text.RE.ZeInternals.QQ: instance GHC.Exception.Exception Text.RE.ZeInternals.QQ.QQFailure
- Text.RE.ZeInternals.QQ: instance GHC.Show.Show Text.RE.ZeInternals.QQ.QQFailure
- Text.RE.ZeInternals.QQ: qq0 :: String -> QuasiQuoter
- Text.RE.ZeInternals.Replace: ALL :: REContext
- Text.RE.ZeInternals.Replace: RELocation :: Int -> CaptureOrdinal -> RELocation
- Text.RE.ZeInternals.Replace: ReplaceMethods :: (a -> Int) -> ((a -> a) -> Capture a -> a) -> ReplaceMethods a
- Text.RE.ZeInternals.Replace: SUB :: REContext
- Text.RE.ZeInternals.Replace: TOP :: REContext
- Text.RE.ZeInternals.Replace: [locationCapture] :: RELocation -> CaptureOrdinal
- Text.RE.ZeInternals.Replace: [locationMatch] :: RELocation -> Int
- Text.RE.ZeInternals.Replace: [methodLength] :: ReplaceMethods a -> a -> Int
- Text.RE.ZeInternals.Replace: [methodSubst] :: ReplaceMethods a -> (a -> a) -> Capture a -> a
- Text.RE.ZeInternals.Replace: appendNewlineR :: Replace a => a -> a
- Text.RE.ZeInternals.Replace: class (Show a, Eq a, Ord a, Extract a, Monoid a) => Replace a where textifyR = pack . unpackR detextifyR = packR . unpack appendNewlineR = (<> packR "\n") substR f m@(Capture {..}) = capturePrefix m <> f capturedText <> captureSuffix m
- Text.RE.ZeInternals.Replace: data REContext
- Text.RE.ZeInternals.Replace: data RELocation
- Text.RE.ZeInternals.Replace: data ReplaceMethods a
- Text.RE.ZeInternals.Replace: detextifyR :: Replace a => Text -> a
- Text.RE.ZeInternals.Replace: expandMacros :: (r -> String) -> Macros r -> String -> String
- Text.RE.ZeInternals.Replace: expandMacros' :: (MacroID -> Maybe String) -> String -> String
- Text.RE.ZeInternals.Replace: instance GHC.Show.Show Text.RE.ZeInternals.Replace.REContext
- Text.RE.ZeInternals.Replace: instance GHC.Show.Show Text.RE.ZeInternals.Replace.RELocation
- Text.RE.ZeInternals.Replace: instance Text.RE.ZeInternals.Replace.Replace (Data.Sequence.Seq GHC.Types.Char)
- Text.RE.ZeInternals.Replace: instance Text.RE.ZeInternals.Replace.Replace Data.ByteString.Internal.ByteString
- Text.RE.ZeInternals.Replace: instance Text.RE.ZeInternals.Replace.Replace Data.ByteString.Lazy.Internal.ByteString
- Text.RE.ZeInternals.Replace: instance Text.RE.ZeInternals.Replace.Replace Data.Text.Internal.Lazy.Text
- Text.RE.ZeInternals.Replace: instance Text.RE.ZeInternals.Replace.Replace Data.Text.Internal.Text
- Text.RE.ZeInternals.Replace: instance Text.RE.ZeInternals.Replace.Replace [GHC.Types.Char]
- Text.RE.ZeInternals.Replace: isTopLocation :: RELocation -> Bool
- Text.RE.ZeInternals.Replace: lengthR :: Replace a => a -> Int
- Text.RE.ZeInternals.Replace: linesR :: Replace a => a -> [a]
- Text.RE.ZeInternals.Replace: packR :: Replace a => String -> a
- Text.RE.ZeInternals.Replace: parseTemplateR :: Replace a => a -> Match a -> RELocation -> Capture a -> Maybe a
- Text.RE.ZeInternals.Replace: replace :: Replace a => a -> Match a -> a
- Text.RE.ZeInternals.Replace: replaceAll :: Replace a => a -> Matches a -> a
- Text.RE.ZeInternals.Replace: replaceAllCaptures :: Replace a => REContext -> (Match a -> RELocation -> Capture a -> Maybe a) -> Matches a -> a
- Text.RE.ZeInternals.Replace: replaceAllCapturesM :: (Extract a, Monad m) => ReplaceMethods a -> REContext -> (Match a -> RELocation -> Capture a -> m (Maybe a)) -> Matches a -> m a
- Text.RE.ZeInternals.Replace: replaceAllCaptures_ :: Extract a => ReplaceMethods a -> REContext -> (Match a -> RELocation -> Capture a -> Maybe a) -> Matches a -> a
- Text.RE.ZeInternals.Replace: replaceCaptures :: Replace a => REContext -> (Match a -> RELocation -> Capture a -> Maybe a) -> Match a -> a
- Text.RE.ZeInternals.Replace: replaceCapturesM :: (Monad m, Extract a) => ReplaceMethods a -> REContext -> (Match a -> RELocation -> Capture a -> m (Maybe a)) -> Match a -> m a
- Text.RE.ZeInternals.Replace: replaceCaptures_ :: Extract a => ReplaceMethods a -> REContext -> (Match a -> RELocation -> Capture a -> Maybe a) -> Match a -> a
- Text.RE.ZeInternals.Replace: replaceMethods :: Replace a => ReplaceMethods a
- Text.RE.ZeInternals.Replace: substR :: Replace a => (a -> a) -> Capture a -> a
- Text.RE.ZeInternals.Replace: templateCaptures :: (Replace a, RegexContext Regex a (Matches a), RegexMaker Regex CompOption ExecOption String) => (a -> String) -> a -> [CaptureID]
- Text.RE.ZeInternals.Replace: textifyR :: Replace a => a -> Text
- Text.RE.ZeInternals.Replace: unlinesR :: Replace a => [a] -> a
- Text.RE.ZeInternals.Replace: unpackR :: Replace a => a -> String
- Text.RE.ZeInternals.SearchReplace: compileSearchAndReplace_ :: (Monad m, Functor m) => (String -> s) -> (String -> Either String re) -> String -> String -> m (SearchReplace re s)
- Text.RE.ZeInternals.SearchReplace: compileSearchReplace_ :: (Monad m, Functor m) => (String -> s) -> (String -> Either String re) -> String -> m (SearchReplace re s)
- Text.RE.ZeInternals.SearchReplace: unsafeCompileSearchReplace_ :: (String -> s) -> (String -> Either String re) -> String -> SearchReplace re s
- Text.RE.ZeInternals.SearchReplace.TDFA: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Sequence: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.String: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: ed :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edBI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edBS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edMI :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edMS :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: edMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy: ed_ :: QuasiQuoter
- Text.RE.ZeInternals.SearchReplace.TDFAEdPrime: ed' :: Q Exp -> Maybe SimpleREOptions -> QuasiQuoter
- Text.RE.ZeInternals.TDFA: class IsOption o
- Text.RE.ZeInternals.TDFA: compileRegex :: (Functor m, Monad m) => String -> m RE
- Text.RE.ZeInternals.TDFA: compileRegexWith :: (Functor m, Monad m) => SimpleREOptions -> String -> m RE
- Text.RE.ZeInternals.TDFA: compileRegexWithOptions :: (IsOption o, Functor m, Monad m) => o -> String -> m RE
- Text.RE.ZeInternals.TDFA: compileSearchReplace :: (Monad m, Functor m, IsRegex RE s) => String -> String -> m (SearchReplace RE s)
- Text.RE.ZeInternals.TDFA: compileSearchReplaceWith :: (Monad m, Functor m, IsRegex RE s) => SimpleREOptions -> String -> String -> m (SearchReplace RE s)
- Text.RE.ZeInternals.TDFA: compileSearchReplaceWithREOptions :: (Monad m, Functor m, IsRegex RE s) => REOptions -> String -> String -> m (SearchReplace RE s)
- Text.RE.ZeInternals.TDFA: cp :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: data RE
- Text.RE.ZeInternals.TDFA: defaultREOptions :: REOptions
- Text.RE.ZeInternals.TDFA: escape :: (Functor m, Monad m) => (String -> String) -> String -> m RE
- Text.RE.ZeInternals.TDFA: escapeREString :: String -> String
- Text.RE.ZeInternals.TDFA: escapeWith :: (Functor m, Monad m) => SimpleREOptions -> (String -> String) -> String -> m RE
- Text.RE.ZeInternals.TDFA: escapeWithOptions :: (IsOption o, Functor m, Monad m) => o -> (String -> String) -> String -> m RE
- Text.RE.ZeInternals.TDFA: instance Text.RE.ZeInternals.TDFA.IsOption ()
- Text.RE.ZeInternals.TDFA: instance Text.RE.ZeInternals.TDFA.IsOption (Text.RE.REOptions.Macros Text.RE.ZeInternals.TDFA.RE)
- Text.RE.ZeInternals.TDFA: instance Text.RE.ZeInternals.TDFA.IsOption Text.RE.REOptions.SimpleREOptions
- Text.RE.ZeInternals.TDFA: instance Text.RE.ZeInternals.TDFA.IsOption Text.RE.ZeInternals.TDFA.REOptions
- Text.RE.ZeInternals.TDFA: instance Text.RE.ZeInternals.TDFA.IsOption Text.Regex.TDFA.Common.CompOption
- Text.RE.ZeInternals.TDFA: instance Text.RE.ZeInternals.TDFA.IsOption Text.Regex.TDFA.Common.ExecOption
- Text.RE.ZeInternals.TDFA: makeREOptions :: IsOption o => o -> REOptions
- Text.RE.ZeInternals.TDFA: noPreludeREOptions :: REOptions
- Text.RE.ZeInternals.TDFA: prelude :: Macros RE
- Text.RE.ZeInternals.TDFA: preludeEnv :: MacroEnv
- Text.RE.ZeInternals.TDFA: preludeSource :: PreludeMacro -> String
- Text.RE.ZeInternals.TDFA: preludeSources :: String
- Text.RE.ZeInternals.TDFA: preludeSummary :: PreludeMacro -> String
- Text.RE.ZeInternals.TDFA: preludeTable :: String
- Text.RE.ZeInternals.TDFA: preludeTestsFailing :: [MacroID]
- Text.RE.ZeInternals.TDFA: re :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reBI :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reBS :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reBlockInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reBlockSensitive :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reCaptureNames :: RE -> CaptureNames
- Text.RE.ZeInternals.TDFA: reMI :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reMS :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reMultilineInsensitive :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reMultilineSensitive :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: reOptions :: RE -> REOptions
- Text.RE.ZeInternals.TDFA: reRegex :: RE -> Regex
- Text.RE.ZeInternals.TDFA: reSource :: RE -> String
- Text.RE.ZeInternals.TDFA: re_ :: QuasiQuoter
- Text.RE.ZeInternals.TDFA: regexType :: RegexType
- Text.RE.ZeInternals.TDFA: type REOptions = REOptions_ RE CompOption ExecOption
- Text.RE.ZeInternals.TDFA: unpackSimpleREOptions :: SimpleREOptions -> REOptions
- Text.RE.ZeInternals.TestBench: ExclCaptures :: WithCaptures
- Text.RE.ZeInternals.TestBench: FunctionID :: String -> FunctionID
- Text.RE.ZeInternals.TestBench: InclCaptures :: WithCaptures
- Text.RE.ZeInternals.TestBench: MacroDescriptor :: !RegexSource -> ![String] -> ![String] -> ![TestResult] -> !(Maybe FunctionID) -> !String -> MacroDescriptor
- Text.RE.ZeInternals.TestBench: MacroID :: String -> MacroID
- Text.RE.ZeInternals.TestBench: RegexSource :: String -> RegexSource
- Text.RE.ZeInternals.TestBench: TestResult :: String -> TestResult
- Text.RE.ZeInternals.TestBench: [_FunctionID] :: FunctionID -> String
- Text.RE.ZeInternals.TestBench: [_RegexSource] :: RegexSource -> String
- Text.RE.ZeInternals.TestBench: [_TestResult] :: TestResult -> String
- Text.RE.ZeInternals.TestBench: [getMacroID] :: MacroID -> String
- Text.RE.ZeInternals.TestBench: [macroCounterSamples] :: MacroDescriptor -> ![String]
- Text.RE.ZeInternals.TestBench: [macroDescription] :: MacroDescriptor -> !String
- Text.RE.ZeInternals.TestBench: [macroParser] :: MacroDescriptor -> !(Maybe FunctionID)
- Text.RE.ZeInternals.TestBench: [macroSamples] :: MacroDescriptor -> ![String]
- Text.RE.ZeInternals.TestBench: [macroSource] :: MacroDescriptor -> !RegexSource
- Text.RE.ZeInternals.TestBench: [macroTestResults] :: MacroDescriptor -> ![TestResult]
- Text.RE.ZeInternals.TestBench: badMacros :: MacroEnv -> [MacroID]
- Text.RE.ZeInternals.TestBench: data MacroDescriptor
- Text.RE.ZeInternals.TestBench: data RegexType
- Text.RE.ZeInternals.TestBench: data WithCaptures
- Text.RE.ZeInternals.TestBench: formatMacroSource :: RegexType -> WithCaptures -> MacroEnv -> MacroID -> String
- Text.RE.ZeInternals.TestBench: formatMacroSources :: RegexType -> WithCaptures -> MacroEnv -> String
- Text.RE.ZeInternals.TestBench: formatMacroSummary :: RegexType -> MacroEnv -> MacroID -> String
- Text.RE.ZeInternals.TestBench: formatMacroTable :: RegexType -> MacroEnv -> String
- Text.RE.ZeInternals.TestBench: instance Data.String.IsString Text.RE.ZeInternals.TestBench.FunctionID
- Text.RE.ZeInternals.TestBench: instance Data.String.IsString Text.RE.ZeInternals.TestBench.RegexSource
- Text.RE.ZeInternals.TestBench: instance Data.String.IsString Text.RE.ZeInternals.TestBench.TestResult
- Text.RE.ZeInternals.TestBench: instance GHC.Arr.Ix Text.RE.ZeInternals.TestBench.Col
- Text.RE.ZeInternals.TestBench: instance GHC.Classes.Eq Text.RE.ZeInternals.TestBench.Col
- Text.RE.ZeInternals.TestBench: instance GHC.Classes.Eq Text.RE.ZeInternals.TestBench.WithCaptures
- Text.RE.ZeInternals.TestBench: instance GHC.Classes.Ord Text.RE.ZeInternals.TestBench.Col
- Text.RE.ZeInternals.TestBench: instance GHC.Classes.Ord Text.RE.ZeInternals.TestBench.WithCaptures
- Text.RE.ZeInternals.TestBench: instance GHC.Enum.Bounded Text.RE.ZeInternals.TestBench.Col
- Text.RE.ZeInternals.TestBench: instance GHC.Enum.Enum Text.RE.ZeInternals.TestBench.Col
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.Col
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.FunctionID
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.MacroDescriptor
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.REToken
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.RegexSource
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.RegexType
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.TestResult
- Text.RE.ZeInternals.TestBench: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.WithCaptures
- Text.RE.ZeInternals.TestBench: isPCRE :: RegexType -> Bool
- Text.RE.ZeInternals.TestBench: isTDFA :: RegexType -> Bool
- Text.RE.ZeInternals.TestBench: mdRegexSource :: RegexType -> WithCaptures -> MacroEnv -> MacroDescriptor -> String
- Text.RE.ZeInternals.TestBench: mkMacros :: (Monad m, Functor m) => (String -> m r) -> RegexType -> WithCaptures -> MacroEnv -> m (Macros r)
- Text.RE.ZeInternals.TestBench: mkPCRE :: TestBenchMatcher -> RegexType
- Text.RE.ZeInternals.TestBench: mkTDFA :: TestBenchMatcher -> RegexType
- Text.RE.ZeInternals.TestBench: newtype FunctionID
- Text.RE.ZeInternals.TestBench: newtype MacroID
- Text.RE.ZeInternals.TestBench: newtype RegexSource
- Text.RE.ZeInternals.TestBench: newtype TestResult
- Text.RE.ZeInternals.TestBench: presentRegexType :: RegexType -> String
- Text.RE.ZeInternals.TestBench: runTests :: (Eq a, Show a) => RegexType -> (String -> Maybe a) -> [(String, a)] -> MacroEnv -> MacroID -> MacroDescriptor -> MacroDescriptor
- Text.RE.ZeInternals.TestBench: runTests' :: (Eq a, Show a) => RegexType -> (Match String -> Maybe a) -> [(String, a)] -> MacroEnv -> MacroID -> MacroDescriptor -> MacroDescriptor
- Text.RE.ZeInternals.TestBench: testMacroDescriptors :: [MacroDescriptor] -> [TestResult]
- Text.RE.ZeInternals.TestBench: testMacroEnv :: String -> RegexType -> MacroEnv -> IO Bool
- Text.RE.ZeInternals.TestBench: type MacroEnv = HashMap MacroID MacroDescriptor
- Text.RE.ZeInternals.TestBench.Parsers: Alert :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: Crit :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: Debug :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: Emerg :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: Err :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: ExclCaptures :: WithCaptures
- Text.RE.ZeInternals.TestBench.Parsers: InclCaptures :: WithCaptures
- Text.RE.ZeInternals.TestBench.Parsers: Info :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: MacroDescriptor :: !RegexSource -> ![String] -> ![String] -> ![TestResult] -> !(Maybe FunctionID) -> !String -> MacroDescriptor
- Text.RE.ZeInternals.TestBench.Parsers: Notice :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: RegexSource :: String -> RegexSource
- Text.RE.ZeInternals.TestBench.Parsers: Warning :: Severity
- Text.RE.ZeInternals.TestBench.Parsers: [_RegexSource] :: RegexSource -> String
- Text.RE.ZeInternals.TestBench.Parsers: [macroCounterSamples] :: MacroDescriptor -> ![String]
- Text.RE.ZeInternals.TestBench.Parsers: [macroDescription] :: MacroDescriptor -> !String
- Text.RE.ZeInternals.TestBench.Parsers: [macroParser] :: MacroDescriptor -> !(Maybe FunctionID)
- Text.RE.ZeInternals.TestBench.Parsers: [macroSamples] :: MacroDescriptor -> ![String]
- Text.RE.ZeInternals.TestBench.Parsers: [macroSource] :: MacroDescriptor -> !RegexSource
- Text.RE.ZeInternals.TestBench.Parsers: [macroTestResults] :: MacroDescriptor -> ![TestResult]
- Text.RE.ZeInternals.TestBench.Parsers: data MacroDescriptor
- Text.RE.ZeInternals.TestBench.Parsers: data RegexType
- Text.RE.ZeInternals.TestBench.Parsers: data Severity
- Text.RE.ZeInternals.TestBench.Parsers: data WithCaptures
- Text.RE.ZeInternals.TestBench.Parsers: formatMacroSource :: RegexType -> WithCaptures -> MacroEnv -> MacroID -> String
- Text.RE.ZeInternals.TestBench.Parsers: formatMacroSources :: RegexType -> WithCaptures -> MacroEnv -> String
- Text.RE.ZeInternals.TestBench.Parsers: formatMacroSummary :: RegexType -> MacroEnv -> MacroID -> String
- Text.RE.ZeInternals.TestBench.Parsers: formatMacroTable :: RegexType -> MacroEnv -> String
- Text.RE.ZeInternals.TestBench.Parsers: instance GHC.Classes.Eq Text.RE.ZeInternals.TestBench.Parsers.Severity
- Text.RE.ZeInternals.TestBench.Parsers: instance GHC.Classes.Ord Text.RE.ZeInternals.TestBench.Parsers.Severity
- Text.RE.ZeInternals.TestBench.Parsers: instance GHC.Enum.Bounded Text.RE.ZeInternals.TestBench.Parsers.Severity
- Text.RE.ZeInternals.TestBench.Parsers: instance GHC.Enum.Enum Text.RE.ZeInternals.TestBench.Parsers.Severity
- Text.RE.ZeInternals.TestBench.Parsers: instance GHC.Show.Show Text.RE.ZeInternals.TestBench.Parsers.Severity
- Text.RE.ZeInternals.TestBench.Parsers: isPCRE :: RegexType -> Bool
- Text.RE.ZeInternals.TestBench.Parsers: isTDFA :: RegexType -> Bool
- Text.RE.ZeInternals.TestBench.Parsers: mkMacros :: (Monad m, Functor m) => (String -> m r) -> RegexType -> WithCaptures -> MacroEnv -> m (Macros r)
- Text.RE.ZeInternals.TestBench.Parsers: newtype RegexSource
- Text.RE.ZeInternals.TestBench.Parsers: parseDate :: Replace a => a -> Maybe Day
- Text.RE.ZeInternals.TestBench.Parsers: parseDateTime :: Replace a => a -> Maybe UTCTime
- Text.RE.ZeInternals.TestBench.Parsers: parseDateTime8601 :: Replace a => a -> Maybe UTCTime
- Text.RE.ZeInternals.TestBench.Parsers: parseDateTimeCLF :: Replace a => a -> Maybe UTCTime
- Text.RE.ZeInternals.TestBench.Parsers: parseDouble :: Replace a => a -> Maybe Double
- Text.RE.ZeInternals.TestBench.Parsers: parseHex :: Replace a => a -> Maybe Int
- Text.RE.ZeInternals.TestBench.Parsers: parseIPv4Address :: Replace a => a -> Maybe IPV4Address
- Text.RE.ZeInternals.TestBench.Parsers: parseInteger :: Replace a => a -> Maybe Int
- Text.RE.ZeInternals.TestBench.Parsers: parseSeverity :: Replace a => a -> Maybe Severity
- Text.RE.ZeInternals.TestBench.Parsers: parseShortMonth :: Replace a => a -> Maybe Int
- Text.RE.ZeInternals.TestBench.Parsers: parseSimpleString :: Replace a => a -> Maybe Text
- Text.RE.ZeInternals.TestBench.Parsers: parseSlashesDate :: Replace a => a -> Maybe Day
- Text.RE.ZeInternals.TestBench.Parsers: parseString :: Replace a => a -> Maybe Text
- Text.RE.ZeInternals.TestBench.Parsers: parseTimeOfDay :: Replace a => a -> Maybe TimeOfDay
- Text.RE.ZeInternals.TestBench.Parsers: parseTimeZone :: Replace a => a -> Maybe TimeZone
- Text.RE.ZeInternals.TestBench.Parsers: presentRegexType :: RegexType -> String
- Text.RE.ZeInternals.TestBench.Parsers: runTests :: (Eq a, Show a) => RegexType -> (String -> Maybe a) -> [(String, a)] -> MacroEnv -> MacroID -> MacroDescriptor -> MacroDescriptor
- Text.RE.ZeInternals.TestBench.Parsers: runTests' :: (Eq a, Show a) => RegexType -> (Match String -> Maybe a) -> [(String, a)] -> MacroEnv -> MacroID -> MacroDescriptor -> MacroDescriptor
- Text.RE.ZeInternals.TestBench.Parsers: severityKeywords :: Severity -> (Text, [Text])
- Text.RE.ZeInternals.TestBench.Parsers: shortMonthArray :: Array Int Text
- Text.RE.ZeInternals.TestBench.Parsers: testMacroEnv :: String -> RegexType -> MacroEnv -> IO Bool
- Text.RE.ZeInternals.TestBench.Parsers: type IPV4Address = (Word8, Word8, Word8, Word8)
- Text.RE.ZeInternals.TestBench.Parsers: type MacroEnv = HashMap MacroID MacroDescriptor
- Text.RE.ZeInternals.Tools.Lex: alex :: IsRegex re s => [(re, Match s -> Maybe t)] -> t -> s -> [t]
- Text.RE.ZeInternals.Tools.Lex: alex' :: Replace s => (re -> s -> Match s) -> [(re, Match s -> Maybe t)] -> t -> s -> [t]
- Text.RE.ZeInternals.Types.Capture: Capture :: !a -> !a -> !Int -> !Int -> Capture a
- Text.RE.ZeInternals.Types.Capture: [captureLength] :: Capture a -> !Int
- Text.RE.ZeInternals.Types.Capture: [captureOffset] :: Capture a -> !Int
- Text.RE.ZeInternals.Types.Capture: [captureSource] :: Capture a -> !a
- Text.RE.ZeInternals.Types.Capture: [capturedText] :: Capture a -> !a
- Text.RE.ZeInternals.Types.Capture: capturePrefix :: Extract a => Capture a -> a
- Text.RE.ZeInternals.Types.Capture: captureSuffix :: Extract a => Capture a -> a
- Text.RE.ZeInternals.Types.Capture: data Capture a
- Text.RE.ZeInternals.Types.Capture: hasCaptured :: Capture a -> Bool
- Text.RE.ZeInternals.Types.Capture: instance GHC.Base.Functor Text.RE.ZeInternals.Types.Capture.Capture
- Text.RE.ZeInternals.Types.Capture: instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.RE.ZeInternals.Types.Capture.Capture a)
- Text.RE.ZeInternals.Types.Capture: instance GHC.Show.Show a => GHC.Show.Show (Text.RE.ZeInternals.Types.Capture.Capture a)
- Text.RE.ZeInternals.Types.CaptureID: CaptureName :: Text -> CaptureName
- Text.RE.ZeInternals.Types.CaptureID: CaptureOrdinal :: Int -> CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: IsCaptureName :: CaptureName -> CaptureID
- Text.RE.ZeInternals.Types.CaptureID: IsCaptureOrdinal :: CaptureOrdinal -> CaptureID
- Text.RE.ZeInternals.Types.CaptureID: [getCaptureName] :: CaptureName -> Text
- Text.RE.ZeInternals.Types.CaptureID: [getCaptureOrdinal] :: CaptureOrdinal -> Int
- Text.RE.ZeInternals.Types.CaptureID: data CaptureID
- Text.RE.ZeInternals.Types.CaptureID: findCaptureID :: CaptureID -> CaptureNames -> Either String Int
- Text.RE.ZeInternals.Types.CaptureID: instance Data.Hashable.Class.Hashable Text.RE.ZeInternals.Types.CaptureID.CaptureName
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Arr.Ix Text.RE.ZeInternals.Types.CaptureID.CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Classes.Eq Text.RE.ZeInternals.Types.CaptureID.CaptureID
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Classes.Eq Text.RE.ZeInternals.Types.CaptureID.CaptureName
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Classes.Eq Text.RE.ZeInternals.Types.CaptureID.CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Classes.Ord Text.RE.ZeInternals.Types.CaptureID.CaptureID
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Classes.Ord Text.RE.ZeInternals.Types.CaptureID.CaptureName
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Classes.Ord Text.RE.ZeInternals.Types.CaptureID.CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Enum.Enum Text.RE.ZeInternals.Types.CaptureID.CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Num.Num Text.RE.ZeInternals.Types.CaptureID.CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Show.Show Text.RE.ZeInternals.Types.CaptureID.CaptureID
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Show.Show Text.RE.ZeInternals.Types.CaptureID.CaptureName
- Text.RE.ZeInternals.Types.CaptureID: instance GHC.Show.Show Text.RE.ZeInternals.Types.CaptureID.CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: newtype CaptureName
- Text.RE.ZeInternals.Types.CaptureID: newtype CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: noCaptureNames :: CaptureNames
- Text.RE.ZeInternals.Types.CaptureID: type CaptureNames = HashMap CaptureName CaptureOrdinal
- Text.RE.ZeInternals.Types.CaptureID: unsafeFindCaptureID :: CaptureID -> CaptureNames -> Int
- Text.RE.ZeInternals.Types.IsRegex: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.ZeInternals.Types.IsRegex: [getSearch] :: SearchReplace re s -> !re
- Text.RE.ZeInternals.Types.IsRegex: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.ZeInternals.Types.IsRegex: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
- Text.RE.ZeInternals.Types.IsRegex: data SearchReplace re s
- Text.RE.ZeInternals.Types.IsRegex: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
- Text.RE.ZeInternals.Types.IsRegex: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
- Text.RE.ZeInternals.Types.IsRegex: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
- Text.RE.ZeInternals.Types.IsRegex: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
- Text.RE.ZeInternals.Types.IsRegex: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
- Text.RE.ZeInternals.Types.IsRegex: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
- Text.RE.ZeInternals.Types.IsRegex: matchMany :: IsRegex re s => re -> s -> Matches s
- Text.RE.ZeInternals.Types.IsRegex: matchOnce :: IsRegex re s => re -> s -> Match s
- Text.RE.ZeInternals.Types.IsRegex: regexSource :: IsRegex re s => re -> s
- Text.RE.ZeInternals.Types.IsRegex: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
- Text.RE.ZeInternals.Types.IsRegex: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
- Text.RE.ZeInternals.Types.LineNo: ZeroBasedLineNo :: Int -> LineNo
- Text.RE.ZeInternals.Types.LineNo: [getZeroBasedLineNo] :: LineNo -> Int
- Text.RE.ZeInternals.Types.LineNo: firstLine :: LineNo
- Text.RE.ZeInternals.Types.LineNo: getLineNo :: LineNo -> Int
- Text.RE.ZeInternals.Types.LineNo: instance GHC.Enum.Enum Text.RE.ZeInternals.Types.LineNo.LineNo
- Text.RE.ZeInternals.Types.LineNo: instance GHC.Show.Show Text.RE.ZeInternals.Types.LineNo.LineNo
- Text.RE.ZeInternals.Types.LineNo: lineNo :: Int -> LineNo
- Text.RE.ZeInternals.Types.LineNo: newtype LineNo
- Text.RE.ZeInternals.Types.Match: (!$$) :: Match a -> CaptureID -> a
- Text.RE.ZeInternals.Types.Match: (!$$?) :: Match a -> CaptureID -> Maybe a
- Text.RE.ZeInternals.Types.Match: (!$) :: Match a -> CaptureID -> Capture a
- Text.RE.ZeInternals.Types.Match: (!$?) :: Match a -> CaptureID -> Maybe (Capture a)
- Text.RE.ZeInternals.Types.Match: Match :: !a -> !CaptureNames -> !(Array CaptureOrdinal (Capture a)) -> Match a
- Text.RE.ZeInternals.Types.Match: [captureNames] :: Match a -> !CaptureNames
- Text.RE.ZeInternals.Types.Match: [matchArray] :: Match a -> !(Array CaptureOrdinal (Capture a))
- Text.RE.ZeInternals.Types.Match: [matchSource] :: Match a -> !a
- Text.RE.ZeInternals.Types.Match: capture :: CaptureID -> Match a -> Capture a
- Text.RE.ZeInternals.Types.Match: captureMaybe :: CaptureID -> Match a -> Maybe (Capture a)
- Text.RE.ZeInternals.Types.Match: captureText :: CaptureID -> Match a -> a
- Text.RE.ZeInternals.Types.Match: captureTextMaybe :: CaptureID -> Match a -> Maybe a
- Text.RE.ZeInternals.Types.Match: convertMatchText :: source -> MatchText source -> Match source
- Text.RE.ZeInternals.Types.Match: data Match a
- Text.RE.ZeInternals.Types.Match: emptyMatchArray :: Array CaptureOrdinal (Capture a)
- Text.RE.ZeInternals.Types.Match: infixl 9 !$
- Text.RE.ZeInternals.Types.Match: instance (Text.Regex.Base.RegexLike.RegexContext regex source (Text.Regex.Base.RegexLike.AllTextSubmatches (GHC.Arr.Array GHC.Types.Int) (source, (GHC.Types.Int, GHC.Types.Int))), Text.Regex.Base.RegexLike.RegexLike regex source) => Text.Regex.Base.RegexLike.RegexContext regex source (Text.RE.ZeInternals.Types.Match.Match source)
- Text.RE.ZeInternals.Types.Match: instance GHC.Base.Functor Text.RE.ZeInternals.Types.Match.Match
- Text.RE.ZeInternals.Types.Match: instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.RE.ZeInternals.Types.Match.Match a)
- Text.RE.ZeInternals.Types.Match: instance GHC.Show.Show a => GHC.Show.Show (Text.RE.ZeInternals.Types.Match.Match a)
- Text.RE.ZeInternals.Types.Match: matchCapture :: Match a -> Maybe (Capture a)
- Text.RE.ZeInternals.Types.Match: matchCaptures :: Match a -> Maybe (Capture a, [Capture a])
- Text.RE.ZeInternals.Types.Match: matched :: Match a -> Bool
- Text.RE.ZeInternals.Types.Match: matchedText :: Match a -> Maybe a
- Text.RE.ZeInternals.Types.Match: noMatch :: a -> Match a
- Text.RE.ZeInternals.Types.Matches: Matches :: !a -> ![Match a] -> Matches a
- Text.RE.ZeInternals.Types.Matches: [allMatches] :: Matches a -> ![Match a]
- Text.RE.ZeInternals.Types.Matches: [matchesSource] :: Matches a -> !a
- Text.RE.ZeInternals.Types.Matches: anyMatches :: Matches a -> Bool
- Text.RE.ZeInternals.Types.Matches: countMatches :: Matches a -> Int
- Text.RE.ZeInternals.Types.Matches: data Matches a
- Text.RE.ZeInternals.Types.Matches: instance (Text.Regex.Base.RegexLike.RegexContext regex source [Text.Regex.Base.RegexLike.MatchText source], Text.Regex.Base.RegexLike.RegexLike regex source) => Text.Regex.Base.RegexLike.RegexContext regex source (Text.RE.ZeInternals.Types.Matches.Matches source)
- Text.RE.ZeInternals.Types.Matches: instance GHC.Base.Functor Text.RE.ZeInternals.Types.Matches.Matches
- Text.RE.ZeInternals.Types.Matches: instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.RE.ZeInternals.Types.Matches.Matches a)
- Text.RE.ZeInternals.Types.Matches: instance GHC.Show.Show a => GHC.Show.Show (Text.RE.ZeInternals.Types.Matches.Matches a)
- Text.RE.ZeInternals.Types.Matches: mainCaptures :: Matches a -> [Capture a]
- Text.RE.ZeInternals.Types.Matches: matches :: Matches a -> [a]
- Text.RE.ZeInternals.Types.SearchReplace: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.ZeInternals.Types.SearchReplace: [getSearch] :: SearchReplace re s -> !re
- Text.RE.ZeInternals.Types.SearchReplace: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.ZeInternals.Types.SearchReplace: data SearchReplace re s
- Text.RE.ZeInternals.Types.SearchReplace: instance (GHC.Show.Show s, GHC.Show.Show re) => GHC.Show.Show (Text.RE.ZeInternals.Types.SearchReplace.SearchReplace re s)
- Text.RE.ZeInternals.Types.SearchReplace: instance GHC.Base.Functor (Text.RE.ZeInternals.Types.SearchReplace.SearchReplace re)
+ Text.RE.TDFA: class IsOption o
+ Text.RE.TDFA: compileRegexWithOptions :: (IsOption o, Functor m, Monad m) => o -> String -> m RE
+ Text.RE.TDFA: compileSearchReplaceWithOptions :: (Monad m, Functor m, IsRegex RE s) => REOptions -> String -> String -> m (SearchReplace RE s)
+ Text.RE.TDFA: cp :: QuasiQuoter
+ Text.RE.TDFA: defaultREOptions :: REOptions
+ Text.RE.TDFA: ed :: QuasiQuoter
+ Text.RE.TDFA: edBI :: QuasiQuoter
+ Text.RE.TDFA: edBS :: QuasiQuoter
+ Text.RE.TDFA: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA: edMI :: QuasiQuoter
+ Text.RE.TDFA: edMS :: QuasiQuoter
+ Text.RE.TDFA: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA: ed_ :: QuasiQuoter
+ Text.RE.TDFA: escapeWithOptions :: (IsOption o, Functor m, Monad m) => o -> (String -> String) -> String -> m RE
+ Text.RE.TDFA: makeREOptions :: IsOption o => o -> REOptions
+ Text.RE.TDFA: noPreludeREOptions :: REOptions
+ Text.RE.TDFA: prelude :: Macros RE
+ Text.RE.TDFA: preludeEnv :: MacroEnv
+ Text.RE.TDFA: preludeSource :: PreludeMacro -> String
+ Text.RE.TDFA: preludeSources :: String
+ Text.RE.TDFA: preludeSummary :: PreludeMacro -> String
+ Text.RE.TDFA: preludeTable :: String
+ Text.RE.TDFA: preludeTestsFailing :: [MacroID]
+ Text.RE.TDFA: re :: QuasiQuoter
+ Text.RE.TDFA: reBI :: QuasiQuoter
+ Text.RE.TDFA: reBS :: QuasiQuoter
+ Text.RE.TDFA: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA: reCaptureNames :: RE -> CaptureNames
+ Text.RE.TDFA: reMI :: QuasiQuoter
+ Text.RE.TDFA: reMS :: QuasiQuoter
+ Text.RE.TDFA: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA: reOptions :: RE -> REOptions
+ Text.RE.TDFA: reRegex :: RE -> Regex
+ Text.RE.TDFA: re_ :: QuasiQuoter
+ Text.RE.TDFA: regexType :: RegexType
+ Text.RE.TDFA: type REOptions = REOptions_ RE CompOption ExecOption
+ Text.RE.TDFA: unpackSimpleREOptions :: SimpleREOptions -> REOptions
+ Text.RE.TDFA.ByteString: cp :: QuasiQuoter
+ Text.RE.TDFA.ByteString: ed :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edBI :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edBS :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edMI :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edMS :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: ed_ :: QuasiQuoter
+ Text.RE.TDFA.ByteString: re :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reBI :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reBS :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reMI :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reMS :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString: re_ :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: cp :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: ed :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edBI :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edBS :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edMI :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edMS :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: ed_ :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: re :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reBI :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reBS :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reMI :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reMS :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.ByteString.Lazy: re_ :: QuasiQuoter
+ Text.RE.TDFA.Sequence: cp :: QuasiQuoter
+ Text.RE.TDFA.Sequence: ed :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edBI :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edBS :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edMI :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edMS :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: ed_ :: QuasiQuoter
+ Text.RE.TDFA.Sequence: re :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reBI :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reBS :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reMI :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reMS :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.Sequence: re_ :: QuasiQuoter
+ Text.RE.TDFA.String: cp :: QuasiQuoter
+ Text.RE.TDFA.String: ed :: QuasiQuoter
+ Text.RE.TDFA.String: edBI :: QuasiQuoter
+ Text.RE.TDFA.String: edBS :: QuasiQuoter
+ Text.RE.TDFA.String: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.String: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.String: edMI :: QuasiQuoter
+ Text.RE.TDFA.String: edMS :: QuasiQuoter
+ Text.RE.TDFA.String: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.String: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.String: ed_ :: QuasiQuoter
+ Text.RE.TDFA.String: re :: QuasiQuoter
+ Text.RE.TDFA.String: reBI :: QuasiQuoter
+ Text.RE.TDFA.String: reBS :: QuasiQuoter
+ Text.RE.TDFA.String: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.String: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.String: reMI :: QuasiQuoter
+ Text.RE.TDFA.String: reMS :: QuasiQuoter
+ Text.RE.TDFA.String: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.String: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.String: re_ :: QuasiQuoter
+ Text.RE.TDFA.Text: cp :: QuasiQuoter
+ Text.RE.TDFA.Text: ed :: QuasiQuoter
+ Text.RE.TDFA.Text: edBI :: QuasiQuoter
+ Text.RE.TDFA.Text: edBS :: QuasiQuoter
+ Text.RE.TDFA.Text: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: edMI :: QuasiQuoter
+ Text.RE.TDFA.Text: edMS :: QuasiQuoter
+ Text.RE.TDFA.Text: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: ed_ :: QuasiQuoter
+ Text.RE.TDFA.Text: re :: QuasiQuoter
+ Text.RE.TDFA.Text: reBI :: QuasiQuoter
+ Text.RE.TDFA.Text: reBS :: QuasiQuoter
+ Text.RE.TDFA.Text: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: reMI :: QuasiQuoter
+ Text.RE.TDFA.Text: reMS :: QuasiQuoter
+ Text.RE.TDFA.Text: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text: re_ :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: cp :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: ed :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edBI :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edBS :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edMI :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edMS :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: edMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: ed_ :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: re :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reBI :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reBS :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reBlockInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reBlockSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reMI :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reMS :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reMultilineInsensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: reMultilineSensitive :: QuasiQuoter
+ Text.RE.TDFA.Text.Lazy: re_ :: QuasiQuoter
+ Text.RE.TestBench: data Match a
+ Text.RE.TestBench: mdRegexSource :: RegexType -> WithCaptures -> MacroEnv -> MacroDescriptor -> String
+ Text.RE.TestBench.Parsers: Alert :: Severity
+ Text.RE.TestBench.Parsers: Crit :: Severity
+ Text.RE.TestBench.Parsers: Debug :: Severity
+ Text.RE.TestBench.Parsers: Emerg :: Severity
+ Text.RE.TestBench.Parsers: Err :: Severity
+ Text.RE.TestBench.Parsers: Info :: Severity
+ Text.RE.TestBench.Parsers: Notice :: Severity
+ Text.RE.TestBench.Parsers: Warning :: Severity
+ Text.RE.TestBench.Parsers: data Severity
+ Text.RE.TestBench.Parsers: parseDate :: Replace a => a -> Maybe Day
+ Text.RE.TestBench.Parsers: parseDateTime :: Replace a => a -> Maybe UTCTime
+ Text.RE.TestBench.Parsers: parseDateTime8601 :: Replace a => a -> Maybe UTCTime
+ Text.RE.TestBench.Parsers: parseDateTimeCLF :: Replace a => a -> Maybe UTCTime
+ Text.RE.TestBench.Parsers: parseDouble :: Replace a => a -> Maybe Double
+ Text.RE.TestBench.Parsers: parseHex :: Replace a => a -> Maybe Int
+ Text.RE.TestBench.Parsers: parseIPv4Address :: Replace a => a -> Maybe IPV4Address
+ Text.RE.TestBench.Parsers: parseInteger :: Replace a => a -> Maybe Int
+ Text.RE.TestBench.Parsers: parseSeverity :: Replace a => a -> Maybe Severity
+ Text.RE.TestBench.Parsers: parseShortMonth :: Replace a => a -> Maybe Int
+ Text.RE.TestBench.Parsers: parseSimpleString :: Replace a => a -> Maybe Text
+ Text.RE.TestBench.Parsers: parseSlashesDate :: Replace a => a -> Maybe Day
+ Text.RE.TestBench.Parsers: parseString :: Replace a => a -> Maybe Text
+ Text.RE.TestBench.Parsers: parseTimeOfDay :: Replace a => a -> Maybe TimeOfDay
+ Text.RE.TestBench.Parsers: parseTimeZone :: Replace a => a -> Maybe TimeZone
+ Text.RE.TestBench.Parsers: severityKeywords :: Severity -> (Text, [Text])
+ Text.RE.TestBench.Parsers: shortMonthArray :: Array Int Text
+ Text.RE.TestBench.Parsers: type IPV4Address = (Word8, Word8, Word8, Word8)
+ Text.RE.Tools: SearchReplace :: !re -> !s -> SearchReplace re s
+ Text.RE.Tools: [getSearch] :: SearchReplace re s -> !re
+ Text.RE.Tools: [getTemplate] :: SearchReplace re s -> !s
+ Text.RE.Tools: data SearchReplace re s
+ Text.RE.Tools: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Edit: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
+ Text.RE.Tools.Edit: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
+ Text.RE.Tools.Edit: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
+ Text.RE.Tools.Edit: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
+ Text.RE.Tools.Edit: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
+ Text.RE.Tools.Edit: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
+ Text.RE.Tools.Edit: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
+ Text.RE.Tools.Edit: matchMany :: IsRegex re s => re -> s -> Matches s
+ Text.RE.Tools.Edit: matchOnce :: IsRegex re s => re -> s -> Match s
+ Text.RE.Tools.Edit: regexSource :: IsRegex re s => re -> s
+ Text.RE.Tools.Edit: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Edit: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Find: SearchReplace :: !re -> !s -> SearchReplace re s
+ Text.RE.Tools.Find: [getSearch] :: SearchReplace re s -> !re
+ Text.RE.Tools.Find: [getTemplate] :: SearchReplace re s -> !s
+ Text.RE.Tools.Find: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
+ Text.RE.Tools.Find: data SearchReplace re s
+ Text.RE.Tools.Find: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
+ Text.RE.Tools.Find: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
+ Text.RE.Tools.Find: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
+ Text.RE.Tools.Find: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
+ Text.RE.Tools.Find: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
+ Text.RE.Tools.Find: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
+ Text.RE.Tools.Find: matchMany :: IsRegex re s => re -> s -> Matches s
+ Text.RE.Tools.Find: matchOnce :: IsRegex re s => re -> s -> Match s
+ Text.RE.Tools.Find: regexSource :: IsRegex re s => re -> s
+ Text.RE.Tools.Find: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Find: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Grep: SearchReplace :: !re -> !s -> SearchReplace re s
+ Text.RE.Tools.Grep: [getSearch] :: SearchReplace re s -> !re
+ Text.RE.Tools.Grep: [getTemplate] :: SearchReplace re s -> !s
+ Text.RE.Tools.Grep: data SearchReplace re s
+ Text.RE.Tools.Grep: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Grep: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.IsRegex: SearchReplace :: !re -> !s -> SearchReplace re s
+ Text.RE.Tools.IsRegex: [getSearch] :: SearchReplace re s -> !re
+ Text.RE.Tools.IsRegex: [getTemplate] :: SearchReplace re s -> !s
+ Text.RE.Tools.IsRegex: class Replace s => IsRegex re s where makeRegex = makeRegexWith minBound makeSearchReplace = makeSearchReplaceWith minBound makeEscaped = makeEscapedWith minBound makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR
+ Text.RE.Tools.IsRegex: data SearchReplace re s
+ Text.RE.Tools.IsRegex: makeEscaped :: (IsRegex re s, Functor m, Monad m) => (s -> s) -> s -> m re
+ Text.RE.Tools.IsRegex: makeEscapedWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re
+ Text.RE.Tools.IsRegex: makeRegex :: (IsRegex re s, Functor m, Monad m) => s -> m re
+ Text.RE.Tools.IsRegex: makeRegexWith :: (IsRegex re s, Functor m, Monad m) => SimpleREOptions -> s -> m re
+ Text.RE.Tools.IsRegex: makeSearchReplace :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s)
+ Text.RE.Tools.IsRegex: makeSearchReplaceWith :: (IsRegex re s, Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
+ Text.RE.Tools.IsRegex: matchMany :: IsRegex re s => re -> s -> Matches s
+ Text.RE.Tools.IsRegex: matchOnce :: IsRegex re s => re -> s -> Match s
+ Text.RE.Tools.IsRegex: regexSource :: IsRegex re s => re -> s
+ Text.RE.Tools.IsRegex: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.IsRegex: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Lex: SearchReplace :: !re -> !s -> SearchReplace re s
+ Text.RE.Tools.Lex: [getSearch] :: SearchReplace re s -> !re
+ Text.RE.Tools.Lex: [getTemplate] :: SearchReplace re s -> !s
+ Text.RE.Tools.Lex: data SearchReplace re s
+ Text.RE.Tools.Lex: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Lex: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Sed: SearchReplace :: !re -> !s -> SearchReplace re s
+ Text.RE.Tools.Sed: [getSearch] :: SearchReplace re s -> !re
+ Text.RE.Tools.Sed: [getTemplate] :: SearchReplace re s -> !s
+ Text.RE.Tools.Sed: data SearchReplace re s
+ Text.RE.Tools.Sed: searchReplaceAll :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.Tools.Sed: searchReplaceFirst :: IsRegex re s => SearchReplace re s -> s -> s
+ Text.RE.ZeInternals: PM_address_ipv4 :: PreludeMacro
+ Text.RE.ZeInternals: PM_date :: PreludeMacro
+ Text.RE.ZeInternals: PM_date_slashes :: PreludeMacro
+ Text.RE.ZeInternals: PM_datetime :: PreludeMacro
+ Text.RE.ZeInternals: PM_datetime_8601 :: PreludeMacro
+ Text.RE.ZeInternals: PM_datetime_clf :: PreludeMacro
+ Text.RE.ZeInternals: PM_email_simple :: PreludeMacro
+ Text.RE.ZeInternals: PM_frac :: PreludeMacro
+ Text.RE.ZeInternals: PM_hex :: PreludeMacro
+ Text.RE.ZeInternals: PM_id :: PreludeMacro
+ Text.RE.ZeInternals: PM_id' :: PreludeMacro
+ Text.RE.ZeInternals: PM_id_ :: PreludeMacro
+ Text.RE.ZeInternals: PM_int :: PreludeMacro
+ Text.RE.ZeInternals: PM_nat :: PreludeMacro
+ Text.RE.ZeInternals: PM_shortmonth :: PreludeMacro
+ Text.RE.ZeInternals: PM_string :: PreludeMacro
+ Text.RE.ZeInternals: PM_string_simple :: PreludeMacro
+ Text.RE.ZeInternals: PM_syslog_severity :: PreludeMacro
+ Text.RE.ZeInternals: PM_time :: PreludeMacro
+ Text.RE.ZeInternals: PM_timezone :: PreludeMacro
+ Text.RE.ZeInternals: PM_url :: PreludeMacro
+ Text.RE.ZeInternals: QQFailure :: String -> String -> QQFailure
+ Text.RE.ZeInternals: [_qqf_component] :: QQFailure -> String
+ Text.RE.ZeInternals: [_qqf_context] :: QQFailure -> String
+ Text.RE.ZeInternals: addCaptureNames :: Typeable a => CaptureNames -> a -> a
+ Text.RE.ZeInternals: addCaptureNamesToMatch :: CaptureNames -> Match a -> Match a
+ Text.RE.ZeInternals: addCaptureNamesToMatches :: CaptureNames -> Matches a -> Matches a
+ Text.RE.ZeInternals: badMacros :: MacroEnv -> [MacroID]
+ Text.RE.ZeInternals: compileSearchAndReplace_ :: (Monad m, Functor m) => (String -> s) -> (String -> Either String re) -> String -> String -> m (SearchReplace re s)
+ Text.RE.ZeInternals: compileSearchReplace_ :: (Monad m, Functor m) => (String -> s) -> (String -> Either String re) -> String -> m (SearchReplace re s)
+ Text.RE.ZeInternals: cp :: QuasiQuoter
+ Text.RE.ZeInternals: data PreludeMacro
+ Text.RE.ZeInternals: data QQFailure
+ Text.RE.ZeInternals: data Token
+ Text.RE.ZeInternals: escapeREString :: String -> String
+ Text.RE.ZeInternals: expandMacros :: (r -> String) -> Macros r -> String -> String
+ Text.RE.ZeInternals: extractNamedCaptures :: String -> Either String ((Int, CaptureNames), String)
+ Text.RE.ZeInternals: formatTokens :: [Token] -> String
+ Text.RE.ZeInternals: formatTokens' :: FormatTokenREOptions -> [Token] -> String
+ Text.RE.ZeInternals: formatTokens0 :: [Token] -> String
+ Text.RE.ZeInternals: idFormatTokenREOptions :: FormatTokenREOptions
+ Text.RE.ZeInternals: mkPCRE :: TestBenchMatcher -> RegexType
+ Text.RE.ZeInternals: mkTDFA :: TestBenchMatcher -> RegexType
+ Text.RE.ZeInternals: preludeMacroEnv :: RegexType -> MacroEnv
+ Text.RE.ZeInternals: preludeMacroSource :: RegexType -> PreludeMacro -> String
+ Text.RE.ZeInternals: preludeMacroSources :: RegexType -> String
+ Text.RE.ZeInternals: preludeMacroSummary :: RegexType -> PreludeMacro -> String
+ Text.RE.ZeInternals: preludeMacroTable :: RegexType -> String
+ Text.RE.ZeInternals: preludeMacros :: (Monad m, Functor m) => (String -> m r) -> RegexType -> WithCaptures -> m (Macros r)
+ Text.RE.ZeInternals: presentPreludeMacro :: PreludeMacro -> String
+ Text.RE.ZeInternals: qq0 :: String -> QuasiQuoter
+ Text.RE.ZeInternals: scan :: String -> [Token]
+ Text.RE.ZeInternals: unsafeCompileSearchReplace_ :: (String -> s) -> (String -> Either String re) -> String -> SearchReplace re s
+ Text.RE.ZeInternals: validToken :: Token -> Bool
- Text.RE.Replace: findCaptureID :: CaptureID -> CaptureNames -> Either String Int
+ Text.RE.Replace: findCaptureID :: CaptureID -> CaptureNames -> Either String CaptureOrdinal
- Text.RE.TDFA.ByteString: (=~) :: (Typeable a, RegexContext Regex ByteString a, RegexMaker Regex CompOption ExecOption String) => ByteString -> RE -> a
+ Text.RE.TDFA.ByteString: (=~) :: (Typeable a, RegexContext Regex ByteString a) => ByteString -> RE -> a
- Text.RE.TDFA.ByteString: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex ByteString a, RegexMaker Regex CompOption ExecOption String) => ByteString -> RE -> m a
+ Text.RE.TDFA.ByteString: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex ByteString a) => ByteString -> RE -> m a
- Text.RE.TDFA.ByteString.Lazy: (=~) :: (Typeable a, RegexContext Regex ByteString a, RegexMaker Regex CompOption ExecOption String) => ByteString -> RE -> a
+ Text.RE.TDFA.ByteString.Lazy: (=~) :: (Typeable a, RegexContext Regex ByteString a) => ByteString -> RE -> a
- Text.RE.TDFA.ByteString.Lazy: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex ByteString a, RegexMaker Regex CompOption ExecOption String) => ByteString -> RE -> m a
+ Text.RE.TDFA.ByteString.Lazy: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex ByteString a) => ByteString -> RE -> m a
- Text.RE.TDFA.Sequence: (=~) :: (Typeable a, RegexContext Regex (Seq Char) a, RegexMaker Regex CompOption ExecOption String) => (Seq Char) -> RE -> a
+ Text.RE.TDFA.Sequence: (=~) :: (Typeable a, RegexContext Regex (Seq Char) a) => (Seq Char) -> RE -> a
- Text.RE.TDFA.Sequence: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex (Seq Char) a, RegexMaker Regex CompOption ExecOption String) => (Seq Char) -> RE -> m a
+ Text.RE.TDFA.Sequence: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex (Seq Char) a) => (Seq Char) -> RE -> m a
- Text.RE.TDFA.String: (=~) :: (Typeable a, RegexContext Regex String a, RegexMaker Regex CompOption ExecOption String) => String -> RE -> a
+ Text.RE.TDFA.String: (=~) :: (Typeable a, RegexContext Regex String a) => String -> RE -> a
- Text.RE.TDFA.String: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex String a, RegexMaker Regex CompOption ExecOption String) => String -> RE -> m a
+ Text.RE.TDFA.String: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex String a) => String -> RE -> m a
- Text.RE.TDFA.Text: (=~) :: (Typeable a, RegexContext Regex Text a, RegexMaker Regex CompOption ExecOption String) => Text -> RE -> a
+ Text.RE.TDFA.Text: (=~) :: (Typeable a, RegexContext Regex Text a) => Text -> RE -> a
- Text.RE.TDFA.Text: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex Text a, RegexMaker Regex CompOption ExecOption String) => Text -> RE -> m a
+ Text.RE.TDFA.Text: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex Text a) => Text -> RE -> m a
- Text.RE.TDFA.Text.Lazy: (=~) :: (Typeable a, RegexContext Regex Text a, RegexMaker Regex CompOption ExecOption String) => Text -> RE -> a
+ Text.RE.TDFA.Text.Lazy: (=~) :: (Typeable a, RegexContext Regex Text a) => Text -> RE -> a
- Text.RE.TDFA.Text.Lazy: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex Text a, RegexMaker Regex CompOption ExecOption String) => Text -> RE -> m a
+ Text.RE.TDFA.Text.Lazy: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex Text a) => Text -> RE -> m a

Files

README.markdown view
@@ -12,7 +12,7 @@   * regular expression macros including:       + a number of useful RE macros;       + a test bench for testing and documenting new macro environments;-  * built-in support for the TDFA and PCRE backends;+  * built-in support for the TDFA and PCRE back ends;   * comprehensive documentation, tutorials and copious examples.  @@ -78,7 +78,7 @@  &nbsp;&nbsp;&nbsp;&nbsp;&#x2612;&nbsp;&nbsp;2017-04-04  v0.14.0.0 [Move IsOption, rename Find functions](https://github.com/iconnect/regex/milestone/18) -&nbsp;&nbsp;&nbsp;&nbsp;&#x2610;&nbsp;&nbsp;2017-04-10  v1.0.0.0  [First stable release](https://github.com/iconnect/regex/milestone/3)+&nbsp;&nbsp;&nbsp;&nbsp;&#x2612;&nbsp;&nbsp;2017-04-10  v1.0.0.0  [First stable release](https://github.com/iconnect/regex/milestone/3)  &nbsp;&nbsp;&nbsp;&nbsp;&#x2610;&nbsp;&nbsp;2017-08-31  v2.0.0.0  [Fast text replacement with benchmarks](https://github.com/iconnect/regex/milestone/4) 
Text/RE.hs view
@@ -17,36 +17,8 @@    -- * Further Use   -- $further--  -- * The regex Foundational Types-  -- ** Matches-    Matches-  , matchesSource-  , allMatches-  , anyMatches-  , countMatches-  , matches-  -- ** Match-  , Match-  , matchSource-  , matched-  , matchedText--  -- * IsRegex-  -- $isregex-  , IsRegex(..)-  , searchReplaceAll-  , searchReplaceFirst-  -- * IsRegex Instances-  -- $instances-  , module Text.RE.TDFA   ) where -import           Text.RE.TDFA()-import           Text.RE.ZeInternals.Types.IsRegex-import           Text.RE.ZeInternals.Types.Match-import           Text.RE.ZeInternals.Types.Matches- -- $tutorial -- -- We have a regex tutorial at <http://tutorial.regex.uk>.@@ -91,17 +63,7 @@ -- For more specialist applications we have the following: -- -- * "Text.RE.REOptions" for specifying back-end specific options;--- * "Text.RE.Replace"   for the full replace toolkit;+-- * "Text.RE.Replace"   for the full text-replacement toolkit; -- * "Text.RE.TestBench" for building up, testing and doumenting; --   macro environments  for use in REs; -- * "Text.RE.Tools"     for an AWK-like text-processing toolkit.---- $isregex--- Class @IsRegex re t@ provides methods for matching the @t@ type for--- the @re@ back end as well as compiling REs from @t@ to @re@ and--- getting the source @t@ back again. The 'Replace' superclass of--- @IsRegex@ contains a useful toolkit for converting between @t@ and--- 'String' abd @Text@.---- $instances--- This module import just imports the @IsRegex TDFA s@ instances.
Text/RE/REOptions.lhs view
@@ -12,8 +12,12 @@  module Text.RE.REOptions   (-  -- * RE Options+  -- * The Options Tutorial+  -- $tutorial++  -- * 'SimpleREOptions'     SimpleREOptions(..)+  -- * 'REOptions_'   , REOptions_(..)   -- * The Macro Tables   , Macros@@ -60,7 +64,7 @@ -- and its @CompOption@ and @ExecOption@ types (the compile-time and -- execution time options, respectively); each back end will define an -- @REOptions@ type that fills out these three type parameters with the--- apropriate types (see, for example, "Text.RE.ZeInternals.TDFA")+-- apropriate types (see, for example, "Text.RE.TDFA") data REOptions_ r c e =   REOptions     { optionsMacs :: !(Macros r)    -- ^ the available TestBench RE macros@@ -75,7 +79,7 @@ ----------------  \begin{code}--- | our macro tables are parameterised over the backend @RE@ type and+-- | our macro tables are parameterised over the back end @RE@ type and -- and just associate each @MacroID@ with an @RE@ (which may in turn -- contain macros to be expanded) type Macros r = HM.HashMap MacroID r@@ -99,4 +103,13 @@ -- | a macro table containing no entries emptyMacros :: Macros r emptyMacros = HM.empty+\end{code}+++\begin{code}+-- $tutorial+-- This API module provides the generic types used to specify the options+-- when compiling REs for each of the backl ends.+--+-- See the tutorials at http://re-tutorial-options.regex.uk \end{code}
Text/RE/Replace.hs view
@@ -1,11 +1,10 @@ module Text.RE.Replace   (-  -- * REContext and RELocation-    REContext(..)-  , RELocation(..)-  , isTopLocation+  -- * The Replacing Tutorial+  -- $tutorial+   -- * replaceAll-  , replaceAll+    replaceAll   , replaceAllCaptures   , replaceAllCaptures_   , replaceAllCapturesM@@ -14,10 +13,10 @@   , replaceCaptures   , replaceCaptures_   , replaceCapturesM-  -- * Replace and ReplaceMethods-  , Replace(..)-  , ReplaceMethods(..)-  , replaceMethods+  -- * REContext and RELocation+  , REContext(..)+  , RELocation(..)+  , isTopLocation   -- * Matches   , Matches(..)   , anyMatches@@ -53,6 +52,10 @@   , CaptureName(..)   , CaptureOrdinal(..)   , findCaptureID+  -- * Replace and ReplaceMethods+  , Replace(..)+  , ReplaceMethods(..)+  , replaceMethods   ) where  import           Text.RE.ZeInternals.Replace@@ -60,3 +63,11 @@ import           Text.RE.ZeInternals.Types.CaptureID import           Text.RE.ZeInternals.Types.Match import           Text.RE.ZeInternals.Types.Matches++-- $tutorial+-- This API module covers the specialised regex tools for doing general+-- editing on text, including the internal details of the 'Matches' and+-- 'Match' types and the associated functions for extracting captures+-- and applying functions to them to transform the subject text.+--+-- See the tutorials at http://re-tutorial-replacing.regex.uk
Text/RE/Summa.hs view
@@ -14,7 +14,7 @@ -- $collection -- -- This module collects together all of the generic regex APIs not--- exported by the back-end-specific API modules. The regex--- API is modular with only the most common types and functions being--- exported by these modules but the remaining modules may be imported--- en masse by importing this module.+-- exported by the principal API modules, specialised for each back end+-- and text type. The regex API is modular with only the most common types+-- and functions being exported by these modules but the remaining modules+-- may be imported en masse by importing this module.
Text/RE/TDFA.hs view
@@ -14,50 +14,96 @@   -- * About this Module   -- $about -  -- * The Match Operators+  -- * The 'Matches' and 'Match' Operators     (*=~)   , (?=~)-  -- * The SearchReplace Operators+  -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE+  , regexType+  , reOptions   , reSource+  , reCaptureNames+  , reRegex   -- * Options   -- $options   , SimpleREOptions(..)+  , IsOption(..)+  , REOptions+  , defaultREOptions+  , noPreludeREOptions+  , unpackSimpleREOptions   -- * Compiling and Escaping REs   , SearchReplace(..)   , compileRegex   , compileRegexWith+  , compileRegexWithOptions   , compileSearchReplace   , compileSearchReplaceWith+  , compileSearchReplaceWithOptions   , escape   , escapeWith+  , escapeWithOptions   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA-  -- * The Operator Instances+  , ed+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * RE Macros Standard Environment+  -- $prelude+  , prelude+  , preludeEnv+  , preludeTestsFailing+  , preludeTable+  , preludeSummary+  , preludeSources+  , preludeSource+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex+  -- * The IsRegex Instances   -- $instances   , module Text.RE.TDFA.ByteString   , module Text.RE.TDFA.ByteString.Lazy@@ -68,18 +114,18 @@   ) where  import           Text.RE.REOptions+import           Text.RE.Replace import           Text.RE.TDFA.ByteString() import           Text.RE.TDFA.ByteString.Lazy() import           Text.RE.TDFA.Sequence() import           Text.RE.TDFA.String() import           Text.RE.TDFA.Text() import           Text.RE.TDFA.Text.Lazy()-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex-import           Text.RE.ZeInternals.Types.Match-import           Text.RE.ZeInternals.Types.Matches import qualified Text.Regex.Base                          as B import qualified Text.Regex.TDFA                          as TDFA @@ -144,26 +190,64 @@ -- $about -- This module provides access to the back end through polymorphic functions -- that operate over all of the String\/Text\/ByteString types supported by the--- back end. If you don't need this generality then you might want to consider--- using one of the modules that have been specialised for each of these types:+-- back end. The module also provides all of the specialised back-end functionality+-- that will not be needed by most regex clientts. If you don't need this generality+-- then you might want to consider using one of the simpler modules that have been+-- specialised for each of these types: -- -- * "Text.RE.TDFA.ByteString" -- * "Text.RE.TDFA.ByteString.Lazy"--- * "Text.RE.ZeInternals.TDFA" -- * "Text.RE.TDFA.Sequence" -- * "Text.RE.TDFA.String" -- * "Text.RE.TDFA.Text" -- * "Text.RE.TDFA.Text.Lazy" +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.++-- $options+-- You can specify different compilation options by appending a+-- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter+-- to select the corresponding compilation option. For example, the+-- section,+--+--  @(?=~/ [edBlockInsensitive|foo$\/\/\/bar|])@+--+-- will replace a @foo@ suffix of the argument text, of any+-- capitalisation, with a (lower case) @bar@. If you need to specify the+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@+-- quasi quoters, which generate functions that take an 'IsOption' option+-- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace'+-- as apropriate. For example if you have a 'SimpleReOptions' value in+-- @sro@ then+--+--  @(?=~/ [ed_|foo$\/\/\/bar|] sro)@+--+-- will compile the @foo$@ RE according to the value of @sro@. For more+-- on specifying RE options see "Text.RE.REOptions".+ -- $re -- The @[re|.*|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions"), and the -- specialised back-end types and functions.  -- $ed--- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different--- options to the RE compiler (see "Text.RE.REOptions").+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters. +-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.+ -- $instances ----- These modules merely provide the 'IsRegex' instances.+-- These module exports merely provide the 'IsRegex' instances.
Text/RE/TDFA/ByteString.hs view
@@ -20,18 +20,21 @@   -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE   , reSource@@ -47,16 +50,38 @@   , escape   , escapeWith   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA.ByteString+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , ed+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex   ) where  import qualified Data.ByteString               as B@@ -64,10 +89,11 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA.ByteString import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex import           Text.Regex.Base import qualified Text.Regex.TDFA               as TDFA @@ -102,7 +128,7 @@ (*=~/) = flip searchReplaceAll  -- | search and replace the first occurrence only (if any) in the input text--- e.g., to prefix the first string of four hex digits in the imput text,+-- e.g., to prefix the first string of four hex digits in the input text, -- if any, with @0x@: -- --  @(?=~\/ [ed|[0-9A-Fa-f]{4}\/\/\/0x$0|])@@@ -110,22 +136,20 @@ (?=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString (?=~/) = flip searchReplaceFirst --- | the regex-base polymorphic match operator+-- | the `regex-base` polymorphic match operator (=~) :: ( Typeable a         , RegexContext TDFA.Regex B.ByteString a-        , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String         )      => B.ByteString      -> RE      -> a (=~) bs rex = addCaptureNames (reCaptureNames rex) $ match (reRegex rex) bs --- | the regex-base monadic, polymorphic match operator+-- | the `regex-base` monadic, polymorphic match operator (=~~) :: ( Monad m          , Functor m          , Typeable a          , RegexContext TDFA.Regex B.ByteString a-         , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String          )       => B.ByteString       -> RE@@ -142,6 +166,11 @@ -- $tutorial -- We have a regex tutorial at <http://tutorial.regex.uk>. +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.+ -- $options -- You can specify different compilation options by appending a -- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter@@ -152,7 +181,7 @@ -- -- will replace a @foo@ suffix of the argument text, of any -- capitalisation, with a (lower case) @bar@. If you need to specify the--- options dynamically, use the @[re_| ... |]@ and @[red_| ... \/\/\/ ... |]@+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@ -- quasi quoters, which generate functions that take an 'IsOption' option -- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace' -- as apropriate. For example if you have a 'SimpleReOptions' value in@@ -171,3 +200,18 @@ -- $ed -- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions").++-- $ed+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters.++-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.
Text/RE/TDFA/ByteString/Lazy.hs view
@@ -20,18 +20,21 @@   -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE   , reSource@@ -47,16 +50,38 @@   , escape   , escapeWith   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , ed+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex   ) where  import qualified Data.ByteString.Lazy.Char8    as LBS@@ -64,10 +89,11 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex import           Text.Regex.Base import qualified Text.Regex.TDFA               as TDFA @@ -102,7 +128,7 @@ (*=~/) = flip searchReplaceAll  -- | search and replace the first occurrence only (if any) in the input text--- e.g., to prefix the first string of four hex digits in the imput text,+-- e.g., to prefix the first string of four hex digits in the input text, -- if any, with @0x@: -- --  @(?=~\/ [ed|[0-9A-Fa-f]{4}\/\/\/0x$0|])@@@ -110,22 +136,20 @@ (?=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString (?=~/) = flip searchReplaceFirst --- | the regex-base polymorphic match operator+-- | the `regex-base` polymorphic match operator (=~) :: ( Typeable a         , RegexContext TDFA.Regex LBS.ByteString a-        , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String         )      => LBS.ByteString      -> RE      -> a (=~) bs rex = addCaptureNames (reCaptureNames rex) $ match (reRegex rex) bs --- | the regex-base monadic, polymorphic match operator+-- | the `regex-base` monadic, polymorphic match operator (=~~) :: ( Monad m          , Functor m          , Typeable a          , RegexContext TDFA.Regex LBS.ByteString a-         , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String          )       => LBS.ByteString       -> RE@@ -142,6 +166,11 @@ -- $tutorial -- We have a regex tutorial at <http://tutorial.regex.uk>. +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.+ -- $options -- You can specify different compilation options by appending a -- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter@@ -152,7 +181,7 @@ -- -- will replace a @foo@ suffix of the argument text, of any -- capitalisation, with a (lower case) @bar@. If you need to specify the--- options dynamically, use the @[re_| ... |]@ and @[red_| ... \/\/\/ ... |]@+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@ -- quasi quoters, which generate functions that take an 'IsOption' option -- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace' -- as apropriate. For example if you have a 'SimpleReOptions' value in@@ -171,3 +200,18 @@ -- $ed -- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions").++-- $ed+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters.++-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.
Text/RE/TDFA/Sequence.hs view
@@ -20,18 +20,21 @@   -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE   , reSource@@ -47,16 +50,38 @@   , escape   , escapeWith   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA.Sequence+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , ed+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex   ) where  import qualified Data.Sequence                 as S@@ -64,10 +89,11 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA.Sequence import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex import           Text.Regex.Base import qualified Text.Regex.TDFA               as TDFA @@ -102,7 +128,7 @@ (*=~/) = flip searchReplaceAll  -- | search and replace the first occurrence only (if any) in the input text--- e.g., to prefix the first string of four hex digits in the imput text,+-- e.g., to prefix the first string of four hex digits in the input text, -- if any, with @0x@: -- --  @(?=~\/ [ed|[0-9A-Fa-f]{4}\/\/\/0x$0|])@@@ -110,22 +136,20 @@ (?=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char) (?=~/) = flip searchReplaceFirst --- | the regex-base polymorphic match operator+-- | the `regex-base` polymorphic match operator (=~) :: ( Typeable a         , RegexContext TDFA.Regex (S.Seq Char) a-        , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String         )      => (S.Seq Char)      -> RE      -> a (=~) bs rex = addCaptureNames (reCaptureNames rex) $ match (reRegex rex) bs --- | the regex-base monadic, polymorphic match operator+-- | the `regex-base` monadic, polymorphic match operator (=~~) :: ( Monad m          , Functor m          , Typeable a          , RegexContext TDFA.Regex (S.Seq Char) a-         , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String          )       => (S.Seq Char)       -> RE@@ -142,6 +166,11 @@ -- $tutorial -- We have a regex tutorial at <http://tutorial.regex.uk>. +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.+ -- $options -- You can specify different compilation options by appending a -- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter@@ -152,7 +181,7 @@ -- -- will replace a @foo@ suffix of the argument text, of any -- capitalisation, with a (lower case) @bar@. If you need to specify the--- options dynamically, use the @[re_| ... |]@ and @[red_| ... \/\/\/ ... |]@+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@ -- quasi quoters, which generate functions that take an 'IsOption' option -- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace' -- as apropriate. For example if you have a 'SimpleReOptions' value in@@ -171,3 +200,18 @@ -- $ed -- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions").++-- $ed+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters.++-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.
Text/RE/TDFA/String.hs view
@@ -20,18 +20,21 @@   -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE   , reSource@@ -47,16 +50,38 @@   , escape   , escapeWith   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA.String+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , ed+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex   ) where  @@ -64,10 +89,11 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA.String import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex import           Text.Regex.Base import qualified Text.Regex.TDFA               as TDFA @@ -102,7 +128,7 @@ (*=~/) = flip searchReplaceAll  -- | search and replace the first occurrence only (if any) in the input text--- e.g., to prefix the first string of four hex digits in the imput text,+-- e.g., to prefix the first string of four hex digits in the input text, -- if any, with @0x@: -- --  @(?=~\/ [ed|[0-9A-Fa-f]{4}\/\/\/0x$0|])@@@ -110,22 +136,20 @@ (?=~/) :: String -> SearchReplace RE String -> String (?=~/) = flip searchReplaceFirst --- | the regex-base polymorphic match operator+-- | the `regex-base` polymorphic match operator (=~) :: ( Typeable a         , RegexContext TDFA.Regex String a-        , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String         )      => String      -> RE      -> a (=~) bs rex = addCaptureNames (reCaptureNames rex) $ match (reRegex rex) bs --- | the regex-base monadic, polymorphic match operator+-- | the `regex-base` monadic, polymorphic match operator (=~~) :: ( Monad m          , Functor m          , Typeable a          , RegexContext TDFA.Regex String a-         , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String          )       => String       -> RE@@ -142,6 +166,11 @@ -- $tutorial -- We have a regex tutorial at <http://tutorial.regex.uk>. +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.+ -- $options -- You can specify different compilation options by appending a -- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter@@ -152,7 +181,7 @@ -- -- will replace a @foo@ suffix of the argument text, of any -- capitalisation, with a (lower case) @bar@. If you need to specify the--- options dynamically, use the @[re_| ... |]@ and @[red_| ... \/\/\/ ... |]@+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@ -- quasi quoters, which generate functions that take an 'IsOption' option -- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace' -- as apropriate. For example if you have a 'SimpleReOptions' value in@@ -171,3 +200,18 @@ -- $ed -- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions").++-- $ed+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters.++-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.
Text/RE/TDFA/Text.hs view
@@ -20,18 +20,21 @@   -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE   , reSource@@ -47,16 +50,38 @@   , escape   , escapeWith   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA.Text+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , ed+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex   ) where  import qualified Data.Text                     as T@@ -64,10 +89,11 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA.Text import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex import           Text.Regex.Base import qualified Text.Regex.TDFA               as TDFA @@ -102,7 +128,7 @@ (*=~/) = flip searchReplaceAll  -- | search and replace the first occurrence only (if any) in the input text--- e.g., to prefix the first string of four hex digits in the imput text,+-- e.g., to prefix the first string of four hex digits in the input text, -- if any, with @0x@: -- --  @(?=~\/ [ed|[0-9A-Fa-f]{4}\/\/\/0x$0|])@@@ -110,22 +136,20 @@ (?=~/) :: T.Text -> SearchReplace RE T.Text -> T.Text (?=~/) = flip searchReplaceFirst --- | the regex-base polymorphic match operator+-- | the `regex-base` polymorphic match operator (=~) :: ( Typeable a         , RegexContext TDFA.Regex T.Text a-        , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String         )      => T.Text      -> RE      -> a (=~) bs rex = addCaptureNames (reCaptureNames rex) $ match (reRegex rex) bs --- | the regex-base monadic, polymorphic match operator+-- | the `regex-base` monadic, polymorphic match operator (=~~) :: ( Monad m          , Functor m          , Typeable a          , RegexContext TDFA.Regex T.Text a-         , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String          )       => T.Text       -> RE@@ -142,6 +166,11 @@ -- $tutorial -- We have a regex tutorial at <http://tutorial.regex.uk>. +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.+ -- $options -- You can specify different compilation options by appending a -- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter@@ -152,7 +181,7 @@ -- -- will replace a @foo@ suffix of the argument text, of any -- capitalisation, with a (lower case) @bar@. If you need to specify the--- options dynamically, use the @[re_| ... |]@ and @[red_| ... \/\/\/ ... |]@+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@ -- quasi quoters, which generate functions that take an 'IsOption' option -- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace' -- as apropriate. For example if you have a 'SimpleReOptions' value in@@ -171,3 +200,18 @@ -- $ed -- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions").++-- $ed+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters.++-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.
Text/RE/TDFA/Text/Lazy.hs view
@@ -20,18 +20,21 @@   -- * The 'SearchReplace' Operators   , (*=~/)   , (?=~/)-  -- * Matches+  -- * The 'Matches' Type   , Matches   , matchesSource   , allMatches   , anyMatches   , countMatches   , matches-  -- * Match+  -- * The 'Match' Type   , Match   , matchSource   , matched   , matchedText+  -- * The Macros and Parsers+  -- $macros+  , module Text.RE.TestBench.Parsers   -- * The 'RE' Type   , RE   , reSource@@ -47,16 +50,38 @@   , escape   , escapeWith   , escapeREString-  -- * The Classic rexex-base Match Operators+  -- * The Classic regex-base Match Operators   , (=~)   , (=~~)-  -- * IsRegex-  , IsRegex(..)-  -- * The Quasi Quoters and Minor Functions+  -- * The re Quasi Quoters   -- $re-  , module Text.RE.ZeInternals.TDFA+  , re+  , reMultilineSensitive+  , reMultilineInsensitive+  , reBlockSensitive+  , reBlockInsensitive+  , reMS+  , reMI+  , reBS+  , reBI+  , re_+  -- * The Ed Quasi Quoters   -- $ed-  , module Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy+  , edMultilineSensitive+  , edMultilineInsensitive+  , edBlockSensitive+  , edBlockInsensitive+  , ed+  , edMS+  , edMI+  , edBS+  , edBI+  , ed_+  -- * The cp Quasi Quoters+  , cp+  -- * IsRegex+  -- $isregex+  , module Text.RE.Tools.IsRegex   ) where  import qualified Data.Text.Lazy                as TL@@ -64,10 +89,11 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.TestBench.Parsers+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex import           Text.Regex.Base import qualified Text.Regex.TDFA               as TDFA @@ -102,7 +128,7 @@ (*=~/) = flip searchReplaceAll  -- | search and replace the first occurrence only (if any) in the input text--- e.g., to prefix the first string of four hex digits in the imput text,+-- e.g., to prefix the first string of four hex digits in the input text, -- if any, with @0x@: -- --  @(?=~\/ [ed|[0-9A-Fa-f]{4}\/\/\/0x$0|])@@@ -110,22 +136,20 @@ (?=~/) :: TL.Text -> SearchReplace RE TL.Text -> TL.Text (?=~/) = flip searchReplaceFirst --- | the regex-base polymorphic match operator+-- | the `regex-base` polymorphic match operator (=~) :: ( Typeable a         , RegexContext TDFA.Regex TL.Text a-        , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String         )      => TL.Text      -> RE      -> a (=~) bs rex = addCaptureNames (reCaptureNames rex) $ match (reRegex rex) bs --- | the regex-base monadic, polymorphic match operator+-- | the `regex-base` monadic, polymorphic match operator (=~~) :: ( Monad m          , Functor m          , Typeable a          , RegexContext TDFA.Regex TL.Text a-         , RegexMaker   TDFA.Regex TDFA.CompOption TDFA.ExecOption String          )       => TL.Text       -> RE@@ -142,6 +166,11 @@ -- $tutorial -- We have a regex tutorial at <http://tutorial.regex.uk>. +-- $macros+-- There are a number of RE macros and corresponding Haskell parsers+-- for parsing the matched text into appropriate Haskell types. See+-- the [Macros Tables](http://regex.uk/macros) for details.+ -- $options -- You can specify different compilation options by appending a -- to the name of an [re| ... |] or [ed| ... \/\/\/ ... |] quasi quoter@@ -152,7 +181,7 @@ -- -- will replace a @foo@ suffix of the argument text, of any -- capitalisation, with a (lower case) @bar@. If you need to specify the--- options dynamically, use the @[re_| ... |]@ and @[red_| ... \/\/\/ ... |]@+-- options dynamically, use the @[re_| ... |]@ and @[ed_| ... \/\/\/ ... |]@ -- quasi quoters, which generate functions that take an 'IsOption' option -- (e.g., a 'SimpleReOptions' value) and yields a 'RE' or 'SearchReplace' -- as apropriate. For example if you have a 'SimpleReOptions' value in@@ -171,3 +200,18 @@ -- $ed -- The @[ed|.*\/\/\/foo|]@ quasi quoters, with variants for specifing different -- options to the RE compiler (see "Text.RE.REOptions").++-- $ed+-- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for example,+--+--  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@+--+-- represents a @SearchReplace@ that will convert a YYYY-MM-DD format date+-- into a DD\/MM\/YYYY format date.+--+-- The only difference betweem these quasi quoters is the RE options that are set,+-- using the same conventions as the @[re| ... |]@ quasi quoters.++-- $isregex+-- The 'IsRegex' class is used to abstact over the different regex back ends and+-- the text types they work with -- see "Text.RE.Tools.IsRegex" for details.
Text/RE/TestBench.hs view
@@ -3,6 +3,9 @@  module Text.RE.TestBench   (+  -- * The Test Bench Tutorial+  -- $tutorial+   -- * The Test Bench     MacroEnv   , MacroDescriptor(..)@@ -19,34 +22,23 @@   , formatMacroSummary   , formatMacroSources   , formatMacroSource+  , mdRegexSource   -- ** Formatting Macros   , testMacroEnv   , runTests   , runTests'-  -- * Parsing-  , parseInteger-  , parseHex-  , parseDouble-  , parseString-  , parseSimpleString-  , parseDate-  , parseSlashesDate-  , parseTimeOfDay-  , parseTimeZone-  , parseDateTime-  , parseDateTime8601-  , parseDateTimeCLF-  , parseShortMonth-  , shortMonthArray-  , IPV4Address-  , parseIPv4Address-  , Severity(..)-  , parseSeverity-  , severityKeywords-  -- * Text.RE-  , module Text.RE+  -- * The Parsers+  , module Text.RE.TestBench.Parsers+  -- * The Match Type+  , Match   ) where -import           Text.RE+import           Text.RE.TestBench.Parsers import           Text.RE.ZeInternals.TestBench-import           Text.RE.ZeInternals.TestBench.Parsers+import           Text.RE.ZeInternals.Types.Match++-- $tutorial+-- This API module provides a test bench for developing, documenting and+-- testing regex RE macros.+--+-- See the tutorials at http://re-tutorial-testbench.regex.uk
+ Text/RE/TestBench/Parsers.hs view
@@ -0,0 +1,23 @@+module Text.RE.TestBench.Parsers+  ( parseInteger+  , parseHex+  , parseDouble+  , parseString+  , parseSimpleString+  , parseDate+  , parseSlashesDate+  , parseTimeOfDay+  , parseTimeZone+  , parseDateTime+  , parseDateTime8601+  , parseDateTimeCLF+  , parseShortMonth+  , shortMonthArray+  , IPV4Address+  , parseIPv4Address+  , Severity(..)+  , parseSeverity+  , severityKeywords+  ) where++import           Text.RE.ZeInternals.TestBench.Parsers
Text/RE/Tools.hs view
@@ -1,7 +1,9 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+ module Text.RE.Tools   (-  -- * The Tools-  -- $tools+  -- * The Tools Tutorial+  -- $tutorial    -- * Sed     sed@@ -25,6 +27,9 @@   , findMatches_'   -- * IsRegex   , IsRegex(..)+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst   -- * Edit   , Edits(..)   , Edit(..)@@ -37,13 +42,19 @@   , firstLine   , getLineNo   , lineNo-  -- * Text.RE-  , module Text.RE+  -- * Replace+  , module Text.RE.Replace   ) where -import           Text.RE+import           Text.RE.Replace import           Text.RE.Tools.Edit import           Text.RE.Tools.Find import           Text.RE.Tools.Grep import           Text.RE.Tools.Lex import           Text.RE.Tools.Sed++-- $tutorial+-- This API module provides some familiar RE tools on top of the core+-- package functions and types.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk
Text/RE/Tools/Edit.lhs view
@@ -10,52 +10,63 @@ module Text.RE.Tools.Edit   (   -- * Editing+  -- $tutorial     Edits(..)   , Edit(..)-  , SearchReplace(..)   , LineEdit(..)   , applyEdits   , applyEdit   , applyLineEdit+  -- * IsRegex+  , IsRegex(..)+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst   -- * LineNo   , LineNo(..)   , firstLine   , getLineNo   , lineNo-  -- * Text.RE-  , module Text.RE+  -- * Replace+  , module Text.RE.Replace   ) where  import           Data.Maybe import           Prelude.Compat-import           Text.RE import           Text.RE.Replace-import           Text.RE.ZeInternals.Types.IsRegex+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.Types.LineNo+\end{code}  +\begin{code} -- | an 'Edits' script will, for each line in the file, either perform -- the action selected by the first RE in the list, or perform all of the -- actions on line, arranged as a pipeline data Edits m re s-  = Select ![Edit m re s]-  | Pipe   ![Edit m re s]+  = Select ![Edit m re s]   -- ^ for each line select the first @Edit@ to match each line and edit the line with it+  | Pipe   ![Edit m re s]   -- ^ for each line apply every edit that matches in turn to the line  -- | each Edit action specifies how the match should be processed data Edit m re s   = Template !(SearchReplace re s)+        -- ^ replace the match with this template text, substituting ${capture} as apropriate   | Function !re REContext !(LineNo->Match s->RELocation->Capture s->m (Maybe s))+        -- ^ use this function to replace the 'REContext' specified captures in each line matched   | LineEdit !re           !(LineNo->Matches s->m (LineEdit s))+        -- ^ use this function to edit each line matched  -- | a LineEdit is the most general action thar can be performed on a line -- and is the only means of deleting a line data LineEdit s-  = NoEdit-  | ReplaceWith !s-  | Delete+  = NoEdit                  -- ^ do not edit this line but leave as is+  | ReplaceWith !s          -- ^ replace the line with this text (terminating newline should not be included)+  | Delete                  -- ^ delete the this line altogether   deriving (Functor,Show)+\end{code}  +\begin{code} -- | apply an 'Edit' script to a single line applyEdits :: (IsRegex re s,Monad m,Functor m)            => LineNo@@ -122,4 +133,12 @@     f edit act = do       s <- act       fromMaybe s <$> applyEdit id lno edit s+\end{code}++\begin{code}+-- $tutorial+-- The Edit toolkit looks for REs that match a text and runs the+-- associated actions.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk \end{code}
Text/RE/Tools/Find.lhs view
@@ -7,19 +7,29 @@ #endif  module Text.RE.Tools.Find-  ( FindMethods(..)+  (+  -- * Find+  -- $tutorial+    FindMethods(..)   , findMatches_   , findMatches_'-  -- * Text.RE-  , module Text.RE+  -- * IsRegex+  , IsRegex(..)+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst+  -- * Replace+  , module Text.RE.Replace   ) where  import qualified Data.List                      as L import           Prelude.Compat-import           Text.RE import           Text.RE.Replace+import           Text.RE.Tools.IsRegex+\end{code}  +\begin{code} -- | as we don't want the @directory@ and FilePath dependencies -- we will abstract the three calls we need into this record type data FindMethods s =@@ -31,8 +41,10 @@                                               -- System.Directory     , combineDM            :: s -> s -> s     -- ^ </> from System.FilePath     }+\end{code}  +\begin{code} -- | recursively list all files whose filename matches given RE, -- sorting the list into ascending order; if the argument path has a -- trailing '/' then it will be removed@@ -68,4 +80,12 @@   where     abs_path fn_ = fp `combineDM` fn_     ordinary fn_ = not $ fn_ `elem` [packR ".",packR ".."]+\end{code}++\begin{code}+-- $tutorial+-- The Find toolkit traverses directory trees invoking actions for each+-- file that matches a RE.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk \end{code}
Text/RE/Tools/Grep.lhs view
@@ -5,7 +5,10 @@ {-# LANGUAGE CPP                        #-}  module Text.RE.Tools.Grep-  ( grep+  (+  -- Grep+  -- $tutorial+    grep   , Verbosity(..)   , Line(..)   , grepLines@@ -16,33 +19,42 @@   , linesMatched   -- * IsRegex   , IsRegex(..)+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst   -- * LineNo   , LineNo(..)   , firstLine   , getLineNo   , lineNo-  -- * Text.RE-  , module Text.RE+  -- * Replace+  , module Text.RE.Replace   ) where  import qualified Data.ByteString.Lazy.Char8               as LBS import           Prelude.Compat import           Text.Printf-import           Text.RE-import           Text.RE.ZeInternals.Replace+import           Text.RE.Replace+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.Types.LineNo+\end{code}  +\begin{code} -- | operates a bit like classic @grep@ printing out the lines matched grep :: IsRegex re LBS.ByteString => Verbosity -> re -> FilePath -> IO () grep v rex fp = grepLines rex fp >>= putStr . report v+\end{code} +\begin{code} -- | specifies whether to return the linss matched or missed data Verbosity   = LinesMatched   | LinesNotMatched   deriving (Show,Eq,Ord)+\end{code} +\begin{code} -- | 'grepLines' returns a 'Line' for each line in the file, listing all -- of the 'Matches' for that line data Line s =@@ -51,7 +63,9 @@     , getLineMatches :: Matches s -- ^ all the 'Matches' of the RE on this line     }   deriving (Show)+\end{code} +\begin{code} -- | returns a 'Line' for each line in the file, enumerating all of the -- matches for that line grepLines :: IsRegex re LBS.ByteString@@ -59,14 +73,18 @@           -> FilePath           -> IO [Line LBS.ByteString] grepLines rex fp = grepFilter rex <$> LBS.readFile fp+\end{code} +\begin{code} -- | returns a 'Line' for each line in the argument text, enumerating -- all of the matches for that line grepFilter :: IsRegex re s => re -> s -> [Line s] grepFilter rex = grepWithScript [(rex,mk)] . linesR   where     mk i mtchs = Just $ Line i mtchs+\end{code} +\begin{code} -- | a GrepScript lists RE-action associations, with the first RE to match -- a line selecting the action to be executed on each line in the file type GrepScript re s t = [(re,LineNo -> Matches s -> Maybe t)]@@ -99,4 +117,11 @@     f = case v of       LinesMatched    -> id       LinesNotMatched -> not+\end{code}++\begin{code}+-- $tutorial+-- The Grep toolkit matches REs againt each line of a text.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk \end{code}
+ Text/RE/Tools/IsRegex.hs view
@@ -0,0 +1,17 @@+module Text.RE.Tools.IsRegex+  (+  -- * IsRegex+  -- $tutorial+    IsRegex(..)+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst+  ) where++import Text.RE.ZeInternals.Types.IsRegex++-- $tutorial+-- The @IsRegex@ class abstracts over each regex back end and the+-- text types they support allowing general regex tools to constructed.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk
Text/RE/Tools/Lex.hs view
@@ -1,11 +1,24 @@ module Text.RE.Tools.Lex-  ( alex+  (+  -- * Find+  -- $tutorial+    alex   , alex'   -- * IsRegex   , IsRegex(..)-  -- * Text.RE-  , module Text.RE+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst+  -- * Replace+  , module Text.RE.Replace   ) where -import           Text.RE+import           Text.RE.Replace+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.Tools.Lex++-- $tutorial+-- The Lex toolkit uses REs to identify tokens in a file, returning a+-- list of tokens.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk
Text/RE/Tools/Sed.lhs view
@@ -8,10 +8,11 @@ #endif  module Text.RE.Tools.Sed-  ( sed+  (+  -- * Sed+  -- $tutorial+    sed   , sed'-  -- * IsRegex-  , IsRegex(..)   -- * Edit   , Edits(..)   , Edit(..)@@ -19,22 +20,28 @@   , applyEdits   , applyEdit   , applyLineEdit+  -- * IsRegex+  , IsRegex(..)+  , SearchReplace(..)+  , searchReplaceAll+  , searchReplaceFirst   -- * LineNo   , LineNo(..)   , firstLine   , getLineNo   , lineNo-  -- * Text.RE-  , module Text.RE+  -- * Replace+  , module Text.RE.Replace   ) where  import qualified Data.ByteString.Lazy.Char8               as LBS import           Prelude.Compat-import           Text.RE import           Text.RE.Replace import           Text.RE.Tools.Edit+\end{code}  +\begin{code} -- | read a file, apply an 'Edits' script to each line it and -- write the file out again; "-" is used to indicate standard input -- standard output as appropriate@@ -43,25 +50,31 @@     -> FilePath     -> FilePath     -> IO ()-sed as i_fp o_fp = do+sed escr i_fp o_fp = do   lns  <- LBS.lines <$> read_file i_fp   lns' <- sequence-    [ applyEdits lno as s+    [ applyEdits lno escr s         | (lno,s)<-zip [firstLine..] lns         ]   write_file o_fp $ LBS.concat lns'+\end{code} ++\begin{code} -- | apply an 'Edits' script to each line of the argument text sed' :: (IsRegex re a,Monad m,Functor m)      => Edits m re a      -> a      -> m a-sed' as t = do+sed' escr t = do   mconcat <$> sequence-    [ applyEdits lno as s+    [ applyEdits lno escr s         | (lno,s)<-zip [firstLine..] $ linesR t         ]+\end{code} ++\begin{code} read_file :: FilePath -> IO LBS.ByteString read_file "-" = LBS.getContents read_file fp  = LBS.readFile fp@@ -69,4 +82,14 @@ write_file :: FilePath -> LBS.ByteString ->IO () write_file "-" = LBS.putStr write_file fp  = LBS.writeFile fp+\end{code}+++\begin{code}+-- $tutorial+-- The Sed toolkit applyies @Edits@ scripts to each line+-- of a text, running the actions and adjusting each line+-- accordingly.+--+-- See the Regex Tools tutorial at http://re-tutorial-tools.regex.uk \end{code}
Text/RE/ZeInternals.hs view
@@ -2,14 +2,57 @@   (   -- * The regex Internal Modules   -- $internals++  -- * Text.RE.ZeInternals.AddCaptureNames+    addCaptureNames+  , addCaptureNamesToMatches+  , addCaptureNamesToMatch+  -- * Text.RE.ZeInternals.EscapeREString+  , escapeREString+  -- * Text.RE.ZeInternals.NamedCaptures+  , cp+  , extractNamedCaptures+  , idFormatTokenREOptions+  , Token+  , validToken+  , formatTokens+  , formatTokens'+  , formatTokens0+  , scan+  -- * Text.RE.ZeInternals.Replace+  , expandMacros+  -- * Text.RE.ZeInternals.PreludeMacros+  , PreludeMacro(..)+  , presentPreludeMacro+  , preludeMacros+  , preludeMacroTable+  , preludeMacroSummary+  , preludeMacroSources+  , preludeMacroSource+  , preludeMacroEnv+  -- * Text.RE.ZeInternals.SearchReplace+  , unsafeCompileSearchReplace_+  , compileSearchReplace_+  , compileSearchAndReplace_+  -- * Text.RE.ZeInternals.QQ+  , QQFailure(..)+  , qq0+  -- * Text.RE.ZeInternals.TestBench+  , mkTDFA+  , mkPCRE+  , badMacros   ) where +import           Text.RE.ZeInternals.AddCaptureNames+import           Text.RE.ZeInternals.EscapeREString+import           Text.RE.ZeInternals.NamedCaptures+import           Text.RE.ZeInternals.PreludeMacros+import           Text.RE.ZeInternals.QQ+import           Text.RE.ZeInternals.Replace+import           Text.RE.ZeInternals.SearchReplace+import           Text.RE.ZeInternals.TestBench+ -- $internals--- The modules under 'ZeInternals' do not belong to the /official/ regex--- API, though their contents will so belong if they are listed in the outside--- `Text.RE` modules. This doesn't mean that they cannot be used but be aware--- that they may not be as stable or as well documented as the official API--- modules.------ If you do notice anything in here that you think we have missed that--- should be listed in the official API then please drop us a line.+-- This module contains just what the test suite (re-tests) in regex-examples+-- needs from the package internals to do its job and the ZeInternals+-- types and functions needed by the regex-with-pcre package
Text/RE/ZeInternals/NamedCaptures.lhs view
@@ -36,7 +36,9 @@ import           Text.Regex.TDFA  --- | quasi quoter for CaptureID ([cp|0|],[cp|y|], etc.)+-- | quasi quoter for CaptureID: @[cp|0|]@, @[cp|0|]@, etc.,+-- indexing captures by classic positional numbers, and @[cp|foo|]@,+-- etc., referencing a named capture @[re| ... ${foo}( ... ) ... |]@. cp :: QuasiQuoter cp =     (qq0 "cp")@@ -115,7 +117,7 @@ \begin{code} -- | scan a RE string into a list of RE Token scan :: String -> [Token]-scan = alex' match al oops+scan = alex' match al $ oops "top"   where     al :: [(Regex,Match String->Maybe Token)]     al =@@ -131,11 +133,11 @@     x_1     = captureText $ IsCaptureOrdinal $ CaptureOrdinal 1      s2c [c] = c-    s2c _   = error "scan:s2c:internal error"+    s2c _   = oops "s2c"      mk s f  = (either error id $ makeRegexM s,Just . f) -    oops    = error "reScanner"+    oops  m = error $ "NamedCaptures.scan: " ++ m \end{code}  
Text/RE/ZeInternals/PreludeMacros.hs view
@@ -242,7 +242,7 @@     , macroCounterSamples = counter_samples     , macroTestResults    = []     , macroParser          = Just "parseInteger"-    , macroDescription     = "a decimal integer"+    , macroDescription     = "a decimal natural number"     }   where     samples :: [(String,Double)]@@ -315,7 +315,7 @@       , macroCounterSamples = counter_samples       , macroTestResults    = []       , macroParser          = Just "parseSimpleString"-      , macroDescription     = "a decimal integer"+      , macroDescription     = "a simple quoted string"       }   where     samples :: [(String,String)]
Text/RE/ZeInternals/SearchReplace/TDFA/ByteString.hs view
@@ -7,17 +7,15 @@ #endif  module Text.RE.ZeInternals.SearchReplace.TDFA.ByteString-  ( -- * The ed Quasi Quoters-    -- $qq-    ed-  , edMS-  , edMI-  , edBS-  , edBI+  ( ed   , edMultilineSensitive   , edMultilineInsensitive   , edBlockSensitive   , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI   , ed_   ) where @@ -25,47 +23,61 @@ import           Language.Haskell.TH import           Language.Haskell.TH.Quote import           Text.RE.REOptions+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.SearchReplace.TDFAEdPrime import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.SearchReplace +-- | @[ed| ... \/\/\/ ... |]@, is equivalent to @[edMultilineSensitive| ... \/\/\/ ... |]@,+-- compiling a case-sensitive, multi-line 'SearchReplace'+ed                      :: QuasiQuoter+ed                       = ed' sr_cast $ Just minBound -ed-  , edMS-  , edMI-  , edBS-  , edBI-  , edMultilineSensitive-  , edMultilineInsensitive-  , edBlockSensitive-  , edBlockInsensitive-  , ed_ :: QuasiQuoter+-- | @[edMultilineSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, multi-line 'SearchReplace' template+edMultilineSensitive    :: QuasiQuoter+edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive -ed                       = ed' sr_cast $ Just minBound+-- | @[edMultilineInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, multi-line 'SearchReplace' template+edMultilineInsensitive  :: QuasiQuoter+edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive++-- | @[edBlockSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, non-multi-line 'SearchReplace' template+edBlockSensitive        :: QuasiQuoter+edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive++-- | @[edBlockInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, non-multi-line 'SearchReplace' template+edBlockInsensitive      :: QuasiQuoter+edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[edMS| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineSensitive| ... \/\/\/ ... |]@+edMS                    :: QuasiQuoter edMS                     = edMultilineSensitive++-- | @[edMI| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineInsensitive| ... \/\/\/ ... |]@+edMI                    :: QuasiQuoter edMI                     = edMultilineInsensitive++-- | @[edBS| ... \/\/\/ ... |]@ is a shorthand for @[edBlockSensitive| ... \/\/\/ ... |]@+edBS                    :: QuasiQuoter edBS                     = edBlockSensitive++-- | @[edBI| ... \/\/\/ ... |]@ is a shorthand for @[edBlockInsensitive| ... \/\/\/ ... |]@+edBI                    :: QuasiQuoter edBI                     = edBlockInsensitive-edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive-edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive-edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive-edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[ed_| ... \/\/\/ ... |]@ compiles a 'SearchReplace' template to produce a function that+-- takes the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- 'SearchReplace' template compiled with those options. For example,+--+--   @s *=~/ [ed_|${hex}([0-9a-f]+)\/\/\/0x${hex}|] MultilineInsensitive@+--+-- prefixes the hexadecimal digit strings in s with @0x@, allowing for+-- upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[edMultilineInsensitive|[0-9a-f]+|]@).+ed_                     :: QuasiQuoter ed_                      = ed' fn_cast   Nothing  sr_cast :: Q Exp sr_cast = [|\x -> x :: SearchReplace RE B.ByteString|]  fn_cast :: Q Exp-fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE B.ByteString|]---- $qq--- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for exaple,------  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@------ represents a @SearchReplace@ that will convert a YYYY-MM-DD format date--- into a DD\/MM\/YYYY format date.------ The only difference betweem these quasi quoters is the RE options that are set:--- see the "Text.RE.REOptions" documentation for details.---+fn_cast = [|\f x -> f x :: SearchReplace RE B.ByteString|]
Text/RE/ZeInternals/SearchReplace/TDFA/ByteString/Lazy.hs view
@@ -7,17 +7,15 @@ #endif  module Text.RE.ZeInternals.SearchReplace.TDFA.ByteString.Lazy-  ( -- * The ed Quasi Quoters-    -- $qq-    ed-  , edMS-  , edMI-  , edBS-  , edBI+  ( ed   , edMultilineSensitive   , edMultilineInsensitive   , edBlockSensitive   , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI   , ed_   ) where @@ -25,47 +23,61 @@ import           Language.Haskell.TH import           Language.Haskell.TH.Quote import           Text.RE.REOptions+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.SearchReplace.TDFAEdPrime import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.SearchReplace +-- | @[ed| ... \/\/\/ ... |]@, is equivalent to @[edMultilineSensitive| ... \/\/\/ ... |]@,+-- compiling a case-sensitive, multi-line 'SearchReplace'+ed                      :: QuasiQuoter+ed                       = ed' sr_cast $ Just minBound -ed-  , edMS-  , edMI-  , edBS-  , edBI-  , edMultilineSensitive-  , edMultilineInsensitive-  , edBlockSensitive-  , edBlockInsensitive-  , ed_ :: QuasiQuoter+-- | @[edMultilineSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, multi-line 'SearchReplace' template+edMultilineSensitive    :: QuasiQuoter+edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive -ed                       = ed' sr_cast $ Just minBound+-- | @[edMultilineInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, multi-line 'SearchReplace' template+edMultilineInsensitive  :: QuasiQuoter+edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive++-- | @[edBlockSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, non-multi-line 'SearchReplace' template+edBlockSensitive        :: QuasiQuoter+edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive++-- | @[edBlockInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, non-multi-line 'SearchReplace' template+edBlockInsensitive      :: QuasiQuoter+edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[edMS| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineSensitive| ... \/\/\/ ... |]@+edMS                    :: QuasiQuoter edMS                     = edMultilineSensitive++-- | @[edMI| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineInsensitive| ... \/\/\/ ... |]@+edMI                    :: QuasiQuoter edMI                     = edMultilineInsensitive++-- | @[edBS| ... \/\/\/ ... |]@ is a shorthand for @[edBlockSensitive| ... \/\/\/ ... |]@+edBS                    :: QuasiQuoter edBS                     = edBlockSensitive++-- | @[edBI| ... \/\/\/ ... |]@ is a shorthand for @[edBlockInsensitive| ... \/\/\/ ... |]@+edBI                    :: QuasiQuoter edBI                     = edBlockInsensitive-edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive-edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive-edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive-edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[ed_| ... \/\/\/ ... |]@ compiles a 'SearchReplace' template to produce a function that+-- takes the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- 'SearchReplace' template compiled with those options. For example,+--+--   @s *=~/ [ed_|${hex}([0-9a-f]+)\/\/\/0x${hex}|] MultilineInsensitive@+--+-- prefixes the hexadecimal digit strings in s with @0x@, allowing for+-- upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[edMultilineInsensitive|[0-9a-f]+|]@).+ed_                     :: QuasiQuoter ed_                      = ed' fn_cast   Nothing  sr_cast :: Q Exp sr_cast = [|\x -> x :: SearchReplace RE LBS.ByteString|]  fn_cast :: Q Exp-fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE LBS.ByteString|]---- $qq--- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for exaple,------  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@------ represents a @SearchReplace@ that will convert a YYYY-MM-DD format date--- into a DD\/MM\/YYYY format date.------ The only difference betweem these quasi quoters is the RE options that are set:--- see the "Text.RE.REOptions" documentation for details.---+fn_cast = [|\f x -> f x :: SearchReplace RE LBS.ByteString|]
Text/RE/ZeInternals/SearchReplace/TDFA/Sequence.hs view
@@ -7,17 +7,15 @@ #endif  module Text.RE.ZeInternals.SearchReplace.TDFA.Sequence-  ( -- * The ed Quasi Quoters-    -- $qq-    ed-  , edMS-  , edMI-  , edBS-  , edBI+  ( ed   , edMultilineSensitive   , edMultilineInsensitive   , edBlockSensitive   , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI   , ed_   ) where @@ -25,47 +23,61 @@ import           Language.Haskell.TH import           Language.Haskell.TH.Quote import           Text.RE.REOptions+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.SearchReplace.TDFAEdPrime import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.SearchReplace +-- | @[ed| ... \/\/\/ ... |]@, is equivalent to @[edMultilineSensitive| ... \/\/\/ ... |]@,+-- compiling a case-sensitive, multi-line 'SearchReplace'+ed                      :: QuasiQuoter+ed                       = ed' sr_cast $ Just minBound -ed-  , edMS-  , edMI-  , edBS-  , edBI-  , edMultilineSensitive-  , edMultilineInsensitive-  , edBlockSensitive-  , edBlockInsensitive-  , ed_ :: QuasiQuoter+-- | @[edMultilineSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, multi-line 'SearchReplace' template+edMultilineSensitive    :: QuasiQuoter+edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive -ed                       = ed' sr_cast $ Just minBound+-- | @[edMultilineInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, multi-line 'SearchReplace' template+edMultilineInsensitive  :: QuasiQuoter+edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive++-- | @[edBlockSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, non-multi-line 'SearchReplace' template+edBlockSensitive        :: QuasiQuoter+edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive++-- | @[edBlockInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, non-multi-line 'SearchReplace' template+edBlockInsensitive      :: QuasiQuoter+edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[edMS| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineSensitive| ... \/\/\/ ... |]@+edMS                    :: QuasiQuoter edMS                     = edMultilineSensitive++-- | @[edMI| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineInsensitive| ... \/\/\/ ... |]@+edMI                    :: QuasiQuoter edMI                     = edMultilineInsensitive++-- | @[edBS| ... \/\/\/ ... |]@ is a shorthand for @[edBlockSensitive| ... \/\/\/ ... |]@+edBS                    :: QuasiQuoter edBS                     = edBlockSensitive++-- | @[edBI| ... \/\/\/ ... |]@ is a shorthand for @[edBlockInsensitive| ... \/\/\/ ... |]@+edBI                    :: QuasiQuoter edBI                     = edBlockInsensitive-edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive-edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive-edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive-edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[ed_| ... \/\/\/ ... |]@ compiles a 'SearchReplace' template to produce a function that+-- takes the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- 'SearchReplace' template compiled with those options. For example,+--+--   @s *=~/ [ed_|${hex}([0-9a-f]+)\/\/\/0x${hex}|] MultilineInsensitive@+--+-- prefixes the hexadecimal digit strings in s with @0x@, allowing for+-- upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[edMultilineInsensitive|[0-9a-f]+|]@).+ed_                     :: QuasiQuoter ed_                      = ed' fn_cast   Nothing  sr_cast :: Q Exp sr_cast = [|\x -> x :: SearchReplace RE (S.Seq Char)|]  fn_cast :: Q Exp-fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE (S.Seq Char)|]---- $qq--- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for exaple,------  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@------ represents a @SearchReplace@ that will convert a YYYY-MM-DD format date--- into a DD\/MM\/YYYY format date.------ The only difference betweem these quasi quoters is the RE options that are set:--- see the "Text.RE.REOptions" documentation for details.---+fn_cast = [|\f x -> f x :: SearchReplace RE (S.Seq Char)|]
Text/RE/ZeInternals/SearchReplace/TDFA/String.hs view
@@ -7,17 +7,15 @@ #endif  module Text.RE.ZeInternals.SearchReplace.TDFA.String-  ( -- * The ed Quasi Quoters-    -- $qq-    ed-  , edMS-  , edMI-  , edBS-  , edBI+  ( ed   , edMultilineSensitive   , edMultilineInsensitive   , edBlockSensitive   , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI   , ed_   ) where @@ -25,47 +23,61 @@ import           Language.Haskell.TH import           Language.Haskell.TH.Quote import           Text.RE.REOptions+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.SearchReplace.TDFAEdPrime import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.SearchReplace +-- | @[ed| ... \/\/\/ ... |]@, is equivalent to @[edMultilineSensitive| ... \/\/\/ ... |]@,+-- compiling a case-sensitive, multi-line 'SearchReplace'+ed                      :: QuasiQuoter+ed                       = ed' sr_cast $ Just minBound -ed-  , edMS-  , edMI-  , edBS-  , edBI-  , edMultilineSensitive-  , edMultilineInsensitive-  , edBlockSensitive-  , edBlockInsensitive-  , ed_ :: QuasiQuoter+-- | @[edMultilineSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, multi-line 'SearchReplace' template+edMultilineSensitive    :: QuasiQuoter+edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive -ed                       = ed' sr_cast $ Just minBound+-- | @[edMultilineInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, multi-line 'SearchReplace' template+edMultilineInsensitive  :: QuasiQuoter+edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive++-- | @[edBlockSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, non-multi-line 'SearchReplace' template+edBlockSensitive        :: QuasiQuoter+edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive++-- | @[edBlockInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, non-multi-line 'SearchReplace' template+edBlockInsensitive      :: QuasiQuoter+edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[edMS| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineSensitive| ... \/\/\/ ... |]@+edMS                    :: QuasiQuoter edMS                     = edMultilineSensitive++-- | @[edMI| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineInsensitive| ... \/\/\/ ... |]@+edMI                    :: QuasiQuoter edMI                     = edMultilineInsensitive++-- | @[edBS| ... \/\/\/ ... |]@ is a shorthand for @[edBlockSensitive| ... \/\/\/ ... |]@+edBS                    :: QuasiQuoter edBS                     = edBlockSensitive++-- | @[edBI| ... \/\/\/ ... |]@ is a shorthand for @[edBlockInsensitive| ... \/\/\/ ... |]@+edBI                    :: QuasiQuoter edBI                     = edBlockInsensitive-edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive-edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive-edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive-edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[ed_| ... \/\/\/ ... |]@ compiles a 'SearchReplace' template to produce a function that+-- takes the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- 'SearchReplace' template compiled with those options. For example,+--+--   @s *=~/ [ed_|${hex}([0-9a-f]+)\/\/\/0x${hex}|] MultilineInsensitive@+--+-- prefixes the hexadecimal digit strings in s with @0x@, allowing for+-- upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[edMultilineInsensitive|[0-9a-f]+|]@).+ed_                     :: QuasiQuoter ed_                      = ed' fn_cast   Nothing  sr_cast :: Q Exp sr_cast = [|\x -> x :: SearchReplace RE String|]  fn_cast :: Q Exp-fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE String|]---- $qq--- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for exaple,------  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@------ represents a @SearchReplace@ that will convert a YYYY-MM-DD format date--- into a DD\/MM\/YYYY format date.------ The only difference betweem these quasi quoters is the RE options that are set:--- see the "Text.RE.REOptions" documentation for details.---+fn_cast = [|\f x -> f x :: SearchReplace RE String|]
Text/RE/ZeInternals/SearchReplace/TDFA/Text.hs view
@@ -7,17 +7,15 @@ #endif  module Text.RE.ZeInternals.SearchReplace.TDFA.Text-  ( -- * The ed Quasi Quoters-    -- $qq-    ed-  , edMS-  , edMI-  , edBS-  , edBI+  ( ed   , edMultilineSensitive   , edMultilineInsensitive   , edBlockSensitive   , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI   , ed_   ) where @@ -25,47 +23,61 @@ import           Language.Haskell.TH import           Language.Haskell.TH.Quote import           Text.RE.REOptions+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.SearchReplace.TDFAEdPrime import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.SearchReplace +-- | @[ed| ... \/\/\/ ... |]@, is equivalent to @[edMultilineSensitive| ... \/\/\/ ... |]@,+-- compiling a case-sensitive, multi-line 'SearchReplace'+ed                      :: QuasiQuoter+ed                       = ed' sr_cast $ Just minBound -ed-  , edMS-  , edMI-  , edBS-  , edBI-  , edMultilineSensitive-  , edMultilineInsensitive-  , edBlockSensitive-  , edBlockInsensitive-  , ed_ :: QuasiQuoter+-- | @[edMultilineSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, multi-line 'SearchReplace' template+edMultilineSensitive    :: QuasiQuoter+edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive -ed                       = ed' sr_cast $ Just minBound+-- | @[edMultilineInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, multi-line 'SearchReplace' template+edMultilineInsensitive  :: QuasiQuoter+edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive++-- | @[edBlockSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, non-multi-line 'SearchReplace' template+edBlockSensitive        :: QuasiQuoter+edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive++-- | @[edBlockInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, non-multi-line 'SearchReplace' template+edBlockInsensitive      :: QuasiQuoter+edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[edMS| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineSensitive| ... \/\/\/ ... |]@+edMS                    :: QuasiQuoter edMS                     = edMultilineSensitive++-- | @[edMI| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineInsensitive| ... \/\/\/ ... |]@+edMI                    :: QuasiQuoter edMI                     = edMultilineInsensitive++-- | @[edBS| ... \/\/\/ ... |]@ is a shorthand for @[edBlockSensitive| ... \/\/\/ ... |]@+edBS                    :: QuasiQuoter edBS                     = edBlockSensitive++-- | @[edBI| ... \/\/\/ ... |]@ is a shorthand for @[edBlockInsensitive| ... \/\/\/ ... |]@+edBI                    :: QuasiQuoter edBI                     = edBlockInsensitive-edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive-edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive-edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive-edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[ed_| ... \/\/\/ ... |]@ compiles a 'SearchReplace' template to produce a function that+-- takes the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- 'SearchReplace' template compiled with those options. For example,+--+--   @s *=~/ [ed_|${hex}([0-9a-f]+)\/\/\/0x${hex}|] MultilineInsensitive@+--+-- prefixes the hexadecimal digit strings in s with @0x@, allowing for+-- upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[edMultilineInsensitive|[0-9a-f]+|]@).+ed_                     :: QuasiQuoter ed_                      = ed' fn_cast   Nothing  sr_cast :: Q Exp sr_cast = [|\x -> x :: SearchReplace RE T.Text|]  fn_cast :: Q Exp-fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE T.Text|]---- $qq--- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for exaple,------  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@------ represents a @SearchReplace@ that will convert a YYYY-MM-DD format date--- into a DD\/MM\/YYYY format date.------ The only difference betweem these quasi quoters is the RE options that are set:--- see the "Text.RE.REOptions" documentation for details.---+fn_cast = [|\f x -> f x :: SearchReplace RE T.Text|]
Text/RE/ZeInternals/SearchReplace/TDFA/Text/Lazy.hs view
@@ -7,17 +7,15 @@ #endif  module Text.RE.ZeInternals.SearchReplace.TDFA.Text.Lazy-  ( -- * The ed Quasi Quoters-    -- $qq-    ed-  , edMS-  , edMI-  , edBS-  , edBI+  ( ed   , edMultilineSensitive   , edMultilineInsensitive   , edBlockSensitive   , edBlockInsensitive+  , edMS+  , edMI+  , edBS+  , edBI   , ed_   ) where @@ -25,47 +23,61 @@ import           Language.Haskell.TH import           Language.Haskell.TH.Quote import           Text.RE.REOptions+import           Text.RE.Tools.IsRegex import           Text.RE.ZeInternals.SearchReplace.TDFAEdPrime import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.SearchReplace +-- | @[ed| ... \/\/\/ ... |]@, is equivalent to @[edMultilineSensitive| ... \/\/\/ ... |]@,+-- compiling a case-sensitive, multi-line 'SearchReplace'+ed                      :: QuasiQuoter+ed                       = ed' sr_cast $ Just minBound -ed-  , edMS-  , edMI-  , edBS-  , edBI-  , edMultilineSensitive-  , edMultilineInsensitive-  , edBlockSensitive-  , edBlockInsensitive-  , ed_ :: QuasiQuoter+-- | @[edMultilineSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, multi-line 'SearchReplace' template+edMultilineSensitive    :: QuasiQuoter+edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive -ed                       = ed' sr_cast $ Just minBound+-- | @[edMultilineInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, multi-line 'SearchReplace' template+edMultilineInsensitive  :: QuasiQuoter+edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive++-- | @[edBlockSensitive| ... \/\/\/ ... |]@ compiles a case-sensitive, non-multi-line 'SearchReplace' template+edBlockSensitive        :: QuasiQuoter+edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive++-- | @[edBlockInsensitive| ... \/\/\/ ... |]@ compiles a case-insensitive, non-multi-line 'SearchReplace' template+edBlockInsensitive      :: QuasiQuoter+edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[edMS| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineSensitive| ... \/\/\/ ... |]@+edMS                    :: QuasiQuoter edMS                     = edMultilineSensitive++-- | @[edMI| ... \/\/\/ ... |]@ is a shorthand for @[edMultilineInsensitive| ... \/\/\/ ... |]@+edMI                    :: QuasiQuoter edMI                     = edMultilineInsensitive++-- | @[edBS| ... \/\/\/ ... |]@ is a shorthand for @[edBlockSensitive| ... \/\/\/ ... |]@+edBS                    :: QuasiQuoter edBS                     = edBlockSensitive++-- | @[edBI| ... \/\/\/ ... |]@ is a shorthand for @[edBlockInsensitive| ... \/\/\/ ... |]@+edBI                    :: QuasiQuoter edBI                     = edBlockInsensitive-edMultilineSensitive     = ed' sr_cast $ Just  MultilineSensitive-edMultilineInsensitive   = ed' sr_cast $ Just  MultilineInsensitive-edBlockSensitive         = ed' sr_cast $ Just  BlockSensitive-edBlockInsensitive       = ed' sr_cast $ Just  BlockInsensitive++-- | @[ed_| ... \/\/\/ ... |]@ compiles a 'SearchReplace' template to produce a function that+-- takes the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- 'SearchReplace' template compiled with those options. For example,+--+--   @s *=~/ [ed_|${hex}([0-9a-f]+)\/\/\/0x${hex}|] MultilineInsensitive@+--+-- prefixes the hexadecimal digit strings in s with @0x@, allowing for+-- upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[edMultilineInsensitive|[0-9a-f]+|]@).+ed_                     :: QuasiQuoter ed_                      = ed' fn_cast   Nothing  sr_cast :: Q Exp sr_cast = [|\x -> x :: SearchReplace RE TL.Text|]  fn_cast :: Q Exp-fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE TL.Text|]---- $qq--- The -- | the @[ed| ... \/\/\/ ... |]@ quasi quoters; for exaple,------  @[ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})\/\/\/${d}\/${m}\/${y}|])@------ represents a @SearchReplace@ that will convert a YYYY-MM-DD format date--- into a DD\/MM\/YYYY format date.------ The only difference betweem these quasi quoters is the RE options that are set:--- see the "Text.RE.REOptions" documentation for details.---+fn_cast = [|\f x -> f x :: SearchReplace RE TL.Text|]
Text/RE/ZeInternals/SearchReplace/TDFAEdPrime.hs view
@@ -18,10 +18,9 @@ import           Prelude.Compat import           Text.RE.REOptions import           Text.RE.Replace-import           Text.RE.ZeInternals.QQ-import           Text.RE.ZeInternals.SearchReplace+import           Text.RE.Tools.IsRegex+import           Text.RE.ZeInternals import           Text.RE.ZeInternals.TDFA-import           Text.RE.ZeInternals.Types.IsRegex   -- | construct a quasi quoter from a casting function and @Just sro@
Text/RE/ZeInternals/TDFA.hs view
@@ -30,6 +30,7 @@   , REOptions   , defaultREOptions   , noPreludeREOptions+  , unpackSimpleREOptions   -- * Compiling Regular Expressions   , compileRegex   , compileRegexWith@@ -37,7 +38,7 @@   -- * Compiling Search-Replace Templates   , compileSearchReplace   , compileSearchReplaceWith-  , compileSearchReplaceWithREOptions+  , compileSearchReplaceWithOptions   -- * Escaping String   , escape   , escapeWith@@ -51,7 +52,6 @@   , preludeSummary   , preludeSources   , preludeSource-  , unpackSimpleREOptions   -- * The Quasi Quoters   , re   , reMS@@ -71,15 +71,10 @@ import           Language.Haskell.TH.Quote import           Prelude.Compat import           Text.RE.REOptions-import           Text.RE.ZeInternals.EscapeREString-import           Text.RE.ZeInternals.NamedCaptures-import           Text.RE.ZeInternals.PreludeMacros-import           Text.RE.ZeInternals.QQ-import           Text.RE.ZeInternals.Replace-import           Text.RE.ZeInternals.SearchReplace-import           Text.RE.ZeInternals.TestBench-import           Text.RE.ZeInternals.Types.CaptureID-import           Text.RE.ZeInternals.Types.IsRegex+import           Text.RE.Replace+import           Text.RE.TestBench+import           Text.RE.Tools+import           Text.RE.ZeInternals import           Text.Regex.TDFA  @@ -95,7 +90,7 @@  -- | some functions in the "Text.RE.TestBench" need the back end to -- be passed dynamically as a 'RegexType' parameters: use 'regexType'--- fpr this backend+-- for this regexType :: RegexType regexType =   mkTDFA $ \txt env md -> txt =~ mdRegexSource regexType ExclCaptures env md@@ -227,12 +222,12 @@ -- | compile a SearchReplace template, with general options, generating -- errors if the RE or the template are not well formed, all capture -- references being checked-compileSearchReplaceWithREOptions :: (Monad m,Functor m,IsRegex RE s)-                                  => REOptions-                                  -> String-                                  -> String-                                  -> m (SearchReplace RE s)-compileSearchReplaceWithREOptions os = compileSearchAndReplace_ packR $ compileRegexWithOptions os+compileSearchReplaceWithOptions :: (Monad m,Functor m,IsRegex RE s)+                                => REOptions+                                -> String+                                -> String+                                -> m (SearchReplace RE s)+compileSearchReplaceWithOptions os = compileSearchAndReplace_ packR $ compileRegexWithOptions os   ------------------------------------------------------------------------@@ -312,37 +307,53 @@ -- Quasi Quoters ------------------------------------------------------------------------ --- | the @[re| ... |]@ and @[ed| ... /// ... |]@ quasi quoters-re-  , reMS-  , reMI-  , reBS-  , reBI-  , reMultilineSensitive-  , reMultilineInsensitive-  , reBlockSensitive-  , reBlockInsensitive-  , re_ :: QuasiQuoter-  -- , ed-  -- , edMS-  -- , edMI-  -- , edBS-  -- , edBI-  -- , edMultilineSensitive-  -- , edMultilineInsensitive-  -- , edBlockSensitive-  -- , edBlockInsensitive-  -- , ed_ :: QuasiQuoter-+-- | @[re| ... |]@, is equivalent to @[reMultilineSensitive| ... |]@,+-- compiling a case-sensitive, multi-line RE+re                      :: QuasiQuoter re                       = re' $ Just minBound-reMS                     = reMultilineSensitive-reMI                     = reMultilineInsensitive-reBS                     = reBlockSensitive-reBI                     = reBlockInsensitive++-- | @[reMultilineSensitive| ... |]@, compiles a case-sensitive, multi-line RE+reMultilineSensitive    :: QuasiQuoter reMultilineSensitive     = re' $ Just  MultilineSensitive++-- | @[reMultilineInsensitive| ... |]@, compiles a case-insensitive, multi-line RE+reMultilineInsensitive  :: QuasiQuoter reMultilineInsensitive   = re' $ Just  MultilineInsensitive++-- | @[reMultilineInsensitive| ... |]@, compiles a case-sensitive, non-multi-line RE+reBlockSensitive        :: QuasiQuoter reBlockSensitive         = re' $ Just  BlockSensitive++-- | @[reMultilineInsensitive| ... |]@, compiles a case-insensitive, non-multi-line RE+reBlockInsensitive      :: QuasiQuoter reBlockInsensitive       = re' $ Just  BlockInsensitive++-- | @[reMS| ... |]@ is a shorthand for @[reMultilineSensitive| ... |]@+reMS                     :: QuasiQuoter+reMS                     = reMultilineSensitive++-- | @[reMI| ... |]@ is a shorthand for @[reMultilineInsensitive| ... |]@+reMI                    :: QuasiQuoter+reMI                     = reMultilineInsensitive++-- | @[reBS| ... |]@ is a shorthand for @[reBlockSensitive| ... |]@+reBS                    :: QuasiQuoter+reBS                     = reBlockSensitive++-- | @[reBI| ... |]@ is a shorthand for @[reBlockInsensitive| ... |]@+reBI                    :: QuasiQuoter+reBI                     = reBlockInsensitive++-- | @[re_| ... |]@ compiles a RE to produce a function that takes+-- the RE options (e.g., a 'SimpleREOptions' value) and yields the+-- RE compiled with those options. For example,+--+--   @countMatches $ s *=~ [re_|[0-9a-f]+|] MultilineInsensitive@+--+-- counts the number of hexadecimal digit strings in 's', allowing+-- for upper- or lower-case hex didgits (which is entirely equivalent+-- in this example to just using @[reMultilineInsensitive|[0-9a-f]+|]@).+re_                     :: QuasiQuoter re_                      = re'   Nothing  
Text/RE/ZeInternals/Tools/Lex.lhs view
@@ -9,8 +9,10 @@ import           Prelude.Compat import           Text.RE.Replace import           Text.RE.ZeInternals.Types.IsRegex+\end{code}  +\begin{code} -- | a simple regex-based scanner interpretter for prototyping -- scanners alex :: IsRegex re s => [(re,Match s->Maybe t)] -> t -> s -> [t]
Text/RE/ZeInternals/Types/CaptureID.hs view
@@ -37,14 +37,10 @@   deriving (Show,Ord,Eq,Enum,Ix,Num)  -- | look up a 'CaptureID' in the 'CaptureNames' dictionary-unsafeFindCaptureID :: CaptureID -> CaptureNames -> Int-unsafeFindCaptureID cid = either error id . findCaptureID cid---- | look up a 'CaptureID' in the 'CaptureNames' dictionary-findCaptureID :: CaptureID -> CaptureNames -> Either String Int-findCaptureID (IsCaptureOrdinal o) _   = Right $ getCaptureOrdinal o+findCaptureID :: CaptureID -> CaptureNames -> Either String CaptureOrdinal+findCaptureID (IsCaptureOrdinal o) _   = Right o findCaptureID (IsCaptureName    n) hms =-    maybe oops (Right . getCaptureOrdinal) $ HMS.lookup n hms+    maybe oops Right $ HMS.lookup n hms   where     oops = Left $ unlines $       ("lookupCaptureID: " ++ T.unpack t ++ " not found in:") :
Text/RE/ZeInternals/Types/IsRegex.lhs view
@@ -47,7 +47,9 @@   makeSearchReplace   = makeSearchReplaceWith minBound   makeEscaped         = makeEscapedWith       minBound   makeEscapedWith o f = makeRegexWith o . f . packR . escapeREString . unpackR+\end{code} +\begin{code} -- | search and replace all matches in the argument text; e.g., this function -- will convert every YYYY-MM-DD format date in its argument text into a -- DD\/MM\/YYYY date:
Text/RE/ZeInternals/Types/Match.lhs view
@@ -39,10 +39,8 @@ \end{code}  \begin{code}--- | the result of matching a RE to a text once, listing the text that--- was matched and the named captures in the RE and all of the substrings--- matched, with the text captured by the whole RE; a complete failure--- to match will be represented with an empty array (with bounds (0,-1))+-- | the result of matching a RE to a text once (with @?=~@), retaining+-- the text that was matched against data Match a =   Match     { matchSource  :: !a                -- ^ the whole source text@@ -81,7 +79,7 @@ matched :: Match a -> Bool matched = isJust . matchCapture --- | tests whether the RE matched the source text at all+-- | yields the text matched by the RE, Nothing if no match matchedText :: Match a -> Maybe a matchedText = fmap capturedText . matchCapture @@ -90,8 +88,8 @@ matchCapture :: Match a -> Maybe (Capture a) matchCapture = fmap fst . matchCaptures --- | the top-level capture and the sub captures if the text matched--- the RE, Nothing otherwise+-- | the main top-level capture (capture \'0'') and the sub captures+-- if the text matched the RE, @Nothing@ otherwise matchCaptures :: Match a -> Maybe (Capture a,[Capture a]) matchCaptures Match{..} = case rangeSize (bounds matchArray) == 0 of   True  -> Nothing@@ -143,14 +141,14 @@ captureMaybe :: CaptureID -> Match a -> Maybe (Capture a) captureMaybe cid mtch@Match{..} = do   i   <- lookupCaptureID cid mtch-  cap <- case bounds matchArray `inRange` CaptureOrdinal i of-    True  -> Just $ matchArray ! CaptureOrdinal i+  cap <- case bounds matchArray `inRange` i of+    True  -> Just $ matchArray ! i     False -> Nothing   case hasCaptured cap of     True  -> Just cap     False -> Nothing -lookupCaptureID :: CaptureID -> Match a -> Maybe Int+lookupCaptureID :: CaptureID -> Match a -> Maybe CaptureOrdinal lookupCaptureID cid Match{..} =     either (const Nothing) Just $ findCaptureID cid captureNames \end{code}
Text/RE/ZeInternals/Types/Matches.lhs view
@@ -26,8 +26,8 @@   \begin{code}--- | the result type to use when every match is needed, not just the--- first match of the RE against the source+-- | the result of matching a RE against a text (with @*=~@), retaining+-- the text that was matched against data Matches a =   Matches     { matchesSource :: !a          -- ^ the source text being matched@@ -54,7 +54,7 @@ countMatches :: Matches a -> Int countMatches = length . allMatches --- | list the Matches+-- | list the texts that Matched matches :: Matches a -> [a] matches = map capturedText . mainCaptures 
− Text/RE/ZeInternals/Types/SearchReplace.hs
@@ -1,15 +0,0 @@--module Text.RE.ZeInternals.Types.SearchReplace-  ( SearchReplace(..)-  ) where---- | contains a compiled RE and replacement template-data SearchReplace re s =-  SearchReplace-    { getSearch   :: !re    -- ^ the RE-    , getTemplate :: !s     -- ^ the replacement template-    }-  deriving (Show)--instance Functor (SearchReplace re) where-  fmap f (SearchReplace re x) = SearchReplace re (f x)
+ Text/RE/ZeInternals/Types/SearchReplace.lhs view
@@ -0,0 +1,23 @@+\begin{code}+module Text.RE.ZeInternals.Types.SearchReplace+  ( SearchReplace(..)+  ) where+\end{code}++\begin{code}+-- | contains a compiled RE and replacement template+data SearchReplace re s =+  SearchReplace+    { getSearch   :: !re    -- ^ the RE to match a string to replace+    , getTemplate :: !s     -- ^ the replacement template with ${cap}+                            -- used to identify a capture (by number or+                            -- name if one was given) and '$$' being+                            -- used to escape a single '$'+    }+  deriving (Show)+\end{code}++\begin{code}+instance Functor (SearchReplace re) where+  fmap f (SearchReplace re x) = SearchReplace re (f x)+\end{code}
changelog view
@@ -1,5 +1,17 @@ -*-change-log-*- +1.0.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-04-10+  * Rewrite tutorials (#113)+  * Add Text.RE.Tools.IsRegex (#122)+  * Include Macro Parsers in Core API (#123)+  * Adjust type of lookupCaptureID and friends (#124)+  * re-prep to handle cast example expressions (#125)+  * Rename compileSearchReplaceWithOptions (#126)+  * Hide ZeInternals, Evacuate Text.RE (#127)+  * Proper Haddocks for the quasi quoters (#128)+  * ed_ quasi quoters are being restricted to SimpleREOptions (#129)+  * regex dependeny on pcre-builtin (#130)+ 0.14.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-04-05   * Move IsOption into the back ends (#115)   * Rename Find functions (#116)@@ -71,7 +83,7 @@   * Fix .travis.yml release-stack script (#67)  0.6.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-13-  * Split out rexex-with-pcre package (#65)+  * Split out regex-with-pcre package (#65)  0.5.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-05   * Fix inter-operation of =~ & =~~ and named captures (#55)
regex.cabal view
@@ -1,5 +1,5 @@ Name:                   regex-Version:                0.14.0.0+Version:                1.0.0.0 Synopsis:               Toolkit for regex-base Description:            A regular expression toolkit for regex-base with                         compile-time checking of RE syntax, data types for@@ -32,7 +32,7 @@ Source-Repository this     Type:               git     Location:           https://github.com/iconnect/regex.git-    Tag:                0.14.0.0+    Tag:                1.0.0.0   @@ -51,13 +51,17 @@       Text.RE.TDFA.Text       Text.RE.TDFA.Text.Lazy       Text.RE.TestBench+      Text.RE.TestBench.Parsers       Text.RE.Tools       Text.RE.Tools.Edit       Text.RE.Tools.Find       Text.RE.Tools.Grep+      Text.RE.Tools.IsRegex       Text.RE.Tools.Lex       Text.RE.Tools.Sed       Text.RE.ZeInternals++    Other-Modules:       Text.RE.ZeInternals.AddCaptureNames       Text.RE.ZeInternals.EscapeREString       Text.RE.ZeInternals.NamedCaptures@@ -85,6 +89,7 @@       Text.RE.ZeInternals.Types.Matches       Text.RE.ZeInternals.Types.SearchReplace +     Default-Language:   Haskell2010      Other-Extensions:@@ -125,7 +130,6 @@       , containers           >= 0.4       , hashable             >= 1.2.3.3       , regex-base           >= 0.93.2-      , regex-pcre-builtin   >= 0.94.4.8.8.35       , regex-tdfa           >= 1.2.0       , regex-tdfa-text      >= 1.0.0.3       , template-haskell     >= 2.7