Lines Matching refs:eval_expression
268 fn eval_expression(e: Expr) -> Option<Expr> {
272 // we then recursively `eval_expression` in the context of our special forms
275 let reduce_pred = eval_expression(*pred)?;
277 eval_expression(*true_branch)
283 let reduce_pred = eval_expression(*pred)?;
285 eval_expression(*true_branch)
287 eval_expression(*false_branch)
291 let reduced_head = eval_expression(*head)?;
294 .map(|expr| eval_expression(expr))
364 .and_then(|(_, exp)| eval_expression(exp).ok_or("Eval failed".to_string()))