[wg11] RE: eep and FDIS part11e2
Phil Spiby
Phil.Spiby at Eurostep.com
Wed May 19 12:20:49 EDT 2004
Allison,
A SEDS hasn't been raised about this yet (as far as I am aware).
I suggest we simply define type labels which link the variables to the
parameters as follows:
FUNCTION dependently_instantiated(
set_of_input_instances : SET OF GENERIC:igen;
set_of_input_types : SET OF STRING;
previous_in_chain : LIST OF GENERIC:cgen): BOOLEAN;
(*"dependently_instantiated" To test whether all instances in the
input set_of_input_instances are referenced by independently
instantiable instances. If so, this function returns true.
Set_of_input_types includes the type strings for all input instances.
The instances in previous_in_chain are used to detect cyclic
references during recursive calls to this function. The parameter
lists already tested instances in a chain of references.
*)
LOCAL
number_of_input_instances : INTEGER;
number_of_referring_instances : INTEGER;
bag_of_referring_instances : BAG OF GENERIC:igen := [];
dependently_instantiated_flag : BOOLEAN;
previous_in_chain_plus : LIST OF GENERIC:cgen := [];
recursion : BOOLEAN;
result : BOOLEAN := true;
set_of_types : SET OF STRING := [];
END_LOCAL;
The only place this is used is in the templated rules where the parameters
passed are declared explicity in the rule as SET OF GENERIC and LIST OF
GENERIC.
After looking at the rule in a little more detail we could simplify it
slightly by replacing
IF EXISTS(previous_in_chain) THEN
recursion := true;
REPEAT k:=1 TO SIZEOF(previous_in_chain);
IF previous_in_chain[k] :=: bag_of_referring_instances[j] THEN
(* No recursion. *)
recursion := false;
ESCAPE;
END_IF;
END_REPEAT;
END_IF;
With
recursion := NOT (bag_or_referring_instances[j] IN previous_in_chain);
Phil
PS I am currently preparing the IS document, if we can agree the required
changes I can make them before the document is published.
-----Original Message-----
From: Allison Barnard Feeney [mailto:abf at cme.nist.gov]
Sent: 18 May 2004 14:25
To: Rob Bodington
Cc: Expressif; AP-INTEROP-L
Subject: eep and FDIS part11e2
Hi Rob,
eep reports errors on the function generated by the EDM compiler
according to the template provided in G.4.3 of part11e2. Clearly, the
generic types require labels when used in local variables in a function
(9.5.3.2 Rule b). However, the template in annex G does not provide
labels. My question is: Have you (EuroSTEP) submitted a SEDS against
part11e2 and if so, what is the recommended fix? If not, I can submit
the seds, but I don't know what the fix should be.
Allison
More information about the wg11
mailing list