Re: Refactor of ixml grammar

Good points.


ABC completely denies the existence of end-of-line characters. It delivers input as an array of lines, where the line terminators have been elided. This is because different operating systems use different line end conventions, and the language hides these differences. So there is no way to get a LF delivered.


Steven

On Thursday 04 November 2021 01:32:13 (+01:00), C. M. Sperberg-McQueen wrote:

> I like most of these changes.
>
> But having
>
> ixml: s, rule+.
> rule: (mark, s)?, name, s, -[“:=“], s, -alts, -“.”, s.
>
> instead of
>
> ixml: s, rule+s.
> rule: (mark, s)?, name, s, -[“:=“], s, -alts, -“.”.
>
> has the unfortunate effect that a grammar like
>
> { Section 1: …}
> a: … .
> b: … .
>
>
> { Section 2: …}
> z: … .
> y: … .
>
> produces XML in which the comment ‘ Section 2: … ‘ turns up not
> between the last rule of section 1 and the first rule of section 2, but
> within the last rule of section 1.
>
> Also, I’m curious what the bug involving lf was.
>
> Michael
>
> > On 3,Nov2021, at 5:02 PM, Steven Pemberton <steven.pemberton@cwi.nl> wrote:
> >
> > In an idle moment, I refactored the grammar. Comments gladly received.
> > Changes: * I hid all nonessential terminals. I know above all Tom was asking for this.
> > * I moved the spaces from the rule for ixml into the rule for rule. Tidier and more consistent.
> > * I renamed S to s.
> > * I simplified 'namestart', since I realised class L covered all the cases.
> >
> > I think that's all.
> >
> > See attachment.
> >
> > Steven<ixml-new.ixml>
>
>
>

Received on Thursday, 4 November 2021 08:31:36 UTC