# HG changeset patch # User Franz Glasner # Date 1776693572 -7200 # Node ID 5705ac8a4fd50ab97eda1c498da0e3f6f3da8adb # Parent 3db60b64abf6151b2ce6e1e42e61c4cf8eac9d27 Arrow "=>" -> "⇒" diff -r 3db60b64abf6 -r 5705ac8a4fd5 pygments_lexer_pseudocode2/__init__.py --- 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) ], } - diff -r 3db60b64abf6 -r 5705ac8a4fd5 tests/test_fr.py --- 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", ">"),