subprogram_declaration ::= subprogram_specification;
abstract_subprogram_declaration ::= subprogram_specification is abstract;
subprogram_specification ::=
procedure defining_program_unit_name parameter_profile
| function defining_designator parameter_and_result_profile
designator ::= [parent_unit_name . ]identifier | operator_symbol
defining_designator ::= defining_program_unit_name | defining_operator_symbol
defining_program_unit_name ::= [parent_unit_name . ]defining_identifier
operator_symbol ::= string_literal
defining_operator_symbol ::= operator_symbol
parameter_profile ::= [formal_part]
parameter_and_result_profile ::= [formal_part] return subtype_mark
formal_part ::=
(parameter_specification {; parameter_specification{)
parameter_specification ::=
defining_identifier_list : mode subtype_mark
[:= default_expression]
| defining_identifier_list : access_definition
[:= default_expression]
mode ::= [in] | in out | out
NOTES
procedure Traverse_Tree; procedure Increment(X : in out Integer); procedure Right_Indent(Margin : out Line_Size); -- See section 3.5.4 Integer Types procedure Switch(From, To : in out Link); -- See section 3.10.1 Incomplete Type Declarations
function Random return Probability; -- See section 3.5.7 Floating Point Types
function Min_Cell(X : Link) return Cell; -- See section 3.10.1 Incomplete Type Declarations function Next_Frame(K : Positive) return Frame; -- See section 3.10 Access Types function Dot_Product(Left, Right : Vector) return Real; -- See section 3.6 Array Types
function "*"(Left, Right : Matrix) return Matrix; -- See section 3.6 Array Types
procedure Print_Header (Pages : in Natural; Header : in Line := (1 .. Line'Last => ' '); -- See section 3.6 Array Types Center : in Boolean := True);
Go to the first, previous, next, last section, table of contents.