Skip to content

Releases: j-mie6/parsley

Parsley 2.2.2

25 Jan 15:34
391612d
Compare
Choose a tag to compare

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

16 Jan 21:05
e283670
Compare
Choose a tag to compare

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

16 Jan 18:01
6ccf3e4
Compare
Choose a tag to compare

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

10 Jan 13:24
65f551b
Compare
Choose a tag to compare

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

09 Jan 20:09
a0ef4a9
Compare
Choose a tag to compare

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

09 Jan 19:16
824f173
Compare
Choose a tag to compare

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 in List etc in the Scala standard library
  • cast - used to change the type of a parser's result in a safe checked way which does not throw exceptions
  • rollback - recovers the original semantics of registers from the 1.x series

Parsley 1.7.0

06 Jan 11:41
7533b66
Compare
Choose a tag to compare

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

05 Jan 21:30
1c64f5f
Compare
Choose a tag to compare

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

31 Dec 22:25
3934d87
Compare
Choose a tag to compare

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

09 Dec 15:30
bdd5a11
Compare
Choose a tag to compare

Added support for method based parser running and added the unsafe object.