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
next prev 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).