Skip to content

Releases: j-mie6/parsley

Parsley 3.2.0

05 Oct 17:02
c79418f
Compare
Choose a tag to compare

This release adds methods to the Reg class instead of using the functions defined in registers. This improves the type inference characteristics of the combinators.

Parsley 3.1.3

06 Jun 22:42
d7efae2
Compare
Choose a tag to compare

Fixed a bug with case-insensitive keywords, where if they are combined in an "or-chain" then they must have the leading character match case #95. Also slightly improved performance for keyword and operator combinators when the identifier and operator letters are not specified.

Parsley 3.1.2

24 May 08:51
cbe476a
Compare
Choose a tag to compare

Nothing much to see here, except dropped support for Scala 3.0.0 pre-releases, we now support Scala 3's official release!

Parsley 3.1.1

12 Apr 21:00
d08bf13
Compare
Choose a tag to compare

This release fixes a bug when amended errors are converted to hints. It also improves the semantics of .label and .explain to ensure that they are applied only when the error message has not observed the consumption of input, as opposed to whether or not input was actually consumed. This means that amend instead of attempt can control the behaviour of these combinators.

Also generalised the interface for ErrorBuilder, thereby introducing Revision2. The messages and extra lines of input are now provided as Seq instead of Set and List respectively. This is to allow an ordering for fancy error messages (explain hasn't changed).

Parsley 3.1.0

09 Apr 18:06
535e7f3
Compare
Choose a tag to compare

This release incorporates the changes in #92, #93, and #94. In summary, added the <+> combinator, and amend and entrench in parsley.errors.combinator. The calling mechanism for recursive parsers has been reworked and should be better for performance and memory consumption for larger parsers. The error builder now supports multiple lines of error input, with the default set at 1 line before and 1 after. This can be configured by extending the error builder class. This change has shifted the revision number of the builder to Revision1 and Revision0 retains the original behaviour of a single line.

Parsley 3.0.1

27 Mar 18:00
4fb31b0
Compare
Choose a tag to compare

Improved performance of error message formatting. Expected tokens now properly account for the input that was consumed for the previous "hints" in the grammar. Deprecated <\> since it has counter-intuitive associativity, which can easily result in unexpected performance characteristics and possible damage to error messages.

Parsley 3.0.0

23 Mar 17:16
96843b4
Compare
Choose a tag to compare

NOTE: This release has several backwards incompatible changes: this includes changing runParser to parse and any previously deprecated functionality from v2.2.0+, some combinators were removed without prior deprecation warning as well.

What's Changed

  • deprecated combinators from the old-style API have been removed
  • #81 Parser API Changes: This adjusts the old runParser to be just parse as well as introducing a separation between IO-based methods of
    running a parser and not. Also, running a parser from file results in a Try wrapper to protect properly against exceptions
  • #82 Higher-arity map changed to zipped: the .map notation has been changed to a .zipped notation and the function has been made
    optional. The implicits have also been reorganised into submodules within parsley.implicits
  • #83 Parsley 3 debug: coloured output can now be disabled on debug combinators. Fixing #60.
  • #88 Parsley 3 expr: Adds in curried application of precedence
  • #91 Parsley 3 precedence improvements: Allows for precedence tables to written in either strong-to-weak or weak-to-strong ordering.
    Improved the levels datatype to remove the redundant Levels.empty terminal node.
  • Moved withFilter to its own module, since its only needed in 2.12
  • Improved error for notFollowedBy
  • Moved unexpected, fail, filterOut, collectMsg, guardAgainst, ?, label, explain, hide, ! to parsley.errors.combinators.
  • Removed >?>, guard, and guardNot

What's New

  • #81 Parser API Changes: introduced the parsley.io module (absent for scala-js parsley)
  • #88 Parsley 3 expr: added prefix1 and postfix1 combinators
  • #90 Parsley 3 errors: The main body of work for the Parsley 3 release, introduces an ErrorBuilder abstraction to allow the users of the API to
    decide how errors should be formatted, giving them the control to produce their own datatypes.
  • #91 Parsley 3 precedence improvements: This adds the ability to use non-associative operators (i.e. single use) in a precedence table. Also
    allows for precedence tables to written in either strong-to-weak or weak-to-strong ordering. Introduced a new SOps abstraction to better
    support sub-typed non-monolithic trees. Added Atoms terminal node for Levels.

Parsley 2.8.7

17 Mar 18:15
590de35
Compare
Choose a tag to compare

Fixed the root documentation so that the index page is there again.

Parsley 2.8.6

07 Mar 23:49
67a5839
Compare
Choose a tag to compare

This release adds no features or bugfixes. However, it does add official scala-js 1.5.0 and scala-native 0.4.0 support tested against Node 14 LTS and Node 15, as well as LLVM 10 respectively.

Parsley 2.8.5

05 Mar 18:59
4515ca3
Compare
Choose a tag to compare

Incorporated #79, which brings some improvements to the specificity of error messages from the Lexer (and fixed missing "longer" unexpected items from some branches). Trimmed unexpected or raw items at the next newline or space. This makes them a little friendlier.