Skip to content

Releases: h0tk3y/better-parse

0.4.4

21 Apr 18:52
4f86837
Compare
Choose a tag to compare

0.4.3

31 Oct 23:07
3927674
Compare
Choose a tag to compare
  • Fix reported range when an optional parser is lifted to an AST parser (thanks @Thomvis!)
  • Fix InvalidMutabilityException in RegexToken (thanks @itegulov!)
  • Use Kotlin 1.5.31

0.4.2

20 Apr 11:52
43f2f00
Compare
Choose a tag to compare
  • Make the JVM RegexToken implementation thread-safe
  • Release JS IR artifacts along with the JS legacy ones

0.4.1

09 Jan 19:57
0a539e2
Compare
Choose a tag to compare
  • Updated to Kotlin 1.4.21 and new Multiplatform library publishing layout (no need to depend on platform modules or -metadata part)
  • Fixed issue #28
  • better-parse is now available on Maven Central

0.4.0

01 Jul 20:26
14efc49
Compare
Choose a tag to compare
  • better-parse is now a multiplatform library! All Kotlin targets are supported;
  • Optimize tokenization and parsing, thanks @orangy for his help!
  • Replace token with literalToken and regexToken

0.3.2

02 Dec 17:07
Compare
Choose a tag to compare
  • Fixed Regex / Pattern converted to their string representations with loss of flags;
  • Made Parsed<T>.remainder public;
  • Optimized TokenizerMatchesSequence to avoid redundant objects allocation

0.3.1

29 Oct 14:06
Compare
Choose a tag to compare

What's new:

  • Introducing syntax tree parsers that store the tree structure of the parsed input including the start/end positions of each tree node. Your parsers can automatically be transformed from Parser<T> to Parser<SyntaxTree<T>>, see the Syntax trees section;

    image

  • Tokenizer interface to customize the default tokenizing behavior; To support tokenizer implementations that do not use Java regexes, Token now stores a raw String instead of a Pattern. The default tokenizer implementation is now named DefaultTokenizer.

  • Parser<T> properties now can be delegated inside Grammar, which will store them into the the new declaredParsers property;

  • Optimizations of built-in combinators;

  • Regex parameters of Token factory functions annoteted for IntelliJ IDEA regex language injection;

  • Names for Tokens are no more necessary.

Migration notes:

  • If you used Lexer explicitly, use DefaultTokenizer instead;

  • If you used Token::pattern, change to using the raw pattern string;

  • It is also good to change the val p = someParser declarations inside the Grammars to val p by someParser.

0.2.1

01 Aug 13:26
Compare
Choose a tag to compare
  • Change JVM target to 1.6 to make better-parse compatible with Android

0.2

12 Jul 23:05
Compare
Choose a tag to compare
0.2
  • Change the semantics of and chains: when there's only one non-skipped operand Parser<T>, the whole chain is now typed as Parser<T>, not Parser<Tuple1<T>>

  • Add operator equivalents: a * b for a and b, and -a for skip(a).