On Thu, 2005-04-07 at 14:51, Åsmund Grammeltvedt wrote: > Hi. > > I am trying to implement a small compiler in python and, trying to use > something a bit more pythonic than lex/yacc, ended up with ply > (http://systems.cs.uchicago.edu/ply/). The only problem is that whereas > yacc accepts the grammar and appears to parse it correctly, ply does not. > > Perhaps this belongs on some compiler list, but I couldn't decide if it > was a compiler or a python problem, so bear with me.
Maybe this is a PLY bug? LALR(1) support appears to be a relatively recent addition to PLY. Have you tried contacting PLY's author? For what it's worth, it appears that you can make your example grammar work in LALR-mode PLY by eliminating the empty production and making the Block rule right recursive like this: def p_Goal(p): """ Goal : Block """ def p_Block(p): """ Block : SEMI | T Block | S Block """ Of course, I don't know whether this rewrite is applicable to your larger grammar. Hope this helps, -- Carsten Haese - Software Engineer | Phone: (419) 861-3331 Unique Systems, Inc. | FAX: (419) 861-3340 1446 Reynolds Rd, Suite 313 | Maumee, OH 43537 | mailto:[EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list