cparser est un analyseur C99 de descente récursive écrit en C99. Il contient un préprocesseur, un lexer, un analyseur, construit un AST et effectue une analyse sémantique. Il agit comme une interface pour la bibliothèque de représentation intermédiaire libFirm. De cette façon, l'optimisation et la génération de code sont effectuées. Le compilateur prend en charge la compilation croisée sur plusieurs architectures cibles avec un commutateur de ligne de commande. Il est livré avec une logique de pilote pour appeler des assembleurs et des éditeurs de liens ainsi que pour analyser les options de ligne de commande. Cela lui permet de remplacer gcc ou clang dans de nombreuses situations.
Exigences:
Décompressez libfirm dans un répertoire appelé libfirm dans le répertoire source. Vous pouvez également configurer un autre emplacement avec un fichier « config.mak ». Tapez simplement « make » dans le répertoire source. Les résultats sont placés dans un répertoire appelé "build". Vous pouvez remplacer les indicateurs existants du préprocesseur, du compilateur et de l'éditeur de liens ainsi que les chemins intégrés pour les répertoires d'inclusion en créant un fichier « config.mak ».
cparser dispose d'un système de construction cmake supplémentaire. CMake est un système de construction plus complexe que la construction basée sur make et la plupart des développeurs cparser ne l'utilisent pas. Cependant, il peut adapter les indicateurs du compilateur et de l'éditeur de liens pour créer des bibliothèques partagées pour une gamme plus large de systèmes, fournit une cible d'installation et est souvent plus familier aux personnes préparant des packages pour la distribution.
Bien que cparser fonctionne souvent correctement à partir du répertoire source/build, une installation appropriée doit être configurée avec les chemins système corrects. Pour cela, un fichier config.mak
doit être créé et les variables suivantes définies de manière appropriée pour le système : PREFIX
, SYSTEM_INCLUDE_DIR
, LOCAL_INCLUDE_DIR
, COMPILER_INCLUDE_DIR
, MULTILIB_M32_TRIPLE
, MULTILIB_M64_TRIPLE
, variant=optimize
. La variable peut être définie vide ; Voir config.default.mak
et Makefile
pour plus de détails.
Site officiel : http://libfirm.org/
Contact E-Mail: [email protected]
Liste de diffusion : https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Outil de suivi des bogues : http://pp.ipd.kit.edu/~firm/bugs
Chat relais Internet : irc://chat.freenode.net/#firm