annotate pygments_lexer_pseudocode2/__init__.py @ 13:93aafdfde733

Add a module doc string with some metadata
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 19 Apr 2026 18:46:57 +0200
parents 4726325d320d
children 81554feb6507
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
4726325d320d Add SPDX license information to the source code file
Franz Glasner <fzglas.hg@dom66.de>
parents: 11
diff changeset
1 # -*- coding: utf-8 -*-
4726325d320d Add SPDX license information to the source code file
Franz Glasner <fzglas.hg@dom66.de>
parents: 11
diff changeset
2 # :-
4726325d320d Add SPDX license information to the source code file
Franz Glasner <fzglas.hg@dom66.de>
parents: 11
diff changeset
3 # SPDX-FileCopyrightText: © 2015 Simon Wachter
4726325d320d Add SPDX license information to the source code file
Franz Glasner <fzglas.hg@dom66.de>
parents: 11
diff changeset
4 # SPDX-FileCopyrightText: © 2026 Franz Glasner
4726325d320d Add SPDX license information to the source code file
Franz Glasner <fzglas.hg@dom66.de>
parents: 11
diff changeset
5 # SPDX-License-Identifier: MIT
4726325d320d Add SPDX license information to the source code file
Franz Glasner <fzglas.hg@dom66.de>
parents: 11
diff changeset
6 # :-
13
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
7 r"""
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
8 :Author: Simon Wachter
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
9 :Author: Franz Glasner
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
10 :Copyright: © 2015 Simon Wachter
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
11 :Copyright: © 2026 Franz Glasner
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
12 :License: MIT License.
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
13 See :file:`MIT.txt` for details.
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
14 If you cannot find MIT.txt see
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
15 <http://opensource.org/licenses/MIT>.
93aafdfde733 Add a module doc string with some metadata
Franz Glasner <fzglas.hg@dom66.de>
parents: 12
diff changeset
16 """
11
087d67c10039 Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents: 8
diff changeset
17
087d67c10039 Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents: 8
diff changeset
18 __version__ = "2.0.1"
087d67c10039 Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents: 8
diff changeset
19
087d67c10039 Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents: 8
diff changeset
20
1
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21 import re
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
23 from pygments.lexer import RegexLexer, include, bygroups, using, this
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24 from pygments.token import Error, Punctuation, Text, Comment, Operator, Keyword, Name, String, Number
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26
8
5812e7f3bc13 Rename the project the implementing class to "pygments-lexer-pseudocode2".
Franz Glasner <fzglas.hg@dom66.de>
parents: 1
diff changeset
27 class PseudocodeLexer2(RegexLexer):
1
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
28 '''
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29 A Pseudo code (fr) lexer
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
30 '''
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31 name = 'Pseudocode'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32 aliases = ['pseudocode', 'pseudo', 'algorithm', 'algo']
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33 filenames = ['*.algo', '*.pseudocode']
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 mimetypes = []
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
35 flags = re.IGNORECASE
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37 def op_replace(lexer, match):
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 op = match.group(0)
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 S = ('<=', '>=', '<>', '<-', '^')
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 R = ('≤', '≥', '≠', '←', '↑')
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 if op in S:
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 op = R[S.index(op)]
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 yield match.start(), Operator, op
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 def scomment(lexer, match):
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 s = match.group(1).lower().strip()
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50 c = Comment
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52 directives = ['passage par copie', 'passage par valeur', 'passage par référence', 'passage par reference', 'passage par adresse', 've', 'vs', 've/s']
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 if s in directives:
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55 c = Comment.Special
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
57 yield match.start(), c, match.group(0)
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
59 tokens = {
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
60 'root': [
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61 (r'\/\*.*\*\/', Comment),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62 (r'(\/\/|#).*\n', Comment),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 (r'\|', Comment),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
64 (r'\{(.*)\}', scomment),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65 include('strings'),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
66 include('core'),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
67 (r'[a-zéàùçèÉÀÙÇÈ][a-z0-9éàùçèÉÀÙÇÈ_]*', Name.Variable),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
68 include('nums'),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
69 (r'[\s]+', Text)
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
70 ],
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
71 'core':[ # Statements
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
72 (r'\b(debut|début|fin|si|alors|sinon|fin[_ ]si|tant[ _]que|tantque|fin[ _]tantque|faire|répéter'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
73 r'repeter|type|structure|fin[ _]structure|fonction|procédure|procedure|retourner|renvoyer|'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
74 r'pour|fin[ _]pour|à|déclarations?|juqsque|spécialise|specialise|comporte|super|public|privé|protégé|'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
75 r'classe'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
76 r')\s*\b', Keyword),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
77
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
78 # Data Types
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
79 (r'\b(entiers?|chaines?|chaînes?|réels?|reels?|caractères?|caracteres?|booléens?|'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
80 r'booleens?|tableaux?|rien)\s*\b',
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
81 Keyword.Type),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
82
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
83 (r'\b(vrai|faux|nil)\s*\b',
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
84 Name.Constant),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
85
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
86 # Operators
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
87 (r'(<=|>=|<>|<-|\^|\*|\+|-|\/|<|>|=|\\\\|mod|←|↑|≤|≥|≠|÷|×|\.\.|\[|\]|\.|non|xou|et|ou)',
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
88 op_replace),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
89
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
90 (r'(\(|\)|\,|\;|:)',
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
91 Punctuation),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
92
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
93 #(r'\b(\[(VE|VS|VE/S)\])\s*\b',
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
94 # Keyword.Declaration),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
95
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
96 # Intrinsics
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
97 (r'\b(sqrt|pow|cos|sin|tan|arccos|arcsin|arctan|arctan2|lire|ecrire|écrire|'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
98 r'exp|ln|log|détruire|detruire'
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
99 r')\s*\b', Name.Builtin)
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
100 ],
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
101
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
102 'strings': [
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
103 (r'"([^"])*"', String.Double),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
104 (r"'([^'])*'", String.Single),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
105 ],
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
106
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
107 'nums': [
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
108 (r'\d+(?![.Ee])', Number.Integer),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
109 (r'[+-]?\d*\.\d+([eE][-+]?\d+)?', Number.Float),
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
110 (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float)
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
111 ],
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
112 }
4615d6df8293 ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
113