aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2021-11-22 20:45:20 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2021-11-25 09:53:44 +0200
commitefa0a2676dccf23195cf0ab68510bfbac720f4a8 (patch)
tree9bde55042cd4c240c4ab1142be08bb148ce373fe /src
parentbad4b21dbec64c8d1f3bd006a7336f65f720649a (diff)
Term generation working seemingly
Diffstat (limited to 'src')
-rw-r--r--src/runtime.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/runtime.rs b/src/runtime.rs
index ca4457e..8f2c0e8 100644
--- a/src/runtime.rs
+++ b/src/runtime.rs
@@ -214,16 +214,17 @@ pub fn process(program: &ast::Program) {
let evaled_expr = process_expr(&symbol_table, expression, &bound_params);
let mut abstracted_expr: Rc<Term> = evaled_expr;
- // bound_params.iter().rev().for_each(|(_, v)| {
- // abstracted_expr = Rc::new(Value::Function(*v, Rc::clone(&abstracted_expr)));
- // });
+ bound_params.iter().rev().for_each(|(_, v)| {
+ abstracted_expr = Rc::new(Term::Abstraction(*v, Rc::clone(&abstracted_expr)));
+ });
symbol_table.insert(symbol.clone(), abstracted_expr);
}
ast::Statement::Expression(expression) => {
println!("[runtime] evaluating free-standing expression");
let term = process_expr(&symbol_table, expression, &vec![]);
- println!("Result:\n{}", term);
+ println!("Term:\n{}", term);
+ // let value = evaluate_term(&symbol_table, term);
}
}
}