6.29. Flex-2.5.31

Das Programm Flex wird benutzt um Programme zu erzeugen, die Muster in Texten erkennen können.

Geschätzte Kompilierzeit: 0.1 SBU

Ungefähr benötigter Festplattenplatz: 3.4 MB

Flex ist abhängig von: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make und Sed

6.29.1. Installation von Flex

Flex enthält einige bekannte Fehler. Beheben Sie diese mit dem folgenden Patch:

patch -Np1 -i ../flex-2.5.31-debian_fixes-2.patch

Die GNU autotools erkennen, dass der Quellkode von Flex durch den vorhergehenden Patch verändert wurde und versucht, die Man-page entsprechend anzupassen. Das funktioniert aber auf vielen Systemen nicht korrekt und die Standard-Man-Page ist völlig in Ordnung, daher stellen Sie sicher, dass sie nicht neu erzeugt wird:

touch doc/flex.1

Bereiten Sie Flex zum Kompilieren vor:

./configure --prefix=/usr

Kompilieren Sie das Paket:

make

Um das Ergebnis zu prüfen, führen Sie das Kommando make check aus.

Installieren Sie das Paket:

make install

Es existieren einige Programme, die die lex-Bibliothek in /usr/lib erwarten. Erstellen Sie daher einen entsprechenden symbolischen Link:

ln -s libfl.a /usr/lib/libl.a

Einige wenige Programme kennen flex noch nicht und versuchen den Vorgänger lex aufzurufen. Um diesen Programmen dennoch gerecht zu werden, erzeugen Sie ein kleines Shell-Skript mit dem Namen lex, welches flex im lex-Emulationsmodus aufruft:

cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex

exec /usr/bin/flex -l "$@"

# End /usr/bin/lex
EOF
chmod 755 /usr/bin/lex

6.29.2. Inhalt von Flex

Installierte Programme: flex, flex++ (Link auf flex) und lex

Installierte Bibliothek: libfl.a

Kurze Beschreibungen

flex

Ein Werkzeug zum Erzeugen von Programmen, die Muster in Text erkennen können. Mustererkennung ist in vielen Programmen nützlich. Flex erzeugt aus einem Satz an Regeln nach denen es suchen soll ein Programm, das nach diesen Mustern sucht.

flex++

Startet eine Version von flex, die exklusiv für C++-Scanner verwendet wird

lex

Ein Skript, welches flex im lex-Emulationsmodus startet

libfl.a

Die flex-Bibliothek