aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/Pygments/py2/pygments/lexers/x10.py
blob: cfabc44627cd70050519dab86eef83d1a1883133 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: utf-8 -*- 
""" 
    pygments.lexers.x10 
    ~~~~~~~~~~~~~~~~~~~ 
 
    Lexers for the X10 programming language. 
 
    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details. 
""" 
 
import re 
 
from pygments.lexer import RegexLexer 
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ 
    Number, Punctuation, Error 
 
__all__ = ['X10Lexer'] 
 
class X10Lexer(RegexLexer): 
    """ 
    For the X10 language. 
 
    .. versionadded:: 0.1 
    """ 
 
    name = 'X10' 
    aliases = ['x10', 'xten'] 
    filenames = ['*.x10'] 
    mimetypes = ['text/x-x10'] 
 
    keywords = ( 
        'as', 'assert', 'async', 'at', 'athome', 'ateach', 'atomic', 
        'break', 'case', 'catch', 'class', 'clocked', 'continue', 
        'def', 'default', 'do', 'else', 'final', 'finally', 'finish', 
        'for', 'goto', 'haszero', 'here', 'if', 'import', 'in', 
        'instanceof', 'interface', 'isref', 'new', 'offer', 
        'operator', 'package', 'return', 'struct', 'switch', 'throw', 
        'try', 'type', 'val', 'var', 'when', 'while' 
    ) 
 
    types = ( 
        'void' 
    ) 
 
    values = ( 
        'false', 'null', 'self', 'super', 'this', 'true' 
    ) 
 
    modifiers = ( 
        'abstract', 'extends', 'implements', 'native', 'offers', 
        'private', 'property', 'protected', 'public', 'static', 
        'throws', 'transient' 
    ) 
 
    tokens = { 
        'root': [ 
            (r'[^\S\n]+', Text), 
            (r'//.*?\n', Comment.Single), 
            (r'/\*(.|\n)*?\*/', Comment.Multiline), 
            (r'\b(%s)\b' % '|'.join(keywords), Keyword), 
            (r'\b(%s)\b' % '|'.join(types), Keyword.Type), 
            (r'\b(%s)\b' % '|'.join(values), Keyword.Constant), 
            (r'\b(%s)\b' % '|'.join(modifiers), Keyword.Declaration), 
            (r'"(\\\\|\\"|[^"])*"', String), 
            (r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char), 
            (r'.', Text) 
        ], 
    }