From 0a2ef84a7a1c5e898c9fbf7c9e84a65d965212c6 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku <kaz@kylheku.com> Date: Wed, 12 Aug 2015 21:04:04 -0700 Subject: Floating-point constant tightening. * parser.l (grammar): Change order of rule which recognizes FLODOT with a one-character trailing context other than a dot, and the rule which diagnoses trailing junk. The issue is that this order gives the wrong interpretation to 123.E, treating it as 123. followed by E rather than trailing junk, like in the case of 123.0E or 123.B. * txr.1: Adding the valid example 1.E5. Removing references to dot as consing dot. Fixed documentation which says that 1.E is 1 followed by a consing dot and E. The wrong behavior in fact produced 1.0 followed by E. No consing dot semantics. --- txr.1 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'txr.1') diff --git a/txr.1 b/txr.1 index 6ef3db2d..e9bf5832 100644 --- a/txr.1 +++ b/txr.1 @@ -2652,17 +2652,18 @@ Examples: 9.E19 -.5 +3E+3 + 1.E5 .cble Examples which are not floating-point constant tokens: .cblk - . ;; consing dot + . ;; dot token, not a number 123E ;; the symbol 123E 1.0E- ;; syntax error: invalid floating point constant 1.0E ;; syntax error: invalid floating point constant - 1.E ;; 1; consing dot; symbol E - .e ;; consing dot followed by symbol e + 1.E ;; syntax error: invalid floating point literal + .e ;; syntax error: dot token followed by symbol .cble In \*(TX there is a special "dotdot" token consisting of two consecutive periods. -- cgit v1.2.3