ThirdParty/Pygments/pygments/lexers/graph.py

changeset 4172
4f20dba37ab6
child 4697
c2e9bf425554
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ThirdParty/Pygments/pygments/lexers/graph.py	Wed Mar 11 18:32:27 2015 +0100
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.graph
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for graph query languages.
+
+    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, bygroups, using, this
+from pygments.token import Keyword, Punctuation, Comment, Operator, Name,\
+    String, Number, Whitespace
+
+
+__all__ = ['CypherLexer']
+
+
+class CypherLexer(RegexLexer):
+    """
+    For `Cypher Query Language
+    <http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html>`_
+
+    For the Cypher version in Neo4J 2.0
+
+    .. versionadded:: 2.0
+    """
+    name = 'Cypher'
+    aliases = ['cypher']
+    filenames = ['*.cyp', '*.cypher']
+
+    flags = re.MULTILINE | re.IGNORECASE
+
+    tokens = {
+        'root': [
+            include('comment'),
+            include('keywords'),
+            include('clauses'),
+            include('relations'),
+            include('strings'),
+            include('whitespace'),
+            include('barewords'),
+        ],
+        'comment': [
+            (r'^.*//.*\n', Comment.Single),
+        ],
+        'keywords': [
+            (r'(create|order|match|limit|set|skip|start|return|with|where|'
+             r'delete|foreach|not|by)\b', Keyword),
+        ],
+        'clauses': [
+            # TODO: many missing ones, see http://docs.neo4j.org/refcard/2.0/
+            (r'(all|any|as|asc|create|create\s+unique|delete|'
+             r'desc|distinct|foreach|in|is\s+null|limit|match|none|'
+             r'order\s+by|return|set|skip|single|start|union|where|with)\b',
+             Keyword),
+        ],
+        'relations': [
+            (r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)),
+            (r'(<-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)),
+            (r'-->|<--|\[|\]', Operator),
+            (r'<|>|<>|=|<=|=>|\(|\)|\||:|,|;', Punctuation),
+            (r'[.*{}]', Punctuation),
+        ],
+        'strings': [
+            (r'"(?:\\[tbnrf\'"\\]|[^\\"])*"', String),
+            (r'`(?:``|[^`])+`', Name.Variable),
+        ],
+        'whitespace': [
+            (r'\s+', Whitespace),
+        ],
+        'barewords': [
+            (r'[a-z]\w*', Name),
+            (r'\d+', Number),
+        ],
+    }

eric ide

mercurial