1234567891011121314151617181920 |
- 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)
- -- | A convenience function for defining an atom parser from a wrapper
- -- function and a parser. This is identical to 'fmap' specialized to
- -- operate over 'Parser' values, and is provided as sugar.
- atom :: (t -> atom) -> Parser t -> Parser atom
- atom = fmap
- -- | A convenience function for defining a 'SExprSpec' from a list of
- -- possible atom parsers, which will be tried in sequence before failing.
- mkAtomParser :: [Parser atom] -> SExprParser atom (SExpr atom)
- mkAtomParser = mkParser . choice
|