Thu, 14 Jan 2021 18:14:15 +0100
Third Party packages
- updated Pygments to 2.7.4
7983
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
2 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
3 | pygments.lexers.grammar_notation |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
5 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
6 | Lexers for grammar notations like BNF. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
7 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
8 | :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
10 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
11 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
12 | import re |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
13 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
14 | from pygments.lexer import RegexLexer, bygroups, include, this, using, words |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
15 | from pygments.token import Comment, Keyword, Literal, Name, Number, \ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
16 | Operator, Punctuation, String, Text |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
17 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
18 | __all__ = ['BnfLexer', 'AbnfLexer', 'JsgfLexer', 'PegLexer'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
19 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
20 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
21 | class BnfLexer(RegexLexer): |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
22 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
23 | This lexer is for grammar notations which are similar to |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
24 | original BNF. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
25 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
26 | In order to maximize a number of targets of this lexer, |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
27 | let's decide some designs: |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
28 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
29 | * We don't distinguish `Terminal Symbol`. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
30 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
31 | * We do assume that `NonTerminal Symbol` are always enclosed |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
32 | with arrow brackets. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
33 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
34 | * We do assume that `NonTerminal Symbol` may include |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
35 | any printable characters except arrow brackets and ASCII 0x20. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
36 | This assumption is for `RBNF <http://www.rfc-base.org/txt/rfc-5511.txt>`_. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
37 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
38 | * We do assume that target notation doesn't support comment. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
39 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
40 | * We don't distinguish any operators and punctuation except |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
41 | `::=`. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
42 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
43 | Though these desision making might cause too minimal highlighting |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
44 | and you might be disappointed, but it is reasonable for us. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
45 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
46 | .. versionadded:: 2.1 |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
47 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
48 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
49 | name = 'BNF' |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
50 | aliases = ['bnf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
51 | filenames = ['*.bnf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
52 | mimetypes = ['text/x-bnf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
53 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
54 | tokens = { |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
55 | 'root': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
56 | (r'(<)([ -;=?-~]+)(>)', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
57 | bygroups(Punctuation, Name.Class, Punctuation)), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
58 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
59 | # an only operator |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
60 | (r'::=', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
61 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
62 | # fallback |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
63 | (r'[^<>:]+', Text), # for performance |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
64 | (r'.', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
65 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
66 | } |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
67 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
68 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
69 | class AbnfLexer(RegexLexer): |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
70 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
71 | Lexer for `IETF 7405 ABNF |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
72 | <http://www.ietf.org/rfc/rfc7405.txt>`_ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
73 | (Updates `5234 <http://www.ietf.org/rfc/rfc5234.txt>`_) |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
74 | grammars. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
75 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
76 | .. versionadded:: 2.1 |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
77 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
78 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
79 | name = 'ABNF' |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
80 | aliases = ['abnf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
81 | filenames = ['*.abnf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
82 | mimetypes = ['text/x-abnf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
83 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
84 | _core_rules = ( |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
85 | 'ALPHA', 'BIT', 'CHAR', 'CR', 'CRLF', 'CTL', 'DIGIT', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
86 | 'DQUOTE', 'HEXDIG', 'HTAB', 'LF', 'LWSP', 'OCTET', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
87 | 'SP', 'VCHAR', 'WSP') |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
88 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
89 | tokens = { |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
90 | 'root': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
91 | # comment |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
92 | (r';.*$', Comment.Single), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
93 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
94 | # quoted |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
95 | # double quote itself in this state, it is as '%x22'. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
96 | (r'(%[si])?"[^"]*"', Literal), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
97 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
98 | # binary (but i have never seen...) |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
99 | (r'%b[01]+\-[01]+\b', Literal), # range |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
100 | (r'%b[01]+(\.[01]+)*\b', Literal), # concat |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
101 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
102 | # decimal |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
103 | (r'%d[0-9]+\-[0-9]+\b', Literal), # range |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
104 | (r'%d[0-9]+(\.[0-9]+)*\b', Literal), # concat |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
105 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
106 | # hexadecimal |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
107 | (r'%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b', Literal), # range |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
108 | (r'%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b', Literal), # concat |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
109 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
110 | # repetition (<a>*<b>element) including nRule |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
111 | (r'\b[0-9]+\*[0-9]+', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
112 | (r'\b[0-9]+\*', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
113 | (r'\b[0-9]+', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
114 | (r'\*', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
115 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
116 | # Strictly speaking, these are not keyword but |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
117 | # are called `Core Rule'. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
118 | (words(_core_rules, suffix=r'\b'), Keyword), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
119 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
120 | # nonterminals (ALPHA *(ALPHA / DIGIT / "-")) |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
121 | (r'[a-zA-Z][a-zA-Z0-9-]+\b', Name.Class), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
122 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
123 | # operators |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
124 | (r'(=/|=|/)', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
125 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
126 | # punctuation |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
127 | (r'[\[\]()]', Punctuation), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
128 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
129 | # fallback |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
130 | (r'\s+', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
131 | (r'.', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
132 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
133 | } |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
134 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
135 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
136 | class JsgfLexer(RegexLexer): |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
137 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
138 | For `JSpeech Grammar Format <https://www.w3.org/TR/jsgf/>`_ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
139 | grammars. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
140 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
141 | .. versionadded:: 2.2 |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
142 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
143 | name = 'JSGF' |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
144 | aliases = ['jsgf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
145 | filenames = ['*.jsgf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
146 | mimetypes = ['application/jsgf', 'application/x-jsgf', 'text/jsgf'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
147 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
148 | flags = re.MULTILINE | re.UNICODE |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
149 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
150 | tokens = { |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
151 | 'root': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
152 | include('comments'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
153 | include('non-comments'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
154 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
155 | 'comments': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
156 | (r'/\*\*(?!/)', Comment.Multiline, 'documentation comment'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
157 | (r'/\*[\w\W]*?\*/', Comment.Multiline), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
158 | (r'//.*', Comment.Single), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
159 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
160 | 'non-comments': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
161 | (r'\A#JSGF[^;]*', Comment.Preproc), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
162 | (r'\s+', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
163 | (r';', Punctuation), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
164 | (r'[=|()\[\]*+]', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
165 | (r'/[^/]+/', Number.Float), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
166 | (r'"', String.Double, 'string'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
167 | (r'\{', String.Other, 'tag'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
168 | (words(('import', 'public'), suffix=r'\b'), Keyword.Reserved), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
169 | (r'grammar\b', Keyword.Reserved, 'grammar name'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
170 | (r'(<)(NULL|VOID)(>)', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
171 | bygroups(Punctuation, Name.Builtin, Punctuation)), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
172 | (r'<', Punctuation, 'rulename'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
173 | (r'\w+|[^\s;=|()\[\]*+/"{<\w]+', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
174 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
175 | 'string': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
176 | (r'"', String.Double, '#pop'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
177 | (r'\\.', String.Escape), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
178 | (r'[^\\"]+', String.Double), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
179 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
180 | 'tag': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
181 | (r'\}', String.Other, '#pop'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
182 | (r'\\.', String.Escape), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
183 | (r'[^\\}]+', String.Other), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
184 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
185 | 'grammar name': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
186 | (r';', Punctuation, '#pop'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
187 | (r'\s+', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
188 | (r'\.', Punctuation), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
189 | (r'[^;\s.]+', Name.Namespace), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
190 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
191 | 'rulename': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
192 | (r'>', Punctuation, '#pop'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
193 | (r'\*', Punctuation), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
194 | (r'\s+', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
195 | (r'([^.>]+)(\s*)(\.)', bygroups(Name.Namespace, Text, Punctuation)), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
196 | (r'[^.>]+', Name.Constant), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
197 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
198 | 'documentation comment': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
199 | (r'\*/', Comment.Multiline, '#pop'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
200 | (r'(^\s*\*?\s*)(@(?:example|see)\s+)' |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
201 | r'([\w\W]*?(?=(?:^\s*\*?\s*@|\*/)))', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
202 | bygroups(Comment.Multiline, Comment.Special, |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
203 | using(this, state='example'))), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
204 | (r'(^\s*\*?\s*)(@\S*)', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
205 | bygroups(Comment.Multiline, Comment.Special)), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
206 | (r'[^*\n@]+|\w|\W', Comment.Multiline), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
207 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
208 | 'example': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
209 | (r'\n\s*\*', Comment.Multiline), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
210 | include('non-comments'), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
211 | (r'.', Comment.Multiline), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
212 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
213 | } |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
214 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
215 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
216 | class PegLexer(RegexLexer): |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
217 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
218 | This lexer is for `Parsing Expression Grammars |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
219 | <https://bford.info/pub/lang/peg.pdf>`_ (PEG). |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
220 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
221 | Various implementations of PEG have made different decisions |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
222 | regarding the syntax, so let's try to be accommodating: |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
223 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
224 | * `<-`, `←`, `:`, and `=` are all accepted as rule operators. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
225 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
226 | * Both `|` and `/` are choice operators. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
227 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
228 | * `^`, `↑`, and `~` are cut operators. |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
229 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
230 | * A single `a-z` character immediately before a string, or |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
231 | multiple `a-z` characters following a string, are part of the |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
232 | string (e.g., `r"..."` or `"..."ilmsuxa`). |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
233 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
234 | .. versionadded:: 2.6 |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
235 | """ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
236 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
237 | name = 'PEG' |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
238 | aliases = ['peg'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
239 | filenames = ['*.peg'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
240 | mimetypes = ['text/x-peg'] |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
241 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
242 | tokens = { |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
243 | 'root': [ |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
244 | # Comments |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
245 | (r'#.*', Comment.Single), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
246 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
247 | # All operators |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
248 | (r'<-|[←:=/|&!?*+^↑~]', Operator), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
249 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
250 | # Other punctuation |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
251 | (r'[()]', Punctuation), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
252 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
253 | # Keywords |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
254 | (r'\.', Keyword), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
255 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
256 | # Character classes |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
257 | (r'(\[)([^\]]*(?:\\.[^\]\\]*)*)(\])', |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
258 | bygroups(Punctuation, String, Punctuation)), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
259 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
260 | # Single and double quoted strings (with optional modifiers) |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
261 | (r'[a-z]?"[^"\\]*(?:\\.[^"\\]*)*"[a-z]*', String.Double), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
262 | (r"[a-z]?'[^'\\]*(?:\\.[^'\\]*)*'[a-z]*", String.Single), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
263 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
264 | # Nonterminals are not whitespace, operators, or punctuation |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
265 | (r'[^\s<←:=/|&!?*+\^↑~()\[\]"\'#]+', Name.Class), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
266 | |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
267 | # Fallback |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
268 | (r'.', Text), |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
269 | ], |
54c5cfbb1e29
Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7701
diff
changeset
|
270 | } |