Related articles |
---|
yacc: how to fix ambiguity r29173@email.sps.mot.com (Lemaitre, Laurent) (1998-10-30) |
Re: yacc: how to fix ambiguity rkrayhawk@aol.com (1998-11-01) |
From: | "Lemaitre, Laurent" <r29173@email.sps.mot.com> |
Newsgroups: | comp.compilers |
Date: | 30 Oct 1998 13:57:39 -0500 |
Organization: | Motorola |
Keywords: | yacc, question |
Hi,
I am writing a parser for a specific grammar and
found the following problem for which I have no answer:
In my grammar expr and func are defined as:
expr := expr + expr
| ( expr )
| IDENTIFIER
func := IDENTIFIER IDENTIFIER ( IDENTIFIER )
define -> DEFINE func expr
| DEFINE IDENTIFER expr
The grammar is ambiguous. For instance:
ID ( ID ) + ID yields (a) FUNC expr
(b) ID expr + expr
/*
for instance if I parse "define sign (x) +y" I
would like to mean sign(x) = +y and not sign = (x)+y
*/
I would like to tell yacc to reduce rule (a).
Is-it possible to code it into yacc input?
Any help/advice welcome,
Laurent
--
Laurent Lemaitre
ASTL/Advanced Circuit Research Lab - Europe Tel: +41 22 799 1371
Motorola Semiconductor Products Sector Fax: +41 22 799 1304
Geneva, Switzerland r29173@email.sps.mot.com
Return to the
comp.compilers page.
Search the
comp.compilers archives again.