diff options
author | JJ | 2023-04-13 07:20:06 +0000 |
---|---|---|
committer | JJ | 2023-04-13 07:21:28 +0000 |
commit | 5ae010fef48cc2bf83a0d366d2a1cfa74ecce278 (patch) | |
tree | 2241dcec8d38d16e2314e94b4dec0ed61e20d922 /src/main.rs | |
parent | 188631f3bb263700c34d578af5968ab80e699485 (diff) |
major cleanups: extend Type, refactor Term, and switch to String errs
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 2a44397..4504d87 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ use chrysanthemum::ast::*; fn main() { println!("chrysanthemum"); let mut input = String::new(); + let empty_context = Context::new(); loop { println!("infer, check, or execute? (i/c/e)"); print!("\x1b[1m==> \x1b[22m"); @@ -21,8 +22,8 @@ fn main() { input.clear(); stdin().read_line(&mut input).unwrap(); - match simple::infer(Context::new(), parser::parse_lambda(&input).unwrap()) { - Ok(term) => println!("infers! {:?}", term), + match simple::infer(&empty_context, parser::parse_lambda(&input).unwrap()) { + Ok(kind) => println!("infers! {}", kind), Err(e) => println!("{:?}", e), } }, @@ -33,10 +34,10 @@ fn main() { input.clear(); stdin().read_line(&mut input).unwrap(); - let kind = simple::infer(Context::new(), parser::parse(&input)); + let kind = simple::infer(&empty_context, parser::parse(&input)); match kind { Ok(kind) => { - match simple::check(Context::new(), parser::parse_lambda(&input).unwrap(), kind) { + match simple::check(&empty_context, parser::parse_lambda(&input).unwrap(), &kind) { Ok(_) => println!("checks!"), Err(e) => println!("{:?}", e), } @@ -51,8 +52,8 @@ fn main() { input.clear(); stdin().read_line(&mut input).unwrap(); - match simple::execute(Context::new(), parser::parse_lambda(&input).unwrap()) { - Ok(term) => println!("{:?}", term), + match simple::execute(&empty_context, parser::parse_lambda(&input).unwrap()) { + Ok(term) => println!("{}", term), Err(e) => println!("{:?}", e) } }, |