parsley-2.0.0.1: test/Parsley/Combinator/Parsers.hs
module Parsley.Combinator.Parsers where
import Prelude hiding ((*>), (<*))
import Parsley
import Parsley.Combinator
import Parsley.Char
factoring :: Parser [String]
factoring = many $ (more *>) $
string "if" <* notFollowedBy (oneOf ['a'..'z'])
<|> string "while" <* notFollowedBy (oneOf ['a'..'z'])
<|> string "return" <* notFollowedBy (oneOf ['a'..'z'])
<|> string "continue" <* notFollowedBy (oneOf ['a'..'z'])
<|> string "break" <* notFollowedBy (oneOf ['a'..'z'])
<|> string "for" <* notFollowedBy (oneOf ['a'..'z'])
<|> q
<|> q
where
q = string "hello!" <* notFollowedBy (oneOf ['a'..'z'])