on master help sign in
SimpleParser: fixed recursive combinators
commit723437ef5277f7d3bb58e4e69b433f49fd8142b9 authorJürgen Peters <taulmarill@xgn.de> dateFri 13 Sep 2013, 23:00 (13 years ago) parent8000794
1 file changed+2−2
contribs/lib/SimpleParser/SimpleParser.idr+2−2
contribs/lib/SimpleParser/SimpleParser.idr+2−2
@@ -97,7 +97,7 @@ many : Parser a -> Parser (List a)
9797
9898many1 p = [| p :: many p |]
9999
100−many p = many1 p <|> pure []
100+many p = lazy (many1 p) <|> pure []
101101
102102bool : Parser Bool
103103bool = parseTrue <|> parseFalse
@@ -164,7 +164,7 @@ sepBy : Parser a -> Parser b -> Parser (List a)
164164sepBy p s = sepBy1 p s <|> pure Nil
165165
166166manyTil : Parser a -> Parser b -> Parser (List a)
167−manyTil p e = (e $> pure Nil) <|> [| p :: manyTil p e |]
167+manyTil p e = (e $> pure Nil) <|> lazy [| p :: manyTil p e |] <|> pure Nil
168168
169169--------------------------------------------------------------------------------
170170-- Expressions