annotate .cms/lib/codemirror/mode/mllike/mllike.js @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 (function(mod) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 if (typeof exports == "object" && typeof module == "object") // CommonJS
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 mod(require("../../lib/codemirror"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 else if (typeof define == "function" && define.amd) // AMD
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 define(["../../lib/codemirror"], mod);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 else // Plain browser env
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 mod(CodeMirror);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 })(function(CodeMirror) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 "use strict";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 CodeMirror.defineMode('mllike', function(_config, parserConfig) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 var words = {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 'as': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 'do': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 'else': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 'end': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 'exception': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 'fun': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 'functor': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 'if': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 'in': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 'include': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 'let': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 'of': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 'open': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 'rec': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 'struct': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 'then': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 'type': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 'val': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 'while': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 'with': 'keyword'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 var extraWords = parserConfig.extraWords || {};
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 for (var prop in extraWords) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 if (extraWords.hasOwnProperty(prop)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 words[prop] = parserConfig.extraWords[prop];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 var hintWords = [];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 for (var k in words) { hintWords.push(k); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 CodeMirror.registerHelper("hintWords", "mllike", hintWords);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 function tokenBase(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 var ch = stream.next();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 if (ch === '"') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 state.tokenize = tokenString;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 return state.tokenize(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 if (ch === '{') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 if (stream.eat('|')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 state.longString = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 state.tokenize = tokenLongString;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 return state.tokenize(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 if (ch === '(') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 if (stream.match(/^\*(?!\))/)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 state.commentLevel++;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 state.tokenize = tokenComment;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 return state.tokenize(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 if (ch === '~' || ch === '?') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 stream.eatWhile(/\w/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 return 'variable-2';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 if (ch === '`') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 stream.eatWhile(/\w/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 return 'quote';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 if (ch === '/' && parserConfig.slashComments && stream.eat('/')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 stream.skipToEnd();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 return 'comment';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 if (/\d/.test(ch)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 if (ch === '0' && stream.eat(/[bB]/)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 stream.eatWhile(/[01]/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 } if (ch === '0' && stream.eat(/[xX]/)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 stream.eatWhile(/[0-9a-fA-F]/)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 } if (ch === '0' && stream.eat(/[oO]/)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 stream.eatWhile(/[0-7]/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 stream.eatWhile(/[\d_]/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 if (stream.eat('.')) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 stream.eatWhile(/[\d]/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 if (stream.eat(/[eE]/)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 stream.eatWhile(/[\d\-+]/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 return 'number';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 if ( /[+\-*&%=<>!?|@\.~:]/.test(ch)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 return 'operator';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 if (/[\w\xa1-\uffff]/.test(ch)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 stream.eatWhile(/[\w\xa1-\uffff]/);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 var cur = stream.current();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 return words.hasOwnProperty(cur) ? words[cur] : 'variable';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 return null
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 function tokenString(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 var next, end = false, escaped = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 while ((next = stream.next()) != null) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 if (next === '"' && !escaped) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 end = true;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 break;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 escaped = !escaped && next === '\\';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 if (end && !escaped) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 state.tokenize = tokenBase;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 return 'string';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 function tokenComment(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 var prev, next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 while(state.commentLevel > 0 && (next = stream.next()) != null) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 if (prev === '(' && next === '*') state.commentLevel++;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 if (prev === '*' && next === ')') state.commentLevel--;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 prev = next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 if (state.commentLevel <= 0) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 state.tokenize = tokenBase;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 return 'comment';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 function tokenLongString(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 var prev, next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 while (state.longString && (next = stream.next()) != null) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 if (prev === '|' && next === '}') state.longString = false;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 prev = next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 if (!state.longString) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 state.tokenize = tokenBase;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 return 'string';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 return {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 startState: function() {return {tokenize: tokenBase, commentLevel: 0, longString: false};},
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 token: function(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 if (stream.eatSpace()) return null;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 return state.tokenize(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 blockCommentStart: "(*",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 blockCommentEnd: "*)",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 lineComment: parserConfig.slashComments ? "//" : null
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 CodeMirror.defineMIME('text/x-ocaml', {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 name: 'mllike',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 extraWords: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 'and': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 'assert': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 'begin': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 'class': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 'constraint': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 'done': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 'downto': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 'external': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 'function': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 'initializer': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176 'lazy': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 'match': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 'method': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 'module': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 'mutable': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 'new': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 'nonrec': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 'object': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 'private': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 'sig': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 'to': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 'try': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 'value': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 'virtual': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 'when': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 // builtins
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193 'raise': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 'failwith': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 'true': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 'false': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 // Pervasives builtins
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199 'asr': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 'land': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 'lor': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 'lsl': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203 'lsr': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 'lxor': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 'mod': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 'or': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 // More Pervasives
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 'raise_notrace': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 'trace': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 'exit': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212 'print_string': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 'print_endline': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215 'int': 'type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216 'float': 'type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 'bool': 'type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218 'char': 'type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 'string': 'type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 'unit': 'type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 // Modules
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 'List': 'builtin'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 CodeMirror.defineMIME('text/x-fsharp', {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 name: 'mllike',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229 extraWords: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230 'abstract': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231 'assert': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 'base': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233 'begin': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234 'class': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 'default': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236 'delegate': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 'do!': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238 'done': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 'downcast': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240 'downto': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241 'elif': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 'extern': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 'finally': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244 'for': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245 'function': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
246 'global': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
247 'inherit': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
248 'inline': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
249 'interface': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
250 'internal': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
251 'lazy': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
252 'let!': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
253 'match': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
254 'member': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
255 'module': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
256 'mutable': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
257 'namespace': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
258 'new': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
259 'null': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
260 'override': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
261 'private': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
262 'public': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
263 'return!': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
264 'return': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
265 'select': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
266 'static': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
267 'to': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
268 'try': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
269 'upcast': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
270 'use!': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
271 'use': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
272 'void': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
273 'when': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
274 'yield!': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
275 'yield': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
276
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
277 // Reserved words
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
278 'atomic': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
279 'break': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
280 'checked': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
281 'component': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
282 'const': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
283 'constraint': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
284 'constructor': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
285 'continue': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
286 'eager': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
287 'event': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
288 'external': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
289 'fixed': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
290 'method': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
291 'mixin': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
292 'object': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
293 'parallel': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
294 'process': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
295 'protected': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
296 'pure': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
297 'sealed': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
298 'tailcall': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
299 'trait': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
300 'virtual': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
301 'volatile': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
302
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
303 // builtins
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
304 'List': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
305 'Seq': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
306 'Map': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
307 'Set': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
308 'Option': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
309 'int': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
310 'string': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
311 'not': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
312 'true': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
313 'false': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
314
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
315 'raise': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
316 'failwith': 'builtin'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
317 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
318 slashComments: true
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
319 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
320
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
321
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
322 CodeMirror.defineMIME('text/x-sml', {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
323 name: 'mllike',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
324 extraWords: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
325 'abstype': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
326 'and': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
327 'andalso': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
328 'case': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
329 'datatype': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
330 'fn': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
331 'handle': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
332 'infix': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
333 'infixr': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
334 'local': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
335 'nonfix': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
336 'op': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
337 'orelse': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
338 'raise': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
339 'withtype': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
340 'eqtype': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
341 'sharing': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
342 'sig': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
343 'signature': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
344 'structure': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
345 'where': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
346 'true': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
347 'false': 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
348
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
349 // types
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
350 'int': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
351 'real': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
352 'string': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
353 'char': 'builtin',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
354 'bool': 'builtin'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
355 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
356 slashComments: true
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
357 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
358
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
359 });