Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
diff pygments_lexer_pseudocode2/pseudocode.py @ 40:df08226a6984
Names for some entities (program, algorithm, function, procedure, class).
Also test for "class".
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 24 Apr 2026 10:48:00 +0200 |
| parents | a3151d837258 |
| children | 4ccf9a8d0bf2 |
line wrap: on
line diff
--- a/pygments_lexer_pseudocode2/pseudocode.py Fri Apr 24 09:44:34 2026 +0200 +++ b/pygments_lexer_pseudocode2/pseudocode.py Fri Apr 24 10:48:00 2026 +0200 @@ -14,7 +14,7 @@ import re from pygments.lexer import include, bygroups -from pygments.token import (Comment, Keyword, Text, Whitespace) +from pygments.token import (Comment, Keyword, Name, Text, Whitespace) # # Relative imports do not work with pygments.lexers.load_lexer_from_file() @@ -67,8 +67,8 @@ def op_translate(toktype): - def _op_translate(lexer, match): - kw = match.group(1).upper() + def _op_translate(lexer, match, ctx=None): + kw = match.group().upper() yield match.start(), toktype, lexer.TRANSLATIONS.get(kw, kw) return _op_translate @@ -97,10 +97,17 @@ r"|(?:proc(?:edure)?)" r"|(?:func(?:tion)?|(?:fn))" r"|(?:class)" - r")\b", - op_translate(Keyword)), + r")(\s*)(\{)", + bygroups(op_translate(Keyword), Whitespace, Name.Entity), + "entity-name"), include("expr"), ], + "entity-name": [ # may be multiline + (r"[^\\}]+", Name.Entity), + (r"\\\}", Name.Entity), + (r"\\", Name.Entity), + (r"\}", Name.Entity, "#pop"), + ], "expr": [ include("py-strings"), include("py-numbers"),
