2010-03-04 11 views
8

¿Alguien sabe de un módulo de python para analizar una cadena de comentario C++ estilo doxygen? Me refiero a una cadena como esta (ejemplo sencillo):Doxygen C++ comentar cadena de análisis en python?

/** 
    * A constructor. 
    * A more elaborate description of the constructor. 
    * @param param1 test1 
    * @param param2 test2 
    */ 

y me gustaría extraer el resumen, la descripción larga, los parámetros, el valor de retorno, etc Actualmente estoy haciendo esto utilizando métodos de cadena y regulares expresiones pero mi solución no es muy robusta. Alternativamente, ¿alguien puede recomendar una lib del analizador de Python fácil de usar que pueda configurar rápidamente?

Gracias de antemano

Respuesta

4

Usted puede ser capaz de montar algo usando el módulo SimpleParse, pero esto requiere la creación de una gramática EBNF que podría ser más de inversión que le interesa.

El puente Sphinx/Doxygen (Breathe) utiliza el xml de Doxygen y actúa sobre eso en su lugar. Quizás un enfoque similar podría funcionar aquí: ejecute Doxygen para extraer documentos formateados xml y luego aproveche parte del código de Breathe para obtener los datos que necesita.

1

Usted debe echar un vistazo a cómo se implementa doxygen para ver cómo se maneja el análisis. Dudo mucho que use expresiones regulares.

+1

Lo hice, y esta fue realmente la motivación para esta pregunta. Utiliza lex y un archivo fuente grande de 179 kb para generar un lexer. Estoy buscando una solución más simple aquí (por lo tanto, mi pregunta adicional acerca de una lib simple analizador de Python). – Sebastian