]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/xq.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / xq.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <MODE>
6         <PROPS>
7                 <PROPERTY NAME="commentStart" VALUE="&lt;!--" />
8                 <PROPERTY NAME="commentEnd" VALUE="--&gt;" />
9                 <PROPERTY NAME="commentStart" VALUE="(:" />
10                 <PROPERTY NAME="commentEnd" VALUE=":)" />
11                 <PROPERTY NAME="wordBreakChars" VALUE=":,+=&lt;&gt;/?^&amp;*" />
12
13                 <!-- Auto indent -->
14                 <!-- <PROPERTY NAME="indentOpenBrackets" VALUE="{" /> -->
15                 <!-- <PROPERTY NAME="indentCloseBrackets" VALUE="}" /> -->
16                 <PROPERTY NAME="indentNextLine"
17                         VALUE="\s*(((if)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
18                 <!-- set this to 'true' if you want to use GNU coding style -->
19                 <PROPERTY NAME="doubleBracketIndent" VALUE="false" />
20                 <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
21         </PROPS>
22         <RULES>
23                 <!-- SGML comment -->
24                 <SPAN TYPE="COMMENT1">
25                         <BEGIN>&lt;!--</BEGIN>
26                         <END>--&gt;</END>
27                 </SPAN>
28
29
30                 <!-- DTD Entity declarations -->
31                 <SPAN TYPE="KEYWORD2" DELEGATE="ENTITY-TAGS">
32                         <BEGIN>&lt;!ENTITY</BEGIN>
33                         <END>&gt;</END>
34                 </SPAN>
35
36                 <!-- CDATA sections -->
37                 <SPAN TYPE="KEYWORD2" DELEGATE="CDATA">
38                         <BEGIN>&lt;![CDATA[</BEGIN>
39                         <END>]]&gt;</END>
40                 </SPAN>
41
42                 <!-- DTD instructions -->
43                 <SPAN TYPE="KEYWORD2" DELEGATE="DTD-TAGS">
44                         <BEGIN>&lt;!</BEGIN>
45                         <END>&gt;</END>
46                 </SPAN>
47
48                 <!-- PI directives -->
49                 <SPAN TYPE="KEYWORD3">
50                         <BEGIN>&lt;?</BEGIN>
51                         <END>&gt;</END>
52                 </SPAN>
53
54                 <!-- markup tags -->
55                 <SPAN_REGEXP HASH_CHAR="&lt;" TYPE="MARKUP" DELEGATE="TAGS">
56                         <BEGIN><![CDATA[<[a-zA-Z/]\w*]]></BEGIN>
57                         <END>&gt;</END>
58                 </SPAN_REGEXP>
59
60                 <!-- SGML entities -->
61                 <SPAN TYPE="LITERAL2" NO_WORD_BREAK="TRUE">
62                         <BEGIN>&amp;</BEGIN>
63                         <END>;</END>
64                 </SPAN>
65         </RULES>
66
67         <RULES SET="TAGS" DEFAULT="MARKUP" NO_WORD_SEP="-_">
68                 <!-- SGML comment -->
69                 <SPAN TYPE="COMMENT1">
70                         <BEGIN>&lt;!--</BEGIN>
71                         <END>--&gt;</END>
72                 </SPAN>
73
74                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
75                         <BEGIN>"</BEGIN>
76                         <END>"</END>
77                 </SPAN>
78
79                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
80                         <BEGIN>'</BEGIN>
81                         <END>'</END>
82                 </SPAN>
83
84
85                 <SEQ TYPE="MARKUP">/</SEQ>
86                 <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR">:</MARK_PREVIOUS>
87         </RULES>
88
89         <RULES SET="DTD-TAGS" DEFAULT="KEYWORD2" IGNORE_CASE="FALSE">
90                 <!-- SGML comment -->
91                 <SPAN TYPE="COMMENT1">
92                         <BEGIN>&lt;!--</BEGIN>
93                         <END>--&gt;</END>
94                 </SPAN>
95
96                 <!-- SGML comment -->
97                 <SPAN TYPE="COMMENT1">
98                         <BEGIN>--</BEGIN>
99                         <END>--</END>
100                 </SPAN>
101
102                 <!-- Parameter entities -->
103                 <SPAN TYPE="LITERAL2" NO_WORD_BREAK="TRUE">
104                         <BEGIN>%</BEGIN>
105                         <END>;</END>
106                 </SPAN>
107
108                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
109                         <BEGIN>"</BEGIN>
110                         <END>"</END>
111                 </SPAN>
112
113                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
114                         <BEGIN>'</BEGIN>
115                         <END>'</END>
116                 </SPAN>
117
118                 <!-- This appears in some SGML documents -->
119                 <SPAN TYPE="KEYWORD2" DELEGATE="MAIN">
120                         <BEGIN>[</BEGIN>
121                         <END>]</END>
122                 </SPAN>
123
124                 <SEQ TYPE="OPERATOR">(</SEQ>
125                 <SEQ TYPE="OPERATOR">)</SEQ>
126                 <SEQ TYPE="OPERATOR">|</SEQ>
127                 <SEQ TYPE="OPERATOR">?</SEQ>
128                 <SEQ TYPE="OPERATOR">*</SEQ>
129                 <SEQ TYPE="OPERATOR">+</SEQ>
130                 <SEQ TYPE="OPERATOR">,</SEQ>
131
132                 <KEYWORDS>
133                         <KEYWORD1>CDATA</KEYWORD1>
134                         <KEYWORD1>EMPTY</KEYWORD1>
135                         <KEYWORD1>INCLUDE</KEYWORD1>
136                         <KEYWORD1>IGNORE</KEYWORD1>
137                         <KEYWORD1>NDATA</KEYWORD1>
138                         <KEYWORD1>#IMPLIED</KEYWORD1>
139                         <KEYWORD1>#PCDATA</KEYWORD1>
140                         <KEYWORD1>#REQUIRED</KEYWORD1>
141                 </KEYWORDS>
142         </RULES>
143
144         <RULES SET="ENTITY-TAGS" DEFAULT="KEYWORD2">
145                 <!-- SGML comment -->
146                 <SPAN TYPE="COMMENT1">
147                         <BEGIN>&lt;!--</BEGIN>
148                         <END>--&gt;</END>
149                 </SPAN>
150
151                 <!-- SGML comment -->
152                 <SPAN TYPE="COMMENT1">
153                         <BEGIN>--</BEGIN>
154                         <END>--</END>
155                 </SPAN>
156
157                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
158                         <BEGIN>"</BEGIN>
159                         <END>"</END>
160                 </SPAN>
161
162                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
163                         <BEGIN>'</BEGIN>
164                         <END>'</END>
165                 </SPAN>
166
167                 <SEQ TYPE="OPERATOR">=</SEQ>
168
169                 <SEQ TYPE="OPERATOR">%</SEQ>
170
171                 <KEYWORDS>
172                         <KEYWORD1>SYSTEM</KEYWORD1>
173                 </KEYWORDS>
174         </RULES>
175
176         <RULES SET="CDATA" DEFAULT="COMMENT2">
177                 <!-- no rules -->
178         </RULES>
179
180         <RULES IGNORE_CASE="FALSE"
181                 HIGHLIGHT_DIGITS="TRUE"
182                 DIGIT_RE="(0x\p{XDigit}+[lL]?|\d+(e\d*)?[lLdDfF]?)">
183
184                 <!-- XQuery style comment -->
185                 <SPAN TYPE="COMMENT1">
186                         <BEGIN>(:</BEGIN>
187                         <END>:)</END>
188                 </SPAN>
189
190                 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
191                         <BEGIN>"</BEGIN>
192                         <END>"</END>
193                 </SPAN>
194                 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
195                         <BEGIN>'</BEGIN>
196                         <END>'</END>
197                 </SPAN>
198
199                 <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
200
201                 <!-- Function calls -->
202                 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
203                 <SEQ TYPE="OPERATOR">)</SEQ>
204
205                 <SEQ TYPE="OPERATOR">,</SEQ>
206
207                 <SEQ TYPE="OPERATOR">=</SEQ>
208                 <SEQ TYPE="OPERATOR">!=</SEQ>
209                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
210                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>
211                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
212                 <SEQ TYPE="OPERATOR">&lt;=</SEQ>
213
214                 <SEQ TYPE="OPERATOR">&lt;&lt;</SEQ>
215                 <SEQ TYPE="OPERATOR">&gt;&gt;</SEQ>
216
217                 <SEQ TYPE="OPERATOR">+</SEQ>
218 <!--
219                 <SEQ TYPE="OPERATOR">-</SEQ>
220  -->
221                 <SEQ TYPE="OPERATOR">*</SEQ>
222
223                 <!-- unary -/+ ? -->
224
225                 <SEQ TYPE="OPERATOR">|</SEQ>
226
227                 <SEQ TYPE="OPERATOR">/</SEQ>
228                 <SEQ TYPE="OPERATOR">//</SEQ>
229
230                 <SEQ TYPE="OPERATOR">}</SEQ>
231                 <SEQ TYPE="OPERATOR">{</SEQ>
232
233                 <KEYWORDS>
234                         <OPERATOR>some</OPERATOR>
235                         <OPERATOR>every</OPERATOR>
236
237                         <OPERATOR>or</OPERATOR>
238                         <OPERATOR>and</OPERATOR>
239
240                         <OPERATOR>instance of</OPERATOR>
241
242                         <OPERATOR>treat as</OPERATOR>
243
244                         <OPERATOR>castable as</OPERATOR>
245
246                         <OPERATOR>cast as</OPERATOR>
247
248                         <OPERATOR>eq</OPERATOR>
249                         <OPERATOR>ne</OPERATOR>
250                         <OPERATOR>lt</OPERATOR>
251                         <OPERATOR>gt</OPERATOR>
252                         <OPERATOR>ge</OPERATOR>
253                         <OPERATOR>is</OPERATOR>
254
255                         <OPERATOR>to</OPERATOR>
256
257                         <OPERATOR>div</OPERATOR>
258                         <OPERATOR>idiv</OPERATOR>
259                         <OPERATOR>mod</OPERATOR>
260
261                         <OPERATOR>union</OPERATOR>
262
263                         <OPERATOR>intersect</OPERATOR>
264                         <OPERATOR>except</OPERATOR>
265
266                         <KEYWORD1>return</KEYWORD1>
267                         <KEYWORD1>for</KEYWORD1>
268                         <KEYWORD1>in</KEYWORD1>
269                         <KEYWORD1>to</KEYWORD1>
270                         <KEYWORD1>at</KEYWORD1>
271
272                         <KEYWORD1>let</KEYWORD1>
273                         <KEYWORD1>:=</KEYWORD1>
274
275                         <KEYWORD1>where</KEYWORD1>
276
277                         <KEYWORD1>stable</KEYWORD1>
278                         <KEYWORD1>order</KEYWORD1>
279                         <KEYWORD1>by</KEYWORD1>
280
281                         <LITERAL2>ascending</LITERAL2>
282                         <LITERAL2>descending</LITERAL2>
283
284                         <LITERAL2>greatest</LITERAL2>
285                         <LITERAL2>least</LITERAL2>
286                         <LITERAL2>collation</LITERAL2>
287
288                         <KEYWORD3>typeswitch</KEYWORD3>
289                         <KEYWORD3>default</KEYWORD3>
290
291                         <KEYWORD1>cast</KEYWORD1>
292                         <KEYWORD1>as</KEYWORD1>
293                         <KEYWORD1>if</KEYWORD1>
294                         <KEYWORD1>then</KEYWORD1>
295                         <KEYWORD1>else</KEYWORD1>
296
297                         <LITERAL2>true</LITERAL2>
298                         <LITERAL2>false</LITERAL2>
299
300                         <KEYWORD3>xquery</KEYWORD3>
301                         <KEYWORD3>version</KEYWORD3>
302
303                         <KEYWORD3>declare</KEYWORD3>
304                         <KEYWORD3>function</KEYWORD3>
305                         <KEYWORD3>library</KEYWORD3>
306                         <KEYWORD3>variable</KEYWORD3>
307                         <KEYWORD3>module</KEYWORD3>
308                         <KEYWORD3>namespace</KEYWORD3>
309                         <KEYWORD3>local</KEYWORD3>
310
311                         <KEYWORD3>validate</KEYWORD3>
312                         <KEYWORD3>import</KEYWORD3>
313                         <KEYWORD3>schema</KEYWORD3>
314                         <KEYWORD3>validation</KEYWORD3>
315                         <KEYWORD3>collection</KEYWORD3>
316
317                         <KEYWORD3>ancestor</KEYWORD3>
318                         <KEYWORD3>descendant</KEYWORD3>
319                         <KEYWORD3>self</KEYWORD3>
320                         <KEYWORD3>parent</KEYWORD3>
321                         <KEYWORD3>child</KEYWORD3>
322                         <KEYWORD3>self</KEYWORD3>
323                         <KEYWORD3>descendant-or-self</KEYWORD3>
324                         <KEYWORD3>ancestor-or-self</KEYWORD3>
325                         <KEYWORD3>preceding-sibling</KEYWORD3>
326                         <KEYWORD3>following-sibling</KEYWORD3>
327                         <KEYWORD3>following</KEYWORD3>
328                         <KEYWORD3>preceding</KEYWORD3>
329
330                         <KEYWORD4>xs:integer</KEYWORD4>
331                         <KEYWORD4>xs:decimal</KEYWORD4>
332                         <KEYWORD4>xs:double</KEYWORD4>
333                         <KEYWORD4>xs:string</KEYWORD4>
334                         <KEYWORD4>xs:date</KEYWORD4>
335                         <KEYWORD4>xs:time</KEYWORD4>
336                         <KEYWORD4>xs:dateTime</KEYWORD4>
337                         <KEYWORD4>xs:boolean</KEYWORD4>
338
339                         <KEYWORD4>item</KEYWORD4>
340                         <KEYWORD4>element</KEYWORD4>
341                         <KEYWORD4>attribute</KEYWORD4>
342                         <KEYWORD4>comment</KEYWORD4>
343                         <KEYWORD4>document</KEYWORD4>
344                         <KEYWORD4>document-node</KEYWORD4>
345                         <KEYWORD4>node</KEYWORD4>
346                         <KEYWORD4>empty</KEYWORD4>
347
348                         <FUNCTION>zero-or-one</FUNCTION>
349                         <FUNCTION>avg</FUNCTION>
350                         <FUNCTION>base-uri</FUNCTION>
351                         <FUNCTION>boolean</FUNCTION>
352                         <FUNCTION>ceiling</FUNCTION>
353                         <FUNCTION>codepoints-to-string</FUNCTION>
354                         <FUNCTION>collection</FUNCTION>
355                         <FUNCTION>compare</FUNCTION>
356                         <FUNCTION>concat</FUNCTION>
357                         <FUNCTION>contains</FUNCTION>
358                         <FUNCTION>count</FUNCTION>
359                         <FUNCTION>current-date</FUNCTION>
360                         <FUNCTION>current-dateTime</FUNCTION>
361                         <FUNCTION>current-time</FUNCTION>
362                         <FUNCTION>data</FUNCTION>
363                         <FUNCTION>day-from-date</FUNCTION>
364                         <FUNCTION>day-from-dateTime</FUNCTION>
365                         <FUNCTION>days-from-duration</FUNCTION>
366                         <FUNCTION>deep-equal</FUNCTION>
367                         <FUNCTION>distinct-values</FUNCTION>
368                         <FUNCTION>doc</FUNCTION>
369                         <FUNCTION>adjust-time-to-timezone</FUNCTION>
370                         <FUNCTION>adjust-dateTime-to-timezone</FUNCTION>
371                         <FUNCTION>string-length</FUNCTION>
372                         <FUNCTION>string-join</FUNCTION>
373                         <FUNCTION>string</FUNCTION>
374                         <FUNCTION>starts-with</FUNCTION>
375                         <FUNCTION>seconds-from-time</FUNCTION>
376                         <FUNCTION>seconds-from-duration</FUNCTION>
377                         <FUNCTION>seconds-from-dateTime</FUNCTION>
378                         <FUNCTION>round-half-to-even</FUNCTION>
379                         <FUNCTION>round</FUNCTION>
380                         <FUNCTION>root</FUNCTION>
381                         <FUNCTION>reverse</FUNCTION>
382                         <FUNCTION>replace</FUNCTION>
383                         <FUNCTION>remove</FUNCTION>
384                         <FUNCTION>prefix-from-QName</FUNCTION>
385                         <FUNCTION>position</FUNCTION>
386                         <FUNCTION>one-or-more</FUNCTION>
387                         <FUNCTION>number</FUNCTION>
388                         <FUNCTION>QName</FUNCTION>
389                         <FUNCTION>abs</FUNCTION>
390                         <FUNCTION>adjust-date-to-timezone</FUNCTION>
391                         <FUNCTION>doc-available</FUNCTION>
392                         <FUNCTION>doctype</FUNCTION>
393                         <FUNCTION>document</FUNCTION>
394                         <FUNCTION>last</FUNCTION>
395                         <FUNCTION>local-name</FUNCTION>
396                         <FUNCTION>local-name-from-QName</FUNCTION>
397                         <FUNCTION>lower-case</FUNCTION>
398                         <FUNCTION>match-all</FUNCTION>
399                         <FUNCTION>match-any</FUNCTION>
400                         <FUNCTION>matches</FUNCTION>
401                         <FUNCTION>max</FUNCTION>
402                         <FUNCTION>min</FUNCTION>
403                         <FUNCTION>minutes-from-dateTime</FUNCTION>
404                         <FUNCTION>minutes-from-duration</FUNCTION>
405                         <FUNCTION>minutes-from-time</FUNCTION>
406                         <FUNCTION>month-from-date</FUNCTION>
407                         <FUNCTION>month-from-dateTime</FUNCTION>
408                         <FUNCTION>name</FUNCTION>
409                         <FUNCTION>namespace-uri</FUNCTION>
410                         <FUNCTION>namespace-uri-for-prefix</FUNCTION>
411                         <FUNCTION>namespace-uri-from-QName</FUNCTION>
412                         <FUNCTION>node-name</FUNCTION>
413                         <FUNCTION>normalize-space</FUNCTION>
414                         <FUNCTION>lang</FUNCTION>
415                         <FUNCTION>item-at</FUNCTION>
416                         <FUNCTION>document-uri</FUNCTION>
417                         <FUNCTION>empty</FUNCTION>
418                         <FUNCTION>encode-for-uri</FUNCTION>
419                         <FUNCTION>ends-with</FUNCTION>
420                         <FUNCTION>error</FUNCTION>
421                         <FUNCTION>escape-html-uri</FUNCTION>
422                         <FUNCTION>escape-uri</FUNCTION>
423                         <FUNCTION>exactly-one</FUNCTION>
424                         <FUNCTION>exists</FUNCTION>
425                         <FUNCTION>false</FUNCTION>
426                         <FUNCTION>floor</FUNCTION>
427                         <FUNCTION>hours-from-dateTime</FUNCTION>
428                         <FUNCTION>hours-from-duration</FUNCTION>
429                         <FUNCTION>hours-from-time</FUNCTION>
430                         <FUNCTION>id</FUNCTION>
431                         <FUNCTION>implicit-timezone</FUNCTION>
432                         <FUNCTION>in-scope-prefixes</FUNCTION>
433                         <FUNCTION>index-of</FUNCTION>
434                         <FUNCTION>insert-before</FUNCTION>
435                         <FUNCTION>iri-to-uri</FUNCTION>
436                         <FUNCTION>string-pad</FUNCTION>
437                         <FUNCTION>string-to-codepoints</FUNCTION>
438                         <FUNCTION>sum</FUNCTION>
439                         <FUNCTION>timezone-from-date</FUNCTION>
440                         <FUNCTION>timezone-from-dateTime</FUNCTION>
441                         <FUNCTION>timezone-from-time</FUNCTION>
442                         <FUNCTION>not</FUNCTION>
443                         <FUNCTION>tokenize</FUNCTION>
444                         <FUNCTION>translate</FUNCTION>
445                         <FUNCTION>true</FUNCTION>
446                         <FUNCTION>unordered</FUNCTION>
447                         <FUNCTION>upper-case</FUNCTION>
448                         <FUNCTION>xcollection</FUNCTION>
449                         <FUNCTION>year-from-date</FUNCTION>
450                         <FUNCTION>year-from-dateTime</FUNCTION>
451                         <FUNCTION>substring-before</FUNCTION>
452                         <FUNCTION>subsequence</FUNCTION>
453                         <FUNCTION>substring</FUNCTION>
454                         <FUNCTION>substring-after</FUNCTION>
455
456                 </KEYWORDS>
457         </RULES>
458
459 </MODE>