2010-06-25 18 views
5

Deseo obtener un archivo .java, reconocer la primera clase en el archivo y obtener información sobre anotaciones, métodos y atributos de esta clase.Análisis de la clase de Java de Perl o Python

¿Hay algún módulo en ambos idiomas que ya lo haga? Podría construir una expresión regular simple para hacerlo también, pero no sé cómo reconocer en la expresiones regulares los refuerzos que indican el final de la clase/método.

+4

No, regex no es adecuado para esto. Considera 'clase Foo {String s =" no es una @Anotación aquí "; } ' –

+0

Ok, entonces tendría que usar una gramática o un autómata para hacerlo. ¿Hay algún módulo perl/python que pueda ayudarme a hacer este tipo de cosas? – Rafael

+0

@Bart En realidad, usted podría regex para no tener en cuenta entre comillas dobles. El problema es con los aparatos ortopédicos, una vez que no se puede contar realmente cuántas llaves de apertura y cierre sucedieron hasta ahora en una expresión regular. –

Respuesta

2

Si carga las clases de Java dentro de Jython, probablemente pueda utilizar la introspección para encontrar la información que necesita.

0

¿Por qué estás intentando esto en perl/python en lugar de simplemente usar un programa compatible con javadoc que puede extraer la información?

0

Yo sugeriría Inline::Java para acceder a la clase Java desde Perl, Una vez que tenga esa interfaz en funcionamiento, se puede acceder fácilmente a los métodos y atributos de la clase.