41 lines
908 B
Rust
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);
|
|
}
|
|
}
|