[wg11] RE: eep and FDIS part11e2

Jochen Haenisch Jochen.Haenisch at epmtech.jotne.com
Wed May 19 13:06:40 EDT 2004


Phil,

fine, just adjust:
	recursion := NOT (bag_or_referring_instances[j] IN
previous_in_chain);
to be
	recursion := NOT (bag_of_referring_instances[j] IN
previous_in_chain);

That is: _of_ not _or_ !

Jochen

> -----Original Message-----
> From:	Phil Spiby [SMTP:Phil.Spiby at Eurostep.com]
> Sent:	19. mai 2004 18:21
> To:	'Allison Barnard Feeney'; 'Rob Bodington'
> Cc:	'Expressif'; 'AP-INTEROP-L'; wg11 at steptools.com
> Subject:	RE: eep and FDIS part11e2
> 
> 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