Skip to content

Releases: google/mug

Release 10.6

Choose a tag to compare

@fluentfuture fluentfuture released this 06 Jul 01:08
  • (configurable) StackOverflowError protection against deeply nested recursive structure. Makes dot-parse the safest Java recursive descent parser.

  • extensive benchmarks stacking dot-parse against major Java, Scala and Kotlin parser frameworks.

  • digits(n), hexDigits(n) parsers. Easier to express regex-like composite patterns like:

    Parser<String> usPhoneNumber =
        sequence(digits(3), one('-'), digits(3), one('-), digits(4)).source();
    
  • Parser.mapWithIndex() makes the source index usable by the grammar.

  • Parser.OrEmpty.source() and Parser.OrEmpty.map() makes optional parsers more convenient.

  • bug fixes.

Release 10.5.1

Choose a tag to compare

@fluentfuture fluentfuture released this 28 Jun 20:12
  • Return elision works on .optional()
  • Error message formatting bug fixes.

Release 10.5

Choose a tag to compare

@fluentfuture fluentfuture released this 25 Jun 04:14
  • dot-parse performance optimization (return elision)
  • Parser.anyOf(str1, str2, ...)
  • Parser.optionallyFollowedBy(Parser<?> suffix)

Release 10.4.3

Choose a tag to compare

@fluentfuture fluentfuture released this 19 Jun 03:10
  • Major dot-parse and EmailAddress performance improvements.
  • More friendly error messages by Parser.

Release 10.3.1

Choose a tag to compare

@fluentfuture fluentfuture released this 11 Jun 03:42
  • Property treatment of RFC 2047 encoded words in EmailAddress.
  • EmailAddress.unicodeDisplayName() to decode RFC 2047 display name.

Release 10.3

Choose a tag to compare

@fluentfuture fluentfuture released this 06 Jun 05:46
  • Parser.nestedBy() for balanced nested quoting.
  • EmailAddress hardened for security and new methods: user(), alias(), hasI18nDomain().
  • MarkdownLink - a light-weight markdown link parser.
  • GraphWalker bug fixes.

Release 10.2

Choose a tag to compare

@fluentfuture fluentfuture released this 23 May 02:15
  • Parser.consecutive("[a-zA-Z0-9-]") and friends.
  • MoreStreams.mergeConsecutive(Stream, Class<T>, BinaryOperator<T>)

Release 10.1.1

Choose a tag to compare

@fluentfuture fluentfuture released this 18 May 16:09

Fixed Parser.first() to respect skipping.

Release 10.1

Choose a tag to compare

@fluentfuture fluentfuture released this 16 May 00:46
  • Fixed Parser.literally(p) semantics. It should be an "atomic" operator.
  • Added Parser.sequence(Parser, Production...) as a shorthand of p1.then(p2).then(p3).then(p4) when they are meant to be matched as a single unit.

Release 10.0.1

Choose a tag to compare

@fluentfuture fluentfuture released this 05 May 19:46

Bug fixes for Parser.sequence(OrEmpty, Parser, BiFunction).