Releases: purescript-contrib/purescript-parsing
v10.3.1
What's Changed
- Makes "float" parser of GenTokenParser parse negative numbers. by @mstream in #225
- feat: tests -> IndentationTests -> add by @srghma in #227
- purs-tidy format-in-place src test bench by @jamesdbrock in #228
- fix: ci by @srghma in #230
- consumeWith: propagate consumedflag when it was set by @Hi-Angel in #237
- Fix consumed semantics by @natefaubion in #239
- spago.dhall: add missing "console" package by @Hi-Angel in #238
- Bugfix Combinators.Array.many by @jamesdbrock in #240
New Contributors
- @mstream made their first contribution in #225
- @srghma made their first contribution in #227
- @Hi-Angel made their first contribution in #237
Full Changelog: v10.2.0...v10.3.1
v10.2.0
What's Changed
- README Recursion by @jamesdbrock in #216
- takeWhile by @jamesdbrock in #218
Full Changelog: v10.1.0...v10.2.0
v10.1.0
New features:
- add MonadAskandMonadReaderinstances (#208 by @bentongxyz)
- Add Parsing.String.parseErrorHuman(#209 by @jamesdbrock)
- Add liftMaybe,liftEither,liftExceptT(#212 by @jamesdbrock)
Other improvements:
- Better error messages for manyIndex(#211 by @jamesdbrock)
- Docs for region(#213 by @jamesdbrock)
- README Recursion (#214 by @jamesdbrock)
v10.0.0
Bugfixes:
- 
consumeWith doesn't consume if position does not advance (#201 by @jamesdbrock) This will effect parsers: - rest
- string
- takeN
- regex
- whiteSpace
- skipSpaces
 
- 
numbershould parse scientific notation when exponent does not contain a decimal (#204 by @MaybeJustJames)
v9.0.0
Breaking changes:
- 
Update project and deps to PureScript v0.15.0 (#160 by @JordanMartinez) 
- 
Drop deprecated MonadZeroinstance (#160 by @JordanMartinez)
- 
New optimized internals. ParserTnow has a more efficient representation,
 resulting in (up to) 20x performance improvement. In addition to the performance,
 all parser execution is always stack-safe, even monadically, obviating the need
 to run parsers withTrampolineas the base Monad or to explicitly useMonadRec.Code that was parametric over the underlying Monad no longer needs to propagate a 
 Monad constraint.Code that constructs parsers via the underlying representation will need to be updated, 
 but otherwise the interface is unchanged and parsers should just enjoy the speed boost.(#154 by @natefaubion) 
- 
Make <??>right-associative (#164 by @JordanMartinez)
- 
Drop <?>and<~?>prec from 3 to 4 (#163, #164 by @JordanMartinez)<|>was made right associative. Decreasing these two operators
 prevents a compiler error (i.e.MixedAssociativityError)
 without causing issues with<$>.
- 
Rename module prefix from Text.Parsing.ParsertoParsing(#169 by @jamesdbrock)
- 
Replace the regexparser. (#170 by @jamesdbrock)
- 
Reorganize Combinators for #154 (#182 by @jamesdbrock) 
- 
Add the indexfield toPosition. (#171 by @jamesdbrock)
- 
Move the parsers - whiteSpace
- skipSpaces
- oneOf
- oneOfCodePoints
- noneOf
- noneOfCodePoints
 from- Parsing.Stringto- Parsing.String.Basic. (#183 by @jamesdbrock)
 
- 
Change MonadState instance (#187 by jamesdbrock) Users who stack a ParserTon aStateTbase monad will call theMonadStatemembers directly likegetinstead of needing to dolift <<< get.To get the ParserTinternal state, callgetParserTinstead ofget.
New features:
- Add the anyTillprimitiveStringcombinator. (#186 by @jamesdbrock)
- Add the Parsing.String.Replacemodule, copied from
 https://github.com/jamesdbrock/purescript-parsing-replace (#188 by @jamesdbrock)
Bugfixes:
- Improve correctness and speed of numberandintDecimal. (#189 by @jamesdbrock)
Other improvements:
- Drop mathdependency; update imports (#167 by @JordanMartinez)
v7.0.0
What's Changed
New package maintainers: @jamesdbrock @robertdp
Full Changelog: v6.0.2...v7.0.0
Unicode correctness by @jamesdbrock in #119
Correctly handle UTF-16 surrogate pairs in Strings. Fundamentally, we change the way we consume the next input character from Data.String.CodeUnits.uncons to Data.String.CodePoints.uncons.
Non-breaking changes
Add primitive parsers anyCodePoint and satisfyCodePoint for parsing CodePoints.
Add the match combinator.
Breaking changes
Move updatePosString to the Text.Parsing.Parser.String module and don't export it.
Change the definition of whiteSpace and skipSpaces toData.CodePoint.Unicode.isSpace.
To make this library handle Unicode correctly, it is necessary to either alter the StringLike class or delete it. We decided to delete it. The String module will now operate only on inputs of the concrete String type.
Breaking changes which won’t be caught by the compiler
anyChar will no longer always succeed. It will only succeed on a Basic Multilingual Plane character. The new parser anyCodePoint will always succeed.
We keep the Char parsers for backward compatibility. We also keep the Char parsers for ergonomic reasons. For example the parser char :: forall m. Monad m => Char -> ParserT String m Char. This parser is usually called with a literal like char 'a'. It would be annoying to call this parser with char (codePointFromChar 'a').
Benchmarks
A benchmark suite was added to this package, and the benchmarks show no performance difference in this release.
v6.0.2
v6.0.1
Other improvements:
- Removed unused names found by v0.14.1 PureScript release (#112 by @JordanMartinez)
- Installed dependencies directly imported into source code that were previously installed transitively (#112 by @JordanMartinez)
v6.0.0
Breaking changes:
- Improved performance of stringand updateStringLiketo havestripPrefixas a class member instead ofindexOf(#93)
- Non-empty combinators now return NonEmptyList(#102)
- Added support for PureScript 0.14 and dropped support for all previous versions (#101)
New features:
- Derived Genericinstance of Position (#87)
Bugfixes:
Other improvements:
- Updated code to use Data.Char.Unicode.hexDigitToIntandData.Char.Unicode.isDecDigitinstead ofData.Char.Unicode.digitToIntandData.Char.Unicode.isDigit, as those two functions have been deprecated in theunicodelibrary (#103)
- Changed default branch to mainfrommaster
- Updated to comply with Contributors library guidelines by adding new issue and pull request templates, updating documentation, and migrating to Spago for local development and CI (#98)
v5.1.0
New features:
- Adds a regionfunction similar to the function of the same name in megaparsec which specifies how to processParseErrors which occur inside the indicated region (@jamesdbrock in #97 and #96).
Bugfixes: