diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2024-05-20 07:58:40 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2024-05-20 08:05:00 +0300 |
commit | bcd5bcc390793791d293d386b2ebefbe683fb4e1 (patch) | |
tree | c93e3b8c847237e7e7626f4a07f1b657bb34f04d /contrib/python/Pygments/py3/pygments/lexers/erlang.py | |
parent | 1a9f1508fe9c8c5927ffebf33197a6108e70501d (diff) | |
download | ydb-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.py | 46 |
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+\))?> ') |