Add a conversion from our high-level IR to a lower-level one.
This commit is contained in:
23
src/bin.rs
23
src/bin.rs
@@ -3,6 +3,7 @@ use codespan_reporting::diagnostic::Diagnostic;
|
||||
use codespan_reporting::files::SimpleFiles;
|
||||
use codespan_reporting::term;
|
||||
use codespan_reporting::term::termcolor::{ColorChoice, StandardStream};
|
||||
use ngr::asts::lil;
|
||||
use ngr::passes::run_front_end;
|
||||
use pretty::Arena;
|
||||
|
||||
@@ -27,15 +28,29 @@ fn main() {
|
||||
let config = codespan_reporting::term::Config::default();
|
||||
|
||||
for error in hil_conversion_result.errors.drain(..) {
|
||||
term::emit(&mut writer.lock(), &config, &file_database, &Diagnostic::from(error)).unwrap();
|
||||
term::emit(
|
||||
&mut writer.lock(),
|
||||
&config,
|
||||
&file_database,
|
||||
&Diagnostic::from(error),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
for warning in hil_conversion_result.warnings.drain(..) {
|
||||
term::emit(&mut writer.lock(), &config, &file_database, &Diagnostic::from(warning)).unwrap();
|
||||
term::emit(
|
||||
&mut writer.lock(),
|
||||
&config,
|
||||
&file_database,
|
||||
&Diagnostic::from(warning),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
if let Some((tree, variable_map)) = hil_conversion_result.result {
|
||||
if let Some((hil_tree, mut variable_map)) = hil_conversion_result.result {
|
||||
let arena = Arena::new();
|
||||
tree.pretty(&variable_map, &arena)
|
||||
let lil_tree = lil::Program::convert(hil_tree, &mut variable_map);
|
||||
lil_tree
|
||||
.pretty(&variable_map, &arena)
|
||||
.into_doc()
|
||||
.render_colored(72, StandardStream::stdout(ColorChoice::Auto))
|
||||
.unwrap()
|
||||
|
||||
Reference in New Issue
Block a user