From 039fffb33964f29258716710dee996fda959742e Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 27 Jun 2023 16:39:10 -0600 Subject: [PATCH] better detect syntax errors in lexer.rs (#1771) --- src/lib/charsio.pl | 1 + src/parser/lexer.rs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/charsio.pl b/src/lib/charsio.pl index 1fc120f0..99b5c281 100644 --- a/src/lib/charsio.pl +++ b/src/lib/charsio.pl @@ -193,6 +193,7 @@ get_single_char(C) :- % ``` read_from_chars(Chars, Term) :- must_be(chars, Chars), + must_be(var, Term), '$read_term_from_chars'(Chars, Term). %% write_term_to_chars(+Term, +Options, -Chars). diff --git a/src/parser/lexer.rs b/src/parser/lexer.rs index 9aeacd82..236585d9 100644 --- a/src/parser/lexer.rs +++ b/src/parser/lexer.rs @@ -859,7 +859,13 @@ impl<'a, R: CharRead> Lexer<'a, R> { self.get_single_quoted_char() .map(|c| Token::Literal(Literal::Fixnum(Fixnum::build_with(c as i64)))) - .or_else(|_| { + .or_else(|err| { + match err { + ParserError::UnexpectedChar('\'', ..) => { + } + err => return Err(err), + } + self.return_char(c); i64::from_str_radix(&token, 10) -- 2.54.0