Blame view

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