19次发布 (12次重大更新)

0.13.0 2022年10月21日
0.12.0 2021年7月16日
0.11.3 2021年4月14日
0.10.0 2021年2月22日
0.2.0 2019年7月1日

解析器实现 中排名第820

Download history 6886/week @ 2024-04-21 5972/week @ 2024-04-28 7168/week @ 2024-05-05 8651/week @ 2024-05-12 7773/week @ 2024-05-19 7923/week @ 2024-05-26 8955/week @ 2024-06-02 7739/week @ 2024-06-09 7054/week @ 2024-06-16 8246/week @ 2024-06-23 6229/week @ 2024-06-30 7612/week @ 2024-07-07 9038/week @ 2024-07-14 7091/week @ 2024-07-21 8460/week @ 2024-07-28 8855/week @ 2024-08-04

每月下载33,898
84 包中使用(直接使用2个)

MIT/Apache

48KB
946

CI Scheduled docs

ABNF

基于nom 7的ABNF解析器

示例

以下代码

use abnf::rulelist;

// Note: mind the trailing newline!
match rulelist("a = b / c\nc = *(d e)\n") {
    Ok(rules) => println!("{:#?}", rules),
    Err(error) => eprintln!("{}", error),
}

输出

[
    Rule {
        name: "a",
        node: Alternatives(
            [
                Rulename(
                    "b",
                ),
                Rulename(
                    "c",
                ),
            ],
        ),
        kind: Basic,
    },
    Rule {
        name: "c",
        node: Repetition {
            repeat: Variable {
                min: None,
                max: None,
            },
            node: Group(
                Concatenation(
                    [
                        Rulename(
                            "d",
                        ),
                        Rulename(
                            "e",
                        ),
                    ],
                ),
            ),
        },
        kind: Basic,
    },
]

您也可以使用提供的示例来解析并打印任何ABNF文件。

cargo run --example=example examples/assets/abnf.abnf

许可证

许可协议为以下之一:

任选其一。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,将按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~1MB
~19K SLoC