-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A modern parser combinator library with convenient diagnostics -- -- A modern parser combinator library with slicing and Clang-style -- colored diagnostics @package trifecta @version 1.7 -- | Interval maps implemented using the FingerTree type, following -- section 4.8 of -- --
-- In file included from baz.c:9
-- In file included from bar.c:4
-- foo.c:8:36: note
-- int main(int argc, char ** argv) { int; }
-- ^
--
data Caret
Caret :: !Delta -> {-# UNPACK #-} !ByteString -> Caret
class HasCaret t
caret :: HasCaret t => Lens' t Caret
data Careted a
(:^) :: a -> Caret -> Careted a
drawCaret :: Delta -> Delta -> Lines -> Lines
addCaret :: Delta -> Rendering -> Rendering
caretEffects :: [SGR]
renderingCaret :: Delta -> ByteString -> Rendering
data Span
Span :: !Delta -> !Delta -> {-# UNPACK #-} !ByteString -> Span
class HasSpan t
span :: HasSpan t => Lens' t Span
data Spanned a
(:~) :: a -> Span -> Spanned a
spanEffects :: [SGR]
drawSpan :: Delta -> Delta -> Delta -> Lines -> Lines
-- |
-- int main(int argc, char ** argv) { int; }
-- ^~~
--
addSpan :: Delta -> Delta -> Rendering -> Rendering
data Fixit
Fixit :: {-# UNPACK #-} !Span -> !ByteString -> Fixit
[_fixitSpan] :: Fixit -> {-# UNPACK #-} !Span
[_fixitReplacement] :: Fixit -> !ByteString
class HasFixit c_aKKX where fixitReplacement = (.) fixit fixitReplacement fixitSpan = (.) fixit fixitSpan
fixit :: HasFixit c_aKKX => Lens' c_aKKX Fixit
fixitReplacement :: HasFixit c_aKKX => Lens' c_aKKX ByteString
fixitSpan :: HasFixit c_aKKX => Lens' c_aKKX Span
drawFixit :: Delta -> Delta -> String -> Delta -> Lines -> Lines
addFixit :: Delta -> Delta -> String -> Rendering -> Rendering
type Lines = Array (Int, Int64) ([SGR], Char)
draw :: [SGR] -> Int -> Int64 -> String -> Lines -> Lines
ifNear :: Delta -> (Lines -> Lines) -> Delta -> Lines -> Lines
(.#) :: (Delta -> Lines -> Lines) -> Rendering -> Rendering
instance Text.Trifecta.Rendering.HasFixit Text.Trifecta.Rendering.Fixit
instance Text.Trifecta.Rendering.HasSpan Text.Trifecta.Rendering.Fixit
instance Data.Hashable.Class.Hashable Text.Trifecta.Rendering.Fixit
instance Data.Semigroup.Reducer.Reducer Text.Trifecta.Rendering.Fixit Text.Trifecta.Rendering.Rendering
instance Text.Trifecta.Rendering.Renderable Text.Trifecta.Rendering.Fixit
instance GHC.Generics.Generic Text.Trifecta.Rendering.Fixit
instance Data.Data.Data Text.Trifecta.Rendering.Fixit
instance GHC.Show.Show Text.Trifecta.Rendering.Fixit
instance GHC.Classes.Ord Text.Trifecta.Rendering.Fixit
instance GHC.Classes.Eq Text.Trifecta.Rendering.Fixit
instance GHC.Generics.Generic (Text.Trifecta.Rendering.Spanned a)
instance Data.Data.Data a => Data.Data.Data (Text.Trifecta.Rendering.Spanned a)
instance GHC.Show.Show a => GHC.Show.Show (Text.Trifecta.Rendering.Spanned a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Text.Trifecta.Rendering.Spanned a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.Trifecta.Rendering.Spanned a)
instance GHC.Generics.Generic Text.Trifecta.Rendering.Span
instance Data.Data.Data Text.Trifecta.Rendering.Span
instance GHC.Show.Show Text.Trifecta.Rendering.Span
instance GHC.Classes.Ord Text.Trifecta.Rendering.Span
instance GHC.Classes.Eq Text.Trifecta.Rendering.Span
instance GHC.Generics.Generic (Text.Trifecta.Rendering.Careted a)
instance Data.Data.Data a => Data.Data.Data (Text.Trifecta.Rendering.Careted a)
instance GHC.Show.Show a => GHC.Show.Show (Text.Trifecta.Rendering.Careted a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Text.Trifecta.Rendering.Careted a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.Trifecta.Rendering.Careted a)
instance GHC.Generics.Generic Text.Trifecta.Rendering.Caret
instance Data.Data.Data Text.Trifecta.Rendering.Caret
instance GHC.Show.Show Text.Trifecta.Rendering.Caret
instance GHC.Classes.Ord Text.Trifecta.Rendering.Caret
instance GHC.Classes.Eq Text.Trifecta.Rendering.Caret
instance GHC.Show.Show a => GHC.Show.Show (Text.Trifecta.Rendering.Rendered a)
instance Text.Trifecta.Rendering.HasRendering Text.Trifecta.Rendering.Rendering
instance GHC.Show.Show Text.Trifecta.Rendering.Rendering
instance Data.Semigroup.Semigroup Text.Trifecta.Rendering.Rendering
instance GHC.Base.Monoid Text.Trifecta.Rendering.Rendering
instance Text.Trifecta.Delta.HasDelta Text.Trifecta.Rendering.Rendering
instance Text.Trifecta.Rendering.Renderable Text.Trifecta.Rendering.Rendering
instance Text.Trifecta.Rendering.Source GHC.Base.String
instance Text.Trifecta.Rendering.Source Data.ByteString.Internal.ByteString
instance Text.PrettyPrint.ANSI.Leijen.Pretty Text.Trifecta.Rendering.Rendering
instance GHC.Base.Functor Text.Trifecta.Rendering.Rendered
instance Text.Trifecta.Delta.HasDelta (Text.Trifecta.Rendering.Rendered a)
instance Text.Trifecta.Delta.HasBytes (Text.Trifecta.Rendering.Rendered a)
instance Control.Comonad.Comonad Text.Trifecta.Rendering.Rendered
instance Control.Comonad.ComonadApply Text.Trifecta.Rendering.Rendered
instance Data.Foldable.Foldable Text.Trifecta.Rendering.Rendered
instance Data.Traversable.Traversable Text.Trifecta.Rendering.Rendered
instance Text.Trifecta.Rendering.Renderable (Text.Trifecta.Rendering.Rendered a)
instance Text.Trifecta.Rendering.HasCaret Text.Trifecta.Rendering.Caret
instance Data.Hashable.Class.Hashable Text.Trifecta.Rendering.Caret
instance Text.Trifecta.Delta.HasBytes Text.Trifecta.Rendering.Caret
instance Text.Trifecta.Delta.HasDelta Text.Trifecta.Rendering.Caret
instance Text.Trifecta.Rendering.Renderable Text.Trifecta.Rendering.Caret
instance Data.Semigroup.Reducer.Reducer Text.Trifecta.Rendering.Caret Text.Trifecta.Rendering.Rendering
instance Data.Semigroup.Semigroup Text.Trifecta.Rendering.Caret
instance Text.Trifecta.Rendering.HasCaret (Text.Trifecta.Rendering.Careted a)
instance GHC.Base.Functor Text.Trifecta.Rendering.Careted
instance Text.Trifecta.Delta.HasDelta (Text.Trifecta.Rendering.Careted a)
instance Text.Trifecta.Delta.HasBytes (Text.Trifecta.Rendering.Careted a)
instance Control.Comonad.Comonad Text.Trifecta.Rendering.Careted
instance Control.Comonad.ComonadApply Text.Trifecta.Rendering.Careted
instance Data.Foldable.Foldable Text.Trifecta.Rendering.Careted
instance Data.Traversable.Traversable Text.Trifecta.Rendering.Careted
instance Text.Trifecta.Rendering.Renderable (Text.Trifecta.Rendering.Careted a)
instance Data.Semigroup.Reducer.Reducer (Text.Trifecta.Rendering.Careted a) Text.Trifecta.Rendering.Rendering
instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Text.Trifecta.Rendering.Careted a)
instance Text.Trifecta.Rendering.HasSpan Text.Trifecta.Rendering.Span
instance Text.Trifecta.Rendering.Renderable Text.Trifecta.Rendering.Span
instance Data.Semigroup.Semigroup Text.Trifecta.Rendering.Span
instance Data.Semigroup.Reducer.Reducer Text.Trifecta.Rendering.Span Text.Trifecta.Rendering.Rendering
instance Data.Hashable.Class.Hashable Text.Trifecta.Rendering.Span
instance Text.Trifecta.Rendering.HasSpan (Text.Trifecta.Rendering.Spanned a)
instance GHC.Base.Functor Text.Trifecta.Rendering.Spanned
instance Control.Comonad.Comonad Text.Trifecta.Rendering.Spanned
instance Control.Comonad.ComonadApply Text.Trifecta.Rendering.Spanned
instance Data.Foldable.Foldable Text.Trifecta.Rendering.Spanned
instance Data.Traversable.Traversable Text.Trifecta.Rendering.Spanned
instance Data.Semigroup.Reducer.Reducer (Text.Trifecta.Rendering.Spanned a) Text.Trifecta.Rendering.Rendering
instance Text.Trifecta.Rendering.Renderable (Text.Trifecta.Rendering.Spanned a)
instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Text.Trifecta.Rendering.Spanned a)
-- | Results and Parse Errors
module Text.Trifecta.Result
-- | The result of parsing. Either we succeeded or something went wrong.
data Result a
Success :: a -> Result a
Failure :: ErrInfo -> Result a
-- | A Prism that lets you embed or retrieve a Result in a
-- potentially larger type.
class AsResult s t a b | s -> a, t -> b, s b -> t, t a -> s
_Result :: AsResult s t a b => Prism s t (Result a) (Result b)
-- | The Prism for the Success constructor of Result
_Success :: AsResult s t a b => Prism s t a b
-- | The Prism for the Failure constructor of Result
_Failure :: AsResult s s a a => Prism' s ErrInfo
-- | This is used to report an error. What went wrong, some supplemental
-- docs and a set of things expected at the current location. This does
-- not, however, include the actual location.
data Err
Err :: Maybe Doc -> [Doc] -> Set String -> [Delta] -> Err
[_reason] :: Err -> Maybe Doc
[_footnotes] :: Err -> [Doc]
[_expected] :: Err -> Set String
[_finalDeltas] :: Err -> [Delta]
class HasErr c_a1zov where expected = (.) err expected finalDeltas = (.) err finalDeltas footnotes = (.) err footnotes reason = (.) err reason
err :: HasErr c_a1zov => Lens' c_a1zov Err
expected :: HasErr c_a1zov => Lens' c_a1zov (Set String)
finalDeltas :: HasErr c_a1zov => Lens' c_a1zov [Delta]
footnotes :: HasErr c_a1zov => Lens' c_a1zov [Doc]
reason :: HasErr c_a1zov => Lens' c_a1zov (Maybe Doc)
class Errable m
raiseErr :: Errable m => Err -> m a
data ErrInfo
ErrInfo :: Doc -> [Delta] -> ErrInfo
[_errDoc] :: ErrInfo -> Doc
[_errDeltas] :: ErrInfo -> [Delta]
-- | Convert a location and an Err into a Doc
explain :: Rendering -> Err -> Doc
-- | Generate a simple Err word-wrapping the supplied message.
failed :: String -> Err
instance Data.Traversable.Traversable Text.Trifecta.Result.Result
instance Data.Foldable.Foldable Text.Trifecta.Result.Result
instance GHC.Base.Functor Text.Trifecta.Result.Result
instance GHC.Show.Show a => GHC.Show.Show (Text.Trifecta.Result.Result a)
instance Text.Trifecta.Result.HasErr Text.Trifecta.Result.Err
instance Data.Semigroup.Semigroup Text.Trifecta.Result.Err
instance GHC.Base.Monoid Text.Trifecta.Result.Err
instance GHC.Base.Monoid Text.Trifecta.Result.ErrInfo
instance Data.Semigroup.Semigroup Text.Trifecta.Result.ErrInfo
instance Text.Trifecta.Result.AsResult (Text.Trifecta.Result.Result a) (Text.Trifecta.Result.Result b) a b
instance GHC.Show.Show a => Text.PrettyPrint.ANSI.Leijen.Pretty (Text.Trifecta.Result.Result a)
instance GHC.Base.Applicative Text.Trifecta.Result.Result
instance GHC.Base.Alternative Text.Trifecta.Result.Result
instance GHC.Show.Show Text.Trifecta.Result.ErrInfo
module Text.Trifecta.Rope
data Rope
Rope :: !Delta -> !(FingerTree Delta Strand) -> Rope
rope :: FingerTree Delta Strand -> Rope
data Strand
Strand :: {-# UNPACK #-} !ByteString -> !Delta -> Strand
Skipping :: !Delta -> Strand
strand :: ByteString -> Strand
strands :: Rope -> FingerTree Delta Strand
-- | grab a the contents of a rope from a given location up to a newline
grabRest :: Delta -> Rope -> r -> (Delta -> ByteString -> r) -> r
-- | grab a the contents of a rope from a given location up to a newline
grabLine :: Delta -> Rope -> r -> (Delta -> ByteString -> r) -> r
instance GHC.Show.Show Text.Trifecta.Rope.Rope
instance GHC.Generics.Generic Text.Trifecta.Rope.Strand
instance Data.Data.Data Text.Trifecta.Rope.Strand
instance GHC.Show.Show Text.Trifecta.Rope.Strand
instance Data.FingerTree.Measured Text.Trifecta.Delta.Delta Text.Trifecta.Rope.Strand
instance Data.Hashable.Class.Hashable Text.Trifecta.Rope.Strand
instance Text.Trifecta.Delta.HasDelta Text.Trifecta.Rope.Strand
instance Text.Trifecta.Delta.HasBytes Text.Trifecta.Rope.Strand
instance Text.Trifecta.Delta.HasBytes Text.Trifecta.Rope.Rope
instance Text.Trifecta.Delta.HasDelta Text.Trifecta.Rope.Rope
instance Data.FingerTree.Measured Text.Trifecta.Delta.Delta Text.Trifecta.Rope.Rope
instance GHC.Base.Monoid Text.Trifecta.Rope.Rope
instance Data.Semigroup.Semigroup Text.Trifecta.Rope.Rope
instance Data.Semigroup.Reducer.Reducer Text.Trifecta.Rope.Rope Text.Trifecta.Rope.Rope
instance Data.Semigroup.Reducer.Reducer Text.Trifecta.Rope.Strand Text.Trifecta.Rope.Rope
instance Data.Semigroup.Reducer.Reducer Data.ByteString.Internal.ByteString Text.Trifecta.Rope.Rope
instance Data.Semigroup.Reducer.Reducer [GHC.Types.Char] Text.Trifecta.Rope.Rope
module Text.Trifecta.Highlight
-- | Tags used by the TokenParsing highlight combinator.
data Highlight :: *
-- | A HighlightedRope is a Rope with an associated
-- IntervalMap full of highlighted regions.
data HighlightedRope
HighlightedRope :: !(IntervalMap Delta Highlight) -> {-# UNPACK #-} !Rope -> HighlightedRope
class HasHighlightedRope c_a1PY4 where ropeContent = (.) highlightedRope ropeContent ropeHighlights = (.) highlightedRope ropeHighlights
highlightedRope :: HasHighlightedRope c_a1PY4 => Lens' c_a1PY4 HighlightedRope
ropeContent :: HasHighlightedRope c_a1PY4 => Lens' c_a1PY4 Rope
ropeHighlights :: HasHighlightedRope c_a1PY4 => Lens' c_a1PY4 (IntervalMap Delta Highlight)
-- | Convert a Highlight into a coloration on a Doc.
withHighlight :: Highlight -> Doc -> Doc
-- | Represents a source file like an HsColour rendered document
data HighlightDoc
HighlightDoc :: String -> String -> HighlightedRope -> HighlightDoc
class HasHighlightDoc c_a1Qe1 where docContent = (.) highlightDoc docContent docCss = (.) highlightDoc docCss docTitle = (.) highlightDoc docTitle
highlightDoc :: HasHighlightDoc c_a1Qe1 => Lens' c_a1Qe1 HighlightDoc
docContent :: HasHighlightDoc c_a1Qe1 => Lens' c_a1Qe1 HighlightedRope
docCss :: HasHighlightDoc c_a1Qe1 => Lens' c_a1Qe1 String
docTitle :: HasHighlightDoc c_a1Qe1 => Lens' c_a1Qe1 String
-- | Generate an HTML document from a title and a HighlightedRope.
doc :: String -> HighlightedRope -> HighlightDoc
instance Text.Trifecta.Highlight.HasHighlightDoc Text.Trifecta.Highlight.HighlightDoc
instance Text.Blaze.ToMarkup Text.Trifecta.Highlight.HighlightDoc
instance Text.Trifecta.Highlight.HasHighlightedRope Text.Trifecta.Highlight.HighlightedRope
instance Text.Trifecta.Delta.HasDelta Text.Trifecta.Highlight.HighlightedRope
instance Text.Trifecta.Delta.HasBytes Text.Trifecta.Highlight.HighlightedRope
instance Data.Semigroup.Semigroup Text.Trifecta.Highlight.HighlightedRope
instance GHC.Base.Monoid Text.Trifecta.Highlight.HighlightedRope
instance GHC.Classes.Eq (Text.Trifecta.Highlight.Located a)
instance GHC.Classes.Ord (Text.Trifecta.Highlight.Located a)
instance Text.Blaze.ToMarkup Text.Trifecta.Highlight.HighlightedRope
instance Text.PrettyPrint.ANSI.Leijen.Pretty Text.Trifecta.Highlight.HighlightedRope
-- | harder, better, faster, stronger...
module Text.Trifecta.Util.It
data It r a
Pure :: a -> It r a
It :: a -> (r -> It r a) -> It r a
needIt :: a -> (r -> Maybe a) -> It r a
wantIt :: a -> (r -> (# Bool, a #)) -> It r a
simplifyIt :: It r a -> r -> It r a
runIt :: (a -> o) -> (a -> (r -> It r a) -> o) -> It r a -> o
-- | Given a position, go there, and grab the text forward from that point
fillIt :: r -> (Delta -> ByteString -> r) -> Delta -> It Rope r
-- | Return the text of the line that contains a given position
rewindIt :: Delta -> It Rope (Maybe ByteString)
sliceIt :: Delta -> Delta -> It Rope ByteString
instance GHC.Show.Show a => GHC.Show.Show (Text.Trifecta.Util.It.It r a)
instance GHC.Base.Functor (Text.Trifecta.Util.It.It r)
instance Data.Profunctor.Unsafe.Profunctor Text.Trifecta.Util.It.It
instance GHC.Base.Applicative (Text.Trifecta.Util.It.It r)
instance GHC.Base.Monad (Text.Trifecta.Util.It.It r)
instance Control.Comonad.ComonadApply (Text.Trifecta.Util.It.It r)
instance Control.Comonad.Comonad (Text.Trifecta.Util.It.It r)
module Text.Trifecta.Combinators
-- | This class provides parsers with easy access to:
--
-- 1) the current line contents. 2) the current position as a
-- Delta. 3) the ability to use sliced on any parser.
class (MonadPlus m, TokenParsing m) => DeltaParsing m where rend = rendered <$> position <*> line restOfLine = drop . fromIntegral . columnByte <$> position <*> line
-- | Retrieve the contents of the current line (from the beginning of the
-- line)
line :: DeltaParsing m => m ByteString
-- | Retrieve the current position as a Delta.
position :: DeltaParsing m => m Delta
-- | Run a parser, grabbing all of the text between its start and end
-- points
slicedWith :: DeltaParsing m => (a -> ByteString -> r) -> m a -> m r
-- | Retrieve a Rendering of the current line noting this position,
-- but not placing a Caret there.
rend :: DeltaParsing m => m Rendering
-- | Grab the remainder of the current line
restOfLine :: DeltaParsing m => m ByteString
-- | Run a parser, grabbing all of the text between its start and end
-- points and discarding the original result
sliced :: DeltaParsing m => m a -> m ByteString
-- | Grab a Caret pointing to the current location.
careting :: DeltaParsing m => m Caret
-- | Parse a Careted result. Pointing the Caret to where you
-- start.
careted :: DeltaParsing m => m a -> m (Careted a)
-- | Discard the result of a parse, returning a Span from where we
-- start to where it ended parsing.
spanning :: DeltaParsing m => m a -> m Span
-- | Parse a Spanned result. The Span starts here and runs to
-- the last position parsed.
spanned :: DeltaParsing m => m a -> m (Spanned a)
-- | Grab a fixit.
fixiting :: DeltaParsing m => m ByteString -> m Fixit
-- | This class is a refinement of DeltaParsing that adds the
-- ability to mark your position in the input and return there for
-- further parsing later.
class (DeltaParsing m, HasDelta d) => MarkParsing d m | m -> d
-- | mark the current location so it can be used in constructing a span, or
-- for later seeking
mark :: MarkParsing d m => m d
-- | Seek a previously marked location
release :: MarkParsing d m => d -> m ()
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.State.Lazy.StateT s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.State.Strict.StateT s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.Reader.ReaderT e m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.RWS.Strict.RWST r w s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.DeltaParsing m) => Text.Trifecta.Combinators.DeltaParsing (Control.Monad.Trans.Identity.IdentityT m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.State.Lazy.StateT s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.State.Strict.StateT s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.Reader.ReaderT e m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m, GHC.Base.Monoid w) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.RWS.Strict.RWST r w s m)
instance (GHC.Base.MonadPlus m, Text.Trifecta.Combinators.MarkParsing d m) => Text.Trifecta.Combinators.MarkParsing d (Control.Monad.Trans.Identity.IdentityT m)
module Text.Trifecta.Parser
-- | The type of a trifecta parser
--
-- The first four arguments are behavior continuations:
--
-- -- main = do -- result <- parseFromFile numbers "digits.txt" -- case result of -- Nothing -> return () -- Just a -> print $ sum a --parseFromFile :: MonadIO m => Parser a -> String -> m (Maybe a) -- | parseFromFileEx p filePath runs a parser p on the -- input read from filePath using readFile. Returns all -- diagnostic messages emitted over the course of the parse and the -- answer if the parse was successful. -- --
-- main = do -- result <- parseFromFileEx (many number) "digits.txt" -- case result of -- Failure xs -> displayLn xs -- Success a -> print (sum a) --parseFromFileEx :: MonadIO m => Parser a -> String -> m (Result a) parseString :: Parser a -> Delta -> String -> Result a -- | parseByteString p delta i runs a parser p on -- i. parseByteString :: Parser a -> Delta -> ByteString -> Result a parseTest :: (MonadIO m, Show a) => Parser a -> String -> m () instance GHC.Base.Functor Text.Trifecta.Parser.Parser instance GHC.Base.Applicative Text.Trifecta.Parser.Parser instance GHC.Base.Alternative Text.Trifecta.Parser.Parser instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Text.Trifecta.Parser.Parser a) instance (Data.Semigroup.Semigroup a, GHC.Base.Monoid a) => GHC.Base.Monoid (Text.Trifecta.Parser.Parser a) instance GHC.Base.Monad Text.Trifecta.Parser.Parser instance Control.Monad.Fail.MonadFail Text.Trifecta.Parser.Parser instance GHC.Base.MonadPlus Text.Trifecta.Parser.Parser instance Text.Parser.Combinators.Parsing Text.Trifecta.Parser.Parser instance Text.Trifecta.Result.Errable Text.Trifecta.Parser.Parser instance Text.Parser.LookAhead.LookAheadParsing Text.Trifecta.Parser.Parser instance Text.Parser.Char.CharParsing Text.Trifecta.Parser.Parser instance Text.Parser.Token.TokenParsing Text.Trifecta.Parser.Parser instance Text.Trifecta.Combinators.DeltaParsing Text.Trifecta.Parser.Parser instance Text.Trifecta.Combinators.MarkParsing Text.Trifecta.Delta.Delta Text.Trifecta.Parser.Parser instance GHC.Show.Show a => GHC.Show.Show (Text.Trifecta.Parser.Step a) instance GHC.Base.Functor Text.Trifecta.Parser.Step module Text.Trifecta