...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>SPARQL</name>
     4    <alias>sparql</alias>
     5    <filename>*.rq</filename>
     6    <filename>*.sparql</filename>
     7    <mime_type>application/sparql-query</mime_type>
     8  </config>
     9  <rules>
    10    <state name="string-escape">
    11      <rule pattern="u[0-9A-Fa-f]{4}">
    12        <token type="LiteralStringEscape"/>
    13        <pop depth="1"/>
    14      </rule>
    15      <rule pattern="U[0-9A-Fa-f]{8}">
    16        <token type="LiteralStringEscape"/>
    17        <pop depth="1"/>
    18      </rule>
    19      <rule pattern=".">
    20        <token type="LiteralStringEscape"/>
    21        <pop depth="1"/>
    22      </rule>
    23    </state>
    24    <state name="end-of-string">
    25      <rule pattern="(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)">
    26        <bygroups>
    27          <token type="Operator"/>
    28          <token type="NameFunction"/>
    29        </bygroups>
    30        <pop depth="2"/>
    31      </rule>
    32      <rule pattern="\^\^">
    33        <token type="Operator"/>
    34        <pop depth="2"/>
    35      </rule>
    36      <rule>
    37        <pop depth="2"/>
    38      </rule>
    39    </state>
    40    <state name="root">
    41      <rule pattern="\s+">
    42        <token type="Text"/>
    43      </rule>
    44      <rule pattern="((?i)select|construct|describe|ask|where|filter|group\s+by|minus|distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|offset|bindings|load|clear|drop|create|add|move|copy|insert\s+data|delete\s+data|delete\s+where|delete|insert|using\s+named|using|graph|default|named|all|optional|service|silent|bind|union|not\s+in|in|as|having|to|prefix|base)\b">
    45        <token type="Keyword"/>
    46      </rule>
    47      <rule pattern="(a)\b">
    48        <token type="Keyword"/>
    49      </rule>
    50      <rule pattern="(&lt;(?:[^&lt;&gt;&#34;{}|^`\\\x00-\x20])*&gt;)">
    51        <token type="NameLabel"/>
    52      </rule>
    53      <rule pattern="(_:[_\p{L}\p{N}](?:[-_.\p{L}\p{N}]*[-_\p{L}\p{N}])?)">
    54        <token type="NameLabel"/>
    55      </rule>
    56      <rule pattern="[?$][_\p{L}\p{N}]+">
    57        <token type="NameVariable"/>
    58      </rule>
    59      <rule pattern="([\p{L}][-_.\p{L}\p{N}]*)?(\:)((?:[_:\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%]))(?:(?:[-_:.\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%]))*(?:[-_:\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%])))?)?">
    60        <bygroups>
    61          <token type="NameNamespace"/>
    62          <token type="Punctuation"/>
    63          <token type="NameTag"/>
    64        </bygroups>
    65      </rule>
    66      <rule pattern="((?i)str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|contains|strstarts|strends|strbefore|strafter|year|month|day|hours|minutes|seconds|timezone|tz|now|md5|sha1|sha256|sha384|sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|count|sum|min|max|avg|sample|group_concat|separator)\b">
    67        <token type="NameFunction"/>
    68      </rule>
    69      <rule pattern="(true|false)">
    70        <token type="KeywordConstant"/>
    71      </rule>
    72      <rule pattern="[+\-]?(\d+\.\d*[eE][+-]?\d+|\.?\d+[eE][+-]?\d+)">
    73        <token type="LiteralNumberFloat"/>
    74      </rule>
    75      <rule pattern="[+\-]?(\d+\.\d*|\.\d+)">
    76        <token type="LiteralNumberFloat"/>
    77      </rule>
    78      <rule pattern="[+\-]?\d+">
    79        <token type="LiteralNumberInteger"/>
    80      </rule>
    81      <rule pattern="(\|\||&amp;&amp;|=|\*|\-|\+|/|!=|&lt;=|&gt;=|!|&lt;|&gt;)">
    82        <token type="Operator"/>
    83      </rule>
    84      <rule pattern="[(){}.;,:^\[\]]">
    85        <token type="Punctuation"/>
    86      </rule>
    87      <rule pattern="#[^\n]*">
    88        <token type="Comment"/>
    89      </rule>
    90      <rule pattern="&#34;&#34;&#34;">
    91        <token type="LiteralString"/>
    92        <push state="triple-double-quoted-string"/>
    93      </rule>
    94      <rule pattern="&#34;">
    95        <token type="LiteralString"/>
    96        <push state="single-double-quoted-string"/>
    97      </rule>
    98      <rule pattern="&#39;&#39;&#39;">
    99        <token type="LiteralString"/>
   100        <push state="triple-single-quoted-string"/>
   101      </rule>
   102      <rule pattern="&#39;">
   103        <token type="LiteralString"/>
   104        <push state="single-single-quoted-string"/>
   105      </rule>
   106    </state>
   107    <state name="triple-double-quoted-string">
   108      <rule pattern="&#34;&#34;&#34;">
   109        <token type="LiteralString"/>
   110        <push state="end-of-string"/>
   111      </rule>
   112      <rule pattern="[^\\]+">
   113        <token type="LiteralString"/>
   114      </rule>
   115      <rule pattern="\\">
   116        <token type="LiteralString"/>
   117        <push state="string-escape"/>
   118      </rule>
   119    </state>
   120    <state name="single-double-quoted-string">
   121      <rule pattern="&#34;">
   122        <token type="LiteralString"/>
   123        <push state="end-of-string"/>
   124      </rule>
   125      <rule pattern="[^&#34;\\\n]+">
   126        <token type="LiteralString"/>
   127      </rule>
   128      <rule pattern="\\">
   129        <token type="LiteralString"/>
   130        <push state="string-escape"/>
   131      </rule>
   132    </state>
   133    <state name="triple-single-quoted-string">
   134      <rule pattern="&#39;&#39;&#39;">
   135        <token type="LiteralString"/>
   136        <push state="end-of-string"/>
   137      </rule>
   138      <rule pattern="[^\\]+">
   139        <token type="LiteralString"/>
   140      </rule>
   141      <rule pattern="\\">
   142        <token type="LiteralStringEscape"/>
   143        <push state="string-escape"/>
   144      </rule>
   145    </state>
   146    <state name="single-single-quoted-string">
   147      <rule pattern="&#39;">
   148        <token type="LiteralString"/>
   149        <push state="end-of-string"/>
   150      </rule>
   151      <rule pattern="[^&#39;\\\n]+">
   152        <token type="LiteralString"/>
   153      </rule>
   154      <rule pattern="\\">
   155        <token type="LiteralString"/>
   156        <push state="string-escape"/>
   157      </rule>
   158    </state>
   159  </rules>
   160</lexer>

View as plain text