2010-06-15 11 views
6

He usado antlr y javacc/freecc por un tiempo. Ahora necesito escribir un grupo de analizadores usando gramáticas antlr, pero esos analizadores deben escribirse en ruby ​​lang.¿Cuál es la mejor contraparte de ANTLR para crear analizadores en ruby?

busqué en Google, pero no se ha encontrado. ¿Hay algún generador de analizador de rubí que tome gramáticas antlr y cree un analizador sintáctico? Si hay muchos, ¿cuál es el mejor en tu opinión?

TIA Paolo

Respuesta

1

También puede generar el analizador con ANTLR para Java o C y llamarlo desde su programa Ruby con JRuby o FFI.

Esto también debe darle un aumento de rendimiento que podría ser una gran ventaja si usted tiene un montón de información para analizar.

+0

ahe, eso es exactamente lo que elijo hacer. Inicié un nuevo proyecto (http://github.com/thesp0nge/mirage) sobre todo lo relacionado con el análisis del código fuente. Escribiré espejismo en C usando antlr y luego lo llamaré desde Ruby. Para todos los interesados, esto es para una reescritura importante para el proyecto OWASP Orizon, un analizador de código fuente estática que estoy escribiendo (http://github.com/thesp0nge/owasp-orizon/) –

3
+1

Lástima de mí. No revisé primero el lugar adecuado ... la comunidad de gemas. Muchas gracias :-) –

+1

Tenga en cuenta que el objetivo de Ruby enviado con ANTLR 3.4 está bastante roto. Si hay algún problema con la gema, la revisión de cabecera del proyecto en GitHub parece funcionar bien: https://github.com/ohboyohboyohboy/antlr3 –

7
  1. que te pueden salirse fácilmente mediante el uso de JRuby y mantenimiento tus analizadores ANTLR en java.
  2. Si PEGs son suficientes para su trabajo, y el más nuevo treetopcitrus son herramientas comunes utilizadas por Rubyistas.
  3. Otros analizadores que cavé mientras investigaba para un proyecto son: peggy, Kanocc, Racc.

Para mi proyecto escogí la copas de los árboles (los cítricos aún no habían nacido).

+0

muchas gracias por sus sugerencias :-) –

+2

El nuevo chico en la onda es [Parslet] (http://kschiess.github.com/parslet/index.html) – clyfe

Cuestiones relacionadas