From 828dce05bf6da6a4e454c2264bfc504df51c4631 Mon Sep 17 00:00:00 2001 From: Phoenix Himself Date: Fri, 7 Jun 2024 17:38:35 +0200 Subject: [PATCH] fix: use propriate methods in number parser --- src/modules/expression/literal/number.rs | 6 +++--- src/tests/validity.rs | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/modules/expression/literal/number.rs b/src/modules/expression/literal/number.rs index b63bc63e..d6ab03c9 100644 --- a/src/modules/expression/literal/number.rs +++ b/src/modules/expression/literal/number.rs @@ -26,12 +26,12 @@ impl SyntaxModule for Number { if let Ok(sym) = token(meta, "-") { self.value.push_str(&sym); } - if let Ok(value) = number(meta, vec![]) { + if let Ok(value) = integer(meta, vec![]) { self.value.push_str(&value); } if let Ok(sym) = token(meta, ".") { self.value.push_str(&sym); - self.value.push_str(&number(meta, vec![])?); + self.value.push_str(&integer(meta, vec![])?); } if self.value.is_empty() { return Err(Failure::Quiet(PositionInfo::from_metadata(meta))) @@ -44,4 +44,4 @@ impl TranslateModule for Number { fn translate(&self, _meta: &mut TranslateMetadata) -> String { self.value.to_string() } -} \ No newline at end of file +} diff --git a/src/tests/validity.rs b/src/tests/validity.rs index 3e915fd9..fdb58d7f 100644 --- a/src/tests/validity.rs +++ b/src/tests/validity.rs @@ -99,6 +99,16 @@ fn very_complex_arithmetic() { test_amber!(code, "24"); } +#[test] +fn fractions_with_no_leading_zero() { + let code = " + let a = .2 + let b = .1 + echo a + b + "; + test_amber!(code, ".3"); +} + #[test] fn parenthesis() { let code = "