[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gm2] CASE: gm2-4.1.2 of 2011-11-08 bug (or possibly philosophical d
From: |
Fischlin Andreas |
Subject: |
Re: [Gm2] CASE: gm2-4.1.2 of 2011-11-08 bug (or possibly philosophical difference) |
Date: |
Fri, 11 Nov 2011 11:10:58 +0000 |
Sorry, but I do not quite get what you mean by missing value. Do you mean that
one item of Choice, i.e. weight, is not used by the CASE record? If yes, then
it is clear to me what gm2 should do, not enforce that all values are covered
if PIM is specified. E.g.
ItemType = RECORD CASE : INTEGER OF
1: ....
2: ....
END(*CASE*); END(*RECORD*)
should be allowed and the compiler must not require to list all integer
numbers. Similarly when Choice enumerates a finite set of cases the compiler
must not require to list all elements of the enumeration type.
Regards,
Andreas
ETH Zurich
Prof. Dr. Andreas Fischlin
Systems Ecology - Institute of Integrative Biology
CHN E 21.1
Universitaetstrasse 16
8092 Zurich
SWITZERLAND
address@hidden
www.sysecol.ethz.ch
+41 44 633-6090 phone
+41 44 633-1136 fax
+41 79 221-4657 mobile
Make it as simple as possible, but distrust it!
________________________________________________________________________
On 10/11/2011, at 22:43 , john o goyo wrote:
> As we all know, PIM allows missing values in CASE statements but ISO does
> not. At present, gm2 enforces the ISO restriction regardless of which PIM is
> specified. (A simple example may be found below.)
>
> What should gm2 do? (The problem arises, of course, in compiling existing
> code.)
>
> john
>
> ==============================
> MODULE Test;
>
> TYPE
> Choice = (colour, size, weight);
> ItemType = RECORD
> CASE c :Choice OF
> colour: col :CHAR;
> |size: s :CARDINAL;
> (*
> * PIM allows missing values but ISO does not.
> *)
> END (*CASE*);
> END (*ItemType*);
>
> VAR
> item :ItemType;
>
> BEGIN
> item.col := 'R';
> END Test.
> ==============================
>
>
> _______________________________________________
> gm2 mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/gm2