unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Lars Ingebrigtsen <larsi@gnus.org>
To: Cameron Howie <howiect@yahoo.com>
Cc: 56236@debbugs.gnu.org
Subject: bug#56236: Package: emacs, ada-mode
Date: Tue, 28 Jun 2022 15:24:03 +0200	[thread overview]
Message-ID: <87letgq5u4.fsf@gnus.org> (raw)
In-Reply-To: <2026151234.5124962.1656347169126@mail.yahoo.com> (Cameron Howie's message of "Mon, 27 Jun 2022 16:26:09 +0000 (UTC)")

(Forwarding to make it land in the bug tracker; resending didn't work,
apparently.)

Cameron Howie <howiect@yahoo.com> writes:

> Hi Lars, 
>
> Following up on the emails of yesterday, I have pasted below into this message a
> concrete example Ada code that raises issues with the Ada Mode plug-in regarding
> using of a "declaration expression" inside a Postcondition. As commented in the code
> itself, if you remove the comment markers from the Postcondition the Ada Mode
> parser indicates all sorts of errors when in fact the Postcondition is legal Ada 2022.
>
> I didn't want to send to the "56236@debbugs.gnu.org address as you may have some
> better way of handling this internally...
>
> -------- EXAMPLE FILE main.adb STARTS HERE
>
> --  Build with e.g., "gnatmake main.adb -gnat2020"
> --  EMACS ADA MODE ISSUE: remove the 'commented out' Postcondition for 
> --                        Absolute_Difference and the Ada Mode parser signals 
> --                        all sorts of errors.
>
> with Ada.Text_IO; use Ada.Text_IO;
>
> procedure Main
> is
>    procedure Absolute_Difference
>      (x, y : Integer;
>       diff : out Integer)
>       --  with Post => (declare
>       --     min : constant Integer := Integer'Min(x, y);
>       --     max : constant Integer := Integer'Max(x, y);
>       --     begin diff = max - min)
>    is
>    begin
>       diff := abs x - y;
>    end Absolute_Difference;
>
>    u : constant Integer := 95;
>    v : constant Integer := 5;
>    d : Integer;
> begin
>    Absolute_Difference (u, v, diff => d);
>    Put_Line ("Absolute difference =" & d'Img);  --  prints "90"
> end Main;
>
> -------- END OF EXAMPLE FILE main.adb
>
> On Sunday, June 26, 2022, 06:09:57 PM GMT+2, Lars Ingebrigtsen <larsi@gnus.org>
> wrote: 
>
> (Resending with the debbugs address in the CC header so that it lands in
> the bug tracker.)
>
> Cameron Howie <howiect@yahoo.com> writes:
>
>> No immediately, Lars, no. However, I can send one through tomorrow. Off the top
> of
>> my head, the issue arises when I use a declare expression in a Post condition, so
>> something like this:
>>
>> procedure Foo 
>>    (x, y : Integer; 
>>      arr : in out Integer_Array)
>> with Post => (declare sum : constant Integer := Sum_Elements (arr); begin sum >=
> x
>> + y);
>>
>> I've not yet used the declare expression syntax in a subprogram body, just (so far)
> in
>> contract specifications. 
>>
>> On Sunday, June 26, 2022, 05:54:21 PM GMT+2, Lars Ingebrigtsen
> <larsi@gnus.org>
>> wrote: 
>>
>> Cameron Howie via "Bug reports for GNU Emacs, the Swiss army knife of
>>
>> text editors" <bug-gnu-emacs@gnu.org> writes:
>>
>>> I'm using Ada Mode version 7.2.0. The internal parser is currently
>>> failing to handle Ada 2022 "declare expression" syntax. This leads to
>>> other problems like various parsing-sensitive commands failing. My
>>> only (current) solution is to use older Ada syntax.
>>
>> Do you have a code snippet that demonstrates these problems?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





  parent reply	other threads:[~2022-06-28 13:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <302935684.2763160.1656258301795.ref@mail.yahoo.com>
2022-06-26 15:45 ` bug#56236: Package: emacs, ada-mode Cameron Howie via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-06-26 15:54   ` Lars Ingebrigtsen
     [not found]     ` <1632297600.4892837.1656259625032@mail.yahoo.com>
2022-06-26 16:09       ` Lars Ingebrigtsen
2022-06-27 16:26         ` Cameron Howie
2022-06-28 11:27           ` Lars Ingebrigtsen
2022-06-28 13:24           ` Lars Ingebrigtsen [this message]
2022-06-28 13:50             ` Lars Ingebrigtsen
2022-06-28 23:55             ` Stephen Leake
2022-10-10 21:07   ` bug#56236: handle "declare expression" Stephen Leake
2023-01-25 14:03   ` bug#56236: Package: emacs, ada-mode Stephen Leake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87letgq5u4.fsf@gnus.org \
    --to=larsi@gnus.org \
    --cc=56236@debbugs.gnu.org \
    --cc=howiect@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).