An open API service indexing awesome lists of open source software.

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.

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!