aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/Pygments/py3/pygments/lexers/erlang.py
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-05-20 07:58:40 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-05-20 08:05:00 +0300
commitbcd5bcc390793791d293d386b2ebefbe683fb4e1 (patch)
treec93e3b8c847237e7e7626f4a07f1b657bb34f04d /contrib/python/Pygments/py3/pygments/lexers/erlang.py
parent1a9f1508fe9c8c5927ffebf33197a6108e70501d (diff)
downloadydb-bcd5bcc390793791d293d386b2ebefbe683fb4e1.tar.gz
Intermediate changes
Diffstat (limited to 'contrib/python/Pygments/py3/pygments/lexers/erlang.py')
-rw-r--r--contrib/python/Pygments/py3/pygments/lexers/erlang.py46
1 files changed, 22 insertions, 24 deletions
diff --git a/contrib/python/Pygments/py3/pygments/lexers/erlang.py b/contrib/python/Pygments/py3/pygments/lexers/erlang.py
index e484664a17..1190182324 100644
--- a/contrib/python/Pygments/py3/pygments/lexers/erlang.py
+++ b/contrib/python/Pygments/py3/pygments/lexers/erlang.py
@@ -4,7 +4,7 @@
Lexers for Erlang.
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -22,8 +22,6 @@ __all__ = ['ErlangLexer', 'ErlangShellLexer', 'ElixirConsoleLexer',
class ErlangLexer(RegexLexer):
"""
For the Erlang functional programming language.
-
- .. versionadded:: 0.9
"""
name = 'Erlang'
@@ -31,6 +29,7 @@ class ErlangLexer(RegexLexer):
aliases = ['erlang']
filenames = ['*.erl', '*.hrl', '*.es', '*.escript']
mimetypes = ['text/x-erlang']
+ version_added = '0.9'
keywords = (
'after', 'begin', 'case', 'catch', 'cond', 'end', 'fun', 'if',
@@ -150,13 +149,13 @@ class ErlangLexer(RegexLexer):
class ErlangShellLexer(Lexer):
"""
Shell sessions in erl (for Erlang code).
-
- .. versionadded:: 1.1
"""
name = 'Erlang erl session'
aliases = ['erl']
filenames = ['*.erl-sh']
mimetypes = ['text/x-erl-shellsession']
+ url = 'https://www.erlang.org/'
+ version_added = '1.1'
_prompt_re = re.compile(r'(?:\([\w@_.]+\))?\d+>(?=\s|\Z)')
@@ -191,10 +190,10 @@ class ErlangShellLexer(Lexer):
def gen_elixir_string_rules(name, symbol, token):
states = {}
states['string_' + name] = [
- (r'[^#%s\\]+' % (symbol,), token),
+ (rf'[^#{symbol}\\]+', token),
include('escapes'),
(r'\\.', token),
- (r'(%s)' % (symbol,), bygroups(token), "#pop"),
+ (rf'({symbol})', bygroups(token), "#pop"),
include('interpol')
]
return states
@@ -203,32 +202,31 @@ def gen_elixir_string_rules(name, symbol, token):
def gen_elixir_sigstr_rules(term, term_class, token, interpol=True):
if interpol:
return [
- (r'[^#%s\\]+' % (term_class,), token),
+ (rf'[^#{term_class}\\]+', token),
include('escapes'),
(r'\\.', token),
- (r'%s[a-zA-Z]*' % (term,), token, '#pop'),
+ (rf'{term}[a-zA-Z]*', token, '#pop'),
include('interpol')
]
else:
return [
- (r'[^%s\\]+' % (term_class,), token),
+ (rf'[^{term_class}\\]+', token),
(r'\\.', token),
- (r'%s[a-zA-Z]*' % (term,), token, '#pop'),
+ (rf'{term}[a-zA-Z]*', token, '#pop'),
]
class ElixirLexer(RegexLexer):
"""
For the Elixir language.
-
- .. versionadded:: 1.5
"""
name = 'Elixir'
- url = 'http://elixir-lang.org'
+ url = 'https://elixir-lang.org'
aliases = ['elixir', 'ex', 'exs']
filenames = ['*.ex', '*.eex', '*.exs', '*.leex']
mimetypes = ['text/x-elixir']
+ version_added = '1.5'
KEYWORD = ('fn', 'do', 'end', 'after', 'else', 'rescue', 'catch')
KEYWORD_OPERATOR = ('not', 'and', 'or', 'when', 'in')
@@ -303,9 +301,9 @@ class ElixirLexer(RegexLexer):
for term, name in triquotes:
states['sigils'] += [
- (r'(~[a-z])(%s)' % (term,), bygroups(token, String.Heredoc),
+ (rf'(~[a-z])({term})', bygroups(token, String.Heredoc),
(name + '-end', name + '-intp')),
- (r'(~[A-Z])(%s)' % (term,), bygroups(token, String.Heredoc),
+ (rf'(~[A-Z])({term})', bygroups(token, String.Heredoc),
(name + '-end', name + '-no-intp')),
]
@@ -337,12 +335,12 @@ class ElixirLexer(RegexLexer):
op3_re = "|".join(re.escape(s) for s in OPERATORS3)
op2_re = "|".join(re.escape(s) for s in OPERATORS2)
op1_re = "|".join(re.escape(s) for s in OPERATORS1)
- ops_re = r'(?:%s|%s|%s)' % (op3_re, op2_re, op1_re)
+ ops_re = rf'(?:{op3_re}|{op2_re}|{op1_re})'
punctuation_re = "|".join(re.escape(s) for s in PUNCTUATION)
alnum = r'\w'
- name_re = r'(?:\.\.\.|[a-z_]%s*[!?]?)' % alnum
- modname_re = r'[A-Z]%(alnum)s*(?:\.[A-Z]%(alnum)s*)*' % {'alnum': alnum}
- complex_name_re = r'(?:%s|%s|%s)' % (name_re, modname_re, ops_re)
+ name_re = rf'(?:\.\.\.|[a-z_]{alnum}*[!?]?)'
+ modname_re = rf'[A-Z]{alnum}*(?:\.[A-Z]{alnum}*)*'
+ complex_name_re = rf'(?:{name_re}|{modname_re}|{ops_re})'
special_atom_re = r'(?:\.\.\.|<<>>|%\{\}|%|\{\})'
long_hex_char_re = r'(\\x\{)([\da-fA-F]+)(\})'
@@ -375,7 +373,7 @@ class ElixirLexer(RegexLexer):
(r":'", String.Symbol, 'string_single_atom'),
# [keywords: ...]
- (r'(%s|%s)(:)(?=\s|\n)' % (special_atom_re, complex_name_re),
+ (rf'({special_atom_re}|{complex_name_re})(:)(?=\s|\n)',
bygroups(String.Symbol, Punctuation)),
# @attributes
@@ -383,7 +381,7 @@ class ElixirLexer(RegexLexer):
# identifiers
(name_re, Name),
- (r'(%%?)(%s)' % (modname_re,), bygroups(Punctuation, Name.Class)),
+ (rf'(%?)({modname_re})', bygroups(Punctuation, Name.Class)),
# operators and punctuation
(op3_re, Operator),
@@ -484,13 +482,13 @@ class ElixirConsoleLexer(Lexer):
[1,2,3]
iex> length [head | tail]
3
-
- .. versionadded:: 1.5
"""
name = 'Elixir iex session'
aliases = ['iex']
mimetypes = ['text/x-elixir-shellsession']
+ url = 'https://elixir-lang.org'
+ version_added = '1.5'
_prompt_re = re.compile(r'(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> ')