Related articles |
---|
Basic parser grammar question dwashington@gmx.net (Denis Washington) (2007-04-20) |
Basic parser grammar question jucie@ig.com.br (O JuciE) (2007-04-26) |
From: | O JuciE <jucie@ig.com.br> |
Newsgroups: | comp.compilers |
Date: | 26 Apr 2007 09:34:45 -0400 |
Organization: | Compilers Central |
References: | 07-04-072 |
Keywords: | parse, |
Posted-Date: | 26 Apr 2007 09:34:45 EDT |
Denis Washington <dwashington@gmx.net> wrote:
> This piece of grammar works fine if I have simple additive expressions
> like "a + b", but fails to function if having longer arrays of additive
> expressions, e.g. "a + b + c". Why is that? Have I missed something? I
> hope you can help me.
I think your problem is that your productions aren't recursive. Let's
look at the following example, extracted from
http://www.dabeaz.com/ply/example.html :
expression
: expression PLUS expression
| expression MINUS expression
| expression TIMES expression
| expression DIVIDE expression
Note the 'expression' production is recursive. That's why this grammar
can handle repetitions, like the ones you want your parser to grasp: a +
b + c is actually (a + b) + c.
I hope it helps, I am not a user of PLY myself, not even a regular
Python user.
[]s
O JuciĘ
Return to the
comp.compilers page.
Search the
comp.compilers archives again.