diff tests/test_algpseudo.py @ 62:7153e945a3d6

Implement ignoring of \ENDxxx including its optional name parts
author Franz Glasner <fzglas.hg@dom66.de>
date Tue, 28 Apr 2026 10:09:17 +0200
parents e8f4af9e20a8
children 05c53e431c88
line wrap: on
line diff
--- a/tests/test_algpseudo.py	Mon Apr 27 19:25:45 2026 +0200
+++ b/tests/test_algpseudo.py	Tue Apr 28 10:09:17 2026 +0200
@@ -145,9 +145,7 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "PROCEDURE"),
              ("Text.Whitespace", " "),
-             ("Name.Entity", "{"),
              ("Name.Entity", "the name"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\PROC {the name}", self.lexer))
@@ -163,9 +161,7 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "END OF PROCEDURE"),
              ("Text.Whitespace", " "),
-             ("Name.Entity", "{"),
              ("Name.Entity", "the procedure name"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\ENDPROCEDURE {the procedure name}", self.lexer))
@@ -176,11 +172,9 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "PROZEDUR"),
              ("Text.Whitespace", "  "),
-             ("Name.Entity", "{"),
              ("Name.Entity", " also {nichtxs"),
              ("Name.Entity", "\\}"),
              ("Name.Entity", " hier"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\PROC  { also {nichtxs\\} hier}", lexer))
@@ -188,9 +182,7 @@
     def test_function_1(self):
         self.assertTokenStreamEqualComplete(
             [("Keyword", "FUNCTION"),
-             ("Name.Entity", "{"),
              ("Name.Entity", "1"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\FUNC{1}", self.lexer))
@@ -198,9 +190,7 @@
     def test_function_2(self):
         self.assertTokenStreamEqualComplete(
             [("Keyword", "FUNCTION"),
-             ("Name.Entity", "{"),
              ("Name.Entity", "line 1\nline 2\n"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\FUNCTION{line 1\nline 2\n}", self.lexer))
@@ -209,11 +199,9 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "FUNCTION"),
              ("Text.Whitespace", " "),
-             ("Name.Entity", "{"),
              ("Name.Entity", "\\"),
              ("Name.Entity", "n"),
              ("Name.Entity", "\\}"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\FN {\\n\\}}", self.lexer))
@@ -222,11 +210,9 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "CLASS"),
              ("Text.Whitespace", " "),
-             ("Name.Entity", "{"),
              ("Name.Entity", "\\"),
              ("Name.Entity", "n"),
              ("Name.Entity", "\\}"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\CLASS {\\n\\}}", self.lexer))
@@ -237,11 +223,9 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "CLASSE"),
              ("Text.Whitespace", " "),
-             ("Name.Entity", "{"),
              ("Name.Entity", "\\"),
              ("Name.Entity", "n"),
              ("Name.Entity", "\\}"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\CLASS {\\n\\}}", lexer))
@@ -252,16 +236,28 @@
         self.assertTokenStreamEqualComplete(
             [("Keyword", "KLASSE"),
              ("Text.Whitespace", " "),
-             ("Name.Entity", "{"),
              ("Name.Entity", "\\"),
              ("Name.Entity", "n"),
              ("Name.Entity", "\\}"),
-             ("Name.Entity", "}"),
              ("Text.Whitespace", "\n"),
              ("Text.Whitespace", "\n"),
              ],
             pygments.lex("\\CLASS {\\n\\}}\n\\ENDCLASS", lexer))
 
+    def test_class_de_with_noend_option_and_name(self):
+        lexer = pygments.lexers.load_lexer_from_file(
+            ALGLEXERFILENAME, "AlgPseudocodeLexer_DE", no_end="True")
+        self.assertTokenStreamEqualComplete(
+            [("Keyword", "KLASSE"),
+             ("Text.Whitespace", " "),
+             ("Name.Entity", "\\"),
+             ("Name.Entity", "n"),
+             ("Name.Entity", "\\}"),
+             ("Text.Whitespace", "\n"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex("\\CLASS {\\n\\}}\n\\ENDCLASS {end class}", lexer))
+
     def test_remark_1(self):
         self.assertTokenStreamEqualComplete(
             [("Comment.Single", "▷"),