views:

271

answers:

3

I'm developing a small programming language based mostly of the C99 standard and I've already written a fairly decent lexer in java and now I'm looking to generate a Java Parser from the grammar. I know there's Bison, but that seems to only generate C code. I'm looking for a application that will allow me to input my grammar and create a full parser class in java code. Reading other SO posts on related topics, I've found ANTLR, but I'm wondering if anyone in the SO knows about a better tool?

thanks!

+3  A: 

Another couple to look at are JavaCC and SableCC (it has been a long time since I looked at SableCC).

TofuBeer
+1 for JavaCC. It's been years since I used it but found it orders of magnitude easier than lex + yacc
MrWiggles
I checked out JavaCC, but I'm not sure how it compares to ANTLR? What are the differences between the two? Is one simpler than the other and how?
Yoely
It has been too long since I used JavaCC and I haven't used ANTLR enough to make a really fair comparison. This might help: http://stackoverflow.com/questions/382211/whats-better-antlr-or-javacc
TofuBeer
+2  A: 

I've been quite impressed by BNFC, which is able to generate parsers in Java as well as in C, C++, C#, F#, Haskell, and OCaml.

Ray Myers
A: 

The JFlex home page at http://jflex.de indicates where to find Bison-like tools that can target Java:

http://byaccj.sourceforge.net/ http://www2.cs.tum.edu/projects/cup/ http://www.antlr.org/

QuickRecipesOnSymbianOS