-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A parser combinator library for the Definitive framework -- -- A parser combinator library for the Definitive framework @package definitive-parser @version 1.2 -- | A module providing simple Parser combinator functionality. Useful for -- small parsing tasks such as identifier parsing or command-line -- argument parsing module Language.Parser newtype ParserT s m a ParserT :: (StateT s (ListT m) a) -> ParserT s m a type Parser c a = ParserT c Id a newtype ParserA m s a ParserA :: (ParserT s m a) -> ParserA m s a _ParserA :: Iso (ParserA m s a) (ParserA m' s' a') (ParserT s m a) (ParserT s' m' a') class Stream c s | s -> c uncons :: Stream c s => s -> Maybe (c, s) cons :: Stream c s => c -> s -> s -- | Test if a Stream is empty emptyStream :: Stream c s => s -> Bool parserT :: (Functor n, Functor m) => Iso (ParserT s m a) (ParserT t n b) (s -> m [(s, a)]) (t -> n [(t, b)]) parser :: Iso (Parser s a) (Parser t b) (s -> [(s, a)]) (t -> [(t, b)]) ioParser :: Parser a b -> (a -> IO b) -- | The (+) operator with lower priority (<+>) :: Semigroup m => m -> m -> m (>*>) :: Monad m => ParserT a m b -> ParserT b m c -> ParserT a m c (<*<) :: Monad m => ParserT b m c -> ParserT a m b -> ParserT a m c cut :: Monad m => ParserT s m a -> ParserT s m a -- | Consume a token from the Stream token :: (Monad m, Stream c s) => ParserT s m c -- | Consume a token and succeed if it verifies a predicate satisfy :: (Monad m, Stream c s) => (c -> Bool) -> ParserT s m c -- | Parse a member of a set of values oneOf :: (Eq c, Monad m, Foldable t, Stream c s) => t c -> ParserT s m c -- | Parse anything but a member of a set noneOf :: (Eq c, Monad m, Foldable t, Stream c s) => t c -> ParserT s m c -- | Consume a single fixed token or fail. single :: (Eq c, Monad m, Stream c s) => c -> ParserT s m () -- | Consume a structure of characters or fail several :: (Eq c, Monad m, Foldable t, Stream c s) => t c -> ParserT s m () -- | The remaining Stream to parse remaining :: Monad m => ParserT s m s -- | Succeed only at the End Of Input. eoi :: (Monad m, Stream c s) => ParserT s m () readable :: (Monad m, Read a) => ParserT String m a -- | Parse a litteral decimal number number :: (Monad m, Stream Char s, Num n) => ParserT s m n -- | Parse a single decimal digit digit :: (Monad m, Stream Char s) => ParserT s m Char letter :: (Monad m, Stream Char s) => ParserT s m Char alNum :: (Monad m, Stream Char s) => ParserT s m Char -- | Parse a delimited string, unsing \\ as the quoting character quotedString :: (Monad m, Stream Char s) => Char -> ParserT s m String -- | A single space space :: (Monad m, Stream Char s) => ParserT s m Char -- | Many spaces spaces :: (Monad m, Stream Char s) => ParserT s m String -- | The end of a line eol :: (Monad m, Stream Char s) => ParserT s m () -- | Parse zero, one or more successive occurences of a parser. many :: Monad m => ParserT c m a -> ParserT c m [a] -- | Parse one or more successiveé occurences of a parser. many1 :: Monad m => ParserT c m a -> ParserT c m [a] -- | Parse zero or more successive occurences of a parser separated by -- occurences of a second parser. sepBy :: Monad m => ParserT c m a -> ParserT c m b -> ParserT c m [a] -- | Parse one or more successive occurences of a parser separated by -- occurences of a second parser. sepBy1 :: Monad m => ParserT c m a -> ParserT c m b -> ParserT c m [a] -- | Skip many occurences of a parser skipMany :: Monad m => ParserT c m a -> ParserT c m () -- | Skip multiple occurences of a parser skipMany1 :: Monad m => ParserT c m a -> ParserT c m () -- | Chain an operator with an initial value chainl :: (Stream c s, Monad m) => ParserT s m a -> ParserT s m (a -> b -> a) -> ParserT s m b -> ParserT s m a -- | Chain an operator with an initial value and several tail values. chainr :: (Stream c s, Monad m) => ParserT s m a -> ParserT s m (b -> a -> a) -> ParserT s m b -> ParserT s m a -- | Try to consume a parser. Return a default value when it fails. option :: Monad m => a -> ParserT s m a -> ParserT s m a instance Monad m => MonadError Void (ParserT c m) instance Unit m => Unit (ParserT s m) instance Functor m => Functor (ParserT s m) instance Applicative m => Semigroup (ParserT s m a) instance Applicative m => Monoid (ParserT s m a) instance Monad m => Applicative (ParserT s m) instance Monad m => Monad (ParserT s m) instance MonadFix m => MonadFix (ParserT s m) instance Monad m => MonadList (ParserT s m) instance Monad m => MonadState s (ParserT s m) instance MonadWriter w m => MonadWriter w (ParserT s m) instance Monad m => Arrow (ParserA m) instance Monad m => Choice (ParserA m) instance Monad m => Split (ParserA m) instance Monad m => Category (ParserA m) instance ConcreteMonad (ParserT s) instance MonadTrans (ParserT s) module Language.Syntax.Regex regex :: Parser String (Parser String ([(String, String)], String)) runRegex :: String -> String -> [([(String, String)], String)] module Data.Syntax type Env f = Map String (ThunkT f) type ThunkT f = f (SyntaxT f) data SyntaxT f ValList :: [ThunkT f] -> SyntaxT f Dictionary :: (Env f) -> SyntaxT f Text :: String -> SyntaxT f Quote :: (SyntaxT f) -> SyntaxT f Function :: (ThunkT f -> ThunkT f) -> SyntaxT f dict :: Traversal' (SyntaxT f) (Env f) nil :: SyntaxT f variable :: Unit f => String -> SyntaxT f -> SyntaxT f funcall :: ThunkT f -> ThunkT f -> SyntaxT f builtin :: Unit m => (ThunkT m -> ThunkT m) -> ThunkT m builtin2 :: Unit m => (ThunkT m -> ThunkT m -> ThunkT m) -> ThunkT m builtin3 :: Unit m => (ThunkT m -> ThunkT m -> ThunkT m -> ThunkT m) -> ThunkT m shape :: SyntaxT f -> String reduce :: MonadReader (Env m) m => SyntaxT m -> ThunkT m lambda :: MonadReader (Env m) m => SyntaxT Id -> SyntaxT m -> (ThunkT m -> ThunkT m) matchPat :: Monad f => SyntaxT Id -> (SyntaxT f -> f (Maybe [(String, SyntaxT f)])) lambdaSum :: Monad m => [ThunkT m -> ThunkT m] -> ThunkT m -> ThunkT m instance Show (ThunkT f) => Show (SyntaxT f) module Language.Syntax.CmdArgs -- | Each OptDescr describes a single option. -- -- The arguments to Option are: -- --