<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.E-MailFormatvorlage18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=DE-CH link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>Instead of this<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    CASE x OF<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    0:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    | 2:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    | 10:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    ELSE<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    END;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>you could write more explicitly:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    CASE x OF<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    0:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    | 2:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    | 10:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    | 1, 3..9:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>    END;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>br<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'>Jörg<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:12.0pt;color:black'>Von: </span></b><span style='font-size:12.0pt;color:black'>Oberon <oberon-bounces@lists.inf.ethz.ch> im Auftrag von Andreas Pirklbauer <andreas_pirklbauer@yahoo.com><br><b>Antworten an: </b>ETH Oberon and related systems <oberon@lists.inf.ethz.ch><br><b>Datum: </b>Freitag, 16. Februar 2018 um 11:14<br><b>An: </b>ETH Oberon and related systems <oberon@lists.inf.ethz.ch><br><b>Betreff: </b>[Oberon] CASE without ELSE<o:p></o:p></span></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><a name="_MailOriginalBody"><span style='font-family:"Courier New"'><br><br></span></a><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>> My interpretation of what might have happened is this: > In Oberon07 the numeric CASE had been dropped, but later</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>> it has been reintroduced but the ELSE has been forgotten.</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'><br><br></span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>That’s one possibility. Another possibility would be that</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>it was dropped but the grammar was not fully restricted</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>to the non-numerical case, i.e. only the ELSE was removed</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>but not the fact that that case expression can an integer.</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'><br><br></span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>Either way, we now have a language spec that contains the</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>numerical case, but an implementation that doesn’t.</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>> To me, a numeric CASE without an ELSE is pointless.</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'><br><br></span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>Agreed. It was the absence of the ELSE clause and the fact</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>that the numeric case hadn’t been implemented in PO2013</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>for ~5 years now that caused me to believe that the</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>intended main use of the CASE statement is with records</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>and pointer types (i.e. to check extension levels),</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>where the ELSE clause is indeed not needed, since it</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>is implicit if the base type appears as the last case.</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'><br><br></span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>> My conclusion so far is: If the numeric CASE is not</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>> implemented but only specified, it should not be</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>> taken literally.</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'><br><br></span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'><span style='font-family:"Courier New"'>Extensions levels are (internally) also numbers of course ;-)</span></span><span style='mso-bookmark:_MailOriginalBody'><o:p></o:p></span></p></div><p class=MsoNormal><span style='mso-bookmark:_MailOriginalBody'>-- Oberon@lists.inf.ethz.ch mailing list for ETH Oberon and related systems https://lists.inf.ethz.ch/mailman/listinfo/oberon </span><o:p></o:p></p></div></body></html>