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 | 2934045c9ea5c20870f913e2d03f62a3a757d1be (patch) | |
tree | c67f4ee268224eccdda4bfd25c6d733308893181 | |
parent | 0db8e281af377923115b894703b2b8beb8f1e9d5 (diff) | |
download | pygments-2934045c9ea5c20870f913e2d03f62a3a757d1be.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
-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'), |