Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
diff pygments_lexer_pseudocode2/algpseudocode.py @ 78:abb2e8c65d0f
Implement "TEXTSTATEMENT"
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 30 Apr 2026 09:28:39 +0200 |
| parents | 1a5e192aa950 |
| children | f487f0d322a5 |
line wrap: on
line diff
--- a/pygments_lexer_pseudocode2/algpseudocode.py Thu Apr 30 09:24:46 2026 +0200 +++ b/pygments_lexer_pseudocode2/algpseudocode.py Thu Apr 30 09:28:39 2026 +0200 @@ -86,6 +86,7 @@ "BLOCK": SYMBOL_BLOCK, # Group TEXTSTATEMENT "TEXTSTATEMENT": SYMBOL_TEXTSTATEMENT, + "TEXTSTATE": SYMBOL_TEXTSTATEMENT, "TSTATEMENT": SYMBOL_TEXTSTATEMENT, "TSTATE": SYMBOL_TEXTSTATEMENT, "TEXTBLOCK": SYMBOL_TEXTSTATEMENT, @@ -150,6 +151,14 @@ (r"(?i)\\(block|state(?:ment)?)\s*(\{)", bygroups(op_symbol(Text), LexBase.op_fixed(Whitespace, " ")), "block-expr"), + (r"(?i)\\(" + r"(?:textstate(?:ment)?)" + r"|(?:tstate(?:ment)?)" + r"|(?:textblock)" + r"|(?:tblock)" + r")\s*(\{)", + bygroups(op_symbol(Text), LexBase.op_fixed(Whitespace, " ")), + "text-statement"), (r"\\\n", Text), (r"(?i)\\(" r"(?:prog(?:ram)?)" @@ -226,6 +235,18 @@ (r"\\", LexBase.op_fixed(Text, "\\")), (r"\s+", Text), ], + "text-statement": [ # like block but default to text-mode + (r"[^\\}\n]+", Text), + (r"\}", LexBase.op_ignore, "#pop"), + (r"\n", Whitespace), + (r"\\\}", LexBase.op_fixed(Text, "}")), + (r"(?i)\\expr(?:ession)?\s*\{", + LexBase.op_ignore, + "block-expr"), + include("remark"), + (r"\\\\", LexBase.op_fixed(Text, "\\")), + (r"\\", LexBase.op_fixed(Text, "\\")), + ], "expr-in-braces": [ include("punctuation-in-braces"), include("py-strings"), @@ -241,6 +262,10 @@ (r"\}", LexBase.op_ignore, "#pop"), (r"\n", Whitespace), (r"\\\}", LexBase.op_fixed(Text, "}")), + (r"(?:i)\\(expr(?:ession)?)\s*(\{)", + bygroups(LexBase.op_ignore, LexBase.op_ignore), + "expr-in-braces"), + (r"\\\\", LexBase.op_fixed(Text, "\\")), (r"\\", LexBase.op_fixed(Text, "\\")), ], "math-builtins": [
