X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fparser%2FLexer.x;fp=compiler%2Fparser%2FLexer.x;h=b20d2c011cc46a36bd1977fc2f2dc190b96bfd08;hp=27424323c637b5659f6e969941a55c7a8f0875d8;hb=6ddfe9b18d4d280676aab2fa797ddbe6f8a09d6b;hpb=3391a03562d4056de7b16cd0f632e6c43ae44cca diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index 2742432..b20d2c0 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -547,8 +547,8 @@ data Token | ITprimstring FastString | ITprimint Integer | ITprimword Integer - | ITprimfloat Rational - | ITprimdouble Rational + | ITprimfloat FractionalLit + | ITprimdouble FractionalLit -- Template Haskell extension tokens | ITopenExpQuote -- [| or [e| @@ -1061,9 +1061,12 @@ hexadecimal = (16,hexDigit) -- readRational can understand negative rationals, exponents, everything. tok_float, tok_primfloat, tok_primdouble :: String -> Token -tok_float str = ITrational $! FL { fl_text = str, fl_value = readRational str } -tok_primfloat str = ITprimfloat $! readRational str -tok_primdouble str = ITprimdouble $! readRational str +tok_float str = ITrational $! readFractionalLit str +tok_primfloat str = ITprimfloat $! readFractionalLit str +tok_primdouble str = ITprimdouble $! readFractionalLit str + +readFractionalLit :: String -> FractionalLit +readFractionalLit str = (FL $! str) $! readRational str -- ----------------------------------------------------------------------------- -- Layout processing