all tests green

Signed-off-by: Ava Hahn <ava@aidanis.online>
This commit is contained in:
Ava Hahn 2023-02-25 23:36:30 -08:00
parent 82854a58f8
commit 93a1e06a53
Signed by untrusted user who does not match committer: affine
GPG key ID: 3A4645B8CF806069
5 changed files with 94 additions and 32 deletions

View file

@ -32,7 +32,7 @@ pub fn eval (
// to be assigned from cloned/evaled data
let mut car;
let mut cdr = Box::from(Ctr::None);
let mut cdr;
// lets me redirect the input
let mut arg_car = &ast.car;
@ -63,6 +63,12 @@ pub fn eval (
Ok(s) => car = s,
Err(s) => return Err(format!("error in call to {}: {}", tok, s)),
}
if let Some(b) = syms.is_function_type(tok) {
if b {
return Ok(car);
}
}
}
_ => {
@ -81,24 +87,24 @@ pub fn eval (
}
Ctr::Seg(ref next) => {
if let Ctr::None = *ret {
*ret = Ctr::Seg(Seg::from(car, cdr.clone()))
} else if let Ctr::Seg(ref mut s) = *ret {
s.append(Box::from(Ctr::Seg(Seg::from(car, cdr.clone()))))
}
cdr = Box::from(Ctr::None);
arg_car = &next.car;
arg_cdr = &next.cdr
}
_ => {
cdr = ast.cdr.clone();
cdr = arg_cdr.clone();
none = true;
}
}
if let Ctr::None = **arg_car {
if let Ctr::None = **arg_cdr {
none = true;
if let Ctr::None = *ret {
*ret = Ctr::Seg(Seg::from(car, cdr))
} else if let Ctr::Seg(ref mut s) = *ret {
s.append(car);
if let Ctr::None = *cdr {
} else {
s.append(cdr);
}
}