Difference between revisions of "Eiffel Coding Standard"

(Style)
Line 5: Line 5:
 
:* '''inherit''' and parent clauses
 
:* '''inherit''' and parent clauses
 
* Do not use assertion clauses without tag names.
 
* Do not use assertion clauses without tag names.
 +
 +
<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==
 
==Style==

Revision as of 23:58, 1 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.
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:

if
    expr1
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 ponctuations, 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