| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429 | 
							- <!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>
 
 
  |