From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,5188f16fad7607fb,start X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.224.223.84 with SMTP id ij20mr12623460qab.5.1349703267747; Mon, 08 Oct 2012 06:34:27 -0700 (PDT) Received: by 10.52.34.205 with SMTP id b13mr2420896vdj.3.1349703267719; Mon, 08 Oct 2012 06:34:27 -0700 (PDT) Path: r17ni19qap.0!nntp.google.com!l8no31200769qao.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Mon, 8 Oct 2012 06:34:27 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.154.208.18; posting-account=K1cP1QoAAAD_GR6kW2Td0NqGqGBLRE8h NNTP-Posting-Host: 213.154.208.18 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: choice_expression From: Maxim Reznik Injection-Date: Mon, 08 Oct 2012 13:34:27 +0000 Content-Type: text/plain; charset=ISO-8859-1 Date: 2012-10-08T06:34:27-07:00 List-Id: Hi, all I wounder why Ada 2012 membership test syntax is so complicated? membership_choice ::= choice_expression | ... What for choice_expression is? I doubt someone is able to interprete this Ada 2012 expression: "False in False and False" BTW GNAT understands it as "(False in False) and False" Then, when you start adding '<', '|' expression became even more complicated: For example "False in False and False | True" interpreted as "False in (False and False) | True" I mean allowing relational and ligical operators in choice_expression makes syntax unclear, ambiguous and error-prone. Why not just membership_choice ::= simple_expression | ... and force user to write brackets around expression?