From ff3ec78df98c5122c3cf4c5e3eb507f5f7532a73 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Adri=C3=A1n=20Arroyo=20Calle?= Date: Tue, 18 Jan 2022 19:27:27 +0100 Subject: [PATCH] Fix Ctrl-D (#1168) --- src/parser/lexer.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) 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), -- 2.54.0