From: Adrián Arroyo Calle Date: Tue, 18 Jan 2022 18:27:27 +0000 (+0100) Subject: Fix Ctrl-D (#1168) X-Git-Tag: v0.9.0^2~51^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=ff3ec78df98c5122c3cf4c5e3eb507f5f7532a73;p=scryer-prolog.git Fix Ctrl-D (#1168) --- diff --git a/src/parser/lexer.rs b/src/parser/lexer.rs index d2487666..4696b226 100644 --- a/src/parser/lexer.rs +++ b/src/parser/lexer.rs @@ -122,19 +122,11 @@ impl<'a, R: CharRead> Lexer<'a, R> { } pub fn eof(&mut self) -> Result { - if self.reader.peek_char().is_none() { - return Ok(true); - } - let mut c = is_not_eof!(self.reader, self.lookahead_char()); while layout_char!(c) { self.skip_char(c); - if self.reader.peek_char().is_none() { - return Ok(true); - } - c = is_not_eof!(self.reader, self.lookahead_char()); } @@ -1051,6 +1043,10 @@ impl<'a, R: CharRead> Lexer<'a, R> { }; } + if c == '\u{0}' { + return Err(ParserError::UnexpectedEOF); + } + self.name_token(c) } Err(e) => Err(e),