Releases: copper-leaf/kudzu
Releases · copper-leaf/kudzu
5.3.0
5.2.0
- Updates to Kotlin 1.9.22
5.1.0
- Updates to Kotlin 1.9.0
5.0.0
- Updates to Kotlin 1.8.20
- Drops support for deprecated KMPP targets:
- JS Legacy
- iosArm32
4.0.1
4.0.0
- Updates to Kotlin 1.7.20, and removes
@ExperimentalStdlibApi
now thatDeepRecursiveFunction
is now stable - Make it possible to process choice nodes with type safety. Thanks to @ephemient for the contribution!
Instead of requiring casting to access
MappedParser(ChoiceParser(FooParser(), BarParser())) { node ->
when (node) {
is Choice2Node.Option1 -> (node.node as FooNode).foo
is Choice2Node.Option2 -> (node.node as BarNode).bar
}
}
we can rely on the compiler to check
MappedParser(ChoiceParser(FooParser(), BarParser())) { node ->
when (node) {
is Choice2Node.Option1 -> node.node.foo
is Choice2Node.Option2 -> node.node.bar
}
}
3.1.0
- Adds
choiceIndex
property to ChoiceNNode
3.0.0
- Updates to kotlin 1.6.10
- Implements strongly-typed Choice parsers in the same manner as Sequence parsers (supports 2-9 choices)
- don't check for empty with many parser. Let the sub-parser make that determination
- Improve error messages
- Wrap expressions in RootExpressionNode
- Adds newline and EOF parsers
2.6.0
- Adds a bunch of Sequence parsers for fixed lengths to preserve strong generic typing.
SequenceParser
is now a factory function instead of a constructor, returning the appropriate sequence parser for the number of "varargs". - Validate that the start and end tags match in
TagParser
- Enables hierarchical sourcesets
2.5.0
- Adds
NoopParser
for implementing self-closing tags with theTagParser
- Adds
AnyTextParser
, which is likeAnyTextParser
, but parses any non-whitespace characters