Wed, 11 Mar 2015 18:32:27 +0100
Updated Pygments to 2.0.2.
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | pygments.lexers.graph |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Lexers for graph query languages. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import re |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from pygments.lexer import RegexLexer, include, bygroups, using, this |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from pygments.token import Keyword, Punctuation, Comment, Operator, Name,\ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | String, Number, Whitespace |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | __all__ = ['CypherLexer'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | class CypherLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | For `Cypher Query Language |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | <http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html>`_ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | For the Cypher version in Neo4J 2.0 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | .. versionadded:: 2.0 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | name = 'Cypher' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | aliases = ['cypher'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | filenames = ['*.cyp', '*.cypher'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | flags = re.MULTILINE | re.IGNORECASE |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | include('comment'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | include('keywords'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | include('clauses'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | include('relations'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | include('strings'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | include('whitespace'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | include('barewords'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | 'comment': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | (r'^.*//.*\n', Comment.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | 'keywords': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | (r'(create|order|match|limit|set|skip|start|return|with|where|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | r'delete|foreach|not|by)\b', Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | 'clauses': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | # TODO: many missing ones, see http://docs.neo4j.org/refcard/2.0/ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | (r'(all|any|as|asc|create|create\s+unique|delete|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | r'desc|distinct|foreach|in|is\s+null|limit|match|none|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | r'order\s+by|return|set|skip|single|start|union|where|with)\b', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | 'relations': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | (r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | (r'(<-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | (r'-->|<--|\[|\]', Operator), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | (r'<|>|<>|=|<=|=>|\(|\)|\||:|,|;', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | (r'[.*{}]', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | 'strings': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | (r'"(?:\\[tbnrf\'"\\]|[^\\"])*"', String), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | (r'`(?:``|[^`])+`', Name.Variable), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | 'whitespace': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | (r'\s+', Whitespace), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | 'barewords': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | (r'[a-z]\w*', Name), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | (r'\d+', Number), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | } |