Quiero analizar el código fuente escrito en varios idiomas. Entonces, la biblioteca debería decirme al menos qué líneas son comentarios y cuáles no. Óptimamente, también podría decirme cosas más específicas, como declaraciones de variables, palabras clave específicas del idioma, etc.
Por lo tanto, en realidad es similar a un resaltador de sintaxis específico del idioma, solo que no resalta el código fuente, sino que lo anota e imprime algo como la salida JSON.
Encontré markdown-it para Markdown, pero bueno, lo necesitaría para muchos lenguajes, como Shell, JavaScript, Python, Scala, Go…
No sé si cubre todos los idiomas que necesita o emite todos los metadatos que necesita, pero Doxygen podría ser suficiente. Puede generar XML que incluye cosas como funciones y declaraciones de variables.
Nuestro kit de herramientas de reingeniería de software DMS es una herramienta de transformación y análisis de programas de propósito general parametrizada por definiciones de lenguaje explícitas. Hasta la fecha hay unos 40 idiomas (sin contar los dialectos) definidos para DMS.
Para cada lenguaje definido por una gramática explícita (sí, manejamos C++17 de esta manera), DMS puede analizar la fuente y producir un árbol de sintaxis abstracto. [Sí, puede exportarlo como XML (JSON también sería fácil) si lo desea, pero es más fácil realizar otros análisis con otros mecanismos proporcionados por DMS, lo que significa que no tiene que exportarlos. A partir de ahí, etiquetar comentarios frente a declaraciones frente a encabezados de función frente a código es bastante fácil de entender.
DMS se puede configurar para extraer mucha más información que solo esto.
Codiólogo