Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
graph.py109 linesDownload Raw Back to lexers
1"""2    pygments.lexers.graph3    ~~~~~~~~~~~~~~~~~~~~~4 5    Lexers for graph query languages.6 7    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.8    :license: BSD, see LICENSE for details.9"""10 11import re12 13from pygments.lexer import RegexLexer, include, bygroups, using, this, words14from pygments.token import Keyword, Punctuation, Comment, Operator, Name,\15    String, Number, Whitespace16 17 18__all__ = ['CypherLexer']19 20 21class CypherLexer(RegexLexer):22    """23    For Cypher Query Language24 25    For the Cypher version in Neo4j 3.326    """27    name = 'Cypher'28    url = 'https://neo4j.com/docs/developer-manual/3.3/cypher/'29    aliases = ['cypher']30    filenames = ['*.cyp', '*.cypher']31    version_added = '2.0'32 33    flags = re.MULTILINE | re.IGNORECASE34 35    tokens = {36        'root': [37            include('clauses'),38            include('keywords'),39            include('relations'),40            include('strings'),41            include('whitespace'),42            include('barewords'),43            include('comment'),44        ],45        'keywords': [46            (r'(create|order|match|limit|set|skip|start|return|with|where|'47             r'delete|foreach|not|by|true|false)\b', Keyword),48        ],49        'clauses': [50            # based on https://neo4j.com/docs/cypher-refcard/3.3/51            (r'(create)(\s+)(index|unique)\b',52                bygroups(Keyword, Whitespace, Keyword)),53            (r'(drop)(\s+)(contraint|index)(\s+)(on)\b',54                bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)),55            (r'(ends)(\s+)(with)\b',56                bygroups(Keyword, Whitespace, Keyword)),57            (r'(is)(\s+)(node)(\s+)(key)\b',58                bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)),59            (r'(is)(\s+)(null|unique)\b',60                bygroups(Keyword, Whitespace, Keyword)),61            (r'(load)(\s+)(csv)(\s+)(from)\b',62                bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)),63            (r'(on)(\s+)(match|create)\b',64                bygroups(Keyword, Whitespace, Keyword)),65            (r'(optional)(\s+)(match)\b',66                bygroups(Keyword, Whitespace, Keyword)),67            (r'(order)(\s+)(by)\b',68                bygroups(Keyword, Whitespace, Keyword)),69            (r'(starts)(\s+)(with)\b',70                bygroups(Keyword, Whitespace, Keyword)),71            (r'(union)(\s+)(all)\b',72                bygroups(Keyword, Whitespace, Keyword)),73            (r'(using)(\s+)(periodic)(\s+)(commit)\b',74                bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)),75            (r'(using)(\s+)(index)\b',76                bygroups(Keyword, Whitespace, Keyword)),77            (r'(using)(\s+)(range|text|point)(\s+)(index)\b',78                bygroups(Keyword, Whitespace, Name, Whitespace, Keyword)),79            (words((80                'all', 'any', 'as', 'asc', 'ascending', 'assert', 'call', 'case', 'create',81                'delete', 'desc', 'descending', 'distinct', 'end', 'fieldterminator',82                'foreach', 'in', 'limit', 'match', 'merge', 'none', 'not', 'null',83                'remove', 'return', 'set', 'skip', 'single', 'start', 'then', 'union',84                'unwind', 'yield', 'where', 'when', 'with', 'collect'), suffix=r'\b'), Keyword),85        ],86        'relations': [87            (r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)),88            (r'(<-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)),89            (r'(-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)),90            (r'-->|<--|\[|\]', Operator),91            (r'<|>|<>|=|<=|=>|\(|\)|\||:|,|;', Punctuation),92            (r'[.*{}]', Punctuation),93        ],94        'strings': [95            (r'([\'"])(?:\\[tbnrf\'"\\]|[^\\])*?\1', String),96            (r'`(?:``|[^`])+`', Name.Variable),97        ],98        'whitespace': [99            (r'\s+', Whitespace),100        ],101        'barewords': [102            (r'[a-z]\w*', Name),103            (r'\d+', Number),104        ],105        'comment': [106            (r'//.*$', Comment.Single),107        ],108    }109 
codekingpro/portable-devtools · Team Ai