Safe Haskell | None |
---|---|
Language | Haskell2010 |
Text.RE.Tools.Grep
- grep :: IsRegex re ByteString => Verbosity -> re -> FilePath -> IO ()
- data Verbosity
- data Line s = Line {
- getLineNumber :: LineNo
- getLineMatches :: Matches s
- grepLines :: IsRegex re ByteString => re -> FilePath -> IO [Line ByteString]
- grepFilter :: IsRegex re s => re -> s -> [Line s]
- type GrepScript re s t = [(re, LineNo -> Matches s -> Maybe t)]
- grepWithScript :: IsRegex re s => GrepScript re s t -> [s] -> [t]
- report :: Verbosity -> [Line ByteString] -> String
- linesMatched :: Verbosity -> [Line s] -> [Line s]
- class Replace s => IsRegex re s where
- newtype LineNo = ZeroBasedLineNo {}
- firstLine :: LineNo
- getLineNo :: LineNo -> Int
- lineNo :: Int -> LineNo
- module Text.RE
Documentation
grep :: IsRegex re ByteString => Verbosity -> re -> FilePath -> IO () Source #
operates a bit like classic grep
printing out the lines matched
specifies whether to return the linss matched or missed
Constructors
LinesMatched | |
LinesNotMatched |
Constructors
Line | |
Fields
|
grepLines :: IsRegex re ByteString => re -> FilePath -> IO [Line ByteString] Source #
returns a Line
for each line in the file, enumerating all of the
matches for that line
grepFilter :: IsRegex re s => re -> s -> [Line s] Source #
returns a Line
for each line in the argument text, enumerating
all of the matches for that line
type GrepScript re s t = [(re, LineNo -> Matches s -> Maybe t)] Source #
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
grepWithScript :: IsRegex re s => GrepScript re s t -> [s] -> [t] Source #
given a list of lines, apply the GrepScript
to each line of the file
report :: Verbosity -> [Line ByteString] -> String Source #
generate a grep report from a list of Line
linesMatched :: Verbosity -> [Line s] -> [Line s] Source #
given a velocity
flag filter out either the lines matched or not
matched
IsRegex
class Replace s => IsRegex re s where Source #
the IsRegex
class allows polymorhic tools to be written that
will work with a variety of regex back ends and text types
Minimal complete definition
matchOnce, matchMany, makeRegexWith, makeSearchReplaceWith, regexSource
Methods
matchOnce :: re -> s -> Match s Source #
finding the first match
matchMany :: re -> s -> Matches s Source #
finding all matches
makeRegex :: (Functor m, Monad m) => s -> m re Source #
compiling an RE, failing if the RE is not well formed
makeRegexWith :: (Functor m, Monad m) => SimpleREOptions -> s -> m re Source #
comiling an RE, specifying the SimpleREOptions
makeSearchReplace :: (Functor m, Monad m, IsRegex re s) => s -> s -> m (SearchReplace re s) Source #
compiling a SearchReplace
template from the RE text and the template Text, failing if they are not well formed
makeSearchReplaceWith :: (Functor m, Monad m, IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s) Source #
compiling a SearchReplace
template specifing the SimpleREOptions
for the RE
makeEscaped :: (Functor m, Monad m) => (s -> s) -> s -> m re Source #
incorporate an escaped string into a compiled RE with the default options
makeEscapedWith :: (Functor m, Monad m) => SimpleREOptions -> (s -> s) -> s -> m re Source #
incorporate an escaped string into a compiled RE with the specified SimpleREOptions
regexSource :: re -> s Source #
extract the text of the RE from the RE
LineNo
our line numbers are of the proper zero-based kind
Constructors
ZeroBasedLineNo | |
Fields |
Text.RE
module Text.RE