Gobo Eiffel ist eine Sammlung freier, portabler Eiffel-Werkzeuge und Bibliotheken. Das Projekt stellt der Eiffel-Community Tools bereit, die über verschiedene Eiffel-Compiler hinweg lauffähig sind — die Bibliotheken und Programme lassen sich dadurch unabhängig vom verwendeten Compiler einsetzen.
Die wichtigsten Werkzeuge
- geant — XML-basiertes Build-Werkzeug nach Art von Apache Ant; führt deklarative Build-Skripte aus und ersetzt ein Make für Eiffel-Projekte.
- gec — der Gobo Eiffel Compiler, ein Open-Source-Kommandozeilen-Compiler; er übersetzt über ein C-Backend, wahlweise auch mit einer Zig-Toolchain.
- gelex — Lexer-Generator nach dem Vorbild von Lex; erzeugt Scanner aus lexikalischen Spezifikationen.
- geyacc — Parser-Generator nach dem Vorbild von Yacc; erzeugt LALR-Parser aus Grammatikdateien.
- gepp — Preprozessor, ein Filterprogramm, das Preprocessing-Anweisungen in Textdateien interpretiert (selbst mit gelex und geyacc in Eiffel geschrieben).
- getest — Werkzeug zum Ausführen von Test-Suites.
- gelint — Linter zur statischen Prüfung von Eiffel-Quelltext.
- gexslt — Kommandozeilen-Prozessor für XSLT-Transformationen (XSLT 2.0).
Arbeiten mit Gobo
Die Binaries liegen nach der Installation im Verzeichnis $GOBO/bin, das in den PATH aufgenommen wird. Die Bibliotheken umfassen unter anderem die Gobo Eiffel Tools Library, einen XML-Parser, eine XSLT-2.0-Implementierung sowie Regex-, Datums- und Zeit-Bausteine.
export GOBO=/opt/gobo
export PATH=$GOBO/bin:$PATH
geant # Build-Skript (XML) ausführen
gec --help # Compiler-Hilfe
gelex date_scan.l
geyacc grammar.y
Verwandte Grundlagen: Eiffel-Befehle, EiffelStudio-Befehle, Liberty-Eiffel-Befehle.