Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 39:a3151d837258 | 40:df08226a6984 |
|---|---|
| 12 | 12 |
| 13 | 13 |
| 14 import re | 14 import re |
| 15 | 15 |
| 16 from pygments.lexer import include, bygroups | 16 from pygments.lexer import include, bygroups |
| 17 from pygments.token import (Comment, Keyword, Text, Whitespace) | 17 from pygments.token import (Comment, Keyword, Name, Text, Whitespace) |
| 18 | 18 |
| 19 # | 19 # |
| 20 # Relative imports do not work with pygments.lexers.load_lexer_from_file() | 20 # Relative imports do not work with pygments.lexers.load_lexer_from_file() |
| 21 # in all of our supported Python releases. | 21 # in all of our supported Python releases. |
| 22 # | 22 # |
| 65 "block": "┃", | 65 "block": "┃", |
| 66 } | 66 } |
| 67 | 67 |
| 68 def op_translate(toktype): | 68 def op_translate(toktype): |
| 69 | 69 |
| 70 def _op_translate(lexer, match): | 70 def _op_translate(lexer, match, ctx=None): |
| 71 kw = match.group(1).upper() | 71 kw = match.group().upper() |
| 72 yield match.start(), toktype, lexer.TRANSLATIONS.get(kw, kw) | 72 yield match.start(), toktype, lexer.TRANSLATIONS.get(kw, kw) |
| 73 | 73 |
| 74 return _op_translate | 74 return _op_translate |
| 75 | 75 |
| 76 def op_symbol(toktype): | 76 def op_symbol(toktype): |
| 95 r"(?:prog(?:ram)?)" | 95 r"(?:prog(?:ram)?)" |
| 96 r"|(?:algo(?:rithm)?)" | 96 r"|(?:algo(?:rithm)?)" |
| 97 r"|(?:proc(?:edure)?)" | 97 r"|(?:proc(?:edure)?)" |
| 98 r"|(?:func(?:tion)?|(?:fn))" | 98 r"|(?:func(?:tion)?|(?:fn))" |
| 99 r"|(?:class)" | 99 r"|(?:class)" |
| 100 r")\b", | 100 r")(\s*)(\{)", |
| 101 op_translate(Keyword)), | 101 bygroups(op_translate(Keyword), Whitespace, Name.Entity), |
| 102 "entity-name"), | |
| 102 include("expr"), | 103 include("expr"), |
| 104 ], | |
| 105 "entity-name": [ # may be multiline | |
| 106 (r"[^\\}]+", Name.Entity), | |
| 107 (r"\\\}", Name.Entity), | |
| 108 (r"\\", Name.Entity), | |
| 109 (r"\}", Name.Entity, "#pop"), | |
| 103 ], | 110 ], |
| 104 "expr": [ | 111 "expr": [ |
| 105 include("py-strings"), | 112 include("py-strings"), |
| 106 include("py-numbers"), | 113 include("py-numbers"), |
| 107 ] | 114 ] |
