aboutsummaryrefslogtreecommitdiff
path: root/src/lisp/parse.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp/parse.rs')
-rw-r--r--src/lisp/parse.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lisp/parse.rs b/src/lisp/parse.rs
index 4e0f427..7cca434 100644
--- a/src/lisp/parse.rs
+++ b/src/lisp/parse.rs
@@ -58,7 +58,12 @@ impl<'lex> Parser<'lex> {
58 .parse::<i64>() 58 .parse::<i64>()
59 .map(|n| LispExpr::Number(LispNumber::Integer(n))) 59 .map(|n| LispExpr::Number(LispNumber::Integer(n)))
60 .map_err(|_| ParseError::new(span, ParseErrorKind::LiteralParseError).into()), 60 .map_err(|_| ParseError::new(span, ParseErrorKind::LiteralParseError).into()),
61 Token::String(s) => Ok(LispExpr::StringLit(s.into())), 61 Token::String(s) => Ok(LispExpr::StringLit(s[1..s.len() - 1].into())),
62 Token::Char(s) => Ok(LispExpr::Char(s.chars().nth(2).ok_or_else(
63 || -> LispError {
64 ParseError::new(span, ParseErrorKind::LiteralParseError).into()
65 },
66 )?)),
62 Token::Name(n) => Ok(name_expr(n)), 67 Token::Name(n) => Ok(name_expr(n)),
63 Token::BackQuote => { 68 Token::BackQuote => {
64 total_backticks += 1; 69 total_backticks += 1;