slint/sixtyfps_compiler/main.rs
Olivier Goffart c0a4902240 Rename expressions -> expression_tree
there is already an expressions module in the parser
2020-05-25 15:28:37 +02:00

40 lines
1 KiB
Rust

///! FIXME: remove this
use structopt::StructOpt;
#[cfg(feature = "proc_macro_span")]
extern crate proc_macro;
mod diagnostics;
mod expression_tree;
mod generator;
mod lower;
mod object_tree;
mod parser;
mod typeregister;
#[derive(StructOpt)]
struct Cli {
#[structopt(name = "path to .60 file", parse(from_os_str))]
path: std::path::PathBuf,
}
fn main() -> std::io::Result<()> {
let args = Cli::from_args();
let source = std::fs::read_to_string(&args.path)?;
let (syntax_node, mut diag) = parser::parse(&source);
diag.current_path = args.path;
//println!("{:#?}", syntax_node);
let mut tr = typeregister::TypeRegister::builtin();
let doc = object_tree::Document::from_node(syntax_node, &mut diag, &mut tr);
expression_tree::resolve_expressions(&doc, &mut diag, &mut tr);
//println!("{:#?}", doc);
if !diag.inner.is_empty() {
diag.print(source);
std::process::exit(-1);
}
let l = lower::LoweredComponent::lower(&*doc.root_component);
generator::generate(&l);
Ok(())
}