From 2ef0951c45e3c9c87990ab7e334059aa9b21f540 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 4 Apr 2019 19:51:12 +0200 Subject: Tweak double literals --- dhall_core/src/parser.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'dhall_core/src/parser.rs') diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index f888f94..55fb177 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -406,7 +406,7 @@ make_parser! { token_rule!(minus_infinity_literal<()>); token_rule!(plus_infinity_literal<()>); - rule!(double_literal; + rule!(numeric_double_literal; captured_str!(s) => { let s = s.trim(); match s.parse::() { @@ -418,6 +418,13 @@ make_parser! { } ); + rule!(double_literal; children!( + [numeric_double_literal(n)] => n, + [minus_infinity_literal(n)] => std::f64::NEG_INFINITY.into(), + [plus_infinity_literal(n)] => std::f64::INFINITY.into(), + [NaN(n)] => std::f64::NAN.into(), + )); + rule!(natural_literal; captured_str!(s) => { s.trim() @@ -737,11 +744,6 @@ make_parser! { rule!(literal_expression as expression; children!( [double_literal(n)] => Expr::DoubleLit(n), - [minus_infinity_literal(n)] => - Expr::DoubleLit(std::f64::NEG_INFINITY.into()), - [plus_infinity_literal(n)] => - Expr::DoubleLit(std::f64::INFINITY.into()), - [NaN(n)] => Expr::DoubleLit(std::f64::NAN.into()), [natural_literal(n)] => Expr::NaturalLit(n), [integer_literal(n)] => Expr::IntegerLit(n), [double_quote_literal(s)] => Expr::TextLit(s), -- cgit v1.2.3