| |
72 Angenommene Spezifikation UML Ocl 2,0 [ B ] LoopExpCS.env = PropertyCallExpCS.env Disambiguierende Richtlinien Die disambiguierenden Richtlinien werden in den Kindern definiert. LoopExpCS Diese Richtlinie stellt Schleifenausdrücke dar. [ A ] LoopExpCS::= IteratorExpCS [ B ] LoopExpCS::= IterateExpCS Abstract syntax Diagramm LoopExpCS.ast: LoopExp Synthetisierte Attribute [ A ] LoopExpCS.ast = IteratorExpCS.ast [ B ] LoopExpCS.ast = IterateExpCS.ast Übernommene Attribute [ A ] IteratorExpCS.env = LoopExpCS.env [ B ] IterateExpCS.env = LoopExpCS.env Disambiguierende Richtlinien -- keine IteratorExpCS Die erste Alternative ist ein direkter Ausdruck Iterator, mit wahlweise freigestellter iteratorvariable. Das zweite und das dritte Alternativen sind sammeln iterators sogenanntes implizites. B ist für Betriebe und C für Attribute, D für Navigationen und E für associationclasses. [ A ] IteratorExpCS::= OclExpressionCS[1 ] ' - > ' simpleNameCS ' (' (VariableDeclarationCS[1 ], (', ' VariableDeclarationCS[2 ])? '|')? OclExpressionCS[2 ] ') ' [ B ] IteratorExpCS::= OclExpressionCS '.' simpleNameCS ' (' argumentsCS?') ', [ C ] IteratorExpCS::= OclExpressionCS '.' simpleNameCS [ D ] IteratorExpCS::= OclExpressionCS '.' simpleNameCS (' [ ' argumentsCS-']')? [ E ] IteratorExpCS::= OclExpressionCS '.' simpleNameCS (' [ ' argumentsCS-']')? Abstract syntax Diagramm IteratorExpCS.ast: IteratorExp Synthetisierte Attribute -- das ast muß festgestellte Spitze durch Spitze sein, zuerst die Quellverbindung von IteratorExp [ A ] IteratorExpCS.ast.source = OclExpressionCS[1].ast |  |
|
| |
|
|