Crates.io | abnf |
lib.rs | abnf |
version | 0.13.0 |
source | src |
created_at | 2019-04-15 10:32:45.127549 |
updated_at | 2022-10-21 14:57:05.873546 |
description | A nom-based parser for ABNF. |
homepage | |
repository | https://github.com/duesee/abnf |
max_upload_size | |
id | 128084 |
size | 93,889 |
A parser for ABNF based on nom 7.
The following code
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),
}
outputs
[
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,
},
]
You can also use the provided example to parse and Debug
-print any ABNF file.
cargo run --example=example examples/assets/abnf.abnf
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.