Skip to content
/ oak Public

A typed parser generator embedded in Rust code for Parsing Expression Grammars

License

Notifications You must be signed in to change notification settings

ptal/oak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oak

ptal on Travis CI

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 :-)

About

A typed parser generator embedded in Rust code for Parsing Expression Grammars

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages