- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Sun, 08 Jan 2023 09:29:00 +0000
- To: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
- Cc: public-ixml@w3.org
- Message-ID: <m2v8lhick1.fsf@saxonica.com>
"C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com> writes: > Two points occur to me which may be worth mentioning in connection with > PR #146: > > First: Neither the spec nor the draft paper seem to mention nested sets > of alternatives. As I understand the term 'BNF', the grammar > > S = 'a', ('b' | 'c'+), 'd'. > > is not in BNF. And it is certainly not handled directly by Earley's > description of his parsing algorithm. > > Perhaps it should be mentioned? The document does say that EBNF notations provide a number of syntactic conveniences including to “make … subexpressions optional, repeatable, or both”. I think that covers nested sets of alternatives. But if you think it should be called out more explicitly, I’m happy to do that. > Second: I have found it informative to try to make a compact list of the > various rewrite rules proposed. Perhaps others will also find it > useful. I struggled for a long time, on a couple of different days, to understand the tabular presentation you suggested. It just didn’t work for me. Perhaps I just didn’t understand the notation. I think I was especially confused by the omission of some rows. For example, {ABCDEF} f? => f-option {A} f-option = f | . {B} f-option = f | (). {E} f-option = () | f. {F} f-option = | f. It’s true that C and D don’t provide a *different* definition of this rule than B, but leaving out the row entirely made it feel like those sets don’t *have* that rule, which isn’t the case. I don’t want to suggest the table isn’t valuable, but I think you’re going to have to explain it to me more slowly. Be seeing you, norm -- Norm Tovey-Walsh Saxonica
Received on Sunday, 8 January 2023 09:46:42 UTC