From: James Alan Farrell <jfarrell@nospam.com>
Subject: Question on use of ! instead of |
Date: Wed, 22 Jun 2005 09:35:10 -0400
Date: 2005-06-22T09:35:10-04:00 [thread overview]
Message-ID: <42b96967$1_1@newsfeed.slurp.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 3257 bytes --]
Hi all,
I'm working on a program to analyze Ada code using ASIS. We use ACATS
to test our software, and this has turned up some behavior I'm having
troubles explaining.
ACATS test a2a031a.adb (below) has a line in it:
VAR := (A!B => E2, C ! D => 0); -- AGGREGATE.
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?
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?)
I am using gnat 3.15p and the appropriate matching version of ASIS.
Thanks,
James Alan Farrell
Grammatech, inc.
-- A2A031A.ADA
-- Grant of Unlimited Rights
--
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
-- unlimited rights in the software and documentation contained herein.
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
-- this public release, the Government intends to confer upon all
-- recipients unlimited rights equal to those held by the Government.
-- These rights include rights to use, duplicate, release or
disclose the
-- released technical data and computer software in whole or in
part, in
-- any manner and for any purpose whatsoever, and to have or permit
others
-- to do so.
--
-- DISCLAIMER
--
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE
AVAILABLE
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
-- PARTICULAR PURPOSE OF SAID MATERIAL.
--*
-- CHECK THAT AN EXCLAMATION MARK CAN REPLACE A VERTICAL BAR WHEN THE
-- VERTICAL BAR IS USED AS A SEPARATOR.
-- CONTEXTS ARE:
-- AS A CHOICE IN A VARIANT PART
-- IN A DISCRIMINANT CONSTRAINT
-- IN A CASE STATEMENT CHOICE
-- IN AN AGGREGATE
-- IN AN EXCEPTION HANDLER.
-- JBG 5/25/85
WITH REPORT; USE REPORT;
PROCEDURE A2A031A IS
TYPE ENUM IS (E1, E2, E3);
TYPE REC (A, B : ENUM) IS
RECORD
C : INTEGER;
CASE A IS
WHEN E1 ! E2 => -- CHOICE OF VARIANT.
D : INTEGER;
WHEN E3 =>
E : FLOAT;
END CASE;
END RECORD;
EX1, EX2, EX3 : EXCEPTION;
VAR : REC (A!B => E2); -- DISCRIMINANT CONSTRAINT.
EVAR : ENUM := E2;
BEGIN
TEST ("A2A031A", "CHECK USE OF ! AS SEPARATOR IN PLACE OF |");
CASE EVAR IS
WHEN E3 => NULL;
WHEN E2!E1 => NULL; -- CASE STATEMENT CHOICE.
END CASE;
VAR := (A!B => E2, C ! D => 0); -- AGGREGATE.
RESULT;
EXCEPTION
WHEN EX1!EX2 ! EX3 => NULL; -- EXCEPTION HANDLER.
END A2A031A;
[-- Attachment #2: jfarrell.vcf --]
[-- Type: text/x-vcard, Size: 88 bytes --]
begin:vcard
fn:James Alan Farrell
n:Farrell;James
org:GrammaTech
version:2.1
end:vcard
next reply other threads:[~2005-06-22 13:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-22 13:35 James Alan Farrell [this message]
2005-06-22 22:35 ` Question on use of ! instead of | Manuel G. R.
2005-06-23 13:00 ` James Alan Farrell
2005-06-23 1:27 ` Steve
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox