aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--minimal.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/minimal.rs b/minimal.rs
index c0fe3e8..7ddd8d6 100644
--- a/minimal.rs
+++ b/minimal.rs
@@ -154,7 +154,11 @@ fn scheme_parse<'a>(tokens: &Vec<&'a str>, depth: u32) -> Result<(SchemeExpr<'a>
return Err("missing a close bracket");
}
let rlen = ret.len();
- return Ok((SchemeExpr::SchemeList(ret), rlen));
+ if depth == 0 && rlen == 1 {
+ return Ok((ret.pop().unwrap(), rlen));
+ } else {
+ return Ok((SchemeExpr::SchemeList(ret), rlen));
+ }
}
fn scheme_repr<'a>(ast: &SchemeExpr) -> Result<String, &'static str> {