#![allow(clippy::print_stdout, clippy::use_debug)]
use bnf::Grammar;
fn main() {
let bnf_input = r#"
<dna> ::= <base> | <base> <dna>
<base> ::= 'A' | 'C' | 'G' | 'T'
"#;
let grammar: Result<Grammar, _> = bnf_input.parse();
match grammar {
Ok(g) => {
println!("Successfully created Grammar!");
println!("Grammar structure:");
println!("{g:#?}");
println!("\nGenerating a random DNA sequence:");
match g.generate() {
Ok(sentence) => println!("Generated: {sentence}"),
Err(e) => println!("Error generating: {e}"),
}
}
Err(e) => println!("Failed to create grammar from BNF string: {e}"),
}
}