changeset 21:5705ac8a4fd5

Arrow "=>" -> "⇒"
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 20 Apr 2026 15:59:32 +0200
parents 3db60b64abf6
children b42168cc9884
files pygments_lexer_pseudocode2/__init__.py tests/test_fr.py
diffstat 2 files changed, 30 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/pygments_lexer_pseudocode2/__init__.py	Mon Apr 20 15:28:19 2026 +0200
+++ b/pygments_lexer_pseudocode2/__init__.py	Mon Apr 20 15:59:32 2026 +0200
@@ -40,8 +40,10 @@
         '<=': '≤',
         '>=': '≥',
         '<>': '≠',
-        '!=': '≠',        
+        '!=': '≠',
         '<-': '←',
+        '->': '→',
+        '=>': '⇒',
         '^': '↑',
     }
 
@@ -61,9 +63,9 @@
 
         if s in directives:
             c = Comment.Special
-        
+
         yield match.start(), c, match.group(0)
-     
+
     tokens = {
         'root': [
                  (r'\/\*.*\*\/', Comment),
@@ -85,19 +87,19 @@
 
                  # Data Types
                  (r'\b(entiers?|chaines?|chaînes?|réels?|reels?|caractères?|caracteres?|booléens?|'
-                  r'booleens?|tableaux?|rien)\s*\b', 
+                  r'booleens?|tableaux?|rien)\s*\b',
                   Keyword.Type),
 
                   (r'\b(vrai|faux|nil)\s*\b',
                    Name.Constant),
-                  
+
                  # Operators
-                 (r'(<=|>=|<>|!=|<-|\^|\*|\+|-|\/|<|>|=|\\\\|mod|←|↑|≤|≥|≠|÷|×|\.\.|\[|\]|\.|non|xou|et|ou)',
+                 (r'(<=|>=|<>|!=|<-|->|=>|\^|\*|\+|-|\/|<|>|=|\\\\|mod|←|↑|≤|≥|≠|÷|×|\.\.|\[|\]|\.|non|xou|et|ou)',
                   op_replace),
-                  
+
                  (r'(\(|\)|\,|\;|:)',
                   Punctuation),
-                  
+
                  #(r'\b(\[(VE|VS|VE/S)\])\s*\b',
                  # Keyword.Declaration),
 
@@ -118,4 +120,3 @@
                  (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float)
                 ],
         }
-        
--- a/tests/test_fr.py	Mon Apr 20 15:28:19 2026 +0200
+++ b/tests/test_fr.py	Mon Apr 20 15:59:32 2026 +0200
@@ -34,7 +34,7 @@
         self.assertRaises(StopIteration, next, tokens)
 
     def test_op_replace(self):
-        tokens = pygments.lex("<= >= <> != <- ^ < = >", self.lexer)
+        tokens = pygments.lex("<= >= <> != <- -> => ^ < = >", self.lexer)
         self.assertEqual((Token.Operator, "≤"), next(tokens))
         self.assertEqual((Token.Text, " "), next(tokens))
         self.assertEqual((Token.Operator, "≥"), next(tokens))
@@ -45,6 +45,10 @@
         self.assertEqual((Token.Text, " "), next(tokens))
         self.assertEqual((Token.Operator, "←"), next(tokens))
         self.assertEqual((Token.Text, " "), next(tokens))
+        self.assertEqual((Token.Operator, "→"), next(tokens))
+        self.assertEqual((Token.Text, " "), next(tokens))
+        self.assertEqual((Token.Operator, "⇒"), next(tokens))
+        self.assertEqual((Token.Text, " "), next(tokens))
         self.assertEqual((Token.Operator, "↑"), next(tokens))
         self.assertEqual((Token.Text, " "), next(tokens))
         self.assertEqual((Token.Operator, "<"), next(tokens))
@@ -56,7 +60,7 @@
         self.assertRaises(StopIteration, next, tokens)
 
     def test_op_replace_list(self):
-        tokens = pygments.lex("<= >= <> != <- ^ < = >", self.lexer)
+        tokens = pygments.lex("<= >= <> != <- -> => ^ < = >", self.lexer)
         self.assertTokenStreamEqual(
             [("Token.Operator", "≤"),
              ("Token.Text", " "),
@@ -68,6 +72,10 @@
              ("Token.Text", " "),
              ("Token.Operator", "←"),
              ("Token.Text", " "),
+             ("Token.Operator", "→"),
+             ("Token.Text", " "),
+             ("Token.Operator", "⇒"),
+             ("Token.Text", " "),
              ("Token.Operator", "↑"),
              ("Token.Text", " "),
              ("Token.Operator", "<"),
@@ -81,7 +89,7 @@
         self.assertRaises(StopIteration, next, tokens)
 
     def test_op_replace_list_with_short_names(self):
-        tokens = pygments.lex("<= >= <> != <- ^ < = > ", self.lexer)
+        tokens = pygments.lex("<= >= <> != <- -> => ^ < = > ", self.lexer)
         self.assertTokenStreamEqual(
             [("Operator", "≤"),
              ("Text", " "),
@@ -93,6 +101,10 @@
              ("Text", " "),
              ("Operator", "←"),
              ("Text", " "),
+             ("Operator", "→"),
+             ("Text", " "),
+             ("Operator", "⇒"),
+             ("Text", " "),
              ("Operator", "↑"),
              ("Text", " "),
              ("Operator", "<"),
@@ -106,7 +118,7 @@
         self.assertRaises(StopIteration, next, tokens)
 
     def test_op_replace_complete(self):
-        tokens = pygments.lex("<= >= <> != <- ^ > = <  ", self.lexer)
+        tokens = pygments.lex("<= >= <> != <- -> => ^ > = <  ", self.lexer)
         self.assertTokenStreamEqualComplete(
             [("Operator", "≤"),
              ("Text", " "),
@@ -118,6 +130,10 @@
              ("Text", " "),
              ("Operator", "←"),
              ("Text", " "),
+             ("Operator", "→"),
+             ("Text", " "),
+             ("Operator", "⇒"),
+             ("Text", " "),
              ("Operator", "↑"),
              ("Text", " "),
              ("Operator", ">"),