Related articles |
---|
What's wrong with my grammar definition in sablecc, who can help me? pointerkarajan@gmail.com (zheng yang) (2010-05-09) |
Re: What's wrong with my grammar definition in sablecc, who can help m gneuner2@comcast.net (George Neuner) (2010-05-11) |
Re: What's wrong with my grammar definition in sablecc, who can help m pointerkarajan@gmail.com (zheng yang) (2010-05-14) |
Re: What's wrong with my grammar definition in sablecc, who can help m gneuner2@comcast.net (George Neuner) (2010-05-15) |
From: | zheng yang <pointerkarajan@gmail.com> |
Newsgroups: | comp.compilers |
Date: | Fri, 14 May 2010 13:48:15 -0700 (PDT) |
Organization: | Compilers Central |
References: | 10-05-050 10-05-058 |
Keywords: | question |
Posted-Date: | 15 May 2010 02:10:55 EDT |
On May 11, 11:51 am, George Neuner <gneun...@comcast.net> wrote:
> On Sun, 9 May 2010 19:38:03 -0700 (PDT), zheng yang
>
> <pointerkara...@gmail.com> wrote:
> >When I generate the parer use sablecc with the custom grammar, so many
> >reduce/shift conflicts comes up, I have modified it, but the error
> >still there, how can fix it, please help me. below is the grammar
> >file.
>
> <snip>
>
> Shift/Reduce conflicts are not necessarily errors - constructs such as
> nested IF produce them. Shift/Reduce conflicts are merely an
> indication of ambiguity in the grammar.
>
> In the following:
>
> if ( ... )
> if ( ... )
> statement1;
> else
> statement2;
>
> indentation (which the parser ignores) makes it clear that the else is
> attached to the outer IF (a reduction of the inner IF), but the ELSE
> could equally well be attached to the inner IF (a shift).
>
> The default behavior for (LA)?LR generators when faced with a
> Shift/Reduce conflict is to shift so that more context can be
> examined.
>
> In any event, we need to see the errors/warnings to help you.
the errors/warnings are:
shift/reduce conflict in state [stack: PClassDecl *] on TKClass in {
[ PClassDecls = PClassDecl *] * followed by TKClass <reduce>,
[ PClassHdr = * TKClass TIdentifier] <shift>
Return to the
comp.compilers page.
Search the
comp.compilers archives again.