diff options
author | Matthäus G. Chajdas <dev@anteru.net> | 2020-09-08 19:45:20 +0200 |
---|---|---|
committer | Matthäus G. Chajdas <dev@anteru.net> | 2020-09-08 19:45:20 +0200 |
commit | 98f816ae5ca7d98f388ace349a29b154fa9dc9e1 (patch) | |
tree | d0494ebb40613432ef5c157c69c722393164710e /pygments/lexers/javascript.py | |
parent | b6d1d68de705e1cfc28a4188f792b29c545bf7ed (diff) | |
parent | 945ed5ef268e2f3c7bbea42dfae1f8f844096f61 (diff) | |
download | pygments-git-98f816ae5ca7d98f388ace349a29b154fa9dc9e1.tar.gz |
Merge branch 'master' into bug/angular-html
Diffstat (limited to 'pygments/lexers/javascript.py')
-rw-r--r-- | pygments/lexers/javascript.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/pygments/lexers/javascript.py b/pygments/lexers/javascript.py index 48c6aafd..f36863dc 100644 --- a/pygments/lexers/javascript.py +++ b/pygments/lexers/javascript.py @@ -5,7 +5,7 @@ Lexers for JavaScript and related languages. - :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ @@ -64,11 +64,17 @@ class JavascriptLexer(RegexLexer): (r'\A#! ?/.*?\n', Comment.Hashbang), # recognized by node.js (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'), include('commentsandwhitespace'), - (r'(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?', Number.Float), - (r'0[bB][01]+', Number.Bin), - (r'0[oO][0-7]+', Number.Oct), - (r'0[xX][0-9a-fA-F]+', Number.Hex), - (r'[0-9]+', Number.Integer), + + # Numeric literals + (r'0[bB][01]+n?', Number.Bin), + (r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" notations + (r'0[xX][0-9a-fA-F]+n?', Number.Hex), + (r'[0-9]+n', Number.Integer), # Javascript BigInt requires an "n" postfix + # Javascript doesn't have actual integer literals, so every other + # numeric literal is handled by the regex below (including "normal") + # integers + (r'(\.[0-9]+|[0-9]+\.[0-9]*|[0-9]+)([eE][-+]?[0-9]+)?', Number.Float), + (r'\.\.\.|=>', Punctuation), (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|' r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'), @@ -263,7 +269,7 @@ class LiveScriptLexer(RegexLexer): default('#pop'), ], 'root': [ - (r'^(?=\s|/)', Text, 'slashstartsregex'), + (r'\A(?=\s|/)', Text, 'slashstartsregex'), include('commentsandwhitespace'), (r'(?:\([^()]+\))?[ ]*[~-]{1,2}>|' r'(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}', Name.Function), @@ -1038,7 +1044,7 @@ class CoffeeScriptLexer(RegexLexer): _operator_re = ( r'\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|' r'\|\||\\(?=\n)|' - r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?') + r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&|\^/])=?') flags = re.DOTALL tokens = { @@ -1066,7 +1072,7 @@ class CoffeeScriptLexer(RegexLexer): ], 'root': [ include('commentsandwhitespace'), - (r'^(?=\s|/)', Text, 'slashstartsregex'), + (r'\A(?=\s|/)', Text, 'slashstartsregex'), (_operator_re, Operator, 'slashstartsregex'), (r'(?:\([^()]*\))?\s*[=-]>', Name.Function, 'slashstartsregex'), (r'[{(\[;,]', Punctuation, 'slashstartsregex'), |