Re: Factoring a Grammar for Predictive Parsers ?

Vimal <j.vimal@gmail.com>
Fri, 17 Aug 2007 23:50:10 +0530

          From comp.compilers

Related articles
Factoring a Grammar for Predictive Parsers ? j.vimal@gmail.com (Vimal) (2007-08-16)
Re: Factoring a Grammar for Predictive Parsers ? j.vimal@gmail.com (Vimal) (2007-08-17)
| List of all articles for this month |

From: Vimal <j.vimal@gmail.com>
Newsgroups: comp.compilers
Date: Fri, 17 Aug 2007 23:50:10 +0530
Organization: Compilers Central
References: 07-08-047 <e846237b0708171004y356a6640pf56a2c334ac786e5@mail.gmail.com>
Keywords: parse

> A few points which will help you:
> 1. I don't feel the grammar you quoted does its intended purpose. Try
> generating a few strings following the various
> possibilities of derivation. Are these the intended strings? I feel
> you need to correct the grammar a little bit.
NOTE:
I forgot to add this rule in the grammar!
E -> { | } | , | S


Yes, the grammar is intended to confuse us. The very fact that { or } or , can
be elements of a set is the problem for us. But, if you had also noticed
(I didn't when I first saw the grammar) was that the grammar is ambiguous!
The string {{},{}} has two distince parse trees.


> 2. With a proper grammar, if you fail to produce a predictive parser
> Look for possibilities of left factoring
> Look for possibilities of avoiding left recursion.
> The dragon book contain details on this.


I will check them out.
This grammar can be left factored, but I get epsilon productions which I am
trying to avoid.


>
> By the way, I have not used the tool you mentioned above. I hope this
> information help you
>


The Parsec tool, performs best on predictive LL(1) grammars and also parses
context sensitive grammar! More information here:
http://legacy.cs.uu.nl/daan/download/parsec/parsec.html


Vimal


Post a followup to this message

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