cenotelie / hime

Apache License 2.0
27 stars 4 forks source link
glr nuget parser-generator rust

README

Build Status Crates.io

Hime is a parser generator that targets .Net, Java and Rust. Hime relies on the LR family of parsing techniques, including the state of the art RNGLR algorithm for generalized LR parsing used for ambiguous grammars. Hime provides a powerful, expressive, and feature-rich grammar language with support for template syntactic rules, context-sensitive lexing (useful for contextal keywords), tree actions (useful for clean syntax trees), and more! Hime strongly emphasizes the separation of data and code. Hime forbids the inclusion of inline code in its grammar definitions in order to have very readable grammars that can be easily understood, debugged, improved. It is still possible to have custom code invoked during parsing with semantic actions.

The generated parsers require a runtime, available for the following platforms:

Parser generator

The parser generator (himecc) has native builds for Windows, MacOS and Linux.

Alternatively, himecc can be built and installed from sources with cargo :

cargo install hime_compiler

See all download options in the download page of the doc.

How do I use this software?

License

All software is available under the terms of the Apache License 2.0.

Repository structure

How to build

To build the code and execute all tests, run

$ sh build.sh

Note that the development environment is fully dockerized and executing this command requires docker and will pull the required docker image if not locally available.

How can I contribute?

The simplest way to contribute is to:

Patches can also be submitted by email, or through the issue management system.

The isse tracker contains tickets that are accessible to newcomers. Look for tickets with [beginner] in the title. These tickets are good ways to become more familiar with the project and the codebase.