saturn-0.2.0.0: source/libraries/unstable/Saturn/Unstable/Extra/Parsec.hs
module Saturn.Unstable.Extra.Parsec where
import qualified Data.List.NonEmpty as NonEmpty
import qualified Text.Parsec as Parsec
either ::
Parsec.ParsecT s u m a ->
Parsec.ParsecT s u m b ->
Parsec.ParsecT s u m (Either a b)
either l r = fmap Left l Parsec.<|> fmap Right r
sepByNE ::
Parsec.ParsecT s u m a ->
Parsec.ParsecT s u m sep ->
Parsec.ParsecT s u m (NonEmpty.NonEmpty a)
sepByNE p s = (NonEmpty.:|) <$> p <*> Parsec.many (s *> p)