summaryrefslogtreecommitdiff
path: root/examples/tokenize.rs
blob: f8859e475075cc3cb2cf856904b6a0c7aa53328f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//! Let's you easily try out the tokenizer with e.g.
//! printf '<h1>Hello world!</h1>' | cargo run --example=tokenize

use html5tokenizer::{DefaultEmitter, Tokenizer};
use std::io::BufReader;

fn main() {
    let mut tokenizer = Tokenizer::new(
        BufReader::new(std::io::stdin().lock()),
        DefaultEmitter::default(),
    );
    while let Some(token) = tokenizer.next() {
        for (error, _) in tokenizer.emitter_mut().drain_errors() {
            eprintln!("error: {:?}", error);
        }
        let token = token.unwrap();
        println!("{:?}", token);
    }
}