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

peginator_codegen

为 Peginator(一个 PEG 解析器生成器)提供构建脚本支持

4 个版本 (2 个重大变更)

0.7.0 2024年2月11日
0.6.0 2022年11月28日
0.5.1 2022年11月28日
0.5.0 2022年11月28日

#298解析器工具

每月48 次下载
4 个crate 使用

MIT 许可证

270KB
6.5K SLoC

Peginator codegen

peginator 提供构建脚本支持。请查阅主项目的文档和其他资源。


lib.rs:

此crate包含用于从语法文件生成 peginator 解析代码的代码。除非你在构建脚本中使用 Compile,否则你可能想查看 peginator crate 文档。

要使用构建脚本集成 peginator,首先在你的 Cargo.toml 中将 peginator_codegen 添加为构建依赖项

[build-dependencies]
peginator_codegen = "0.6"

然后在你的 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");
}

查看 Compile 的文档以获取更多高级选项。

依赖项

~0.3–10MB
~49K SLoC