|
Die abstrakte Klasse Expr legt eine Datenstruktur
für arithmetische Ausdrücke fest.
|
|
Sie definiert eine abstrakte Funktion
eval zum Auswerten
von Ausdrücken. eval kann als Kern eines Interpretierers
für eine Sprache verwendet werden, in der Ausdrücke
mit Exemplaren der Klasse Expr dargestellt werden.
|
| |
|
Eine konkrete Klasse Const zur Repräsentation von Konstanten, abgeleitet
aus Expr.
|
| |
|
Eine abstrakte Klasse für allgemeine einstellige Ausdrücke
mit einer Implementierung der eval-Funktion für
alle unären Operatoren. Die eigentliche Operation wird über eine
Schablonenmethode ausgewählt.
|
| |
|
Drei konkrete Klassen für einstellige Operatoren, +, - und Konversion.
|
| |
|
Eine abstrakte Klasse für allgemeine zweistellige Ausdrücke
mit einer Implementierung der eval-Funktion für
alle binären Operatoren. Die eigentliche Operation wird über eine
Schablonenmethode ausgewählt.
|
| |
|
Drei konkrete Klassen für zweistellige Operatoren, +, - und *.
|
|
Durch zusätzliche Definition solcher Klassen kann die Menge
der Ausdrücke erweitert werden, ohne an irgendeiner Stelle in
existierenden Programmteilen etwas zu verändern.
|
|
Schlagwort: Lokale Erweiterbarkeit.
|
| |
|
Ein einfaches Testprogramm.
|
|
|
| |