Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- parseGrepOutput :: [Text] -> [FileLineReference]
- parseLine :: Text -> Maybe FileLineReference
- data FileLineReference
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