aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 30bd136..d7a2196 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -191,13 +191,15 @@ fn repl(mut binds: Vec<SExp>) -> Result<(), io::Error> {
}
let orig_expression = match parse_to_ast(&input) {
- Ok(SCons(a, b)) if *b == Atom(Nil) => *a,
+ Ok(SCons(a, b)) if *b == Atom(Nil) && *a != Atom(Nil) => *a,
+ Ok(Atom(Nil)) => scons(Nil, Nil),
Ok(t) => t,
Err(e) => {
println!("Syntax error: {}", e);
continue;
},
};
+
if let Some((name, _value)) = orig_expression.clone().check_let() {
let mut expr = scons(orig_expression.clone(), scons(Nil, Nil));
for i in 1..=binds.len() {