From 98d21a0fab0508bc82498a288c0c66adba1637cb Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 27 Feb 2014 08:13:27 -0800 Subject: * parser.l: Regression: valid floating-point literals tagged as having trailing junk. The fix is to put the junk-matching rule after the valid rules. --- ChangeLog | 6 ++++++ parser.l | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index f2df059a..621b5a93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-02-27 Kaz Kylheku + + * parser.l: Regression: valid floating-point literals tagged + as having trailing junk. The fix is to put the junk-matching rule after + the valid rules. + 2014-02-27 Kaz Kylheku * lib.c (copy): New function. diff --git a/parser.l b/parser.l index ddc2b5d4..ba907888 100644 --- a/parser.l +++ b/parser.l @@ -237,12 +237,8 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return NUMBER; } -({FLO}|{FLODOT}){TOK} | -({FLO}|{FLODOT}){BTOK} | -({FLO}|{FLODOT}){NTOK} { - val str = string_utf8(yytext); - - yyerrorf(lit("trailing junk in floating-point literal: ~a"), str, nao); +{FLO} { + val str = string_own(utf8_dup_from(yytext)); if (yy_top_state() == INITIAL || yy_top_state() == QSILIT) @@ -252,7 +248,7 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return NUMBER; } -{FLO} { +{FLODOT}/[^.] { val str = string_own(utf8_dup_from(yytext)); if (yy_top_state() == INITIAL @@ -263,8 +259,12 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return NUMBER; } -{FLODOT}/[^.] { - val str = string_own(utf8_dup_from(yytext)); +({FLO}|{FLODOT}){TOK} | +({FLO}|{FLODOT}){BTOK} | +({FLO}|{FLODOT}){NTOK} { + val str = string_utf8(yytext); + + yyerrorf(lit("trailing junk in floating-point literal: ~a"), str, nao); if (yy_top_state() == INITIAL || yy_top_state() == QSILIT) -- cgit v1.2.3