From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Ada grammar rules for names too permissive? Date: Fri, 4 Jan 2019 09:53:43 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <30ba8954-a19e-4c95-b350-798b0276db41@googlegroups.com> <38103aef-2528-41ae-bb29-eec551a64808@googlegroups.com> <10d98401-d974-459f-93ed-e0b315b414e8@googlegroups.com> NNTP-Posting-Host: i065DRYuysvTI4qVnaNkyg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.8.3 Xref: reader01.eternal-september.org comp.lang.ada:55188 Date: 2019-01-04T09:53:43+01:00 List-Id: On 2019-01-03 22:45, Stephen Leake wrote: > On Wednesday, January 2, 2019 at 12:47:22 PM UTC-8, Dmitry A. Kazakov wrote: >> On 2019-01-02 20:21, Stephen Leake wrote: >>> On Tuesday, January 1, 2019 at 12:42:36 PM UTC-8, Dmitry A. Kazakov wrote: >>>> On 2019-01-01 20:49, Stephen Leake wrote: >>>>> On Tuesday, January 1, 2019 at 12:44:17 AM UTC-8, Dmitry A. Kazakov wrote: >>>>>> The grammar as written is never the one actually used for whatever >>>>>> purpose other than explanation or, maybe, validation. An extreme case >>>>>> illustrating why, is source code coloring, >>>>> >>>>> On the contrary, Emacs Ada mode source code coloring uses a generated parser for the Ada language, with only minimal changes from Annex P. >>>> >>>> In which case it should not work with syntactically incorrect programs. >>> >>> No, it has error correction to deal with that. >> >> Ada grammar contains no correction productions. > > True for LRM Annex P, and also for Emacs ada.wy, but irrelevant. For LR parsers, there are error correction algorithms that do not require modifying the grammar. Emacs ada-mode uses the McKenzie algorithm (1); exploration of the parse table near the error location, combined with the redundancy of the Ada language (especially named blocks). Regardless how good or bad that works, it is not the grammar that is actually in use. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de