Fix Ctrl-D (#1168)
This commit is contained in:
@@ -122,19 +122,11 @@ impl<'a, R: CharRead> Lexer<'a, R> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn eof(&mut self) -> Result<bool, ParserError> {
|
pub fn eof(&mut self) -> Result<bool, ParserError> {
|
||||||
if self.reader.peek_char().is_none() {
|
|
||||||
return Ok(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut c = is_not_eof!(self.reader, self.lookahead_char());
|
let mut c = is_not_eof!(self.reader, self.lookahead_char());
|
||||||
|
|
||||||
while layout_char!(c) {
|
while layout_char!(c) {
|
||||||
self.skip_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());
|
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)
|
self.name_token(c)
|
||||||
}
|
}
|
||||||
Err(e) => Err(e),
|
Err(e) => Err(e),
|
||||||
|
|||||||
Reference in New Issue
Block a user