From 28e45349e4eb5867a1b75c5b93f7fa0653485edd Mon Sep 17 00:00:00 2001 From: bnewbold Date: Wed, 20 Apr 2016 17:06:35 -0400 Subject: rust: unwrap single-expr parse results --- minimal.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 { -- cgit v1.2.3