¿Qué lenguaje es útil para crear un informe para un programa C válido [cerrado]

StackOverflow https://stackoverflow.com/questions/85230

  •  01-07-2019
  •  | 
  •  

Pregunta

¿Alguien puede sugerirme un lenguaje de programación útil que pueda usarse para crear una herramienta que analice el programa C dado y genere un informe txt o un informe html que contenga información sobre el programa dado (lista de funciones, lista de variables, etc.)?El programa que pretendo crear es similar a doxygen pero lo quiero para mi uso personal.

¿Fue útil?

Solución

Tanto Python como Perl tienen excelentes capacidades de procesamiento de cadenas.

Sugeriría usar algo como ctags para analizar el programa y simplemente crear un script para leer el archivo ctags y generarlo en txt/html.

El formato de archivo utilizado por ctags está bien definido para que otros programas puedan leerlo.Ver http://ctags.sourceforge.net para obtener más información sobre ctags y el archivo que utiliza.

Otros consejos

etiquetas, ¿tal vez?

Ctags genera un archivo de índice (o etiqueta) de objetos de lenguaje que se encuentran en archivos fuente que permite que un editor de texto u otra utilidad ubique estos elementos rápida y fácilmente.Una etiqueta significa un objeto de lenguaje para el cual hay disponible una entrada de índice (o, alternativamente, la entrada de índice creada para ese objeto).

Estás abriendo una gran lata de gusanos, este no es un uso efectivo de tu tiempo, bla, bla, bla, etc.

Pasando a una respuesta, si está hablando de algo más allá de un análisis trivial y necesita precisión, deberá analizar el código fuente C.Puede hacerlo en cualquier idioma, pero es casi seguro que querrá generar su analizador a partir de una gramática de alto nivel.Hay muchas herramientas para eso.Un generador de analizadores moderno y particularmente potente es antlr;Hay varias gramáticas ANTLR para C, incluidos subconjuntos más fáciles de trabajar.

Busque lenguajes de secuencias de comandos.Recomendaría Python o Perl.

Haskell tiene un proyecto de lenguaje-c relativamente reciente http://www.sivity.net/projects/language.c que permite el análisis del código C.

Si está familiarizado con Haskell, quizás valga la pena echarle un vistazo.Incluso si no es así, puede ser interesante intentarlo.

Si lo que desea es un lenguaje de programación, entonces diría algo que sea conocido por su potencia de procesamiento de cadenas, por lo que significaría Perl.

Sin embargo, la tarea que requiere puede ser bastante complicada ya que necesita "conocer" el idioma, por lo que deberá seguir los mismos pasos que hace el compilador, que son análisis léxicos y gramaticales del idioma (piense en flex, piense en yacc) para poder realmente "saber" qué significado tienen esas cadenas.

Quizás el mejor punto de partida sea echar un vistazo a doxygen e intentar reutilizar la mayor cantidad posible del trabajo realizado allí.

Lex/yacc son apropiados para construir analizadores.

analizador pyc es un analizador completo para ANSI C89/C90 escrito en Python puro.Se utiliza ampliamente para analizar el código fuente C para diversas necesidades.Viene con algún código de ejemplo, como enumerar todas las definiciones de funciones en archivos, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top