diff options
Diffstat (limited to 'src/lisp/expr.rs')
-rw-r--r-- | src/lisp/expr.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lisp/expr.rs b/src/lisp/expr.rs index 9f2dc8d..1f3e0fb 100644 --- a/src/lisp/expr.rs +++ b/src/lisp/expr.rs | |||
@@ -3,7 +3,7 @@ use std::{cmp::PartialEq, convert::TryFrom, fmt}; | |||
3 | use crate::app::AppState; | 3 | use crate::app::AppState; |
4 | use crate::lisp::{ | 4 | use crate::lisp::{ |
5 | error::{EvalError, LispError}, | 5 | error::{EvalError, LispError}, |
6 | eval::lookup_extended, | 6 | eval::{lookup, Evaluator}, |
7 | number::LispNumber, | 7 | number::LispNumber, |
8 | EnvList, | 8 | EnvList, |
9 | }; | 9 | }; |
@@ -36,6 +36,7 @@ impl Arity { | |||
36 | pub struct PrimitiveFunc { | 36 | pub struct PrimitiveFunc { |
37 | pub arity: Arity, // minimim arity | 37 | pub arity: Arity, // minimim arity |
38 | pub closure: fn(&[LispExpr], &mut AppState) -> Result<LispExpr, LispError>, | 38 | pub closure: fn(&[LispExpr], &mut AppState) -> Result<LispExpr, LispError>, |
39 | pub name: &'static str, | ||
39 | } | 40 | } |
40 | 41 | ||
41 | impl PrimitiveFunc { | 42 | impl PrimitiveFunc { |
@@ -123,8 +124,8 @@ impl LispExpr { | |||
123 | (LispExpr::Char(s), LispExpr::Char(o)) => Ok(s == o), | 124 | (LispExpr::Char(s), LispExpr::Char(o)) => Ok(s == o), |
124 | (LispExpr::BoolLit(s), LispExpr::BoolLit(o)) => Ok(s == o), | 125 | (LispExpr::BoolLit(s), LispExpr::BoolLit(o)) => Ok(s == o), |
125 | (LispExpr::Ident(s), LispExpr::Ident(o)) => { | 126 | (LispExpr::Ident(s), LispExpr::Ident(o)) => { |
126 | let s = lookup_extended(envs, s)?; | 127 | let s = lookup(envs, s)?; |
127 | let o = lookup_extended(envs, o)?; | 128 | let o = lookup(envs, o)?; |
128 | s.compare(&o, envs) | 129 | s.compare(&o, envs) |
129 | } | 130 | } |
130 | (LispExpr::PrimitiveFunc(s), LispExpr::PrimitiveFunc(o)) => { | 131 | (LispExpr::PrimitiveFunc(s), LispExpr::PrimitiveFunc(o)) => { |