Sun, 14 Apr 2019 15:09:21 +0200
Major restructuring of the source tree to get prepared for a setup.py based installation.
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | pygments.lexers.ezhil |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Pygments lexers for Ezhil language. |
5713
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
7 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
8 | :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import re |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from pygments.lexer import RegexLexer, include, words |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from pygments.token import Keyword, Text, Comment, Name |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from pygments.token import String, Number, Punctuation, Operator |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | __all__ = ['EzhilLexer'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
5713
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
19 | |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | class EzhilLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Lexer for `Ezhil, a Tamil script-based programming language <http://ezhillang.org>`_ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | name = 'Ezhil' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | aliases = ['ezhil'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | filenames = ['*.n'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | mimetypes = ['text/x-ezhil'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | flags = re.MULTILINE | re.UNICODE |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | # Refer to tamil.utf8.tamil_letters from open-tamil for a stricter version of this. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | # This much simpler version is close enough, and includes combining marks. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | _TALETTERS = u'[a-zA-Z_]|[\u0b80-\u0bff]' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | 'root': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | include('keywords'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | (r'#.*\n', Comment.Single), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | (r'[@+/*,^\-%]|[!<>=]=?|&&?|\|\|?', Operator), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | (u'இல்', Operator.Word), |
5713
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
40 | (words((u'assert', u'max', u'min', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
41 | u'நீளம்', u'சரம்_இடமாற்று', u'சரம்_கண்டுபிடி', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
42 | u'பட்டியல்', u'பின்இணை', u'வரிசைப்படுத்து', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
43 | u'எடு', u'தலைகீழ்', u'நீட்டிக்க', u'நுழைக்க', u'வை', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
44 | u'கோப்பை_திற', u'கோப்பை_எழுது', u'கோப்பை_மூடு', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
45 | u'pi', u'sin', u'cos', u'tan', u'sqrt', u'hypot', u'pow', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
46 | u'exp', u'log', u'log10', u'exit', |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | ), suffix=r'\b'), Name.Builtin), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | (r'(True|False)\b', Keyword.Constant), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | (r'[^\S\n]+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | include('identifier'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | include('literal'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | (r'[(){}\[\]:;.]', Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | 'keywords': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | (u'பதிப்பி|தேர்ந்தெடு|தேர்வு|ஏதேனில்|ஆனால்|இல்லைஆனால்|இல்லை|ஆக|ஒவ்வொன்றாக|இல்|வரை|செய்|முடியேனில்|பின்கொடு|முடி|நிரல்பாகம்|தொடர்|நிறுத்து|நிரல்பாகம்', Keyword), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | 'identifier': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | (u'(?:'+_TALETTERS+u')(?:[0-9]|'+_TALETTERS+u')*', Name), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | 'literal': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | (r'".*?"', String), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | (r'(?u)\d+((\.\d*)?[eE][+-]?\d+|\.\d*)', Number.Float), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | (r'(?u)\d+', Number.Integer), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | ] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | } |
5713
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
66 | |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | def __init__(self, **options): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | super(EzhilLexer, self).__init__(**options) |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.encoding = options.get('encoding', 'utf-8') |