Redistributable Java runtime for the parsers generated with Hime
The Hime parser generator is a parser generator that targets the .Net platform, Java and Rust. It primarily supports the LR family of parsing methods, including GLR (Generalized-LR). Key distinguishing features are:
The generated parsers can be embedded on software that target:
The parser generator (himecc) can run on:
Note: For the production of compiled parser assemblies in Java, Maven is required.
Note: For the production of compiled native assemblies with Rust, Cargo and the Rust toolchain is required.
runtime-net
: Contains the C# sources for the .Net implementation of the runtime library.runtime-java
: Contains the Java sources for the Java implementation of the runtime library.runtime-rust
: Contains the Rust sources for the Rust implementation of the runtime library.sdk-net
: Contains the C# sources of the SDK API, i.e. the parser generator.himecc
: Contains the C# sources of the .Net CLI interface of the parser generator (himecc).parseit-net
: Sources of the .Net version of the CLI tool for parsing bits of texts using a previously generated parser assembly.parseit-rust
: Sources of the Rust version of the CLI tool for parsing bits of texts using a previously generated parser assembly.tests-driver
: Sources of the tests driver for all runtime tests.tests-executor-net
: Sources of the test executor for the .Net runtime implementation.tests-executor-java
: Sources of the test executor for the Java runtime implementation.tests-executor-rust
: Sources of the test executor for the Rust runtime implementation..assets
: Contains some extra products, e.g. standard grammars..releng
: Contains the release engineering artifacts.To build the code and execute all tests, run
$ sh .releng/build.sh
To build all the release artifacts (requires a GPG key), run
$ sh .releng/release.sh
This requires:
During the build, a common set of tests are executed on all runtime implementations.
The results are output in the JUnit format in TestResults.xml
at the repository's root.
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.