[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#56236: Package: emacs, ada-mode
From: |
Lars Ingebrigtsen |
Subject: |
bug#56236: Package: emacs, ada-mode |
Date: |
Tue, 28 Jun 2022 15:24:03 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
(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
- bug#56236: Package: emacs, ada-mode, Cameron Howie, 2022/06/26
- bug#56236: Package: emacs, ada-mode, Lars Ingebrigtsen, 2022/06/26
- Message not available
- bug#56236: Package: emacs, ada-mode, Lars Ingebrigtsen, 2022/06/26
- bug#56236: Package: emacs, ada-mode, Cameron Howie, 2022/06/28
- bug#56236: Package: emacs, ada-mode, Lars Ingebrigtsen, 2022/06/28
- bug#56236: Package: emacs, ada-mode,
Lars Ingebrigtsen <=
- bug#56236: Package: emacs, ada-mode, Lars Ingebrigtsen, 2022/06/28
- bug#56236: Package: emacs, ada-mode, Stephen Leake, 2022/06/28