URL:
/axel/compiler_ss05_blatt5.html
Dieses Blatt wird am 18.5.2005 besprochen.
Aufgabe 12
Es soll in mehreren Schritten ein Taschenrechnerprogramm gebaut werden.
Es
können Ausdrücke (z.B. (5-3)^10;)
eingegeben werden und das Programm gibt (später in der
vollständigen Version) die Ergebniszeilen aus. (z.B.
1024).
Im ersten Schritt werden nur Integerzahlen verarbeitet. Daraus
kann man mit den Operatoren
+ - * / % ^ ) (
Ausdrücke bauen. Ein Ausdruck soll
durch ; beendet werden. Schreiben Sie ein lex Programm welches die
Token
erkennt, d.h. das Programm soll die
relevanten Teile erkennen und mit printf einen Tokennamen
ausgeben, nicht relevante
Eingaben sollen überlesen werden. Beim Einlesen einer Zahl soll
ZAHL=<wert>
ausgegeben werden.
Abgabe: der lex source code per email bis 17.5.
24.00 Uhr an a12ss05 at btm2x3.mat.uni-bayreuth.de
Aufgabe 13
Entwerfen Sie eine Grammatik für die Aufgabe 12. Es sollen zulässige Ausdrücke die aus Zahlen und Sonderzeichen + - * / % ^ ) ( ;Testen Sie das Programm auch an der von lex erzeugten Datei
lex.yy.c.
P .S.: Bei meiner Linux Version geht das Compilieren wie folgt:
lex a14.l
gcc lex.yy.c -lfl