# Code analyzer ## Sujet Un programme peut être considéré comme un graphe orienté où chaque fonction est un noeud. Prendre un programme important (plusieurs dizaines de fichiers, plusieurs dizaines de milliers de lignes de code) et l’analyser sous la forme d’un graphe (Mco, Vec). On doit chercher les composantes connexes et les cycles. ## Programmes testés * [st](https://st.suckless.org/) * [dwm](https://dwm.suckless.org/) * [neovim](https://github.com/neovim/neovim) * code-analyzer * test.c ## Compilation et execution ### Compilation ```sh $ make fclean; make # fclean pour supprimé le graph.dot s'il existe # car dans le programme je l'ouvre avec flag append ``` ### Execution ```sh $ ./code-analyzer --help $ ./code-analyzer -p ./src/ -c --print-vec --cycles-vec ``` ### Generation de pdf Pour generer un pdf du graphe, il faut avoir installé `graphviz`. ```sh $ make graph ``` Cela va genere le fichier **graph.pdf**.