Add a conversion from our high-level IR to a lower-level one.

This commit is contained in:
2022-02-24 21:18:30 -08:00
parent 9d82c8ca2d
commit dcc6562050
9 changed files with 332 additions and 37 deletions

View File

@@ -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()