book_keywords_transform/
book_keywords_transform.rs

1fn main() {
2    let mut parser = trivet::parse_from_stdin();
3    parser.borrow_keyword_parser().use_transform = true;
4    parser.borrow_keyword_parser().transform =
5        Box::new(|ch| if [':', '.'].contains(&ch) { '_' } else { ch });
6    while !parser.is_at_eof() {
7        match parser.parse_keyword_ws() {
8            Err(err) => {
9                println!("ERROR: {}", err);
10                // Consume until whitespace, then resume trying.
11                parser.take_while(|ch| !ch.is_whitespace());
12                parser.consume_ws();
13            }
14            Ok(value) => {
15                println!("  {}", value);
16            }
17        }
18    }
19}