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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,27fc7a8facdb6bb5 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Date: Thu, 23 Jun 2005 09:00:57 -0400 From: James Alan Farrell Organization: nospam User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Question on use of ! instead of | References: <42b96967$1_1@newsfeed.slurp.net> In-Reply-To: Content-Type: multipart/mixed; boundary="------------060506030305040602010502" NNTP-Posting-Host: fw.grammatech.com Message-ID: <42bab2e1$1_3@newsfeed.slurp.net> X-Trace: newsfeed.slurp.net 1119531745 209.4.89.67 (23 Jun 2005 08:02:25 -0500) X-Original-NNTP-Posting-Host: 209.4.89.67 Path: g2news1.google.com!news4.google.com!news.glorb.com!newsfeed-3001.bay.webtv.net!news.moat.net!newsfeed.slurp.net!not-for-mail Xref: g2news1.google.com comp.lang.ada:11590 Date: 2005-06-23T09:00:57-04:00 List-Id: This is a multi-part message in MIME format. --------------060506030305040602010502 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Manuel G. R. wrote: > James Alan Farrell wrote: > >> According to ASIS, "A!B" is an identifier. If I put spaces around the >> ! then A and B are identifiers and things work the way I expect, and >> if I replace the ! with a | again things work the way I expect. >> >> Could this be a bug in the compiler or in ASIS? > > > In ASIS for GNAT, I think. > I was thinking about this last night. Seems the parser needs to determine where the identifier begins and ends (the lexer actually), so that needs to be saying the three characters are the identifier. The bug has to be here (well before ASIS gets involved). But if that were the case, it should fail with an error that A!B is undefined. So it appears that there is a second place place where the delimiter is looked for - when the declaration of A is looked up. Now there's a subtlety with this test case: A and B are parameters to a variant record. But nothing in the record depends on B. So if B is not set, executable code would be produced that still produces the expected output, and the ACATS test could still pass. >> >> I couldn't find ! in the ARM. It's supposed to be a direct >> replacement for |, correct? (ie, they should work the same >> semantically and syntactically?) >> > > Yes, they should. This is one of the obsolescent features in Ada 95: "A > vertical line character (|) can be replaced by an exclamation mark (!) > where used as a delimiter." > > http://www.adaic.com/standards/95lrm/html/RM-J-2.html > > --------------060506030305040602010502 Content-Type: text/x-vcard; charset=utf-8; name="jfarrell.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="jfarrell.vcf" begin:vcard fn:James Alan Farrell n:Farrell;James org:GrammaTech version:2.1 end:vcard --------------060506030305040602010502--