mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-06 23:02:28 +01:00
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2102 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
94 lines
1.4 KiB
Plaintext
94 lines
1.4 KiB
Plaintext
[[Property:modification_date|Mon, 03 Dec 2018 10:00:43 GMT]]
|
|
[[Property:publication_date|Tue, 30 Oct 2018 14:56:21 GMT]]
|
|
[[Property:uuid|0CD0A1B2-42F8-48E0-B419-61B4DC076C1B]]
|
|
[[Property:weight|2]]
|
|
[[Property:title|Eiffel Coding Standard]]
|
|
|
|
==Language consideration==
|
|
* Do not put a blank line between
|
|
:* '''create''' and creation instructions
|
|
:* '''inherit''' and parent clauses
|
|
* Do not use assertion clauses without tag names.
|
|
|
|
A sample of proper formatting of code:
|
|
<e>note
|
|
description: "Descr...."
|
|
date: "$date: $"
|
|
|
|
class A
|
|
|
|
inherit
|
|
B
|
|
rename
|
|
f as g
|
|
end
|
|
|
|
create
|
|
make
|
|
|
|
feature {NONE} -- Initialization
|
|
|
|
make (a: INTEGER)
|
|
-- Initialize Current with `a`.
|
|
do
|
|
end
|
|
|
|
invariant
|
|
a_positive: a > 0
|
|
|
|
end</e>
|
|
|
|
==Style==
|
|
* If instructions:
|
|
<e>if expr1 then
|
|
...
|
|
elseif expr2 then
|
|
...
|
|
else
|
|
...
|
|
end</e>
|
|
|
|
If expressions are very long, break them on conjunctions as in:
|
|
<e>if
|
|
expr1 and then
|
|
expr2
|
|
then
|
|
...
|
|
end</e>
|
|
|
|
* Loop instructions:
|
|
<e>from
|
|
...
|
|
until
|
|
...
|
|
loop
|
|
...
|
|
end</e>
|
|
|
|
* Inspect instructions:
|
|
<e>inspect expr
|
|
when val1 then ....
|
|
else
|
|
...
|
|
end</e>
|
|
|
|
or
|
|
|
|
<e>inspect
|
|
expr
|
|
when val1 then
|
|
...
|
|
else
|
|
...
|
|
end</e>
|
|
|
|
* For punctuation, we always have
|
|
** a space before, and no after `(`
|
|
** no space before, and space after `)` `,` `:` or `;`
|
|
|
|
<e>require
|
|
a_tag: query (a, b, c) or other_query (c, d)
|
|
local
|
|
i: INTEGER; j: INTEGER
|
|
</e>
|