- update to 2.11.2 - backport elpi_fix_catastrophic_backtracking.patch - switch prep stage to autosetup - remove commented-out shebang removal OBS-URL: https://build.opensuse.org/request/show/951979 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Pygments?expand=0&rev=80
40 lines
2.1 KiB
Diff
40 lines
2.1 KiB
Diff
From dbd7931f9d60966fbb80745db368ad773a8b7569 Mon Sep 17 00:00:00 2001
|
|
From: Jean Abou-Samra <jean@abou-samra.fr>
|
|
Date: Thu, 3 Feb 2022 22:27:01 +0100
|
|
Subject: [PATCH] Elpi: fix catastrophic backtracking (#2061)
|
|
|
|
---
|
|
pygments/lexers/elpi.py | 4 ++--
|
|
tests/snippets/elpi/test_catastrophic_backtracking.txt | 6 ++++++
|
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
|
create mode 100644 tests/snippets/elpi/test_catastrophic_backtracking.txt
|
|
|
|
diff --git a/pygments/lexers/elpi.py b/pygments/lexers/elpi.py
|
|
index 691182a86..3ce6ed6a2 100644
|
|
--- a/pygments/lexers/elpi.py
|
|
+++ b/pygments/lexers/elpi.py
|
|
@@ -32,9 +32,9 @@ class ElpiLexer(RegexLexer):
|
|
schar2_re = r"([+*^?/<>`'@#~=&!])"
|
|
schar_re = r"({}|-|\$|_)".format(schar2_re)
|
|
idchar_re = r"({}|{}|{}|{})".format(lcase_re,ucase_re,digit_re,schar_re)
|
|
- idcharstarns_re = r"({}+|(?=\.[a-z])\.{}+)".format(idchar_re,idchar_re)
|
|
+ idcharstarns_re = r"({}*(\.({}|{}){}*)*)".format(idchar_re, lcase_re, ucase_re, idchar_re)
|
|
symbchar_re = r"({}|{}|{}|{}|:)".format(lcase_re, ucase_re, digit_re, schar_re)
|
|
- constant_re = r"({}{}*|{}{}*|{}{}*|_{}+)".format(ucase_re, idchar_re, lcase_re, idcharstarns_re,schar2_re, symbchar_re,idchar_re)
|
|
+ constant_re = r"({}{}*|{}{}|{}{}*|_{}+)".format(ucase_re, idchar_re, lcase_re, idcharstarns_re,schar2_re, symbchar_re,idchar_re)
|
|
symbol_re=r"(,|<=>|->|:-|;|\?-|->|&|=>|\bas\b|\buvar\b|<|=<|=|==|>=|>|\bi<|\bi=<|\bi>=|\bi>|\bis\b|\br<|\br=<|\br>=|\br>|\bs<|\bs=<|\bs>=|\bs>|@|::|\[\]|`->|`:|`:=|\^|-|\+|\bi-|\bi\+|r-|r\+|/|\*|\bdiv\b|\bi\*|\bmod\b|\br\*|~|\bi~|\br~)"
|
|
escape_re=r"\(({}|{})\)".format(constant_re,symbol_re)
|
|
const_sym_re = r"({}|{}|{})".format(constant_re,symbol_re,escape_re)
|
|
diff --git a/tests/snippets/elpi/test_catastrophic_backtracking.txt b/tests/snippets/elpi/test_catastrophic_backtracking.txt
|
|
new file mode 100644
|
|
index 000000000..a14a0549c
|
|
--- /dev/null
|
|
+++ b/tests/snippets/elpi/test_catastrophic_backtracking.txt
|
|
@@ -0,0 +1,6 @@
|
|
+---input---
|
|
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
+
|
|
+---tokens---
|
|
+'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' Text
|
|
+'\n' Text.Whitespace
|