diff --git a/lef21/src/read.rs b/lef21/src/read.rs
index 9964ed0..513b66d 100644
--- a/lef21/src/read.rs
+++ b/lef21/src/read.rs
@@ -177,8 +177,11 @@ impl<'src> LefLexer<'src> {
if self.accept_char('#') {
return self.lex_comment();
}
- if self.accept(|c| c.is_digit(10) || c == '-') {
- return self.lex_number();
+ match self.peek_char() {
+ Some(ref c) if c.is_digit(10) || *c == '.' || *c == '-' => {
+ return self.lex_number(*c);
+ }
+ _ => {}
}
if self.accept(char::is_alphabetic) {
return self.lex_name();
@@ -201,12 +204,25 @@ impl<'src> LefLexer<'src> {
let tok = self.emit(TokenType::WhiteSpace);
Ok(Some(tok))
}
- /// Lex a number
- fn lex_number(&mut self) -> LefResult