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.