MezData-Logo Creative Commons License 212 Lösungen Button :PI-BLUEJ: Parser und Scanner

Synopsis: [de.wikipedia.org/wiki/Parser] [de.wikipedia.org/wiki/Lexikalischer_Scanner]

 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.

Einfacher Konsolenrechner

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.