The draft PSS specification, in section 1.3.2, uses the production
<factory_dcl>. This production is not defined in the grammar
summary. Instead, it is later given as
<factory_dcl> ::= "factory" <identifier> <factory_parameters>
<factory_parameters> ::=
"(" <simple_declarator> [
{ "," <simple_declarator> }
*] ")"
This definition contradicts with the production <factory_dcl> from the
CORBA components draft (ptc/99-10-04), where it is defined as
*lt;factory_dcl> ::=
"factory" <identifier> "(" [ <init_param_decls> ] ")" [
<raises_expr> ]
Here, the init_param_decls where introduced together with OBV
(formal/98-12-01), where each parameter has an "in" direction and a
type, and a name.
There is also potential confusion with the init_dcl, which represents
factories for value types.
At a minimum, one of the production names should be changed, and it
should be made clear which syntax is used for the "factory" keyword in
what context. It would be even better if the syntax for factories is
always the same.