sparsec

simple Haskell parser combinator library
git clone git://git.rr3.xyz/sparsec
Log | Files | Refs | README | LICENSE

commit e39356d9a44f8894342a7f3d430fbddcbdf67369
parent 0e629ebca0cb1e808dde1800064e4c83d8bb1f2a
Author: Robert Russell <robert@rr3.xyz>
Date:   Tue, 27 Aug 2024 02:52:34 -0700

Add runParse and mapParse

Diffstat:
MSparsec.hs | 6++++++
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/Sparsec.hs b/Sparsec.hs @@ -110,6 +110,12 @@ mapParseT f p = ParseT \input loc -> f $ runParseT p input loc type Parse e a = ParseT e Identity a +runParse :: Parse e a -> ByteString -> Loc -> Result e a +runParse (ParseT f) input loc = runIdentity $ f input loc + +mapParse :: (Result e a -> Result e' a') -> Parse e a -> Parse e' a' +mapParse f = mapParseT (Identity . f . runIdentity) + instance Monad m => Functor (ParseT e m) where fmap = liftM