]> gitweb.factorcode.org Git - factor.git/commitdiff
xmode.catalog: adding qdoc and sparql
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 5 Feb 2024 19:11:17 +0000 (11:11 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 5 Feb 2024 19:11:17 +0000 (11:11 -0800)
basis/xmode/catalog/modes/catalog
basis/xmode/catalog/modes/qdoc.xml [new file with mode: 0644]
basis/xmode/catalog/modes/sparql.xml [new file with mode: 0644]

index 442ae6170a40f4ba030be42802c47ac5f8b319ad..ca7074458ac26643402a6ab2d2014bd183922e9b 100644 (file)
         FILE_NAME_GLOB="*.{py,pyw,sc,jy}"
         FIRST_LINE_GLOB="#!*/*python*" />
 
+<MODE NAME="qdoc"      FILE="qdoc.xml"
+        FILE_NAME_GLOB="*.{qdoc}"
+        FIRST_LINE_GLOB="/*!" />
+
 <MODE NAME="rebol"             FILE="rebol.xml"
         FILE_NAME_GLOB="*.r" />
 
 <MODE NAME="smi-mib"           FILE="smi-mib.xml"
         FILE_NAME_GLOB="*{.mib,-MIB.txt}" />
 
+<MODE NAME="sparql"            FILE="sparql.xml"
+        FILE_NAME_GLOB="*.{rq,sparql}" />
+
 <MODE NAME="sqr"               FILE="sqr.xml"
         FILE_NAME_GLOB="*.{sqr,sqc}" />
 
diff --git a/basis/xmode/catalog/modes/qdoc.xml b/basis/xmode/catalog/modes/qdoc.xml
new file mode 100644 (file)
index 0000000..206b3f8
--- /dev/null
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE MODE SYSTEM "xmode.dtd"><!--  -->
+
+
+<!--
+    This mode file for QDoc, which is a documentation file format used by
+    The Qt Group, www.qt.io
+-->
+<MODE>
+    <PROPS>
+        <PROPERTY NAME="wordBreakChars" VALUE="" />
+    </PROPS>
+    <RULES IGNORE_CASE="FALSE"
+               HIGHLIGHT_DIGITS="TRUE"
+               DIGIT_RE="(0[lL]?|[1-9]\d{0,9}(\d{0,9}[lL])?|0[xX]\p{XDigit}{1,8}(\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))">
+
+        <SPAN TYPE="FUNCTION" NO_LINE_BREAK="TRUE">
+          <BEGIN>{</BEGIN>
+          <END>}</END>
+        </SPAN>
+        <KEYWORDS>
+
+
+            <!-- topic commands -->
+            <KEYWORD1>\class</KEYWORD1>
+            <KEYWORD1>\enum</KEYWORD1>
+            <KEYWORD1>\example</KEYWORD1>
+            <KEYWORD1>\externalpage</KEYWORD1>
+            <KEYWORD1>\fn (function)</KEYWORD1>
+            <KEYWORD1>\group</KEYWORD1>
+            <KEYWORD1>\headerfile</KEYWORD1>
+            <KEYWORD1>\macro</KEYWORD1>
+            <KEYWORD1>\module</KEYWORD1>
+            <KEYWORD1>\namespace</KEYWORD1>
+            <KEYWORD1>\page</KEYWORD1>
+            <KEYWORD1>\property</KEYWORD1>
+            <KEYWORD1>\qmlattachedproperty</KEYWORD1>
+            <KEYWORD1>\qmlattachedsignal</KEYWORD1>
+            <KEYWORD1>\qmlvaluetype</KEYWORD1>
+            <KEYWORD1>\qmlmethod</KEYWORD1>
+            <KEYWORD1>\qmltype</KEYWORD1>
+            <KEYWORD1>\qmlproperty</KEYWORD1>
+            <KEYWORD1>\qmlsignal</KEYWORD1>
+            <KEYWORD1>\qmlmodule</KEYWORD1>
+            <KEYWORD1>\inqmlmodule</KEYWORD1>
+            <KEYWORD1>\instantiates</KEYWORD1>
+            <KEYWORD1>\typealias</KEYWORD1>
+            <KEYWORD1>\typedef</KEYWORD1>
+            <KEYWORD1>\variable</KEYWORD1>
+
+
+
+
+
+            <!-- context commands  -->
+            <KEYWORD2>\abstract</KEYWORD2>
+            <KEYWORD2>\default</KEYWORD2>
+            <KEYWORD2>\deprecated</KEYWORD2>
+            <KEYWORD2>\ingroup</KEYWORD2>
+            <KEYWORD2>\inheaderfile</KEYWORD2>
+            <KEYWORD2>\inherits</KEYWORD2>
+            <KEYWORD2>\inmodule</KEYWORD2>
+            <KEYWORD2>\internal</KEYWORD2>
+            <KEYWORD2>\nextpage</KEYWORD2>
+            <KEYWORD2>\nonreentrant</KEYWORD2>
+            <KEYWORD2>\overload</KEYWORD2>
+            <KEYWORD2>\preliminary</KEYWORD2>
+            <KEYWORD2>\previouspage</KEYWORD2>
+            <KEYWORD2>\qmlabstract</KEYWORD2>
+            <KEYWORD2>\qmldefault</KEYWORD2>
+            <KEYWORD2>\qtcmakepackage</KEYWORD2>
+            <KEYWORD2>\readonly</KEYWORD2>
+            <KEYWORD2>\reentrant</KEYWORD2>
+            <KEYWORD2>\reimp</KEYWORD2>
+            <KEYWORD2>\relates</KEYWORD2>
+            <KEYWORD2>\required</KEYWORD2>
+            <KEYWORD2>\since</KEYWORD2>
+            <KEYWORD2>\startpage</KEYWORD2>
+            <KEYWORD2>\subtitle</KEYWORD2>
+            <KEYWORD2>\threadsafe</KEYWORD2>
+            <KEYWORD2>\title</KEYWORD2>
+            <KEYWORD2>\wrapper</KEYWORD2>
+
+
+
+            <!-- markup commands -->
+            <KEYWORD3>\a</KEYWORD3>
+            <KEYWORD3>\annotatedlist</KEYWORD3>
+            <KEYWORD3>\b</KEYWORD3>
+            <KEYWORD3>\badcode</KEYWORD3>
+            <INVALID>\bold</INVALID>
+            <KEYWORD3>\brief</KEYWORD3>
+            <KEYWORD3>\c</KEYWORD3>
+            <KEYWORD3>\caption</KEYWORD3>
+            <KEYWORD3>\code</KEYWORD3>
+            <KEYWORD3>\endcode</KEYWORD3>
+            <KEYWORD3>\codeline</KEYWORD3>
+            <KEYWORD3>\div</KEYWORD3>
+            <KEYWORD3>\dots</KEYWORD3>
+            <KEYWORD3>\e</KEYWORD3>
+            <KEYWORD3>\else</KEYWORD3>
+            <KEYWORD3>\endif</KEYWORD3>
+            <KEYWORD3>\footnote</KEYWORD3>
+            <KEYWORD3>\generatelist</KEYWORD3>
+            <KEYWORD3>\header</KEYWORD3>
+            <INVALID>\i</INVALID>
+            <KEYWORD3>\if</KEYWORD3>
+            <KEYWORD3>\image</KEYWORD3>
+            <KEYWORD3>\include</KEYWORD3>
+            <KEYWORD3>\input</KEYWORD3>
+            <KEYWORD3>\inlineimage</KEYWORD3>
+            <KEYWORD3>\keyword</KEYWORD3>
+            <KEYWORD3>\l</KEYWORD3>
+            <KEYWORD3>\legalese</KEYWORD3>
+            <KEYWORD3>\li</KEYWORD3>
+            <KEYWORD3>\list</KEYWORD3>
+            <KEYWORD3>\endlist</KEYWORD3>
+            <KEYWORD3>\meta</KEYWORD3>
+            <KEYWORD3>\noautolist</KEYWORD3>
+            <INVALID>\o</INVALID>
+            <KEYWORD3>\note</KEYWORD3>
+            <KEYWORD3>\omit</KEYWORD3>
+            <KEYWORD3>\printline</KEYWORD3>
+            <KEYWORD3>\printto</KEYWORD3>
+            <KEYWORD3>\printuntil</KEYWORD3>
+            <KEYWORD3>\qml</KEYWORD3>
+            <KEYWORD3>\quotation</KEYWORD3>
+            <KEYWORD3>\quotefile</KEYWORD3>
+            <KEYWORD3>\quotefromfile</KEYWORD3>
+            <KEYWORD3>\raw</KEYWORD3>
+            <KEYWORD3>\row</KEYWORD3>
+            <KEYWORD3>\sa</KEYWORD3>
+            <KEYWORD3>\section1</KEYWORD3>
+            <KEYWORD3>\section2</KEYWORD3>
+            <KEYWORD3>\section3</KEYWORD3>
+            <KEYWORD3>\section4</KEYWORD3>
+            <KEYWORD3>\skipline</KEYWORD3>
+            <KEYWORD3>\skipto</KEYWORD3>
+            <KEYWORD3>\skipuntil</KEYWORD3>
+            <KEYWORD3>\snippet</KEYWORD3>
+            <KEYWORD3>\span</KEYWORD3>
+            <KEYWORD3>\sub</KEYWORD3>
+            <KEYWORD3>\sup</KEYWORD3>
+            <KEYWORD3>\table</KEYWORD3>
+            <KEYWORD3>\endtable</KEYWORD3>
+            <KEYWORD3>\tableofcontents</KEYWORD3>
+            <KEYWORD3>\target</KEYWORD3>
+            <KEYWORD3>\tt</KEYWORD3>
+            <KEYWORD3>\uicontrol</KEYWORD3>
+            <KEYWORD3>\underline</KEYWORD3>
+            <KEYWORD3>\unicode</KEYWORD3>
+            <KEYWORD3>\warning</KEYWORD3>
+            <KEYWORD3>\\</KEYWORD3>
+
+            <INVALID>\qmlclass</INVALID>
+        </KEYWORDS>
+    </RULES>
+
+</MODE>
diff --git a/basis/xmode/catalog/modes/sparql.xml b/basis/xmode/catalog/modes/sparql.xml
new file mode 100644 (file)
index 0000000..888ca52
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!--
+  Oracle SQL*Plus mode by Thiemo Kellner <thiemo@users.sourceforge.net>
+    based on shellscript mode
+  -->
+
+<MODE>
+    <PROPS>
+        <PROPERTY NAME="lineComment" VALUE="#" />
+        <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
+        <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
+    </PROPS>
+    <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
+        <!-- Comments -->
+        <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
+
+        <SPAN TYPE="MARKUP" NO_LINE_BREAK="TRUE">
+            <BEGIN>&lt;</BEGIN>
+            <END>&gt;</END>
+        </SPAN>
+
+        <MARK_FOLLOWING TYPE="COMMENT2">?</MARK_FOLLOWING>
+        <MARK_FOLLOWING TYPE="COMMENT2">$</MARK_FOLLOWING>
+        <MARK_PREVIOUS TYPE="COMMENT4" MATCH_TYPE="OPERATOR">:</MARK_PREVIOUS>
+        <MARK_FOLLOWING TYPE="LITERAL4">@</MARK_FOLLOWING> <!-- language tag -->
+
+        <!-- Literals -->
+        <SPAN TYPE="LITERAL1" DELEGATE="LITERAL" ESCAPE="\">
+            <BEGIN>"</BEGIN>
+            <END>"</END>
+        </SPAN>
+        <SPAN TYPE="LITERAL1" ESCAPE="\">
+            <BEGIN>'</BEGIN>
+            <END>'</END>
+        </SPAN>
+
+        <!-- Operators -->
+        <SEQ TYPE="OPERATOR">!=</SEQ> <!-- inequality -->
+        <SEQ TYPE="OPERATOR">&amp;&amp;</SEQ>
+        <SEQ TYPE="OPERATOR">&gt;</SEQ>
+        <SEQ TYPE="OPERATOR">&gt;=</SEQ>
+        <SEQ TYPE="OPERATOR">&lt;&gt;</SEQ> <!-- inequality -->
+        <SEQ TYPE="OPERATOR">&lt;</SEQ>
+        <SEQ TYPE="OPERATOR">&lt;=</SEQ>
+        <SEQ TYPE="OPERATOR">*</SEQ> <!-- quantifier -->
+        <SEQ TYPE="OPERATOR">+</SEQ> <!-- quantifier -->
+        <SEQ TYPE="OPERATOR">.</SEQ> <!-- triple joining operator also ; -->
+        <SEQ TYPE="OPERATOR">/</SEQ>
+        <SEQ TYPE="OPERATOR">;</SEQ> <!-- triple joining operator also . -->
+        <SEQ TYPE="OPERATOR">=</SEQ>
+        <SEQ TYPE="OPERATOR">?</SEQ> <!-- quantifier -->
+        <SEQ TYPE="OPERATOR">^</SEQ>
+        <SEQ TYPE="OPERATOR">^^</SEQ>
+        <SEQ TYPE="OPERATOR">|</SEQ>
+        <SEQ TYPE="OPERATOR">||</SEQ>
+
+        <!-- functions in general -->
+        <SEQ_REGEXP TYPE="FUNCTION" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">[a-zA-Z-_]+\s*\(</SEQ_REGEXP>
+        <SEQ TYPE="FUNCTION">)</SEQ> -->
+
+        <!-- keywords -->
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">add\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">as\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">ask\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">clear\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">construct\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">copy\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">create\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">data\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">default\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">delete\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">describe\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">distinct\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">drop\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">exists\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">filter\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">from\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">graph\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">group by\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">having\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">insert\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">limit\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">load\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">minus\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">move\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">named\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">not\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">not exists\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">offset\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">optional\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">order by\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">prefix\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">reduced\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">select\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">service\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">silent\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">union\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">update\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">using\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">values\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD1" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">where\b</SEQ_REGEXP>
+        <SEQ_REGEXP TYPE="KEYWORD2" AT_WHITESPACE_END="FALSE" AT_WORD_START="TRUE">with\b</SEQ_REGEXP>
+        <KEYWORDS>
+            <!-- predefined functions -->
+            <COMMENT3>abs</COMMENT3>
+            <COMMENT3>avg</COMMENT3>
+            <COMMENT3>bind</COMMENT3>
+            <COMMENT3>bnode</COMMENT3>
+            <COMMENT3>bound</COMMENT3>
+            <COMMENT3>card</COMMENT3>
+            <COMMENT3>ceil</COMMENT3>
+            <COMMENT3>coalesce</COMMENT3>
+            <COMMENT3>concat</COMMENT3>
+            <COMMENT3>contains</COMMENT3>
+            <COMMENT3>count</COMMENT3>
+            <COMMENT3>datatype</COMMENT3>
+            <COMMENT3>day</COMMENT3>
+            <COMMENT3>encode_for_uri</COMMENT3>
+            <!--<COMMENT3>eval</COMMENT3>-->
+            <COMMENT3>filter</COMMENT3>
+            <COMMENT3>flatten</COMMENT3>
+            <COMMENT3>floor</COMMENT3>
+            <COMMENT3>groupconcat</COMMENT3>
+            <COMMENT3>hours</COMMENT3>
+            <COMMENT3>if</COMMENT3>
+            <COMMENT3>in</COMMENT3>
+            <COMMENT3>iri</COMMENT3>
+            <COMMENT3>isBLANK</COMMENT3>
+            <COMMENT3>isIRI</COMMENT3>
+            <COMMENT3>isLITERAL</COMMENT3>
+            <COMMENT3>isNUMERIC</COMMENT3>
+            <COMMENT3>isTRIPLE</COMMENT3>
+            <COMMENT3>isURI</COMMENT3>
+            <COMMENT3>lang</COMMENT3>
+            <COMMENT3>langMATCHES</COMMENT3>
+            <COMMENT3>lcase</COMMENT3>
+            <COMMENT3>max</COMMENT3>
+            <COMMENT3>md5</COMMENT3>
+            <COMMENT3>min</COMMENT3>
+            <COMMENT3>minutes</COMMENT3>
+            <COMMENT3>month</COMMENT3>
+            <COMMENT3>not in</COMMENT3>
+            <COMMENT3>now</COMMENT3>
+            <COMMENT3>object</COMMENT3>
+            <COMMENT3>predicate</COMMENT3>
+            <COMMENT3>rand</COMMENT3>
+            <COMMENT3>regex</COMMENT3>
+            <COMMENT3>replace</COMMENT3>
+            <COMMENT3>round</COMMENT3>
+            <COMMENT3>sample</COMMENT3>
+            <COMMENT3>seconds</COMMENT3>
+            <COMMENT3>sha1</COMMENT3>
+            <COMMENT3>sha256</COMMENT3>
+            <COMMENT3>sha384</COMMENT3>
+            <COMMENT3>sha512</COMMENT3>
+            <COMMENT3>str</COMMENT3>
+            <COMMENT3>strafter</COMMENT3>
+            <COMMENT3>strbefore</COMMENT3>
+            <COMMENT3>strdt</COMMENT3>
+            <COMMENT3>strends</COMMENT3>
+            <COMMENT3>strlang</COMMENT3>
+            <COMMENT3>strlen</COMMENT3>
+            <COMMENT3>strstarts</COMMENT3>
+            <COMMENT3>struuid</COMMENT3>
+            <COMMENT3>subject</COMMENT3>
+            <!--<COMMENT3>substitute</COMMENT3>-->
+            <COMMENT3>substr</COMMENT3>
+            <COMMENT3>sum</COMMENT3>
+            <COMMENT3>timezone</COMMENT3>
+            <COMMENT3>triple</COMMENT3>
+            <COMMENT3>tz</COMMENT3>
+            <COMMENT3>ucase</COMMENT3>
+            <COMMENT3>uri</COMMENT3>
+            <COMMENT3>uuid</COMMENT3>
+            <COMMENT3>xsd:boolean</COMMENT3>
+            <COMMENT3>xsd:dateTime</COMMENT3>
+            <COMMENT3>xsd:decimal</COMMENT3>
+            <COMMENT3>xsd:double</COMMENT3>
+            <COMMENT3>xsd:float</COMMENT3>
+            <COMMENT3>xsd:integer</COMMENT3>
+            <COMMENT3>xsd:string</COMMENT3>
+            <COMMENT3>year</COMMENT3>
+        </KEYWORDS>
+
+    </RULES>
+
+    <RULES SET="LITERAL" DEFAULT="LITERAL1" ESCAPE="\">
+        <!-- Variables -->
+        <!--<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
+            <BEGIN>${</BEGIN>
+            <END>}</END>
+        </SPAN>
+
+        <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>-->
+    </RULES>
+
+    <RULES SET="PREFIXED_NAME" DEFAULT="LITERAL2" ESCAPE="\">
+        <MARK_FOLLOWING TYPE="LITERAL2">:</MARK_FOLLOWING>
+    </RULES>
+</MODE>