on master help sign in
more concise implementaiton of combinators
commit20d32cc34d99f0ff7ec3f6d82d23f43ae9d98bb9 authorJürgen Peters <taulmarill@xgn.de> dateSat 31 Aug 2013, 00:27 (13 years ago) parentbb7d01f
1 file changed+3−3
contribs/lib/SimpleParser/SimpleParser.idr+3−3
contribs/lib/SimpleParser/SimpleParser.idr+3−3
@@ -155,13 +155,13 @@ strToken = map pack (token (many1 alphanum))
155155--------------------------------------------------------------------------------
156156
157157sepBy1 : Parser a -> Parser b -> Parser (List a)
158−sepBy1 p s = map (::) p <$> many (s $> p)
158+sepBy1 p s = [| p :: many (s $> p) |]
159159
160160sepBy : Parser a -> Parser b -> Parser (List a)
161−sepBy p s = sepBy1 p s <|> return Nil
161+sepBy p s = sepBy1 p s <|> pure Nil
162162
163163manyTil : Parser a -> Parser b -> Parser (List a)
164−manyTil p e = (e $> return Prelude.List.Nil) <|> (map (::) p <$> manyTil p e)
164+manyTil p e = (e $> pure Nil) <|> [| p :: manyTil p e |]
165165
166166--------------------------------------------------------------------------------
167167-- Expressions