vgrep-0.1.4.1: A pager for grep

Safe HaskellSafe
LanguageHaskell2010

Vgrep.Parser

Contents

Synopsis

Parsing grep output

parseGrepOutput :: [Text] -> [FileLineReference] Source #

Parses lines of Text, skipping lines that are not valid grep output.

parseLine :: Text -> Maybe FileLineReference Source #

Parses a line of grep output. Returns Nothing if the line cannot be parsed.

The output should consist of a file name, line number and the content, separated by colons:

>>> parseLine "path/to/file:123:foobar"
Just (FileLineReference {getFile = File {getFileName = "path/to/file"}, getLineReference = LineReference {getLineNumber = Just 123, getLineText = "foobar"}})

Omitting the line number still produces valid output:

>>> parseLine "path/to/file:foobar"
Just (FileLineReference {getFile = File {getFileName = "path/to/file"}, getLineReference = LineReference {getLineNumber = Nothing, getLineText = "foobar"}})

However, an file name must be present:

>>> parseLine "foobar"
Nothing

Re-export