2011-05-13 16 views
8

Estoy buscando la implementación del analizador de código fuente Java escrito en lenguaje JavaScript. ¿Conoce alguna?Analizador de Java escrito en JavaScript

+2

¿Para qué? ¿Interpretando el código y ejecutándolo? ¿Colorizarlo en HTML? Mapeo en un objeto JSON? – Jeff

+2

¿Qué estás tratando de hacer exactamente? –

+0

@Jeff En el resultado me gustaría tener algún tipo de Árbol de sintaxis abstracta. –

Respuesta

9

Tenga una mirada en ANTLR que puede tener Javascript como un objetivo, con el Java 1.5 gramática en http://www.antlr.org/grammar/1152141644268/Java.g

Editar: link dejó de funcionar - Pruebe https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 :)

+0

Hm ... ¡Buena idea! Gracias, Chris.Pero no estoy seguro de que el rendimiento de dicho analizador sea suficiente para analizar grandes cantidades de códigos fuente. –

+1

bien. Esta no es la solución que esperaba, pero actualmente solo es la solución la que resuelve este problema. –

+0

@Eliah: "... no estoy seguro ... grandes cantidades de códigos fuente" ANTLR produce analizadores bastante eficientes en general. (Mi apuesta personal sería por ella, y no en contra). Sospecho que la única manera de descubrirlo es producir un analizador así y probarlo. Y si le preocupa, ¿por qué no hacer esto usando Java o C++? –

-3

Probar el Rhino engine?

+3

El OP está buscando al revés. –

+4

Rhino resuelve el problema opuesto: analiza JavaScript en el entorno Java. –

3

no sé de un analizador de Java per se, pero aquí hay algunos generadores de analizadores sintácticos para Javascript:

Si uno de ellos está listo para el horario de máxima audiencia, debería poder traducir la gramática de Java al formulario requerido y luego usar los PGS para generar un analizador de Java en Javascript.

Por supuesto, eso solo le dará un analizador. Si desea hacer análisis de tipo (como su comentario parece estar diciendo), eso no es lo que hace un analizador.

+0

Gracias por su respuesta, Stephen. Estaba trabajando con algunos de estos generadores de analizadores. Creo que su rendimiento no es lo suficientemente bueno para analizar grandes cantidades de código con sintaxis similar a C++ (como Java), desafortunadamente. –

+2

@Eliah: puede parecer contra-intuitivo, pero los analizadores generados tienden a ser más rápidos que los analizadores escritos a mano, especialmente si el PGS está maduro. –

+1

Noté que ANTLR también generará analizadores en Javascript. –

Cuestiones relacionadas