Re: ambiguity of grammar and LR(k)

"Hans Kamp" <hanskamp@introweb.nl>
28 Oct 1999 01:59:00 -0400

          From comp.compilers

Related articles
ambiguity of grammar and LR(k) linlist@fudan.edu (Linlist Leo) (1999-10-27)
Re: ambiguity of grammar and LR(k) hanskamp@introweb.nl (Hans Kamp) (1999-10-28)
Re: ambiguity of grammar and LR(k) hanskamp@introweb.nl (Hans Kamp) (1999-10-29)
Re: ambiguity of grammar and LR(k) Xavier.Nicollin@imag.fr (Xavier Nicollin) (1999-10-29)
Re: ambiguity of grammar and LR(k) henning@makholm.net (Henning Makholm) (1999-10-29)
Re: ambiguity of grammar and LR(k) mtimmerm@microstar.nospam-remove.com (Matt Timmermans) (1999-10-29)
Re: ambiguity of grammar and LR(k) nhartzell@macalester.edu (Nathan Hartzell) (1999-10-29)
Re: ambiguity of grammar and LR(k) Xavier.Nicollin@imag.fr (Xavier Nicollin) (1999-10-31)
[6 later articles]
| List of all articles for this month |
From: "Hans Kamp" <hanskamp@introweb.nl>
Newsgroups: comp.theory,comp.compilers
Date: 28 Oct 1999 01:59:00 -0400
Organization: IntroWeb Newsserver
Distribution: inet
References: 99-10-130
Keywords: parse, LR(1)

Linlist Leo <linlist@fudan.edu> schreef
> It is well-known the following grammar is ambiguous so that it is
> not LR(k) for any k.
> S -> iEtSeS | iEtS | a
> ('a' is not important, maybe just some assigning statement)
>
> But it can be written in an umambiguous way. I devised the following
> grammar(maybe incorrect).
> S -> M | U
> M -> iEtMeM | a
> U -> iEtS
>
> I guess it LR(1). Any correction will be welcomed.


I have a book "The UNIX programming environment" written by Brian
Kernighan and Rob Pike (but it is written in Dutch). It proposes the
following:


stmt : if cond stmt end
                | if cond stmt end ELSE stmt end ;


if : IF ;


cond : '(' expr ')' ;


end : ;


I have to test it yet.
--
Hans Kamp
[K and P's book is also available in English. -John]







Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.