aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/lex
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/src/lex')
-rw-r--r--compiler/src/lex/lexer.rs6
-rw-r--r--compiler/src/lex/tests.rs8
2 files changed, 1 insertions, 13 deletions
diff --git a/compiler/src/lex/lexer.rs b/compiler/src/lex/lexer.rs
index 6efbca0..5e45b20 100644
--- a/compiler/src/lex/lexer.rs
+++ b/compiler/src/lex/lexer.rs
@@ -131,12 +131,8 @@ impl<'a> Iterator for Lexer<'a> {
131 131
132 // Number 132 // Number
133 ch if ch.is_ascii_digit() 133 ch if ch.is_ascii_digit()
134 || ch == '.' && self.peek_nth(1).is_some_and(|ch| ch.is_ascii_digit())
135 || matches!(ch, '+' | '-') 134 || matches!(ch, '+' | '-')
136 && self.peek_nth(1).is_some_and(|ch| ch.is_ascii_digit()) 135 && self.peek_nth(1).is_some_and(|ch| ch.is_ascii_digit()) =>
137 || matches!(ch, '+' | '-')
138 && self.peek_nth(1).is_some_and(|ch| ch == '.')
139 && self.peek_nth(2).is_some_and(|ch| ch.is_ascii_digit()) =>
140 { 136 {
141 Token::Number(self.next_atom()) 137 Token::Number(self.next_atom())
142 } 138 }
diff --git a/compiler/src/lex/tests.rs b/compiler/src/lex/tests.rs
index d0ed658..0672dfa 100644
--- a/compiler/src/lex/tests.rs
+++ b/compiler/src/lex/tests.rs
@@ -42,16 +42,8 @@ fn test_numbers() {
42 let cases = vec![ 42 let cases = vec![
43 ("0", vec![Number("0")]), 43 ("0", vec![Number("0")]),
44 ("42", vec![Number("42")]), 44 ("42", vec![Number("42")]),
45 ("3.14", vec![Number("3.14")]),
46 ("-7", vec![Number("-7")]), 45 ("-7", vec![Number("-7")]),
47 ("+5", vec![Number("+5")]), 46 ("+5", vec![Number("+5")]),
48 ("-0.5", vec![Number("-0.5")]),
49 ("1e10", vec![Number("1e10")]),
50 ("1.5e-3", vec![Number("1.5e-3")]),
51 (".5", vec![Number(".5")]),
52 ("-.5", vec![Number("-.5")]),
53 ("+.5", vec![Number("+.5")]),
54 ("-.0", vec![Number("-.0")]),
55 ]; 47 ];
56 for (code, tokens) in cases { 48 for (code, tokens) in cases {
57 assert_eq!(tokenize(code), tokens); 49 assert_eq!(tokenize(code), tokens);