Re: Please make sure the grammar is directly machine consumable.

I just worked on what it would take to change the current TR to be
LALR(1). The results are in
http://www.w3.org/2005/01/yacker/uploads/yosiAugust22 . The changes are:

1) All of the changes necessary to get yacker to work (@terminals,
@pass, '\\')
2) The following change to GraphPattern:
---------------------------------------------------------------
syosi@mr-burns:/tmp$ diff old.grammar new.grammar
22c22,26
< [20]          GraphPattern      ::=           ( Triples '.'? )? (
GraphPatternNotTriples '.'? GraphPattern )?
---
> [20]          GraphPattern       ::=          ( Triples1
GraphPatternTail | GraphPatternNotTriples GraphPatternNotTriplesTail )?
> [20a]         GraphPatternTail           ::=          ( '.'
GraphPattern )?
> | GraphPatternNotTriplesList
> [20b]         GraphPatternNotTriplesTail         ::=          ( '.'?
GraphPattern )
> [20c]         GraphPatternNotTriplesList         ::=         
GraphPatternNotTriples GraphPatternNotTriplesTail
28,29c32,33
< [26]    ConstructTemplate       ::=           '{' Triples? '.'? '}'
< [27]    Triples         ::=           Triples1 ( '.' Triples )?
---
> [26]          ConstructTemplate         ::=           '{' Triples? '}'
> [27]          Triples           ::=           Triples1 ( '.' Triples? )?
----------------------------------------------------------------------

This change is simple, and makes the grammar LALR(1). It should be done,
regardless of any other change.

Yosi

Received on Monday, 22 August 2005 18:56:05 UTC