diff --git a/src/evaluator.rs b/src/evaluator.rs index c3bfc14..8e8dd6f 100644 --- a/src/evaluator.rs +++ b/src/evaluator.rs @@ -87,6 +87,7 @@ mod test { #[rstest] // Raw values #[case("1", "1")] + #[case("1_000", "1000")] #[case("\"uwu\"", "uwu")] #[case(":owo", ":owo")] #[case("()", "()")] diff --git a/src/parser/lexer.rs b/src/parser/lexer.rs index e9e3651..3db6dbe 100644 --- a/src/parser/lexer.rs +++ b/src/parser/lexer.rs @@ -173,6 +173,11 @@ fn read_int(input: &mut Peekable, first: char) -> Token { let mut raw_int = vec![first]; while let Some(c) = input.peek() { + if *c == '_' { + input.next(); + continue; + } + if !c.is_ascii_digit() { break; }