mini 1.5.2.0 → 1.5.3.0
raw patch · 3 files changed
+25/−2 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Mini.Transformers.ParserT: findAll :: (Monad m, Eq s, Show s) => ParserT s m a -> ParserT s m [a]
+ Mini.Transformers.ParserT: findAll1 :: (Monad m, Eq s, Show s) => ParserT s m a -> ParserT s m [a]
+ Mini.Transformers.ParserT: till1 :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]
Files
- CHANGELOG.md +7/−0
- Mini/Transformers/ParserT.hs +17/−1
- mini.cabal +1/−1
CHANGELOG.md view
@@ -1,3 +1,10 @@+1.5.3.0 [2025-01-09]+--------------------+* Mini.Transformers.ParserT:+ * Add combinator 'till1'+ * Add combinator 'findAll'+ * Add combinator 'findAll1'+ 1.5.2.0 [2025-01-08] -------------------- * Mini.Data.Map:
Mini/Transformers/ParserT.hs view
@@ -29,6 +29,7 @@ sepBy, sepBy1, till,+ till1, chainl1, chainr1, between,@@ -37,6 +38,8 @@ accept, findFirst, findLast,+ findAll,+ findAll1, annotate, ) where @@ -44,6 +47,7 @@ Alternative, empty, many,+ some, (<|>), ) import Control.Monad (@@ -215,8 +219,12 @@ -- | Parse zero or more @p@ until @q@ succeeds via @p \`till\` q@ till :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]-till p end = ([] <$ end) <|> ((:) <$> p <*> till p end)+till p end = ([] <$ end) <|> till1 p end +-- | Parse one or more @p@ until @q@ succeeds via @p \`till1\` q@+till1 :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]+till1 p end = (:) <$> p <*> till p end+ -- | Parse one or more @p@ left-associatively chained by @f@ via @chainl1 p f@ chainl1 :: (Monad m, Eq s)@@ -274,6 +282,14 @@ -- | Find and parse the last instance of @p@ via @findLast p@ findLast :: (Monad m, Eq s, Show s) => ParserT s m a -> ParserT s m a findLast p = findFirst p >>= flip option (findLast p)++-- | Find and parse zero or more instances of @p@ via @findAll p@+findAll :: (Monad m, Eq s, Show s) => ParserT s m a -> ParserT s m [a]+findAll = many . findFirst++-- | Find and parse one or more instances of @p@ via @findAll1 p@+findAll1 :: (Monad m, Eq s, Show s) => ParserT s m a -> ParserT s m [a]+findAll1 = some . findFirst -- | Prepend an error message to that of a parser annotate :: (Monad m) => String -> ParserT s m a -> ParserT s m a
mini.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: mini-version: 1.5.2.0+version: 1.5.3.0 license: MIT license-file: LICENSE author: Victor Wallsten <victor.wallsten@protonmail.com>