module Data.SCargot.Atom
(
atom
, mkAtomParser
) where
import Data.SCargot.Parse (SExprParser, mkParser)
import Data.SCargot.Repr (SExpr)
import Text.Parsec (choice)
import Text.Parsec.Text (Parser)
atom :: (t -> atom) -> Parser t -> Parser atom
atom :: forall t atom. (t -> atom) -> Parser t -> Parser atom
atom = (t -> atom)
-> ParsecT Text () Identity t -> ParsecT Text () Identity atom
forall t atom. (t -> atom) -> Parser t -> Parser atom
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
mkAtomParser :: [Parser atom] -> SExprParser atom (SExpr atom)
mkAtomParser :: forall atom. [Parser atom] -> SExprParser atom (SExpr atom)
mkAtomParser = Parser atom -> SExprParser atom (SExpr atom)
forall atom. Parser atom -> SExprParser atom (SExpr atom)
mkParser (Parser atom -> SExprParser atom (SExpr atom))
-> ([Parser atom] -> Parser atom)
-> [Parser atom]
-> SExprParser atom (SExpr atom)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Parser atom] -> Parser atom
forall s (m :: * -> *) t u a.
Stream s m t =>
[ParsecT s u m a] -> ParsecT s u m a
choice