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
每月下载33,898次
在 84 个 包中使用(直接使用2个)
48KB
946 行
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 License, Version 2.0, (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,将按上述方式双重许可,不附加任何额外条款或条件。
依赖项
~1MB
~19K SLoC