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