e8e7a7f1fe
The panel migration tests (improvise-35e) keep their claim and lose their history; tile_bar's scroll loop keeps its algorithm note. gen-grammar's usage block is trimmed to the one line a reader runs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
23 lines
627 B
Rust
23 lines
627 B
Rust
//! Parse a `.improv` file from stdin and print the formatted result to stdout:
|
|
//! `cargo run --example pretty-print < file.improv`.
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|