From a6d6f26c01615bc8ad28a3f8565d1d176ec559e7 Mon Sep 17 00:00:00 2001 From: Robert Krimen Date: Mon, 29 Apr 2013 09:55:20 +0200 Subject: [PATCH] Parse float literals of the kind ".01", ".0..." properly --- lexer.go | 4 +--- lexer_test.go | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lexer.go b/lexer.go index af38267..34d1399 100644 --- a/lexer.go +++ b/lexer.go @@ -396,10 +396,8 @@ func (self *_lexer) scanNumericLiteral() _token { isHex, isOctal := false, false { - self.accept(".") - acceptable := "0123456789" - if self.accept("0") { + if !self.accept(".") && self.accept("0") { if self.accept("xX") { acceptable = "0123456789abcdefABCDEF" isHex = true diff --git a/lexer_test.go b/lexer_test.go index 4a1abfd..0fa9881 100644 --- a/lexer_test.go +++ b/lexer_test.go @@ -288,4 +288,12 @@ Second line \ "number 0", ) + test(`.01`, + "number .01", + ) + + test(`.01e+2`, + "number .01e+2", + ) + }