Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
diff pygments_lexer_pseudocode2/algpseudocode.py @ 72:206017a08ed7
Refactor: Make the "op_space()" and related methods more flexible and allow a given fixed token type and value
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Tue, 28 Apr 2026 19:14:17 +0200 |
| parents | 5517b0be67f0 |
| children | c1357674622d |
line wrap: on
line diff
--- a/pygments_lexer_pseudocode2/algpseudocode.py Tue Apr 28 19:03:10 2026 +0200 +++ b/pygments_lexer_pseudocode2/algpseudocode.py Tue Apr 28 19:14:17 2026 +0200 @@ -113,13 +113,17 @@ return _op_opt_ignore - def op_opt_ignore_or_space(lexer, match, ctx=None): - """Yield a single whitespace ' ' or nothing -- depending on the lexer's - `no_end` setting. + def op_opt_ignore_or_fixed(toktype, value): + """Yield a fixed given token type and value or -- if the lexer's + `no_end` setting evals to ``True`` nothing. """ - if not lexer.no_end: - yield match.start(), Whitespace, " " + + def _op_opt_ignore_or_fixed(lexer, match, ctx=None): + if not lexer.no_end: + yield match.start(), toktype, value + + return _op_opt_ignore_or_fixed def op_symbol(toktype): @@ -146,7 +150,8 @@ r"|(?:func(?:tion)?|(?:fn))" r"|(?:class)" r")\s*(\{)", - bygroups(op_translate(Keyword), LexBase.op_space), + bygroups(op_translate(Keyword), + LexBase.op_fixed(Whitespace, " ")), "entity-name"), # ENDxxx keywords with optional entity name # with name @@ -158,7 +163,7 @@ r"|(?:class)" r")\s*(\{)", bygroups(op_opt_end_translate(Keyword), - op_opt_ignore_or_space), + op_opt_ignore_or_fixed(Whitespace, " ")), "entity-name-end"), # without name (r"(?i)\\end(?:_|-)?(" @@ -197,8 +202,8 @@ ], "expr-text": [ (r"[^\\}]+", Text), - (r"\\\}", Text), - (r"\\", Text), + (r"\\\}", LexBase.op_fixed(Text, "}")), + (r"\\", LexBase.op_fixed(Text, "\\")), (r"\}", LexBase.op_ignore, "#pop"), ], }
