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.