09-208 To: J3 From: Malcolm Cohen Subject: Suggested new feature for F2008 Date: 2009 April 23 1. Introduction This is trivial, but is for WG5 to decide whether it is too late. 2. Description Erik Kruyt made the following suggestion: "R448. This is the only instance of PROCEDURE where no list is allowed. I suggest to change binding-name into binding-name-list, and binding-name [=> procedure-name] in binding-spec-list. Binding-spec is binding-name [=> procedure-name]. The accompanying example in the 2003 standard included such a list, which is now corrected to be consistent with the rule. Is this feasible." This is obviously feasible and obviously simple. The example in F2003 shows we originally intended it this way anyway. Therefore I have Specs, Syntax, and Edits. 3. Specification That the syntax for specifying a type-bound procedure be extended to allow specifying more than one type-bound procedure in a single statement. This is consistent with the way of declaring procedure pointer components (also known as object-bound procedures), the procedure declaration statement and the (MODULE) PROCEDURE statement. 4. Syntax The name for the new syntax term is stylistically similar to the component declaration statement (component-decl and proc-decl), and type declaration statement (entity-decl). PROCEDURE [ [ , ] :: ] and PROCEDURE ( ) [ , ] :: where is [ => ] 5. Edits to N1776 [73:12,14,14+] 4.5.5 R448 Replace " [ => ]" with ""; replace ":: " with ":: "; add new rule "R448a <> [ => ]". {The new syntax.} [73:15,18] 4.5.5 C464, 4.5.5p1 After "appears" insert "in a ", twice. {Improve clarity.} [74:19] 4.5.5p2, first sentence. "declares a ... procedure." -> "declares one or more ... procedures." [472:40-42] C.1.3p4 Replace the three type-bound procedure statements with one "PROCEDURE,PRIVATE :: rat_asgn_i, rat_plus_i, rat_plus_rat". {Reinstate the example of what we originally intended to do.} ===END===