[package]
edition = "2024"
name = "bnf"
version = "0.6.0"
authors = [
"@shnewto",
"@CrockAgile",
]
build = false
exclude = [
".github",
"tests",
"*.snap",
"*.bnf",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A library for parsing Backus–Naur form context-free grammars"
homepage = "https://github.com/shnewto/bnf"
documentation = "https://docs.rs/bnf"
readme = "README.md"
keywords = [
"bnf",
"earley",
"parser",
]
categories = [
"parser-implementations",
"parsing",
"development-tools",
]
license = "MIT"
repository = "https://github.com/shnewto/bnf"
[package.metadata.docs.rs]
all-features = true
[features]
ABNF = []
default = [
"ABNF",
"serde",
]
serde = [
"dep:serde",
"dep:serde_json",
]
tracing = [
"dep:tracing",
"dep:tracing-subscriber",
"dep:tracing-flame",
]
unstable = []
[lib]
name = "bnf"
path = "src/lib.rs"
[[example]]
name = "create_grammar"
path = "examples/create_grammar.rs"
[[example]]
name = "parse_tree"
path = "examples/parse_tree.rs"
[[example]]
name = "parse_tree_explicit_entrypoint"
path = "examples/parse_tree_explicit_entrypoint.rs"
[[bench]]
name = "divan"
path = "benches/divan.rs"
harness = false
[[bench]]
name = "util"
path = "benches/util.rs"
[dependencies.hashbrown]
version = "0.16.1"
[dependencies.nom]
version = "^8.0.0"
[dependencies.rand]
version = "0.9.2"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0.149"
optional = true
[dependencies.tracing]
version = "0.1.44"
optional = true
[dependencies.tracing-flame]
version = "0.2.0"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.22"
features = ["env-filter"]
optional = true
[dev-dependencies.divan]
version = "0.1.21"
[dev-dependencies.insta]
version = "1.46.1"
default-features = false
[dev-dependencies.mutants]
version = "0.0.4"
[dev-dependencies.quickcheck]
version = "1.0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.3.4"
features = ["wasm_js"]
[lints.clippy]
all = "deny"
clone_on_ref_ptr = "deny"
complexity = "deny"
dbg_macro = "deny"
doc_markdown = "deny"
exhaustive_structs = "deny"
implicit_clone = "deny"
indexing_slicing = "deny"
let_underscore_must_use = "deny"
map_err_ignore = "deny"
missing_const_for_fn = "deny"
must_use_candidate = "deny"
perf = "deny"
print_stderr = "deny"
print_stdout = "deny"
rc_buffer = "deny"
rc_mutex = "deny"
redundant_type_annotations = "deny"
style = "deny"
suspicious = "deny"
tests_outside_test_module = "deny"
todo = "deny"
try_err = "deny"
undocumented_unsafe_blocks = "deny"
use_debug = "deny"