packages feed

parsley-1.0.0.1: test/Parsley/Fold/Parsers.hs

{-# LANGUAGE TemplateHaskell #-}
module Parsley.Fold.Parsers where

import Prelude hiding (pure, (<*>), (*>), (<*))
import Parsley
import Parsley.Fold
--import Parsley.Garnish

plusOne :: Parser Int
plusOne = chainPre (string "++" $> [|succ|]) (char '1' $> [|1|])

plusOne' :: Parser Int
plusOne' = chainPre (try (string "++") $> [|succ|]) (char '1' $> [|1|])

plusOnePure :: Parser Int
plusOnePure = try (chainPre (string "++" $> [|succ|]) (pure ([|1|]))) <|> pure ([|0|])

onePlus :: Parser Int
onePlus = chainPost (char '1' $> [|1|]) (string "++" $> [|succ|])

onePlus' :: Parser Int
onePlus' = chainPost (char '1' $> [|1|]) (try (string "++") $> [|succ|])

manyAA :: Parser [String]
manyAA = many (string "aa")

someA :: Parser String
someA = some (char 'a')

many2A :: Parser String
many2A = manyN 2 (char 'a')