| |
78 Angenommene Spezifikation UML Ocl 2,0 Art = CollectionKind::Set deutet collectionTypeCS.ast.oclIsKindOf an (SetType) Art = CollectionKind::Sequence deutet collectionTypeCS.ast.oclIsKindOf an (SequenceType) Art = CollectionKind::Bag deutet collectionTypeCS.ast.oclIsKindOf an (BagType) Art = CollectionKind::Collection deutet collectionTypeCS.ast.oclIsKindOf an (CollectionType) Art = CollectionKind::OrderedSet deutet collectionTypeCS.ast.oclIsKindOf an (OrderedSetType) Übernommene Attribute typeCS.env = collectionTypeCS.env Disambiguierende Richtlinien -- keine tupleTypeCS Dieses stellt eine Tupletypvereinbarung dar. tupleTypeCS::= ' Tuple ' ' (' variableDeclarationListCS? ') ' Abstract syntax Diagramm typeCS.ast: TupleType Synthetisierte Attribute typeCS.ast = TupleType::make(variableDeclarationListCS->collect(V|v.asAttribute())) Übernommene Attribute variableDeclarationListCS.env = tupleTypeCS.env Disambiguierende Richtlinien [ 1 ] Von allem VariableDeclarations muß das initExpression leer sein und die Art muß bestehen. variableDeclarationListCS.ast->forAll(varDecl| varDecl.initExpression->notEmpty() und varDecl.type->notEmpty()) variableDeclarationListCS Dieser Produktionsrichtlinie stellt die Formalparameter einen Tuple oder Attributbeschreibung dar. variableDeclarationListCS[1 ] = VariableDeclarationCS (', 'variableDeclarationListCS[2 ])? Abstract syntax Diagramm variableDeclarationListCS[1].ast: Sequence(VariableDeclaration) Synthetisierte Attribute variableDeclarationListCS[1].ast = Sequence{VariableDeclarationCS.ast } ->union(variableDeclarationListCS[2].ast) Übernommene Attribute VariableDeclarationCS.env = variableDeclarationListCS[1].env variableDeclarationListCS[2].env = variableDeclarationListCS[1].env |  |
|
| |
|
|