summaryrefslogtreecommitdiff
path: root/pygments/lexers/jvm.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2020-12-25 13:16:56 +0100
committerGeorg Brandl <georg@python.org>2020-12-25 13:21:48 +0100
commit681487f82f55fba66f01f9913e4ff103e5b2ef4c (patch)
tree0e3f82343796411c1e9c71f5fa7c31e392d06bf5 /pygments/lexers/jvm.py
parent6c820019a73a606940d7477619a5a9e6ad38761d (diff)
downloadpygments-git-681487f82f55fba66f01f9913e4ff103e5b2ef4c.tar.gz
all: weed out more backtracking string regexes
Diffstat (limited to 'pygments/lexers/jvm.py')
-rw-r--r--pygments/lexers/jvm.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/pygments/lexers/jvm.py b/pygments/lexers/jvm.py
index aa66b560..b0dfb689 100644
--- a/pygments/lexers/jvm.py
+++ b/pygments/lexers/jvm.py
@@ -292,12 +292,12 @@ class ScalaLexer(RegexLexer):
(r'(import|package)(\s+)', bygroups(Keyword, Text), 'import'),
(r'(type)(\s+)', bygroups(Keyword, Text), 'type'),
(r'""".*?"""(?!")', String),
- (r'"(\\\\|\\"|[^"])*"', String),
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
(r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
(r"'%s" % idrest, Text.Symbol),
(r'[fs]"""', String, 'interptriplestring'), # interpolated strings
(r'[fs]"', String, 'interpstring'), # interpolated strings
- (r'raw"(\\\\|\\"|[^"])*"', String), # raw strings
+ (r'raw"(\\\\|\\[^\\]|[^"\\])*"', String), # raw strings
# (r'(\.)(%s|%s|`[^`]+`)' % (idrest, op), bygroups(Operator,
# Name.Attribute)),
(idrest, Name),
@@ -618,7 +618,7 @@ class IokeLexer(RegexLexer):
# Symbols
(r':[\w!:?]+', String.Symbol),
(r'[\w!:?]+:(?![\w!?])', String.Other),
- (r':"(\\\\|\\"|[^"])*"', String.Symbol),
+ (r':"(\\\\|\\[^\\]|[^"\\])*"', String.Symbol),
# Documentation
(r'((?<=fn\()|(?<=fnx\()|(?<=method\()|(?<=macro\()|(?<=lecro\()'
@@ -836,7 +836,7 @@ class ClojureLexer(RegexLexer):
(r'0x-?[abcdef\d]+', Number.Hex),
# strings, symbols and characters
- (r'"(\\\\|\\"|[^"])*"', String),
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
(r"'" + valid_name, String.Symbol),
(r"\\(.|[a-z]+)", String.Char),
@@ -979,7 +979,7 @@ class CeylonLexer(RegexLexer):
(r'(class|interface|object|alias)(\s+)',
bygroups(Keyword.Declaration, Text), 'class'),
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
- (r'"(\\\\|\\"|[^"])*"', String),
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
(r"'\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'", String.Char),
(r'".*``.*``.*"', String.Interpol),
(r'(\.)([a-z_]\w*)',
@@ -1057,7 +1057,7 @@ class KotlinLexer(RegexLexer):
(r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation),
(r'[{}]', Punctuation),
(r'@"(""|[^"])*"', String),
- (r'"(\\\\|\\"|[^"\n])*["\n]', String),
+ (r'"(\\\\|\\[^\\]|[^"\\\n])*["\n]', String),
(r"'\\.'|'[^\\]'", String.Char),
(r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|"
r"0[xX][0-9a-fA-F]+[Ll]?", Number),
@@ -1659,8 +1659,8 @@ class SarlLexer(RegexLexer):
r'interface|skill|space)(\s+)', bygroups(Keyword.Declaration, Text),
'class'),
(r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
- (r'"(\\\\|\\"|[^"])*"', String),
- (r"'(\\\\|\\'|[^'])*'", String),
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
(r'[a-zA-Z_]\w*:', Name.Label),
(r'[a-zA-Z_$]\w*', Name),
(r'[~^*!%&\[\](){}<>\|+=:;,./?-]', Operator),