[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lojban] (Technical) Problem area in v3 grammar
(Apologies if this looks a bit cryptic - I sent a private mail to John
yesterday about this topic - the citation is taken from that and lacks
the previous context.)
On Fri, Jun 02, 2000 at 06:31:07PM -0400, John Cowan wrote:
> Richard Curnow wrote:
>
> > term<83> = sumti | (tag | FA #) (sumti | /KU#/ | termset) | termset | NA KU #
> >
> > Yes? No?
>
> Yes.
Having had another day to think about this, I think John's suggested
modification to grammar.300 provides more generality than is actually
required to fix the problem.
I believe the minimal change needed is to redefine term<83> to look like
this :
term<83> = sumti | tag /NUhI/ sumti | tag /KU#/ | FA # (sumti | /KU#/) | termset | NA KU #
i.e. make it optional to insert nu'i between a tag and the following
sumti. This provides the delineation required between the pu and the zi
in my original problem example. Probably lots of other cmavo would be
useable instead of nu'i without problems - I've just picked nu'i to
mirror John's suggestion most closely.
Whether this is easy to do in grammar.300, I don't know. It does have
the advantage of fixing only the buggy case. It could be trivially
implemented in jbofi'e (as could John's proposal).
>
> > I'm interested in this because the parser in my jbofi'e program was
> > written from the bnf.300 file - I've avoided looking at grammar.300 and
> > your lexer + missing terminator insertion code altogether, to try and
> > keep my program completely indepedent.
>
> Okay. In case of conflict, though, grammar.300 is authoritative.
But as I mentioned in my previous mail to John, it's useful to develop a
parser from bnf.300 alone, if only to give an further check of whether
bnf.300 and grammar.300 describe the same grammar.
co'o mi'e ritcyd.
--
----------------------------------------------------------------------
Richard P. Curnow rpc@myself.com
Weston-super-Mare
United Kingdom http://www.rrbcurnow.freeuk.com/