https://github.com/johnedquinn/kanonic
A fast LR(1) parser generator for the JVM.
https://github.com/johnedquinn/kanonic
jvm lalr lr1 parser parser-generator
Last synced: 5 months ago
JSON representation
A fast LR(1) parser generator for the JVM.
- Host: GitHub
- URL: https://github.com/johnedquinn/kanonic
- Owner: johnedquinn
- License: apache-2.0
- Created: 2022-12-09T08:29:51.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-01T17:52:21.000Z (almost 3 years ago)
- Last Synced: 2025-05-07T23:04:55.481Z (9 months ago)
- Topics: jvm, lalr, lr1, parser, parser-generator
- Language: Kotlin
- Homepage:
- Size: 323 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Kanonic
Kanonic is a fast LR(1) parser generator operating on the JVM.
While Java is understood to be the language of the software industry, there hasn't been an adequate parser generator
operating on the JVM that accomplishes one of the main pre-requisites for companies: speed. This project aims to tackle
this problem by leveraging the speed and expressiveness of LR(1) grammars.
## About
Check out [Kanonic's Documentation](https://github.com/johnedquinn/kanonic/wiki) for information regarding the Kanonic
syntax, example usage, code generation, and more!
## Status
*This project is a work-in-progress and should be considered experimental.*
## Building
```shell
./gradlew clean assemble
```
## Using the Tool
First, you'll need to install the `kanonic` command:
```shell
./gradlew :kanonic-tool:install
```
Then, run the command on a Kanonic file:
```shell
./kanonic-tool/build/install/kanonic-tool/bin/kanonic ./examples/calculator.knc
```
Or, see more options:
```shell
./kanonic-tool/build/install/kanonic-tool/bin/kanonic --help
```
Please see the [documentation](https://github.com/johnedquinn/kanonic/wiki) for more information!