#parser-generator #parser #peg #grammar #ast

peginator_codegen

Buildscript support for peginator (a PEG parser generator)

4 releases (2 breaking)

0.7.0 Feb 11, 2024
0.6.0 Nov 28, 2022
0.5.1 Nov 28, 2022
0.5.0 Nov 28, 2022

#334 in Parser tooling

Download history 27/week @ 2024-07-21 20/week @ 2024-07-28 8/week @ 2024-08-04 1/week @ 2024-08-11 11/week @ 2024-08-18 31/week @ 2024-08-25 23/week @ 2024-09-01 35/week @ 2024-09-08 60/week @ 2024-09-15 59/week @ 2024-09-22 9/week @ 2024-09-29

92 downloads per month
Used in 4 crates

MIT license

270KB
6.5K SLoC

Peginator codegen

Buildscript support for peginator. Please find documentation and other goodies on the main project.


lib.rs:

This crate contains the code used for generating peginator parsing code from a grammar file. Unless you are using Compile in a buildscript, you probably want to see the peginator crate documentation instead.

To integrate peginator using a buildscript, first add peginator_codegen as a build dependency in your Cargo.toml:

[build-dependencies]
peginator_codegen = "0.6"

And then in your build.rs:

use peginator_codegen::Compile;

fn main() {
    let out = format!("{}/grammar.rs", std::env::var("OUT_DIR").unwrap());

    peginator_codegen::Compile::file("grammar.ebnf")
        .destination(out)
        .format()
        .run_exit_on_error();

    println!("cargo:rerun-if-changed=grammar.ebnf");
}

See the documentation of Compile for more advanced options.

Dependencies

~0.3–10MB
~48K SLoC