Synopsis: [de.wikipedia.org/wiki/Parser] [de.wikipedia.org/wiki/Lexikalischer_Scanner]
Ein lexikalischer Scanner (kurz Lexer) ist ein Computerprogramm zur Zerlegung von Eingaben in Folgen von logisch zusammengehörigen Einheiten, so genannte Token (engl. tokens). [Wikipedia]
Zum Einstieg wollen wir einen einfachen Lexer zur Analyste folgender Eingaben bauen:
"hallo123du456bist7"
Eine Methode scanne(s:Text) soll zunächst die Zahlen nacheinander auf der Konsole ausgegeben:
123
456
7
Lexer |
---|
+scanne(s:Text) |
Entwickeln Sie den Quellcode für die Klasse Lexer.
Die Methode scanne(s:Text):GZ wird erweitert und gibt nun die Summe der Zahlen als Wert zurück.
Mit Hilfe des Lexers lässt sich leicht ein einfacher Konsolenrechner entwerfen für folgende Ausdrücke:
"12+3" "3*45" usw.
Entwickeln Sie eine Methode rechne(s:Text) die einfache Ausdrücke berechnet.