diff tests/test_algpseudo.py @ 212:18553f595b34

Allow nested \TEXT and \EXPR commands. \TEXT within \TEXT and \EXPR within \EXPR is allowed!
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 14 May 2026 07:30:38 +0200
parents 11ce0903ff8b
children f365d9d2c0ad
line wrap: on
line diff
--- a/tests/test_algpseudo.py	Wed May 13 21:22:33 2026 +0200
+++ b/tests/test_algpseudo.py	Thu May 14 07:30:38 2026 +0200
@@ -1032,6 +1032,58 @@
              ],
             pygments.lex(r"....", self.lexer))
 
+    def test_nested_expr(self):
+        self.assertTokenStreamEqualComplete(
+            [("Name.Entity", "foo"),
+             ("Text", " "),
+             ("Operator", "+"),
+             ("Text", " "),
+             ("Name.Entity", "bar"),
+             ("Text", " "),
+             ("Operator", "*"),
+             ("Text", " "),
+             ("Number.Integer", '7'),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\EXPR{\EXPR{foo + bar} * 7}", self.lexer))
+
+    def test_nested_expr_in_block(self):
+        self.assertTokenStreamEqualComplete(
+            [("Text", u"◆"),
+             ("Text.Whitespace", " "),
+             ("Name.Entity", "foo"),
+             ("Text", " "),
+             ("Operator", "+"),
+             ("Text", " "),
+             ("Name.Entity", "bar"),
+             ("Text", " "),
+             ("Operator", "*"),
+             ("Text", " "),
+             ("Number.Integer", '7'),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(u"\\BLOCK{\\EXPR{\\EXPR{foo + bar} * 7}}",
+                         self.lexer))
+
+    def test_nested_text(self):
+        self.assertTokenStreamEqualComplete(
+            [("Text", "foo + bar"),
+             ("Text", " * 7"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\TEXT{\TEXT{foo + bar} * 7}", self.lexer))
+
+    def test_nested_text_in_tblock(self):
+        self.assertTokenStreamEqualComplete(
+            [("Text", u"▪"),
+             ("Text.Whitespace", " "),
+             ("Text", "bar + Foo"),
+             ("Text", " * 7"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(u"\\TBLOCK{\\TEXT{\\TEXT{bar + Foo} * 7}}",
+                         self.lexer))
+
 
 class PygmentizeCompletely(unittest.TestCase):