cparser ist ein in C99 geschriebener rekursiver C99-Parser. Es enthält einen Präprozessor, einen Lexer und einen Parser, erstellt einen AST und führt eine semantische Analyse durch. Es fungiert als Frontend für die Zwischendarstellungsbibliothek libFirm. Auf diese Weise werden Optimierung und Codegenerierung durchgeführt. Der Compiler unterstützt die Kreuzkompilierung auf mehrere Zielarchitekturen mit einem Befehlszeilenschalter. Es verfügt über Treiberlogik zum Aufrufen von Assemblern und Linkern sowie zum Parsen von Befehlszeilenoptionen. Dadurch kann es in vielen Situationen als Ersatz für gcc oder clang dienen.
Anforderungen:
Entpacken Sie libfirm in ein Verzeichnis namens libfirm im Quellverzeichnis. Alternativ können Sie einen alternativen Speicherort mit einer Datei „config.mak“ einrichten. Geben Sie einfach „make“ in das Quellverzeichnis ein. Die Ergebnisse werden in einem Verzeichnis namens „build“ abgelegt. Sie können die vorhandenen Präprozessor-, Compiler- und Linker-Flags sowie die integrierten Pfade für Include-Verzeichnisse überschreiben, indem Sie eine „config.mak“-Datei erstellen.
cparser verfügt über ein zusätzliches cmake-Build-System. CMake ist ein komplexeres Build-System als der make-basierte Build und wird von den meisten Cparser-Entwicklern nicht verwendet. Es kann jedoch die Compiler- und Linker-Flags anpassen, um gemeinsam genutzte Bibliotheken für eine breitere Palette von Systemen zu erstellen, bietet ein Installationsziel und ist für Leute, die Pakete für die Verteilung vorbereiten, oft vertrauter.
Während cparser oft einwandfrei aus dem Quell-/Build-Verzeichnis heraus läuft, sollte eine ordnungsgemäße Installation mit korrekten Systempfaden konfiguriert werden. Hierzu sollte eine config.mak
Datei erstellt und die folgenden Variablen entsprechend dem System eingestellt werden: PREFIX
, SYSTEM_INCLUDE_DIR
, LOCAL_INCLUDE_DIR
, COMPILER_INCLUDE_DIR
, MULTILIB_M32_TRIPLE
, MULTILIB_M64_TRIPLE
, variant=optimize
. Die Variable kann leer definiert werden; Weitere Informationen finden Sie unter config.default.mak
und Makefile
.
Offizielle Website: http://libfirm.org/
Kontakt E-Mail: [email protected]
Mailingliste: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Bugtracker: http://pp.ipd.kit.edu/~firm/bugs
Internet-Relay-Chat: irc://chat.freenode.net/#firm