packages feed

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'])