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.

5.1 ERWEITERUNG DES SPRACHUMFANGS 49Die Deklaration des IntroducedType ist direkt in der Produktionsregel für type untergebracht,<strong>und</strong> zwar in den Produktionentype = element defined_variable |element ( expression );Ausgehend von dieser Definition werden für IntroducedType zunächst alle Ausdrückenach dem Schlüsselwort element akzeptiert. Erst bei der semantischen Analyse durch denSableCCGenerator wird überprüft, ob der Ausdruck nach dem Schlüsselwort elementein mengenwertiges Ergebnis liefert.• Einschränkung beim new-QuantorEin new-Quantor dient dazu, eine neue Entität zu erzeugen – die von ihm geb<strong>und</strong>ene Variablemuss also stets vom Typ model_element_type sein. Diese Einschränkung wurde im Zugeder Entwicklung der Grammatik von der semantischen Ebene des SableCCGenerator’s aufdie syntaktische Ebene der Grammatik verlagert, indem die frühere Produktionsregelunary_proposition =neg unary_proposition |quantifier variable_definition . unary_proposition |term;variable_definition = variable : type;durch die folgende Regel ersetzt wurde:unary_proposition =neg unary_proposition |quantifier variable_definition . unary_proposition |new_quantifier model_element_variable_definition .unary_proposition |term;variable_definition = variable : type;model_element_variable_definition = variable : model_element_type;Die Angabe eines ungeeigneten Variablentyps für einen new-Quantor wird nach dieser Änderungbereits während der Syntaxanalyse einer <strong>ODL</strong>-Abfrage entdeckt.• Benamte PrädikateUm die benamten Prädikate in die Grammatik einzuführen, wurde ein neues Startsymbol hinzugefügt,der entweder die Ableitung für eine übliche <strong>ODL</strong>-Abfrage oder eine Ableitung fürein benamtes Prädikat erzeugt:odl_start = proposition |named_predicate_declaration;Hierbei ist proposition das frühere Startsymbol, aus dem jede <strong>ODL</strong>-Abfrage abgeleitetwerden kann, die kein benamtes Prädikat definiert.Ein benamtes Prädikat wird durch die folgende Produktionsregel definiert:named_predicate_declaration =identifier(type_list) := ccl_proposition;

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!