Re: Dangling else

Dave Thompson <>
5 Mar 2006 02:18:54 -0500

          From comp.compilers

Related articles
[3 earlier articles]
Re: Dangling else (Russ Cox) (2006-02-24)
Re: Dangling else (Russ Cox) (2006-02-24)
Re: Dangling else (SM Ryan) (2006-03-05)
Re: Dangling else (SM Ryan) (2006-03-05)
Re: Dangling else (=?ISO-8859-1?Q?Jan_Vorbr=FCggen?=) (2006-03-05)
Re: Dangling else (2006-03-05)
Re: Dangling else (Dave Thompson) (2006-03-05)
Re: Dangling else (Dmitry A. Kazakov) (2006-03-06)
Re: Dangling else (Russ Cox) (2006-03-06)
Re: Dangling else (Marco van de Voort) (2006-03-11)
Re: Dangling else (Brian Inglis) (2006-03-11)
Re: Dangling else (2006-03-14)
Re: Dangling else (Karsten Nyblad) (2006-03-15)
[3 later articles]
| List of all articles for this month |

From: Dave Thompson <>
Newsgroups: comp.compilers
Date: 5 Mar 2006 02:18:54 -0500
Organization: AT&T Worldnet
References: 06-02-154 06-02-168
Keywords: parse
Posted-Date: 05 Mar 2006 02:18:54 EST

On 24 Feb 2006 13:20:47 -0500, "Russ Cox" <> wrote:

> It doesn't make any sense at all to me to say, as the ANSI C grammar does:
<snip example>
> Should I really have to know, when writing the relational_expression
> rules, that shift_expression is the next level down in the precedence

(I agree) that's a nuisance -- the names aren't very meaningful; they
are in effect (as you said and I snipped) mechanically generated.

> hierarchy? What if some new operator comes along later that I want
> to put between them? Then I have to go find all the rules that implicitly
> "know" that shift comes after relational.
But that's not the problem -- they have to always be adjacent levels,
hence in one place if you organize the grammar by NT, or you don't
have (fully-ordered) precedence. In fact C has two places that aren't
expressible as precedence:
    - (int) x is - ( (int) x ) but (int) -x is (int) (- x)
    x = a ? b , c : d is x = (a? (b, c): d) but
    a ? b : d , e is (a?b:d) , e.
C++ shares the former but partially fixes the latter by going down to
assignment-expression (but still not expression).

and on 24 Feb 2006 18:03:20 -0500, "Russ Cox" <> wrote:

> > [<snip> How do you like
> > the APL rule that everything binds and associates the same? -John]
> I haven't used APL much, but troff expressions have the same
> rule--everything left to right, equal precedence <snip>

Same idea but not same rule. APL is right to left.

- David.Thompson1 at

Post a followup to this message

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