-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A parser combinator library for the Definitive framework -- @package definitive-parser @version 2.1 module Data.Syntax newtype Lambda n m Lambda :: (Maybe String, ThunkT n m () -> ThunkT n m ()) -> Lambda n m class (Foldable (n (Lambda n m)), Traversable (n (Lambda n m))) => NodeFunctor n m newtype SyntaxT n m a SyntaxT :: (Free (n (Lambda n m)) a) -> SyntaxT n m a newtype ThunkT n m a ThunkT :: (Free (m :.: SyntaxT n m) a) -> ThunkT n m a type Thunk n a = ThunkT n Id a type NodeT n m a = n (Lambda n m) (ThunkT n m a) force :: (NodeFunctor n m, Monad m) => ThunkT n m a -> ThunkT n m (NodeT n m a) forcing :: (NodeFunctor n m, Monad m) => (NodeT n m a -> ThunkT n m a) -> ThunkT n m a -> ThunkT n m a liftN :: (NodeFunctor n m, Unit m) => NodeT n m a -> SyntaxT n m (ThunkT n m a) liftS :: (NodeFunctor n m, Unit m) => SyntaxT n m (ThunkT n m a) -> ThunkT n m a liftNS :: (NodeFunctor n m, Unit m) => NodeT n m a -> ThunkT n m a instance (NodeFunctor n m, MonadWriter w m) => MonadWriter w (ThunkT n m) instance (NodeFunctor n m, MonadState s m) => MonadState s (ThunkT n m) instance (NodeFunctor n m, MonadReader r m) => MonadReader r (ThunkT n m) instance (NodeFunctor n m, Foldable m) => Foldable (ThunkT n m) instance (NodeFunctor n m, Functor m) => Applicative (ThunkT n m) instance (NodeFunctor n m, Functor m) => Functor (ThunkT n m) instance NodeFunctor n m => Foldable (SyntaxT n m) instance NodeFunctor n m => Applicative (SyntaxT n m) instance NodeFunctor n m => Functor (SyntaxT n m) instance Unit (ThunkT n m) instance Unit (SyntaxT n m) instance (NodeFunctor n m, Monad m) => MonadFree (m :.: SyntaxT n m) (ThunkT n m) instance (NodeFunctor n m, Traversable m) => Traversable (ThunkT n m) instance (NodeFunctor n m, Monad m) => Monad (ThunkT n m) instance MonadFree (n (Lambda n m)) (SyntaxT n m) instance NodeFunctor n m => Traversable (SyntaxT n m) instance NodeFunctor n m => Monad (SyntaxT n m) instance Semigroup (Lambda n m) instance Show (Lambda n m) -- | 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 (LogicT 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 i'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 :: (Monad n, Monad 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, using \\ 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 Unit (ParserT s m) instance Functor (ParserT s m) instance Semigroup (ParserT s m a) instance Monoid (ParserT s m a) instance Applicative (ParserT s m) instance Monad m => MonadFix (ParserT s m) instance Monad m => MonadState s (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 Monad m => Deductive (ParserA m) instance ConcreteMonad (ParserT s) instance MonadTrans (ParserT s) instance Monad m => Monad (ParserT s m) instance (Monad m, Stream Char s) => IsString (ParserT s m a) module Language.Syntax.CmdArgs -- | Each OptDescr describes a single option. -- -- The arguments to Option are: -- --