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

[-- Attachment #1: Type: text/plain, Size: 2841 bytes --]

 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 Mainis   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?
  

[-- Attachment #2: Type: text/html, Size: 5589 bytes --]

  reply	other threads:[~2022-06-27 16:26 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 [this message]
2022-06-28 11:27           ` Lars Ingebrigtsen
2022-06-28 13:24           ` Lars Ingebrigtsen
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=2026151234.5124962.1656347169126@mail.yahoo.com \
    --to=howiect@yahoo.com \
    --cc=larsi@gnus.org \
    /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).