[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