tml/src/main.rs

41 lines
908 B
Rust

pub mod args;
pub mod ast;
pub mod block;
pub mod border;
pub mod dom;
pub mod layout;
pub mod node;
pub mod source;
pub mod text;
fn main() {
let src_path = std::env::args().nth(1).unwrap();
let src = std::fs::read_to_string(src_path).unwrap();
let source = std::sync::Arc::new(source::Source::from_string(src.clone()));
let mut ast_builder = ast::AstBuilder::new(&source);
let body = match ast_builder.parse_tag_body() {
Ok(body) => body,
Err(e) => panic!("Parse error:\n{}", e),
};
println!("{:#?}", body);
let mut dom = match dom::Dom::parse(&body) {
Ok(dom) => dom,
Err(e) => panic!("DOM parse error:\n{}", e),
};
let size = layout::Dimensions {
width: 80,
height: 20,
};
dom.print();
let rendered = dom.render(size);
for line in rendered.lines.iter() {
println!("{}", line);
}
}