Fix bug in parsing order for literals.

This commit is contained in:
Tom Alexander 2020-06-13 16:23:46 -04:00
parent 2a89fd826e
commit de5932b4c6
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE

View File

@ -402,14 +402,14 @@ fn rvalue(i: &str) -> IResult<&str, RValue> {
alt(( alt((
map(path, RValue::RVPath), map(path, RValue::RVPath),
map(template_string_rvalue, RValue::RVTemplate), map(template_string_rvalue, RValue::RVTemplate),
map(postitive_integer_literal, |num| { map(float_literal, |num| {
RValue::RVLiteral(OwnedLiteral::LPositiveInteger(num)) RValue::RVLiteral(OwnedLiteral::LFloat(num))
}), }),
map(negative_integer_literal, |num| { map(negative_integer_literal, |num| {
RValue::RVLiteral(OwnedLiteral::LNegativeInteger(num)) RValue::RVLiteral(OwnedLiteral::LNegativeInteger(num))
}), }),
map(float_literal, |num| { map(postitive_integer_literal, |num| {
RValue::RVLiteral(OwnedLiteral::LFloat(num)) RValue::RVLiteral(OwnedLiteral::LPositiveInteger(num))
}), }),
))(i) ))(i)
} }
@ -739,6 +739,13 @@ mod tests {
use nom::error::ErrorKind; use nom::error::ErrorKind;
use nom::Err::Error; 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] #[test]
fn test_reference() { fn test_reference() {
assert_eq!( assert_eq!(