|Parser Generator Recommendation firstname.lastname@example.org (Alon Flaisher) (2000-04-01)|
|Re: Parser Generator Recommendation email@example.com (2000-04-03)|
|Re: Parser Generator Recommendation firstname.lastname@example.org (2000-04-03)|
|Re: Parser Generator Recommendation email@example.com (Joachim Durchholz) (2000-04-14)|
|From:||firstname.lastname@example.org (Ian Kaplan)|
|Date:||3 Apr 2000 11:22:31 -0400|
|Organization:||Deja.com - Before you buy.|
"Alon Flaisher" <email@example.com> wrote:
> I'm developing a new parser and am looking for the right
> parser-generator. The parser-generator's output should be in C++. I
> have no experience with parser-generators.
> Which parser-generator is recommended? Why?
> (ANTLR 2.7.0, PCCTS 1.3.3, btyacc, Visual Parse++, ...)
I have used YACC for many years. When I started a project to develop a
Java front end I just dreading the effort I would have to go to in
order to get YACC to report decent error messages. So I looked at a
number of parser generators. I decided on ANTLR, which will generate
both Java and C++ parsers. I have written a web page that discusses
both the public domain and the commercial alternatives I found. I you
have not already seen it take a look at
I also discuss why I like parser generators, vs. recursive
decent parsers built by hand.
Grammar design is an art. A grammar for a language like C++ or Java
represents a great deal of work. All parser generators have a fairly
steep learning curve. I have also published a number of ANTLR examples
that I developed while learning ANTLR. See
http://www.bearcave.com/software/antlr/antlr_examples.html I have been
working with ANTLR for almost a year now and I'm very happy with
it. If you are developing a parser for a sizable language it is worth
the effort to learn. On the other hand, if it's just a small language
and you are happy with "syntax error" style error messages, YACC has
the advantage of having a lot of literature published on it (not that
here I'm using YACC and Bison interchangably).
Return to the
Search the comp.compilers archives again.