Mercurial
comparison .cms/lib/codemirror/mode/eiffel/index.html @ 0:78edf6b517a0 draft
24.10
author | Coffee CMS <info@coffee-cms.ru> |
---|---|
date | Fri, 11 Oct 2024 22:40:23 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:78edf6b517a0 |
---|---|
1 <!doctype html> | |
2 | |
3 <title>CodeMirror: Eiffel mode</title> | |
4 <meta charset="utf-8"/> | |
5 <link rel=stylesheet href="../../doc/docs.css"> | |
6 | |
7 <link rel="stylesheet" href="../../lib/codemirror.css"> | |
8 <link rel="stylesheet" href="../../theme/neat.css"> | |
9 <script src="../../lib/codemirror.js"></script> | |
10 <script src="eiffel.js"></script> | |
11 <style> | |
12 .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} | |
13 .cm-s-default span.cm-arrow { color: red; } | |
14 </style> | |
15 <div id=nav> | |
16 <a href="https://codemirror.net/5"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png" alt=""></a> | |
17 | |
18 <ul> | |
19 <li><a href="../../index.html">Home</a> | |
20 <li><a href="../../doc/manual.html">Manual</a> | |
21 <li><a href="https://github.com/codemirror/codemirror5">Code</a> | |
22 </ul> | |
23 <ul> | |
24 <li><a href="../index.html">Language modes</a> | |
25 <li><a class=active href="#">Eiffel</a> | |
26 </ul> | |
27 </div> | |
28 | |
29 <article> | |
30 <h2>Eiffel mode</h2> | |
31 <form><textarea id="code" name="code"> | |
32 note | |
33 description: "[ | |
34 Project-wide universal properties. | |
35 This class is an ancestor to all developer-written classes. | |
36 ANY may be customized for individual projects or teams. | |
37 ]" | |
38 | |
39 library: "Free implementation of ELKS library" | |
40 status: "See notice at end of class." | |
41 legal: "See notice at end of class." | |
42 date: "$Date: 2013-01-25 11:49:00 -0800 (Fri, 25 Jan 2013) $" | |
43 revision: "$Revision: 712 $" | |
44 | |
45 class | |
46 ANY | |
47 | |
48 feature -- Customization | |
49 | |
50 feature -- Access | |
51 | |
52 generator: STRING | |
53 -- Name of current object's generating class | |
54 -- (base class of the type of which it is a direct instance) | |
55 external | |
56 "built_in" | |
57 ensure | |
58 generator_not_void: Result /= Void | |
59 generator_not_empty: not Result.is_empty | |
60 end | |
61 | |
62 generating_type: TYPE [detachable like Current] | |
63 -- Type of current object | |
64 -- (type of which it is a direct instance) | |
65 do | |
66 Result := {detachable like Current} | |
67 ensure | |
68 generating_type_not_void: Result /= Void | |
69 end | |
70 | |
71 feature -- Status report | |
72 | |
73 conforms_to (other: ANY): BOOLEAN | |
74 -- Does type of current object conform to type | |
75 -- of `other' (as per Eiffel: The Language, chapter 13)? | |
76 require | |
77 other_not_void: other /= Void | |
78 external | |
79 "built_in" | |
80 end | |
81 | |
82 same_type (other: ANY): BOOLEAN | |
83 -- Is type of current object identical to type of `other'? | |
84 require | |
85 other_not_void: other /= Void | |
86 external | |
87 "built_in" | |
88 ensure | |
89 definition: Result = (conforms_to (other) and | |
90 other.conforms_to (Current)) | |
91 end | |
92 | |
93 feature -- Comparison | |
94 | |
95 is_equal (other: like Current): BOOLEAN | |
96 -- Is `other' attached to an object considered | |
97 -- equal to current object? | |
98 require | |
99 other_not_void: other /= Void | |
100 external | |
101 "built_in" | |
102 ensure | |
103 symmetric: Result implies other ~ Current | |
104 consistent: standard_is_equal (other) implies Result | |
105 end | |
106 | |
107 frozen standard_is_equal (other: like Current): BOOLEAN | |
108 -- Is `other' attached to an object of the same type | |
109 -- as current object, and field-by-field identical to it? | |
110 require | |
111 other_not_void: other /= Void | |
112 external | |
113 "built_in" | |
114 ensure | |
115 same_type: Result implies same_type (other) | |
116 symmetric: Result implies other.standard_is_equal (Current) | |
117 end | |
118 | |
119 frozen equal (a: detachable ANY; b: like a): BOOLEAN | |
120 -- Are `a' and `b' either both void or attached | |
121 -- to objects considered equal? | |
122 do | |
123 if a = Void then | |
124 Result := b = Void | |
125 else | |
126 Result := b /= Void and then | |
127 a.is_equal (b) | |
128 end | |
129 ensure | |
130 definition: Result = (a = Void and b = Void) or else | |
131 ((a /= Void and b /= Void) and then | |
132 a.is_equal (b)) | |
133 end | |
134 | |
135 frozen standard_equal (a: detachable ANY; b: like a): BOOLEAN | |
136 -- Are `a' and `b' either both void or attached to | |
137 -- field-by-field identical objects of the same type? | |
138 -- Always uses default object comparison criterion. | |
139 do | |
140 if a = Void then | |
141 Result := b = Void | |
142 else | |
143 Result := b /= Void and then | |
144 a.standard_is_equal (b) | |
145 end | |
146 ensure | |
147 definition: Result = (a = Void and b = Void) or else | |
148 ((a /= Void and b /= Void) and then | |
149 a.standard_is_equal (b)) | |
150 end | |
151 | |
152 frozen is_deep_equal (other: like Current): BOOLEAN | |
153 -- Are `Current' and `other' attached to isomorphic object structures? | |
154 require | |
155 other_not_void: other /= Void | |
156 external | |
157 "built_in" | |
158 ensure | |
159 shallow_implies_deep: standard_is_equal (other) implies Result | |
160 same_type: Result implies same_type (other) | |
161 symmetric: Result implies other.is_deep_equal (Current) | |
162 end | |
163 | |
164 frozen deep_equal (a: detachable ANY; b: like a): BOOLEAN | |
165 -- Are `a' and `b' either both void | |
166 -- or attached to isomorphic object structures? | |
167 do | |
168 if a = Void then | |
169 Result := b = Void | |
170 else | |
171 Result := b /= Void and then a.is_deep_equal (b) | |
172 end | |
173 ensure | |
174 shallow_implies_deep: standard_equal (a, b) implies Result | |
175 both_or_none_void: (a = Void) implies (Result = (b = Void)) | |
176 same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) | |
177 symmetric: Result implies deep_equal (b, a) | |
178 end | |
179 | |
180 feature -- Duplication | |
181 | |
182 frozen twin: like Current | |
183 -- New object equal to `Current' | |
184 -- `twin' calls `copy'; to change copying/twinning semantics, redefine `copy'. | |
185 external | |
186 "built_in" | |
187 ensure | |
188 twin_not_void: Result /= Void | |
189 is_equal: Result ~ Current | |
190 end | |
191 | |
192 copy (other: like Current) | |
193 -- Update current object using fields of object attached | |
194 -- to `other', so as to yield equal objects. | |
195 require | |
196 other_not_void: other /= Void | |
197 type_identity: same_type (other) | |
198 external | |
199 "built_in" | |
200 ensure | |
201 is_equal: Current ~ other | |
202 end | |
203 | |
204 frozen standard_copy (other: like Current) | |
205 -- Copy every field of `other' onto corresponding field | |
206 -- of current object. | |
207 require | |
208 other_not_void: other /= Void | |
209 type_identity: same_type (other) | |
210 external | |
211 "built_in" | |
212 ensure | |
213 is_standard_equal: standard_is_equal (other) | |
214 end | |
215 | |
216 frozen clone (other: detachable ANY): like other | |
217 -- Void if `other' is void; otherwise new object | |
218 -- equal to `other' | |
219 -- | |
220 -- For non-void `other', `clone' calls `copy'; | |
221 -- to change copying/cloning semantics, redefine `copy'. | |
222 obsolete | |
223 "Use `twin' instead." | |
224 do | |
225 if other /= Void then | |
226 Result := other.twin | |
227 end | |
228 ensure | |
229 equal: Result ~ other | |
230 end | |
231 | |
232 frozen standard_clone (other: detachable ANY): like other | |
233 -- Void if `other' is void; otherwise new object | |
234 -- field-by-field identical to `other'. | |
235 -- Always uses default copying semantics. | |
236 obsolete | |
237 "Use `standard_twin' instead." | |
238 do | |
239 if other /= Void then | |
240 Result := other.standard_twin | |
241 end | |
242 ensure | |
243 equal: standard_equal (Result, other) | |
244 end | |
245 | |
246 frozen standard_twin: like Current | |
247 -- New object field-by-field identical to `other'. | |
248 -- Always uses default copying semantics. | |
249 external | |
250 "built_in" | |
251 ensure | |
252 standard_twin_not_void: Result /= Void | |
253 equal: standard_equal (Result, Current) | |
254 end | |
255 | |
256 frozen deep_twin: like Current | |
257 -- New object structure recursively duplicated from Current. | |
258 external | |
259 "built_in" | |
260 ensure | |
261 deep_twin_not_void: Result /= Void | |
262 deep_equal: deep_equal (Current, Result) | |
263 end | |
264 | |
265 frozen deep_clone (other: detachable ANY): like other | |
266 -- Void if `other' is void: otherwise, new object structure | |
267 -- recursively duplicated from the one attached to `other' | |
268 obsolete | |
269 "Use `deep_twin' instead." | |
270 do | |
271 if other /= Void then | |
272 Result := other.deep_twin | |
273 end | |
274 ensure | |
275 deep_equal: deep_equal (other, Result) | |
276 end | |
277 | |
278 frozen deep_copy (other: like Current) | |
279 -- Effect equivalent to that of: | |
280 -- `copy' (`other' . `deep_twin') | |
281 require | |
282 other_not_void: other /= Void | |
283 do | |
284 copy (other.deep_twin) | |
285 ensure | |
286 deep_equal: deep_equal (Current, other) | |
287 end | |
288 | |
289 feature {NONE} -- Retrieval | |
290 | |
291 frozen internal_correct_mismatch | |
292 -- Called from runtime to perform a proper dynamic dispatch on `correct_mismatch' | |
293 -- from MISMATCH_CORRECTOR. | |
294 local | |
295 l_msg: STRING | |
296 l_exc: EXCEPTIONS | |
297 do | |
298 if attached {MISMATCH_CORRECTOR} Current as l_corrector then | |
299 l_corrector.correct_mismatch | |
300 else | |
301 create l_msg.make_from_string ("Mismatch: ") | |
302 create l_exc | |
303 l_msg.append (generating_type.name) | |
304 l_exc.raise_retrieval_exception (l_msg) | |
305 end | |
306 end | |
307 | |
308 feature -- Output | |
309 | |
310 io: STD_FILES | |
311 -- Handle to standard file setup | |
312 once | |
313 create Result | |
314 Result.set_output_default | |
315 ensure | |
316 io_not_void: Result /= Void | |
317 end | |
318 | |
319 out: STRING | |
320 -- New string containing terse printable representation | |
321 -- of current object | |
322 do | |
323 Result := tagged_out | |
324 ensure | |
325 out_not_void: Result /= Void | |
326 end | |
327 | |
328 frozen tagged_out: STRING | |
329 -- New string containing terse printable representation | |
330 -- of current object | |
331 external | |
332 "built_in" | |
333 ensure | |
334 tagged_out_not_void: Result /= Void | |
335 end | |
336 | |
337 print (o: detachable ANY) | |
338 -- Write terse external representation of `o' | |
339 -- on standard output. | |
340 do | |
341 if o /= Void then | |
342 io.put_string (o.out) | |
343 end | |
344 end | |
345 | |
346 feature -- Platform | |
347 | |
348 Operating_environment: OPERATING_ENVIRONMENT | |
349 -- Objects available from the operating system | |
350 once | |
351 create Result | |
352 ensure | |
353 operating_environment_not_void: Result /= Void | |
354 end | |
355 | |
356 feature {NONE} -- Initialization | |
357 | |
358 default_create | |
359 -- Process instances of classes with no creation clause. | |
360 -- (Default: do nothing.) | |
361 do | |
362 end | |
363 | |
364 feature -- Basic operations | |
365 | |
366 default_rescue | |
367 -- Process exception for routines with no Rescue clause. | |
368 -- (Default: do nothing.) | |
369 do | |
370 end | |
371 | |
372 frozen do_nothing | |
373 -- Execute a null action. | |
374 do | |
375 end | |
376 | |
377 frozen default: detachable like Current | |
378 -- Default value of object's type | |
379 do | |
380 end | |
381 | |
382 frozen default_pointer: POINTER | |
383 -- Default value of type `POINTER' | |
384 -- (Avoid the need to write `p'.`default' for | |
385 -- some `p' of type `POINTER'.) | |
386 do | |
387 ensure | |
388 -- Result = Result.default | |
389 end | |
390 | |
391 frozen as_attached: attached like Current | |
392 -- Attached version of Current | |
393 -- (Can be used during transitional period to convert | |
394 -- non-void-safe classes to void-safe ones.) | |
395 do | |
396 Result := Current | |
397 end | |
398 | |
399 invariant | |
400 reflexive_equality: standard_is_equal (Current) | |
401 reflexive_conformance: conforms_to (Current) | |
402 | |
403 note | |
404 copyright: "Copyright (c) 1984-2012, Eiffel Software and others" | |
405 license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" | |
406 source: "[ | |
407 Eiffel Software | |
408 5949 Hollister Ave., Goleta, CA 93117 USA | |
409 Telephone 805-685-1006, Fax 805-685-6869 | |
410 Website http://www.eiffel.com | |
411 Customer support http://support.eiffel.com | |
412 ]" | |
413 | |
414 end | |
415 | |
416 </textarea></form> | |
417 <script> | |
418 var editor = CodeMirror.fromTextArea(document.getElementById("code"), { | |
419 mode: "text/x-eiffel", | |
420 indentUnit: 4, | |
421 lineNumbers: true, | |
422 theme: "neat" | |
423 }); | |
424 </script> | |
425 | |
426 <p><strong>MIME types defined:</strong> <code>text/x-eiffel</code>.</p> | |
427 | |
428 <p> Created by <a href="https://github.com/ynh">YNH</a>.</p> | |
429 </article> |