Next: Packages, Previous: Statements, Up: Top [Contents][Index]
in
for parameters.
function Length (S : String) return Integer;
procedure Set_Heading (Source : String; Count : Natural; Pad : Character := Space; Fill : Boolean := True);
In the case of a function, if the entire spec does not fit on one line, then the return may appear after the last parameter, as in:
function Head (Source : String; Count : Natural; Pad : Character := Space) return String;
Or it may appear on its own as a separate line. This form is preferred when putting the return on the same line as the last parameter would result in an overlong line. The return type may optionally be aligned with the types of the parameters (usually we do this aligning if it results only in a small number of extra spaces, and otherwise we don’t attempt to align). So two alternative forms for the above spec are:
function Head (Source : String; Count : Natural; Pad : Character := Space) return String; function Head (Source : String; Count : Natural; Pad : Character := Space) return String;
----------------- -- My_Function -- ----------------- procedure My_Function is begin ... end My_Function;
Note that the name in the header is preceded by a single space, not two spaces as for other comments. These headers are used on nested subprograms as well as outer level subprograms. They may also be used as headers for sections of comments, or collections of declarations that are related.
begin
of the enclosing
subprogram, there is a comment line and a blank line:
-- Start of processing for Enclosing_Subprogram begin ... end Enclosing_Subprogram;
procedure Style1 is Var_Referenced_In_Nested : Integer; Var_Referenced_Only_In_Style1 : Integer; proc Nested; -- Comments ... ------------ -- Nested -- ------------ procedure Nested is begin ... end Nested; -- Start of processing for Style1 begin ... end Style1;
procedure Style2 is Var_Referenced_In_Nested : Integer; proc Nested; -- Comments ... ------------ -- Nested -- ------------ procedure Nested is begin ... end Nested; -- Local variables Var_Referenced_Only_In_Style2 : Integer; -- Start of processing for Style2 begin ... end Style2;
For new code, we generally prefer Style2, but we do not insist on modifying all legacy occurrences of Style1, which is still much more common in the sources.
Next: Packages, Previous: Statements, Up: Top [Contents][Index]