From 985d876ff5ad053bc7c3c7ed142dadeabcdf0b56 Mon Sep 17 00:00:00 2001 From: Gabe Berke-Williams Date: Thu, 12 May 2016 11:43:17 -0400 Subject: [PATCH] Use applicative style in Parsec This commit also moves `eol` into the `parseTermMatch` parser, which should be safe since `parseTermMatches` is the only place that `parseTermMatch` is used. --- src/Unused/Parser.hs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/Unused/Parser.hs b/src/Unused/Parser.hs index 3d93c17..ed1415c 100644 --- a/src/Unused/Parser.hs +++ b/src/Unused/Parser.hs @@ -21,15 +21,7 @@ responseFromParse = fmap $ Map.fromList . map (second $ calculateLikelihood . resultsFromMatches) . groupBy tmTerm parseTermMatches :: Parser [TermMatch] -parseTermMatches = do - tm <- many1 $ do - m <- parseTermMatch - void eol - - return m - eof - - return tm +parseTermMatches = many1 parseTermMatch <* eof parseTermMatch :: Parser TermMatch parseTermMatch = do @@ -38,6 +30,7 @@ parseTermMatch = do path' <- pathParser colonSep occurrences' <- occurrenceParser + void eol return $ TermMatch term' path' $ toInt occurrences' where