Releases: j-mie6/parsley
Parsley 2.2.2
This version addresses a very minor duplication in foldRight1
and foldLeft1
, where they unnecessarily duplicate the callee, instead of generating a subroutine.
Parsley 2.2.1
Fixed a bug where chain.left1
does not correctly wrap up a lone atom when the operator fails (since it was left on the stack unchanged). This affected generalised precedence tables.
Parsley 2.2.0
This release has laid the groundwork (and hopefully final!) for the Parsley 3.0.0 new-style
API. Any and all of the old-style
API has been deprecated strongly and will be removed in Parsley 3.0.0. A full description of these changes can be found here.
What's New
In addition to lift1
through lift3
, lift4
through lift22
have been added to parsley.lift
. To complement these, parsley.implicits
contains some extension methods which allow the method .lift
on any value or function (corresponding to pure
or the liftN
of the correct arity N
).
The logic of the former ExpressionParser
has been redesigned and can be found in parsley.expr
What's Deprecated
The following classes/combinators have been deprecated:
Classes
parsley.BitGen
- All combinators in
parsley.Char
parsley.CharSet
- All combinators in
parsley.Combinator
- All functionality in
parsley.ExpressionParser
parsley.Impl
- All implicits in
parsley.Implicits
parsley.LanguageDef
parsley.NotRequired
parsley.Parser
parsley.Predicate
parsley.Reg
- All functionality in
parsley.TokenParser
Combinators
parsley.Parsley.many
parsley.Parsley.skipMany
parsley.Parsley.lift1
parsley.Parsley.lift2
parsley.Parsley.lift3
parsley.Parsley.get
parsley.Parsley.put
parsley.Parsley.gets
parsley.Parsley.modify
parsley.Parsley.local
parsley.Parsley.rollback
Parsley 2.1.0
What's New
Added the foldLeft1
and foldRight1
combinators
What's Fixed
Fixed #37, which was caused by using foldLeft
instead of foldLeft1
Parsley 2.0.1
This version of Parsley has no API changes or bug fixes, but this release supports Scala 3.0.0-M3 and re-supports Dotty 0.27.0-RC1
Parsley 2.0.0
NOTE: This release has backwards incompatible changes for some parsers which were previously compatible with the 1.x series. This includes parsers which make use of registers/state, as well as any lingering uses of deprecated functionality from v1.5.1+
What's Changed
The following PRs form part of this release: #28 #27 #32. Issue #26 is partially supported by this release (remaining work is found in #33).
The major changes in this release boil down to:
- adding types to registers, so they are no longer untyped
- removing rollback behaviour of registers, they can be rolled back with
rollback
explicitly - remove ability to manually create registers at given addresses (the allocation is done by the runtime)
What's New
For this release, there are a couple of new combinators, namely:
collect
- similar to those found inList
etc in the Scala standard librarycast
- used to change the type of a parser's result in a safe checked way which does not throw exceptionsrollback
- recovers the original semantics of registers from the 1.x series
Parsley 1.7.0
This release expands the functionality found in the Result
datatype so that it is not necessary to immediately bail out of it. In addition, it now supports conversion to scala.util.Try
.
Parsley 1.6.2
This release incorporates the recent work on a widespread refactor. In the process, a couple of edge cases have been addressed and there is an assertion on LanguageDef
to ensure that a multi-line comment is not a valid prefix of a single-line one.
Parsley 1.6.1
This released fixes a bug which meant that operators and keywords parsed with TokenParser
do not respect the backtracking qualities they advertised. Additionally, small improvements to performance due to mass-refactoring.
Parsley 1.6.0
Added support for method based parser running and added the unsafe
object.