Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
annotate pygments_lexer_pseudocode2/__init__.py @ 11:087d67c10039
Make the version a dynamic metadata field
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 19 Apr 2026 18:40:41 +0200 |
| parents | 5812e7f3bc13 |
| children | 4726325d320d |
| rev | line source |
|---|---|
|
11
087d67c10039
Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents:
8
diff
changeset
|
1 |
|
087d67c10039
Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents:
8
diff
changeset
|
2 __version__ = "2.0.1" |
|
087d67c10039
Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents:
8
diff
changeset
|
3 |
|
087d67c10039
Make the version a dynamic metadata field
Franz Glasner <fzglas.hg@dom66.de>
parents:
8
diff
changeset
|
4 |
|
1
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
5 import re |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
6 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
7 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
|
8 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
|
9 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
10 |
|
8
5812e7f3bc13
Rename the project the implementing class to "pygments-lexer-pseudocode2".
Franz Glasner <fzglas.hg@dom66.de>
parents:
1
diff
changeset
|
11 class PseudocodeLexer2(RegexLexer): |
|
1
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
12 ''' |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
13 A Pseudo code (fr) lexer |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
14 ''' |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
15 name = 'Pseudocode' |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
16 aliases = ['pseudocode', 'pseudo', 'algorithm', 'algo'] |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
17 filenames = ['*.algo', '*.pseudocode'] |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
18 mimetypes = [] |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
19 flags = re.IGNORECASE |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
20 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
21 def op_replace(lexer, match): |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
22 op = match.group(0) |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
23 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
24 S = ('<=', '>=', '<>', '<-', '^') |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
25 R = ('≤', '≥', '≠', '←', '↑') |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
26 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
27 if op in S: |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
28 op = R[S.index(op)] |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
29 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
30 yield match.start(), Operator, op |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
31 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
32 def scomment(lexer, match): |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
33 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
|
34 c = Comment |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
35 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
36 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
|
37 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
38 if s in directives: |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
39 c = Comment.Special |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
40 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
41 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
|
42 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
43 tokens = { |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
44 'root': [ |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
45 (r'\/\*.*\*\/', Comment), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
46 (r'(\/\/|#).*\n', Comment), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
47 (r'\|', Comment), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
48 (r'\{(.*)\}', scomment), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
49 include('strings'), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
50 include('core'), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
51 (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
|
52 include('nums'), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
53 (r'[\s]+', Text) |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
54 ], |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
55 'core':[ # Statements |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
56 (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
|
57 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
|
58 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
|
59 r'classe' |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
60 r')\s*\b', Keyword), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
61 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
62 # Data Types |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
63 (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
|
64 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
|
65 Keyword.Type), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
66 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
67 (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
|
68 Name.Constant), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
69 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
70 # Operators |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
71 (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
|
72 op_replace), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
73 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
74 (r'(\(|\)|\,|\;|:)', |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
75 Punctuation), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
76 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
77 #(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
|
78 # Keyword.Declaration), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
79 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
80 # Intrinsics |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
81 (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
|
82 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
|
83 r')\s*\b', Name.Builtin) |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
84 ], |
|
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 'strings': [ |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
87 (r'"([^"])*"', String.Double), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
88 (r"'([^'])*'", String.Single), |
|
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 |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
91 'nums': [ |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
92 (r'\d+(?![.Ee])', Number.Integer), |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
93 (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
|
94 (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
|
95 ], |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
96 } |
|
4615d6df8293
ADD: The original pygments-lexer-pseudocode project from GitHub.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
97 |
