Initial public commit of ISLE prototype DSL compiler.

This commit is contained in:
Chris Fallin
2021-06-29 17:00:43 -07:00
parent f2939111d9
commit 84b7612b98
13 changed files with 3201 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
use crate::ir::*;
use crate::sema;
struct LowerState<'a> {
tyenv: &'a sema::TypeEnv,
func: &'a sema::Func,
builder: FuncBuilder,
control_flow: ControlInput,
}
pub fn lower(tyenv: &sema::TypeEnv, func: &sema::Func) -> Func {
let mut builder = FuncBuilder::default();
let entry = builder.intern(Node::Entry);
let mut state = LowerState {
tyenv,
func,
builder,
control_flow: ControlInput(entry, 0),
};
if !func.is_extern && !func.is_inline {
for case in &func.cases {
state.lower_case(case);
}
}
state.builder.build()
}
impl<'a> LowerState<'a> {
fn lower_case(&mut self) {}
}