lex: fix single 0 recognition

main
anna 2 years ago
parent 620be5dba1
commit a86c2ec584
Signed by: fef
GPG Key ID: EC22E476DC2D3D84

@ -277,8 +277,13 @@ impl Lexer {
Some('x') => self.read_int_literal(16),
Some('o') => self.read_int_literal(8),
Some('b') => self.read_int_literal(2),
Some(c) => self.syntax_error(format!("Unexpected character '{}'", c)),
None => self.syntax_error(String::from("Unexpected end-of-file")),
Some(c @ '0'..='9') => self.syntax_error(String::from("Decimal literals must not start with a 0")),
Some(c) if c.is_ident_part() => self.syntax_error(format!("Unexpected character '{}'", c)),
_ => {
// it wasn't a prefixed int literal at all, just a single 0
self.cursor.prev();
self.token_ok(token::Kind::IntLiteral)
},
}
}

Loading…
Cancel
Save