Das erste Flex oder Bison Programm kann schnell zu einem Frust Erlebnis werden, weil in der Dokumenation lang und breit die Syntax erklärt wird, aber wie man jetzt tatsächlich ein lauffähiges Programm bekommt steht irgendwo gut versteckt. Hier sind die Regeln wie man ein flex programm scanner.l kompilieren kann. scanner.c:scanner.yy flex -o scanner.c scanner.l scanner.o:scanner.c gcc -c -o scanner.o scanner.c scanner:scanner.o gcc -o scanner scanner.o -lfl Wichtig dabei ist, dass fl dazugelinkt wird. Das linken funktioniert nur an letzter stelle (-lfl muss hinten stehen). Will man bison verwenden, braucht man ein von flex generiertes scanner.o (bzw. könnte man natürlich auch die von flex generierte Funktion yylex selber schreiben). Hier sind die Regeln wie man ein bison Programm parser.y kompilieren kann. parser.c:parser.y bison -d -o parser.c parser.y parser.o:parser.c parser.h gcc -c -o parser.o parser.c parser:parser.o scanner.o gcc -o parser parser.o scanner.o -lfl -ly Jetzt muss neben der Library fl auch die Library y und das von flex generierte Objectfile dazugelinkt werden. bison muss mit dem Parameter -d aufgerufen werden, diese Headerdatei kann dann im scanner verwendet werden (bei obiger Regel scanner.o:scanner.c muss noch scanner.h hinzugefügt werden). Mit dem Wissen sollte das ganze zumindest einmal kompilieren. Damit es auch das macht was es soll ist ein Buch und/oder die bison/flex Dokumentation unverzichtbar.