
Creates immutable, thread-safe recursive-descent parsers for evaluating simple to complex grammars. Features parser combinators, customizable syntax trees, operator precedence management, and source tracking without requiring advanced computational linguistics knowledge.
A monadic (I think...) recursive-descent parser combinator written in Kotlin
Kudzu is a recursive-descent parser written in Kotlin, inspired by Parsec, with the goal of immutability, simplicity, testability, and multiplatform usability. It's designed to be a simple starting place for writing smaller parsers to evaluate relatively simple grammars for other Copper-Leaf libraries, but flexible enough to be used for larger languages.
Notable features:
| Platform |
|---|
| Android |
| JVM |
| iOS |
| JS |
| WasmJS |
repositories {
mavenCentral()
}
// for plain JVM or Android projects
dependencies {
implementation("io.github.copper-leaf:kudzu-core:{{gradle.version}}")
}
// for multiplatform projects
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("io.github.copper-leaf:kudzu-core:{{gradle.version}}")
}
}
}
}See the website for detailed documentation and usage instructions.
Kudzu is licensed under the BSD 3-Clause License, see LICENSE.md.
A monadic (I think...) recursive-descent parser combinator written in Kotlin
Kudzu is a recursive-descent parser written in Kotlin, inspired by Parsec, with the goal of immutability, simplicity, testability, and multiplatform usability. It's designed to be a simple starting place for writing smaller parsers to evaluate relatively simple grammars for other Copper-Leaf libraries, but flexible enough to be used for larger languages.
Notable features:
| Platform |
|---|
| Android |
| JVM |
| iOS |
| JS |
| WasmJS |
repositories {
mavenCentral()
}
// for plain JVM or Android projects
dependencies {
implementation("io.github.copper-leaf:kudzu-core:{{gradle.version}}")
}
// for multiplatform projects
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("io.github.copper-leaf:kudzu-core:{{gradle.version}}")
}
}
}
}See the website for detailed documentation and usage instructions.
Kudzu is licensed under the BSD 3-Clause License, see LICENSE.md.