trivet 3.1.0

The trivet Parser Library
Documentation
fn main() {
    let mut parser = trivet::parse_from_stdin();
    parser.borrow_keyword_parser().use_transform = true;
    parser.borrow_keyword_parser().transform =
        Box::new(|ch| if [':', '.'].contains(&ch) { '_' } else { ch });
    while !parser.is_at_eof() {
        match parser.parse_keyword_ws() {
            Err(err) => {
                println!("ERROR: {}", err);
                // Consume until whitespace, then resume trying.
                parser.take_while(|ch| !ch.is_whitespace());
                parser.consume_ws();
            }
            Ok(value) => {
                println!("  {}", value);
            }
        }
    }
}