From 2601f8e4a187c38f535539cf2aee6926e8b487fa Mon Sep 17 00:00:00 2001 From: tech <10032418+techwritescode@users.noreply.github.com> Date: Thu, 7 Aug 2025 12:12:42 -0500 Subject: [PATCH] Allow underscores in numbers. --- parser/src/tokenizer.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/parser/src/tokenizer.rs b/parser/src/tokenizer.rs index 673cf11..2cb75d2 100644 --- a/parser/src/tokenizer.rs +++ b/parser/src/tokenizer.rs @@ -224,19 +224,33 @@ impl<'a> Tokenizer<'a> { } fn number(&mut self) { - while self.input.peek().is_some_and(|c| c.is_numeric()) { + while self + .input + .peek() + .is_some_and(|c| c.is_numeric() || c == '_') + { self.input.advance(); } } fn hex_number(&mut self) { - while !self.input.at_end() && self.input.peek().is_some_and(|c| c.is_ascii_hexdigit()) { + while !self.input.at_end() + && self + .input + .peek() + .is_some_and(|c| c.is_ascii_hexdigit() || c == '_') + { self.input.advance(); } } fn bin_number(&mut self) { - while !self.input.at_end() && self.input.peek().is_some_and(|c| matches!(c, '0' | '1')) { + while !self.input.at_end() + && self + .input + .peek() + .is_some_and(|c| matches!(c, '0' | '1' | '_')) + { self.input.advance(); } }