Quelle langue est utile pour créer un rapport pour un programme C valide [fermé]

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

  •  01-07-2019
  •  | 
  •  

Question

Quelqu'un peut-il me suggérer un langage de programmation utile qui peut être utilisé pour créer un outil qui analysera le programme C donné et générera un rapport txt ou un rapport html contenant des informations sur le programme donné (liste de fonctions, liste de variables, etc.). Le programme que je souhaite créer est similaire à doxygen mais je le souhaite pour mon usage personnel.

Était-ce utile?

La solution

Python et Perl ont d'excellentes capacités de traitement de chaînes.

Je suggérerais d'utiliser quelque chose comme ctags pour analyser le programme et créer un script permettant de lire le fichier ctags et de le générer au format txt / html.

Le format de fichier utilisé par ctags est bien défini pour que les autres programmes puissent le lire. Voir http://ctags.sourceforge.net pour plus d'informations sur les balises ctags et le fichier qu'elles utilisent.

Autres conseils

ctags , peut-être?

  

Ctags génère un fichier d'index (ou balise) d'objets langage trouvés dans les fichiers source, qui permet à ces éléments d'être rapidement et facilement repérés par un éditeur de texte ou un autre utilitaire. Une balise signifie un objet de langage pour lequel une entrée d’index est disponible (ou l’entrée d’index créée pour cet objet).

Vous ouvrez une grande boîte de Pandore, ce n’est pas une utilisation efficace de votre temps, bla bla bla, etc.

Passons maintenant à une réponse. Si vous parlez de quelque chose au-delà de l'analyse triviale et que vous avez besoin d'exactitude, vous devrez analyser le code source C. Vous pouvez le faire dans n’importe quelle langue, mais vous voudrez certainement générer votre analyseur syntaxique à partir d’une grammaire de haut niveau. Il existe un certain nombre d'outils pour cela. Un générateur d'analyseur syntaxique moderne et particulièrement puissant est ANTLR ; Il existe un certain nombre de grammaires ANTLR pour le langage C, y compris des sous-ensembles plus faciles à utiliser.

Regardez dans les langages de script. Je recommanderais Python ou Perl.

Haskell a un projet language-c relativement récent http://www.sivity.net/ projects / language.c qui permet l'analyse du code C.

Si vous connaissez Haskell, cela vaut peut-être le coup d’être. Même si vous ne l'êtes pas, il pourrait être intéressant d'essayer.

Si vous voulez un langage de programmation, je dirais quelque chose qui est connu pour sa puissance de traitement de chaîne, ce qui voudrait dire perl.

Cependant, la tâche à accomplir peut être assez compliquée, car vous devez "connaître" la langue. Vous devez donc suivre les mêmes étapes que le compilateur, à savoir des analyses lexicales et grammaticales de la langue (think flex, think yacc). afin de vraiment «savoir» quelle signification ont ces chaînes.

Peut-être que le meilleur point de départ est d’examiner le doxygen et d’essayer de réutiliser le plus possible le travail effectué là-bas.

Lex / yacc convient aux analyseurs syntaxiques de construction.

pycparser est un analyseur syntaxique complet pour ANSI C89 / C90 écrit en Python pur. Il est largement utilisé pour analyser le code source C pour divers besoins. Il contient quelques exemples de code, tels que la liste de toutes les définitions de fonctions dans les fichiers, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top