diff options
author | Takenobu Tani <takenobu.hs@gmail.com> | 2017-12-09 22:42:05 +0900 |
---|---|---|
committer | Takenobu Tani <takenobu.hs@gmail.com> | 2017-12-09 22:42:05 +0900 |
commit | eb7b76a6f9483ac631abcada5896bb9ab88db1c9 (patch) | |
tree | 70e4af36ac22d110799af948d8fb806394afa272 /pygments/lexers/haskell.py | |
parent | 1b966038502c0b386a6645d4b5125f623d0947bb (diff) | |
download | pygments-git-eb7b76a6f9483ac631abcada5896bb9ab88db1c9.tar.gz |
Fix Haskell lexer for numeric literals.
See also https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0009-numeric-underscores.rst#new-syntax-this-proposal
Diffstat (limited to 'pygments/lexers/haskell.py')
-rw-r--r-- | pygments/lexers/haskell.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/pygments/lexers/haskell.py b/pygments/lexers/haskell.py index 1a2f2217..b4624124 100644 --- a/pygments/lexers/haskell.py +++ b/pygments/lexers/haskell.py @@ -72,11 +72,14 @@ class HaskellLexer(RegexLexer): (r':[:!#$%&*+.\\/<=>?@^|~-]*', Keyword.Type), # Constructor operators (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), # Other operators # Numbers - (r'\d+[eE][+-]?\d+', Number.Float), - (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float), - (r'0[oO][0-7]+', Number.Oct), - (r'0[xX][\da-fA-F]+', Number.Hex), - (r'\d+', Number.Integer), + (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*', Number.Float), + (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*(_*[pP][+-]?\d(_*\d)*)?', Number.Float), + (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*', Number.Float), + (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?', Number.Float), + (r'0[bB]_*[01](_*[01])*', Number.Bin), + (r'0[oO]_*[0-7](_*[0-7])*', Number.Oct), + (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*', Number.Hex), + (r'\d(_*\d)*', Number.Integer), # Character/String Literals (r"'", String.Char, 'character'), (r'"', String, 'string'), |