ThirdParty/Pygments/pygments/lexers/rdf.py

changeset 4172
4f20dba37ab6
child 4697
c2e9bf425554
diff -r 8bc578136279 -r 4f20dba37ab6 ThirdParty/Pygments/pygments/lexers/rdf.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ThirdParty/Pygments/pygments/lexers/rdf.py	Wed Mar 11 18:32:27 2015 +0100
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.rdf
+    ~~~~~~~~~~~~~~~~~~~
+
+    Lexers for semantic web and RDF query languages and markup.
+
+    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, bygroups, default
+from pygments.token import Keyword, Punctuation, String, Number, Operator, \
+    Whitespace, Name, Literal, Comment, Text
+
+__all__ = ['SparqlLexer']
+
+
+class SparqlLexer(RegexLexer):
+    """
+    Lexer for `SPARQL <http://www.w3.org/TR/rdf-sparql-query/>`_ query language.
+
+    .. versionadded:: 2.0
+    """
+    name = 'SPARQL'
+    aliases = ['sparql']
+    filenames = ['*.rq', '*.sparql']
+    mimetypes = ['application/sparql-query']
+
+    flags = re.IGNORECASE
+
+    tokens = {
+        'root': [
+            (r'\s+', Whitespace),
+            (r'(select|construct|describe|ask|where|filter|group\s+by|minus|'
+             r'distinct|reduced|from named|from|order\s+by|limit|'
+             r'offset|bindings|load|clear|drop|create|add|move|copy|'
+             r'insert\s+data|delete\s+data|delete\s+where|delete|insert|'
+             r'using named|using|graph|default|named|all|optional|service|'
+             r'silent|bind|union|not in|in|as|a)', Keyword),
+            (r'(prefix|base)(\s+)([a-z][\w-]*)(\s*)(\:)',
+             bygroups(Keyword, Whitespace, Name.Namespace, Whitespace,
+                      Punctuation)),
+            (r'\?[a-z_]\w*', Name.Variable),
+            (r'<[^>]+>', Name.Label),
+            (r'([a-z][\w-]*)(\:)([a-z][\w-]*)',
+             bygroups(Name.Namespace, Punctuation, Name.Tag)),
+            (r'(str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|'
+             r'ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|'
+             r'contains|strstarts|strends|strbefore|strafter|year|month|day|'
+             r'hours|minutes|seconds|timezone|tz|now|md5|sha1|sha256|sha384|'
+             r'sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|'
+             r'isliteral|isnumeric|regex|substr|replace|exists|not exists|'
+             r'count|sum|min|max|avg|sample|group_concat|separator)\b',
+             Name.Function),
+            (r'(true|false)', Literal),
+            (r'[+\-]?\d*\.\d+', Number.Float),
+            (r'[+\-]?\d*(:?\.\d+)?E[+\-]?\d+', Number.Float),
+            (r'[+\-]?\d+', Number.Integer),
+            (r'(\|\||&&|=|\*|\-|\+|/)', Operator),
+            (r'[(){}.;,:^]', Punctuation),
+            (r'#[^\n]+', Comment),
+            (r'"""', String, 'triple-double-quoted-string'),
+            (r'"', String, 'single-double-quoted-string'),
+            (r"'''", String, 'triple-single-quoted-string'),
+            (r"'", String, 'single-single-quoted-string'),
+        ],
+        'triple-double-quoted-string': [
+            (r'"""', String, 'end-of-string'),
+            (r'[^\\]+', String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'single-double-quoted-string': [
+            (r'"', String, 'end-of-string'),
+            (r'[^"\\\n]+', String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'triple-single-quoted-string': [
+            (r"'''", String, 'end-of-string'),
+            (r'[^\\]+', String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'single-single-quoted-string': [
+            (r"'", String, 'end-of-string'),
+            (r"[^'\\\n]+", String),
+            (r'\\', String, 'string-escape'),
+        ],
+        'string-escape': [
+            (r'.', String, '#pop'),
+        ],
+        'end-of-string': [
+            (r'(@)([a-z]+(:?-[a-z0-9]+)*)',
+             bygroups(Operator, Name.Function), '#pop:2'),
+            (r'\^\^', Operator, '#pop:2'),
+            default('#pop:2'),
+        ],
+    }

eric ide

mercurial