11.07.2015 Aufrufe

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

86 KAPITEL 5: IMPLEMENTIERUNG}}....../** Interne Klasse BackwardStepException. Diese Exception wird von* einem context-Quantor erzeugt, wenn ein Rückwärtsschritt* durchgeführt werden muss: die Auswertung des aktuellen* context-Quantors wird unterbrochen <strong>und</strong> die Exception wird vom* vorhergehenden context-Quantor abgefangen. */private class BackwardStepException extends java.lang.RuntimeException {}Im Abschnitt 6.4 werden Ideen für eine flexiblere Dialogflusskontrolle vorgestellt.5.3 Vorbereitung weitergehender ÄnderungenNachdem wir die Implementierung der neuen <strong>Sprachkonstrukte</strong> <strong>und</strong> der <strong>interaktive</strong>n <strong>Benutzerschnittstelle</strong>für das <strong>ODL</strong>-System beschrieben haben, wollen wir einige Hinweise für Weiterentwicklungengeben.Der allgemeine Aufbau des <strong>ODL</strong>-Auswertungssystems <strong>und</strong> die Schritte, die zur Implementierungeiner Änderung des <strong>ODL</strong>-Sprachumfangs notwendig sind, wurden am Beginn des Abschnitts 5.1 bereitsbesprochen, sodass wir hier auf eine allgemeine Beschreibung verzichten <strong>und</strong> stattdessen einigeBeispiele für konkrete Implementierungen von <strong>ODL</strong>-<strong>Sprachkonstrukte</strong>n sowie von GUI-Klassen fürdie <strong>Benutzerschnittstelle</strong> vorstellen, die im Rahmen dieser Arbeit erstellt wurden.• Einführung eines neuen <strong>ODL</strong>-Ausdrucks am Beispiel von SetSizeExpressionWir bereits im Abschnitt 5.1 beschrieben muss zur Einführung eines neuen <strong>ODL</strong>-Sprachkonstruktsdie <strong>ODL</strong>-Grammatik angepasst, eine <strong>ODL</strong>-Auswertungsklasse für dieses Konstrukt erstellt<strong>und</strong> der SableCCGenerator um Methoden für die Verarbeitung des Konstrukts ergänztwerden. Wir zeigen diese Schritte anhand des <strong>ODL</strong>-Ausdrucks für Ermittlung der Größe einerMenge.Ausgehend von der Syntax size( setExpression ) wird die Produktionsregel für denAusdruck sowie die Deklaration des Tokens size in die <strong>ODL</strong>-Grammatik eingefügt:Tokenssize = ’size’;Productionsarithmetic_term =.../* Frühere Ableitungen von arithmetic_term */set_size size l_par expression r_par;Als Nächstes wird eine Auswertungsklasse für den neuen Ausdruck erstellt, die das Interfacequest.odl.evaluation.model.Expression implementiert <strong>und</strong> in der evaluate-Methode die geforderte Auswertung durchführt:public class SetSizeExpression implements Expression {/** Ausdruck, der auf der Basis der übergebenenVariablenbelegungen die Menge berechnet. */Expression setExpression;public SetSizeExpression(Expression setExpression)throws IllegalArgumentException {this.setExpression = setExpression;}

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!