]> gitweb.factorcode.org Git - factor.git/blob - misc/Factor.tmbundle/Syntaxes/Factor.tmLanguage
Revert "core: find-last-integer -> find-last-integer-from for symmetry"
[factor.git] / misc / Factor.tmbundle / Syntaxes / Factor.tmLanguage
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0">
4 <dict>
5         <key>fileTypes</key>
6         <array>
7                 <string>factor</string>
8                 <string>facts</string>
9         </array>
10         <key>foldingStartMarker</key>
11         <string>^\s*(M|C)?:|#(V|H|C)\{</string>
12         <key>foldingStopMarker</key>
13         <string>^\s*$</string>
14         <key>keyEquivalent</key>
15         <string>^~F</string>
16         <key>name</key>
17         <string>Factor</string>
18         <key>patterns</key>
19         <array>
20                 <dict>
21                         <key>captures</key>
22                         <dict>
23                                 <key>2</key>
24                                 <dict>
25                                         <key>name</key>
26                                         <string>keyword.colon.factor</string>
27                                 </dict>
28                                 <key>3</key>
29                                 <dict>
30                                         <key>name</key>
31                                         <string>entity.name.function.factor</string>
32                                 </dict>
33                                 <key>4</key>
34                                 <dict>
35                                         <key>name</key>
36                                         <string>comment.stack-effect.factor</string>
37                                 </dict>
38                         </dict>
39                         <key>match</key>
40                         <string>(^|(?&lt;=\s))(::?)\s+([^\s]+)\s</string>
41                         <key>name</key>
42                         <string>definition.word.factor</string>
43                 </dict>
44                 <dict>
45                         <key>captures</key>
46                         <dict>
47                                 <key>2</key>
48                                 <dict>
49                                         <key>name</key>
50                                         <string>keyword.colon.factor</string>
51                                 </dict>
52                                 <key>3</key>
53                                 <dict>
54                                         <key>name</key>
55                                         <string>entity.name.method.factor</string>
56                                 </dict>
57                                 <key>4</key>
58                                 <dict>
59                                         <key>name</key>
60                                         <string>comment.stack-effect.factor</string>
61                                 </dict>
62                         </dict>
63                         <key>match</key>
64                         <string>(^|(?&lt;=\s))(C:)\s+([^\s]+)\s</string>
65                         <key>name</key>
66                         <string>definition.word.class.factor</string>
67                 </dict>
68                 <dict>
69                         <key>captures</key>
70                         <dict>
71                                 <key>2</key>
72                                 <dict>
73                                         <key>name</key>
74                                         <string>keyword.colon.factor</string>
75                                 </dict>
76                                 <key>3</key>
77                                 <dict>
78                                         <key>name</key>
79                                         <string>entity.name.class.factor</string>
80                                 </dict>
81                                 <key>4</key>
82                                 <dict>
83                                         <key>name</key>
84                                         <string>entity.name.method.factor</string>
85                                 </dict>
86                                 <key>5</key>
87                                 <dict>
88                                         <key>name</key>
89                                         <string>comment.stack-effect.factor</string>
90                                 </dict>
91                         </dict>
92                         <key>match</key>
93                         <string>(^|(?&lt;=\s))(M:)\s+([^\s]+)\s+([^\s]+)\s</string>
94                         <key>name</key>
95                         <string>definition.word.method.factor</string>
96                 </dict>
97                 <dict>
98                         <key>captures</key>
99                         <dict>
100                                 <key>2</key>
101                                 <dict>
102                                         <key>name</key>
103                                         <string>keyword.colon.factor</string>
104                                 </dict>
105                                 <key>3</key>
106                                 <dict>
107                                         <key>name</key>
108                                         <string>entity.name.generic.factor</string>
109                                 </dict>
110                                 <key>5</key>
111                                 <dict>
112                                         <key>name</key>
113                                         <string>comment.stack-effect.factor</string>
114                                 </dict>
115                         </dict>
116                         <key>match</key>
117                         <string>(^|(?&lt;=\s))(GENERIC:)\s+([^\s]+)\s</string>
118                         <key>name</key>
119                         <string>definition.word.generic.factor</string>
120                 </dict>
121                 <dict>
122                         <key>captures</key>
123                         <dict>
124                                 <key>2</key>
125                                 <dict>
126                                         <key>name</key>
127                                         <string>keyword.colon.factor</string>
128                                 </dict>
129                                 <key>3</key>
130                                 <dict>
131                                         <key>name</key>
132                                         <string>entity.name.generic.factor</string>
133                                 </dict>
134                                 <key>5</key>
135                                 <dict>
136                                         <key>name</key>
137                                         <string>comment.stack-effect.factor</string>
138                                 </dict>
139                         </dict>
140                         <key>match</key>
141                         <string>(^|(?&lt;=\s))(GENERIC#:)\s+([^\s]+)\s(\d+)\s</string>
142                         <key>name</key>
143                         <string>definition.word.generic.factor</string>
144                 </dict>
145                 <dict>
146                         <key>captures</key>
147                         <dict>
148                                 <key>2</key>
149                                 <dict>
150                                         <key>name</key>
151                                         <string>storage.type.factor</string>
152                                 </dict>
153                                 <key>3</key>
154                                 <dict>
155                                         <key>name</key>
156                                         <string>entity.name.class.factor</string>
157                                 </dict>
158                         </dict>
159                         <key>match</key>
160                         <string>(^|(?&lt;=\s))(TUPLE:|BUILTIN:)\s+([^\s]+)\s+(([^\s]+)+)</string>
161                         <key>name</key>
162                         <string>meta.class.factor</string>
163                 </dict>
164                 <dict>
165                         <key>match</key>
166                         <string>(^|(?&lt;=\s))(&gt;boolean|&lt;wrapper&gt;|\(clone\)|-rot|2bi|2bi@|2bi\*|2curry|2dip|2drop|2dup|2keep|2nip|2over|2tri|2tri@|2tri\*|2with|3bi|3curry|3dip|3drop|3dup|3keep|3tri|4dip|4drop|4dup|4keep|=|\?|\?if|and|assert|assert=|assert\?|bi|bi-curry|bi-curry@|bi-curry\*|bi@|bi\*|boa|boolean|boolean\?|both\?|build|call|callstack|callstack&gt;array|callstack\?|clear|clone|compose|compose\?|curry|curry\?|datastack|die|dip|do|drop|dup|dupd|either\?|eq\?|equal\?|execute|hashcode|hashcode\*|identity-hashcode|identity-tuple|identity-tuple\?|if|if\*|keep|loop|most|new|nip|not|null|object|or|over|pick|prepose|retainstack|rot|same\?|swap|swapd|throw|tri|tri-curry|tri-curry@|tri-curry\*|tri@|tri\*|tuple|tuple\?|unless|unless\*|until|when|when\*|while|with|wrapper|wrapper\?|xor)(\s|$)</string>
167                         <key>name</key>
168                         <string>keyword.control.kernel.factor</string>
169                 </dict>
170                 <dict>
171                         <key>match</key>
172                         <string>(^|(?&lt;=\s))(\+@|change|change-global|counter|dec|get|get-global|global|inc|init-namespaces|initialize|is-global|namespace|namestack|off|on|set|set-global|set-namestack|toggle|with-global|with-scope|with-variable|with-variables)(\s|$)</string>
173                         <key>name</key>
174                         <string>keyword.control.namespaces.factor</string>
175                 </dict>
176                 <dict>
177                         <key>match</key>
178                         <string>(^|(?&lt;=\s))(&gt;alist|&lt;enum&gt;|2cache|\?at|\?of|assoc|assoc&gt;map|assoc-all\?|assoc-any\?|assoc-clone-like|assoc-union-all|assoc-diff|assoc-diff!|assoc-differ|assoc-each|assoc-empty\?|assoc-filter|assoc-filter!|assoc-filter-as|assoc-find|assoc-hashcode|assoc-intersect|assoc-like|assoc-map|assoc-map-as|assoc-partition|assoc-intersect-all|assoc-size|assoc-stack|assoc-subset\?|assoc-union|assoc-union!|assoc=|assoc\?|at|at\*|at\+|cache|change-at|clear-assoc|delete-at|delete-at\*|enum|enum\?|extract-keys|inc-at|key\?|keys|map&gt;assoc|maybe-set-at|new-assoc|of|push-at|rename-at|set-at|sift-keys|sift-values|substitute|unzip|value-at|value-at\*|value\?|values|zip|zip-as|zip-index|zip-index-as)(\s|$)</string>
179                         <key>name</key>
180                         <string>keyword.control.assocs.factor</string>
181                 </dict>
182                 <dict>
183                         <key>match</key>
184                         <string>(^|(?&lt;=\s))(2cleave|2cleave&gt;quot|3cleave|3cleave&gt;quot|4cleave|4cleave&gt;quot|alist&gt;quot|call-effect|case|case&gt;quot|case-find|cleave|cleave&gt;quot|cond|cond&gt;quot|deep-spread&gt;quot|execute-effect|linear-case-quot|no-case|no-case\?|no-cond|no-cond\?|recursive-hashcode|shallow-spread&gt;quot|spread|to-fixed-point|wrong-values|wrong-values\?)(\s|$)</string>
185                         <key>name</key>
186                         <string>keyword.control.combinators.factor</string>
187                 </dict>
188                 <dict>
189                         <key>match</key>
190                         <string>(^|(?&lt;=\s))(&gt;|&gt;=|&gt;bignum|&gt;fixnum|&gt;float|&gt;integer|&lt;|&lt;=|&lt;fp-nan&gt;|\(all-integers\?\)|\(each-integer\)|\(find-integer\)|-|/|/f|/i|/mod|2/|2^|\*|\+|\?1\+|abs|align|all-integers\?|bignum|bignum\?|bit\?|bitand|bitnot|bitor|bits&gt;double|bits&gt;float|bitxor|complex|complex\?|denominator|double&gt;bits|each-integer|even\?|find-integer|find-last-integer|fixnum|fixnum\?|float|float&gt;bits|float\?|fp-bitwise=|fp-infinity\?|fp-nan-payload|fp-nan\?|fp-qnan\?|fp-sign|fp-snan\?|fp-special\?|if-zero|imaginary-part|integer|integer&gt;fixnum|integer&gt;fixnum-strict|integer\?|log2|log2-expects-positive|log2-expects-positive\?|mod|neg|neg\?|next-float|next-power-of-2|number|number=|number\?|numerator|odd\?|power-of-2\?|prev-float|ratio|ratio\?|rational|rational\?|real|real-part|real\?|recip|rem|sgn|shift|sq|times|u&gt;|u&gt;=|u&lt;|u&lt;=|unless-zero|unordered\?|when-zero|zero\?)(\s|$)</string>
191                         <key>name</key>
192                         <string>keyword.control.math.factor</string>
193                 </dict>
194                 <dict>
195                         <key>match</key>
196                         <string>(^|(?&lt;=\s))(&lt;repetition&gt;|&lt;reversed&gt;|&lt;slice&gt;|1sequence|2all\?|2each|2map|2map-as|2map-reduce|2reduce|2selector|2sequence|3append|3append-as|3each|3map|3map-as|3sequence|4sequence|\?first|\?last|\?nth|\?second|\?set-nth|accumulate|accumulate!|accumulate-as|all\?|any\?|append|append!|append-as|assert-sequence|assert-sequence=|assert-sequence\?|binary-reduce|bounds-check|bounds-check\?|bounds-error|bounds-error\?|but-last|but-last-slice|cartesian-each|cartesian-map|cartesian-product|change-nth|check-slice|check-slice-error|clone-like|collapse-slice|collector|collector-for|concat|concat-as|copy|count|cut|cut-slice|cut\*|delete-all|delete-slice|drop-prefix|each|each-from|each-index|empty\?|exchange|filter|filter!|filter-as|find|find-from|find-index|find-index-from|find-last|find-last-from|first|first2|first3|first4|flip|follow|fourth|glue|halves|harvest|head|head-slice|head-slice\*|head\*|head\?|if-empty|immutable|immutable-sequence|immutable-sequence\?|immutable\?|index|index-from|indices|infimum|infimum-by|insert-nth|interleave|iota|iota-tuple|iota-tuple\?|join|join-as|last|last-index|last-index-from|length|lengthen|like|longer|longer\?|longest|map|map!|map-as|map-find|map-find-last|map-index|map-index-as|map-integers|map-reduce|map-sum|max-length|member-eq\?|member\?|midpoint@|min-length|mismatch|move|new-like|new-resizable|new-sequence|non-negative-integer-expected|non-negative-integer-expected\?|nth|nths|pad-head|pad-tail|padding|partition|pop|pop\*|prefix|prepend|prepend-as|produce|produce-as|product|push|push-all|push-either|push-if|reduce|reduce-index|remove|remove!|remove-eq|remove-eq!|remove-nth|remove-nth!|repetition|repetition\?|replace-slice|replicate|replicate-as|rest|rest-slice|reverse|reverse!|reversed|reversed\?|second|selector|selector-for|sequence|sequence-hashcode|sequence=|sequence\?|set-first|set-fourth|set-last|set-length|set-nth|set-second|set-third|short|shorten|shorter|shorter\?|shortest|sift|slice|slice-error|slice-error\?|slice\?|snip|snip-slice|start|start\*|subseq|subseq\?|suffix|suffix!|sum|sum-lengths|supremum|supremum-by|surround|tail|tail-slice|tail-slice\*|tail\*|tail\?|third|trim|trim-head|trim-head-slice|trim-slice|trim-tail|trim-tail-slice|unclip|unclip-last|unclip-last-slice|unclip-slice|unless-empty|virtual-exemplar|virtual-sequence|virtual-sequence\?|virtual@|when-empty)(\s|$)</string>
197                         <key>name</key>
198                         <string>keyword.control.sequences.factor</string>
199                 </dict>
200                 <dict>
201                         <key>match</key>
202                         <string>(^|(?&lt;=\s))(&gt;array|&lt;array&gt;|1array|2array|3array|4array|array|array\?|pair|pair\?|resize-array)(\s|$)</string>
203                         <key>name</key>
204                         <string>keyword.control.arrays.factor</string>
205                 </dict>
206                 <dict>
207                         <key>match</key>
208                         <string>(^|(?&lt;=\s))(\(each-stream-block-slice\)|\(each-stream-block\)|\(stream-contents-by-block\)|\(stream-contents-by-element\)|\(stream-contents-by-length-or-block\)|\(stream-contents-by-length\)|\+byte\+|\+character\+|bad-seek-type|bad-seek-type\?|bl|contents|each-block|each-block-size|each-block-slice|each-line|each-morsel|each-stream-block|each-stream-block-slice|each-stream-line|error-stream|flush|input-stream|input-stream\?|invalid-read-buffer|invalid-read-buffer\?|lines|nl|output-stream|output-stream\?|print|read|read-into|read-partial|read-partial-into|read-until|read1|readln|seek-absolute|seek-absolute\?|seek-end|seek-end\?|seek-input|seek-output|seek-relative|seek-relative\?|stream-bl|stream-contents|stream-contents\*|stream-copy|stream-copy\*|stream-element-type|stream-flush|stream-length|stream-lines|stream-nl|stream-print|stream-read|stream-read-into|stream-read-partial|stream-read-partial-into|stream-read-partial-unsafe|stream-read-unsafe|stream-read-until|stream-read1|stream-readln|stream-seek|stream-seekable\?|stream-tell|stream-write|stream-write1|tell-input|tell-output|with-error&gt;output|with-error-stream|with-error-stream\*|with-input-output\+error-streams|with-input-output\+error-streams\*|with-input-stream|with-input-stream\*|with-output&gt;error|with-output-stream|with-output-stream\*|with-output\+error-stream|with-output\+error-stream\*|with-streams|with-streams\*|write|write1)(\s|$)</string>
209                         <key>name</key>
210                         <string>keyword.control.io.factor</string>
211                 </dict>
212                 <dict>
213                         <key>match</key>
214                         <string>(^|(?&lt;=\s))(&gt;string|&lt;string&gt;|1string|resize-string|string|string\?)(\s|$)</string>
215                         <key>name</key>
216                         <string>keyword.control.strings.factor</string>
217                 </dict>
218                 <dict>
219                         <key>match</key>
220                         <string>(^|(?&lt;=\s))(&gt;vector|&lt;vector&gt;|1vector|\?push|vector|vector\?)(\s|$)</string>
221                         <key>name</key>
222                         <string>keyword.control.vectors.factor</string>
223                 </dict>
224                 <dict>
225                         <key>match</key>
226                         <string>(^|(?&lt;=\s))(&lt;condition&gt;|&lt;continuation&gt;|&lt;restart&gt;|attempt-all|attempt-all-error|attempt-all-error\?|callback-error-hook|callcc0|callcc1|cleanup|compute-restarts|condition|condition\?|continuation|continuation\?|continue|continue-restart|continue-with|current-continuation|error|error-continuation|error-in-thread|error-thread|ifcc|ignore-errors|in-callback\?|original-error|recover|restart|restart\?|restarts|rethrow|rethrow-restarts|return|return-continuation|thread-error-hook|throw-continue|throw-restarts|with-datastack|with-return)(\s|$)</string>
227                         <key>name</key>
228                         <string>keyword.control.continuations.factor</string>
229                 </dict>
230                 <dict>
231                         <key>begin</key>
232                         <string>(^|(?&lt;=\s))(USING:)</string>
233                         <key>end</key>
234                         <string>(?&lt;=\s);(\s|$)</string>
235                         <key>name</key>
236                         <string>keyword.control.using.factor</string>
237                         <key>patterns</key>
238                         <array>
239                                 <dict>
240                                         <key>match</key>
241                                         <string>(^|(?&lt;=\s))[^\s]+(\s|$)</string>
242                                         <key>name</key>
243                                         <string>constant.namespace.factor</string>
244                                 </dict>
245                         </array>
246                 </dict>
247                 <dict>
248                         <key>match</key>
249                         <string>(^|(?&lt;=\s))(f|t)(\s|$)</string>
250                         <key>name</key>
251                         <string>constant.language.factor</string>
252                 </dict>
253                 <dict>
254                         <key>match</key>
255                         <string>(^|(?&lt;=\s))CHAR:\s+[^\s]+(\s|$)</string>
256                         <key>name</key>
257                         <string>constant.character.factor</string>
258                 </dict>
259                 <dict>
260                         <key>match</key>
261                         <string>(^|(?&lt;=\s))[+-]?\d([\d,]*\d)?(\s|$)</string>
262                         <key>name</key>
263                         <string>constant.numeric.integer.factor</string>
264                 </dict>
265                 <dict>
266                         <key>match</key>
267                         <string>(^|(?&lt;=\s))[+-]?(\d([\d,]*\d)?)?\.\d([\d,]*\d)?([Ee][+-]?\d([\d,]*\d)?)?(\s|$)</string>
268                         <key>name</key>
269                         <string>constant.numeric.float.factor</string>
270                 </dict>
271                 <dict>
272                         <key>match</key>
273                         <string>(^|(?&lt;=\s))(-\d([\d,]*\d)?)?-?\d([\d,]*\d)?/\d([\d,]*\d)?(\s|$)</string>
274                         <key>name</key>
275                         <string>constant.numeric.neg-ratio.factor</string>
276                 </dict>
277                 <dict>
278                         <key>match</key>
279                         <string>(^|(?&lt;=\s))\+?(\d([\d,]*\d)?\+?)?\d([\d,]*\d)?/\d([\d,]*\d)?(\s|$)</string>
280                         <key>name</key>
281                         <string>constant.numeric.pos-ratio.factor</string>
282                 </dict>
283                 <dict>
284                         <key>match</key>
285                         <string>(^|(?&lt;=\s))[+-]?0b[01]([01,]*[01])?(\s|$)</string>
286                         <key>name</key>
287                         <string>constant.numeric.binary.factor</string>
288                 </dict>
289                 <dict>
290                         <key>match</key>
291                         <string>(^|(?&lt;=\s))[+-]?0o[0-7]([0-7,]*[0-7])?(\s|$)</string>
292                         <key>name</key>
293                         <string>constant.numeric.octal.factor</string>
294                 </dict>
295                 <dict>
296                         <key>match</key>
297                         <string>(^|(?&lt;=\s))[+-]?0x[0-9a-fA-Fp]([0-9a-fA-F,]*[0-9a-fA-F])?(p[0-9a-fA-Fp]([0-9a-fA-F,]*[0-9a-fA-F])?)?(\s|$)</string>
298                         <key>name</key>
299                         <string>constant.numeric.hex.factor</string>
300                 </dict>
301                 <dict>
302                         <key>begin</key>
303                         <string>"</string>
304                         <key>end</key>
305                         <string>"</string>
306                         <key>name</key>
307                         <string>string.quoted.double.factor</string>
308                         <key>patterns</key>
309                         <array>
310                                 <dict>
311                                         <key>include</key>
312                                         <string>#escaped_characters</string>
313                                 </dict>
314                         </array>
315                 </dict>
316                 <dict>
317                         <key>begin</key>
318                         <string>&lt;"</string>
319                         <key>end</key>
320                         <string>"&gt;</string>
321                         <key>name</key>
322                         <string>string.quoted.double.multiline.factor</string>
323                         <key>patterns</key>
324                         <array>
325                                 <dict>
326                                         <key>include</key>
327                                         <string>#escaped_characters</string>
328                                 </dict>
329                         </array>
330                 </dict>
331                 <dict>
332                         <key>begin</key>
333                         <string>(^|(?&lt;=\s))(STRING:)\s+(\S+)</string>
334                         <key>captures</key>
335                         <dict>
336                                 <key>2</key>
337                                 <dict>
338                                         <key>name</key>
339                                         <string>keyword.colon.factor</string>
340                                 </dict>
341                                 <key>3</key>
342                                 <dict>
343                                         <key>name</key>
344                                         <string>entity.name.heredoc.factor</string>
345                                 </dict>
346                         </dict>
347                         <key>contentName</key>
348                         <string>string.unquoted.heredoc.factor</string>
349                         <key>end</key>
350                         <string>^;$</string>
351                         <key>name</key>
352                         <string>definition.word.heredoc.factor</string>
353                 </dict>
354                 <dict>
355                         <key>match</key>
356                         <string>inline|foldable</string>
357                         <key>name</key>
358                         <string>storage.modifier.factor</string>
359                 </dict>
360                 <dict>
361                         <key>match</key>
362                         <string>(^|(?&lt;=\s))#?!(\s.*)?$</string>
363                         <key>name</key>
364                         <string>comment.line.factor</string>
365                 </dict>
366                 <dict>
367                         <key>begin</key>
368                         <string>\((?=\s)</string>
369                         <key>end</key>
370                         <string>(^|(?&lt;=\s))\)</string>
371                         <key>name</key>
372                         <string>comment.parens.factor</string>
373                 </dict>
374                 <dict>
375                         <key>match</key>
376                         <string>\b[^\s]+:\s+[^\s]+(\s|$)</string>
377                         <key>name</key>
378                         <string>keyword.control.postpone.factor</string>
379                 </dict>
380         </array>
381         <key>repository</key>
382         <dict>
383                 <key>escaped_characters</key>
384                 <dict>
385                         <key>patterns</key>
386                         <array>
387                                 <dict>
388                     <key>match</key>
389                                         <string>\\(\\|[abefnrtsv0"]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{6})</string>
390                                         <key>name</key>
391                                         <string>constant.character.escape.factor</string>
392                                 </dict>
393                                 <dict>
394                                         <key>match</key>
395                                         <string>\\.</string>
396                                         <key>name</key>
397                                         <string>invalid.illegal.unknown-escape.factor</string>
398                                 </dict>
399                         </array>
400                 </dict>
401         </dict>
402         <key>scopeName</key>
403         <string>source.factor</string>
404         <key>uuid</key>
405         <string>3C9C9C2A-314A-475B-A4E4-A68BAAF3F36E</string>
406 </dict>
407 </plist>