22 releases
Uses old Rust 2015
0.6.0 | Jan 12, 2021 |
---|---|
0.5.5 | Mar 20, 2017 |
0.4.3 | Jan 26, 2017 |
0.4.2 | Dec 24, 2016 |
0.3.6 | Nov 12, 2015 |
#271 in Parser tooling
Used in oak
24KB
615 lines
Oak
Compiled on the nightly channel of Rust. Use rustup for managing compiler channels.
You can download and set up the exact same version of the compiler used with rustup override add 2021-01-06
.
Please consult the Oak manual.
Features
- Easy to install: PEG grammar description as a Rust procedural macro.
- User-friendly: most of the types are automatically inferred from the parsing expressions.
- Safe: Well-formedness analysis guarantees termination.
- Modular: External parser rules can be called at any time.
- Fast: Generation of both recognizer and parser functions for each rule.
Build local documentation
You might want to build the manual or code documentation from the repository because you need it to be synchronized with a specific version of Oak or simply for offline usage. Here how to do it!
Build the manual
You need the utility mdbook:
cargo install mdbook
Once installed, go inside oak/doc
and execute mdbook build -o
.
The manual is generated inside a local folder named book
and directly opened in your browser.
Build the code documentation
As a user of Oak, you will be interested by the runtime documentation.
cd oak/runtime
cargo doc
The documentation is then available in oak/runtime/target/doc
.
To build the internal documentation of Oak, you can type this command at the root of the project:
cd oak
rustdoc --document-private-items --output=target/dev-doc src/liboak/lib.rs
The documentation will be available inside oak/target/dev-doc
.
It is useful to work on Oak :-)
lib.rs
:
This is the documentation of the Oak runtime. Oak is a parser generator of Parsing Expression Grammar, please read first the manual.
This library is used by the generated code of Oak and is also necessary to any Oak users for interfacing with the code generated.
A PEG combinator returns a ParseState
, please consult the methods into_result
or unwrap_data
as they are good starting point for retrieving useful information.
Dependencies
~280KB