Re: Precedence based parsing

Andi Kleen <freitag@alancoxonachip.com>
8 Dec 2003 00:26:13 -0500

          From comp.compilers

Related articles
Precedence based parsing Jeffrey.Kenton@comcast.net (Jeff Kenton) (2003-12-03)
Re: Precedence based parsing torbenm@diku.dk (2003-12-08)
Re: Precedence based parsing jmcenerney@austin.rr.com (John McEnerney) (2003-12-08)
Re: Precedence based parsing haberg@matematik.su.se (2003-12-08)
Re: Precedence based parsing freitag@alancoxonachip.com (Andi Kleen) (2003-12-08)
Re: Precedence based parsing toby@telegraphics.com.au (2003-12-13)
Re: Precedence based parsing robert.thorpe@antenova.com (Rob Thorpe) (2003-12-13)
Re: Precedence based parsing clint@0lsen.net (Clint Olsen) (2003-12-20)
Re: Precedence based parsing sjmeyer@www.tdl.com (Steve Meyer) (2003-12-23)
Re: Precedence based parsing joachim.durchholz@web.de (Joachim Durchholz) (2003-12-27)
Re: Precedence based parsing haberg@matematik.su.se (2003-12-27)
[1 later articles]
| List of all articles for this month |
From: Andi Kleen <freitag@alancoxonachip.com>
Newsgroups: comp.compilers
Date: 8 Dec 2003 00:26:13 -0500
Organization: unorganized
References: 03-12-035
Keywords: parse
Posted-Date: 08 Dec 2003 00:26:13 EST

Jeff Kenton <Jeffrey.Kenton@comcast.net> writes:


> I have been writing parsers and compilers for over 30 years, and one
> technique I have used for parsing expressions seems to have
> disappeared from recent books. It involves comparing the precedence
> of the newest operator with that of the previous operator, in order
> to decide whether to shift or reduce. ...


For hand written parsers top down is much easier to write than
bottom-up (of which operator precedence is a variant). Bottom up is
normally used by parser generators and for those operator precedence
is just not powerful enough.


In the popular bison parser generator you can specify the precedence
of operations with %prec (and that seems to actually get used). The
underlying algorithm is still LALR(1) (or Tomita in newer versions),
it is just used as a short hand for shorter grammars.


-Andi


Post a followup to this message

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