views:

196

answers:

3

Hi there, I've used antlr and javacc/freecc for a while. Now I need to write a bunch of parsers using antlr grammars but such parsers need to be written in ruby lang.

I googled but nothing found. Is there any ruby parser generator that takes antlr grammars and create a parser? If there are many, which is the best one in your opinion?

TIA Paolo

+1  A: 

Why not to use ANTLR Ruby: http://www.antlr.org/wiki/display/ANTLR3/Antlr3RubyTarget (http://split-s.blogspot.com/2005/12/antlr-for-ruby.html)

There is also some beta here: http://rubyforge.org/projects/antlr3/

FractalizeR
Shame on me. I didn't check the proper place first... the gem community. Thank you so much :-)
thesp0nge
A: 
  1. You might get away easy by using JRuby and keeping your ANTLR parsers in java.
  2. If PEGs are enough for your job, treetop and the newer citrus are common tools used by rubyists.
  3. Other parsers I dug while researching for a project are: peggy, Kanocc, Racc.

For my project I chosed treetop (citrus was not born yet).

clyfe
Thank you so much for your suggestions :-)
thesp0nge
A: 

You could also generate the parser with ANTLR for Java or C and call it from your Ruby program with JRuby or FFI.

This should also give you a performance boost which might be a big advantage if you have a lot of input to parse.

ahe
ahe, that's exactly what I choose to do. I fired up a new project (http://github.com/thesp0nge/mirage) concerning all stuff about parsing source code. I'll write mirage in C using antlr and then I'll call it from Ruby.For anyone interested, this is for a major rewrite for the Owasp Orizon project, a static source code analyzer I'm writing (http://github.com/thesp0nge/owasp-orizon/)
thesp0nge