feat(examples): add grammar generation and pretty-printing utilities
Add new examples for generating sample .improv data based on the Pest grammar and pretty-printing existing .improv files. Co-Authored-By: fiddlerwoaroof/git-smart-commit (gemma-4-31B-it-UD-Q4_K_XL.gguf)
This commit is contained in:
25
examples/pretty-print.rs
Normal file
25
examples/pretty-print.rs
Normal file
@ -0,0 +1,25 @@
|
||||
//! Parse a `.improv` file from stdin and print the formatted result to stdout.
|
||||
//!
|
||||
//! Usage:
|
||||
//! cargo run --example pretty-print < file.improv
|
||||
//! cargo run --example gen-grammar -- file | cargo run --example pretty-print
|
||||
|
||||
use std::io::Read;
|
||||
|
||||
fn main() {
|
||||
let mut input = String::new();
|
||||
if let Err(e) = std::io::stdin().read_to_string(&mut input) {
|
||||
eprintln!("Failed to read stdin: {e}");
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
match improvise::persistence::parse_md(&input) {
|
||||
Ok(model) => {
|
||||
print!("{}", improvise::persistence::format_md(&model));
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("Parse error: {e:#}");
|
||||
std::process::exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user