Some tests for exact numbers; adding sign after exact specifier

This commit is contained in:
Eryn Wells 2016-12-27 10:14:03 -07:00
parent 00d8380eac
commit b00615a7b6

View file

@ -229,6 +229,11 @@ impl Lexer {
self.state = State::Hash;
self.advance();
}
else if let Some(sign) = Sign::from_char(c) {
self.number_builder.sign(sign);
self.state = State::NumberSign;
self.advance();
}
else if c.is_digit(self.number_builder.radix_value()) {
self.number_builder.extend_value(c);
self.state = State::Number;
@ -452,6 +457,12 @@ mod tests {
check_single_token("#o45", Token::Number(Number::from_int(0o45)));
}
#[test]
fn finds_exact_numbers() {
check_single_token("#e45", Token::Number(Number::from_int(45)));
check_single_token("#e-45", Token::Number(Number::from_int(-45)));
}
#[test]
fn finds_hex_numbers() {
check_single_token("#h4A65", Token::Number(Number::from_int(0x4A65)));