From f97195a85409041f9dae13b630e9e2a6418c3cb1 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 2 Apr 2017 21:07:18 -0700 Subject: parser: diagnose syntax like 0.1.2 and .1.1. Currently (list .1.1) yields (0.1 0.1). This is evading the rule for catching cramped floating-point literals. * parser.l (grammar): Carefully weaken the pattern match in the relevant rule for catching cramped floating-point literals, so it matches these cases. --- parser.l | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'parser.l') diff --git a/parser.l b/parser.l index fbff9bb4..1191618e 100644 --- a/parser.l +++ b/parser.l @@ -308,9 +308,9 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} return NUMBER; } -{WS}({FLO}|{FLODOT}){TOK} | -{WS}({FLO}|{FLODOT}){BTOK} | -{WS}({FLO}|{FLODOT}){NTOK} | +{WS}({FLO}[.]?|{FLODOT}){TOK} | +{WS}({FLO}[.]?|{FLODOT}){BTOK} | +{WS}({FLO}[.]?|{FLODOT}){NTOK} | {FLO}[.][^.]? { val str = string_utf8(yytext); -- cgit v1.2.3