Eiffel Coding Standard: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Peter gummer (talk | contribs) mNo edit summary |
||
| (6 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Coding Standards]] | [[Category:Coding Standards]] | ||
==Language consideration== | |||
* Do not put a blank line between | * Do not put a blank line between | ||
:* '''create''' and creation instructions | :* '''create''' and creation instructions | ||
:* '''inherit''' and parent clauses | :* '''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 or else | |||
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 a space after ''')''', ''',''', ''':''', or ''';''': | ||
<e>require | |||
a_tag: query (a, b, c) or other_query (c, d) | |||
local | |||
i: INTEGER; j: INTEGER</e> | |||
Latest revision as of 08:11, 4 August 2013
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:
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
Style
- If instructions:
if expr1 then ... elseif expr2 then ... else ... end
If expressions are very long, break them on conjunctions as in:
if expr1 or else expr2 then ... end
- Loop instructions:
from ... until ... loop ... end
- Inspect instructions:
inspect expr when val1 then .... else ... end
or
inspect expr when val1 then ... else ... end
- For punctuation, we always have a space before ( and a space after ), ,, :, or ;:
require a_tag: query (a, b, c) or other_query (c, d) local i: INTEGER; j: INTEGER