From de5932b4c69769fa03ac13dc1b2237b40677cd67 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 13 Jun 2020 16:23:46 -0400 Subject: [PATCH] Fix bug in parsing order for literals. --- src/parser/parser.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/parser/parser.rs b/src/parser/parser.rs index d9cb88f..88e09f2 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -402,14 +402,14 @@ fn rvalue(i: &str) -> IResult<&str, RValue> { alt(( map(path, RValue::RVPath), map(template_string_rvalue, RValue::RVTemplate), - map(postitive_integer_literal, |num| { - RValue::RVLiteral(OwnedLiteral::LPositiveInteger(num)) + map(float_literal, |num| { + RValue::RVLiteral(OwnedLiteral::LFloat(num)) }), map(negative_integer_literal, |num| { RValue::RVLiteral(OwnedLiteral::LNegativeInteger(num)) }), - map(float_literal, |num| { - RValue::RVLiteral(OwnedLiteral::LFloat(num)) + map(postitive_integer_literal, |num| { + RValue::RVLiteral(OwnedLiteral::LPositiveInteger(num)) }), ))(i) } @@ -739,6 +739,13 @@ mod tests { use nom::error::ErrorKind; use nom::Err::Error; + #[test] + fn test_direct_literal() { + assert_eq!(super::float_literal("-17.4"), Ok(("", -17.4))); + assert_eq!(super::float_literal("17.1"), Ok(("", 17.1))); + assert_eq!(super::negative_integer_literal("-12"), Ok(("", -12))); + } + #[test] fn test_reference() { assert_eq!(